.page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:stretch;padding:0 0 2rem;overflow-x:clip}.theme-toggle{position:absolute;top:1.25rem;right:1.25rem;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--toggle-border);border-radius:999px;background:var(--toggle-bg);color:var(--text-muted);box-shadow:var(--shadow);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.theme-toggle:hover{color:var(--accent);border-color:var(--accent-border)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[data-theme=dark] .theme-toggle{color:var(--subtagline-color);border-color:#fcd34d7a;background:#fcd34d24;box-shadow:0 0 0 1px #fcd34d3d,0 0 14px #fcd34d38,var(--shadow)}[data-theme=dark] .theme-toggle:hover{color:var(--subtagline-hover);border-color:#fde68a9e;background:#fcd34d38}[data-theme=dark] .theme-toggle:focus-visible{outline-color:var(--subtagline-color)}.hero{position:relative;z-index:1;width:100%;text-align:center}.hero-stage{width:100%}.hero-top{grid-area:1 / 1;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;align-self:center;justify-self:center;width:min(900px,100%);padding:2.5rem 1.25rem;text-align:center}.hero-intro{padding:1.75rem 1.25rem;text-align:center}.hero-banner{position:relative;display:grid;grid-template-columns:1fr;width:100%;isolation:isolate}.projects-wrap{width:min(1200px,100%);margin:0 auto;padding:1rem 1.25rem 0}.showcase-bg{grid-area:1 / 1;align-self:stretch;position:relative;width:100%;min-height:373px;overflow:hidden;pointer-events:none;background-image:url(/tech-bg.jpg);background-repeat:repeat-x;background-position:center top;background-size:2000px 373px}[data-theme=light] .showcase-bg{background-image:url(/tech-bg-light.jpg)}[data-theme=light]{--font-display: "Orbitron", "Exo 2", sans-serif;--font-body: "Exo 2", system-ui, sans-serif;--avatar-halo-border: #c9e066;--avatar-halo-shadow: 0 0 0 1px rgba(111, 78, 55, .58), 0 0 20px 6px rgba(74, 124, 46, .42), 0 0 40px 12px rgba(74, 124, 46, .22), 0 14px 36px rgba(15, 23, 42, .22);--hero-text-scrim: rgba(255, 255, 255, .52);--hero-text-stroke: rgba(255, 255, 255, .95);--hero-subtagline-color: #000000;--hero-text-shadow-dark: 0 1px 1px rgba(15, 23, 42, .92), 0 2px 5px rgba(15, 23, 42, .78), 0 4px 12px rgba(15, 23, 42, .58);--hero-text-shadow-accent: none;--hero-text-shadow-green: 0 0 1px rgba(255, 255, 255, 1), 0 0 8px rgba(255, 255, 255, .92), 0 0 22px rgba(94, 234, 212, .58), 0 0 36px rgba(94, 234, 212, .34)}[data-theme=dark]{--card-glow: 0 0 0 1px rgba(96, 165, 250, .42), 0 0 10px 1px rgba(96, 165, 250, .34), 0 0 18px 2px rgba(96, 165, 250, .16);--card-glow-hover: 0 0 0 1px rgba(96, 165, 250, .82), 0 0 14px 2px rgba(96, 165, 250, .58), 0 0 28px 4px rgba(96, 165, 250, .28);--card-hover-border: rgba(96, 165, 250, .48);--card-focus-ring: #60a5fa}.showcase-bg__glow{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen}.showcase-bg__glow--a{width:55%;height:70%;top:10%;left:-5%;background:radial-gradient(circle,rgba(56,189,248,.55) 0%,transparent 72%);filter:blur(28px);animation:glow-drift-a 14s ease-in-out infinite}.showcase-bg__glow--b{width:48%;height:70%;top:10%;right:-5%;background:radial-gradient(circle,rgba(167,139,250,.45) 0%,transparent 72%);filter:blur(32px);animation:glow-drift-b 18s ease-in-out infinite}.showcase-bg__glow--scan{background:linear-gradient(105deg,transparent 0%,transparent 42%,rgba(125,211,252,.22) 50%,transparent 58%,transparent 100%);filter:blur(10px);animation:glow-scan 9s ease-in-out infinite}.showcase-bg__veil{position:absolute;inset:0;background:linear-gradient(180deg,#080f1e14,#080f1e59),linear-gradient(90deg,rgba(8,15,30,.22) 0%,transparent 18%,transparent 82%,rgba(8,15,30,.22) 100%)}@keyframes glow-drift-a{0%,to{transform:translateZ(0);opacity:.55}50%{transform:translate3d(12%,8%,0);opacity:.95}}@keyframes glow-drift-b{0%,to{transform:translateZ(0);opacity:.45}50%{transform:translate3d(-10%,-6%,0);opacity:.85}}@keyframes glow-scan{0%,to{transform:translate(-18%);opacity:.25}50%{transform:translate(18%);opacity:.75}}@media(prefers-reduced-motion:reduce){.showcase-bg__glow{animation:none}}.intro{position:relative;display:flex;flex-direction:column;align-items:center;width:max-content;max-width:100%;margin:0 auto;padding:.5rem .25rem}.intro:before{content:"";position:absolute;inset:-.35rem -1.5rem;border-radius:999px;background:radial-gradient(ellipse at center,var(--hero-text-scrim) 0%,transparent 72%);z-index:-1;pointer-events:none}.hero-intro .tagline,.hero-intro .subtagline{text-shadow:none;-webkit-text-stroke:0}.tagline{margin:0;font-family:var(--font-display);font-size:clamp(.9375rem,2.6vw,1.25rem);font-weight:600;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap;text-align:center}.subtagline{margin:.625rem 0 0;font-family:var(--font-body);font-size:1.0625rem;font-weight:400;line-height:1.65;color:var(--subtagline-color);white-space:nowrap;text-align:center}[data-theme=dark] .subtagline{color:#fff}.avatar-wrap{--avatar-orbit-radius: 85px;position:relative;display:inline-flex;padding:4px;border-radius:999px;border:2px solid var(--avatar-halo-border);background:linear-gradient(145deg,var(--avatar-ring-start),var(--avatar-ring-end));box-shadow:var(--avatar-halo-shadow);margin-bottom:0}.avatar-orbit-light{position:absolute;inset:0;z-index:2;border-radius:999px;pointer-events:none;animation:avatar-orbit-light 2s linear infinite reverse}.avatar-orbit-light__dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:999px;transform:translate(-50%,-50%) translateY(calc(-1 * var(--avatar-orbit-radius)))}[data-theme=dark] .avatar-orbit-light__dot{width:12px;height:12px;background:var(--avatar-orbit-color);box-shadow:0 0 12px 5px #ecfeffb8,0 0 26px 12px #ccfbf17a,0 0 44px 22px #99f6e447,0 0 60px 32px #ffffff1f;filter:blur(.75px)}[data-theme=light] .avatar-orbit-light__dot{background:var(--avatar-orbit-color);box-shadow:0 0 6px 2px #fffffff2,0 0 14px 5px #f4fadcd1,0 0 24px 10px #e6f5b473}@keyframes avatar-orbit-light{0%{transform:rotate(0)}1.25%{transform:rotate(1.72deg)}2.50%{transform:rotate(2.87deg)}3.75%{transform:rotate(4.6deg)}5.00%{transform:rotate(5.77deg)}6.25%{transform:rotate(7.53deg)}7.50%{transform:rotate(8.73deg)}8.75%{transform:rotate(10.55deg)}10.00%{transform:rotate(11.79deg)}11.25%{transform:rotate(13.69deg)}12.50%{transform:rotate(14.99deg)}13.75%{transform:rotate(16.99deg)}15.00%{transform:rotate(18.37deg)}16.25%{transform:rotate(20.52deg)}17.50%{transform:rotate(22deg)}18.75%{transform:rotate(24.32deg)}20.00%{transform:rotate(25.94deg)}21.25%{transform:rotate(28.49deg)}22.50%{transform:rotate(30.28deg)}23.75%{transform:rotate(33.12deg)}25.00%{transform:rotate(35.13deg)}26.25%{transform:rotate(38.34deg)}27.50%{transform:rotate(40.63deg)}28.75%{transform:rotate(44.32deg)}30.00%{transform:rotate(46.98deg)}31.25%{transform:rotate(51.29deg)}32.50%{transform:rotate(54.43deg)}33.75%{transform:rotate(59.57deg)}35.00%{transform:rotate(63.33deg)}36.25%{transform:rotate(69.56deg)}37.50%{transform:rotate(74.16deg)}38.75%{transform:rotate(81.82deg)}40.00%{transform:rotate(87.52deg)}41.25%{transform:rotate(97.05deg)}42.50%{transform:rotate(104.14deg)}43.75%{transform:rotate(115.98deg)}45.00%{transform:rotate(124.71deg)}46.25%{transform:rotate(139.06deg)}47.50%{transform:rotate(149.4deg)}48.75%{transform:rotate(165.84deg)}50.00%{transform:rotate(177.19deg)}51.25%{transform:rotate(188.64deg)}52.50%{transform:rotate(205.57deg)}53.75%{transform:rotate(216.4deg)}55.00%{transform:rotate(231.63deg)}56.25%{transform:rotate(240.96deg)}57.50%{transform:rotate(253.64deg)}58.75%{transform:rotate(261.22deg)}60.00%{transform:rotate(271.39deg)}61.25%{transform:rotate(277.43deg)}62.50%{transform:rotate(285.51deg)}63.75%{transform:rotate(290.33deg)}65.00%{transform:rotate(296.82deg)}66.25%{transform:rotate(300.72deg)}67.50%{transform:rotate(306.01deg)}68.75%{transform:rotate(309.22deg)}70.00%{transform:rotate(313.63deg)}71.25%{transform:rotate(316.33deg)}72.50%{transform:rotate(320.07deg)}73.75%{transform:rotate(322.39deg)}75.00%{transform:rotate(325.63deg)}76.25%{transform:rotate(327.65deg)}77.50%{transform:rotate(330.5deg)}78.75%{transform:rotate(332.29deg)}80.00%{transform:rotate(334.85deg)}81.25%{transform:rotate(336.47deg)}82.50%{transform:rotate(338.79deg)}83.75%{transform:rotate(340.27deg)}85.00%{transform:rotate(342.41deg)}86.25%{transform:rotate(343.79deg)}87.50%{transform:rotate(345.79deg)}88.75%{transform:rotate(347.09deg)}90.00%{transform:rotate(348.98deg)}91.25%{transform:rotate(350.22deg)}92.50%{transform:rotate(352.04deg)}93.75%{transform:rotate(353.23deg)}95.00%{transform:rotate(354.99deg)}96.25%{transform:rotate(356.16deg)}97.50%{transform:rotate(357.89deg)}98.75%{transform:rotate(359.04deg)}to{transform:rotate(360deg)}}[data-theme=dark] .avatar-wrap,[data-theme=light] .avatar-wrap{background:linear-gradient(135deg,#e2e8f0,#94a3b8 16%,#475569,#1e293b 52%,#64748b 78%,#cbd5e1)}.avatar-stack{position:relative;width:160px;height:160px}.avatar{position:absolute;inset:0;width:100%;height:100%;border-radius:999px;object-fit:cover;object-position:center top}.avatar--primary{animation:avatar-primary-fade 60s linear infinite}.avatar--alt{animation:avatar-alt-fade 60s linear infinite}[data-theme=light] .avatar--alt-dark,[data-theme=dark] .avatar--alt-light{visibility:hidden;pointer-events:none}@keyframes avatar-primary-fade{0%,to{opacity:1}33.333%{opacity:0}50%{opacity:0}83.333%{opacity:1}}@keyframes avatar-alt-fade{0%,to{opacity:0}33.333%{opacity:1}50%{opacity:1}83.333%{opacity:0}}@media(prefers-reduced-motion:reduce){.avatar-orbit-light{animation:none}.avatar--primary{animation:none;opacity:1}.avatar--alt{animation:none;opacity:0}[data-theme=light] .avatar--alt-dark,[data-theme=dark] .avatar--alt-light{visibility:hidden}}.projects{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;width:100%;margin:0;text-align:left}.project-card{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;border-radius:1.25rem;background:var(--surface);border:1px solid transparent;box-shadow:none;text-decoration:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--card-hover-border, var(--green-border));box-shadow:var(--card-shadow-hover),var(--card-glow-hover)}.project-card:focus-visible{outline:2px solid var(--card-focus-ring, var(--green));outline-offset:2px;transform:translateY(-3px);border-color:var(--card-hover-border, var(--green-border));box-shadow:var(--card-shadow-hover),var(--card-glow-hover)}.project-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:.25rem}.project-tags{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0;pointer-events:none}.project-tag{padding:.25rem .625rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-display);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.project-tag--agentic{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.project-card h2{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.project-card p{margin:0;flex:1;font-size:1.0625rem;line-height:1.65;color:var(--text-muted)}[data-theme=dark] .project-card p{color:#fff}[data-theme=light] .project-card p{color:var(--project-description-color)}.project-link{display:inline-flex;align-items:center;gap:.375rem;margin-top:0;font-family:var(--font-display);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--subtagline-color);transition:color .15s ease}.project-card:hover .project-link{color:var(--subtagline-hover)}.footer{margin-top:auto;padding:3rem 1.25rem 0;font-family:var(--font-display);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);text-align:center}[data-theme=light] .showcase-bg__veil,[data-theme=light] .showcase-bg__glow,[data-theme=dark] .showcase-bg__veil,[data-theme=dark] .showcase-bg__glow{display:none}[data-theme=light] .intro:before{inset:-.5rem -2rem;background:radial-gradient(ellipse at center,var(--hero-text-scrim) 0%,transparent 78%)}@media(max-width:540px){.page{padding-bottom:1.5rem}.theme-toggle{top:1rem;right:1rem}.hero-intro{padding:1.5rem 1rem}.hero-top{padding:2rem 1rem}.projects-wrap{padding:.75rem 1rem 0}.hero-intro .tagline,.hero-intro .subtagline{white-space:normal;overflow-wrap:break-word}.hero-intro .tagline{font-size:clamp(1.125rem,4.8vw,1.375rem)}.showcase-bg{min-height:261px;background-position:center center;background-size:2000px 373px}.avatar-stack{width:132px;height:132px}.avatar-wrap{--avatar-orbit-radius: 71px}[data-theme=light] .avatar-orbit-light__dot{width:8px;height:8px}[data-theme=dark] .avatar-orbit-light__dot{width:10px;height:10px}.projects{grid-template-columns:1fr}.intro:before{inset:-.25rem -.75rem}}[data-theme=dark] .project-card{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}[data-theme=dark] .project-card:hover,[data-theme=dark] .project-card:focus-visible{background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:#60a5fa7a;box-shadow:var(--card-shadow-hover),0 0 0 1px #60a5fad1,0 0 14px 2px #60a5fa94,0 0 28px 4px #60a5fa47}[data-theme=dark] .project-card:focus-visible{outline-color:#60a5fa}*,*:before,*:after{box-sizing:border-box}:root,[data-theme=dark]{color-scheme:dark;--bg-top: #0b1220;--bg-bottom: #111827;--bg-glow-a: rgba(59, 130, 246, .12);--bg-glow-b: rgba(96, 165, 250, .08);--surface: rgba(10, 18, 32, .78);--surface-border: rgba(148, 163, 184, .12);--text: #f3f4f6;--text-muted: #9ca3af;--accent: #60a5fa;--accent-hover: #93c5fd;--accent-soft: rgba(96, 165, 250, .14);--accent-border: rgba(96, 165, 250, .24);--green: #9ed95a;--green-soft: rgba(158, 217, 90, .16);--green-border: rgba(158, 217, 90, .42);--green-glow-core: rgba(158, 217, 90, .55);--subtagline-color: #fcd34d;--subtagline-hover: #fde68a;--avatar-ring-start: #cbd5e1;--avatar-ring-end: #334155;--avatar-shadow: rgba(15, 23, 42, .55);--avatar-orbit-color: rgba(240, 253, 250, .95);--avatar-halo-border: rgba(94, 234, 212, .82);--avatar-halo-shadow: 0 0 0 1px rgba(96, 165, 250, .5), 0 0 16px 4px rgba(96, 165, 250, .38), 0 0 32px 8px rgba(96, 165, 250, .2), inset 0 2px 3px rgba(255, 255, 255, .38), inset 0 -3px 6px rgba(15, 23, 42, .62), 0 16px 40px rgba(0, 0, 0, .48);--hero-text-scrim: rgba(8, 15, 30, .38);--hero-text-stroke: rgba(94, 234, 212, .82);--hero-text-shadow-accent: 0 0 1px rgba(0, 0, 0, .95), 0 1px 4px rgba(0, 0, 0, .72), 0 0 18px rgba(8, 15, 30, .45);--hero-text-shadow-green: 0 0 1px rgba(0, 0, 0, .95), 0 1px 4px rgba(0, 0, 0, .72), 0 0 16px rgba(158, 217, 90, .35);--toggle-bg: rgba(17, 24, 39, .72);--toggle-border: rgba(148, 163, 184, .16);--shadow: 0 18px 50px rgba(0, 0, 0, .35);--card-shadow-hover: 0 22px 60px rgba(0, 0, 0, .42);--card-glow: 0 0 0 1px rgba(96, 165, 250, .42), 0 0 10px 1px rgba(96, 165, 250, .34), 0 0 18px 2px rgba(96, 165, 250, .16);--card-glow-hover: 0 0 0 1px rgba(96, 165, 250, .82), 0 0 14px 2px rgba(96, 165, 250, .58), 0 0 28px 4px rgba(96, 165, 250, .28);--card-hover-border: rgba(96, 165, 250, .48);--card-focus-ring: #60a5fa;--font-display: "Orbitron", "Exo 2", sans-serif;--font-body: "Exo 2", system-ui, sans-serif}[data-theme=light]{color-scheme:light;--bg-top: #ffffff;--bg-bottom: #ffffff;--bg-glow-a: transparent;--bg-glow-b: transparent;--surface: rgba(255, 255, 255, .92);--surface-border: rgba(15, 23, 42, .08);--text: #1a2332;--text-muted: #5a6578;--project-description-color: #2a3344;--accent: #6f4e37;--accent-hover: #8a6246;--accent-soft: rgba(111, 78, 55, .1);--accent-border: rgba(111, 78, 55, .22);--green: #2f5320;--green-soft: rgba(47, 83, 32, .12);--green-border: rgba(47, 83, 32, .4);--green-glow-core: rgba(47, 83, 32, .45);--subtagline-color: #2f5320;--subtagline-hover: #3f6b29;--avatar-ring-start: #ffffff;--avatar-ring-end: #e5e7eb;--avatar-shadow: rgba(15, 23, 42, .12);--avatar-orbit-color: #f4fadc;--avatar-halo-border: #c9e066;--avatar-halo-shadow: 0 0 0 1px rgba(111, 78, 55, .58), 0 0 20px 6px rgba(74, 124, 46, .42), 0 0 40px 12px rgba(74, 124, 46, .22), 0 14px 36px rgba(15, 23, 42, .22);--hero-text-scrim: rgba(255, 255, 255, .52);--hero-text-stroke: rgba(255, 255, 255, .95);--hero-subtagline-color: #000000;--hero-text-shadow-dark: 0 1px 1px rgba(15, 23, 42, .92), 0 2px 5px rgba(15, 23, 42, .78), 0 4px 12px rgba(15, 23, 42, .58);--hero-text-shadow-accent: none;--hero-text-shadow-green: 0 0 1px rgba(255, 255, 255, 1), 0 0 8px rgba(255, 255, 255, .92), 0 0 22px rgba(94, 234, 212, .58), 0 0 36px rgba(94, 234, 212, .34);--toggle-bg: rgba(255, 255, 255, .92);--toggle-border: rgba(15, 23, 42, .1);--shadow: 0 18px 50px rgba(15, 23, 42, .08);--card-shadow-hover: 0 22px 60px rgba(15, 23, 42, .12);--card-glow: 0 0 0 1px rgba(47, 83, 32, .38), 0 0 8px 1px rgba(47, 83, 32, .28), 0 0 16px 2px rgba(47, 83, 32, .14);--card-glow-hover: 0 0 0 1px rgba(47, 83, 32, .72), 0 0 12px 2px rgba(47, 83, 32, .48), 0 0 24px 4px rgba(47, 83, 32, .22);--card-hover-border: rgba(47, 83, 32, .4);--card-focus-ring: #2f5320;--font-display: "Orbitron", "Exo 2", sans-serif;--font-body: "Exo 2", system-ui, sans-serif}html{font-size:16px}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--text);background:radial-gradient(circle at 20% 10%,var(--bg-glow-a),transparent 42%),radial-gradient(circle at 80% 0%,var(--bg-glow-b),transparent 38%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%);-webkit-font-smoothing:antialiased;transition:color .2s ease,background .2s ease}#root{min-height:100vh}a{color:inherit}
