:root{color-scheme:dark;--bg: #05070f;--bg-soft: #0a0f1e;--bg-card: rgba(255, 255, 255, .025);--card-hover: rgba(255, 255, 255, .045);--panel: rgba(255, 255, 255, .03);--line: rgba(255, 255, 255, .08);--line-soft: rgba(255, 255, 255, .05);--text: #e8ecf4;--text-2: #c3ccda;--muted: #93a0b4;--faint: #7d87a0;--accent: #3fe0c5;--accent-2: #6ea8fe;--accent-ink: #04221c;--warn: #f4c15a;--nav-bg: rgba(5, 7, 15, .82);--shadow: rgba(0, 0, 0, .5);--net-node: 168, 197, 255;--net-hub: 63, 224, 197;--net-link: 120, 156, 240;--net-pulse: 122, 240, 220;--maxw: 1160px;--maxw-narrow: 820px;--font-head: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--r: 16px;--r-lg: 22px}[data-theme=aurora]{color-scheme:dark;--bg: #09060f;--bg-soft: #0e0a1c;--bg-card: rgba(255, 255, 255, .03);--card-hover: rgba(255, 255, 255, .055);--panel: rgba(255, 255, 255, .035);--line: rgba(255, 255, 255, .09);--line-soft: rgba(255, 255, 255, .06);--text: #f0ecfb;--text-2: #cfc6e6;--muted: #a99fc4;--faint: #8b83ab;--accent: #b388ff;--accent-2: #38e0ff;--accent-ink: #160a2e;--warn: #ffc857;--nav-bg: rgba(9, 6, 15, .82);--shadow: rgba(0, 0, 0, .55);--net-node: 179, 136, 255;--net-hub: 56, 224, 255;--net-link: 150, 120, 240;--net-pulse: 150, 200, 255}[data-theme=daylight]{color-scheme:light;--bg: #ffffff;--bg-soft: #eef2f8;--bg-card: #ffffff;--card-hover: #f3f7fc;--panel: #f1f5fa;--line: #c4cedd;--line-soft: #dde4ee;--text: #0a0e17;--text-2: #1d2737;--muted: #3c4759;--faint: #5a657a;--accent: #0a7a63;--accent-2: #1452d8;--accent-ink: #ffffff;--warn: #9a6700;--nav-bg: rgba(255, 255, 255, .9);--shadow: rgba(20, 40, 70, .16);--net-node: 36, 86, 124;--net-hub: 10, 122, 99;--net-link: 80, 110, 150;--net-pulse: 6, 110, 122}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .45s ease,color .45s ease}::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}img{max-width:100%;display:block}a{color:inherit}h1,h2,h3,h4{font-family:var(--font-head);line-height:1.1;letter-spacing:-.02em;font-weight:700}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.narrow{max-width:var(--maxw-narrow);margin:0 auto;padding:0 24px}.grad{background:linear-gradient(92deg,var(--accent) 8%,var(--accent-2) 92%);-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{font-size:.76rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.muted{color:var(--muted)}.skip{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:0 0 10px;font-weight:600}.skip:focus{left:0}#neural-bg{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;opacity:0}.cursor-dot{width:6px;height:6px;background:var(--accent)}.cursor-ring{width:34px;height:34px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);transition:width .25s ease,height .25s ease,border-color .25s ease}.cursor-ring.is-hover{width:56px;height:56px;border-color:color-mix(in srgb,var(--accent-2) 90%,transparent)}@media (pointer: coarse){.cursor-dot,.cursor-ring{display:none}}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 34px;transition:background .35s ease,padding .35s ease,border-color .35s ease;border-bottom:1px solid transparent}.nav.scrolled{background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:13px 34px;border-bottom-color:var(--line)}.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;font-size:1.02rem;letter-spacing:.13em;color:var(--text);text-decoration:none}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .25s ease;position:relative}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--text)}.nav-links a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--accent);border-radius:2px}.nav-cta{padding:9px 18px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:999px;color:var(--accent)!important;transition:background .25s ease,color .25s ease!important}.nav-cta:hover{background:var(--accent);color:var(--accent-ink)!important}.nav-cta[aria-current=page]:after{display:none}.nav-actions{display:flex;align-items:center;gap:22px}.nav-toggle-cb{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}.nav-toggle{display:none;box-sizing:border-box;width:42px;height:42px;padding:0;margin:0;background:transparent;border:1px solid var(--line);border-radius:11px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;-webkit-tap-highlight-color:transparent;transition:border-color .2s ease,background .2s ease}.nav-toggle:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.nav-toggle-bar{display:block;width:18px;height:2px;border-radius:2px;background:var(--text);transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s ease}body.nav-open,html:has(#nav-toggle-cb:checked){overflow:hidden}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:999px;font-family:var(--font-head);font-weight:600;font-size:.94rem;letter-spacing:.01em;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 34px color-mix(in srgb,var(--accent) 32%,transparent)}.btn-ghost{border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:color-mix(in srgb,var(--accent) 60%,transparent);transform:translateY(-2px)}.btn-lg{padding:16px 36px;font-size:1.02rem}.hero{position:relative;min-height:100vh;display:flex;align-items:center;z-index:1}.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 64% 46%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 70%),radial-gradient(ellipse 50% 45% at 30% 60%,color-mix(in srgb,var(--accent-2) 9%,transparent),transparent 70%)}.hero-inner{position:relative;width:100%}.hero h1{font-size:clamp(2.5rem,6.4vw,5rem);margin-bottom:24px;max-width:16ch}.hero .lede{font-size:clamp(1rem,1.5vw,1.18rem);color:var(--muted);max-width:50ch;margin-bottom:36px}.hero-cta{display:flex;gap:14px;flex-wrap:wrap}.scroll-hint{position:absolute;bottom:32px;left:50%;transform:translate(-50%);width:26px;height:42px;border:1.5px solid color-mix(in srgb,var(--text) 30%,transparent);border-radius:14px}.scroll-hint span{position:absolute;top:7px;left:50%;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--accent);animation:scrollhint 2s ease-in-out infinite}@keyframes scrollhint{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:0}}.surface{position:relative;z-index:1;background:var(--bg)}.section{padding:120px 0;position:relative;z-index:1;background:var(--bg)}.section.tight{padding:88px 0}.section-head{margin-bottom:56px;max-width:60ch}.section-head h2{font-size:clamp(1.9rem,4.2vw,3.1rem);margin-bottom:14px}.section-head .section-sub{color:var(--muted)}.page-head{padding:150px 0 40px;position:relative;z-index:1;background:var(--bg)}.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:16px}.page-head p{color:var(--muted);max-width:60ch}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft);padding:54px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.stat{text-align:center;min-width:0}.stat-num{display:block;font-family:var(--font-head);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.7rem);color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-label{color:var(--muted);font-size:.86rem;line-height:1.4}.numbers-wall{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}.numbers-wall .nrow{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line-soft)}.numbers-wall .nval{font-family:var(--font-head);font-weight:700;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}.numbers-wall .nlabel{color:var(--muted);font-size:.93rem;min-width:0;overflow-wrap:anywhere}.numbers-wall .nproj{color:var(--faint);font-size:.78rem;margin-left:auto;white-space:nowrap;padding-left:12px}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r);padding:30px;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s ease,box-shadow .35s ease,background .35s ease}.card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 38%,transparent);box-shadow:0 18px 48px var(--shadow),0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent);background:var(--card-hover)}a.card{text-decoration:none;color:inherit;display:block}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.pillar{display:flex;flex-direction:column}.pillar .badge-row{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.pillar h3{font-size:1.4rem;margin-bottom:10px}.pillar .one{color:var(--text-2);font-size:.98rem;margin-bottom:18px;flex:1}.pillar .metrics{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:18px}.pillar .metrics b{font-family:var(--font-head);color:var(--accent);font-size:1.02rem}.pillar .metrics span{color:var(--muted);font-size:.8rem;display:block}.pillar .arrow{color:var(--accent);font-weight:600;font-size:.9rem;font-family:var(--font-head)}.badge{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--line)}.badge.live{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.badge.live:before{content:"● "}.badge.shipped{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 40%,transparent);background:color-mix(in srgb,var(--accent-2) 8%,transparent)}.badge.private{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,transparent);background:color-mix(in srgb,var(--warn) 8%,transparent)}.tag{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}.lsp{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0d1320;box-shadow:0 20px 60px var(--shadow)}.lsp-chrome{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff08}.lsp-dot{width:11px;height:11px;border-radius:50%}.lsp-dot.r{background:#ff5f57}.lsp-dot.y{background:#febc2e}.lsp-dot.g{background:#28c840}.lsp-url{margin-left:10px;font-size:.78rem;color:#93a0b4;background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:7px;padding:4px 12px;flex:1;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lsp-live{margin-left:auto;font-size:.78rem;font-weight:600;color:#3fe0c5;text-decoration:none;white-space:nowrap}.lsp-live:hover{text-decoration:underline}.lsp-body{position:relative;aspect-ratio:16/10;background:#0a0f1a}.lsp-body img{width:100%;height:100%;object-fit:cover;object-position:top}.lsp-overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;background:radial-gradient(ellipse at center,#0d132066,#0d1320d9)}.lsp-overlay p{margin:0}.lsp-overlay .big{font-family:var(--font-head);font-weight:600;font-size:1.1rem;color:#e8ecf4}.lsp-overlay .sub{color:#93a0b4;font-size:.88rem;margin-top:6px}.lsp-cap{padding:11px 14px;font-size:.8rem;color:#93a0b4;border-top:1px solid rgba(255,255,255,.05);background:#0d1320}.lsp-btn{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:9px 18px;border-radius:999px;background:#3fe0c5;color:#04221c;font-family:var(--font-head);font-weight:600;font-size:.86rem;text-decoration:none;max-width:calc(100% - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lsp-btn:hover{box-shadow:0 8px 24px #3fe0c54d}.work-list{display:grid;gap:28px}.work-row{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.work-row.flip .work-copy{order:2}.work-copy h3{font-size:1.7rem;margin:12px 0}.work-copy .one{color:var(--text-2);margin-bottom:18px}.work-copy .metrics{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:20px}.work-copy .metrics b{font-family:var(--font-head);color:var(--accent);font-size:1.05rem}.work-copy .metrics span{color:var(--muted);font-size:.8rem;display:block}.case-hero{padding:140px 0 0;position:relative;z-index:1;background:var(--bg)}.case-hero .badge-row{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.case-hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);margin-bottom:18px;max-width:18ch}.case-hero .one{font-size:1.2rem;color:var(--text-2);max-width:60ch}.case-preview{padding:40px 0 20px;position:relative;z-index:1;background:var(--bg)}.case-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;margin:36px 0}.case-metrics .m{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--bg-card);min-width:0}.case-metrics .m b{display:block;font-family:var(--font-head);font-size:1.7rem;color:var(--accent);margin-bottom:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-wrap:balance}.case-metrics .m span{color:var(--muted);font-size:.86rem}.prose{color:var(--text-2)}.prose h2{font-size:1.6rem;color:var(--text);margin:44px 0 14px}.prose h3{font-size:1.2rem;color:var(--text);margin:30px 0 10px}.prose p{margin-bottom:16px}.prose ul{list-style:none;margin:0 0 18px}.prose li{position:relative;padding:6px 0 6px 20px}.prose li:before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--accent) 60%,transparent)}.prose strong{color:var(--text);font-weight:600}.prose a{color:var(--accent)}.prose code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86em;background:color-mix(in srgb,var(--text) 8%,transparent);padding:2px 6px;border-radius:5px}.stack-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}.chip{font-size:.82rem;color:var(--text-2);padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--bg-card)}.prose,.prose p,.prose li,.prose a,.prose code,.chip,.role .rstack,.tag{overflow-wrap:anywhere}.prose img{max-width:100%;border-radius:var(--r)}.case-figure{margin:28px 0}.case-figure a{display:block}.case-figure img{width:100%;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 16px 44px var(--shadow);transition:transform .35s ease,box-shadow .35s ease}.case-figure a:hover img{transform:translateY(-3px);box-shadow:0 22px 54px var(--shadow);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.case-figure figcaption{margin-top:10px;font-size:.85rem;color:var(--muted);text-align:center}.case-figure figcaption a{color:var(--accent)}.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:26px 0}.case-grid .case-figure{margin:0}.case-grid figcaption{font-size:.8rem}@media (max-width: 640px){.case-grid{grid-template-columns:1fr}}.svc-list{display:grid;gap:18px}.svc{display:grid;grid-template-columns:1fr 1.3fr auto;gap:24px;align-items:center;padding:26px 30px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-card);transition:border-color .3s ease,background .3s ease,transform .3s ease;text-decoration:none;color:inherit}.svc:hover{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:var(--card-hover);transform:translate(4px)}.svc h3{font-size:1.18rem;min-width:0}.svc .promise{color:var(--muted);font-size:.95rem;min-width:0;overflow-wrap:anywhere}.svc .proof{color:var(--accent);font-size:.84rem;font-weight:600;font-family:var(--font-head);white-space:nowrap;max-width:22ch;overflow:hidden;text-overflow:ellipsis}.resume-grid{display:grid;grid-template-columns:1fr;gap:56px}.timeline{position:relative}.role{padding:0 0 34px 26px;position:relative;border-left:1px solid var(--line)}.role:last-child{border-left-color:transparent;padding-bottom:0}.role:before{content:"";position:absolute;left:-6px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);z-index:2;animation:tl-dot 3.2s ease-in-out infinite}.role:after{content:"";position:absolute;left:-6px;top:4px;width:11px;height:11px;border-radius:50%;border:1.5px solid var(--accent);opacity:0;pointer-events:none;z-index:1;animation:tl-ping 3.2s ease-out infinite}.timeline:before{content:"";position:absolute;left:-.5px;top:0;width:2px;height:42px;border-radius:2px;pointer-events:none;z-index:0;background:linear-gradient(180deg,transparent,var(--accent),transparent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 70%,transparent));animation:tl-flow 3.4s cubic-bezier(.45,0,.25,1) infinite}@keyframes tl-dot{0%,to{transform:scale(1);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}50%{transform:scale(1.18);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 6%,transparent),0 0 12px color-mix(in srgb,var(--accent) 45%,transparent)}}@keyframes tl-ping{0%{transform:scale(1);opacity:.55}70%,to{transform:scale(2.8);opacity:0}}@keyframes tl-flow{0%{top:-8px;opacity:0}12%{opacity:1}85%{opacity:1}to{top:calc(100% - 16px);opacity:0}}.role:nth-child(1):before,.role:nth-child(1):after{animation-delay:0s}.role:nth-child(2):before,.role:nth-child(2):after{animation-delay:.26s}.role:nth-child(3):before,.role:nth-child(3):after{animation-delay:.52s}.role:nth-child(4):before,.role:nth-child(4):after{animation-delay:.78s}.role:nth-child(5):before,.role:nth-child(5):after{animation-delay:1.04s}.role:nth-child(6):before,.role:nth-child(6):after{animation-delay:1.3s}.role:hover:before{filter:brightness(1.35) drop-shadow(0 0 9px color-mix(in srgb,var(--accent) 75%,transparent))}@media (prefers-reduced-motion: reduce){.role:before{animation:none}.role:after,.timeline:before{display:none}}.role .rtop{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:4px}.role h3{font-size:1.22rem;min-width:0;overflow-wrap:anywhere}.role .rorg{color:var(--accent-2);font-weight:600;min-width:0;overflow-wrap:anywhere}.role .rdates{color:var(--faint);font-size:.84rem;margin-left:auto}.role .rstack{color:var(--muted);font-size:.85rem;margin:6px 0 10px}.role ul{list-style:none}.role li{position:relative;padding:5px 0 5px 18px;color:var(--text-2);font-size:.95rem}.role li:before{content:"";position:absolute;left:0;top:13px;width:5px;height:5px;border-radius:50%;background:color-mix(in srgb,var(--accent) 60%,transparent)}.skill-group{margin-bottom:22px}.skill-group h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.skills-guide{position:relative}.skills-guide>*{position:relative;z-index:1}.chip{transition:border-color .25s ease,box-shadow .25s ease,color .25s ease,transform .2s ease}.chip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--text);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 22%,transparent)}.skills-guide:before,.skills-guide:after{content:"";position:absolute;left:-16px;top:-56px;width:100px;height:100px;border-radius:50%;border:1.5px solid var(--accent);transform:scale(.05);opacity:0;pointer-events:none;z-index:0;animation:sg-ripple 3.4s ease-out infinite}.skills-guide:after{animation-delay:.18s}@keyframes sg-ripple{0%{transform:scale(.05);opacity:.55}18%{transform:scale(1);opacity:0}to{transform:scale(1);opacity:0}}.skills-guide .skill-group h4{animation:sg-wave-label 3.4s ease-in-out infinite;animation-delay:calc(var(--g, 0) * .07s)}.skills-guide .chip{animation:sg-wave-chip 3.4s ease-in-out infinite;animation-delay:calc(var(--g, 0) * .07s + var(--c, 0) * 15ms)}@keyframes sg-wave-label{0%,13%,to{color:var(--accent);text-shadow:none}5%{color:color-mix(in srgb,var(--accent) 85%,white);text-shadow:0 0 14px color-mix(in srgb,var(--accent) 50%,transparent)}}@keyframes sg-wave-chip{0%,16%,to{border-color:var(--line);box-shadow:none;color:var(--text-2)}7%{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:0 0 11px color-mix(in srgb,var(--accent) 20%,transparent);color:var(--text)}}@media (prefers-reduced-motion: reduce){.skills-guide:before,.skills-guide:after,.skills-guide .skill-group h4,.skills-guide .chip{animation:none}}.cta{text-align:center;padding:110px 0;position:relative;z-index:1;border-top:1px solid var(--line);background:var(--bg-soft)}.cta h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:20px}.cta p{color:var(--muted);margin-bottom:32px}.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.strip{padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;position:relative;z-index:1;background:var(--bg)}.marquee{overflow:hidden}.marquee-track{display:flex;gap:2.4rem;width:max-content;animation:marquee 32s linear infinite;font-family:var(--font-head);font-weight:500;color:var(--muted);white-space:nowrap}.marquee-track span:nth-child(2n){color:color-mix(in srgb,var(--accent) 55%,transparent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.footer{border-top:1px solid var(--line);padding:40px 0;position:relative;z-index:1;background:var(--bg)}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.88rem}.footer-inner a{color:var(--muted);text-decoration:none;transition:color .2s ease}.footer-inner a:hover{color:var(--text)}.footer-links{display:flex;gap:22px}.theme-switch{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:999px;background:var(--nav-bg);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 28px var(--shadow)}.theme-switch .ts-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-family:var(--font-head)}.theme-switch button{width:20px;height:20px;border-radius:50%;border:2px solid color-mix(in srgb,var(--text) 25%,transparent);cursor:pointer;padding:0;transition:transform .2s ease,border-color .2s ease;position:relative}.theme-switch button:hover{transform:scale(1.15)}.theme-switch button[aria-pressed=true]{border-color:var(--text);transform:scale(1.1)}.theme-sw-dark{background:linear-gradient(135deg,#3fe0c5,#6ea8fe)}.theme-sw-aurora{background:linear-gradient(135deg,#b388ff,#38e0ff)}.theme-sw-daylight{background:linear-gradient(135deg,#fff 40%,#0a7a63)}.theme-pop{position:fixed;right:18px;bottom:74px;z-index:201;max-width:290px;background:var(--bg-soft);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 16px 44px var(--shadow);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .4s ease,transform .4s ease}.theme-pop.show{opacity:1;transform:none;pointer-events:auto}.theme-pop h4{font-size:.98rem;margin-bottom:6px}.theme-pop p{font-size:.84rem;color:var(--muted);margin-bottom:12px}.theme-pop .pop-row{display:flex;gap:8px}.theme-pop .pop-btn{flex:1;text-align:center;padding:8px 10px;border-radius:10px;font-size:.82rem;font-weight:600;font-family:var(--font-head);cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text);transition:background .2s ease,border-color .2s ease}.theme-pop .pop-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.theme-pop .pop-btn:hover{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.theme-pop .pop-dismiss{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--faint);cursor:pointer;font-size:1rem;line-height:1}html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}html.js .reveal.visible{opacity:1;transform:none}.pillars .reveal:nth-child(2),.stats-grid .reveal:nth-child(2),.svc-list .reveal:nth-child(2){transition-delay:.08s}.pillars .reveal:nth-child(3),.stats-grid .reveal:nth-child(3),.svc-list .reveal:nth-child(3){transition-delay:.16s}.stats-grid .reveal:nth-child(4),.svc-list .reveal:nth-child(4){transition-delay:.24s}.hero .reveal:nth-child(2){transition-delay:.1s}.hero .reveal:nth-child(3){transition-delay:.2s}.hero .reveal:nth-child(4){transition-delay:.3s}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}html.js .reveal,.reveal{opacity:1;transform:none;transition:none}.marquee-track,.scroll-hint span{animation:none}body{transition:none}}@media (max-width: 960px){.pillars{grid-template-columns:1fr}.work-row{grid-template-columns:1fr;gap:20px}.work-row.flip .work-copy{order:0}.numbers-wall{grid-template-columns:1fr}.svc{grid-template-columns:1fr;gap:10px}.svc .proof{justify-self:start}.role .rdates{margin-left:0;width:100%}}@media (max-width: 720px){.nav,.nav.scrolled{padding:14px 18px}.nav-actions{gap:12px}.logo,.nav-cta,.nav-toggle{position:relative;z-index:95}.nav-toggle{display:inline-flex}.nav-links{position:fixed;top:0;left:0;right:0;z-index:90;flex-direction:column;align-items:stretch;gap:0;max-height:100dvh;overflow-y:auto;padding:84px 20px 24px;background:var(--bg);border-bottom:1px solid var(--line);transform:translateY(-100%);visibility:hidden;transition:transform .32s cubic-bezier(.4,0,.2,1),visibility .32s}.nav-links a{color:var(--text);font-size:1.12rem;font-weight:600;padding:16px 4px;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.nav-links a[aria-current=page]{color:var(--accent)}.nav-links a[aria-current=page]:after{display:none}#nav-toggle-cb:checked~.nav-actions .nav-links{transform:translateY(0);visibility:visible}#nav-toggle-cb:checked~.nav-actions .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}#nav-toggle-cb:checked~.nav-actions .nav-toggle-bar:nth-child(2){opacity:0}#nav-toggle-cb:checked~.nav-actions .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}#nav-toggle-cb:focus-visible~.nav-actions .nav-toggle{border-color:var(--accent)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:24px}.section{padding:80px 0}.page-head{padding:120px 0 30px}.case-hero{padding:116px 0 0}.cta{padding:84px 0}.theme-switch{right:12px;bottom:12px}.theme-switch .ts-label{display:none}.theme-pop{right:12px;left:12px;max-width:none;bottom:66px}}

/* ==== 2026-09-15 layout fixes — patched into the BUILD (the Astro source is not on this machine) ==== */
/* 1. Header CTA. It sits outside .nav-links, so it never received that rule's text styling and rendered
      as an underlined 16px link inside a pill. Give it the nav-link look it was designed with. */
.nav-cta{text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap}
/* 2. Hero. The header is fixed and overlays the top of the page, and the hero had no top padding: any
      time its copy is taller than the screen (small phones, zoomed text, landscape) the eyebrow and the
      headline slid under the header and the scroll hint sat on top of the buttons. Equal top/bottom
      padding keeps the desktop centering exactly where it was. 100svh = the height actually visible
      under a mobile URL bar (browsers without svh keep the original 100vh). */
.hero{padding:108px 0;min-height:100svh}
.hero .eyebrow{text-wrap:balance}
@media (max-width: 720px){
  .hero{padding:98px 0}
  .nav-cta{padding:8px 14px;font-size:.86rem}
}
/* 3. Page intro: consecutive paragraphs had no gap (the two résumé summary paragraphs read as one
      block). Pages that already space their paragraphs inline (services, the résumé's small print)
      resolve to exactly what they had, because vertical margins collapse / inline styles win. */
.page-head p+p{margin-top:14px}
