:root{
  --cream:#FFFFFF;
  --cream-2:#F5F7FA;
  --ink:#0B1220;
  --ink-soft:#1E293B;
  --terra:#2563EB;
  --terra-deep:#1D4FD8;
  --amber:#06B6D4;
  --taupe:#64748B;
  --taupe-soft:#94A3B8;
  --accent:#2563EB;
  --accent-strong:#1D4FD8;
  --serif:'Instrument Serif', 'Times New Roman', serif;
  --sans:'Space Grotesk', system-ui, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="dark"]{
  --cream:#0B1220;
  --cream-2:#0F172A;
  --ink:#F8FAFC;
  --ink-soft:#E2E8F0;
  --taupe:#94A3B8;
  --taupe-soft:#64748B;
  --accent:#60A5FA;
  --accent-strong:#93C5FD;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}

body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0 0.06  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.15'/></svg>");
  mix-blend-mode:multiply;opacity:.25;
}

.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:18px 36px;color:var(--ink);background:rgba(255,255,255,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(11,18,32,.06)}
.nav .mark{font-family:var(--serif);font-size:22px;letter-spacing:.01em;color:var(--ink);font-weight:500}
.nav ul{display:flex;gap:28px;list-style:none;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.nav a{color:var(--ink-soft);opacity:.85;transition:opacity .3s, color .3s;font-weight:500;display:inline-flex;align-items:center}
.nav a:hover{opacity:1;color:var(--terra)}
.nav-toggle{display:none;width:44px;height:44px;border-radius:8px;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:0;border:1px solid rgba(11,18,32,.5);background:rgba(255,255,255,.95);transition:background .2s,border-color .2s,transform .2s}
.nav-toggle:hover{background:#FFFFFF;border-color:var(--ink);transform:scale(1.05)}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);border-radius:1px;transition:transform .3s,opacity .2s}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav-end{display:flex;align-items:center;gap:20px}

.theme-toggle{position:relative;width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(11,18,32,.18);background:rgba(255,255,255,.6);color:var(--ink);flex-shrink:0;transition:background .25s,border-color .25s,transform .25s cubic-bezier(.2,.8,.2,1),color .25s,box-shadow .25s}
.theme-toggle:hover{background:#FFFFFF;border-color:rgba(11,18,32,.45);transform:scale(1.06);box-shadow:0 4px 14px rgba(11,18,32,.08)}
.theme-toggle:active{transform:scale(.96)}
.theme-toggle:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.theme-toggle .ic{position:absolute;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:opacity .35s ease,transform .5s cubic-bezier(.4,.0,.2,1)}
.theme-toggle .ic-sun{opacity:0;transform:rotate(-90deg) scale(.4)}
.theme-toggle .ic-moon{opacity:1;transform:rotate(0deg) scale(1)}
[data-theme="dark"] .theme-toggle{background:rgba(248,250,252,.06);border-color:rgba(248,250,252,.2)}
[data-theme="dark"] .theme-toggle:hover{background:rgba(248,250,252,.12);border-color:rgba(248,250,252,.5);box-shadow:0 4px 18px rgba(0,0,0,.4)}
[data-theme="dark"] .theme-toggle .ic-sun{opacity:1;transform:rotate(0deg) scale(1)}
[data-theme="dark"] .theme-toggle .ic-moon{opacity:0;transform:rotate(90deg) scale(.4)}
@media (prefers-reduced-motion: reduce){.theme-toggle,.theme-toggle .ic{transition:none}}

.theme-anim, .theme-anim *, .theme-anim *::before, .theme-anim *::after{transition:background-color .35s ease,background-image .35s ease,color .35s ease,border-color .35s ease,fill .35s ease,stroke .35s ease,box-shadow .35s ease !important}

.progress{position:fixed;top:0;left:0;height:2px;background:var(--terra);z-index:110;width:0%;transition:width .08s linear}
.progress-count{position:fixed;right:20px;bottom:20px;z-index:100;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink);background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(11,18,32,.08);padding:8px 14px;border-radius:999px;font-weight:500}

section{position:relative;padding:0}
/* Anchors land below the fixed nav instead of under it */
section[id]{scroll-margin-top:72px}
.wrap{max-width:1280px;margin:0 auto;padding:0 36px}
.label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.display{font-family:var(--serif);font-weight:400;line-height:.92;letter-spacing:-.02em}
.ital{font-style:italic}

/* HERO */
.hero{height:100vh;height:100svh;position:relative;overflow:hidden;background:linear-gradient(180deg,#FFFFFF 0%, #F5F7FA 100%)}
.hero .layer{position:absolute;inset:0;will-change:transform}
.hero .sun{
  position:absolute;left:50%;top:60%;width:70vmin;height:70vmin;transform:translate(-50%,-50%);
  background:radial-gradient(circle at 50% 50%, #06B6D4 0%, #2563EB 55%, rgba(37,99,235,0) 70%);
  filter:blur(2px);border-radius:50%;opacity:.85;
}
.hero .ring{
  position:absolute;left:50%;top:60%;transform:translate(-50%,-50%);
  width:90vmin;height:90vmin;border:1px solid rgba(11,18,32,.18);border-radius:50%;
}
.hero .ring.r2{width:110vmin;height:110vmin;border-color:rgba(11,18,32,.1)}
.hero .ring.r3{width:130vmin;height:130vmin;border-color:rgba(11,18,32,.06)}
.hero .hill{
  position:absolute;bottom:-20%;left:-10%;right:-10%;height:60%;
  background:linear-gradient(180deg, #1D4FD8 0%, #0B1220 100%);
  border-radius:60% 55% 0 0 / 100% 100% 0 0;
}
.hero .hill.h2{bottom:-30%;height:50%;background:linear-gradient(180deg,#2563EB,#1D4FD8);border-radius:55% 60% 0 0 / 100% 100% 0 0;transform:translateX(-5%)}
.hero .hill.h3{bottom:-40%;height:40%;background:linear-gradient(180deg,#06B6D4,#2563EB);border-radius:50% 65% 0 0 / 100% 100% 0 0;transform:translateX(8%)}
.hero h1{
  position:absolute;left:0;right:0;top:18%;text-align:center;z-index:4;
  font-family:var(--serif);font-size:clamp(64px,14vw,220px);line-height:.88;letter-spacing:-.03em;color:var(--ink);
  padding:0 24px;
}
.hero h1 .line2{display:block;font-style:italic;color:var(--ink)}
.hero .meta{position:absolute;bottom:40px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:end;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#FFFFFF;font-weight:500;z-index:3}
.hero .meta .loc{max-width:240px;line-height:1.7}
.hero .socials{display:flex;gap:22px;align-items:center;justify-content:flex-end}
.hero .socials a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:rgba(255,255,255,.82);background:transparent;border:0;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1),color .25s,background .25s,box-shadow .25s}
.hero .socials a:hover{color:#FFFFFF;background:rgba(255,255,255,.14);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.28)}
.hero .socials a:active{transform:translateY(0);background:rgba(255,255,255,.22)}
.hero .socials a:focus-visible{outline:2px solid #FFFFFF;outline-offset:3px}
.hero .socials a svg{width:22px;height:22px;display:block}
.hero .socials .lbl{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero .scroll-hint{position:absolute;left:50%;bottom:36px;transform:translateX(-50%);font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#FFFFFF;opacity:.9;z-index:3;font-weight:500}
.hero .scroll-hint .arr{display:inline-block;margin-left:8px;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* DARK THEME OVERRIDES
   Variable flips above handle most repainting. Below: pin always-dark sections so
   they don't flip with the body canvas, lock white-pill interiors to dark text,
   and lift terra-blue accents (which fail ~3.9:1 on dark navy) to blue-400 (~7.8:1). */
[data-theme="dark"] body::before{mix-blend-mode:screen;opacity:.07}

/* Always-dark sections that used var(--ink) as their bg — pin them so the body flip doesn't break them */
[data-theme="dark"] .horz,
[data-theme="dark"] .index{background:#050912}

/* Nav */
[data-theme="dark"] .nav{background:rgba(11,18,32,.72);border-bottom-color:rgba(248,250,252,.08)}
[data-theme="dark"] .nav a{color:var(--ink-soft)}
[data-theme="dark"] .nav a:hover{color:var(--accent)}
[data-theme="dark"] .nav-toggle{background:rgba(11,18,32,.6);border-color:rgba(248,250,252,.35)}
[data-theme="dark"] .nav-toggle:hover{background:rgba(11,18,32,.95);border-color:var(--ink)}
[data-theme="dark"] .nav-toggle span{background:var(--ink)}
[data-theme="dark"] .progress-count{background:rgba(11,18,32,.85);border-color:rgba(248,250,252,.1);color:var(--ink)}

/* Hero */
[data-theme="dark"] .hero{background:linear-gradient(180deg,#0B1220 0%, #050912 100%)}
[data-theme="dark"] .hero .ring{border-color:rgba(248,250,252,.18)}
[data-theme="dark"] .hero .ring.r2{border-color:rgba(248,250,252,.1)}
[data-theme="dark"] .hero .ring.r3{border-color:rgba(248,250,252,.06)}

/* About / pin-type — lift the watermark and accent words */
[data-theme="dark"] .pin-type .word.dim{color:rgba(248,250,252,.22)}
[data-theme="dark"] .pin-type .word.hl{color:var(--accent)}
[data-theme="dark"] .pin-type .bg-word{color:var(--accent);opacity:.16}

/* Commits / experiences — borders, accents, hover states */
[data-theme="dark"] .commits::before{background:radial-gradient(circle,rgba(96,165,250,.18),transparent 70%)}
[data-theme="dark"] .commits-head h2 em{color:var(--accent)}
[data-theme="dark"] .commits-head .eyebrow .dot{background:var(--accent);box-shadow:0 0 10px rgba(96,165,250,.5)}
[data-theme="dark"] .commits-head .status{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.32);color:var(--ink-soft)}
[data-theme="dark"] .stats,
[data-theme="dark"] .commit-list{border-color:rgba(248,250,252,.1)}
[data-theme="dark"] .stats::before,
[data-theme="dark"] .stats::after{background:rgba(248,250,252,.04)}
[data-theme="dark"] .stat{border-right-color:rgba(248,250,252,.08)}
[data-theme="dark"] .stat-num.counting{color:var(--accent)}
[data-theme="dark"] .commit{border-bottom-color:rgba(248,250,252,.1)}
[data-theme="dark"] .commit:hover{background:rgba(96,165,250,.07)}
[data-theme="dark"] .commit .sha{color:var(--accent)}
[data-theme="dark"] .commit .vline{background:var(--accent);box-shadow:0 0 8px rgba(96,165,250,.25)}
[data-theme="dark"] .commit:hover .sha{color:var(--accent-strong)}
[data-theme="dark"] .commit:hover .vline{background:var(--accent-strong);box-shadow:0 0 14px rgba(147,197,253,.4)}

/* Contact — bg stays terra blue; lock the white CTA pill's interior to dark text so it's always legible */
[data-theme="dark"] .contact .cta-primary{color:#0B1220}
[data-theme="dark"] .contact .cta-primary .addr{color:#1E293B}
[data-theme="dark"] .contact .cta-primary .cta-arrow{color:#0B1220}

/* PINNED METRICS */
.pin-type{height:300vh;position:relative}
.pin-type .sticky{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pin-type .bg-word{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--serif);font-style:italic;color:var(--terra);opacity:.12;
  font-size:clamp(300px,42vw,780px);line-height:.8;letter-spacing:-.04em;pointer-events:none;white-space:nowrap;
}
.pin-type .content{position:relative;max-width:900px;padding:0 36px;text-align:left}
.pin-type .content .label{margin-bottom:28px;display:block}
.pin-type .content p{font-family:var(--serif);font-size:clamp(36px,5vw,72px);line-height:1.08;letter-spacing:-.015em}
.pin-type .word{display:inline-block;transition:color .4s, filter .4s}
.pin-type .word.dim{color:rgba(11,18,32,.22)}
.pin-type .word.on{color:var(--ink)}
.pin-type .word.hl{color:var(--terra);font-style:italic;font-weight:500}

/* SELECTED PROJECTS */
.tilt{padding:160px 0 180px;position:relative;background:var(--cream);border-top:1px solid rgba(11,18,32,.06)}
.tilt .head{display:grid;grid-template-columns:1fr auto;align-items:end;padding:0 36px;margin-bottom:72px;max-width:1280px;margin-left:auto;margin-right:auto;gap:40px}
.tilt .eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.tilt .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--terra)}
.tilt h2{font-family:var(--serif);font-size:clamp(52px,7vw,104px);line-height:.95;letter-spacing:-.025em;max-width:900px;font-weight:400}
.tilt h2 em{color:var(--terra);font-style:italic}
.tilt .head .aside{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);text-align:right;line-height:1.9;max-width:240px;font-weight:500}
.tilt .head .aside strong{color:var(--ink);font-weight:600;display:block;margin-bottom:4px}

.tilt .grid{display:grid;grid-template-columns:repeat(12,1fr);gap:32px 24px;padding:0 36px;max-width:1280px;margin:0 auto;perspective:1600px}
.tilt .card{position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform;cursor:pointer;display:flex;flex-direction:column;isolation:isolate}
.tilt .card .thumb{position:relative;width:100%;aspect-ratio:4/5;border-radius:8px;overflow:hidden;border:1px solid rgba(11,18,32,.08);box-shadow:0 1px 2px rgba(11,18,32,.03), 0 12px 32px rgba(11,18,32,.07);transition:box-shadow .4s;will-change:transform;transform-style:preserve-3d}
.tilt .card:hover .thumb{box-shadow:0 1px 2px rgba(11,18,32,.04), 0 20px 48px rgba(37,99,235,.18)}
.tilt .card .thumb .shape{position:absolute;inset:0}
.tilt .card .thumb .corner{position:absolute;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#FFFFFF;opacity:.9;font-weight:500;z-index:2}
.tilt .card .thumb .corner .n{opacity:.8}
.tilt .card .thumb .discipline{position:absolute;bottom:18px;left:20px;right:20px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.tilt .card .thumb .discipline span{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#FFFFFF;padding:5px 9px;border:1px solid rgba(255,255,255,.4);border-radius:999px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:rgba(255,255,255,.08);font-weight:500}

.tilt .card .info{margin-top:20px;display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:baseline}
.tilt .card .info h3{font-family:var(--serif);font-size:26px;line-height:1.1;letter-spacing:-.015em;color:var(--ink);font-weight:400}
.tilt .card .info .year{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--taupe);font-weight:500}
.tilt .card .info .client{grid-column:1/-1;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;display:flex;align-items:center;gap:10px}
.tilt .card .info .client::before{content:"";width:16px;height:1px;background:var(--terra)}

.tilt .card .thumb.on-light .corner{color:var(--ink);opacity:1}
.tilt .card .thumb.on-light .corner .n{opacity:.7}
.tilt .card .thumb.on-light .discipline span{color:var(--ink);border-color:rgba(11,18,32,.25);background:rgba(255,255,255,.7)}

.tilt .card.feature{grid-column:1/span 7}
.tilt .card.feature .thumb{aspect-ratio:16/11}
.tilt .card.feature .info h3{font-size:40px;line-height:1.02}
.tilt .card.c2{grid-column:8/span 5}
.tilt .card.c2 .thumb{aspect-ratio:4/5}
.tilt .card.c3{grid-column:1/span 4;margin-top:40px}
.tilt .card.c4{grid-column:5/span 4;margin-top:40px}
.tilt .card.c5{grid-column:9/span 4;margin-top:40px}

.tilt .card.feature .thumb{background:linear-gradient(135deg,#EFF6FF 0%,#DBEAFE 100%)}
.tilt .card.feature .thumb .shape::before{content:"";position:absolute;left:8%;top:15%;width:45%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#60A5FA,#2563EB 60%,#1D4FD8)}
.tilt .card.feature .thumb .shape::after{content:"";position:absolute;right:10%;bottom:12%;width:38%;aspect-ratio:1;border:1.5px solid #2563EB;border-radius:50%;background:linear-gradient(135deg,rgba(6,182,212,.25),transparent)}

.tilt .card.c2 .thumb{background:linear-gradient(160deg,#0B1220 0%,#1E293B 60%,#0F172A)}
.tilt .card.c2 .thumb .shape::before{content:"";position:absolute;left:50%;top:50%;width:58%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(103,232,249,.55);border-radius:50%}
.tilt .card.c2 .thumb .shape::after{content:"";position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,#06B6D4 0%,rgba(6,182,212,0) 70%)}

.tilt .card.c3 .thumb{background:linear-gradient(180deg,#F8FAFC 0%,#E2E8F0 100%)}
.tilt .card.c3 .thumb .shape{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;padding:18%;align-items:end;opacity:.85}
.tilt .card.c3 .thumb .shape::before{content:"";display:block;grid-column:1/-1;height:1px;background:var(--ink);opacity:.3;align-self:end}

.tilt .card.c4 .thumb{background:#2563EB}
.tilt .card.c4 .thumb .shape::before{content:"";position:absolute;inset:14%;border:1px solid rgba(255,255,255,.35);border-radius:6px}
.tilt .card.c4 .thumb .shape::after{content:"";position:absolute;inset:28%;background:linear-gradient(135deg,#06B6D4,#FFFFFF);border-radius:4px;box-shadow:0 12px 32px rgba(0,0,0,.25)}

.tilt .card.c5 .thumb{background:linear-gradient(135deg,#0B1220 0%,#1D4FD8 100%)}
.tilt .card.c5 .thumb .shape::before{content:"";position:absolute;left:-10%;right:-10%;top:50%;height:1px;background:#67E8F9;transform:rotate(-12deg);box-shadow:0 0 24px rgba(103,232,249,.6)}
.tilt .card.c5 .thumb .shape::after{content:"";position:absolute;right:14%;top:30%;width:28%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#FFFFFF 0%,#67E8F9 60%,rgba(103,232,249,0) 80%)}

.tilt .footer{max-width:1280px;margin:100px auto 0;padding:32px 36px 0;border-top:1px solid rgba(11,18,32,.1);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.tilt .footer a{display:inline-flex;align-items:center;gap:10px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;transition:color .3s, border-color .3s}
.tilt .footer a:hover{color:var(--terra);border-color:var(--terra)}

.tilt .card{opacity:0;transform:translateY(40px);transition:opacity .6s ease-out,transform .8s cubic-bezier(.2,.6,.2,1)}
.tilt .card.in{opacity:1;transform:translateY(0)}
.tilt .card .thumb{position:relative;clip-path:inset(0 100% 0 0);transition:clip-path 1.05s cubic-bezier(.7,.0,.2,1)}
.tilt .card.in .thumb{clip-path:inset(0 0 0 0)}
.tilt .card .thumb::after{content:"";position:absolute;top:0;bottom:0;right:0;width:2px;background:linear-gradient(180deg,transparent,var(--terra) 30%,#67E8F9 70%,transparent);opacity:0;z-index:5;pointer-events:none;box-shadow:0 0 24px rgba(37,99,235,.6)}
.tilt .card.in .thumb::after{animation:scanSweep 1.05s cubic-bezier(.7,0,.2,1) forwards}
@keyframes scanSweep{
  0%{right:100%;opacity:0}
  8%{opacity:1}
  92%{opacity:1}
  100%{right:0;opacity:0}
}
.tilt .card .thumb .corner,.tilt .card .thumb .discipline{opacity:0;transition:opacity .45s .7s ease-out}
.tilt .card.in .thumb .corner,.tilt .card.in .thumb .discipline{opacity:1}
.tilt .card .thumb.on-light .corner{opacity:0}
.tilt .card.in .thumb.on-light .corner{opacity:1}
.tilt .card .info{opacity:0;transform:translateY(12px);transition:opacity .55s .55s ease-out,transform .55s .55s ease-out}
.tilt .card.in .info{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion: reduce){
  .tilt .card,.tilt .card .thumb,.tilt .card .info,.tilt .card .thumb .corner,.tilt .card .thumb .discipline{opacity:1 !important;transform:none !important;clip-path:none !important;transition:none !important}
  .tilt .card .thumb::after{display:none}
}

/* HORIZONTAL SCROLL */
.horz{height:340vh;position:relative;background:var(--ink);color:#FFFFFF}
.horz .sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;padding-top:80px}
.horz .track{display:flex;gap:40px;padding:0 10vw;will-change:transform}
.horz .head{position:absolute;top:100px;left:36px;z-index:5}
.horz .head .label{color:#67E8F9}
.horz .head h3{font-family:var(--serif);font-size:28px;margin-top:14px;font-style:italic;color:#FFFFFF}
.horz .counter{position:absolute;bottom:40px;right:36px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#CBD5E1;text-transform:uppercase;font-weight:500}
.horz .slide{flex:0 0 70vw;height:70vh;position:relative;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:36px}
.horz .slide .num{font-family:var(--mono);font-size:12px;letter-spacing:.2em;opacity:.9;font-weight:500}
.horz .slide .name{font-family:var(--serif);font-size:clamp(48px,5.5vw,84px);line-height:.95;letter-spacing:-.02em;max-width:70%}
.horz .slide .meta{display:flex;justify-content:space-between;align-items:end;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.95;font-weight:500}

/* Project cards with screenshots: passive card, soft-edged screenshot preview
   floating on the right, "View Live" pill is the only clickable element.
   Radial mask fades the screenshot into the card bg; filter: drop-shadow
   respects the mask (unlike box-shadow). */
.horz .slide.shot{position:relative}
.horz .slide.shot .num,
.horz .slide.shot .block{position:relative;z-index:2;max-width:50%}
.horz .slide.shot .meta{position:relative;z-index:2}
.horz .slide.shot .block{display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.horz .slide.shot .name{max-width:100%}

/* Sole interactive element: outlined pill by default, fills + lifts on hover */
.horz .slide.shot .cta{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:1px solid currentColor;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;font-weight:600;text-transform:uppercase;text-decoration:none;color:inherit;opacity:.9;transition:background-color .3s ease,color .3s ease,border-color .3s ease,opacity .3s ease,transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
.horz .slide.shot .cta .arr{display:inline-block;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.horz .slide.shot .cta:hover{opacity:1;color:#0B1220;transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.32)}
.horz .slide.shot .cta:hover .arr{transform:translate(2px,-2px)}
.horz .slide.shot .cta:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.horz .s1 .cta:hover{background:#F5B84A;border-color:#F5B84A}
.horz .s2 .cta:hover{background:#FFFFFF;border-color:#FFFFFF}
.horz .s3 .cta:hover{background:#67E8F9;border-color:#67E8F9}

.horz .slide.shot .preview{
  position:absolute;top:50%;right:3%;
  width:58%;aspect-ratio:16/9;
  transform:translateY(-50%);
  background-position:center;background-size:contain;background-repeat:no-repeat;
  border-radius:10px;
  filter:drop-shadow(0 30px 56px rgba(0,0,0,.55));
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
}
.horz .slide.shot:has(.cta:hover) .preview{transform:translateY(-50%) scale(1.02)}

.horz .s1{--shot:2013/1258;background:linear-gradient(135deg,#141c2c 0%,#0d1320 60%,#070b14 100%);color:#FFFFFF;border:1px solid rgba(245,184,74,.24)}
.horz .s1 .preview{background-image:url('screenshots/tesserae.png')}

.horz .s2{--shot:1953/1267;background:linear-gradient(135deg,#2a1f08 0%,#14100a 60%,#0a0805 100%);color:#FFFFFF;border:1px solid rgba(245,200,80,.18)}
.horz .s2 .preview{background-image:url('screenshots/deductly.png')}

.horz .s3{--shot:2550/1267;background:linear-gradient(200deg,#131c2e 0%,#0a1020 60%,#050912 100%);color:#67E8F9;border:1px solid rgba(103,232,249,.28)}
.horz .s3 .preview{background-image:url('screenshots/solanasphereview.png')}

/* COMMIT TO LAUNCH */
.seq{height:560vh;position:relative;background:#050912;color:#E2E8F0;overflow:clip}
.seq .sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:minmax(220px,1fr) 120px minmax(220px,1fr);gap:24px;padding:240px 36px 70px;background:
  radial-gradient(ellipse at 50% 120%,rgba(37,99,235,.25) 0%,transparent 55%),
  radial-gradient(ellipse at 50% -20%,rgba(6,182,212,.14) 0%,transparent 50%),
  #050912;
}
.seq .sticky::before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 10% 20%,rgba(255,255,255,.8) 0.5px,transparent 1px),
    radial-gradient(circle at 80% 40%,rgba(255,255,255,.6) 0.5px,transparent 1px),
    radial-gradient(circle at 30% 70%,rgba(255,255,255,.5) 0.5px,transparent 1px),
    radial-gradient(circle at 65% 85%,rgba(255,255,255,.7) 0.5px,transparent 1px),
    radial-gradient(circle at 90% 15%,rgba(255,255,255,.5) 0.5px,transparent 1px),
    radial-gradient(circle at 45% 50%,rgba(255,255,255,.4) 0.5px,transparent 1px),
    radial-gradient(circle at 20% 90%,rgba(255,255,255,.5) 0.5px,transparent 1px),
    radial-gradient(circle at 55% 10%,rgba(255,255,255,.6) 0.5px,transparent 1px);
  background-size:400px 400px,360px 360px,520px 520px,480px 480px,340px 340px,600px 600px,420px 420px,380px 380px;
  opacity:.45;pointer-events:none;z-index:0;
}

.seq .heading{position:absolute;top:110px;left:36px;right:36px;z-index:4;display:flex;justify-content:space-between;align-items:flex-start;gap:40px;pointer-events:none}
.seq .heading .label{color:#60A5FA;margin-bottom:10px;display:block;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.seq .heading h3{font-family:var(--serif);font-size:clamp(32px,4.4vw,58px);line-height:.96;letter-spacing:-.015em;color:#F8FAFC;font-weight:400;max-width:600px}
.seq .heading h3 em{color:#67E8F9;font-style:italic}
.seq .heading .stage-pill{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#94A3B8;background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.25);padding:8px 14px;border-radius:999px;backdrop-filter:blur(8px);display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.seq .heading .stage-pill .idx{color:#67E8F9}

.seq .terminal{position:relative;z-index:2;align-self:center;justify-self:center;width:75%;margin-top:0;background:rgba(2,6,17,.72);border:1px solid rgba(148,163,184,.18);border-radius:10px;overflow:hidden;font-family:var(--mono);font-size:12.5px;line-height:1.75;box-shadow:0 24px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04);backdrop-filter:blur(6px);height:min(54vh,440px);display:flex;flex-direction:column}
.seq .terminal .bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(148,163,184,.12);background:rgba(15,23,42,.5)}
.seq .terminal .bar .dot{width:10px;height:10px;border-radius:50%}
.seq .terminal .bar .dot.r{background:#EF4444}
.seq .terminal .bar .dot.y{background:#F59E0B}
.seq .terminal .bar .dot.g{background:#22C55E}
.seq .terminal .bar .title{margin-left:10px;font-size:11px;color:#64748B;letter-spacing:.1em}
.seq .terminal .feed{padding:18px 20px;overflow:hidden;flex:1;position:relative}
.seq .terminal .line{opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease;white-space:pre-wrap;word-break:break-word}
.seq .terminal .line.on{opacity:1;transform:translateY(0)}
.seq .terminal .prompt{color:#67E8F9}
.seq .terminal .cmd{color:#F8FAFC}
.seq .terminal .out{color:#94A3B8}
.seq .terminal .ok{color:#86EFAC}
.seq .terminal .err{color:#FCA5A5}
.seq .terminal .dim{color:#64748B}
.seq .terminal .caret{display:inline-block;width:8px;height:1.1em;vertical-align:-2px;background:#67E8F9;margin-left:4px;animation:termCaret 1s steps(1) infinite}
@keyframes termCaret{0%,49%{opacity:1}50%,100%{opacity:0}}

.seq .track{position:relative;z-index:1;display:flex;justify-content:center;align-items:stretch}
.seq .track .rail{position:relative;width:2px;background:linear-gradient(180deg,rgba(103,232,249,0) 0%,rgba(103,232,249,.35) 8%,rgba(96,165,250,.45) 50%,rgba(134,239,172,.5) 92%,rgba(134,239,172,0) 100%);margin-top:40px;margin-bottom:20px;flex:1;border-radius:2px}
.seq .track .rail::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.35) 0 4px,transparent 4px 14px);
  opacity:.35;
}
.seq .node{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;z-index:2}
.seq .node .dot{width:12px;height:12px;border-radius:50%;background:#0B1220;border:2px solid #475569;box-shadow:0 0 0 4px rgba(8,14,26,.9);transition:border-color .3s,background .3s,box-shadow .3s}
.seq .node.active .dot{border-color:#67E8F9;background:#67E8F9;box-shadow:0 0 0 4px rgba(8,14,26,.9),0 0 20px rgba(103,232,249,.8)}
.seq .node.passed .dot{border-color:#86EFAC;background:#86EFAC}
.seq .node .tag{position:absolute;left:24px;top:50%;transform:translate(0,-50%);white-space:nowrap;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#64748B;transition:color .3s}
.seq .node.active .tag,.seq .node.passed .tag{color:#E2E8F0}
.seq .node .tag .n{color:#67E8F9;margin-right:8px}

.seq .rocket{position:absolute;left:50%;transform:translate(-50%,0);width:42px;height:66px;z-index:3;pointer-events:none;transition:filter .3s}
.seq .rocket svg{display:block;width:100%;height:100%;filter:drop-shadow(0 0 12px rgba(103,232,249,.5))}
.seq .rocket .flame{position:absolute;left:50%;top:100%;transform:translateX(-50%);width:16px;height:0px;background:linear-gradient(180deg,#67E8F9 0%,#2563EB 40%,rgba(239,68,68,.85) 75%,rgba(245,158,11,0) 100%);border-radius:0 0 40% 40% / 0 0 70% 70%;filter:blur(.4px);mix-blend-mode:screen;transition:height .4s cubic-bezier(.2,.8,.2,1)}
.seq .rocket.ignited .flame{height:54px}
.seq .rocket.ignited svg{filter:drop-shadow(0 0 20px rgba(103,232,249,.9))}

.seq .trail{position:absolute;left:50%;transform:translateX(-50%);top:0;bottom:0;width:80px;z-index:1;pointer-events:none;overflow:hidden}
.seq .trail span{position:absolute;left:50%;width:3px;height:3px;border-radius:50%;background:#67E8F9;box-shadow:0 0 6px #67E8F9;opacity:0}

.seq .preview{position:relative;z-index:2;align-self:center;justify-self:center;width:75%;margin-top:0;background:#FFFFFF;border:1px solid rgba(148,163,184,.25);border-radius:10px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45);height:min(54vh,440px);display:flex;flex-direction:column}
.seq .preview .chrome{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#F1F5F9;border-bottom:1px solid #E2E8F0}
.seq .preview .chrome .dot{width:10px;height:10px;border-radius:50%;background:#CBD5E1}
.seq .preview .chrome .url{flex:1;background:#FFFFFF;border:1px solid #E2E8F0;border-radius:6px;padding:5px 10px;font-family:var(--mono);font-size:10.5px;color:#475569;display:flex;align-items:center;gap:6px;letter-spacing:.02em}
.seq .preview .chrome .url .lock{color:#64748B}
.seq .preview .chrome .live-badge{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#FFFFFF;background:#22C55E;padding:4px 8px;border-radius:4px;opacity:0;transition:opacity .4s}
.seq .preview.shipped .chrome .live-badge{opacity:1}
.seq .preview .canvas{flex:1;position:relative;overflow:hidden;background:#FFFFFF;transition:filter .4s}
.seq .preview.glitching .canvas{animation:previewShake .3s steps(2) infinite;filter:hue-rotate(10deg) saturate(1.4) contrast(1.05)}
@keyframes previewShake{0%{transform:translate(0,0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px,-1px)}100%{transform:translate(1px,1px)}}

.seq .preview .lyr{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.seq .preview .lyr.on{opacity:1}

/* layer 0: raw HTML default-browser view */
.seq .preview .lyr.init{padding:22px 28px;background:#FFFFFF;color:#000;font-family:"Times New Roman",Times,serif;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.seq .preview .lyr.init h1{font-size:32px;font-weight:700;margin:0;color:#000;letter-spacing:0;line-height:1.1;font-family:"Times New Roman",Times,serif}
.seq .preview .lyr.init p{margin:0;font-size:16px;line-height:1.4}
.seq .preview .lyr.init a{color:#0000EE;text-decoration:underline;font-size:16px}
.seq .preview .lyr.init hr{border:none;border-top:1px solid #888;margin:6px 0;width:100%}
.seq .preview .lyr.init small{font-size:11px;color:#555;font-family:"Times New Roman",Times,serif}

/* layer 1: Next.js starter */
.seq .preview .lyr.scaffold{padding:18px;background:#0A0A0A;color:#FFFFFF;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden;background-image:radial-gradient(circle at 50% 0,rgba(255,255,255,.06),transparent 50%)}
.seq .preview .lyr.scaffold .nx-edit{align-self:center;font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(4px);padding:8px 18px;border-radius:0;color:rgba(255,255,255,.85);display:flex;align-items:center}
.seq .preview .lyr.scaffold .nx-edit code{font-family:var(--mono);font-weight:600;color:#FFFFFF;background:transparent}
.seq .preview .lyr.scaffold .nx-logo{width:96px;height:auto;display:flex;align-items:center;justify-content:center}
.seq .preview .lyr.scaffold .nx-logo svg{width:100%;height:auto;display:block}
.seq .preview .lyr.scaffold .nx-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}
.seq .preview .lyr.scaffold .nx-card{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:6px;background:transparent;border:1px solid transparent;transition:border-color .2s,background .2s}
.seq .preview .lyr.scaffold .nx-card b{font-size:11px;font-weight:600;color:#FFFFFF;display:flex;align-items:center;justify-content:space-between;letter-spacing:-.01em}
.seq .preview .lyr.scaffold .nx-card b span{color:rgba(255,255,255,.5);font-weight:400}
.seq .preview .lyr.scaffold .nx-card > span{font-size:9.5px;line-height:1.35;color:rgba(255,255,255,.5)}

/* layer 2: n8n workflow editor */
.seq .preview .lyr.flow{background:#FAF7F1;color:#3C3C3C;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;overflow:hidden}
.seq .preview .lyr.flow .nf-bar{display:flex;align-items:center;gap:14px;padding:9px 14px;background:#FFFFFF;border-bottom:1px solid #E5E1D8;font-size:11px;color:#525252}
.seq .preview .lyr.flow .nf-title{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;color:#1F1F1F}
.seq .preview .lyr.flow .nf-title b{font-weight:600;color:#FF6D5A}
.seq .preview .lyr.flow .nf-title .nf-sep{color:#9CA3AF}
.seq .preview .lyr.flow .nf-meta{color:#6B7280;font-size:10px}
.seq .preview .lyr.flow .nf-status{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#0F7A3E;background:#E7F8EF;border:1px solid #BFEED6;padding:3px 10px;border-radius:999px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.seq .preview .lyr.flow .nf-pulse{width:6px;height:6px;border-radius:50%;background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.6);animation:nfPulse 2s infinite}
@keyframes nfPulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.seq .preview .lyr.flow .nf-canvas{position:relative;flex:1;background-color:#FAF7F1;background-image:radial-gradient(circle,#D7D2C5 1px,transparent 1px);background-size:14px 14px;background-position:0 0}
.seq .preview .lyr.flow .nf-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.seq .preview .lyr.flow .nf-lines path{fill:none;stroke:#9CA3AF;stroke-width:1.6;stroke-linecap:round}
.seq .preview .lyr.flow .nf-node{position:absolute;transform:translate(0,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;width:60px;pointer-events:none}
.seq .preview .lyr.flow .nf-node .nf-ic{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#FFFFFF;border:1px solid #E5E1D8;box-shadow:0 1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.04);font-family:var(--mono);font-size:14px;font-weight:600;color:#1F1F1F}
.seq .preview .lyr.flow .nf-node .nf-lbl{font-size:9.5px;font-weight:500;color:#525252;letter-spacing:.01em;white-space:nowrap}
.seq .preview .lyr.flow .n-webhook .nf-ic{background:#FF6D5A;color:#FFFFFF;border-color:#E55F4D}
.seq .preview .lyr.flow .n-set .nf-ic{background:#FFFFFF;color:#6B7280}
.seq .preview .lyr.flow .n-split .nf-ic{background:#F4F0E6;color:#1F1F1F}
.seq .preview .lyr.flow .n-supabase .nf-ic{background:#3ECF8E;color:#053824;border-color:#2BB57A}
.seq .preview .lyr.flow .n-gmail .nf-ic{background:#FFFFFF;color:#EA4335;border-color:#FBBDB7}
.seq .preview .lyr.flow .n-slack .nf-ic{background:#4A154B;color:#ECB22E;border-color:#3A1140}

/* layer 3: Vitest UI */
.seq .preview .lyr.tests{background:#1A1B1E;color:#C9D1D9;font-family:var(--mono);font-size:11px;display:flex;flex-direction:column;overflow:hidden}
.seq .preview .lyr.tests .vit-bar{display:flex;align-items:center;gap:14px;padding:9px 14px;background:#16171A;border-bottom:1px solid #2A2D33;font-size:10px}
.seq .preview .lyr.tests .vit-logo{color:#FFD787;font-weight:600;letter-spacing:.03em}
.seq .preview .lyr.tests .vit-meta{color:#6E7681}
.seq .preview .lyr.tests .vit-pass{color:#86EFAC;margin-left:auto}
.seq .preview .lyr.tests .vit-fail{color:#FCA5A5}
.seq .preview .lyr.tests .vit-fail.t-pass{display:none;color:#86EFAC}
.seq .preview .lyr.tests.passed .t-fail{display:none}
.seq .preview .lyr.tests.passed .t-pass{display:inline}
.seq .preview .lyr.tests .vit-body{flex:1;display:grid;grid-template-columns:130px 1fr;min-height:0}
.seq .preview .lyr.tests .vit-tree{padding:10px 8px;border-right:1px solid #2A2D33;background:#16171A;display:flex;flex-direction:column;gap:4px;font-size:10.5px;overflow:hidden}
.seq .preview .lyr.tests .t-file{color:#8B949E;padding:3px 6px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seq .preview .lyr.tests .t-file.t-current{background:#2A2D33;color:#FFD787}
.seq .preview .lyr.tests .vit-list{padding:10px 14px;display:flex;flex-direction:column;gap:5px;overflow:hidden;min-width:0}
.seq .preview .lyr.tests .t-row{display:flex;align-items:center;gap:8px;font-size:11px}
.seq .preview .lyr.tests .t-row .t-ic{width:14px;color:#86EFAC;font-weight:700}
.seq .preview .lyr.tests .t-row .t-ms{margin-left:auto;color:#6E7681;font-size:10px}
.seq .preview .lyr.tests .t-flip .t-ic-pass,.seq .preview .lyr.tests .t-flip .t-ms-pass{display:none}
.seq .preview .lyr.tests .t-flip .t-ic-fail{color:#FCA5A5}
.seq .preview .lyr.tests .t-flip .t-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seq .preview .lyr.tests .t-flip .t-ms-fail{color:#FCA5A5}
.seq .preview .lyr.tests.passed .t-flip .t-ic-fail,.seq .preview .lyr.tests.passed .t-flip .t-ms-fail{display:none}
.seq .preview .lyr.tests.passed .t-flip .t-ic-pass,.seq .preview .lyr.tests.passed .t-flip .t-ms-pass{display:inline}
.seq .preview .lyr.tests.passed .t-flip .t-ic-pass{color:#86EFAC}
.seq .preview .lyr.tests.passed .t-flip .t-ms-pass{color:#6E7681}
.seq .preview .lyr.tests .t-diff{margin-top:6px;background:#0E0F11;border:1px solid #2A2D33;border-left:3px solid #FCA5A5;border-radius:4px;padding:6px 10px;display:flex;flex-direction:column;gap:2px;font-size:10.5px;transition:opacity .3s,max-height .3s}
.seq .preview .lyr.tests .t-diff-exp{color:#FCA5A5}
.seq .preview .lyr.tests .t-diff-rec{color:#86EFAC}
.seq .preview .lyr.tests.passed .t-diff{opacity:0;max-height:0;padding:0;margin:0;overflow:hidden;border-color:transparent}

/* layer 4: Vercel deploy */
.seq .preview .lyr.deploy{padding:14px 16px;display:flex;flex-direction:column;gap:6px;background:#0B0B0F;color:#E2E8F0;font-family:var(--mono);font-size:11px;line-height:1.7}
.seq .preview .lyr.deploy .dep-head{display:flex;align-items:center;gap:12px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08);font-size:10.5px}
.seq .preview .lyr.deploy .dep-brand{color:#FFFFFF;font-weight:600;display:flex;align-items:center;gap:6px}
.seq .preview .lyr.deploy .nf-mark{width:14px;height:14px;display:inline-block}
.seq .preview .lyr.deploy .dep-project{color:#8B949E}
.seq .preview .lyr.deploy .dep-status{margin-left:auto;color:#86EFAC;background:rgba(34,197,94,.12);border:1px solid rgba(134,239,172,.3);padding:2px 8px;border-radius:999px;font-size:9.5px;letter-spacing:.15em;text-transform:uppercase}
.seq .preview .lyr.deploy .step{display:flex;gap:10px;align-items:baseline}
.seq .preview .lyr.deploy .step .mark{color:#22C55E;width:12px}
.seq .preview .lyr.deploy .step .lbl{color:#94A3B8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seq .preview .lyr.deploy .step .val{color:#67E8F9;margin-left:auto;font-size:10px}
.seq .preview .lyr.deploy .bar{height:3px;background:#1E293B;border-radius:2px;overflow:hidden;margin:4px 0}
.seq .preview .lyr.deploy .bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#2563EB,#67E8F9);border-radius:2px}
.seq .preview .lyr.deploy .success{margin-top:auto;padding-top:8px;border-top:1px solid rgba(148,163,184,.2);color:#86EFAC;display:flex;align-items:center;gap:8px;font-size:10.5px}
.seq .preview .lyr.deploy .success b{color:#FFFFFF}

/* layer 5: shipped production page */
.seq .preview .lyr.ship{padding:18px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(180deg,#FFFFFF,#F1F5F9)}
.seq .preview .lyr.ship .topnav{display:flex;justify-content:space-between;align-items:center}
.seq .preview .lyr.ship .topnav .brand{font-family:var(--serif);font-size:14px;color:#0B1220;font-weight:600;letter-spacing:-.01em}
.seq .preview .lyr.ship .topnav .cta{font-family:var(--sans);font-size:10px;color:#FFFFFF;background:#0B1220;padding:5px 12px;border-radius:999px;font-weight:600}
.seq .preview .lyr.ship .ship-hero{display:flex;flex-direction:column;gap:8px;padding:6px 0}
.seq .preview .lyr.ship .ship-hero .kicker{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#2563EB}
.seq .preview .lyr.ship h4{font-family:var(--serif);font-size:32px;line-height:.95;letter-spacing:-.015em;color:#0B1220;font-weight:400;margin:0}
.seq .preview .lyr.ship h4 em{color:#2563EB;font-style:italic}
.seq .preview .lyr.ship .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.seq .preview .lyr.ship .meta span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#475569;background:#FFFFFF;border:1px solid #E2E8F0;padding:6px 10px;border-radius:6px}
.seq .preview .lyr.ship .meta span b{color:#0B1220;font-weight:700;margin-right:4px}

.seq .confetti{position:absolute;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .4s}
.seq .confetti.on{opacity:1}
.seq .confetti i{position:absolute;width:6px;height:10px;border-radius:1px;top:50%;left:50%;transform-origin:center;opacity:0}
.seq .confetti.on i{animation:confettiRise 2.2s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes confettiRise{
  0%{opacity:0;transform:translate(0,0) rotate(0deg) scale(.4)}
  10%{opacity:1}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(1)}
}

.seq .footbar{position:absolute;left:36px;right:36px;bottom:28px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#64748B}
.seq .footbar .bar{flex:1;height:2px;background:rgba(148,163,184,.18);border-radius:2px;overflow:hidden;margin:0 14px}
.seq .footbar .bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#67E8F9,#86EFAC);border-radius:2px;transition:width .1s linear}

/* Phones + portrait tablets: the sticky becomes a flex column so the terminal
   and browser preview divide whatever height is left instead of overflowing
   past the fold and colliding with the footbar. */
@media (max-width:900px){
  .seq{height:420vh}
  .seq .sticky{display:flex;flex-direction:column;gap:14px;padding:92px 20px 64px}
  .seq .heading{position:static;padding:0;flex:0 0 auto;flex-direction:column;align-items:flex-start;gap:12px}
  .seq .heading h3{max-width:none}
  .seq .heading .stage-pill{align-self:flex-start}
  .seq .track{display:none}
  .seq .terminal,.seq .preview{width:100%;height:auto;flex:1 1 0;min-height:0;margin:0}
  .seq .footbar{left:20px;right:20px;bottom:20px}
}
@media (max-width:600px){
  .seq .sticky{padding:84px 16px 58px;gap:12px}
  .seq .terminal{font-size:11px;line-height:1.65}
  .seq .terminal .feed{padding:12px 14px}
  .seq .heading h3{font-size:28px}
  .seq .footbar{left:16px;right:16px;bottom:16px;font-size:9px;letter-spacing:.14em}
  .seq .preview .lyr.init h1{font-size:24px}
  .seq .preview .lyr.ship h4{font-size:24px}
}

/* COMMITS */
.commits{padding:180px 36px 200px;background:var(--cream);position:relative;overflow:hidden}
.commits::before{
  content:"";position:absolute;left:-10%;top:10%;width:50vmin;height:50vmin;
  background:radial-gradient(circle,rgba(37,99,235,.06),transparent 70%);pointer-events:none;
}
.commits-inner{max-width:1100px;margin:0 auto;position:relative}
.commits-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:80px;gap:40px;flex-wrap:wrap}
.commits-head .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:24px}
.commits-head .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--terra)}
.commits-head h2{font-family:var(--serif);font-size:clamp(64px,9vw,140px);line-height:.9;letter-spacing:-.025em;color:var(--ink)}
.commits-head h2 em{font-style:italic;color:var(--terra)}
.commits-head .status{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:10px;padding:10px 16px;background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.18);border-radius:999px;font-weight:500;white-space:nowrap}
.commits-head .status .pulse{width:8px;height:8px;border-radius:50%;background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.5)}70%{box-shadow:0 0 0 12px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:-20px 0 88px;padding:40px 0;border-top:1px solid rgba(11,18,32,.1);border-bottom:1px solid rgba(11,18,32,.1);position:relative}
.stats::before,.stats::after{content:"";position:absolute;left:0;right:0;height:1px;background:rgba(11,18,32,.04)}
.stats::before{top:-4px}
.stats::after{bottom:-4px}
.stat{padding:6px 28px;display:flex;flex-direction:column;gap:14px;border-right:1px solid rgba(11,18,32,.08);position:relative;opacity:.35;transform:translateY(14px);will-change:opacity,transform}
.stat:first-child{padding-left:4px}
.stat:last-child{padding-right:4px;border-right:none}
.stat-num{font-family:var(--serif);font-size:clamp(56px,7.2vw,96px);line-height:.88;letter-spacing:-.025em;color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums;display:block}
.stat-num.counting{color:var(--terra)}
.stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:500}
.stat-meta{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);font-weight:400;margin-top:-6px}

.commit-list{list-style:none;counter-reset:commit;position:relative;border-top:1px solid rgba(11,18,32,.1)}
.commit{display:flex;gap:32px;align-items:center;padding:32px 4px;border-bottom:1px solid rgba(11,18,32,.1);position:relative;transition:background .3s}
.commit:hover{background:rgba(37,99,235,.03)}

.commit .left-side{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;opacity:0;transform:translateX(-72px);will-change:transform,opacity}
.commit .right-side{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:24px;opacity:0;transform:translateX(72px);will-change:transform,opacity}

.commit .vline{position:absolute;left:236px;top:24px;bottom:24px;width:2px;background:var(--terra);border-radius:2px;opacity:0;transform:translateX(-50%) scaleY(.3);transform-origin:center;pointer-events:none;z-index:1;will-change:transform,opacity;transition:background-color .3s,width .3s,box-shadow .3s}

.commit .flash-line{position:absolute;left:236px;top:50%;width:2px;height:0;background:linear-gradient(180deg,rgba(103,232,249,0),#67E8F9 50%,rgba(103,232,249,0));border-radius:2px;opacity:0;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 12px rgba(103,232,249,.7),0 0 26px rgba(37,99,235,.4);z-index:2;will-change:height,opacity}

.commit .sha{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--terra);font-weight:500;transition:color .3s}
.commit .branch{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.commit .msg{flex:1;font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);line-height:1.18;letter-spacing:-.01em;color:var(--ink)}
.commit .when{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe);text-align:right;font-weight:500;white-space:nowrap}

.commit:hover .sha{color:var(--terra-deep)}
.commit:hover .vline{width:3px;background:var(--terra-deep);box-shadow:0 0 12px rgba(37,99,235,.4)}

@media (max-width:880px){
  .commits{padding:100px 24px 120px}
  .commits-head{margin-bottom:56px;gap:24px}
  .stats{grid-template-columns:1fr 1fr;gap:8px 0;padding:28px 0;margin-bottom:64px}
  .stat{padding:14px 18px;border-right:1px solid rgba(11,18,32,.08)}
  .stat:first-child,.stat:nth-child(3){padding-left:4px}
  .stat:nth-child(2),.stat:last-child{padding-right:4px;border-right:none}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid rgba(11,18,32,.08);padding-bottom:24px}
  .stat:nth-child(3),.stat:nth-child(4){padding-top:24px}
  .stat-num{font-size:clamp(44px,12vw,64px)}
  .commit{flex-direction:column;align-items:stretch;gap:10px;padding:22px 4px}
  .commit .left-side{width:auto;flex-direction:row;justify-content:space-between;align-items:baseline;gap:14px;transform:translateX(-24px)}
  .commit .right-side{flex-direction:column;align-items:flex-start;gap:8px;transform:translateX(24px)}
  .commit .vline,.commit .flash-line{display:none}
  .commit .msg{font-size:20px}
  .commit .when{text-align:left}
  .commits-head h2{font-size:clamp(44px,10vw,64px)}
}

/* INDEX / SERVICES */
.index{padding:200px 0 100px;background:var(--ink);color:#FFFFFF;position:relative;overflow:hidden}
.index .head{padding:0 36px;max-width:1280px;margin:0 auto 100px}
.index .head .label{color:var(--amber)}
.index .head h2{font-family:var(--serif);font-size:clamp(70px,11vw,180px);line-height:.88;letter-spacing:-.025em;margin-top:24px}
.index .head h2 em{font-style:italic;color:#67E8F9}
.index ul{list-style:none;max-width:1280px;margin:0 auto;padding:0 36px}
.index li{display:grid;grid-template-columns:80px 1fr auto 200px;gap:40px;align-items:baseline;padding:32px 0;border-top:1px solid rgba(255,255,255,.15);font-family:var(--serif);font-size:clamp(36px,4.5vw,64px);line-height:1;letter-spacing:-.015em;transition:padding-left .4s}
.index li:last-child{border-bottom:1px solid rgba(255,255,255,.15)}
.index li:hover{padding-left:20px;color:#67E8F9}
.index li .n{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#CBD5E1;font-weight:500}
.index li em{font-style:italic;color:#67E8F9}
.index li .tag{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#CBD5E1;text-transform:uppercase;text-align:right;font-weight:500}

.index li{opacity:var(--reveal,0);transform:translateX(calc((var(--reveal,0) - 1) * 40px));transition:padding-left .4s,color .4s}
.index li::after{content:"";position:absolute;left:0;right:calc((1 - var(--reveal,0)) * 100%);bottom:-1px;height:1px;background:#67E8F9}
.index li{position:relative}

/* CONTACT */
.contact{min-height:100vh;min-height:100svh;background:var(--terra);color:#FFFFFF;padding:clamp(72px,12vh,120px) 36px clamp(28px,4vh,40px);position:relative;display:grid;grid-template-rows:1fr auto;gap:clamp(20px,4vh,40px)}
.contact .contact-eyebrow{position:absolute;top:36px;left:36px;z-index:3;color:rgba(255,255,255,.92)}
.contact .contact-inner{text-align:center;position:relative;z-index:2;align-self:center;max-width:1100px;margin:0 auto;width:100%}
.contact .ship-doodle-wrap{margin:0;display:block}
.contact .ship-doodle{display:block;margin:0 auto;width:clamp(120px,22vmin,260px);max-height:24vh;height:auto;color:#FFFFFF;filter:drop-shadow(0 6px 16px rgba(11,18,32,.22));transform-origin:50% 80%;animation:shipIdle 5.5s ease-in-out infinite;transition:filter .4s}
.contact:hover .ship-doodle{animation:shipRock 2.4s ease-in-out infinite;filter:drop-shadow(0 12px 26px rgba(11,18,32,.32))}
@keyframes shipIdle{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-3px) rotate(1deg)}
}
@keyframes shipRock{
  0%,100%{transform:translateY(0) rotate(-3.5deg)}
  50%{transform:translateY(-6px) rotate(3.5deg)}
}
.contact .ship-doodle path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;will-change:stroke-dashoffset}
.contact .ship-doodle path:nth-last-of-type(-n+2){animation:waveDrift 5s ease-in-out infinite;transform-origin:50% 50%}
.contact .ship-doodle path:nth-last-of-type(1){animation-delay:-2s}
.contact:hover .ship-doodle path:nth-last-of-type(-n+2){animation:waveDriftActive 2.2s ease-in-out infinite}
.contact:hover .ship-doodle path:nth-last-of-type(1){animation-delay:-1.1s}
@keyframes waveDrift{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@keyframes waveDriftActive{
  0%,100%{transform:translate(-3px,0)}
  25%{transform:translate(4px,-1.5px)}
  50%{transform:translate(9px,0)}
  75%{transform:translate(4px,1.5px)}
}

.contact .big{font-family:var(--serif);font-size:clamp(40px,min(8.8vw,12vh),120px);line-height:1;letter-spacing:-.035em;white-space:nowrap;margin:clamp(8px,2vh,24px) 0 0;font-weight:400;position:relative;z-index:2}
.contact .big em{font-style:italic}
.contact .big > span{display:inline-block}

.contact .contact-subhead{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85);margin:clamp(10px,2.2vh,28px) auto 0;font-weight:500;line-height:1.7;max-width:640px}

.contact .cta-primary{display:inline-flex;align-items:center;gap:18px;background:#FFFFFF;color:var(--ink);padding:clamp(14px,2.4vh,26px) clamp(22px,3vw,36px);border-radius:999px;font-family:var(--sans);font-weight:600;font-size:clamp(15px,1.7vh,19px);letter-spacing:-.005em;text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s;box-shadow:0 14px 36px rgba(11,18,32,.2);position:relative;z-index:2;margin-top:clamp(18px,3.2vh,40px)}
.contact .cta-primary:hover{transform:translateY(-3px);box-shadow:0 22px 52px rgba(11,18,32,.32);background:#F8FAFC}
.contact .cta-primary .addr{font-family:var(--mono);font-weight:500;font-size:15px;color:var(--ink-soft);letter-spacing:-.005em}
.contact .cta-primary .cta-arrow{width:18px;height:18px;display:block;color:var(--ink);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.contact .cta-primary:hover .cta-arrow{transform:translateX(5px)}

.contact .big .ch{display:inline-block;opacity:0;transform:translateY(20px);filter:blur(8px);will-change:opacity,transform,filter}
.contact .big .caret{display:inline-block;width:.08em;height:.78em;vertical-align:-.08em;background:#FFFFFF;margin-left:.08em;opacity:0;animation:caretBlink 1s steps(1) infinite;transition:opacity .3s}
@keyframes caretBlink{0%,49%{opacity:1}50%,100%{opacity:0}}

.contact .foot{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;position:relative;z-index:2;padding-top:clamp(20px,3.5vh,48px);border-top:1px solid rgba(255,255,255,.3)}
.contact .foot h4{margin-bottom:clamp(8px,1.4vh,14px);opacity:.85;font-weight:600;color:#E0F2FE}
.contact .foot a,.contact .foot span{display:block;line-height:1.7;min-height:24px}
.contact .foot a{position:relative;transition:color .25s,padding-left .25s;padding-left:0;padding-top:4px;padding-bottom:4px;line-height:1.4}
.contact .foot a::before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:#FFFFFF;transition:width .3s cubic-bezier(.2,.8,.2,1)}
.contact .foot a:hover{padding-left:14px;color:#FFFFFF}
.contact .foot a:hover::before{width:10px}

@media (max-width:880px){
  .nav{padding:12px 18px}
  .nav .mark{font-size:18px}
  .nav-toggle{display:inline-flex}
  .theme-toggle{width:42px;height:42px}
  .nav-end{gap:14px}
  .nav ul{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--cream);border-bottom:1px solid rgba(11,18,32,.08);padding:6px 0;font-size:12px;letter-spacing:.18em;transform-origin:top;transform:scaleY(0);opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .2s}
  [data-theme="dark"] .nav ul{border-bottom-color:rgba(248,250,252,.08)}
  .nav.open ul{transform:scaleY(1);opacity:1;pointer-events:auto}
  .nav ul li{border-top:1px solid rgba(11,18,32,.06)}
  [data-theme="dark"] .nav ul li{border-top-color:rgba(248,250,252,.06)}
  .nav ul li:first-child{border-top:0}
  .nav ul a{display:block;padding:14px 24px;min-height:44px}
  .tilt .head{grid-template-columns:1fr}
  .tilt .head .aside{text-align:left;max-width:none}
  .tilt .grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}
  .tilt .card.feature,.tilt .card.c2,.tilt .card.c3,.tilt .card.c4,.tilt .card.c5{grid-column:1/-1;margin-top:0}
  .tilt .card.feature .thumb{aspect-ratio:4/3}
  .tilt .card.feature .info h3{font-size:28px}
  .horz .head h3{font-size:22px}
  .horz .slide .name{font-size:clamp(34px,8vw,52px);max-width:100%}
  .index li{transform:translateX(calc((var(--reveal,0) - 1) * 16px))}
  .index{padding:120px 0 80px}
  .index .head{margin:0 auto 60px;padding:0 24px}
  .index .head h2{font-size:clamp(48px,12vw,80px)}
  .index ul{padding:0 24px}
  .index li{grid-template-columns:40px 1fr auto;gap:20px;font-size:clamp(28px,6vw,40px)}
  .index li .tag{display:none}
  .contact{padding:clamp(64px,10vh,96px) 24px clamp(20px,3vh,32px)}
  .contact .contact-eyebrow{top:24px;left:24px}
  .contact .cta-primary{gap:14px}
  .contact .cta-primary .cta-arrow{width:16px;height:16px}
  .contact .big{white-space:normal;font-size:clamp(34px,min(11vw,11vh),80px);line-height:1.05}
  .contact .contact-subhead{font-size:11px;letter-spacing:.14em}
  .contact .ship-doodle{width:clamp(110px,28vw,200px)}
  .contact .foot{grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.5vw,28px)}
}
@media (max-width:600px){
  .nav{padding:10px 14px}
  .nav .mark{font-size:16px}
  .hero h1{top:14%;padding:0 16px}
  .hero .meta{left:18px;right:18px;bottom:24px;flex-direction:column;align-items:flex-start;gap:20px}
  .hero .meta .loc{max-width:none}
  .hero .socials{gap:14px}
  .hero .scroll-hint{display:none}
  .pin-type .content{padding:0 24px}
  .pin-type .bg-word{font-size:clamp(220px,80vw,420px)}
  .commits{padding:80px 18px 100px}
  .commits-head{margin-bottom:40px}
  /* Branch names wrap at this width, so stack them under the sha rather than
     leaving ragged right-aligned fragments */
  .commit .left-side{flex-direction:column;align-items:flex-start;gap:4px}
  .commit .branch{text-align:left}
  .commits-head .status{padding:8px 12px;font-size:10px;white-space:normal;text-align:left;line-height:1.5}
  .index{padding:90px 0 60px}
  .index .head{padding:0 18px}
  .index ul{padding:0 18px}
  .index li{grid-template-columns:36px 1fr;gap:14px;padding:24px 0}
  .index li > span:nth-child(3){display:none}
  .contact{padding:clamp(56px,9vh,80px) 18px clamp(16px,2.5vh,28px)}
  .contact .foot{grid-template-columns:1fr 1fr;gap:clamp(12px,2vh,24px) clamp(14px,3vw,24px);font-size:10px;letter-spacing:.14em;padding-top:clamp(14px,2.4vh,28px)}
  .contact .foot h4{margin-bottom:clamp(4px,.8vh,10px);font-size:9px}
  .contact .foot a,.contact .foot span{line-height:1.45;min-height:0;padding-top:2px;padding-bottom:2px;word-break:break-word}
  .contact .ship-doodle{width:clamp(96px,32vw,140px);max-height:18vh}
}

/* ==========================================================================
   RESPONSIVE PASS
   Below 900px the two scroll-jacked sections drop their desktop choreography:
   the work track stacks into a normal vertical list (script.js stops writing a
   transform to it at the same breakpoint). Long unbreakable mono strings are
   allowed to break so grid tracks can't grow wider than the screen.
   ========================================================================== */

/* min-content of the email/URL strings was stretching .contact's grid track
   past the viewport, dragging every child out with it. */
.contact .foot > div{min-width:0}
.contact .foot a,.contact .foot span{overflow-wrap:anywhere}
.contact .cta-primary{max-width:100%;flex-wrap:wrap;justify-content:center}
.contact .cta-primary .addr{min-width:0;overflow-wrap:anywhere}

@media (max-width:900px){
  /* WORK: a vertical stack of cards instead of a sideways track */
  .horz{height:auto}
  .horz .sticky{position:static;height:auto;display:block;overflow:visible;padding:100px 0 84px}
  .horz .head{position:static;padding:0 24px;margin-bottom:30px}
  .horz .track{flex-direction:column;gap:20px;padding:0 24px;transform:none !important;will-change:auto}
  .horz .slide{flex:0 0 auto;width:100%;height:auto;justify-content:flex-start;gap:18px;padding:26px 22px}
  .horz .slide.shot .num,
  .horz .slide.shot .block{max-width:100%}
  .horz .slide.shot .block{gap:20px}
  .horz .slide.shot .preview{
    position:static;width:100%;height:auto;right:auto;transform:none;
    aspect-ratio:var(--shot,16/9);max-height:44vh;
    filter:drop-shadow(0 14px 30px rgba(0,0,0,.5));
  }
  .horz .counter{display:none}
}

@media (max-width:600px){
  .horz .sticky{padding:88px 0 64px}
  .horz .head{padding:0 18px;margin-bottom:24px}
  .horz .track{padding:0 18px;gap:16px}
  .horz .slide{padding:22px 18px;gap:16px}
  .horz .slide .num{font-size:11px}
  .horz .slide .meta{font-size:9.5px;letter-spacing:.16em}

  /* Contact CTA: label over address so the pill never outgrows the screen */
  .contact .cta-primary{width:100%;flex-direction:column;align-items:center;gap:6px;padding:16px 20px;text-align:center}
  .contact .cta-primary .addr{font-size:12.5px;letter-spacing:0}
  .contact .cta-primary .cta-arrow{display:none}
  .contact .foot{grid-template-columns:1fr}
  .contact .foot > div + div{padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
}

/* Landscape phones: vertical room is the scarce axis */
@media (max-height:520px) and (orientation:landscape){
  .hero h1{font-size:clamp(36px,9vh,64px);top:82px}
  .hero .meta{bottom:16px}
  .hero .scroll-hint{display:none}
  .seq .sticky{padding:72px 20px 52px;gap:10px}
  .seq .heading h3{font-size:24px}
  .pin-type .content p{font-size:clamp(24px,4.4vh,40px)}
}
