/* ==========================================================================
   Tripkabaap — site.css
   Design language: departure-board white up top, midnight control room below.
   One action blue, one amber conversion colour, pill controls, hairline depth.
   ========================================================================== */

@font-face{font-family:"Inter";src:url(../fonts/inter.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(../fonts/eb-garamond-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(../fonts/eb-garamond-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}

:root{
  /* colour */
  --blue:#007bff;--blue-press:#0069d9;--amber:#f7be00;--red:#d92d20;
  --indigo:#0d0021;--ink:#05010d;--white:#fff;--black:#000;
  --carbon:#333;--slate:#595959;--steel:#737373;--fog:#808080;--silver:#cfcfcf;--linen:#faf8f7;--ash:#89898e;
  --hair:rgba(0,0,0,.08);--hair-dark:rgba(255,255,255,.08);--hair-dark-2:rgba(255,255,255,.14);
  /* type */
  --sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:"EB Garamond",Garamond,"Times New Roman",serif;
  /* shape */
  --r-card:16px;--r-float:20px;--r-input:12px;--r-pill:999px;
  --max:1200px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow-card:0 0 0 1px rgba(0,0,0,.04),0 1px 1px .5px rgba(0,0,0,.02),0 3px 3px 1.5px rgba(0,0,0,.02),0 6px 6px -3px rgba(0,0,0,.02),0 12px 12px -6px rgba(0,0,0,.02),0 24px 24px -12px rgba(0,0,0,.02);
  --shadow-nav:0 1px 1px .5px rgba(0,0,0,.03),0 3px 3px 1.5px rgba(0,0,0,.03),0 6px 6px -3px rgba(0,0,0,.03),0 12px 12px -6px rgba(0,0,0,.03),0 24px 24px -12px rgba(0,0,0,.03);
  interpolate-size:allow-keywords;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--black);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}
.on-dark :focus-visible{outline-color:#6db3ff}
::selection{background:var(--blue);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-60px;z-index:200;background:var(--black);color:#fff;padding:10px 18px;border-radius:var(--r-pill);font-weight:600;font-size:14px;transition:top .2s}
.skip:focus{top:12px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}

/* ---------- type ---------- */
h1,h2,h3,h4{font-weight:700;color:inherit}
.display{font-size:clamp(42px,6.6vw,72px);line-height:1;letter-spacing:-.025em}
h2,.h2{font-size:clamp(32px,4.4vw,56px);line-height:1.02;letter-spacing:-.025em}
h3,.h3{font-size:22px;line-height:1.3;letter-spacing:-.025em}
.sub{font-size:17px;line-height:1.5;letter-spacing:-.01em;color:var(--carbon);max-width:56ch;text-wrap:pretty}
h1,h2{text-wrap:balance}
.hero .sub{max-width:600px;text-wrap:balance}
.on-dark .sub,.on-dark p{color:var(--silver)}
.center{text-align:center}.center .sub{margin-left:auto;margin-right:auto}
.serif{font-family:var(--serif);font-weight:700;letter-spacing:-.02em;line-height:.95}
.quote{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:-.005em}
.fine{font-size:13px;color:var(--steel);line-height:1.4}
.on-dark .fine{color:var(--ash)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-pill);font-size:15px;font-weight:600;line-height:1.2;letter-spacing:-.005em;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s,transform .2s var(--ease)}
.btn:active{transform:scale(.97)}
.btn svg{width:17px;height:17px;flex:none;transition:transform .25s var(--ease)}
.btn:hover svg.nudge{transform:translateX(3px)}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-press)}
.btn-amber{background:var(--amber);color:#000}.btn-amber:hover{background:#ffcb2e}
.btn-ghost{color:#000;box-shadow:inset 0 0 0 1px rgba(0,0,0,.5)}.btn-ghost:hover{background:rgba(0,0,0,.05)}
.btn-ghost-dark{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}.btn-ghost-dark:hover{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.btn-sm{padding:9px 16px;font-size:14px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.center .btn-row,.btn-row.center{justify-content:center}

/* ---------- announcement bar ---------- */
.announce{position:relative;background:var(--indigo);color:#fff;font-size:13px;font-weight:500;text-align:center;padding:9px 48px;line-height:1.35}
.announce a{display:inline-flex;align-items:center;gap:6px;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
.announce a:hover{text-decoration-color:#fff}
.announce svg{display:inline-block;width:14px;height:14px;color:var(--amber);vertical-align:-2px;margin-right:6px}
.announce-x{position:absolute;right:10px;top:50%;translate:0 -50%;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.7);transition:background .2s,color .2s}
.announce-x:hover{background:rgba(255,255,255,.12);color:#fff}
.announce-x svg{width:14px;height:14px;margin:0;color:inherit}
.announce[hidden]{display:none}

/* ---------- floating pill nav ---------- */
.nav-shell{position:sticky;top:0;z-index:60;padding:12px 16px;pointer-events:none}
.nav{pointer-events:auto;max-width:1040px;margin:0 auto;display:flex;align-items:center;gap:4px;padding:8px 8px 8px 10px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border:1px solid var(--hair);border-radius:var(--r-pill);box-shadow:var(--shadow-nav)}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.03em;padding-right:10px}
.logo img{width:38px;height:38px;border-radius:50%;box-shadow:0 0 0 1px var(--hair)}
.nav>nav{margin:0 auto}
.nav-links{display:flex;gap:2px}
.nav-links a{display:block;padding:9px 15px;border-radius:var(--r-pill);font-size:15px;font-weight:500;color:#000;transition:background .2s,color .2s}
.nav-links a:hover{background:rgba(0,0,0,.05)}
.nav-links a[aria-current="page"]{color:var(--blue)}
.nav .btn{margin-left:4px}
.burger{display:none;width:44px;height:44px;border-radius:50%;place-items:center;margin-left:auto}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:#000;transition:transform .3s var(--ease),opacity .2s}
.burger span+span{margin-top:5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--indigo);color:#fff;padding:104px 28px 32px;display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.menu.open{visibility:visible;opacity:1;transition:opacity .3s}
.menu a.m{font-size:34px;font-weight:700;letter-spacing:-.03em;padding:12px 0;border-bottom:1px solid var(--hair-dark);transform:translateY(12px);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.menu.open a.m{transform:none;opacity:1}
.menu.open a.m:nth-child(2){transition-delay:.04s}.menu.open a.m:nth-child(3){transition-delay:.08s}.menu.open a.m:nth-child(4){transition-delay:.12s}.menu.open a.m:nth-child(5){transition-delay:.16s}
.menu .btn-row{margin-top:auto}
@media(max-width:900px){.nav-links,.nav>.btn{display:none}.burger{display:grid}.nav{padding-left:12px}}

/* ---------- section modes ---------- */
.section{padding:96px 0}
.section-tight{padding:64px 0}
.on-dark{background:var(--indigo);color:#fff}
.on-linen{background:var(--linen)}
.sheet{position:relative;z-index:2;margin-top:-48px;border-radius:48px 48px 0 0}
.sheet.light{background:#fff;color:#000}
.pb-sheet{padding-bottom:144px}
.sheet-head{max-width:760px}
.sheet-head.center{margin:0 auto}
.sheet-head h2+.sub{margin-top:20px}

/* load-in (only where there is something to say) */
.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--rd,0s)}
.js [data-reveal].in{opacity:1;transform:none}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:var(--white);text-align:center;padding:44px 0 0}
.hero::before{content:"";position:absolute;left:50%;top:430px;width:1100px;height:1100px;translate:-50% 0;background:radial-gradient(closest-side,rgba(0,123,255,.10),rgba(0,123,255,0));pointer-events:none}
.hero .wrap{position:relative}
.hero h1{margin:0 auto}
.hero .sub{margin:22px auto 0}
.hero .btn-row{margin-top:30px;justify-content:center}
.hero-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border-radius:var(--r-pill);background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair);font-size:13px;font-weight:500;color:var(--carbon);margin-bottom:22px}
.hero-tag i{display:block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-left:6px;box-shadow:0 0 0 0 rgba(0,123,255,.5);animation:ping 2.4s ease-out infinite}
@keyframes ping{70%,100%{box-shadow:0 0 0 9px rgba(0,123,255,0)}}

.stage{position:relative;height:640px;margin-top:56px}
.stage-note{position:absolute;left:max(24px,calc(50% - 576px));bottom:70px;z-index:3;max-width:220px;text-align:left}

/* phone */
.phone{position:absolute;left:50%;top:0;width:300px;height:660px;margin-left:-150px;padding:9px;border-radius:48px;background:#0a0418;box-shadow:0 0 0 1px rgba(0,0,0,.5),inset 0 0 0 1.5px #2b2147,0 50px 90px -30px rgba(13,0,33,.45),0 20px 40px -20px rgba(13,0,33,.3);text-align:left;animation:phone-in 1s var(--ease) both}
@keyframes phone-in{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.ps{position:relative;height:100%;border-radius:40px;background:var(--linen);overflow:hidden;display:flex;flex-direction:column;font-size:13px}
.ps-status{display:flex;justify-content:space-between;align-items:center;padding:14px 24px 6px;font-size:12px;font-weight:600}
.ps-status .island{position:absolute;left:50%;top:9px;translate:-50% 0;width:82px;height:24px;border-radius:99px;background:#05010d}
.ps-status svg{width:16px;height:10px}
.ps-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px 10px}
.ps-head small{display:block;color:var(--steel);font-size:12px}
.ps-head strong{font-size:24px;letter-spacing:-.03em;line-height:1.1}
.ps-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#12128c);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}
.ps-seg{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin:4px 16px 0;padding:3px;border-radius:var(--r-pill);background:#eeebe9;--i:0}
.ps-seg .ind{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/3);border-radius:var(--r-pill);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12);translate:calc(var(--i)*100%) 0;transition:translate .5s var(--ease)}
.ps-seg button{position:relative;padding:7px 0;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;color:var(--steel);transition:color .3s}
.ps-seg button.on{color:#000}
.ps-panels{position:relative;flex:1;margin-top:12px}
.ps-panel{position:absolute;inset:0;padding:0 16px;opacity:0;transform:translateX(16px);pointer-events:none;transition:opacity .45s var(--ease),transform .5s var(--ease)}
.ps-panel.on{opacity:1;transform:none;pointer-events:auto}
.ps-panel.out{transform:translateX(-16px)}
.fl-route{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:var(--shadow-card)}
.fl-route b{display:block;font-size:20px;letter-spacing:-.03em;line-height:1}
.fl-route small{color:var(--steel);font-size:11.5px}
.fl-line{flex:1;position:relative;height:18px}
.fl-line::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1.5px dashed #c9c5c2}
.fl-line svg{position:absolute;top:0;left:0;width:18px;height:18px;color:var(--blue);animation:fly 3.2s var(--ease) infinite}
@keyframes fly{0%{left:-4%}70%,100%{left:calc(100% - 14px)}}
.fl-list{margin-top:10px;display:grid;gap:8px}
.fl-list li{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:14px;background:#fff;box-shadow:var(--shadow-card)}
.fl-list b{font-size:14px;letter-spacing:-.01em}
.fl-list small{display:block;color:var(--steel);font-size:11.5px}
.fl-list span{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.fl-list li.best{box-shadow:inset 0 0 0 1.5px var(--blue),var(--shadow-card)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:600;background:#eeebe9;color:var(--carbon)}
.chip.amber{background:#fff3cc;color:#5c4400}
.chip.blue{background:#e5f1ff;color:#004a99}
.ps-note{margin-top:10px}
.st-img{height:112px;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#1a1a9c 0%,#5b4bd1 55%,#f7be00 130%)}
.st-img svg{width:100%;height:100%}
.st-body{margin-top:10px;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:var(--shadow-card)}
.st-body b{font-size:15px;letter-spacing:-.02em}
.st-body small{display:block;color:var(--steel);font-size:12px;margin:1px 0 8px}
.st-price{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-weight:700;font-size:17px;letter-spacing:-.02em}
.st-price small{margin:0;font-weight:400}
.ch-card{padding:14px;border-radius:14px;background:var(--ink);color:#fff}
.ch-card svg{width:100%;height:92px}
.ch-card b{display:block;font-size:16px;margin-top:6px;letter-spacing:-.02em}
.ch-card small{color:var(--silver);font-size:12px}
.ch-cta{display:block;width:100%;margin-top:10px;padding:11px;border-radius:var(--r-pill);background:var(--blue);color:#fff;text-align:center;font-weight:600;font-size:13px}
.ps-tabbar{display:flex;justify-content:space-around;padding:10px 24px 22px;border-top:1px solid var(--hair);background:rgba(255,255,255,.7)}
.ps-tabbar svg{width:22px;height:22px;color:#b3aeab}
.ps-tabbar svg.on{color:var(--blue)}

/* floating cards */
.fcard{position:absolute;z-index:2;width:268px;--depth:1;transform:translate3d(calc(var(--px,0)*var(--depth)*1px),calc(var(--py,0)*var(--depth)*1px),0);transition:transform .6s var(--ease)}
.fcard.l{right:calc(50% + var(--off,132px))}
.fcard.r{left:calc(50% + var(--off,132px))}
.fcard-in{text-align:left;display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:var(--r-float);background:#fff;box-shadow:var(--shadow-card);border-left:3px solid transparent;rotate:var(--r,0deg);opacity:0;animation:card-in .9s cubic-bezier(.2,1.1,.3,1) var(--d,1s) both,bob var(--bob,7s) ease-in-out calc(var(--d,1s) + .9s) infinite}
.fcard-in.b-blue{border-left-color:var(--blue)}
.fcard-in.b-amber{border-left-color:var(--amber)}
.fcard-in.b-red{border-left-color:var(--red)}
@keyframes card-in{from{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -8px}}
.fi{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair)}
.fi svg{width:16px;height:16px}
.b-blue .fi{background:#e5f1ff;color:var(--blue)}.b-amber .fi{background:#fff3cc;color:#8a6a00}.b-red .fi{background:#fde8e6;color:var(--red)}
.fcard strong{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.fcard small{display:block;font-size:13px;color:var(--steel);line-height:1.35;margin-top:2px}
.fcard time{margin-left:auto;font-size:12px;color:var(--fog);white-space:nowrap}
.fcard.l1{top:70px;--r:-3deg;--d:1.1s;--bob:7s;--depth:.9}
.fcard.l2{top:250px;--r:2deg;--d:1.9s;--bob:8s;--depth:1.3;--off:128px}
.fcard.l3{top:430px;--r:-2deg;--d:2.7s;--bob:6.5s;--depth:.7;--off:150px}
.fcard.r1{top:20px;--r:3deg;--d:1.5s;--bob:8s;--depth:1.1;--off:140px}
.fcard.r2{top:190px;--r:-2.5deg;--d:2.3s;--bob:6.8s;--depth:1.4;--off:126px}
.fcard.r3{top:390px;--r:2deg;--d:3.1s;--bob:7.4s;--depth:.8;--off:150px}

@media(max-width:1060px){.fcard{--off:100px!important;width:236px}.fcard.l3,.fcard.r3{display:none}}
@media(max-width:760px){
  .hero{padding-top:28px}
  .stage{height:560px;margin-top:40px}
  .phone{width:262px;margin-left:-131px;height:580px;border-radius:42px}
  .ps{border-radius:34px;font-size:12px}
  .fcard{width:178px;--off:10px!important}
  .fcard-in{padding:10px 11px;gap:8px}
  .fi{width:26px;height:26px}.fi svg{width:13px;height:13px}
  .fcard strong{font-size:12.5px}.fcard small{font-size:11px}.fcard time{display:none}
  .fcard.l1{top:34px}.fcard.r1{top:112px}.fcard.l2{top:300px}.fcard.r2{top:392px}
  .fcard.l2,.fcard.r2{display:none}
  .stage-note{bottom:56px}
}

/* ==========================================================================
   DEPARTURE BOARD + NETWORK (dark)
   ========================================================================== */
.board{max-width:1040px;margin:56px auto 0;background:var(--ink);border:1px solid var(--hair-dark);border-radius:var(--r-float);overflow:hidden}
.board-row{display:grid;grid-template-columns:1.3fr 1.2fr 1.55fr 112px;gap:20px;align-items:center;padding:20px 28px;border-top:1px solid var(--hair-dark);transition:background .25s;position:relative}
.board-head{border-top:0;padding-top:14px;padding-bottom:14px;color:var(--ash);font-size:13px;font-weight:500}
a.board-row:hover{background:rgba(255,255,255,.04)}
a.board-row:hover .go{background:#fff;color:#000}
.board-row b{font-size:16px;font-weight:600;letter-spacing:-.015em}
.board-row .where{font-size:14px;color:var(--silver)}
.flaps{display:inline-flex;flex-wrap:nowrap;gap:2px;font-size:14px;font-weight:600;line-height:1}
.flap{position:relative;display:inline-grid;place-items:center;width:.84em;height:1.62em;border-radius:3px;background:#17082e;color:#fff;font-variant-numeric:tabular-nums;perspective:60px}
.flap::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.65)}
.flap.dot{width:.42em;background:transparent}
.flap.dot::after{display:none}
.flap.tick{animation:tick .09s linear}
@keyframes tick{from{transform:rotateX(70deg)}to{transform:none}}
.go{justify-self:end;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:600;box-shadow:inset 0 0 0 1px var(--hair-dark-2);transition:background .25s,color .25s}
.go svg{width:14px;height:14px}
.go.here{background:var(--blue);box-shadow:none;color:#fff}
@media(max-width:820px){
  .board-head{display:none}
  .board-row{grid-template-columns:1fr auto;gap:6px 12px;padding:18px 20px}
  .board-row .where{grid-column:1;grid-row:2}
  .board-row .flaps-wrap{grid-column:1;grid-row:3;margin-top:6px}
  .board-row .go{grid-column:2;grid-row:1/4;align-self:center}
}
@media(max-width:420px){.flaps{font-size:11.5px}}

.map{position:relative;margin:72px auto 0;max-width:1200px}
.map canvas{width:100%;height:auto;aspect-ratio:2.2/1}
.map-glow{position:absolute;inset:-10% 10% 0;background:radial-gradient(closest-side,rgba(60,30,200,.35),rgba(60,30,200,0));pointer-events:none;z-index:0}
.map canvas{position:relative;z-index:1}
@media(max-width:760px){.map{margin-top:40px}.map canvas{aspect-ratio:1.3/1}}

.pts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}
.pt{padding:24px 22px 26px;border-radius:var(--r-card);background:var(--ink);border:1px solid var(--hair-dark)}
.pt-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--hair-dark-2);margin-bottom:56px;color:#fff}
.pt-ic svg{width:20px;height:20px}
.pt h3{font-size:17px;letter-spacing:-.01em;margin-bottom:6px}
.pt p{font-size:14px;line-height:1.45;color:var(--silver)}
@media(max-width:980px){.pts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pts{grid-template-columns:1fr}.pt-ic{margin-bottom:28px}}

/* ==========================================================================
   EXPERIENCE CARDS (light)
   ========================================================================== */
.xgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.xcard{display:flex;flex-direction:column;border-radius:24px;background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair);overflow:hidden;transition:box-shadow .3s,transform .4s var(--ease)}
.xcard:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 24px 40px -24px rgba(13,0,33,.25)}
.xviz{position:relative;height:250px;overflow:hidden;background:linear-gradient(180deg,#f3f0ff,#faf8f7)}
.xbody{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.xbody h3{font-size:26px;letter-spacing:-.03em;line-height:1.1}
.xbody p{margin-top:10px;font-size:15px;line-height:1.5;color:var(--slate)}
.xmeta{margin-top:auto;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.xmeta .dom{font-size:13px;color:var(--steel)}
.xmeta .btn{padding:9px 16px;font-size:14px}
@media(max-width:980px){.xgrid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}}

/* vignette: charter */
.v-charter{background:linear-gradient(180deg,#0d0021,#24066b)}
.v-charter .arc{position:absolute;inset:0;width:100%;height:100%}
.v-charter .arc path.base{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1.5;stroke-dasharray:3 6}
.v-charter .arc path.live{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:18 120;animation:draw 5s linear infinite}
@keyframes draw{0%{stroke-dashoffset:18;opacity:0}4%{opacity:1}70%{stroke-dashoffset:-82;opacity:1}88%,100%{stroke-dashoffset:-82;opacity:0}}
.v-charter .tag{position:absolute;left:50%;top:22px;translate:-50% 0;padding:6px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.1);color:#fff;font-size:12px;font-weight:500;box-shadow:inset 0 0 0 1px var(--hair-dark-2)}

/* vignette: fly & stay */
.v-fs .t{position:absolute;left:50%;width:250px;padding:14px 16px;border-radius:var(--r-float);background:#fff;box-shadow:var(--shadow-card);translate:-50% 0}
.v-fs .t1{top:30px;rotate:-3deg}.v-fs .t2{top:122px;rotate:2.5deg}
.v-fs .rt{display:flex;align-items:center;justify-content:space-between;gap:10px}
.v-fs .rt b{font-size:22px;letter-spacing:-.03em}
.v-fs .rt svg{width:18px;height:18px;color:var(--blue)}
.v-fs .t small{display:block;color:var(--steel);font-size:12.5px;margin-top:2px}
.v-fs .t2 b{font-size:15px;letter-spacing:-.02em}
.v-fs .t2 .row{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.xcard:hover .v-fs .t1{rotate:-1.5deg;translate:-52% -3px}.xcard:hover .v-fs .t2{rotate:1deg;translate:-48% 3px}
.v-fs .t{transition:rotate .5s var(--ease),translate .5s var(--ease)}

/* vignette: tech */
.v-tech{background:var(--ink)}
.v-tech .pipe{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:0;padding:0 26px}
.v-tech .node{flex:none;display:grid;justify-items:center;gap:8px;color:#fff;font-size:12.5px;font-weight:600}
.v-tech .node i{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#17082e;box-shadow:inset 0 0 0 1px var(--hair-dark-2);animation:glow 4.5s ease-in-out infinite}
.v-tech .node:nth-of-type(2) i{animation-delay:1.1s}.v-tech .node:nth-of-type(3) i{animation-delay:2.2s}
.v-tech .node svg{width:20px;height:20px}
@keyframes glow{0%,60%,100%{box-shadow:inset 0 0 0 1px var(--hair-dark-2);background:#17082e}25%{box-shadow:inset 0 0 0 1.5px #3b9bff,0 0 24px rgba(0,123,255,.55);background:#0b2a5c}}
.v-tech .wire{flex:1;min-width:20px;height:2px;margin:0 6px 24px;background:linear-gradient(90deg,rgba(255,255,255,.14),rgba(255,255,255,.14));position:relative;overflow:hidden;border-radius:2px}
.v-tech .wire::after{content:"";position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,#3b9bff,transparent);animation:wire 2.2s linear infinite}
@keyframes wire{from{left:-40%}to{left:100%}}
.v-tech .wire:nth-of-type(2)::after{animation-delay:1.1s}

/* ==========================================================================
   STORY + CTA BAND
   ========================================================================== */
.story{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:end}
.story h2{max-width:14ch}
.story p+p{margin-top:14px}
.story .btn-row{margin-top:28px}
.flow{position:relative;margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.flow::before,.flow::after{content:"";position:absolute;left:8px;right:8px;top:7px;height:2px;border-radius:2px}
.flow::before{background:var(--hair-dark-2)}
.flow::after{background:var(--blue);transform-origin:left;transform:scaleX(var(--fp,0));transition:transform 1.6s var(--ease)}
.flow li{position:relative;padding-top:30px;font-size:17px;font-weight:600;letter-spacing:-.02em}
.flow li::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;border-radius:50%;background:var(--indigo);box-shadow:inset 0 0 0 2px var(--hair-dark-2);transition:background .4s,box-shadow .4s}
.flow.arrived li::before{background:var(--blue);box-shadow:0 0 0 4px rgba(0,123,255,.25)}
.flow li:nth-child(2)::before{transition-delay:.6s}.flow li:nth-child(3)::before{transition-delay:1.2s}
.flow li small{display:block;font-size:14px;font-weight:400;color:var(--silver);letter-spacing:0;margin-top:2px}
.flow-plane{position:absolute;top:-4px;left:0;width:22px;height:22px;color:#fff;transform:translateX(calc(var(--fp,0)*var(--fw,300px)));transition:transform 1.6s var(--ease);opacity:0}
.flow.arrived .flow-plane{opacity:1}
@media(max-width:900px){.story{grid-template-columns:1fr;gap:40px}}

.cta-band{position:relative;overflow:hidden;margin-top:96px;padding:72px 56px;border-radius:32px;background:linear-gradient(180deg,#120036 0%,#250160 51%,#120036 100%);text-align:center;box-shadow:inset 0 0 0 1px var(--hair-dark)}
.cta-band::before{content:"";position:absolute;left:50%;top:-40%;width:760px;height:760px;translate:-50% 0;background:radial-gradient(closest-side,rgba(0,123,255,.28),rgba(0,123,255,0));pointer-events:none}
.cta-band>*{position:relative}
.cta-band h2{max-width:16ch;margin:0 auto}
.cta-band .sub{margin:18px auto 0}
.cta-band .btn-row{margin-top:32px;justify-content:center}
@media(max-width:640px){.cta-band{padding:52px 24px;margin-top:64px;border-radius:28px}.cta-band .btn{width:100%}}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{background:var(--ink);color:#fff;padding:72px 0 28px}
.footer .logo{padding:0}
.footer-top{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:48px;padding-bottom:56px}
.footer-brand .quote{font-size:26px;line-height:1.1;margin-top:18px;color:#fff;max-width:14ch}
.footer-brand p.f{margin-top:14px;font-size:14px;color:var(--ash);max-width:32ch}
.footer-col h4{font-size:13px;font-weight:600;color:var(--ash);margin-bottom:6px}
.footer-col a{display:block;padding:6px 0;font-size:14.5px;color:var(--silver);transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid var(--hair-dark);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;font-size:13px;color:var(--ash)}
.footer-bottom a:hover{color:#fff}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;gap:36px}.footer-brand{grid-column:1/-1}}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */
.page-hero{padding:56px 0 64px;position:relative}
.page-hero.has-glow::before{content:"";position:absolute;right:-12%;top:-30%;width:760px;height:760px;background:radial-gradient(closest-side,rgba(0,123,255,.10),rgba(0,123,255,0));pointer-events:none;z-index:-1}
.crumbs{display:flex;gap:8px;font-size:14px;color:var(--steel);margin-bottom:20px}
.crumbs a:hover{color:#000}
.crumbs span[aria-hidden]{color:var(--silver)}
.page-hero h1{max-width:18ch}
.page-hero .sub{margin-top:22px}
.page-hero .btn-row{margin-top:28px}
.stamp{display:inline-block;margin-top:24px;padding:6px 14px;border-radius:var(--r-pill);background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair);font-size:13px;color:var(--slate)}

/* legal layout */
.legal{display:grid;grid-template-columns:240px minmax(0,720px);gap:64px;padding:8px 24px 112px;max-width:var(--max);margin:0 auto;justify-content:center}
.toc{position:sticky;top:108px;align-self:start;font-size:14px}
.toc h4{font-size:13px;font-weight:600;color:var(--steel);margin-bottom:10px}
.toc a{display:block;padding:7px 0 7px 14px;color:var(--steel);border-left:2px solid var(--hair);transition:color .2s,border-color .2s;line-height:1.35}
.toc a:hover{color:#000}
.toc a.on{color:var(--blue);border-color:var(--blue);font-weight:600}
.prose{font-size:16.5px;line-height:1.75;color:var(--carbon)}
.prose h2{font-size:26px;line-height:1.2;letter-spacing:-.025em;margin:48px 0 12px;color:#000;scroll-margin-top:100px}
.prose h2:first-child{margin-top:0}
.prose p+p{margin-top:14px}
.prose ul{margin:12px 0 0 0;display:grid;gap:8px}
.prose li{position:relative;padding-left:22px}
.prose li::before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.prose a{color:var(--blue);text-decoration:underline;text-decoration-color:rgba(0,123,255,.3);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--blue)}
.prose strong{color:#000;font-weight:600}
.notice{margin-bottom:36px;padding:20px 22px;border-radius:var(--r-card);background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair),inset 3px 0 0 var(--blue);font-size:15.5px;line-height:1.6}
@media(max-width:900px){.legal{grid-template-columns:1fr;gap:28px}.toc{position:static}.toc a{display:inline-block;border:0;padding:6px 12px;margin:0 6px 6px 0;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--hair)}.toc a.on{box-shadow:inset 0 0 0 1px var(--blue)}}

/* ---------- accordions (FAQ) ---------- */
.faq-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:32px}
.search{position:relative;flex:1;min-width:260px;max-width:520px}
.search svg{position:absolute;left:16px;top:50%;translate:0 -50%;width:18px;height:18px;color:var(--steel)}
.search input{width:100%;padding:14px 18px 14px 46px;border-radius:var(--r-pill);border:0;background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair);font-size:16px;transition:box-shadow .2s,background .2s}
.search input:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 2px var(--blue)}
.faq-groups{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start}
.faq-nav{position:sticky;top:108px;display:grid;gap:2px}
.faq-nav a{display:block;padding:9px 14px;border-radius:var(--r-pill);font-size:15px;font-weight:500;color:var(--slate);transition:background .2s,color .2s}
.faq-nav a:hover{background:var(--linen);color:#000}
.faq-nav a.on{background:var(--linen);color:#000;box-shadow:inset 0 0 0 1px var(--hair)}
.faq-group{margin-bottom:56px;scroll-margin-top:100px}
.faq-group h2{font-size:32px;letter-spacing:-.03em;margin-bottom:12px}
details.q{border-top:1px solid var(--hair)}
details.q:last-child{border-bottom:1px solid var(--hair)}
details.q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:18px;font-weight:600;letter-spacing:-.02em;line-height:1.3}
details.q summary::-webkit-details-marker{display:none}
details.q summary .pm{flex:none;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--hair);display:grid;place-items:center;transition:background .25s,transform .35s var(--ease),box-shadow .25s}
details.q summary .pm svg{width:14px;height:14px}
details.q summary:hover .pm{background:var(--linen)}
details.q[open] summary .pm{transform:rotate(45deg);background:var(--blue);box-shadow:none;color:#fff}
details.q::details-content{block-size:0;overflow:clip;transition:block-size .35s var(--ease),content-visibility .35s allow-discrete}
details.q[open]::details-content{block-size:auto}
.ans{padding:0 54px 24px 0;font-size:16.5px;line-height:1.7;color:var(--carbon);max-width:68ch}
.ans p+p{margin-top:12px}
.ans a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(0,123,255,.3)}
.no-results{display:none;padding:40px 0;color:var(--slate)}
.no-results.show{display:block}
@media(max-width:900px){.faq-groups{grid-template-columns:1fr;gap:12px}.faq-nav{position:static;display:flex;flex-wrap:wrap;gap:6px}.faq-nav a{box-shadow:inset 0 0 0 1px var(--hair)}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:56px;align-items:start}
.form{padding:32px;border-radius:24px;background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair)}
.field{display:grid;gap:7px;margin-bottom:18px}
.field label{font-size:14px;font-weight:600;letter-spacing:-.005em}
.field label i{font-style:normal;font-weight:400;color:var(--steel)}
.field input,.field select,.field textarea{width:100%;padding:13px 16px;border-radius:var(--r-input);border:0;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);font-size:16px;transition:box-shadow .2s}
.field textarea{min-height:140px;resize:vertical;line-height:1.5}
.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23595959' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--blue)}
.field .err{display:none;font-size:13px;color:var(--red)}
.field.bad input,.field.bad select,.field.bad textarea{box-shadow:inset 0 0 0 2px var(--red)}
.field.bad .err{display:block}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%;padding:15px 24px;font-size:16px}
.form-msg{display:none;margin-top:16px;padding:14px 16px;border-radius:var(--r-input);font-size:15px;line-height:1.45}
.form-msg.show,.form-msg:target{display:block}
.form-msg.ok{background:#e6f6ec;color:#0b5a2a}
.form-msg.bad{background:#fde8e6;color:#8a1b12;box-shadow:inset 3px 0 0 var(--red)}
.form-msg a{text-decoration:underline}
.btn[disabled]{opacity:.6;pointer-events:none}
.side{display:grid;gap:12px}
.side-card{padding:22px 24px;border-radius:var(--r-card);box-shadow:inset 0 0 0 1px var(--hair)}
.side-card h3{font-size:17px;letter-spacing:-.015em;margin-bottom:6px}
.side-card p{font-size:15px;line-height:1.55;color:var(--slate)}
.side-card a{color:var(--blue);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(0,123,255,.3)}
.side-card.dark{background:var(--indigo);box-shadow:none;color:#fff}.side-card.dark p{color:var(--silver)}.side-card.dark a{color:#fff}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr;gap:32px}}
@media(max-width:560px){.two{grid-template-columns:1fr;gap:0}.form{padding:22px}}

/* ---------- service pages ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px;counter-reset:s}
.step{position:relative;padding:28px 26px 30px;border-radius:var(--r-card);background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair)}
.step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#000;color:#fff;font-weight:600;font-size:14px;margin-bottom:44px}
.step h3{font-size:20px;margin-bottom:8px;letter-spacing:-.02em}
.step p{font-size:15px;line-height:1.5;color:var(--slate)}
.on-dark .step{background:var(--ink);box-shadow:inset 0 0 0 1px var(--hair-dark)}
.on-dark .step::before{background:var(--blue)}
.on-dark .step p{color:var(--silver)}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:40px}
.fact{padding:24px 26px;border-radius:var(--r-card);background:var(--ink);box-shadow:inset 0 0 0 1px var(--hair-dark)}
.fact h3{font-size:18px;letter-spacing:-.015em;margin-bottom:6px}
.fact p{font-size:15px;line-height:1.5;color:var(--silver)}
.on-linen .fact{background:#fff;box-shadow:inset 0 0 0 1px var(--hair)}.on-linen .fact p{color:var(--slate)}
.mini-faq{margin-top:40px;max-width:820px}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:40px}.steps{grid-template-columns:1fr}.step::before{margin-bottom:22px}.facts{grid-template-columns:1fr}}

/* service hero scene */
.scene{position:relative;height:420px;border-radius:32px;overflow:hidden;background:linear-gradient(180deg,#120036 0%,#250160 51%,#120036 100%);box-shadow:inset 0 0 0 1px var(--hair-dark)}
.scene .fcard{position:absolute;--off:auto}
.scene .fcard.a{left:6%;top:12%;--r:-3deg;--d:.3s}
.scene .fcard.b{right:6%;top:40%;--r:2.5deg;--d:.9s}
.scene .fcard.c{left:12%;bottom:8%;--r:-1.5deg;--d:1.5s}
.scene .map{position:absolute;inset:0;margin:0;max-width:none}
.scene .map canvas{height:100%;aspect-ratio:auto}
@media(max-width:760px){.scene{height:380px}.scene .fcard{width:210px}.scene .fcard.c{display:none}}

/* ---------- about ---------- */
.a-hero h1{max-width:17ch}
.a-hero .row{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;margin-top:40px;align-items:end}
.a-hero .row p{font-size:19px;line-height:1.55;color:var(--carbon);letter-spacing:-.01em}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.chain span.p{padding:10px 18px;border-radius:var(--r-pill);font-weight:600;font-size:15px;background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair)}
.chain span.p:last-of-type{background:var(--blue);color:#fff;box-shadow:none}
.chain svg{width:18px;height:18px;color:var(--steel)}
@media(max-width:900px){.a-hero .row{grid-template-columns:1fr;gap:28px}}
.cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px}
.cols .stick{position:sticky;top:108px;align-self:start}
.cols .body p{font-size:18px;line-height:1.65;color:var(--carbon)}
.cols .body p+p{margin-top:18px}
.cols .body p.lede{font-size:22px;line-height:1.4;letter-spacing:-.02em;color:#000;font-weight:500}
.pull{margin:40px 0;padding:32px 32px 34px;border-radius:24px;background:var(--indigo);color:#fff}
.cols .body .pull p{color:#fff;font-size:inherit;line-height:1.15}
.pull .quote{font-size:clamp(26px,3vw,34px);line-height:1.15;color:#fff}
@media(max-width:900px){.cols{grid-template-columns:1fr;gap:28px}.cols .stick{position:static}}

.path{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px;--p:0}
.path-track{position:absolute;left:0;right:0;top:15px;height:2px;border-radius:2px;background:var(--hair-dark-2)}
.path-fill{position:absolute;left:0;top:15px;height:2px;border-radius:2px;background:var(--blue);width:100%;transform-origin:left;transform:scaleX(var(--p))}
.path-plane{position:absolute;top:4px;left:0;width:24px;height:24px;color:#fff;translate:calc(var(--p)*(var(--pw,100px)) ) 0;rotate:0deg}
.stn{position:relative;padding-top:52px}
.stn::before{content:"";position:absolute;left:0;top:8px;width:16px;height:16px;border-radius:50%;background:var(--indigo);box-shadow:inset 0 0 0 2px var(--hair-dark-2);transition:background .4s,box-shadow .4s}
.stn.on::before{background:var(--blue);box-shadow:0 0 0 5px rgba(0,123,255,.25)}
.stn .pillx{display:inline-block;padding:6px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:600;box-shadow:inset 0 0 0 1px var(--hair-dark-2);color:#fff;margin-bottom:18px}
.stn h3{font-size:26px;letter-spacing:-.03em;margin-bottom:10px}
.stn p{font-size:16px;line-height:1.55;color:var(--silver);max-width:34ch}
@media(max-width:900px){
  .path{grid-template-columns:1fr;gap:44px;padding-left:36px}
  .path-track{left:7px;right:auto;top:8px;bottom:8px;width:2px;height:auto}
  .path-fill{left:7px;top:8px;bottom:8px;width:2px;height:auto;transform-origin:top;transform:scaleY(var(--p))}
  .path-plane{display:none}
  .stn{padding-top:0}.stn::before{left:-36px;top:4px}
}
.beliefs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:48px}
.belief{padding:30px 28px 32px;border-radius:var(--r-card);background:var(--linen);box-shadow:inset 0 0 0 1px var(--hair);display:flex;flex-direction:column;min-height:300px}
.belief .pip{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);margin-bottom:56px;color:var(--blue)}
.belief .pip svg{width:20px;height:20px}
.belief h3{font-size:28px;letter-spacing:-.03em;margin:0 0 10px}
.belief p{font-size:16px;line-height:1.55;color:var(--slate)}
@media(max-width:900px){.beliefs{grid-template-columns:1fr}.belief{min-height:0}.belief h3{margin-top:32px}}
.founder{display:grid;grid-template-columns:320px minmax(0,1fr);gap:64px;align-items:start}
.mono{position:relative;aspect-ratio:1;border-radius:32px;overflow:hidden;background:linear-gradient(160deg,#250160 0%,#12128c 60%,var(--blue) 130%);display:grid;place-items:center;color:#fff}
.mono b{font-size:96px;letter-spacing:-.05em;font-weight:700}
.mono::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.22),transparent 55%)}
.founder .who{margin-top:18px}.founder .who h2{font-size:34px}.founder .who span{color:var(--steel);font-size:16px}
.founder .thesis{font-size:clamp(28px,3.2vw,40px);line-height:1.1;margin-bottom:28px}
.founder .body p{font-size:17px;line-height:1.7;color:var(--carbon)}.founder .body p+p{margin-top:16px}
@media(max-width:900px){.founder{grid-template-columns:1fr;gap:32px}.mono{max-width:240px}}

/* ---------- 404 ---------- */
.nf{min-height:100svh;display:grid;place-items:center;padding:40px 16px;background:var(--indigo);color:#fff}
.nf .board{margin:32px auto 0;max-width:640px;text-align:left}
.nf .board-row{grid-template-columns:1fr auto;padding:20px 24px}
.status-red{color:#ff8a80;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px rgba(217,45,32,.6);background:rgba(217,45,32,.12)}
.status-red i{width:7px;height:7px;border-radius:50%;background:var(--red)}

/* ---------- motion preferences ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .js [data-reveal]{opacity:1;transform:none}
  .fcard-in{opacity:1}
}
