/* Layout: one asymmetric 12-column measure. Type runs big from the left edge; reading text sits in a narrow right-hand column.
   The 3D factory floor is the one loud thing on the page. Everything else is rules, type and space. Heat (ember) only ever marks what gets cut, and the call to act. */
:root{
  --bg:#06080D; --steel:#0E1420; --steel-2:#151D2C; --line:rgba(150,172,214,.14); --line-2:rgba(150,172,214,.26);
  --paper:#EDF1F7; --mist:#A9B4C6; --dim:#6F7B90;
  --cobalt:#1A6FFF; --cobalt-hi:#6EA6FF; --ember:#FF5A1F; --ember-hi:#FFB46B;
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:max(20px,env(safe-area-inset-left,0px));
  --max:1320px;
  --s1:clamp(3.2rem,9.6vw,9.4rem); --s2:clamp(2.1rem,4.8vw,4.3rem); --s3:clamp(1.35rem,2vw,1.7rem); --s4:1.0625rem; --s5:.875rem;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--mist);font-family:var(--f-body);font-size:var(--s4);line-height:1.6;overflow-x:hidden;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--cobalt-hi);outline-offset:4px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gut);padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--f-display);color:var(--paper);font-weight:700;text-wrap:balance}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:200;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,env(safe-area-inset-right,0px)) 0 max(24px,env(safe-area-inset-left,0px));transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
nav.scrolled{background:rgba(6,8,13,.82);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom-color:var(--line)}
.nl{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.nl img{width:34px;height:34px;object-fit:contain}
.nlt{font-family:var(--f-display);font-stretch:112%;font-weight:700;font-size:.95rem;color:var(--paper);letter-spacing:.04em;line-height:1.05}
.nlt span{display:block;font-family:var(--f-body);font-weight:400;font-size:.72rem;letter-spacing:.02em;color:var(--dim);margin-top:2px}
.nav-links{display:flex;align-items:center;gap:2.2rem;list-style:none}
.nav-links a:not(.light-beam-btn){font-size:.92rem;font-weight:500;text-decoration:none;color:var(--mist);transition:color .2s}
.nav-links a:not(.light-beam-btn):hover{color:var(--paper)}
.burger{display:none;flex-direction:column;gap:6px;cursor:pointer;padding:10px;margin-right:-10px}
.burger span{display:block;width:24px;height:2px;background:var(--paper)}
.mob{display:none;position:fixed;inset:76px 0 0;z-index:190;background:rgba(6,8,13,.97);backdrop-filter:blur(18px);padding:2rem var(--gut);flex-direction:column;gap:.5rem}
.mob.open{display:flex}
.mob a:not(.light-beam-btn){font-family:var(--f-display);font-size:2rem;font-weight:700;color:var(--paper);text-decoration:none;padding:.4rem 0;border-bottom:1px solid var(--line)}
.mob .light-beam-btn{margin-top:1.5rem}
@media (max-width:860px){.nav-links{display:none}.burger{display:flex}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:max(680px,100svh);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;padding-block:120px clamp(48px,9vh,96px)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#crucible{z-index:0}
#hero-canvas{z-index:1;pointer-events:none;mix-blend-mode:screen}
.no-webgl .hero{background:radial-gradient(60% 70% at 72% 45%,rgba(26,111,255,.18),transparent 70%)}
.hero .wrap{position:relative;z-index:2;width:100%}
.hero h1{font-size:var(--s1);line-height:.86;letter-spacing:-.02em;margin-left:-.04em}
.hero h1 .l{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .l>span{display:block}
.hero h1 .a{font-stretch:62%;font-weight:850}
.hero h1 .b{font-stretch:125%;font-weight:300;letter-spacing:-.035em;font-size:.52em;margin-top:.12em}
.hero-foot{margin-top:clamp(28px,4vw,52px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}
.hero-foot p{grid-column:1 / span 6;max-width:52ch;font-size:clamp(1.02rem,1.25vw,1.18rem);color:var(--mist)}
.hero-act{grid-column:8 / span 5;display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;justify-content:flex-end}
.quiet{font-weight:500;color:var(--paper);text-decoration:none;display:inline-flex;align-items:center;gap:.55rem;padding:.4rem 0;border-bottom:1px solid var(--line-2);transition:border-color .2s}
.quiet:hover{border-color:var(--paper)}
.quiet svg{width:14px;height:14px;transition:transform .25s}
.quiet:hover svg{transform:translateY(2px)}
.where{position:absolute;z-index:2;right:max(24px,env(safe-area-inset-right,0px));top:108px;font-size:.8rem;color:var(--dim);text-align:right;line-height:1.5}
@media (max-width:899px){
  .hero{align-items:flex-end}
  .hero::after,.close::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,var(--bg) 0%,rgba(6,8,13,.9) 38%,rgba(6,8,13,0) 66%)}
  .close{align-items:flex-end;padding-block:120px 64px}
  .hero-foot p,.hero-act{grid-column:1 / -1}
  .hero-act{justify-content:flex-start}
  .where{display:none}
}
/* the page's one orchestrated moment */
@media (prefers-reduced-motion:no-preference){
  .hero h1 .l>span{animation:rise 1.15s cubic-bezier(.16,1,.3,1) both}
  .hero h1 .l:nth-child(2)>span{animation-delay:.12s}
  .hero-foot{animation:settle 1s .55s cubic-bezier(.16,1,.3,1) both}
}
@keyframes rise{from{transform:translate3d(0,105%,0)}to{transform:none}}
@keyframes settle{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}

/* ---------- the rebuild (scroll scene) ---------- */
#rebuild{position:relative;height:560vh;background:var(--bg)}
#rebuild .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
#floor{position:absolute;inset:0;width:100%;height:100%;display:block}
.no-webgl #floor{display:none}
.story{position:absolute;inset:0;pointer-events:none;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.story-head{position:absolute;top:104px;left:var(--gut);font-size:.85rem;color:var(--dim);z-index:2}
.chapters{grid-column:1 / span 5;position:relative;align-self:center;height:min(420px,60vh)}
.chapter{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;will-change:transform,opacity}
.chapter .n{font-family:var(--f-display);font-stretch:62%;font-weight:600;font-size:1rem;color:var(--cobalt-hi);margin-bottom:.9rem;font-variant-numeric:tabular-nums}
.chapter h3{font-size:var(--s2);line-height:.95;letter-spacing:-.015em;font-stretch:78%;font-weight:800;margin-bottom:1.1rem}
.chapter p{max-width:40ch;color:var(--mist)}
.chapter[data-heat] .n{color:var(--ember)}
.chapter a{pointer-events:auto;margin-top:1.4rem;align-self:flex-start}
.rail{position:absolute;right:max(24px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);list-style:none;display:flex;flex-direction:column;gap:14px;z-index:2}
.rail li{width:3px;height:34px;background:var(--line-2);transition:background .35s}
.rail li.on{background:var(--paper)}
.rail li.on[data-heat]{background:var(--ember)}
.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,8,13,.88) 0%,rgba(6,8,13,.55) 32%,rgba(6,8,13,0) 55%)}
@media (max-width:899px){
  .chapters{grid-column:1 / -1;align-self:end;height:auto;min-height:280px;margin-bottom:max(36px,env(safe-area-inset-bottom,0px))}
  .chapter{justify-content:flex-end}
  .shade{background:linear-gradient(0deg,rgba(6,8,13,.94) 0%,rgba(6,8,13,.7) 38%,rgba(6,8,13,0) 62%)}
  .rail{top:136px;left:var(--gut);right:auto;transform:none;flex-direction:row;gap:8px}
  .rail li{width:22px;height:3px}
}
.no-webgl #rebuild{height:auto}
.no-webgl #rebuild .stage{position:relative;height:auto}
.no-webgl .story{position:relative;display:block;padding-block:120px 64px}
.no-webgl .chapters{height:auto}
.no-webgl .chapter{position:relative;inset:auto;margin-bottom:56px;opacity:1!important;transform:none!important;visibility:visible!important}
.no-webgl .rail,.no-webgl .shade{display:none}

/* ---------- sections ---------- */
.sec{padding-block:clamp(96px,14vw,180px);border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:clamp(48px,7vw,96px);align-items:end}
.sec-head h2{grid-column:1 / span 7;font-size:var(--s2);line-height:.98;letter-spacing:-.015em;font-stretch:78%;font-weight:800}
.sec-head p{grid-column:9 / span 4;max-width:42ch}
@media (max-width:899px){.sec-head h2,.sec-head p{grid-column:1 / -1}}

/* what AI does to a messy floor */
.harm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line-2)}
.harm>div{padding:32px 32px 8px 0;min-width:0}
.harm>div+div{padding-left:32px;border-left:1px solid var(--line)}
.harm h3{font-size:var(--s3);font-stretch:88%;font-weight:700;line-height:1.15;margin-bottom:.8rem}
.harm h3::before{content:"";display:block;width:28px;height:3px;background:var(--ember);margin-bottom:22px}
.harm p{max-width:34ch}
@media (max-width:899px){.harm{grid-template-columns:1fr}.harm>div,.harm>div+div{padding:28px 0;border-left:0;border-bottom:1px solid var(--line)}}

/* services: rows, not cards */
.svcs{list-style:none;border-top:1px solid var(--line-2)}
.svc{position:relative;display:grid;grid-template-columns:minmax(0,4.2fr) minmax(0,5fr) minmax(0,2.6fr) 40px;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--mist);isolation:isolate}
.svc::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--cobalt-hi);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.svc:hover::after,.svc:focus-visible::after{transform:scaleX(1)}
.svc h3{font-size:clamp(1.5rem,2.6vw,2.35rem);font-stretch:82%;font-weight:700;line-height:1.05;letter-spacing:-.01em;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.svc:hover h3{transform:translateX(10px)}
.svc .what{max-width:46ch}
.svc .fmt{font-size:var(--s5);color:var(--dim)}
.svc svg{width:22px;height:22px;justify-self:end;align-self:center;color:var(--paper);transition:transform .35s}
.svc:hover svg{transform:translate(4px,-4px)}
@media (max-width:899px){.svc{grid-template-columns:1fr 28px;gap:10px 16px}.svc .what,.svc .fmt{grid-column:1}.svc svg{grid-row:1;grid-column:2}}

/* conveyor: waste drops through the trapdoor, value stays on the line */
.belt{position:relative;height:190px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.belt .track{position:absolute;left:0;right:0;top:118px;height:2px;background:var(--line-2)}
.belt .door{position:absolute;top:116px;height:6px;background:var(--ember);left:62%;width:150px}
.belt .crate{position:absolute;left:0;top:0;white-space:nowrap;font-family:var(--f-display);font-stretch:75%;font-weight:600;font-size:1.05rem;color:var(--paper);padding:.55rem .9rem;border:1px solid var(--cobalt);background:rgba(26,111,255,.08);will-change:transform}
.belt .crate.w{border-color:var(--ember);color:var(--ember-hi);background:rgba(255,90,31,.07)}
.belt .cap{position:absolute;right:var(--gut);top:146px;font-size:var(--s5);color:var(--dim)}
@media (prefers-reduced-motion:reduce){.belt{display:none}}

/* operators */
.ops{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.ops .founder{grid-column:1 / span 5}
.ops .points{grid-column:7 / span 6;list-style:none}
.founder figure{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:end}
.founder img{width:120px;height:120px;object-fit:cover;filter:grayscale(.35) contrast(1.05)}
.founder blockquote{font-family:var(--f-display);font-stretch:88%;font-weight:500;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.18;color:var(--paper);letter-spacing:-.01em;margin-bottom:28px;text-wrap:pretty}
.founder figcaption{font-size:var(--s5);color:var(--dim)}
.founder figcaption b{display:block;color:var(--paper);font-weight:600;font-size:1rem}
.points li{padding:24px 0;border-top:1px solid var(--line)}
.points li:last-child{border-bottom:1px solid var(--line)}
.points h3{font-size:1.3rem;font-stretch:90%;font-weight:700;margin-bottom:.35rem}
@media (max-width:899px){.ops .founder,.ops .points{grid-column:1 / -1}.ops .points{margin-top:48px}}

/* closing */
.close{position:relative;min-height:max(620px,92svh);display:flex;align-items:center;overflow:hidden;isolation:isolate;border-top:1px solid var(--line)}
#crucible-close{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.close .wrap{position:relative;z-index:2;width:100%}
.close h2{font-size:clamp(2.6rem,6.4vw,6.2rem);line-height:.92;letter-spacing:-.02em;max-width:13ch;font-stretch:70%;font-weight:850}
.close p{max-width:46ch;margin:28px 0 36px;font-size:1.1rem}
.close .fine{display:block;margin-top:18px;font-size:var(--s5);color:var(--dim)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:72px var(--gut) 40px;max-width:var(--max);margin:0 auto}
.fg{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:40px}
.fb>div:first-child{font-family:var(--f-display);font-stretch:112%;font-weight:700;color:var(--paper);letter-spacing:.04em}
.fb p{font-size:var(--s5);max-width:38ch;margin-top:14px}
.fsoc{display:flex;gap:10px;margin-top:22px}
.soc{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--paper);text-decoration:none;font-size:.8rem;font-weight:600;transition:border-color .2s}
.soc:hover{border-color:var(--paper)}
.fc h2{font-family:var(--f-body);font-size:.85rem;font-weight:600;color:var(--paper);margin-bottom:14px}
.fc ul{list-style:none;display:grid;gap:8px}
.fc a{font-size:var(--s5);color:var(--mist);text-decoration:none}
.fc a:hover{color:var(--paper)}
.fbtm{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:.8rem;color:var(--dim)}
.fbtm a{color:var(--dim);text-decoration:none}
@media (max-width:899px){.fg{grid-template-columns:1fr 1fr}.fb{grid-column:1 / -1}}

/* content sits above the fixed ember field */
main>section,main>.belt,footer{position:relative;z-index:1}
.sec,.belt,footer{background:transparent}

/* =================== inner pages (same system) =================== */
.hero--page{min-height:max(560px,80svh)}
.hero--page h1{font-size:clamp(2.9rem,7.6vw,7.4rem)}
.hero--page h1 .b{font-size:.6em}
.hero--short{min-height:max(460px,58svh)}
.hero--short h1{font-size:clamp(2.6rem,6vw,5.6rem)}
.nav-links a[aria-current="page"]{color:var(--paper)}
.mob a[aria-current="page"]{color:var(--cobalt-hi)}

.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.prose{max-width:62ch}
.prose p+p{margin-top:1.1em}
.prose strong{color:var(--paper);font-weight:600}
.kicker{font-size:var(--s5);color:var(--dim);margin-bottom:.6rem}
.links{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;margin-top:32px}

/* about: founder */
.bio .portrait{grid-column:1 / span 5}
.bio .portrait img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;filter:grayscale(.3) contrast(1.05)}
.bio .portrait figcaption{margin-top:14px;font-size:var(--s5);color:var(--dim)}
.bio .copy{grid-column:7 / span 6}
.bio h2{font-size:var(--s2);font-stretch:78%;font-weight:800;line-height:.98;margin-bottom:.35rem}
.bio .role{color:var(--cobalt-hi);margin-bottom:1.6rem}
.pull{margin-top:clamp(64px,9vw,120px);font-family:var(--f-display);font-stretch:84%;font-weight:600;font-size:clamp(1.7rem,3.4vw,3rem);line-height:1.1;color:var(--paper);max-width:24ch;letter-spacing:-.015em}
.pull cite{display:block;margin-top:18px;font-family:var(--f-body);font-style:normal;font-size:var(--s5);font-weight:400;color:var(--dim);letter-spacing:0}
@media (max-width:899px){.bio .portrait,.bio .copy{grid-column:1 / -1}.bio .portrait{max-width:420px}}

/* rules grid: items separated by hairlines, no cards */
.rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;row-gap:56px}
.rules>div{border-top:1px solid var(--line-2);padding-top:26px;min-width:0}
.rules h3{font-size:var(--s3);font-stretch:88%;font-weight:700;line-height:1.15;margin-bottom:.7rem}
.rules p{max-width:38ch}
@media (max-width:899px){.rules{grid-template-columns:1fr;row-gap:36px}}

/* numbered method steps (a real sequence) */
.steps{list-style:none;counter-reset:s;border-top:1px solid var(--line-2)}
.steps li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,3.2fr) minmax(0,5fr);gap:24px;padding:36px 0;border-bottom:1px solid var(--line)}
.steps li::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:clamp(2.6rem,4.4vw,4rem);line-height:.9;color:var(--cobalt-hi)}
.steps li[data-heat]::before{color:var(--ember)}
.steps h3{font-size:var(--s3);font-stretch:86%;font-weight:700;line-height:1.15}
@media (max-width:899px){.steps li{grid-template-columns:1fr;gap:10px}}

/* timeline */
.timeline{list-style:none;position:relative;margin-left:8px}
.timeline::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:var(--line-2)}
.timeline li{position:relative;padding:0 0 48px 40px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr);gap:24px}
.timeline li::before{content:"";position:absolute;left:-5px;top:8px;width:11px;height:11px;background:var(--bg);border:1px solid var(--cobalt-hi)}
.timeline li:last-child::before{background:var(--ember);border-color:var(--ember)}
.timeline .when{font-size:var(--s5);color:var(--dim);margin-bottom:.35rem}
.timeline h3{font-size:1.35rem;font-stretch:88%;font-weight:700;line-height:1.15}
@media (max-width:899px){.timeline li{grid-template-columns:1fr;gap:8px}}

/* services */
.subnav{position:sticky;top:76px;z-index:150;background:rgba(6,8,13,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.subnav ul{list-style:none;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:block;padding:16px 14px;white-space:nowrap;font-size:.88rem;font-weight:500;color:var(--mist);text-decoration:none;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.subnav a:hover,.subnav a.on{color:var(--paper);border-bottom-color:var(--cobalt-hi)}
.offer{scroll-margin-top:150px}
.offer .meta{grid-column:1 / span 5;position:sticky;top:150px}
.offer .detail{grid-column:7 / span 6}
.offer .tier{display:flex;gap:14px;align-items:baseline;margin-bottom:1rem;color:var(--dim);font-size:var(--s5)}
.offer .tier b{font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:2.2rem;line-height:1;color:var(--cobalt-hi)}
.offer h2{font-size:var(--s2);font-stretch:78%;font-weight:800;line-height:.96;margin-bottom:1rem}
.offer .tag{font-family:var(--f-display);font-stretch:92%;font-weight:500;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.3;color:var(--paper);margin-bottom:1rem;max-width:30ch}
.offer .fmt{display:inline-block;margin:1.4rem 0 1.6rem;padding:8px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);font-size:var(--s5);color:var(--mist)}
.offer .detail>div+div{margin-top:44px}
.offer h3{font-size:1.3rem;font-stretch:88%;font-weight:700;margin-bottom:.8rem}
.ticks{list-style:none;display:grid;gap:10px}
.ticks li{position:relative;padding-left:26px}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--cobalt-hi)}
.flow{list-style:none;counter-reset:f;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;margin-top:22px}
.flow li{border-top:1px solid var(--line-2);padding-top:16px}
.flow li::before{counter-increment:f;content:counter(f);display:block;font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:1.6rem;color:var(--cobalt-hi);line-height:1;margin-bottom:.5rem}
.flow h4{font-family:var(--f-display);font-stretch:90%;font-weight:700;color:var(--paper);font-size:1.08rem;margin-bottom:.3rem}
@media (max-width:899px){.offer .meta,.offer .detail{grid-column:1 / -1;position:static}.flow{grid-template-columns:1fr}}

.table-wrap{overflow-x:auto;border-top:1px solid var(--line-2)}
table.compare{width:100%;border-collapse:collapse;min-width:760px;font-size:.95rem}
.compare th,.compare td{padding:18px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.compare thead th{font-weight:500;color:var(--dim);font-size:var(--s5)}
.compare tbody th{font-family:var(--f-display);font-stretch:88%;font-weight:700;color:var(--paper);font-size:1.05rem}
.compare tbody th span{display:block;font-family:var(--f-body);font-weight:400;font-size:var(--s5);color:var(--dim);margin-top:2px}
.compare td.y{color:var(--cobalt-hi);font-weight:600}
.compare td.n{color:var(--dim)}

.faq{border-top:1px solid var(--line-2);max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-family:var(--f-display);font-stretch:90%;font-weight:700;font-size:clamp(1.1rem,1.6vw,1.35rem);color:var(--paper)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:0 0 14px;height:14px;margin-top:6px;background:linear-gradient(var(--paper),var(--paper)) center/14px 2px no-repeat,linear-gradient(var(--paper),var(--paper)) center/2px 14px no-repeat;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 26px;max-width:68ch}

/* contact */
.contact .call{grid-column:1 / span 5}
.contact .form{grid-column:7 / span 6}
.contact h2{font-size:clamp(1.8rem,3vw,2.6rem);font-stretch:80%;font-weight:800;line-height:1;margin-bottom:1rem}
.contact .steps-sm{list-style:none;counter-reset:c;margin:26px 0 30px;border-top:1px solid var(--line-2)}
.contact .steps-sm li{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.contact .steps-sm li::before{counter-increment:c;content:counter(c);font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:1.5rem;line-height:1.1;color:var(--cobalt-hi);min-width:18px}
.direct{margin-top:56px;display:grid;gap:22px}
.direct h3{font-family:var(--f-body);font-size:var(--s5);font-weight:500;color:var(--dim);margin-bottom:4px}
.direct a,.direct p{color:var(--paper);text-decoration:none}
.direct a:hover{color:var(--cobalt-hi)}
.direct .stack{display:grid;gap:4px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:26px}
.fields .full{grid-column:1 / -1}
.field label{display:block;font-size:var(--s5);font-weight:500;color:var(--paper);margin-bottom:8px}
.field label span{color:var(--dim);font-weight:400}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;color:var(--paper);background:rgba(14,20,32,.72);border:1px solid var(--line-2);border-radius:0;padding:14px 14px;transition:border-color .2s,background .2s}
.field textarea{min-height:150px;resize:vertical}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cobalt-hi);background:rgba(26,111,255,.07)}
.field input::placeholder,.field textarea::placeholder{color:var(--dim)}
.form .light-beam-btn{width:100%;margin-top:22px}
.form-note{font-size:var(--s5);color:var(--dim);margin-top:14px}
.form-msg{display:none;margin-top:18px;padding:14px 16px;border:1px solid var(--line-2);color:var(--paper)}
.form-msg.ok{border-color:var(--cobalt-hi)}
.form-msg.err{border-color:var(--ember)}
@media (max-width:899px){.contact .call,.contact .form{grid-column:1 / -1}.contact .form{margin-top:72px}.fields{grid-template-columns:1fr}}

/* legal */
.legal{max-width:780px}
.legal .updated{font-size:var(--s5);color:var(--dim);margin-bottom:48px}
.legal .toc{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:22px 0;margin-bottom:56px}
.legal .toc h2{font-family:var(--f-body);font-size:var(--s5);font-weight:500;color:var(--dim);margin-bottom:12px}
.legal .toc ol{margin-left:1.2em;columns:2;column-gap:40px}
.legal .toc li{margin:4px 0;break-inside:avoid}
.legal .toc a{color:var(--mist);text-decoration:none}
.legal .toc a:hover{color:var(--paper)}
.legal .glass-doc{padding:0;margin:0 0 48px;scroll-margin-top:110px}
.legal .glass-doc h2{font-size:clamp(1.5rem,2.4vw,2rem);font-stretch:84%;font-weight:700;line-height:1.1;margin-bottom:1rem}
.legal .glass-doc h3{font-size:1.15rem;font-stretch:90%;font-weight:700;margin:1.6rem 0 .5rem}
.legal .glass-doc p,.legal .glass-doc li{max-width:68ch}
.legal .glass-doc p+p{margin-top:.9em}
.legal .glass-doc ul,.legal .glass-doc ol{margin:.8em 0 0 1.2em}
.legal .glass-doc li{margin:.35em 0}
.legal a{color:var(--cobalt-hi)}
.legal strong{color:var(--paper);font-weight:600}
@media (max-width:640px){.legal .toc ol{columns:1}}
.notfound .links{margin-top:40px}

/* tap targets on touch screens and small phones */
@media (max-width:640px){footer a{display:inline-block;padding:.45rem 0}.legal .toc a{display:inline-block;padding:.35rem 0}}
@media (pointer:coarse){.nav-links a:not(.light-beam-btn),footer a,.direct a,.legal .toc a{display:inline-block;padding-top:.45rem;padding-bottom:.45rem}}

.fsoc{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:22px}
.fsoc a{font-size:var(--s5);color:var(--paper);text-decoration:none;border-bottom:1px solid var(--line-2);padding:2px 0;transition:border-color .2s}
.fsoc a:hover{border-color:var(--paper)}

/* =====================================================================
   About + Services: v4 motion layer (pages-fx.js). Without .fx (reduced motion) everything reads as plain lists.
   ===================================================================== */
.hero--soft::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(6,8,13,.72) 0%,rgba(6,8,13,.35) 34%,rgba(6,8,13,0) 58%)}
@media (max-width:899px){.hero--soft::before{display:none}}

/* ---- Principles: depth tunnel ---- */
.tunnel-track{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.tunnel-cards{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;row-gap:56px}
.tcard{border-top:1px solid var(--line-2);padding-top:26px;min-width:0}
.tcard .tn{display:block;font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:2.2rem;line-height:1;color:var(--cobalt-hi);margin-bottom:.8rem}
.tcard h3{font-size:var(--s3);font-stretch:88%;font-weight:700;line-height:1.15;margin-bottom:.7rem}
.tcard p{max-width:40ch}
.tunnel-frames,.tunnel-rail{display:none}
@media (max-width:899px){.tunnel-cards{grid-template-columns:1fr;row-gap:36px}}
.fx .tunnel{padding-bottom:0}
.fx .tunnel .sec-head{margin-bottom:0}
.fx .tunnel-track{max-width:none;padding:0;position:relative}
.fx .tunnel-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;perspective:1100px;perspective-origin:50% 46%}
.fx .tunnel-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 55% at 50% 50%,rgba(6,8,13,0) 40%,rgba(6,8,13,.85) 100%)}
.fx .tunnel-cards{display:block;position:absolute;inset:0;transform-style:preserve-3d}
.fx .tcard{position:absolute;left:50%;top:52%;width:min(760px,86vw);border-top:0;padding:0;will-change:transform,opacity,filter;transform:translate3d(-50%,-50%,0)}
.fx .tcard .tn{font-size:clamp(5.5rem,13vw,11rem);line-height:.78;margin-bottom:.15em;color:transparent;-webkit-text-stroke:1px rgba(110,166,255,.55);transition:color .6s,text-shadow .6s,-webkit-text-stroke-color .6s}
.fx .tcard.on .tn{color:var(--cobalt-hi);-webkit-text-stroke-color:transparent;text-shadow:0 0 60px rgba(26,111,255,.55)}
.fx .tcard h3{font-size:clamp(2.1rem,5vw,4.4rem);font-stretch:76%;font-weight:800;line-height:.94;letter-spacing:-.015em;margin-bottom:1.1rem;max-width:14ch}
.fx .tcard p{font-size:clamp(1.02rem,1.3vw,1.2rem);max-width:46ch;color:var(--mist)}
.fx .tunnel-frames{display:block;position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.fx .tunnel-frames i{position:absolute;left:50%;top:50%;width:min(1200px,94vw);height:min(680px,74vh);border:1px solid rgba(110,166,255,.2);border-radius:22px;box-shadow:inset 0 0 60px rgba(26,111,255,.06);will-change:transform,opacity}
.fx .tunnel-rail{display:flex;flex-direction:column;gap:14px;list-style:none;position:absolute;right:max(24px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:2}
.fx .tunnel-rail li{width:3px;height:34px;background:var(--line-2);transition:background .35s}
.fx .tunnel-rail li.on{background:var(--paper)}
@media (max-width:899px){
  .fx .tcard{top:50%}
  .fx .tunnel-rail{top:auto;bottom:max(28px,env(safe-area-inset-bottom,0px));left:var(--gut);right:auto;transform:none;flex-direction:row;gap:8px}
  .fx .tunnel-rail li{width:22px;height:3px}
}

/* ---- Methodology: the pour ---- */
.pour{position:relative}
.fx .pour{--pl:clamp(44px,6.5vw,92px);padding-left:var(--pl)}
.fx .pour .steps{border-top:0}
.fx .pour-line{position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--line)}
.fx .pour-line i{position:absolute;left:-1px;top:0;width:4px;height:100%;border-radius:2px;transform-origin:50% 0;transform:scaleY(var(--fill,0));background:linear-gradient(180deg,rgba(26,111,255,.5) 0%,var(--cobalt-hi) 55%,var(--ember) 92%,var(--ember-hi) 100%);box-shadow:0 0 16px rgba(26,111,255,.45)}
.fx .pour-line b{position:absolute;left:50%;top:calc(var(--fill,0) * 100%);width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:radial-gradient(circle,#fff 0,#FFC48A 28%,#FF5A1F 58%,rgba(255,90,31,0) 72%);box-shadow:0 0 28px 8px rgba(255,90,31,.45);opacity:calc(min(1, var(--fill,0) * 30))}
.fx .pour .steps li{position:relative;border-bottom-color:transparent;padding:44px 0}
.fx .pour .steps li::before{color:transparent;-webkit-text-stroke:1px var(--line-2);font-size:clamp(3.4rem,6vw,5.6rem);transition:color .5s,-webkit-text-stroke-color .5s,text-shadow .5s}
.fx .pour .steps li.lit::before{color:var(--cobalt-hi);-webkit-text-stroke-color:transparent;text-shadow:0 0 40px rgba(26,111,255,.5)}
.fx .pour .steps li[data-heat].lit::before{color:var(--ember);text-shadow:0 0 40px rgba(255,90,31,.55)}
.fx .pour .steps li::after{content:"";position:absolute;left:calc(13px - var(--pl) - 7px);top:60px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:1px solid var(--line-2);transition:background .4s,border-color .4s,box-shadow .4s}
.fx .pour .steps li.lit::after{background:var(--ember-hi);border-color:var(--ember-hi);box-shadow:0 0 18px 4px rgba(255,90,31,.55)}
.fx .pour .steps h3{opacity:.32;transform:translateX(-10px);transition:opacity .6s,transform .6s cubic-bezier(.16,1,.3,1)}
.fx .pour .steps li.lit h3{opacity:1;transform:none}
.fx .pour .w{opacity:clamp(.14, calc((var(--p,0) * (var(--n,1) + 8) - var(--i)) / 8), 1);transition:opacity .25s linear}
.fx .pour .steps li p{color:var(--paper)}
@media (max-width:899px){.fx .pour .steps li::after{top:52px}}

/* ---- Timeline: horizontal track ---- */
.h-head{margin-bottom:clamp(40px,6vw,72px)}
.h-head h2{font-size:var(--s2);line-height:.98;letter-spacing:-.015em;font-stretch:78%;font-weight:800;max-width:16ch}
.h-hint,.h-rail{display:none}
.journey .h-row{max-width:var(--max);margin:0 auto;padding:0 var(--gut) 0 calc(var(--gut) + 8px)}
.fx .journey{padding-block:0}
.fx .h-track{position:relative}
.fx .h-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:60px}
.fx .h-head{width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px}
.fx .h-hint{display:flex;align-items:center;gap:10px;font-size:var(--s5);color:var(--dim);white-space:nowrap}
.fx .h-hint::after{content:"";width:40px;height:1px;background:currentColor;animation:hint 1.8s ease-in-out infinite}
@keyframes hint{0%,100%{transform:scaleX(.3);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}}
.fx .h-rail{display:block;position:relative;height:2px;margin:0 0 40px;background:var(--line)}
.fx .h-rail i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(.04);background:linear-gradient(90deg,rgba(26,111,255,.4),var(--cobalt-hi) 70%,var(--ember-hi));box-shadow:0 0 14px rgba(26,111,255,.6)}
.fx .journey .h-row{display:flex;gap:clamp(18px,2.6vw,36px);max-width:none;margin:0;padding:0 0 0 max(var(--gut),calc((100vw - var(--max)) / 2 + var(--gut)));will-change:transform;counter-reset:hc}
.fx .journey .h-row::before{display:none}
.fx .hcard{counter-increment:hc;flex:0 0 min(440px,80vw);display:flex!important;flex-direction:column;gap:18px;min-height:min(380px,52vh);padding:30px 28px 30px!important;border:1px solid var(--line-2);border-radius:20px;background:linear-gradient(160deg,rgba(21,29,44,.94),rgba(9,13,21,.94));position:relative;overflow:hidden;transform:translateY(calc(var(--d,0) * 28px)) rotate(calc(var(--d,0) * 1.2deg));transition:border-color .5s,box-shadow .5s}
.fx .hcard::before{display:none}
.fx .hcard::after{content:counter(hc,decimal-leading-zero);position:absolute;right:22px;top:12px;font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:5.4rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(110,166,255,.28);transition:color .5s,-webkit-text-stroke-color .5s}
.fx .hcard.lit{border-color:rgba(110,166,255,.5);box-shadow:0 30px 90px -40px rgba(26,111,255,.6)}
.fx .hcard.lit::after{color:rgba(110,166,255,.16)}
.fx .hcard:last-child.lit{border-color:rgba(255,120,52,.55);box-shadow:0 30px 90px -40px rgba(255,90,31,.55)}
.fx .hcard .when{color:var(--cobalt-hi);letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;margin-bottom:.7rem}
.fx .hcard:last-child .when{color:var(--ember-hi)}
.fx .hcard h3{font-size:clamp(1.6rem,2.4vw,2.1rem);font-stretch:80%;font-weight:800;line-height:1;max-width:14ch}
.fx .hcard>p{margin-top:auto}
@media (max-width:899px){.fx .h-hint{display:none}.fx .hcard{min-height:0}}

/* ---- Services: orbit ---- */
.orbit-sec{padding-bottom:clamp(40px,6vw,80px)}
.orbit-sec .sec-head{margin-bottom:clamp(28px,4vw,48px)}
.o-hint{display:none}
.orbit-ring{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.ocard a{display:flex;flex-direction:column;gap:12px;min-height:320px;height:100%;padding:24px 24px 22px;border-radius:20px;text-decoration:none;color:var(--mist);position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(165deg,#151e2e 0%,#0a0f18 72%);border:1px solid var(--line-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.85);transition:border-color .35s,box-shadow .35s}
.ocard a::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 70% at 50% -12%,rgba(26,111,255,.22),rgba(26,111,255,0) 62%),radial-gradient(90% 50% at 50% 118%,rgba(255,90,31,calc(var(--e,0) * .28)),rgba(255,90,31,0) 70%)}
.ocard a::after{content:"";position:absolute;left:10%;right:10%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--cobalt-hi),var(--ember-hi),var(--cobalt-hi),transparent);opacity:calc(.35 + var(--e,0) * .65)}
.ocard a:hover,.ocard.open a{border-color:rgba(110,166,255,.55);box-shadow:0 50px 100px -40px rgba(26,111,255,.55)}
.o-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.o-n{font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:3.6rem;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(110,166,255,.7);transition:color .4s,-webkit-text-stroke-color .4s}
.ocard.open .o-n,.ocard a:hover .o-n{color:var(--cobalt-hi);-webkit-text-stroke-color:transparent}
.o-t{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);padding-top:4px}
.o-h{display:block;margin-top:auto;font-family:var(--f-display);font-stretch:78%;font-weight:800;font-size:2.05rem;line-height:.95;letter-spacing:-.01em;color:var(--paper)}
.o-tag{display:block;font-size:.98rem;line-height:1.45;color:var(--mist)}
.o-more{display:flex;flex-direction:column;gap:12px}
.o-fmt{display:block;padding-top:12px;border-top:1px solid var(--line-2);font-size:var(--s5);color:var(--mist)}
.o-go{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.92rem;color:var(--paper)}
.o-go svg{width:14px;height:14px;transition:transform .25s}
.ocard a:hover .o-go svg{transform:translateX(3px)}
.orbit-floor{display:none}
@media (max-width:899px){
  .orbit-ring{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:14px;scrollbar-width:none}
  .orbit-ring::-webkit-scrollbar{display:none}
  .ocard{flex:0 0 min(82%,340px);scroll-snap-align:start}
}
.orbit.live{height:clamp(600px,50vw,700px);perspective:1700px;perspective-origin:50% 20%;overflow:hidden;touch-action:pan-y}
.orbit.live{cursor:grab;user-select:none;-webkit-user-select:none}
.orbit.live .orbit-ring{position:absolute;inset:0;display:block;max-width:none;padding:0;transform-style:preserve-3d;pointer-events:none}
.orbit.live .ocard{pointer-events:auto}
.orbit.live.dragging{cursor:grabbing}
.orbit.live .ocard{position:absolute;left:50%;top:56%;width:320px;will-change:transform,opacity}
.orbit.live .ocard a{min-height:330px;-webkit-user-drag:none}
.orbit.live .o-more{max-height:0;opacity:0;overflow:hidden;margin-top:-12px;transition:max-height .5s cubic-bezier(.16,1,.3,1),opacity .35s,margin .5s}
.orbit.live .ocard.open .o-more{max-height:140px;opacity:1;margin-top:0}
.orbit.live .orbit-floor{display:block;position:absolute;left:50%;bottom:4%;width:min(1100px,80%);height:120px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(26,111,255,.2),rgba(26,111,255,.05) 60%,transparent);pointer-events:none}
html.fx .o-hint--mouse{display:inline}
@media (hover:none),(pointer:coarse){html.fx .o-hint--mouse{display:none}html.fx .o-hint--touch{display:inline}}
.orbit.live .orbit-ring{overflow:visible;scroll-snap-type:none}
@media (max-width:899px){
  .orbit.live{height:500px;perspective:1100px;perspective-origin:50% 22%}
  .orbit.live .ocard{width:min(260px,70vw);top:46%}
  .orbit.live .ocard a{min-height:300px;padding:20px 20px 18px}
  .orbit.live .o-h{font-size:1.75rem}
  .orbit.live .o-n{font-size:3rem}
}

/* ---- Services: stacking engagement cards ---- */
.anchor{display:block;height:0;scroll-margin-top:140px}
.stack.live{padding:clamp(32px,4vw,56px) 0 clamp(40px,6vw,80px)}
.stack.live .offer{position:sticky;width:calc(100% - 2 * var(--gut));max-width:calc(var(--max) - 16px);margin:0 auto 7vh;padding-block:clamp(48px,5.5vw,76px);border:1px solid var(--line-2);border-radius:26px;overflow:hidden;
  background:linear-gradient(172deg,#131b2a 0%,#0a0e16 58%);box-shadow:0 -40px 80px -50px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.05);
  transform-origin:50% 0;transform:scale(calc(1 - var(--q,0) * .055))}
.stack.live .offer:last-child{margin-bottom:0}
.stack.live .offer::before{content:"";position:absolute;left:8%;right:8%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--cobalt-hi),transparent);opacity:.7}
.stack.live .offer::after{content:"";position:absolute;inset:0;background:var(--bg);opacity:calc(var(--q,0) * .6);pointer-events:none;border-radius:inherit}
.stack.live .offer .meta{position:static}
.stack.live .offer .wrap{padding-left:clamp(20px,4vw,56px);padding-right:clamp(20px,4vw,56px)}
.stack.live .offer .tier b{font-size:clamp(3rem,5vw,4.4rem);color:transparent;-webkit-text-stroke:1px rgba(110,166,255,.7)}
.stack.live+.sec{border-top:0}

/* ---- Services: comparison ---- */
.cmp-wrap{border:1px solid var(--line-2);border-radius:22px;overflow-x:auto;background:linear-gradient(170deg,rgba(19,27,42,.9),rgba(9,13,21,.9))}
table.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem}
.cmp thead th{padding:18px 18px;text-align:left;font-weight:500;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line-2);background:rgba(6,8,13,.35)}
.cmp thead th:nth-child(n+3){text-align:center}
.cmp tbody tr{position:relative;transition:background .3s}
.cmp tbody th,.cmp tbody td{padding:20px 18px;border-bottom:1px solid var(--line);vertical-align:middle}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp tbody th{text-align:left;font-family:var(--f-display);font-stretch:84%;font-weight:700;font-size:1.12rem;color:var(--paper);position:relative;white-space:nowrap}
.cmp tbody th::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:2px;background:linear-gradient(var(--cobalt-hi),var(--ember));transform:scaleY(0);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.cmp tbody th a{color:inherit;text-decoration:none}
.cmp tbody th a::after{content:"";position:absolute;inset:0}
.cmp tbody th span{display:block;font-family:var(--f-body);font-weight:400;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:4px}
.cmp .start{display:inline-block;margin-top:8px;padding:3px 9px;border-radius:99px;font-family:var(--f-body);font-style:normal;font-weight:600;font-size:.7rem;letter-spacing:.06em;color:#1a0c05;background:linear-gradient(90deg,var(--ember-hi),var(--ember))}
.cmp tbody tr:hover{background:linear-gradient(90deg,rgba(26,111,255,.12),rgba(26,111,255,0) 70%)}
.cmp tbody tr:hover th::before{transform:scaleY(1)}
.cmp td.dur{min-width:200px}
.cmp .bar{display:block;height:4px;border-radius:4px;background:var(--line);overflow:hidden;margin-bottom:8px}
.cmp .bar i{display:block;height:100%;width:var(--w);border-radius:4px;background:linear-gradient(90deg,var(--cobalt),var(--cobalt-hi) 70%,var(--ember-hi));box-shadow:0 0 12px rgba(26,111,255,.6);transform-origin:0 50%}
.cmp .dl{font-size:.9rem;color:var(--mist)}
.cmp td.y,.cmp td.n{text-align:center}
.cmp .dot{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle}
.cmp td.y .dot{background:radial-gradient(circle,#fff 0,var(--cobalt-hi) 38%,var(--cobalt) 70%);box-shadow:0 0 14px 2px rgba(26,111,255,.55)}
.cmp td.n .dot{width:14px;height:2px;border-radius:2px;background:var(--line-2)}
.cmp tbody tr:hover td.y .dot{background:radial-gradient(circle,#fff 0,var(--ember-hi) 40%,var(--ember) 72%);box-shadow:0 0 16px 3px rgba(255,90,31,.55)}
.cmp-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:28px}
.cmp-foot p{max-width:52ch;color:var(--paper);font-family:var(--f-display);font-stretch:92%;font-weight:500;font-size:clamp(1.1rem,1.5vw,1.3rem)}
/* reveal: bars pour in and the dots ignite row by row */
.soft .cmp .bar i{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.16,1,.3,1) calc(var(--r) * .09s + .15s)}
.soft .cmp td.y .dot{transform:scale(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1) calc(var(--r) * .09s + var(--c,0s) + .45s),background .3s,box-shadow .3s}
.soft .cmp td:nth-child(3){--c:0s}.soft .cmp td:nth-child(4){--c:.08s}.soft .cmp td:nth-child(5){--c:.16s}.soft .cmp td:nth-child(6){--c:.24s}
.soft .cmp.in .bar i{transform:scaleX(1)}
.soft .cmp.in td.y .dot{transform:scale(1)}
@media (max-width:760px){
  .cmp-wrap{border:0;background:none;border-radius:0;overflow:visible}
  table.cmp,.cmp tbody,.cmp tr,.cmp th,.cmp td{display:block}
  table.cmp{min-width:0}
  .cmp thead{display:none}
  .cmp tbody{display:grid;gap:14px}
  .cmp tbody tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:18px;background:linear-gradient(170deg,rgba(19,27,42,.95),rgba(9,13,21,.95));overflow:hidden}
  .cmp tbody th{grid-column:1 / -1;white-space:normal;border-bottom:1px solid var(--line)!important;padding:18px 18px 14px}
  .cmp td.dur{grid-column:1 / -1;min-width:0;border-bottom:1px solid var(--line)!important;padding:14px 18px}
  .cmp td.y,.cmp td.n{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 18px;border-bottom:0;font-size:.88rem;color:var(--mist)}
  .cmp td.y::after,.cmp td.n::after{content:attr(data-l)}
  .cmp td.n::after{color:var(--dim);text-decoration:line-through;text-decoration-color:rgba(150,172,214,.35)}
  .cmp td.dur::before{content:attr(data-l);display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
  .cmp tbody tr:last-child td{border-bottom:0}
}

/* ---- Services: FAQ ---- */
.faq{counter-reset:q}
.faq details{position:relative;counter-increment:q}
.faq summary{align-items:baseline;transition:color .3s}
.faq summary::before{content:counter(q,decimal-leading-zero);flex:0 0 auto;font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:1.05rem;color:var(--dim);transition:color .4s,text-shadow .4s;min-width:2ch}
.faq summary{justify-content:flex-start}
.faq summary .q{flex:1}
.faq summary:hover{color:#fff}
.faq summary:hover::before{color:var(--cobalt-hi)}
.faq details[open] summary::before{color:var(--ember);text-shadow:0 0 18px rgba(255,90,31,.6)}
.faq details[open] summary::after{background:linear-gradient(var(--ember-hi),var(--ember-hi)) center/14px 2px no-repeat,linear-gradient(var(--ember-hi),var(--ember-hi)) center/2px 14px no-repeat;filter:drop-shadow(0 0 6px rgba(255,90,31,.8))}
.faq details::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--ember-hi),var(--ember) 30%,var(--cobalt-hi) 70%,transparent);box-shadow:0 0 12px rgba(255,90,31,.6);transform:scaleX(0);transform-origin:0 50%;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.faq details[open]::after{transform:scaleX(1)}
.faq .ans{overflow:hidden}
.faq .ans p{padding:0 0 28px calc(2ch + 24px);max-width:72ch;color:var(--paper)}
@media (max-width:640px){.faq .ans p{padding-left:0}}
.soft .faq .ans .w{display:inline-block;opacity:0;transform:translateY(6px);filter:blur(3px);color:var(--ember-hi);animation:forge .7s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--i) * 14ms + 80ms)}
@keyframes forge{40%{opacity:1;filter:blur(0);color:var(--ember-hi)}100%{opacity:1;transform:none;filter:none;color:var(--paper)}}
.faq-spark{position:fixed;left:0;top:0;width:2px;height:10px;border-radius:2px;pointer-events:none;z-index:300;background:linear-gradient(#fff,var(--ember-hi),rgba(255,90,31,0))}

/* ---- Headings ignite: Six ways to start (home), the timeline (About), the FAQ (Services) ----
   Mouse: on hover or keyboard focus. Touch screens: when the item reaches the middle of the screen. */
.ign{background-image:linear-gradient(90deg,var(--ember-hi) 0%,var(--ember) 42%,var(--paper) 58%,var(--paper) 100%);background-size:250% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:background-position .9s cubic-bezier(.16,1,.3,1),filter .7s}
.svc:hover .ign,.svc:focus-visible .ign,.hcard:hover .ign,.faq summary:hover .ign,.faq summary:focus-visible .ign,.ign.hot{background-position:0 0;filter:drop-shadow(0 0 18px rgba(255,90,31,.38))}
.svc:hover::after,.svc:focus-visible::after,.svc.hot::after{transform:scaleX(1);background:linear-gradient(90deg,var(--ember-hi),var(--ember) 40%,var(--cobalt-hi) 80%,transparent);box-shadow:0 0 12px rgba(255,90,31,.5)}
.svc:hover svg,.svc.hot svg{color:var(--ember-hi);transform:translate(4px,-4px);filter:drop-shadow(0 0 6px rgba(255,90,31,.7))}
.faq details:hover summary::before,.faq details.hot summary::before{color:var(--ember);text-shadow:0 0 16px rgba(255,90,31,.55)}
.faq details:hover summary::after,.faq details.hot summary::after{background:linear-gradient(var(--ember-hi),var(--ember-hi)) center/14px 2px no-repeat,linear-gradient(var(--ember-hi),var(--ember-hi)) center/2px 14px no-repeat}
.hcard:hover{border-color:rgba(255,120,52,.5)}

/* ---- Orbit: manual controls ---- */
.orbit-ctrl{display:none}
.orbit.live .orbit-ctrl{display:flex;position:absolute;left:50%;bottom:clamp(14px,3vw,30px);transform:translateX(-50%);z-index:400;align-items:center;gap:10px;padding:6px;border:1px solid var(--line-2);border-radius:999px;background:rgba(6,8,13,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:default}
.o-dots{list-style:none;display:flex;gap:4px}
.o-arrow,.o-dot{appearance:none;border:0;background:none;color:var(--mist);font:inherit;cursor:pointer;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;transition:color .25s,background .25s,box-shadow .25s}
.o-arrow{width:44px;height:44px}
.o-arrow svg{width:16px;height:16px}
.o-arrow:hover{color:var(--paper);background:rgba(110,166,255,.12)}
.o-dot{min-width:44px;height:44px;padding:0 6px;font-family:var(--f-display);font-stretch:62%;font-weight:800;font-size:1.05rem;letter-spacing:.02em}
.o-dot:hover{color:var(--paper)}
.o-dot.on{color:#fff;background:linear-gradient(135deg,rgba(26,111,255,.55),rgba(255,90,31,.45));box-shadow:0 0 18px rgba(26,111,255,.45)}
@media (max-width:899px){.orbit.live{height:560px}.o-dot{min-width:36px;height:40px;font-size:.95rem}.o-arrow{width:40px;height:40px}.orbit.live .orbit-ctrl{gap:4px;bottom:10px}}
.faq summary,.svc,.ocard a,.o-dot,.o-arrow{-webkit-tap-highlight-color:transparent}
