*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,Fira Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.\!ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.sepia{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia:sepia(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root,[data-theme=dark]{--black:#000000;--white:#f4f5f7;--gray-100:#e8e8ea;--gray-300:#cfd1d6;--gray-400:#a8abb3;--gray-500:#8b8f98;--gray-700:#2a2c31;--gray-800:#141518;--gray-900:#0a0b0d;--border:rgba(255,255,255,0.09);--border-md:rgba(255,255,255,0.2);--grid-line:rgba(255,255,255,0.03);--navbar-bg:rgba(0,0,0,0.62);--overlay-bg:rgba(0,0,0,0.94);--ghost-hover:rgba(255,255,255,0.4);--card-hover:rgba(255,255,255,0.04);--accent:#c8c8c8;--accent-primary:#6c9dff;--accent-hover:#8bb2ff;--accent-glow:rgba(108,157,255,0.28);--label-bg:rgba(10,10,12,0.82);--cursor-ring:rgba(255,255,255,0.35);--cursor-ring-hover:rgba(255,255,255,0.70);--cursor-ring-fill:rgba(255,255,255,0.05);--cursor-glow:rgba(140,175,255,0.05);--nav-glass:rgba(7,8,11,0.52);--nav-edge:rgba(255,255,255,0.11);--nav-sheen:rgba(255,255,255,0.08);--nav-lift:0 12px 40px rgba(0,0,0,0.5);--nav-wash:rgba(255,255,255,0.055);--menu-glass:rgba(3,4,7,0.74);--menu-bloom:radial-gradient(circle,rgba(108,157,255,0.20) 0%,rgba(124,58,237,0.10) 38%,transparent 68%);--surface:rgba(255,255,255,0.022);--surface-hover:rgba(255,255,255,0.05);--surface-blur:blur(14px) saturate(130%);--surface-shadow:0 1px 0 rgba(255,255,255,0.05) inset,0 18px 50px rgba(0,0,0,0.55);--font-display:var(--font-fraunces),Georgia,"Times New Roman",serif;--font-body:var(--font-source-serif),Georgia,Cambria,serif;--font-mono:var(--font-jetbrains),ui-monospace,SFMono-Regular,Consolas,monospace;--t-3xs:0.625rem;--t-2xs:0.6875rem;--t-xs:0.75rem;--t-sm:0.8125rem;--t-ms:0.875rem;--t-md:0.9375rem;--t-base:1.0625rem;--t-lg:1.1875rem;--t-xl:clamp(1.25rem,1.162rem + 0.376vw,1.5rem);--t-2xl:clamp(1.625rem,1.449rem + 0.751vw,2.125rem);--t-3xl:clamp(2.125rem,1.641rem + 2.066vw,3.5rem);--t-4xl:clamp(2.5rem,1.796rem + 3.005vw,4.5rem);--t-5xl:clamp(3.375rem,1.966rem + 6.009vw,7.375rem);--lh-hero:1.0;--lh-display:1.1;--lh-heading:1.2;--lh-ui:1.4;--lh-body:1.65;--lh-relaxed:1.78;--tk-hero:-0.035em;--tk-display:-0.022em;--tk-heading:-0.014em;--tk-body:0;--tk-label:0.12em;--tk-wide:0.16em;--measure:68ch;--measure-narrow:54ch;--fx-hero:"opsz" 120,"WONK" 1;--fx-display:"opsz" 60,"WONK" 1;--fx-heading:"opsz" 36,"WONK" 1;--fx-title:"opsz" 20,"WONK" 0}[data-theme=light]{--black:#f7f6f3;--white:#0d0d0f;--gray-100:#1a1a1d;--gray-300:#33343a;--gray-400:#55565e;--gray-500:#6e6f77;--gray-700:#d3d2ce;--gray-800:#e6e4df;--gray-900:#efedE8;--border:rgba(20,20,26,0.1);--border-md:rgba(20,20,26,0.2);--grid-line:rgba(0,0,0,0.04);--navbar-bg:rgba(247,246,243,0.72);--overlay-bg:rgba(247,246,243,0.97);--ghost-hover:rgba(20,20,26,0.3);--card-hover:rgba(20,20,26,0.03);--accent:#333333;--accent-primary:#2f5bd7;--accent-hover:#1e40af;--accent-glow:rgba(47,91,215,0.16);--label-bg:rgba(255,255,255,0.92);--cursor-ring:rgba(20,20,26,0.28);--cursor-ring-hover:rgba(20,20,26,0.60);--cursor-ring-fill:rgba(20,20,26,0.045);--cursor-glow:rgba(47,91,215,0.045);--nav-glass:rgba(247,246,243,0.66);--nav-edge:rgba(20,20,26,0.11);--nav-sheen:rgba(255,255,255,0.85);--nav-lift:0 10px 32px rgba(20,20,26,0.09);--nav-wash:rgba(20,20,26,0.05);--menu-glass:rgba(247,246,243,0.86);--menu-bloom:radial-gradient(circle,rgba(47,91,215,0.13) 0%,rgba(124,58,237,0.06) 38%,transparent 68%);--surface:#ffffff;--surface-hover:#ffffff;--surface-blur:none;--surface-shadow:0 1px 2px rgba(20,20,26,0.05),0 8px 24px rgba(20,20,26,0.06)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--black)}.star-canvas{position:fixed;inset:0;z-index:-1;pointer-events:none;display:block}body{background:transparent;color:var(--white);font-family:var(--font-body);font-size:var(--t-base);font-weight:400;line-height:var(--lh-body);letter-spacing:var(--tk-body);font-optical-sizing:auto;text-rendering:optimizeLegibility;overflow-x:hidden}[data-theme=dark] body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.contact-headline,.display-lg,.display-md,.display-xl,.exp-title-row,.project-name,.section-heading,.stat-number,h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;font-variation-settings:var(--fx-title);text-wrap:balance}li,p{text-wrap:pretty}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 120% 80% at 50% 0,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 100%),radial-gradient(ellipse 80% 60% at 50% 100%,rgba(0,0,0,0) 0,rgba(0,0,0,.45) 100%)}[data-theme=light] body:before{display:none}img,svg{display:block}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar-thumb{background:var(--gray-700);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}::-moz-selection{background:var(--accent-glow);color:var(--white)}::selection{background:var(--accent-glow);color:var(--white)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 48px}.mono{font-family:var(--font-mono)}.text-muted{color:var(--gray-300)}.text-faint{color:var(--gray-500)}.section-label .mono{color:var(--accent-primary)}.section-label{display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:var(--t-sm);font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--gray-500);margin-bottom:18px}.section-heading{font-size:var(--t-3xl);font-weight:700;letter-spacing:var(--tk-display);line-height:var(--lh-display);font-variation-settings:var(--fx-heading);color:var(--white);margin-bottom:56px}[data-theme=dark] .contact-headline,[data-theme=dark] .display-lg,[data-theme=dark] .display-xl,[data-theme=dark] .section-heading{background:linear-gradient(175deg,#ffffff,#ffffff 42%,#9aa0ad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}[data-theme=dark] .hero-name{background:none;-webkit-text-fill-color:currentColor}[data-theme=dark] .hero-name .hero-line>span{background:linear-gradient(175deg,#ffffff,#ffffff 42%,#9aa0ad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-intro{font-size:var(--t-lg);color:var(--gray-400);line-height:1.7;max-width:560px;margin-top:-32px;margin-bottom:56px}.section-label:after{content:"";flex:1;height:1px;background:var(--border);max-width:160px;transform:scaleX(0);transform-origin:left;transition:transform .8s ease .3s}.section-label.is-visible:after{transform:scaleX(1)}.section{padding:120px 0;border-top:1px solid transparent;position:relative}.section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0,var(--border) 15%,var(--border-md) 50%,var(--border) 85%,transparent 100%)}.display-xl{font-size:var(--t-5xl);font-weight:800;line-height:var(--lh-hero);letter-spacing:var(--tk-hero);font-variation-settings:var(--fx-hero);color:var(--white)}.display-lg{font-size:var(--t-4xl);font-weight:700;line-height:var(--lh-display);letter-spacing:var(--tk-display);font-variation-settings:var(--fx-display);color:var(--white)}.display-md{font-size:var(--t-2xl);font-weight:600;line-height:var(--lh-heading);letter-spacing:var(--tk-heading);font-variation-settings:var(--fx-heading);color:var(--white)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.cursor{animation:blink 1.1s ease-in-out infinite}.badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-300)}.badge-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.4);animation:pulse-green 2.5s ease-in-out infinite}@keyframes pulse-green{0%,to{box-shadow:0 0 0 0 rgba(74,222,128,.4)}50%{box-shadow:0 0 0 7px rgba(74,222,128,0)}}.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:var(--t-sm);font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:15px 32px;border-radius:2px;transition:background .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-fill{background:var(--accent-primary);color:#05070d;font-weight:600;box-shadow:0 4px 20px var(--accent-glow)}.btn-fill:hover{background:var(--accent-hover);box-shadow:0 10px 38px var(--accent-glow)}[data-theme=light] .btn-fill{color:#ffffff}.btn-ghost{border:1px solid var(--border-md);color:var(--gray-300);background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur)}.btn-ghost:hover{border-color:var(--ghost-hover);color:var(--white);background:var(--surface-hover);box-shadow:0 8px 28px rgba(255,255,255,.06)}[data-theme=light] .btn-ghost{background:transparent}.hero-section{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding-top:68px;position:relative;--hero-pad:clamp(14px,2.7vh,42px);--hs-sm:clamp(9px,1.4vh,16px);--hs-md:clamp(12px,2.2vh,25px);--hs-lg:clamp(16px,3.1vh,36px);--hero-name:min(var(--t-5xl),11vh);--hero-lead:clamp(15px,1.9vh,18px);--hero-sub:clamp(14px,1.75vh,16px)}.hero-inner{display:flex;flex-direction:column;justify-content:center;gap:var(--hs-lg);padding-top:var(--hero-pad);padding-bottom:var(--hero-pad)}[data-theme=dark] .hero-section:before{content:"";position:absolute;top:-10%;left:-15%;width:75%;height:90%;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 55% 55% at 30% 40%,rgba(108,157,255,.13) 0,transparent 70%),radial-gradient(ellipse 45% 50% at 65% 65%,rgba(150,100,255,.09) 0,transparent 70%);filter:blur(30px);animation:aurora 18s ease-in-out infinite alternate}@keyframes aurora{0%{transform:translateZ(0) scale(1);opacity:.85}to{transform:translate3d(6%,4%,0) scale(1.12);opacity:1}}@media (prefers-reduced-motion:reduce){[data-theme=dark] .hero-section:before{animation:none}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.hero-grid{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:60px 60px}[data-theme=light] .hero-grid{background-image:none}.hero-badge,.hero-name{margin-bottom:var(--hs-md)}.hero-name{font-size:var(--hero-name)}.hero-lead{margin-bottom:var(--hs-sm)}.hero-sub{margin-bottom:var(--hs-lg)}.hero-line{overflow:hidden;padding-bottom:.3em;margin-bottom:-.3em}.hero-line,.hero-line>span{display:block}.hero-lead{font-size:var(--hero-lead);line-height:1.58;color:var(--gray-300);max-width:52ch}.hero-sub{font-size:var(--hero-sub);line-height:1.62;color:var(--gray-400);max-width:62ch}.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}.hero-roles{font-family:var(--font-mono);font-size:var(--t-sm);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-400);margin-bottom:var(--hs-sm);display:flex;align-items:center;gap:10px}.hero-prompt{color:var(--accent-primary);font-size:var(--t-base);line-height:1;flex-shrink:0}.hero-strip{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--hs-sm) clamp(24px,4vw,56px);padding-top:var(--hs-md)}.hero-strip:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--border-md) 0,var(--border) 55%,transparent 100%)}.hero-stats{display:flex;align-items:stretch;flex-wrap:wrap;list-style:none}.hero-stat{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 clamp(16px,2.1vw,32px);border-left:1px solid var(--border)}.hero-stat:first-child{padding-left:0;border-left:none}.hero-stat-value{font-family:var(--font-display);font-size:clamp(21px,3vh,32px);font-weight:700;line-height:1;letter-spacing:var(--tk-heading);font-variation-settings:var(--fx-title);color:var(--white);transition:color .25s ease,text-shadow .3s ease}.hero-stat:hover .hero-stat-value{color:var(--accent-primary);text-shadow:0 0 26px var(--accent-glow)}.hero-stat-label{font-family:var(--font-mono);font-size:var(--t-3xs);letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500);white-space:nowrap;transition:color .25s ease}.hero-stat:hover .hero-stat-label{color:var(--gray-300)}.hero-social{display:flex;align-items:center;flex-wrap:wrap;gap:10px clamp(14px,1.5vw,24px)}.hero-social-link{position:relative;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);transition:color .25s ease}.hero-social-link:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--accent-primary);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.16,1,.3,1)}.hero-social-link:hover{color:var(--white)}.hero-social-link:hover:after{transform:scaleX(1);transform-origin:left}.hero-cols{display:grid;grid-template-columns:1fr minmax(0,300px);gap:0 clamp(40px,5vw,80px);align-items:center}.hero-text-col{min-width:0}.hero-photo-col{display:flex;justify-content:flex-end;align-items:center}.hero-plate{display:flex;flex-direction:column;gap:14px;width:100%;max-width:300px}.hero-avatar-wrap{position:relative;width:100%;aspect-ratio:4/5}.hero-avatar{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 14%;object-position:50% 14%;border-radius:4px;border:1px solid var(--border-md);filter:grayscale(20%);transition:filter .4s ease,box-shadow .4s ease}.hero-plate-caption{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:var(--t-3xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gray-500)}.hero-plate-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--border-md),transparent)}[data-theme=dark] .hero-avatar{box-shadow:0 24px 70px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06)}.hero-avatar:hover{filter:grayscale(0)}[data-theme=dark] .hero-avatar:hover{box-shadow:0 24px 80px var(--accent-glow),0 0 0 1px var(--border-md)}.avatar-bracket{position:absolute;width:20px;height:20px;border-color:var(--border-md);border-style:solid;pointer-events:none}.avatar-bracket-tl{top:-8px;left:-8px;border-width:1px 0 0 1px}.avatar-bracket-br{bottom:-8px;right:-8px;border-width:0 1px 1px 0}.stats-row{display:flex;gap:0;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur)}.stat-item{flex:1;padding:22px 24px;border-right:1px solid var(--border);transition:background .2s}.stat-item:last-child{border-right:none}.stat-item:hover{background:var(--card-hover)}.stat-item:hover .stat-number{color:var(--accent-primary)}.stat-number{font-size:var(--t-2xl);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--white);transition:color .2s,text-shadow .25s}.stat-item:hover .stat-number{text-shadow:0 0 26px var(--accent-glow)}.stat-label{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.09em;text-transform:uppercase;color:var(--gray-400);margin-top:8px}.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;align-items:start}.about-para{color:var(--gray-300);font-size:var(--t-lg);line-height:var(--lh-relaxed);max-width:var(--measure);margin-bottom:22px;text-wrap:pretty}.about-para.is-lead{font-size:var(--t-xl);line-height:1.58;color:var(--gray-100);margin-bottom:30px}.sp-w{transition:none}.sp-b{color:var(--white);font-weight:600}.about-skills-heading{margin-top:44px;margin-bottom:4px;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500)}.skills-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin-top:20px}.skill-row{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:var(--t-md);color:var(--gray-300);padding:11px 0;border-bottom:1px solid var(--border);transition:color .25s ease}.skill-row:hover{color:var(--white)}.skill-row:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gray-700);flex-shrink:0;transition:background .25s ease,box-shadow .25s ease}.skill-row:hover:before{background:var(--accent-primary);box-shadow:0 0 8px var(--accent-glow)}.exp-timeline{position:relative;--exp-year:clamp(92px,11vw,168px);--exp-rail:clamp(28px,3vw,44px);--exp-dot-top:26px;--exp-measure:68ch}.exp-rail-track{position:absolute;top:0;bottom:0;left:calc(var(--exp-year) + var(--exp-rail) / 2);width:1px;pointer-events:none;background:linear-gradient(180deg,transparent 0,var(--border) 3%,var(--border) 94%,transparent 100%)}.exp-rail-beam{position:absolute;inset:0;transform-origin:top center;background:linear-gradient(180deg,var(--accent-primary),var(--accent-hover));box-shadow:0 0 10px var(--accent-glow)}.exp-row{display:grid;grid-template-columns:var(--exp-year) var(--exp-rail) minmax(0,1fr);padding:clamp(26px,3.6vh,46px) 0;will-change:opacity,transform}.exp-row:first-child{padding-top:0}.exp-row:last-child{padding-bottom:0}.exp-year{position:sticky;top:108px;align-self:start}.exp-year-block{display:block}.exp-year-num{display:block;font-family:var(--font-display);font-size:clamp(26px,2.9vw,44px);font-weight:700;line-height:.95;letter-spacing:var(--tk-display);font-variation-settings:var(--fx-heading);color:var(--gray-500);transition:color .45s ease}.exp-row.is-active .exp-year-num{color:var(--white)}.exp-year-end{margin-top:9px;letter-spacing:.14em;color:var(--gray-500)}.exp-current,.exp-year-end{display:block;font-family:var(--font-mono);font-size:var(--t-3xs);text-transform:uppercase}.exp-current{width:-moz-fit-content;width:fit-content;margin-top:14px;padding:3px 8px;border-radius:2px;letter-spacing:.1em;color:var(--accent-primary);background:var(--accent-glow)}.exp-dot-cell{position:relative;display:flex;justify-content:center;align-self:start;padding-top:var(--exp-dot-top)}.exp-dot-cell:after{content:"";position:absolute;top:calc(var(--exp-dot-top) + 4px);left:50%;right:-10px;height:1px;background:var(--border);transition:background .45s ease}.exp-row.is-active .exp-dot-cell:after{background:var(--border-md)}.exp-dot{position:relative;z-index:1;width:9px;height:9px;border-radius:50%;background:var(--gray-700);border:1px solid var(--border-md);transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.exp-row.is-active .exp-dot{background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-glow)}.exp-body-inner{max-width:var(--exp-measure);margin-inline:auto}.exp-body{min-width:0;padding:20px 26px;border-radius:4px;background:transparent;transition:background .5s ease,box-shadow .5s ease}.exp-row.is-active .exp-body{background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);box-shadow:var(--surface-shadow)}.exp-company-tag{display:block;margin-top:6px;letter-spacing:.06em}.exp-company-tag.is-link{display:inline-flex;align-items:center;gap:5px;transition:color .2s ease}.exp-company-tag.is-link:hover,.exp-title-row{color:var(--white)}.exp-title-row{font-size:var(--t-xl);font-weight:600}.exp-company-tag{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--gray-400);font-weight:400}.exp-title-row{line-height:var(--lh-heading)}.exp-desc{font-size:var(--t-base);color:var(--gray-300);line-height:var(--lh-relaxed);margin:14px 0}.exp-bullets{margin:12px 0;display:flex;flex-direction:column;gap:6px;list-style:none;padding:0}.exp-bullets li{font-size:var(--t-base);color:var(--gray-300);line-height:var(--lh-body);padding-left:18px;position:relative}.exp-bullets li:before{content:"–";position:absolute;left:0;color:var(--gray-500)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.chip{font-size:var(--t-xs);padding:4px 11px;border:1px solid var(--border-md);border-radius:1px;letter-spacing:.04em}.chip,.tech-chip{font-family:var(--font-mono);color:var(--gray-300)}.tech-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-2xs);padding:4px 10px;border:1px solid var(--border-md);border-radius:2px;letter-spacing:.03em;white-space:nowrap;transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}.tech-chip svg{flex-shrink:0;opacity:.8;transition:color .2s ease,opacity .2s ease}.tech-chip.is-md{gap:7px;font-size:var(--t-sm);padding:8px 14px;border-radius:3px}.tech-chip:hover{color:var(--white);border-color:var(--accent-primary)}.tech-chip:hover svg{color:var(--accent-primary);opacity:1}.project-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:40px}.project-filter-tab{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--border);background:transparent;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--gray-400);cursor:pointer;transition:color .25s ease,border-color .25s ease}.project-filter-tab:hover{color:var(--white);border-color:var(--border-md)}.project-filter-tab.is-on{color:var(--white);border-color:transparent}.project-filter-pill{position:absolute;inset:0;border-radius:999px;background:var(--surface-hover);border:1px solid var(--border-md);box-shadow:inset 0 1px 0 var(--nav-sheen);z-index:0}[data-theme=light] .project-filter-tab.is-on .project-filter-pill{background:var(--white)}[data-theme=light] .project-filter-tab.is-on{color:var(--black)}.project-filter-count,.project-filter-label{position:relative;z-index:1}.project-filter-count{font-size:var(--t-3xs);color:var(--accent-primary)}.project-filter-tab.is-on .project-filter-count{color:inherit;opacity:.7}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-flow:row dense;gap:16px}.project-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:clamp(24px,2.6vw,38px);border:1px solid var(--border);border-radius:12px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);overflow:hidden;cursor:default;transition:border-color .3s ease,box-shadow .35s ease,transform .3s ease,background .3s ease}.project-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle 420px at 100% 0,var(--accent-glow) 0,transparent 62%);opacity:0;transition:opacity .4s ease;pointer-events:none}.project-card:hover:after{opacity:1}.project-card.has-link{cursor:pointer}.project-card.has-link:hover{border-color:var(--border-md);box-shadow:0 22px 60px rgba(0,0,0,.5)}[data-theme=dark] .project-card.has-link:hover{box-shadow:0 22px 60px rgba(0,0,0,.55),0 0 0 1px var(--accent-glow)}.project-card.is-feature{grid-column:span 2;gap:16px;padding:clamp(28px,3vw,46px)}.project-card.is-feature .project-name{font-size:var(--t-2xl)}.project-card.is-feature .project-desc{max-width:60ch;font-size:var(--t-lg)}.project-card.is-feature .project-ghost{font-size:clamp(120px,16vw,240px)}.project-ghost{position:absolute;top:-.28em;right:.05em;font-family:var(--font-display);font-size:clamp(78px,8vw,128px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--white);opacity:.04;pointer-events:none;transition:opacity .4s ease,color .4s ease}.project-card:hover .project-ghost{opacity:.09;color:var(--accent-primary)}.project-eyebrow{display:flex;align-items:center;gap:9px;font-size:var(--t-2xs);letter-spacing:.14em;color:var(--gray-500)}.project-eyebrow-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-primary);box-shadow:0 0 8px var(--accent-glow)}.project-name{font-size:var(--t-xl);font-weight:700;letter-spacing:-.01em;line-height:var(--lh-heading);color:var(--white);display:flex;align-items:center;gap:10px}.project-name a{display:inline-flex;align-items:center;gap:8px;transition:color .2s}.project-arrow{color:var(--gray-500);transition:transform .3s cubic-bezier(.16,1,.3,1),color .3s ease}.project-card:hover .project-arrow{transform:translate(3px,-3px);color:var(--accent-primary)}.project-desc{font-size:var(--t-base);color:var(--gray-300);line-height:1.7;flex:1}.project-foot{display:flex;flex-direction:column;gap:12px;margin-top:4px}.project-foot .tag-row{margin-top:0}.project-stores{display:flex;gap:16px}.project-team-note{text-align:center;margin-top:44px;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--gray-500);letter-spacing:.04em;max-width:640px;margin-left:auto;margin-right:auto;line-height:1.7}[data-theme=light] .project-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}[data-theme=light] .project-card.has-link:hover{box-shadow:0 16px 44px rgba(0,0,0,.1),0 0 0 1px var(--border-md)}[data-theme=light] .project-ghost{opacity:.1}[data-theme=light] .project-card:hover .project-ghost{color:var(--accent-primary);opacity:.18}.store-link{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--gray-500);transition:color .2s}.store-link:hover{color:var(--white)}.nda-pill{font-family:var(--font-mono);font-size:var(--t-3xs);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border-md);padding:3px 8px;border-radius:1px;color:var(--gray-500)}.arsenal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.arsenal-card{position:relative;padding:clamp(22px,2vw,30px);border:1px solid var(--border);border-radius:12px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);overflow:hidden;transition:border-color .3s ease,transform .3s ease,box-shadow .35s ease,background .3s ease}.arsenal-card:hover{border-color:var(--border-md);box-shadow:0 20px 52px rgba(0,0,0,.42)}[data-theme=light] .arsenal-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}[data-theme=light] .arsenal-card:hover{box-shadow:0 16px 44px rgba(0,0,0,.1),0 0 0 1px var(--border-md)}.arsenal-rule{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}.arsenal-card:hover .arsenal-rule{transform:scaleX(1)}.arsenal-ghost{position:absolute;top:-.3em;right:.04em;font-family:var(--font-display);font-size:clamp(64px,6vw,104px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--white);opacity:.04;pointer-events:none;transition:opacity .4s ease,color .4s ease}.arsenal-card:hover .arsenal-ghost{opacity:.09;color:var(--accent-primary)}[data-theme=light] .arsenal-ghost{opacity:.1}[data-theme=light] .arsenal-card:hover .arsenal-ghost{color:var(--accent-primary);opacity:.18}.arsenal-head{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.arsenal-category{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-primary)}.arsenal-count{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--gray-500);font-variant-numeric:tabular-nums}.arsenal-tags{position:relative;display:flex;flex-wrap:wrap;gap:8px}.arsenal-tags .tech-chip:hover{transform:translateY(-2px);background:var(--surface-hover);box-shadow:0 6px 18px var(--accent-glow)}.contact-headline{font-size:var(--t-4xl);font-weight:700;letter-spacing:-.03em;line-height:.95;padding-bottom:.22em;color:var(--white);margin-bottom:28px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:0 100px;align-items:start}.contact-links{display:flex;flex-direction:column;gap:10px;margin-top:0}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,transparent 0,var(--accent-primary) 40%,var(--white) 100%);box-shadow:0 0 12px var(--accent-glow);transform-origin:left;z-index:200;transition:opacity .3s;opacity:.9}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-x{opacity:0;transform:translateX(-24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal-x.is-visible{opacity:1;transform:translateX(0)}.stagger-1{transition-delay:.05s}.stagger-2{transition-delay:.1s}.stagger-3{transition-delay:.15s}.stagger-4{transition-delay:.2s}.stagger-5{transition-delay:.25s}.stagger-6{transition-delay:.3s}.stagger-7{transition-delay:.35s}.stagger-8{transition-delay:.4s}.stagger-9{transition-delay:.45s}.stagger-10{transition-delay:.5s}.stagger-11{transition-delay:.55s}.stagger-12{transition-delay:.6s}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.hero-name:hover .hero-line>span{background:linear-gradient(90deg,var(--white) 0,var(--gray-300) 40%,var(--white) 60%,var(--gray-300) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 2s linear infinite}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;height:68px;will-change:transform;transition:background .45s ease,box-shadow .45s ease,backdrop-filter .45s ease}.navbar-inner{max-width:1200px;height:100%;margin:0 auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.navbar.is-glass{background:var(--nav-glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:inset 0 1px 0 var(--nav-sheen),var(--nav-lift)}.navbar.is-glass:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent 0,var(--nav-edge) 18%,var(--nav-edge) 82%,transparent 100%)}.nav-overlay :focus-visible,.navbar :focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px;border-radius:3px}.nav-logo{font-family:var(--font-mono);font-size:var(--t-ms);font-weight:500;letter-spacing:.05em;color:var(--white);flex-shrink:0;padding:12px 14px;margin:-12px -14px;transition:color .24s ease}.nav-logo:hover{color:var(--accent-primary)}.nav-actions{gap:14px;flex-shrink:0}.nav-actions,.nav-trigger{display:flex;align-items:center}.nav-trigger{gap:12px;height:44px;padding:0 2px 0 12px;background:none;border:none;color:var(--gray-300);cursor:pointer;transition:color .2s}.nav-trigger:hover{color:var(--white)}.nav-trigger-label{font-family:var(--font-mono);font-size:var(--t-xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;min-width:52px;text-align:right}.burger-box{display:flex;flex-direction:column;justify-content:center;gap:4px;width:22px;height:44px}.burger-bar{display:block;width:22px;height:1.5px;border-radius:2px;background:currentColor}.nav-overlay{position:fixed;inset:0;z-index:99;display:flex}.nav-overlay-glass{position:absolute;inset:0;background:var(--menu-glass);backdrop-filter:blur(26px) saturate(160%);-webkit-backdrop-filter:blur(26px) saturate(160%)}.nav-overlay-bloom{position:absolute;top:-55vmax;right:-45vmax;width:110vmax;height:110vmax;border-radius:50%;background:var(--menu-bloom);pointer-events:none}.nav-overlay-inner{position:relative;z-index:1;width:100%;max-width:1200px;max-height:100%;margin:0 auto;padding:116px 48px 48px;display:flex;flex-direction:column;gap:48px;overflow-y:auto;overscroll-behavior:contain}.menu-grid{flex:1;display:grid;grid-template-columns:1fr 300px;gap:0 80px;align-items:center}.menu-list{display:flex;flex-direction:column;gap:4px;list-style:none}.menu-item{position:relative;display:flex;align-items:center}.menu-hover-wash{inset:-4px -20px -4px -24px;border-radius:8px;background:var(--nav-wash)}.menu-active-bar,.menu-hover-wash{position:absolute;pointer-events:none}.menu-active-bar{left:-24px;top:16%;bottom:16%;width:2px;border-radius:2px;background:var(--accent-primary);box-shadow:0 0 14px var(--accent-glow)}.menu-row{display:block;position:relative;z-index:1;overflow:hidden;padding:10px 12px;margin:-10px -12px}.menu-link{display:flex;align-items:baseline;gap:20px;width:-moz-fit-content;width:fit-content;font-family:var(--font-display);font-size:var(--t-4xl);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--gray-400);transition:color .25s ease}.menu-link.is-active,.menu-link:hover{color:var(--white)}.menu-num{flex-shrink:0;font-family:var(--font-mono);font-size:var(--t-xs);font-weight:500;letter-spacing:.12em;color:var(--gray-500);transition:color .25s ease}.menu-link.is-active .menu-num,.menu-link:hover .menu-num{color:var(--accent-primary)}.menu-aside{display:flex;flex-direction:column;gap:36px}.menu-aside-heading{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.menu-social{display:flex;flex-direction:column;gap:10px;list-style:none}.menu-social a{display:inline-block;font-family:var(--font-mono);font-size:var(--t-ms);color:var(--gray-300);transition:color .2s ease,transform .2s ease}.menu-social a:hover{color:var(--white);transform:translateX(5px)}.menu-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 32px;padding-top:26px;border-top:1px solid var(--border)}.menu-meta{display:flex;gap:28px}.menu-email,.menu-meta a{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);transition:color .2s}.menu-email:hover,.menu-meta a:hover{color:var(--white)}.menu-email{text-transform:none;letter-spacing:.04em}.contact-link-card{display:flex;align-items:center;gap:16px;padding:18px 22px;border:1px solid var(--border);border-radius:4px;color:var(--gray-300);transition:color .2s,border-color .2s,transform .15s,background .2s,box-shadow .25s;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur)}.contact-link-card:hover{color:var(--white);border-color:var(--border-md);transform:translateX(4px);background:var(--surface-hover);box-shadow:0 10px 34px rgba(0,0,0,.45)}[data-theme=light] .contact-link-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.07)}[data-theme=light] .contact-link-card:hover{background:#f9f9f9;box-shadow:0 4px 12px rgba(0,0,0,.1)}.contact-link-card>span{min-width:0}.contact-link-label{display:block;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);margin-bottom:2px}.contact-link-text{display:block;font-size:var(--t-base);color:inherit;font-weight:500;overflow-wrap:anywhere}@media (pointer:fine){*,:after,:before{cursor:none!important}.cursor-glow{--gx:50vw;--gy:50vh;inset:0;background:radial-gradient(circle 520px at var(--gx) var(--gy),var(--cursor-glow) 0,transparent 65%);z-index:1}.cursor-dot,.cursor-glow{position:fixed;pointer-events:none}.cursor-dot{top:0;left:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--white);z-index:9999;will-change:transform;transition:width .12s,height .12s,margin .12s,opacity .2s}.cursor-dot[data-pressed]{width:3px;height:3px;margin:-1.5px 0 0 -1.5px;opacity:.5}.cursor-ring{position:fixed;top:0;left:0;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;border:1px solid var(--cursor-ring);pointer-events:none;z-index:9998;will-change:transform;transition:width .22s ease,height .22s ease,margin .22s ease,background .22s ease,border-color .22s ease,opacity .22s}.cursor-ring[data-hover]{width:52px;height:52px;margin:-26px 0 0 -26px;background:var(--cursor-ring-fill);border-color:var(--cursor-ring-hover)}}@media (max-width:1024px){.container,.navbar-inner{padding:0 32px}.menu-grid{grid-template-columns:1fr;gap:44px 0;align-content:center}.menu-aside{gap:28px}.menu-social{flex-direction:row;flex-wrap:wrap;gap:12px 24px}.menu-social a:hover{transform:none}.hero-cols{grid-template-columns:1fr minmax(0,260px)}.hero-strip{justify-content:flex-start;gap:var(--hs-sm) 32px}.about-cols{grid-template-columns:1fr;gap:64px 0}.arsenal-grid{grid-template-columns:repeat(2,1fr);gap:16px}.contact-layout{gap:0 56px}.exp-body{padding:14px 18px}.exp-timeline{--exp-dot-top:21px}.section{padding:96px 0}}@media (max-width:767.98px){.container,.navbar-inner{padding:0 24px}.nav-overlay-inner{padding:104px 24px 40px}.faq-a{margin-left:clamp(20px,2.4vw,30px)}.menu-active-bar{left:-12px}.menu-hover-wash{inset:-4px -12px}.hero-cols{grid-template-columns:1fr;gap:var(--hs-lg) 0}.hero-photo-col{justify-content:center;order:-1}.hero-plate{max-width:210px}.hero-lead,.hero-sub{max-width:none}.hero-strip{flex-direction:column;align-items:flex-start;gap:var(--hs-md)}.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px 0;width:100%}.hero-stat{padding:0 0 0 18px;border-left:1px solid var(--border)}.hero-stat:nth-child(odd){padding-left:0;border-left:none}.section-heading,.section-intro{margin-bottom:40px}.section-intro{margin-top:-16px}.about-cols{gap:56px 0}.project-grid{grid-template-columns:1fr}.project-card.is-feature{grid-column:span 1}.project-card.is-feature .project-name{font-size:var(--t-xl)}.project-card.is-feature .project-desc{font-size:var(--t-base);max-width:none}.project-filter{gap:6px}.exp-timeline{--exp-year:0px;--exp-rail:26px}.exp-row{grid-template-columns:var(--exp-rail) minmax(0,1fr);padding:26px 0}.exp-timeline{--exp-dot-top:8px}.exp-dot-cell{grid-column:1;grid-row:1/span 2}.exp-dot-cell:after{display:none}.exp-year{grid-column:2;grid-row:1;position:static;margin-bottom:16px;flex-wrap:wrap;gap:0 12px}.exp-year,.exp-year-block{display:flex;align-items:baseline}.exp-year-block{gap:12px}.exp-current,.exp-year-end{margin-top:0}.exp-body{grid-column:2;grid-row:2;padding:0;background:none}.exp-row.is-active .exp-body{background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.stats-row{display:grid;grid-template-columns:1fr 1fr}.stat-item{border-right:1px solid var(--border)}.stat-item:nth-child(2n){border-right:none}.stat-item:nth-child(n+3){border-top:1px solid var(--border)}.stat-item{padding:18px 20px}.arsenal-grid,.skills-cols{grid-template-columns:1fr}.arsenal-grid{gap:14px}.contact-layout{grid-template-columns:1fr;gap:48px 0}.section{padding:80px 0}}@media (max-width:480px){.container,.navbar-inner{padding:0 20px}.nav-overlay-inner{padding:96px 20px 32px}.section{padding:64px 0}.btn{width:100%;justify-content:center}.stats-row{grid-template-columns:1fr}.stat-item{border-right:none}.stat-item:nth-child(n+2){border-top:1px solid var(--border)}.project-card{padding:22px 18px}.hero-plate{max-width:180px}.hero-stats{gap:16px 0}.hero-stat-label{white-space:normal}.hero-stat-value{font-size:clamp(19px,6.5vw,26px)}.hero-ctas,.hero-ctas>*{width:100%}}.hero-ribbon-wrap{margin-inline:calc(50% - 50vw)}.tech-ribbon{overflow:hidden;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.tech-ribbon-track{display:flex;width:-moz-max-content;width:max-content;animation:tech-ribbon-scroll 48s linear infinite}.tech-ribbon:hover .tech-ribbon-track{animation-play-state:paused}.tech-ribbon-half{display:flex}.tech-ribbon-item{display:inline-flex;align-items:center;gap:9px;margin-right:48px;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.05em;color:var(--gray-400);white-space:nowrap}.tech-ribbon-item svg{opacity:.85}@keyframes tech-ribbon-scroll{to{transform:translateX(-50%)}}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:row dense;gap:16px}.service-card{position:relative;padding:clamp(26px,2.4vw,36px);border:1px solid var(--border);border-radius:12px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);overflow:hidden;transition:border-color .3s ease,transform .3s ease,box-shadow .35s ease,background .3s ease}.service-card:hover{transform:translateY(-4px);border-color:var(--border-md);box-shadow:0 20px 52px rgba(0,0,0,.42)}[data-theme=light] .service-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}[data-theme=light] .service-card:hover{box-shadow:0 16px 44px rgba(0,0,0,.1),0 0 0 1px var(--border-md)}.service-card.is-feature{grid-column:span 2}.service-card.is-feature .service-title{font-size:var(--t-2xl)}.service-card.is-feature .service-desc{max-width:54ch;font-size:var(--t-base)}.service-card.is-feature .service-ghost{font-size:clamp(120px,14vw,210px)}.service-rule{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}.service-card:hover .service-rule{transform:scaleX(1)}.service-ghost{position:absolute;top:-.26em;right:.04em;font-family:var(--font-display);font-size:clamp(78px,7vw,118px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--white);opacity:.04;pointer-events:none;transition:opacity .4s ease,color .4s ease}.service-card:hover .service-ghost{opacity:.09;color:var(--accent-primary)}[data-theme=light] .service-ghost{opacity:.1}[data-theme=light] .service-card:hover .service-ghost{color:var(--accent-primary);opacity:.18}.service-num{position:relative;display:block;font-size:var(--t-2xs);color:var(--accent-primary);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}.service-title{position:relative;font-size:var(--t-lg);font-weight:600;letter-spacing:-.015em;line-height:var(--lh-heading);color:var(--white);margin-bottom:12px}.service-desc{position:relative;font-size:var(--t-md);color:var(--gray-400);line-height:1.72;max-width:42ch}@media (max-width:1023.98px){.services-grid{grid-template-columns:repeat(2,1fr)}.service-card.is-feature{grid-column:span 2}.service-card.is-feature .service-desc{max-width:none}}@media (max-width:719.98px){.services-grid{grid-template-columns:1fr}.service-card.is-feature{grid-column:span 1}.service-card.is-feature .service-title{font-size:var(--t-xl)}}.faq-list{display:flex;flex-direction:column;gap:12px}.faq-item{position:relative;border:1px solid var(--border);border-radius:12px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);overflow:hidden;transition:border-color .3s ease,box-shadow .35s ease,background .3s ease}.faq-item.is-open{border-color:var(--border-md)}[data-theme=light] .faq-item{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}[data-theme=light] .faq-item.is-open{box-shadow:0 12px 36px rgba(0,0,0,.08),0 0 0 1px var(--border-md)}.faq-item:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}.faq-item.is-open:before,.faq-item:hover:before{transform:scaleX(1)}.faq-ghost{position:absolute;top:-.3em;right:.06em;font-family:var(--font-display);font-size:clamp(64px,6vw,104px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--white);opacity:.04;pointer-events:none;transition:opacity .4s ease,color .4s ease}.faq-item.is-open .faq-ghost{opacity:.09;color:var(--accent-primary)}[data-theme=light] .faq-ghost{opacity:.09}[data-theme=light] .faq-item.is-open .faq-ghost{color:var(--accent-primary);opacity:.16}.faq-q-head{margin:0;font-weight:inherit}.faq-q{position:relative;z-index:1;display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:clamp(20px,2.2vw,26px) clamp(20px,2.4vw,30px);background:none;border:none;cursor:pointer;font-family:var(--font-display);font-size:var(--t-lg);font-weight:600;color:var(--gray-300);transition:color .25s ease}.faq-item.is-open .faq-q,.faq-q:hover{color:var(--white)}.faq-num{flex-shrink:0;font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--gray-500);letter-spacing:.1em;transition:color .25s ease}.faq-item.is-open .faq-num,.faq-q:hover .faq-num{color:var(--accent-primary)}.faq-q-text{flex:1;line-height:var(--lh-heading)}.faq-toggle{position:relative;flex-shrink:0;width:16px;height:16px;margin-left:8px;color:var(--gray-500);transition:color .25s ease}.faq-item.is-open .faq-toggle,.faq-q:hover .faq-toggle{color:var(--accent-primary)}.faq-toggle-bar{position:absolute;top:50%;left:50%;background:currentColor;border-radius:2px}.faq-toggle-h{width:16px;height:1.5px;margin:-.75px 0 0 -8px}.faq-toggle-v{width:1.5px;height:16px;margin:-8px 0 0 -.75px}.faq-a-wrap{overflow:hidden}.faq-a{position:relative;max-width:66ch;margin:0 clamp(20px,2.4vw,30px) 0 calc(clamp(20px, 2.4vw, 30px) + 2.6em);padding:2px 0 clamp(22px,2.4vw,28px) 18px;border-left:2px solid var(--accent-glow);color:var(--gray-400);font-size:var(--t-md);line-height:1.75}.contact-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:start}.contact-form-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);padding:clamp(24px,3vw,40px)}[data-theme=light] .contact-form-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}.contact-card-heading{font-size:var(--t-xl);font-weight:600;color:var(--white);margin-bottom:6px}.contact-card-note{font-size:var(--t-sm);color:var(--gray-500);margin-bottom:28px}.contact-form{display:flex;flex-direction:column;gap:18px}.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cf-field{display:flex;flex-direction:column;gap:8px}.cf-label{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);transition:color .25s ease}.cf-field:focus-within .cf-label{color:var(--accent-primary)}.cf-input{width:100%;padding:13px 15px;border:1px solid var(--border-md);border-radius:10px;background:var(--surface);color:var(--white);font-family:var(--font-body);font-size:var(--t-md);line-height:1.5;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.cf-input::-moz-placeholder{color:var(--gray-500)}.cf-input::placeholder{color:var(--gray-500)}[data-theme=light] .cf-input{background:#fdfdfc}.cf-input:focus{outline:none;border-color:var(--accent-primary);background:var(--surface-hover);box-shadow:0 0 0 3px var(--accent-glow)}textarea.cf-input{resize:vertical;min-height:130px}.cf-select{position:relative}.cf-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.cf-select-trigger[aria-expanded=true]{border-color:var(--accent-primary);background:var(--surface-hover);box-shadow:0 0 0 3px var(--accent-glow)}.cf-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-select-chevron{display:flex;flex-shrink:0;color:var(--gray-500);transition:transform .25s ease,color .25s ease}.cf-select-trigger[aria-expanded=true] .cf-select-chevron{transform:rotate(180deg);color:var(--accent-primary)}.cf-select-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;list-style:none;margin:0;padding:6px;max-height:264px;overflow-y:auto;transform-origin:top center;border:1px solid var(--border-md);border-radius:12px;background:var(--overlay-bg);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);box-shadow:0 20px 54px rgba(0,0,0,.5)}[data-theme=light] .cf-select-menu{box-shadow:0 20px 54px rgba(20,20,26,.14)}.cf-select-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:8px;font-family:var(--font-body);font-size:var(--t-md);color:var(--gray-300);cursor:pointer;transition:background .15s ease,color .15s ease}.cf-select-option.is-active{background:var(--surface-hover);color:var(--white)}.cf-select-option[aria-selected=true]{color:var(--white)}.cf-select-check{flex-shrink:0;color:var(--accent-primary);opacity:0;transition:opacity .15s ease}.cf-select-option[aria-selected=true] .cf-select-check{opacity:1}.cf-error{font-family:var(--font-mono);font-size:var(--t-2xs);color:#e5484d;letter-spacing:.04em}.cf-submit{align-self:flex-start;margin-top:8px}.contact-aside{display:flex;flex-direction:column;gap:14px}.contact-aside-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 24px;border:1px solid var(--border);border-radius:12px;background:var(--surface);backdrop-filter:var(--surface-blur);-webkit-backdrop-filter:var(--surface-blur);overflow:hidden;text-align:left;font:inherit;transition:border-color .3s ease,background .3s ease,transform .3s ease,box-shadow .35s ease}[data-theme=light] .contact-aside-card{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03)}div.contact-aside-card{cursor:default}a.contact-aside-card,button.contact-aside-card{cursor:pointer;padding-right:48px}a.contact-aside-card:before,button.contact-aside-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}a.contact-aside-card:after,button.contact-aside-card:after{content:"↗";position:absolute;top:50%;right:22px;transform:translateY(-50%);font-family:var(--font-mono);font-size:var(--t-md);color:var(--gray-500);transition:color .3s ease,transform .3s cubic-bezier(.16,1,.3,1)}a.contact-aside-card:hover,button.contact-aside-card:hover{border-color:var(--border-md);box-shadow:0 18px 46px rgba(0,0,0,.42)}[data-theme=light] a.contact-aside-card:hover,[data-theme=light] button.contact-aside-card:hover{box-shadow:0 14px 38px rgba(0,0,0,.1),0 0 0 1px var(--border-md)}a.contact-aside-card:hover:before,button.contact-aside-card:hover:before{transform:scaleX(1)}a.contact-aside-card:hover:after,button.contact-aside-card:hover:after{color:var(--accent-primary);transform:translateY(-50%) translate(2px,-2px)}.contact-aside-card.is-action{border-color:var(--accent-primary);background:linear-gradient(140deg,var(--accent-glow) 0,var(--surface) 62%)}[data-theme=light] .contact-aside-card.is-action{background:linear-gradient(140deg,var(--accent-glow) 0,#ffffff 62%)}.contact-aside-card.is-action .contact-aside-heading{color:var(--accent-primary)}.contact-aside-card.is-action .contact-aside-text{font-size:var(--t-lg)}.contact-aside-heading{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500)}.contact-aside-text{color:var(--white);font-size:var(--t-md);overflow-wrap:anywhere}.contact-aside-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:2px}.contact-aside-links a{position:relative;color:var(--gray-300);font-family:var(--font-mono);font-size:var(--t-sm);transition:color .25s ease}.contact-aside-links a:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--accent-primary);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.16,1,.3,1)}.contact-aside-links a:hover{color:var(--white)}.contact-aside-links a:hover:after{transform:scaleX(1);transform-origin:left}.contact-aside-meta{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--gray-500);line-height:1.9;padding-left:4px}@media (max-width:899.98px){.cf-row,.contact-grid{grid-template-columns:1fr}}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/dfeca69ac89ec93c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/1519e77eac6a11ed-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a5782d3d220d0319-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_6f89b4{font-family:Fraunces,Fraunces Fallback,Georgia,Times New Roman,serif;font-style:normal}.__variable_6f89b4{--font-fraunces:"Fraunces","Fraunces Fallback",Georgia,Times New Roman,serif}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/fa20d3c920a61e0f-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b811bb48e9860189-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/897bedb07e9f6a6b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/85a5f8de62ccd539-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/aa65a3055749b77e-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0289ba911e8000e3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_0a6548{font-family:"Source Serif 4","Source Serif 4 Fallback",Georgia,Cambria,serif;font-style:normal}.__variable_0a6548{--font-source-serif:"Source Serif 4","Source Serif 4 Fallback",Georgia,Cambria,serif}