/* Homepage. Uses only the tokens in site-base.css: no colour literals, no font sizes off the scale.
   Motion vocabulary: [data-reveal] → .is-in (entry), --p (scroll progress), .sp-layer.on (story step),
   --mx/--my (pointer), --hy (hero scroll). Everything stops under prefers-reduced-motion. */

.home{overflow-x:clip;--ease:cubic-bezier(.2,.75,.15,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}
.h-wrap{width:min(var(--page-width),calc(100% - 2*var(--gutter)));margin:0 auto}
:where(.home) :is(h1,h2,h3,h4){margin:0;color:var(--c-text);letter-spacing:-.025em;font-weight:650}
:where(.home) p{margin:0}
:where(.home) ul,:where(.home) ol{list-style:none;margin:0;padding:0}
.btn{min-height:48px;padding:0 var(--s-6)}
.h-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center}
.h-eyebrow{font-size:var(--fs-14);font-weight:600;color:var(--c-primary);letter-spacing:.02em}

/* ---------- Reveal ---------- */
.vm .home [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.vm .home [data-reveal].is-in{opacity:1;transform:none}
.home .is-now,.home .is-now *{transition:none}

/* ---------- 1. Hero ---------- */
.h-hero{position:relative;padding:var(--s-9) 0 var(--s-8);text-align:center;isolation:isolate}
.h-hero::before{content:"";position:absolute;inset:-68px 0 auto;height:900px;z-index:-1;pointer-events:none;
  background:radial-gradient(55% 50% at 50% 0%,var(--c-primary-soft),transparent 70%),radial-gradient(35% 35% at 85% 18%,color-mix(in srgb,var(--c-accent) 9%,transparent),transparent 70%),radial-gradient(30% 30% at 10% 40%,color-mix(in srgb,var(--c-primary) 6%,transparent),transparent 70%)}
.h-hero-copy{max-width:880px}
.h-chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:6px var(--s-3);border-radius:999px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);font-size:var(--fs-14);font-weight:500;color:var(--c-muted)}
.h-chip b{font-weight:650;color:var(--c-text);letter-spacing:.02em}
.h-dot{width:8px;height:8px;border-radius:50%;background:var(--c-primary)}
.h-hero h1{margin-top:var(--s-5);font-size:clamp(var(--fs-32),5.4vw,var(--fs-60));line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.h-hero h1 em{font-style:normal;color:var(--c-primary)}
.h-lede{max-width:700px;margin:var(--s-5) auto 0;font-size:var(--fs-18);line-height:1.6;color:var(--c-muted);text-wrap:pretty}
.h-hero .h-actions{margin-top:var(--s-6)}

/* Hero scene: building + crane, release checklist, gate, delivery on the way. */
.hx{position:relative;margin:0;aspect-ratio:1160/440;text-align:left}
.hx>*{translate:0 calc(var(--hy,0) * var(--sy,0) * 1px)}
.hx-grid{position:absolute;inset:-48px -24px -8px;pointer-events:none;
  background-image:linear-gradient(var(--c-line) 1px,transparent 1px),linear-gradient(90deg,var(--c-line) 1px,transparent 1px);background-size:40px 40px;
  -webkit-mask-image:radial-gradient(60% 70% at 40% 55%,#000 30%,transparent 75%);mask-image:radial-gradient(60% 70% at 40% 55%,#000 30%,transparent 75%);opacity:.7}
.hx-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hx-ground{stroke:var(--c-line);stroke-width:2}
.hx-road{fill:none;stroke:var(--c-muted);stroke-width:2;stroke-dasharray:10 12;opacity:.35}
.hx-floor{transform:translateY(46px);opacity:0;transition:transform 1s var(--ease-spring),opacity .6s var(--ease);transition-delay:calc(var(--i) * 140ms + 350ms)}
.hx.is-in .hx-floor{transform:none;opacity:1}
.hx-top{fill:color-mix(in srgb,var(--c-primary) 34%,var(--c-bg))}
.hx-left{fill:color-mix(in srgb,var(--c-primary) 62%,var(--c-bg))}
.hx-right{fill:color-mix(in srgb,var(--c-primary) 48%,var(--c-bg))}
.hx-col{stroke:color-mix(in srgb,var(--c-primary) 45%,var(--c-bg));stroke-width:3}
.hx-next polygon{fill:var(--c-primary-soft);stroke:var(--c-primary);stroke-width:2;stroke-dasharray:6 6}
.hx-rebar line{stroke:var(--c-warn);stroke-width:1.2;opacity:0;transition:opacity .6s 1.1s}
.hx.is-in .hx-rebar line{opacity:.55}
.hx-crane{opacity:0;transition:opacity 1s .9s}
.hx.is-in .hx-crane{opacity:1}
.hx-mast,.hx-jib{fill:none;stroke:var(--c-muted);stroke-width:1.5;opacity:.5}
.hx-trolley{transform:translateX(230px)}
.hx-trolley rect{fill:var(--c-muted)}
.hx-cable{stroke:var(--c-muted);stroke-width:1.2;opacity:.7}
.hx-load{transform-origin:0 34px}
.hx-load rect{fill:var(--c-warn)}
.hx-bar{stroke:var(--c-surface);stroke-width:1.2;opacity:.8}
.hx-path{fill:none;stroke:url(#hx-flow);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200;transition:stroke-dashoffset 1s var(--ease) 1.3s}
.hx-path-2{transition-delay:2.4s}
.hx.is-in .hx-path{stroke-dashoffset:0}
.hx-after{fill:none;stroke:var(--c-muted);stroke-width:2;stroke-dasharray:3 7;opacity:.5}
.hx-gate circle{transform-box:fill-box;transform-origin:center}
.hx-pulse{fill:var(--c-primary-soft);opacity:0}
.hx.is-in .hx-pulse{animation:hx-pulse 2.2s ease-out 2.8s 3}
.hx-ring{fill:var(--c-surface);stroke:var(--c-primary);stroke-width:2.5}
.hx-core{fill:var(--c-primary)}

.hx-card,.hx-tag{position:absolute;display:flex;gap:var(--s-3);align-items:center;
  translate:calc(var(--mx,0) * var(--dp) * -1.6px) calc(var(--my,0) * var(--dp) * -1.6px + var(--hy,0) * var(--dp) * -6px);
  transition:translate .5s var(--ease),opacity .8s var(--ease),transform 1s var(--ease-spring);opacity:0;transform:translateY(18px) scale(.96)}
.hx.is-in .hx-card,.hx.is-in .hx-tag{opacity:1;transform:none}
.hx-card{padding:var(--s-3) var(--s-4);border-radius:var(--r-card);background:color-mix(in srgb,var(--c-surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line)}
.hx-card b,.hx-tag strong{display:block;font-size:var(--fs-14);font-weight:650;color:var(--c-text);line-height:1.3}
.hx-card span,.hx-tag span{display:block;font-size:var(--fs-12);color:var(--c-muted);line-height:1.4}
.hx-tag{--dp:6;left:24%;top:11%;flex-direction:column;align-items:flex-start;gap:2px;padding-left:var(--s-3);border-left:2px solid var(--c-primary);transition-delay:0s,1.1s,1.1s}
.hx-check{--dp:10;left:37.9%;top:12%;width:25.6%;flex-direction:column;align-items:stretch;gap:var(--s-3);padding:var(--s-4);transition-delay:0s,1.2s,1.2s}
.hx-check-head{display:flex;gap:var(--s-3);align-items:center}
.hx-check-head strong{font-size:var(--fs-14);color:var(--c-text);display:inline}
.hx-ring-mini{flex:none;width:40px;height:40px;transform:rotate(-90deg)}
.hx-ring-mini circle{fill:none;stroke:var(--c-line);stroke-width:5}
.hx-ring-mini .hx-ring-fill{stroke:var(--c-ok);stroke-linecap:round;stroke-dasharray:113.1;stroke-dashoffset:113.1;transition:stroke-dashoffset 1.4s var(--ease) 1.5s}
.hx.is-in .hx-ring-fill{stroke-dashoffset:calc(113.1 * (1 - var(--v)))}
.hx-check ul{display:flex;flex-direction:column;gap:6px}
.hx-check li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-12);color:var(--c-text);padding:5px 8px;border-radius:8px;opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .5s var(--ease);transition-delay:calc(1.5s + var(--r) * 160ms)}
.hx.is-in .hx-check li{opacity:1;transform:none}
.hx-check li.is-warn{background:var(--c-warn-soft)}
.hx-check li span{color:inherit;font-size:var(--fs-12)}
.hx-gate-card{--dp:16;left:69%;top:4%;transition-delay:0s,2.6s,2.6s}
.hx-lock{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--c-primary-soft);color:var(--c-primary)}
.hx-lock svg{width:20px;height:20px}
.hx.is-in .hx-lock svg{animation:hx-shake .6s 3.2s}
.hx-truck{--dp:8;right:1%;bottom:10%;transition-delay:0s,2s,2s}
.hx-truck-icon{display:grid;place-items:center;width:40px;height:36px;border-radius:10px;background:var(--c-warn-soft);color:var(--c-warn)}
.hx-truck-icon svg{width:26px;height:18px}

i.st-ok,i.st-warn,i.st-wait{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%}
i.st-ok{background:var(--c-ok-soft);color:var(--c-ok)}
i.st-warn{background:var(--c-warn);color:var(--c-surface)}
i.st-wait{color:var(--c-muted)}
:is(i.st-ok,i.st-warn,i.st-wait) svg{width:14px;height:14px}


/* Hero workspace frame: the scene sits inside an ACMS window with nav, activity feed and KPIs. */
.hw-wrap{width:min(1240px,calc(100% - 2*var(--gutter)));margin:var(--s-8) auto 0;perspective:1800px}
.hw{position:relative;text-align:left;border-radius:var(--r-panel);background:color-mix(in srgb,var(--c-surface) 92%,transparent);box-shadow:0 2px 4px #0b17300a,0 40px 100px -40px color-mix(in srgb,var(--c-primary) 45%,transparent),inset 0 0 0 1px var(--c-line);overflow:hidden;transform-origin:50% 0;transform:rotateX(calc(var(--hy,0) * 9deg)) scale(calc(1 - var(--hy,0) * .03))}
.vm .home .hw[data-reveal]{transform:translateY(40px) rotateX(14deg)}
.vm .home .hw[data-reveal].is-in{transform:rotateX(calc(var(--hy,0) * 9deg)) scale(calc(1 - var(--hy,0) * .03));transition:opacity 1s var(--ease),transform 1.2s var(--ease),filter 1s var(--ease)}
.hw-bar{display:flex;align-items:center;gap:var(--s-4);height:52px;padding:0 var(--s-5);border-bottom:1px solid var(--c-line);background:var(--c-subtle);font-size:var(--fs-14);color:var(--c-muted);white-space:nowrap}
.hw-project{display:flex;align-items:center;gap:var(--s-2);padding:6px 10px;border-radius:var(--r-control);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.hw-project b{color:var(--c-text);font-weight:650}
.hw-project em{font-style:normal;font-size:var(--fs-12)}
.hw-tabs{display:flex;gap:var(--s-1);margin-left:var(--s-2)}
.hw-tabs span{padding:6px 10px;border-radius:8px}
.hw-tabs span.on{background:var(--c-surface);color:var(--c-text);font-weight:600;box-shadow:var(--shadow-card)}
.hw-ask{display:flex;align-items:center;gap:var(--s-2);margin-left:auto;padding:6px 12px;min-width:180px;border-radius:999px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.hw-ask svg{width:14px;height:14px;color:var(--c-accent)}
.hw-people{display:flex}
.hw-people i{display:grid;place-items:center;width:28px;height:28px;margin-left:-6px;border-radius:50%;border:2px solid var(--c-subtle);font-style:normal;font-size:var(--fs-12);font-weight:650;color:var(--c-on-primary);background:var(--c-primary)}
.hw-people i:nth-child(2){background:var(--c-ok)}.hw-people i:nth-child(3){background:var(--c-accent)}
.hw-body{display:grid;grid-template-columns:60px minmax(0,1fr) 300px}
.hw-nav{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-4) 0;border-right:1px solid var(--c-line)}
.hw-nav span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--c-muted)}
.hw-nav span.on{background:var(--c-primary-soft);color:var(--c-primary)}
.hw-nav svg{width:19px;height:19px}
.hw-canvas{position:relative;padding:var(--s-6) var(--s-5) var(--s-4);overflow:hidden;background:linear-gradient(var(--c-bg),var(--c-surface))}
.hw-canvas .hx{margin:0}
.hw-canvas .hx-grid{inset:-24px}
.hw-canvas .hx-check{min-width:250px;left:34%;top:6%}
.hw-canvas .hx-gate-card{top:8%;left:auto;right:2%}
.hw-canvas .hx-truck{bottom:14%}
.hw-canvas .hx-tag{display:none}
.hw-canvas .hx-check-head b{white-space:nowrap}
.hw-feed{padding:var(--s-5) var(--s-4);border-left:1px solid var(--c-line);background:var(--c-surface)}
.hw-feed ol{position:relative;margin-top:var(--s-4);display:flex;flex-direction:column;gap:var(--s-4)}
.hw-feed ol::before{content:"";position:absolute;left:40px;top:6px;bottom:6px;width:1px;background:var(--c-line)}
.hw-feed li{position:relative;display:grid;grid-template-columns:36px 1fr;gap:var(--s-3);opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s var(--ease);transition-delay:calc(1.6s + var(--r) * 450ms)}
.is-in .hw-feed li{opacity:1;transform:none}
.hw-feed li::before{content:"";position:absolute;left:37px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--c-surface);box-shadow:inset 0 0 0 2px var(--c-muted)}
.hw-feed li.warn::before{box-shadow:inset 0 0 0 4px var(--c-warn)}
.hw-feed li.ai::before{box-shadow:inset 0 0 0 4px var(--c-accent)}
.hw-feed time{font-size:var(--fs-12);color:var(--c-muted);font-variant-numeric:tabular-nums}
.hw-feed li div{display:flex;flex-direction:column;gap:2px;padding-left:var(--s-2)}
.hw-feed b{font-size:var(--fs-12);font-weight:650;color:var(--c-text)}
.hw-feed span{font-size:var(--fs-12);color:var(--c-muted);line-height:1.4}
.hw-feed li.warn span{color:var(--c-warn)}
.hw-feed li.ai{padding:var(--s-2) 0;border-radius:var(--r-control);background:color-mix(in srgb,var(--c-accent) 8%,transparent)}
.hw-feed li.ai span{color:var(--c-text)}
.hw-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--c-line)}
.hw-kpis>div{display:flex;flex-direction:column;gap:4px;padding:var(--s-4) var(--s-5)}
.hw-kpis>div+div{border-left:1px solid var(--c-line)}
.hw-kpis span{font-size:var(--fs-12);color:var(--c-muted)}
.hw-kpis strong{font-size:var(--fs-24);font-weight:650;letter-spacing:-.02em;color:var(--c-text);font-variant-numeric:tabular-nums;line-height:1.2}
.hw-kpis strong b{font-weight:inherit}
.hw-kpis small{font-size:var(--fs-14);color:var(--c-muted);font-weight:500}
.hw-kpis em{font-style:normal;font-size:var(--fs-12);font-weight:600;color:var(--c-muted)}
.hw-kpis em.warn{color:var(--c-warn)}
.hw-meter{display:block;height:6px;margin-top:4px;border-radius:3px;background:var(--c-line);overflow:hidden}
.hw-meter i{display:block;height:100%;background:var(--c-primary);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) 1s}
.is-in .hw-meter i{transform:scaleX(var(--v))}
@media (max-width:1100px){.hw-body{grid-template-columns:52px minmax(0,1fr)}.hw-feed,.hw-ai{display:none}.hw-tabs span:nth-child(n+4){display:none}}
@media (max-width:760px){
  .hw-wrap{margin-top:var(--s-6)}
  .hw{transform:none!important}
  .hw-body{grid-template-columns:1fr}
  .hw-nav,.hw-tabs,.hw-ask,.hw-people{display:none}
  .hw-canvas{padding:var(--s-4)}
  .hw-canvas .hx-card{left:auto;right:auto;top:auto;bottom:auto;min-width:0}
  .hw-kpis{grid-template-columns:1fr 1fr}
  .hw-kpis>div:nth-child(3){border-left:0}
  .hw-kpis>div:nth-child(n+3){border-top:1px solid var(--c-line)}
  .hw-kpis>div{padding:var(--s-3) var(--s-4)}
}



/* Facts under the hero */
.h-facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s-8);margin-bottom:0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);text-align:left}
.h-facts>div{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-5) var(--s-5) var(--s-5) 0}
.h-facts>div+div{padding-left:var(--s-5);border-left:1px solid var(--c-line)}
.h-facts dt{font-size:var(--fs-32);font-weight:650;letter-spacing:-.03em;color:var(--c-text);line-height:1.1}
.h-facts dd{margin:0;font-size:var(--fs-14);color:var(--c-muted);line-height:1.45}

/* Section headers: split (title left, text right) and left-aligned */
.h-head.h-head-split{max-width:none;margin-left:0;margin-right:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--s-8);align-items:end;text-align:left}
.h-head.h-head-split>p{margin:0}
.h-head.h-head-left{text-align:left;margin-left:0}
.h-head.h-head-wide{max-width:none;margin-left:0;margin-right:0;text-align:left}
.h-head.h-head-wide h2{max-width:24em}
.h-head.h-head-wide>p:last-child{max-width:62ch}


.h-gaps{padding:var(--s-9) 0}
/* ---------- 2. Gaps: problem on the left, the ACMS answer on the right ---------- */
.gp-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:var(--s-9);align-items:start}
.gp-intro{position:sticky;top:120px}
.gp-intro h2{margin-top:var(--s-3);font-size:clamp(var(--fs-32),3.2vw,var(--fs-44));line-height:1.12}
.gp-intro>h2+p{margin-top:var(--s-5);max-width:40ch;font-size:var(--fs-18);color:var(--c-muted)}
.gp-list{display:flex;flex-direction:column;border-top:1px solid var(--c-line)}
.gp-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-5);align-items:start;padding:var(--s-6) 0;border-bottom:1px solid var(--c-line)}
.gp-n{font-size:var(--fs-14);font-weight:650;color:var(--c-warn);font-variant-numeric:tabular-nums;padding-top:4px}
.gp-problem h3{font-size:var(--fs-18);line-height:1.3}
.gp-problem p{margin-top:var(--s-2);font-size:var(--fs-16);color:var(--c-muted);line-height:1.55}
.gp-answer{position:relative;display:flex;flex-direction:column;gap:4px;padding:var(--s-4) var(--s-6) var(--s-4) var(--s-4);border-left:2px solid var(--c-primary);font-size:var(--fs-16);color:var(--c-text);line-height:1.5;transition:background .2s}
.gp-answer:hover{background:var(--c-primary-soft)}
.gp-answer span{font-size:var(--fs-12);font-weight:650;color:var(--c-primary);text-transform:uppercase;letter-spacing:.05em}
.gp-answer b{position:absolute;right:var(--s-2);top:50%;transform:translateY(-50%);color:var(--c-primary);opacity:0;transition:opacity .2s,transform .2s}
.gp-answer:hover b{opacity:1;transform:translate(3px,-50%)}

/* ---------- 4. Modules: four columns, one per group ---------- */
.mg{display:grid;grid-template-columns:repeat(4,1fr);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);overflow:hidden}
.mg-col{display:flex;flex-direction:column;padding:var(--s-6) var(--s-5)}
.mg-col+.mg-col{border-left:1px solid var(--c-line)}
.mg-n{font-size:var(--fs-14);font-weight:650;color:var(--c-primary);font-variant-numeric:tabular-nums}
.mg-col h3{margin-top:var(--s-2);font-size:var(--fs-18);line-height:1.3;min-height:2.6em}
.mg-col>p{margin-top:var(--s-2);font-size:var(--fs-14);color:var(--c-muted);line-height:1.5;min-height:3em}
.mg-col ul{display:flex;flex-direction:column;gap:2px;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line)}
.mg-col a{display:flex;flex-direction:column;gap:2px;margin:0 calc(-1 * var(--s-3));padding:var(--s-3);border-radius:var(--r-control);transition:background .2s}
.mg-col a:hover{background:var(--c-subtle)}
.mg-col a strong{font-size:var(--fs-16);font-weight:600;color:var(--c-text)}
.mg-col a:hover strong{color:var(--c-primary)}
.mg-col a span{font-size:var(--fs-14);color:var(--c-muted);line-height:1.45}
.mg-more{margin-top:var(--s-6);text-align:center}

/* ---------- Questions ---------- */
.h-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:var(--s-9);align-items:start}
.h-faq .h-head{margin:0}
.mp-faq{display:flex;flex-direction:column;gap:var(--s-3)}
.mp-faq details{border-radius:var(--r-card);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.mp-faq summary{display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-5);font-size:var(--fs-16);font-weight:600;color:var(--c-text);cursor:pointer;list-style:none}
.mp-faq summary::-webkit-details-marker{display:none}
.mp-faq summary::after{content:"+";color:var(--c-muted);font-weight:400;font-size:var(--fs-18);line-height:1}
.mp-faq details[open] summary::after{content:"−"}
.mp-faq details p{padding:0 var(--s-5) var(--s-5);font-size:var(--fs-16);line-height:1.6;color:var(--c-muted)}

@media (max-width:1000px){
  .h-facts{grid-template-columns:1fr 1fr}
  .h-facts>div:nth-child(3){padding-left:0;border-left:0}
  .h-facts>div:nth-child(n+3){border-top:1px solid var(--c-line)}
  .h-head.h-head-split{grid-template-columns:1fr;gap:var(--s-4)}
  .gp-layout{grid-template-columns:1fr;gap:var(--s-6)}
  .gp-intro{position:static}
  .mg{grid-template-columns:1fr 1fr}
  .mg-col:nth-child(3){border-left:0}
  .mg-col:nth-child(n+3){border-top:1px solid var(--c-line)}
  .h-faq-grid{grid-template-columns:1fr;gap:var(--s-6)}
}
@media (max-width:760px){
  .h-facts dt{font-size:var(--fs-24)}
  .gp-list li{grid-template-columns:1fr;gap:var(--s-3)}
  .gp-answer{grid-column:2}
  .mg{grid-template-columns:1fr}
  .mg-col+.mg-col{border-left:0;border-top:1px solid var(--c-line)}
  .mg-col>p,.mg-col h3{min-height:0}
}


/* ---------- Illustrations (site-illus.js): isometric boxes coloured by tone ---------- */
.il{display:block;width:100%;height:auto;overflow:visible}
.ib,.ib-head{--tone:var(--c-primary)}
.ib-amber{--tone:var(--c-warn)}.ib-green{--tone:var(--c-ok)}.ib-violet{--tone:var(--c-accent)}
.ib-t{fill:color-mix(in srgb,var(--tone) 30%,var(--c-surface))}
.ib-l{fill:color-mix(in srgb,var(--tone) 62%,var(--c-surface))}
.ib-r{fill:color-mix(in srgb,var(--tone) 46%,var(--c-surface))}
.ib-paper .ib-t{fill:var(--c-surface)}.ib-paper .ib-l{fill:color-mix(in srgb,var(--c-muted) 22%,var(--c-surface))}.ib-paper .ib-r{fill:color-mix(in srgb,var(--c-muted) 14%,var(--c-surface))}
.ib-board .ib-t,.ib-board .ib-l,.ib-board .ib-r{fill:var(--c-surface);stroke:var(--c-line)}
.ib-ground .ib-t{fill:color-mix(in srgb,var(--c-primary) 6%,var(--c-subtle))}.ib-ground .ib-l,.ib-ground .ib-r{fill:color-mix(in srgb,var(--c-primary) 12%,var(--c-subtle))}
.ib-core .ib-t{fill:var(--c-primary)}.ib-core .ib-l{fill:color-mix(in srgb,var(--c-primary) 80%,#000)}.ib-core .ib-r{fill:color-mix(in srgb,var(--c-primary) 65%,#000)}
.ib-outline polygon{fill:var(--c-primary-soft);stroke:var(--c-primary);stroke-width:1.2;stroke-dasharray:3 3}
.ib-night polygon{fill:none;stroke:color-mix(in srgb,var(--c-on-ink) 13%,transparent);stroke-width:1}
.ib-line{fill:none;stroke:color-mix(in srgb,var(--c-muted) 45%,transparent);stroke-width:1.2;stroke-linecap:round}
.ib-head{fill:color-mix(in srgb,var(--tone) 40%,var(--c-surface));stroke:color-mix(in srgb,var(--tone) 70%,var(--c-surface));stroke-width:1.2}
.il-badge circle{fill:var(--c-ok)}.il-badge path,.il-shield-tick{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.il-shield path:first-child{fill:var(--c-primary)}
/* entrance: parts rise in order once the figure is revealed */
.vm .il .ib,.vm .il .ib-line,.vm .il .ib-head,.vm .il .il-badge,.vm .il .il-shield,.vm .il .sl-tag{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .7s var(--ease-spring);transition-delay:calc(var(--i,0) * 90ms + 150ms)}
.is-in .il .ib,.is-in .il .ib-line,.is-in .il .ib-head,.is-in .il .il-badge,.is-in .il .il-shield,.is-in .il .sl-tag{opacity:1;transform:none}

/* Silos: department files link to one record as the reader scrolls the four gaps */
.gp-figure{margin:var(--s-7) 0 0;padding:0}
.gp-figure figcaption{margin-top:var(--s-2);font-size:var(--fs-12);color:var(--c-muted);text-align:center}
.sl-tag rect{fill:var(--c-surface);stroke:var(--c-line)}
.sl-tag text,.sl-hub-label text{font:600 13px var(--font);fill:var(--c-text)}
.sl-link{fill:none;stroke:var(--c-primary);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0, (var(--p,0) - .1) * 2.4, 1));stroke-linecap:round;opacity:.7}
.sl-flag circle{fill:var(--c-warn)}.sl-flag text{font:700 12px var(--font);fill:#fff}
.sl-ok circle{fill:var(--c-ok)}.sl-ok path{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}
.sl-flag,.sl-ok{transition:opacity .4s,transform .5s var(--ease-spring);transform-box:fill-box;transform-origin:center}
.sl-ok{opacity:0;transform:scale(.4)}
.linked .sl-flag{opacity:0;transform:scale(.4)}
.linked .sl-ok{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 80ms)}
.sl-hub-label{opacity:0;transition:opacity .5s .2s}
.linked .sl-hub-label{opacity:1}
.sl-hub-label rect{fill:var(--c-primary-soft);stroke:var(--c-primary)}
.sl-hub-stem{stroke:var(--c-primary);stroke-width:1.2;stroke-dasharray:3 3;fill:none}
.linked .sl-hub .ib-t{fill:color-mix(in srgb,var(--c-primary) 85%,#fff)}

/* Module group scenes */
.mg-scene{height:120px;margin:calc(-1 * var(--s-2)) calc(-1 * var(--s-3)) var(--s-3);border-radius:var(--r-card);background:linear-gradient(var(--c-subtle),transparent);display:grid;place-items:center}
.mg-scene .il{width:auto;max-width:200px;height:104px}

/* Audit trail card */
.tr-log{margin-top:var(--s-6);border-radius:var(--r-card);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line);overflow:hidden}
.tr-log-head{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-line);background:var(--c-subtle);font-size:var(--fs-14)}
.tr-log-head svg{width:16px;height:16px;color:var(--c-primary)}
.tr-log-head b{flex:1;font-weight:600;color:var(--c-text)}
.tr-log-head span{font-size:var(--fs-12);color:var(--c-muted)}
.tr-log ol{display:flex;flex-direction:column}
.tr-log li{display:grid;grid-template-columns:44px 1fr auto;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4);font-size:var(--fs-14);color:var(--c-muted);opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .5s var(--ease);transition-delay:calc(.3s + var(--r) * 160ms)}
.is-in .tr-log li,.is-in.tr-log li{opacity:1;transform:none}
.tr-log li+li{border-top:1px solid var(--c-line)}
.tr-log time{font-variant-numeric:tabular-nums;font-size:var(--fs-12)}
.tr-log li b{color:var(--c-text);font-weight:600}
.tr-log em{font-style:normal;font-size:var(--fs-12);padding:2px 8px;border-radius:999px;background:var(--c-subtle)}
.tr-log li.ok em{background:var(--c-ok-soft);color:var(--c-ok)}
.tr-log li.ai em{background:color-mix(in srgb,var(--c-accent) 12%,transparent);color:var(--c-accent)}

/* Skyline behind the closing band */
.h-cta-sky{position:absolute;left:0;right:0;bottom:0;height:260px;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(transparent,#000 60%);mask-image:linear-gradient(transparent,#000 60%)}
.h-cta-sky .il{width:100%;height:100%}


/* ---------- ERP ---------- */
.h-erp{background:var(--c-subtle)}
.erp-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s-7);align-items:center}
.erp-fig{margin:0;padding:var(--s-5);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.erp-label line{stroke:var(--c-muted);stroke-width:1;stroke-dasharray:3 3}
.erp-label text{font:600 15px var(--font);fill:var(--c-text)}
.erp-fig .il{overflow:hidden}
.erp-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-5)}
.erp-links .sp-label{margin-right:var(--s-2)}
.erp-links span:not(.sp-label){padding:6px 12px;border-radius:999px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);font-size:var(--fs-14);font-weight:500;color:var(--c-text)}
.vm .il .erp-label{opacity:0;transition:opacity .5s;transition-delay:calc(var(--i) * 90ms + 200ms)}
.is-in .il .erp-label{opacity:1}
.erp-flow ol{position:relative;display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}
.erp-flow ol::before{content:"";position:absolute;left:9px;top:14px;bottom:14px;width:2px;background:var(--c-line)}
.erp-flow li{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) auto;column-gap:var(--s-3);row-gap:2px;align-items:center;padding:var(--s-3) var(--s-4) var(--s-3) 0;opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .5s var(--ease);transition-delay:calc(.2s + var(--r) * 220ms)}
.is-in .erp-flow li,.erp-flow.is-in li{opacity:1;transform:none}
.erp-dot{width:20px;height:20px;border-radius:50%;background:var(--c-surface);box-shadow:inset 0 0 0 2px var(--c-primary);z-index:1}
.erp-dot.ok{background:var(--c-primary)}.erp-dot.warn{box-shadow:inset 0 0 0 2px var(--c-warn);background:var(--c-warn-soft)}
.erp-doc{display:flex;align-items:baseline;gap:var(--s-2);min-width:0}
.erp-doc b{font-size:var(--fs-16);font-weight:650;color:var(--c-text);font-variant-numeric:tabular-nums}
.erp-doc span{font-size:var(--fs-14);color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-flow em{font-style:normal;font-size:var(--fs-12);font-weight:600;padding:3px 9px;border-radius:999px;background:var(--c-surface);color:var(--c-muted);box-shadow:inset 0 0 0 1px var(--c-line)}
.erp-flow em.ok{background:var(--c-ok-soft);color:var(--c-ok);box-shadow:none}.erp-flow em.warn{background:var(--c-warn-soft);color:var(--c-warn);box-shadow:none}
.erp-flow li p{grid-column:2/4;font-size:var(--fs-14);color:var(--c-primary)}
.erp-report{margin-top:var(--s-7);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line);overflow:hidden}
.erp-report-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--c-line)}
.erp-report-head b{font-size:var(--fs-16);font-weight:650}
.erp-report-head span{font-size:var(--fs-12);color:var(--c-muted)}
.erp-report table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}
.erp-report th{padding:var(--s-3) var(--s-5);text-align:left;font-size:var(--fs-12);font-weight:600;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--c-subtle)}
.erp-report th:nth-child(n+3){text-align:right}
.erp-report td{padding:var(--s-3) var(--s-5);border-top:1px solid var(--c-line);color:var(--c-text)}
.erp-report td.num{text-align:right;font-variant-numeric:tabular-nums}
.erp-report td.pos{color:var(--c-ok);font-weight:600}.erp-report td.neg{color:var(--c-danger);font-weight:600}
.erp-report tfoot td{font-weight:650;background:var(--c-subtle)}

/* ---------- Built for construction ---------- */
.bd-types{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.bd-type{padding:var(--s-5);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.bd-art{display:grid;place-items:center;height:190px;margin:calc(-1 * var(--s-5)) calc(-1 * var(--s-5)) var(--s-4);border-radius:var(--r-panel) var(--r-panel) 0 0;background:linear-gradient(var(--c-primary-soft),transparent),repeating-linear-gradient(0deg,transparent 0 23px,var(--c-line) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,var(--c-line) 23px 24px)}
.bd-art .il{width:auto;height:160px;max-width:90%}
.bd-type h3{font-size:var(--fs-18)}
.bd-type p{margin-top:var(--s-2);font-size:var(--fs-16);color:var(--c-muted);line-height:1.55}
.ib-window{fill:none;stroke:color-mix(in srgb,var(--c-surface) 70%,transparent);stroke-width:1.4}
.ib-lane{fill:none;stroke:var(--c-surface);stroke-width:1.6;stroke-dasharray:4 4}
.il-crane{fill:none;stroke:var(--c-muted);stroke-width:1.6;opacity:.7}
.bd-site{display:grid;grid-template-columns:320px 1fr;gap:var(--s-9);align-items:center;margin-top:var(--s-8)}
.bd-phone{width:300px;margin:0 auto;padding:var(--s-4);border-radius:36px;background:var(--c-surface);box-shadow:0 30px 70px -30px color-mix(in srgb,var(--c-primary) 45%,transparent),inset 0 0 0 8px var(--c-text);display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6) var(--s-5)}
.bd-phone-bar{display:flex;justify-content:space-between;font-size:var(--fs-12);color:var(--c-muted)}
.bd-phone-bar b{color:var(--c-text)}
.bd-phone-title{font-size:var(--fs-18);font-weight:650;color:var(--c-text)}
.bd-phone-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2)}
.bd-phone-stats div{padding:var(--s-2);border-radius:var(--r-control);background:var(--c-subtle);text-align:center}
.bd-phone-stats b{display:block;font-size:var(--fs-18);color:var(--c-text)}
.bd-phone-stats span{font-size:var(--fs-12);color:var(--c-muted)}
.bd-photo{position:relative;height:120px;border-radius:var(--r-control);background:linear-gradient(160deg,color-mix(in srgb,var(--c-primary) 18%,var(--c-surface)),var(--c-subtle));display:grid;place-items:center;overflow:hidden}
.bd-photo .il{height:110px;width:auto}
.bd-photo span{position:absolute;left:8px;bottom:6px;padding:2px 8px;border-radius:6px;background:color-mix(in srgb,var(--c-text) 70%,transparent);color:#fff;font-size:var(--fs-12)}
.bd-checks{display:flex;flex-direction:column;gap:6px}
.bd-checks li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-text);opacity:0;transform:translateY(6px);transition:opacity .35s,transform .45s var(--ease);transition-delay:calc(.4s + var(--r) * 180ms)}
.is-in .bd-checks li,.bd-phone.is-in li{opacity:1;transform:none}
.bd-checks i{width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--c-line)}
.bd-checks li.ok i{background:var(--c-ok);box-shadow:none}.bd-checks li.warn i{background:var(--c-warn);box-shadow:none}
.bd-phone-btn{display:grid;place-items:center;height:40px;border-radius:999px;background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-14);font-weight:600}
.bd-site-copy h3{font-size:var(--fs-32);letter-spacing:-.03em;line-height:1.15}
.bd-site-copy>p:not(.sp-label){margin:var(--s-4) 0 var(--s-6);font-size:var(--fs-18);color:var(--c-muted);line-height:1.6}
.bd-records{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}
.bd-records li{padding:6px 12px;border-radius:999px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);font-size:var(--fs-14);font-weight:500;color:var(--c-text)}
@media (max-width:1000px){.erp-grid,.bd-site{grid-template-columns:1fr;gap:var(--s-6)}.bd-types{grid-template-columns:1fr}}
@media (max-width:760px){.erp-report{overflow-x:auto}.erp-report table{min-width:640px}.bd-phone{width:100%;max-width:300px}.erp-doc span{white-space:normal}}


/* Hero: the assistant runs one request across modules */
.hw-ai{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5) var(--s-4);border-left:1px solid var(--c-line);background:var(--c-surface)}
.hw-ai .sp-label{display:flex;align-items:center;gap:var(--s-2)}
.hw-ai .sp-spark{width:22px;height:22px;opacity:1}.hw-ai .sp-spark svg{width:12px;height:12px}
@property --type{syntax:'<percentage>';inherits:false;initial-value:0%}
.hw-ai-ask{align-self:flex-end;max-width:92%;padding:var(--s-2) var(--s-3);border-radius:var(--r-control) var(--r-control) 4px var(--r-control);background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-14);line-height:1.4}
.hw-ai-ask span{--type:0%;-webkit-mask-image:linear-gradient(90deg,#000 var(--type),transparent calc(var(--type) + 6%));mask-image:linear-gradient(90deg,#000 var(--type),transparent calc(var(--type) + 6%));transition:--type 1.4s steps(30) 1.4s;display:block}
.is-in .hw-ai-ask span{--type:110%}
.hw-ai ol{display:flex;flex-direction:column;gap:6px}
.hw-ai li{display:grid;grid-template-columns:1fr auto;gap:2px var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--c-subtle);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .45s var(--ease);transition-delay:calc(3.1s + var(--r) * 420ms)}
.is-in .hw-ai li{opacity:1;transform:none}
.hw-ai li b{font-size:var(--fs-12);font-weight:650;color:var(--c-primary)}
.hw-ai li span{grid-column:1;font-size:var(--fs-12);color:var(--c-text);line-height:1.35}
.hw-ai li em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:var(--fs-12);font-weight:600;padding:2px 8px;border-radius:999px;background:var(--c-surface);color:var(--c-muted)}
.hw-ai li.ok em{background:var(--c-ok-soft);color:var(--c-ok)}.hw-ai li.warn em{background:var(--c-warn-soft);color:var(--c-warn)}
.hw-ai-foot{display:flex;align-items:center;gap:6px;margin-top:auto;font-size:var(--fs-12);color:var(--c-muted);opacity:0;transition:opacity .4s 5.4s}
.is-in .hw-ai-foot{opacity:1}
.hw-ai-foot svg{width:14px;height:14px;color:var(--c-primary)}

/* ---------- AI-native ---------- */
.h-ai{background:linear-gradient(var(--c-bg),color-mix(in srgb,var(--c-accent) 5%,var(--c-bg)) 30%,var(--c-bg))}
.an-arch{display:grid;grid-template-columns:1fr 120px 1.3fr;grid-template-rows:auto auto;gap:var(--s-4) var(--s-5);align-items:center;padding:var(--s-6);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line)}
.an-col .sp-label{margin-bottom:var(--s-3)}
.an-mods{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.an-mods li{padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--c-subtle);font-size:var(--fs-14);font-weight:500;color:var(--c-text);position:relative;opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .45s var(--ease);transition-delay:calc(.2s + var(--r) * 70ms)}
.an-mods li::after{content:"";position:absolute;right:8px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--c-accent)}
.an-bus{position:relative;align-self:stretch;display:grid;place-items:center}
.an-bus i{position:absolute;top:10%;bottom:10%;left:50%;width:3px;margin-left:-1.5px;border-radius:2px;background:linear-gradient(var(--c-primary),var(--c-accent));transform:scaleY(0);transform-origin:top;transition:transform 1s var(--ease) .8s}
.an-bus span{position:relative;z-index:1;padding:6px 12px;border-radius:999px;background:var(--grad-brand);color:#fff;font-size:var(--fs-12);font-weight:650;opacity:0;transition:opacity .4s 1.2s}
.an-surfaces{display:flex;flex-direction:column;gap:var(--s-2)}
.an-surfaces li{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border-radius:var(--r-control);box-shadow:inset 0 0 0 1px var(--c-line);opacity:0;transform:translateX(8px);transition:opacity .35s,transform .45s var(--ease);transition-delay:calc(1.4s + var(--r) * 160ms)}
.an-surfaces b{font-size:var(--fs-16);font-weight:600;color:var(--c-text)}
.an-surfaces span{font-size:var(--fs-14);color:var(--c-muted);line-height:1.45}
.an-gate{grid-column:1/-1;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);background:var(--c-warn-soft);opacity:0;transition:opacity .5s 2.1s}
.an-gate span{color:var(--c-warn)}.an-gate svg{width:18px;height:18px}
.an-gate b{font-size:var(--fs-14);font-weight:650;color:var(--c-text)}
.an-gate p{font-size:var(--fs-14);color:var(--c-muted)}
.is-in.an-arch .an-mods li,.is-in.an-arch .an-surfaces li{opacity:1;transform:none}
.is-in.an-arch .an-bus i{transform:none}
.is-in.an-arch .an-bus span,.is-in.an-arch .an-gate{opacity:1}
.an-facts{display:grid;grid-template-columns:repeat(4,1fr);margin:var(--s-6) 0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.an-facts>div{padding:var(--s-5) var(--s-5) var(--s-5) 0}
.an-facts>div+div{padding-left:var(--s-5);border-left:1px solid var(--c-line)}
.an-facts dt{font-size:var(--fs-32);font-weight:650;letter-spacing:-.03em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.an-facts dd{margin:var(--s-1) 0 0;font-size:var(--fs-14);color:var(--c-muted)}
.an-case{display:grid;grid-template-columns:1fr 64px 1.3fr;align-items:center;gap:var(--s-4);padding:var(--s-6);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line);animation:rl-in .5s var(--ease)}
.an-in,.an-out{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-card);background:var(--c-subtle);height:100%;box-sizing:border-box}
.an-out{background:color-mix(in srgb,var(--c-accent) 8%,var(--c-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 30%,transparent)}
.an-in p,.an-out p{font-size:var(--fs-16);color:var(--c-text);line-height:1.5}
.an-out em{align-self:flex-start;font-style:normal;font-size:var(--fs-12);font-weight:600;padding:3px 9px;border-radius:999px;background:var(--c-warn-soft);color:var(--c-warn)}
.an-arrow{display:grid;place-items:center}
.an-arrow .sp-spark{width:44px;height:44px;opacity:1;animation:an-pop .6s var(--ease-spring) .2s both}
.an-arrow .sp-spark svg{width:20px;height:20px}
@keyframes an-pop{from{transform:scale(.4) rotate(-90deg);opacity:0}to{transform:none;opacity:1}}
@media (max-width:1000px){.an-arch{grid-template-columns:1fr}.an-bus{height:48px}.an-bus i{top:0;bottom:0}.an-facts{grid-template-columns:1fr 1fr}.an-facts>div:nth-child(3){padding-left:0;border-left:0}.an-facts>div:nth-child(n+3){border-top:1px solid var(--c-line)}}
@media (max-width:760px){.an-case{grid-template-columns:1fr;padding:var(--s-5)}.an-arrow{transform:rotate(90deg)}}


/* ---------- What the name means ---------- */
.nm-word{font-weight:700;color:var(--c-primary)}
.h-name h2{font-size:clamp(var(--fs-24),2.6vw,var(--fs-32))}
.nm-grid{display:grid;grid-template-columns:repeat(4,1fr);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line);overflow:hidden}
.nm{position:relative;display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-6) var(--s-5) var(--s-5);overflow:hidden;transition:background .25s}
.nm+.nm{border-left:1px solid var(--c-line)}
.nm:hover{background:var(--c-subtle)}
.nm-glyph{position:absolute;right:-8px;top:-28px;font-size:160px;font-weight:800;line-height:1;color:var(--c-primary);opacity:.07;transition:opacity .3s,transform .5s var(--ease)}
.nm:hover .nm-glyph{opacity:.14;transform:translateY(6px)}
.nm h3{font-size:var(--fs-24);letter-spacing:-.02em}
.nm h3 b{color:var(--c-primary);font-weight:800}
.nm-vi{font-size:var(--fs-14);font-weight:600;color:var(--c-muted)}
.nm-desc{margin-top:var(--s-2);font-size:var(--fs-16);color:var(--c-text);line-height:1.55}
.nm ul{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--c-line)}
.nm li{display:flex;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-muted);line-height:1.45}
.nm li svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--c-ok)}
.nm-note{margin-top:var(--s-4);text-align:center;font-size:var(--fs-14);color:var(--c-muted)}
@media (max-width:1000px){.nm-grid{grid-template-columns:1fr 1fr}.nm:nth-child(3){border-left:0}.nm:nth-child(n+3){border-top:1px solid var(--c-line)}}
@media (max-width:760px){.nm-grid{grid-template-columns:1fr}.nm+.nm{border-left:0;border-top:1px solid var(--c-line)}}


/* ---------- Core modules: eDocs, SCM, HCM ---------- */
.cm-list{display:flex;flex-direction:column;gap:var(--s-9)}
.cm{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:var(--s-8);align-items:center}
.cm-flip .cm-copy{order:2}
.cm-tag{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);font-weight:600;color:var(--c-muted)}
.cm-copy h3{margin-top:var(--s-3);font-size:clamp(var(--fs-24),2.6vw,var(--fs-32));line-height:1.18;letter-spacing:-.03em}
.cm-copy>p:not(.cm-tag){margin-top:var(--s-4);font-size:var(--fs-18);color:var(--c-muted);line-height:1.6}
.cm-copy ul{display:flex;flex-direction:column;gap:var(--s-3);margin:var(--s-5) 0}
.cm-copy li{display:flex;gap:var(--s-3);font-size:var(--fs-16);color:var(--c-text);line-height:1.5}
.cm-copy li svg{flex:none;width:20px;height:20px;padding:2px;margin-top:1px;border-radius:50%;background:var(--c-ok-soft);color:var(--c-ok)}
.cm-vis{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-5);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:0 2px 4px #0b17300a,0 30px 70px -35px color-mix(in srgb,var(--c-primary) 40%,transparent),inset 0 0 0 1px var(--c-line)}
.cm-vis-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);padding-bottom:var(--s-3);margin-bottom:var(--s-1);border-bottom:1px solid var(--c-line)}
.cm-vis-head b{font-size:var(--fs-16);font-weight:650}
.cm-vis-head span{font-size:var(--fs-12);color:var(--c-muted);text-align:right}
.cm-vis>*:not(.cm-vis-head),.cm-revs li,.cm-board li,.cm-week tbody tr{opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s var(--ease);transition-delay:calc(.2s + var(--r,0) * 160ms)}
.cm-revs,.cm-board,.cm-week{opacity:1!important;transform:none!important}
.is-in .cm-vis>*,.is-in .cm-revs li,.is-in .cm-board li,.is-in .cm-week tbody tr{opacity:1;transform:none}
.cm-revs{display:flex;flex-direction:column;gap:6px}
.cm-revs li{display:grid;grid-template-columns:64px 1fr;align-items:center;padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--c-subtle);font-size:var(--fs-14)}
.cm-revs li b{font-weight:650}
.cm-revs li.old{color:var(--c-muted)}.cm-revs li.old b,.cm-revs li.old span{text-decoration:line-through}
.cm-revs li.ok{background:var(--c-ok-soft)}.cm-revs li.ok span{color:var(--c-ok);font-weight:600}
.cm-revs li.draft{box-shadow:inset 0 0 0 1px var(--c-line);background:none;color:var(--c-muted)}
.cm-row{display:flex;gap:var(--s-3);align-items:baseline;padding:var(--s-2) var(--s-3);border-radius:var(--r-control);font-size:var(--fs-14);color:var(--c-text)}
.cm-row span{flex:none;font-weight:650;min-width:64px}
.cm-row.ok{background:var(--c-primary-soft)}.cm-row.warn{background:var(--c-warn-soft)}
.cm-event{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-14)}
.cm-chip{padding:3px 9px;border-radius:999px;font-size:var(--fs-12);font-weight:600}
.cm-chip.ok{background:var(--c-ok-soft);color:var(--c-ok)}
.cm-shift{display:flex;align-items:baseline;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);background:var(--c-subtle)}
.cm-shift span{flex:1;font-size:var(--fs-14);color:var(--c-muted)}
.cm-shift s{font-size:var(--fs-18);color:var(--c-muted)}
.cm-shift b{font-size:var(--fs-24);font-weight:650;color:var(--c-primary)}
.cm-notify{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);box-shadow:inset 0 0 0 1.5px var(--c-primary)}
.cm-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-14)}
.cm-notify div{flex:1;display:flex;flex-direction:column;gap:2px}
.cm-notify b{font-size:var(--fs-14);font-weight:650}
.cm-notify div span{font-size:var(--fs-14);color:var(--c-muted)}
.cm-notify em{font-style:normal;font-size:var(--fs-12);font-weight:600;padding:3px 9px;border-radius:999px;background:var(--c-ok-soft);color:var(--c-ok)}
.cm-board{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);margin-top:var(--s-2)}
.cm-board li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s-3) var(--s-2);border-radius:var(--r-control);background:var(--c-subtle);text-align:center}
.cm-board b{font-size:var(--fs-24);font-weight:650;color:var(--c-text)}
.cm-board span{font-size:var(--fs-12);color:var(--c-muted)}
.cm-board li.danger b{color:var(--c-danger)}.cm-board li.warn b{color:var(--c-warn)}.cm-board li.ok b{color:var(--c-ok)}
.cm-week{width:100%;border-collapse:separate;border-spacing:4px;font-size:var(--fs-14)}
.cm-week th{font-size:var(--fs-12);font-weight:600;color:var(--c-muted);text-align:center}
.cm-week td{text-align:center}
.cm-week td:first-child{text-align:left;padding-right:var(--s-2)}
.cm-week td b{display:block;font-size:var(--fs-14);font-weight:600;white-space:nowrap}
.cm-week td span{font-size:var(--fs-12);color:var(--c-muted);white-space:nowrap}
.cm-week i{display:block;height:22px;border-radius:6px}
.cm-on{background:color-mix(in srgb,var(--c-primary) 55%,var(--c-surface))}
.cm-on.lead{background:var(--c-primary)}
.cm-gap{display:grid!important;place-items:center;background:var(--c-warn-soft);color:var(--c-warn);font-style:normal;font-weight:700;font-size:var(--fs-12)}
.mg-core{align-self:flex-start;margin-bottom:2px;padding:1px 8px;border-radius:var(--r-chip,6px);background:var(--c-primary-soft);color:var(--c-primary);font-style:normal;font-size:var(--fs-12);font-weight:650;letter-spacing:.02em}
@media (max-width:1000px){.cm{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}.cm-flip .cm-copy{order:0}}
@media (max-width:560px){.cm-week{border-spacing:2px}.cm-week td span{white-space:normal}.cm-week i{height:18px;border-radius:4px}}
@media (max-width:760px){.cm-list{gap:var(--s-8)}.cm-vis{padding:var(--s-4)}.cm-board{grid-template-columns:1fr 1fr}}

/* ---------- Shared section rhythm ---------- */
.h-section{padding:calc(var(--s-9) + var(--s-4)) 0}
.h-head{max-width:720px;margin:0 auto var(--s-8);text-align:center}
.h-head .h-eyebrow{margin-bottom:var(--s-3)}
.h-head h2{font-size:clamp(var(--fs-32),3.6vw,var(--fs-44));line-height:1.12;text-wrap:balance}
.h-head>p:last-child{margin-top:var(--s-4);font-size:var(--fs-18);color:var(--c-muted);text-wrap:pretty}
:where(.h-section) h3{font-size:var(--fs-24);line-height:1.25}
:where(.h-section) p{font-size:var(--fs-16);line-height:1.65;color:var(--c-muted)}



/* ---------- 3. Story ---------- */
.h-story{padding-top:var(--s-9)}
.h-story .h-head{margin-bottom:var(--s-6)}
.h-story{background:linear-gradient(var(--c-bg),var(--c-subtle) 12%,var(--c-subtle) 88%,var(--c-bg))}
.st{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-9);align-items:start}
.st-step{min-height:76vh;display:flex;align-items:center}
.st-step:first-child{min-height:60vh;align-items:flex-start;padding-top:var(--s-5)}
.st-step:last-child{min-height:50vh;align-items:flex-start;padding-top:6vh}
.st-copy{max-width:440px}
.st-n{font-size:var(--fs-14);font-weight:650;color:var(--c-muted);font-variant-numeric:tabular-nums}
.h-kicker{margin-top:var(--s-2);font-size:var(--fs-14);font-weight:600;color:var(--c-primary);letter-spacing:.02em}
.st-copy h3{margin-top:var(--s-2);font-size:var(--fs-32);letter-spacing:-.03em;line-height:1.15}
.st-copy>p:not(.h-kicker){margin-top:var(--s-4);font-size:var(--fs-16)}
.st-facts{margin-top:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2)}
.st-facts li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-text)}
.st-facts svg{flex:none;width:18px;height:18px;padding:2px;border-radius:50%;background:var(--c-ok-soft);color:var(--c-ok)}
.st-mobile{display:none}
.st-sticky{position:sticky;top:max(92px,calc(50vh - 300px));display:flex;flex-direction:column;gap:var(--s-4);margin-top:0}
.st-rail{position:relative;display:flex;justify-content:space-between;align-items:center;margin:0 var(--s-4)}
.st-rail::before,.st-rail i{content:"";position:absolute;left:12px;right:12px;top:50%;height:2px;margin-top:-1px;background:var(--c-line)}
.st-rail i{background:var(--c-primary);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .2s linear}
.st-rail b{position:relative;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--c-surface);box-shadow:inset 0 0 0 1.5px var(--c-line);font-size:var(--fs-12);font-weight:650;color:var(--c-muted);transition:background .3s,color .3s,box-shadow .3s,transform .4s var(--ease-spring)}
.st-rail b.on{background:var(--c-primary);color:var(--c-on-primary);box-shadow:0 0 0 4px var(--c-primary-soft);transform:scale(1.1)}

/* The panel: one app window, three states. */
.sp{border-radius:var(--r-panel);background:var(--c-surface);box-shadow:0 1px 2px #0b17300d,0 30px 80px -30px color-mix(in srgb,var(--c-primary) 35%,transparent),inset 0 0 0 1px var(--c-line);overflow:hidden}
.sp-bar{display:flex;align-items:center;gap:var(--s-3);height:48px;padding:0 var(--s-5);border-bottom:1px solid var(--c-line);background:var(--c-subtle)}
.sp-bar b{flex:1;font-size:var(--fs-14);font-weight:600;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-dots{display:flex;gap:6px}.sp-dots i{width:10px;height:10px;border-radius:50%;background:var(--c-line)}
.sp-live{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);font-weight:600;color:var(--c-ok)}
.sp-live i{width:7px;height:7px;border-radius:50%;background:var(--c-ok)}
.sp-body{position:relative;height:500px}
.sp-layer{position:absolute;inset:0;padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4);opacity:0;visibility:hidden;transform:translateY(26px) scale(.985);transition:opacity .5s var(--ease),transform .7s var(--ease),visibility 0s .7s}
.sp-layer.on{opacity:1;visibility:visible;transform:none;transition:opacity .6s var(--ease) .1s,transform .8s var(--ease) .1s,visibility 0s}
.sp-single .sp-body{height:auto}
.sp-single .sp-layer{position:relative;inset:auto}
.sp-label{font-size:var(--fs-12);font-weight:600;color:var(--c-muted);text-transform:uppercase;letter-spacing:.06em}
.sp h4{font-size:var(--fs-18);font-weight:650;margin-top:2px}
.sp-sub{font-size:var(--fs-14);color:var(--c-muted);margin-top:2px}

.sp-see-top{display:flex;gap:var(--s-5);align-items:center}
.sp-ring{flex:none;width:88px;height:88px}
.sp-ring circle{fill:none;stroke:var(--c-line);stroke-width:8;transform:rotate(-90deg);transform-origin:center}
.sp-ring .sp-ring-fill{stroke:var(--c-ok);stroke-linecap:round;stroke-dasharray:251.3;stroke-dashoffset:251.3;transition:stroke-dashoffset 1.4s var(--ease) .3s}
.on .sp-ring-fill{stroke-dashoffset:calc(251.3 * (1 - var(--v)))}
.sp-ring text{font:650 var(--fs-18) var(--font);fill:var(--c-text)}
.sp-conds{display:grid;grid-template-columns:1fr 1fr;gap:6px var(--s-3)}
.sp-conds li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-text);padding:6px 8px;border-radius:8px;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .45s var(--ease);transition-delay:calc(.35s + var(--r) * 70ms)}
.on .sp-conds li{opacity:1;transform:none}
.sp-conds li.is-warn{background:var(--c-warn-soft);font-weight:600}
.sp-conds li.is-wait{color:var(--c-muted)}
.sp-alert{margin-top:auto;display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);border-radius:var(--r-control);background:var(--c-primary-soft);opacity:0;transform:translateY(10px);transition:opacity .5s 1.3s,transform .6s var(--ease) 1.3s}
.on .sp-alert{opacity:1;transform:none}
.sp-alert>span{flex:none;color:var(--c-primary)}.sp-alert svg{width:20px;height:20px}
.sp-alert p{font-size:var(--fs-14);color:var(--c-text);line-height:1.5}

.sp-q{align-self:flex-end;max-width:80%;padding:var(--s-3) var(--s-4);border-radius:var(--r-card) var(--r-card) 4px var(--r-card);background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-16);opacity:0;transform:translateY(10px) scale(.96);transform-origin:right bottom;transition:opacity .4s .2s,transform .5s var(--ease-spring) .2s}
.on .sp-q{opacity:1;transform:none}
.sp-a{display:flex;gap:var(--s-3);align-items:flex-start}
.sp-spark{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--c-primary);color:#fff;opacity:0;transition:opacity .3s .7s}
.on .sp-spark{opacity:1}
.sp-spark svg{width:16px;height:16px}
.sp-a p{font-size:var(--fs-16);color:var(--c-text);line-height:1.6}
.sp-a sup{display:inline-grid;place-items:center;min-width:16px;height:16px;margin:0 2px;border-radius:4px;background:var(--c-primary-soft);color:var(--c-primary);font-size:var(--fs-12);font-weight:650;vertical-align:2px}
@property --m{syntax:'<percentage>';inherits:false;initial-value:0%}
.sp-type{--m:0%;-webkit-mask-image:linear-gradient(180deg,#000 var(--m),transparent calc(var(--m) + 18%));mask-image:linear-gradient(180deg,#000 var(--m),transparent calc(var(--m) + 18%));transition:--m 1.6s steps(24) .8s}
.on .sp-type{--m:100%}
.sp-graph{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4)}
.sp-graph li{position:relative;display:flex;flex-direction:column;gap:2px;padding:var(--s-3);border-radius:var(--r-control);background:var(--c-subtle);box-shadow:inset 0 0 0 1px var(--c-line);opacity:0;transform:translateY(12px);transition:opacity .4s,transform .6s var(--ease-spring);transition-delay:calc(1.8s + var(--r) * 180ms)}
.sp-graph li+li::before{content:"";position:absolute;right:100%;top:50%;width:var(--s-4);height:2px;background:var(--c-primary);transform:scaleX(0);transform-origin:left;transition:transform .3s;transition-delay:calc(1.9s + var(--r) * 180ms)}
.on .sp-graph li{opacity:1;transform:none}
.on .sp-graph li+li::before{transform:scaleX(1)}
.sp-kind{font-size:var(--fs-12);color:var(--c-muted)}
.sp-graph b{font-size:var(--fs-14);font-weight:650;color:var(--c-text);font-variant-numeric:tabular-nums}
.sp-meta{font-size:var(--fs-12);font-weight:600;color:var(--c-muted)}
.sp-meta.warn{color:var(--c-warn)}
.sp-propose{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-control);background:var(--c-subtle);box-shadow:inset 0 0 0 1px var(--c-line);opacity:0;transform:translateY(10px);transition:opacity .4s 2.7s,transform .6s var(--ease) 2.7s}
.on .sp-propose{opacity:1;transform:none}
.sp-propose .sp-spark{width:28px;height:28px;opacity:1;animation:none}
.sp-propose>div{flex:1;display:flex;flex-direction:column;gap:2px}
.sp-propose b{font-size:var(--fs-14);font-weight:600;color:var(--c-text);line-height:1.35}
.sp-propose span{font-size:var(--fs-12);color:var(--c-muted)}
.sp-propose em{flex:none;font-style:normal;padding:4px 10px;border-radius:999px;background:var(--c-warn-soft);color:var(--c-warn);font-size:var(--fs-12);font-weight:600}
.sp-foot{margin-top:auto;font-size:var(--fs-14);color:var(--c-muted)}

.sp-kpis{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.sp-kpis>div{display:flex;flex-direction:column;gap:4px;padding:var(--s-4);border-radius:var(--r-control);background:var(--c-subtle);box-shadow:inset 0 0 0 1px var(--c-line);opacity:0;transform:translateY(10px);transition:opacity .4s .25s,transform .6s var(--ease) .25s}
.sp-kpis>div+div{transition-delay:.4s}
.on .sp-kpis>div{opacity:1;transform:none}
.sp-kpis b{font-size:var(--fs-24);font-weight:650;color:var(--c-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sp-kpis b i{font-style:normal;color:var(--c-muted);font-weight:400}
.sp-kpis em{font-style:normal;font-size:var(--fs-14);font-weight:600;color:var(--c-primary)}
.sp-kpis em.warn{color:var(--c-warn)}
.sp-chart{position:relative}
.sp-chart svg{display:block;width:100%;height:150px;overflow:visible}
.sp-grid{fill:none;stroke:var(--c-line);stroke-width:1;vector-effect:non-scaling-stroke}
.sp-gap{fill:var(--c-warn-soft);opacity:0;transition:opacity .6s 1.6s}
.on .sp-gap{opacity:1}
.sp-base,.sp-fore{fill:none;vector-effect:non-scaling-stroke;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 1.6s var(--ease)}
.sp-base{stroke:var(--c-muted);stroke-width:2;transition-delay:.4s}
.sp-fore{stroke:var(--c-primary);stroke-width:3;stroke-linecap:round;transition-delay:.9s}
.on :is(.sp-base,.sp-fore){stroke-dashoffset:0}
.on .sp-base{stroke-dasharray:4 5;transition:none}
.sp-today{stroke:var(--c-accent);stroke-width:1.5;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}
.sp-legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-3);font-size:var(--fs-12);color:var(--c-muted)}
.sp-legend span{display:inline-flex;align-items:center;gap:6px}
.sp-legend i{width:16px;border-top:2px dashed var(--c-muted)}
.sp-legend i.fore{border-top:3px solid var(--c-primary)}
.sp-today-l{color:var(--c-accent);font-weight:600}
.sp-cash{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);align-items:end;height:90px;margin-top:auto}
.sp-cash div{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.sp-cash i{width:60%;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--c-primary) 30%,var(--c-surface));height:calc(var(--b) * 1%);transition:height 1s var(--ease-spring),background .4s;transition-delay:calc(1.4s + var(--r) * 80ms)}
.on .sp-cash i{height:calc(var(--a) * 1%)}
.on .sp-cash div:nth-child(2) i{background:var(--c-warn)}
.on .sp-cash div:nth-child(3) i{background:var(--c-primary)}
.sp-cash span{font-size:var(--fs-12);color:var(--c-muted)}

/* ---------- 4. Bento ---------- */
.bt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.bt{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-5);min-height:320px;padding:var(--s-6);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);overflow:hidden;transition:transform .5s var(--ease),box-shadow .4s}
.bt::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--c-primary);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s}
.bt:hover{transform:translateY(-4px);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line)}
.bt:hover::before{opacity:1}
.bt-wide{grid-column:span 2;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:var(--s-6)}
.bt-tag{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--c-primary-soft);color:var(--c-primary);font-size:var(--fs-12);font-weight:650}
.bt h3{margin-top:var(--s-3);font-size:var(--fs-18);line-height:1.3}
.bt-copy p{margin-top:var(--s-2);font-size:var(--fs-14)}

.bt-gantt{position:relative;display:flex;flex-direction:column;gap:10px;padding:var(--s-4);border-radius:var(--r-card);background:var(--c-subtle)}
.bt-gantt-head{display:grid;grid-template-columns:110px repeat(5,1fr);font-size:var(--fs-12);color:var(--c-muted)}
.bt-gantt-head span:first-child{grid-column:2}
.bt-row{display:grid;grid-template-columns:110px 1fr;align-items:center;font-size:var(--fs-12);color:var(--c-text)}
.bt-row div{position:relative;height:14px}
.bt-row i{position:absolute;top:0;bottom:0;left:var(--s);width:var(--w);border-radius:5px;background:color-mix(in srgb,var(--c-primary) 60%,var(--c-surface));transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease);transition-delay:calc(.3s + var(--r) * 110ms)}
.bt-row i.warn{background:var(--c-warn)}
.bt-row i.hold{background:repeating-linear-gradient(135deg,var(--c-warn-soft) 0 5px,transparent 5px 10px);box-shadow:inset 0 0 0 1.5px var(--c-warn)}
.is-in .bt-row i{transform:none}
.bt-now{position:absolute;top:40px;bottom:58px;left:calc(var(--s-4) + 110px);width:2px;background:var(--c-accent);transform:translateX(0);transition:transform 1.6s var(--ease) .6s}
.bt-gantt{container-type:inline-size}
.is-in .bt-now{transform:translateX(calc((100cqw - 110px - 2 * var(--s-4)) * .36))}
.bt-now em{position:absolute;bottom:-22px;left:-20px;font-style:normal;font-size:var(--fs-12);font-weight:600;color:var(--c-accent);white-space:nowrap}

.bt-legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--c-line);font-size:var(--fs-12);color:var(--c-muted)}
.bt-legend span{display:inline-flex;align-items:center;gap:6px}
.bt-legend i{width:14px;height:8px;border-radius:3px;background:color-mix(in srgb,var(--c-primary) 60%,var(--c-surface))}
.bt-legend i.warn{background:var(--c-warn)}
.bt-legend i.hold{background:repeating-linear-gradient(135deg,var(--c-warn-soft) 0 3px,transparent 3px 6px);box-shadow:inset 0 0 0 1.5px var(--c-warn)}
.bt-crew{display:flex;flex-direction:column;gap:8px}
.bt-big{display:flex;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-2)}
.bt-big strong{font-size:var(--fs-44);font-weight:650;letter-spacing:-.04em;color:var(--c-text);font-variant-numeric:tabular-nums}
.bt-big span{font-size:var(--fs-14);color:var(--c-muted)}
.bt-crew>div{display:grid;grid-template-columns:84px 1fr 28px;align-items:center;gap:var(--s-2);font-size:var(--fs-12);color:var(--c-muted)}
.bt-crew>div i{height:8px;border-radius:4px;background:var(--c-primary);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease);transition-delay:calc(.4s + var(--r) * 120ms)}
.is-in .bt-crew>div i{transform:scaleX(var(--v))}
.bt-crew b{font-size:var(--fs-12);color:var(--c-text);text-align:right;font-variant-numeric:tabular-nums}

.bt-docs{display:flex;gap:var(--s-4);align-items:center}
.bt-sheet{position:relative;flex:1}
.bt-sheet svg{display:block;width:100%;height:auto}
.bt-sheet path{fill:none;stroke:var(--c-muted);stroke-width:1;opacity:.5}
.bt-sheet .bt-sheet-mark{fill:var(--c-primary-soft);stroke:var(--c-primary);opacity:1;stroke-dasharray:4 3}
.bt-stamp{position:absolute;right:-4px;bottom:6px;padding:4px 10px;border-radius:6px;border:2px solid var(--c-ok);color:var(--c-ok);background:var(--c-surface);font-size:var(--fs-12);font-weight:700;transform:rotate(-8deg) scale(1.8);opacity:0;transition:transform .5s var(--ease-spring) 1s,opacity .2s 1s}
.is-in .bt-stamp{transform:rotate(-8deg);opacity:1}
.bt-docs ul{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-12);font-weight:600;color:var(--c-text)}
.bt-docs li{padding:3px 8px;border-radius:6px;background:var(--c-ok-soft);color:var(--c-ok)}
.bt-docs li.old{background:none;color:var(--c-muted);text-decoration:line-through}

.bt-map{position:relative;height:150px;border-radius:var(--r-card);background:var(--c-subtle);overflow:hidden}
.bt-map svg{position:absolute;inset:0;width:100%;height:100%}
.bt-map-road{fill:none;stroke:var(--c-line);stroke-width:8;stroke-linecap:round}
.bt-map-link{fill:none;stroke:var(--c-primary);stroke-width:1.5;stroke-dasharray:4 4;opacity:0;transition:opacity .6s 1.2s}
.is-in .bt-map-link{opacity:.8}
.bt-pin{position:absolute;left:var(--x);top:var(--y);display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%) scale(0);transition:transform .5s var(--ease-spring);transition-delay:calc(.4s + var(--r) * 200ms)}
.is-in .bt-pin{transform:translate(-50%,-50%)}
.bt-pin i{width:12px;height:12px;border-radius:50%;background:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-soft)}
.bt-pin b{margin-top:4px;font-size:var(--fs-12);font-weight:650;color:var(--c-text);white-space:nowrap}
.bt-pin em{font-style:normal;font-size:var(--fs-12);color:var(--c-muted);white-space:nowrap}



/* Module tiles: spec list and the four new visuals */
.bt-spec{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-4) 0 0;padding-top:var(--s-4);border-top:1px solid var(--c-line)}
.bt-spec>div{display:grid;grid-template-columns:84px 1fr;gap:var(--s-3)}
.bt-spec dt{font-size:var(--fs-12);font-weight:600;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;padding-top:2px}
.bt-spec dd{margin:0;font-size:var(--fs-14);color:var(--c-text);line-height:1.45}
.bt-wide .bt-copy{align-self:start}
.bt-wo{display:flex;flex-direction:column;gap:var(--s-2)}
.bt-wo li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-control);background:var(--c-subtle);font-size:var(--fs-14);opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .6s var(--ease);transition-delay:calc(.3s + var(--r) * 120ms)}
.is-in .bt-wo li{opacity:1;transform:none}
.bt-wo b{font-weight:650;font-variant-numeric:tabular-nums}
.bt-wo span{color:var(--c-muted)}
.bt-wo em{font-style:normal;font-size:var(--fs-12);font-weight:600;padding:3px 8px;border-radius:999px;background:var(--c-surface);color:var(--c-muted)}
.bt-wo em.ok{background:var(--c-ok-soft);color:var(--c-ok)}
.bt-wo em.warn{background:var(--c-warn-soft);color:var(--c-warn)}
.bt-po{display:flex;flex-direction:column;gap:var(--s-3)}
.bt-po-head{display:flex;justify-content:space-between;font-size:var(--fs-14)}
.bt-po-head span{font-weight:650;color:var(--c-warn);font-variant-numeric:tabular-nums}
.bt-po-bar{height:10px;border-radius:5px;background:var(--c-warn-soft);overflow:hidden}
.bt-po-bar i{display:block;height:100%;border-radius:5px;background:var(--c-primary);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease) .3s}
.is-in .bt-po-bar i{transform:scaleX(var(--v))}
.bt-po ol{display:flex;flex-direction:column;gap:var(--s-2)}
.bt-po li{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-text);opacity:0;transition:opacity .4s;transition-delay:calc(.6s + var(--r) * 150ms)}
.is-in .bt-po li{opacity:1}
.bt-po li i{width:10px;height:10px;border-radius:50%;background:var(--c-ok)}
.bt-po li.warn i{background:var(--c-surface);box-shadow:inset 0 0 0 2px var(--c-warn)}
.bt-po li em{font-style:normal;font-size:var(--fs-12);color:var(--c-muted);font-variant-numeric:tabular-nums}
.bt-money{display:flex;flex-direction:column;gap:var(--s-2)}
.bt-money>div{display:grid;grid-template-columns:minmax(84px,max-content) 1fr 40px;align-items:center;gap:var(--s-2);font-size:var(--fs-12);color:var(--c-muted)}
.bt-money i{height:10px;border-radius:5px;background:color-mix(in srgb,var(--c-primary) 65%,var(--c-surface));transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease);transition-delay:calc(.3s + var(--r) * 140ms)}
.bt-money i.ok{background:var(--c-ok)}
.bt-money i.warn{background:var(--c-warn)}
.is-in .bt-money i{transform:scaleX(var(--v))}
.bt-money b{font-size:var(--fs-14);color:var(--c-text);text-align:right;font-variant-numeric:tabular-nums}
.bt-money p{margin-top:var(--s-1);font-size:var(--fs-12);color:var(--c-muted)}

/* ---------- Roles ---------- */
.rl{display:grid;grid-template-columns:240px 1fr;gap:var(--s-6);align-items:start}
.rl-tabs{display:flex;flex-direction:column;gap:4px}
.rl-tabs button{position:relative;text-align:left;padding:var(--s-3) var(--s-4);border:0;border-radius:var(--r-control);background:none;color:var(--c-muted);font:500 var(--fs-16)/1.3 var(--font);cursor:pointer;transition:background .2s,color .2s}
.rl-tabs button:hover{background:var(--c-subtle);color:var(--c-text)}
.rl-tabs button[aria-selected=true]{background:var(--c-surface);color:var(--c-text);font-weight:600;box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line)}
.rl-tabs button[aria-selected=true]::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--c-primary)}
.rl-card{display:grid;grid-template-columns:1fr 240px;gap:var(--s-6);padding:var(--s-7);border-radius:var(--r-panel);background:var(--c-surface);box-shadow:var(--shadow-card),inset 0 0 0 1px var(--c-line);animation:rl-in .5s var(--ease)}
.rl-card h3{margin-top:var(--s-2);font-size:var(--fs-24)}
.rl-tasks{margin-top:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}
.rl-tasks li{display:flex;align-items:flex-start;gap:var(--s-3);font-size:var(--fs-16);color:var(--c-text);animation:rl-in .5s var(--ease) both;animation-delay:calc(.1s + var(--r) * 80ms)}
.rl-tasks svg{flex:none;width:20px;height:20px;padding:2px;margin-top:2px;border-radius:50%;background:var(--c-ok-soft);color:var(--c-ok)}
.rl-meta{display:flex;flex-direction:column;gap:var(--s-4);margin:var(--s-6) 0 0;padding-top:var(--s-5);border-top:1px solid var(--c-line)}
.rl-meta dt{font-size:var(--fs-12);font-weight:600;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em}
.rl-meta dd{margin:var(--s-2) 0 0;font-size:var(--fs-16);color:var(--c-text);display:flex;flex-wrap:wrap;gap:var(--s-2)}
.rl-meta dd span{padding:4px 10px;border-radius:var(--r-chip);background:var(--c-subtle);box-shadow:inset 0 0 0 1px var(--c-line);font-size:var(--fs-14);font-weight:600;font-variant-numeric:tabular-nums}
.rl-side{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-5);border-radius:var(--r-card);background:var(--c-subtle);align-self:start}
.rl-side strong{font-size:var(--fs-44);font-weight:650;letter-spacing:-.03em;color:var(--c-text);line-height:1.1;font-variant-numeric:tabular-nums}
.rl-side>span:not(.sp-label){font-size:var(--fs-14);color:var(--c-muted)}
.rl-side p{display:flex;gap:var(--s-2);margin-top:var(--s-4);padding:var(--s-3);border-radius:var(--r-control);background:var(--c-warn-soft);font-size:var(--fs-14);color:var(--c-text);line-height:1.4}
.rl-side p i{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--c-warn);color:var(--c-surface)}
.rl-side p svg{width:14px;height:14px}
.rl-side em{margin-top:var(--s-3);font-style:normal;font-size:var(--fs-12);color:var(--c-muted)}
.rl-more{margin-top:var(--s-6);text-align:center}
@keyframes rl-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}



/* ---------- Values ---------- */
.h-values{padding-top:0}
.h-value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.h-value{padding:var(--s-6);border-radius:var(--r-card);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line)}
.h-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-control);background:var(--c-primary-soft);color:var(--c-primary);transition:transform .5s var(--ease-spring)}
.h-value:hover .h-icon{transform:rotate(-8deg) scale(1.08)}
.h-icon svg{width:22px;height:22px}
.h-value h3{margin-top:var(--s-5);font-size:var(--fs-18)}
.h-value p{margin-top:var(--s-2)}

/* ---------- 5. Pipeline ---------- */
.h-flow{background:var(--c-subtle)}
.pl{position:relative;padding-top:4px}
.pl-track{position:absolute;left:calc(100% / 12);right:calc(100% / 12);top:31px;height:2px;background:var(--c-line)}
.pl-track>i{position:absolute;inset:0;background:var(--grad-brand);transform-origin:left;transform:scaleX(var(--p,0))}
.pl-token{position:absolute;top:50%;left:calc(var(--p,0) * 100%);display:grid;place-items:center;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--c-surface);color:var(--c-primary);box-shadow:var(--glow),inset 0 0 0 1.5px var(--c-primary);z-index:2}
.pl-token svg{width:14px;height:14px}
.pl-nodes{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-3)}
.pl-nodes a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-1);padding:0 var(--s-2) var(--s-3);border-radius:var(--r-card)}
.pl-dot{display:grid;place-items:center;width:56px;height:56px;margin-bottom:var(--s-3);border-radius:50%;background:var(--c-surface);color:var(--c-muted);box-shadow:inset 0 0 0 1.5px var(--c-line);transition:background .4s,color .4s,box-shadow .4s,transform .5s var(--ease-spring)}
.pl-dot svg{width:22px;height:22px}
.lit .pl-dot{background:var(--c-primary);color:var(--c-on-primary);box-shadow:0 0 0 6px var(--c-primary-soft),var(--glow);transform:scale(1.06)}
.pl-n{font-size:var(--fs-12);font-weight:650;color:var(--c-muted);font-variant-numeric:tabular-nums;transition:color .4s}
.lit .pl-n{color:var(--c-primary)}
.pl-nodes strong{font-size:var(--fs-16);font-weight:650;color:var(--c-text)}
.pl-body{font-size:var(--fs-14);color:var(--c-muted);line-height:1.5}
.pl-out{margin-top:var(--s-2);padding:4px 10px;border-radius:999px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line);font-size:var(--fs-12);font-weight:600;color:var(--c-muted);opacity:.4;transform:translateY(6px);transition:opacity .4s,transform .5s var(--ease),color .4s}
.lit .pl-out{opacity:1;transform:none;color:var(--c-primary)}
.pl-nodes a:hover strong{color:var(--c-primary)}

/* ---------- 6. Trust ---------- */
.h-trust-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--s-9);align-items:start}
.h-trust .h-head{text-align:left;margin:0}
.h-trust .h-head .blue-link{margin-top:var(--s-5)}
.h-trust-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6) var(--s-5)}
.h-trust-list li{display:flex;gap:var(--s-3)}
.h-check{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c-ok-soft);color:var(--c-ok)}
.h-check svg{width:16px;height:16px}
.h-trust-list h3{font-size:var(--fs-18)}
.h-trust-list p{margin-top:var(--s-1)}

/* ---------- 7. Closing ---------- */
.h-cta{position:relative;overflow:hidden;isolation:isolate;padding:calc(var(--s-9) + var(--s-4)) 0;text-align:center;background:var(--c-ink-band);color:var(--c-on-ink)}
.h-cta::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(color-mix(in srgb,var(--c-on-ink) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--c-on-ink) 7%,transparent) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(60% 80% at 50% 50%,#000,transparent);mask-image:radial-gradient(60% 80% at 50% 50%,#000,transparent)}
.h-cta-glow{position:absolute;inset:0;z-index:-2;filter:blur(60px)}
.h-cta-glow i{position:absolute;width:420px;height:420px;border-radius:50%;opacity:.45}
.h-cta-glow i:nth-child(1){left:10%;top:-30%;background:var(--c-primary)}
.h-cta-glow i:nth-child(2){right:8%;bottom:-40%;background:var(--c-accent)}
.h-cta-glow i:nth-child(3){left:45%;top:20%;width:260px;height:260px;background:var(--c-primary);opacity:.25}
.h-cta h2{color:var(--c-on-ink);font-size:clamp(var(--fs-32),3.6vw,var(--fs-44));line-height:1.12;text-wrap:balance}
.h-cta p{max-width:560px;margin:var(--s-4) auto 0;font-size:var(--fs-18);color:var(--c-on-ink-muted)}
.h-cta .h-actions{margin-top:var(--s-6)}
.h-cta .btn-ghost{color:var(--c-on-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-on-ink) 30%,transparent)}
.h-cta .btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--c-on-ink)}
html:not([data-theme=dark]) .h-cta .btn-primary{background:#fff;color:var(--c-text);box-shadow:none}

/* ---------- Keyframes ---------- */
@keyframes h-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c-primary) 45%,transparent)}70%,100%{box-shadow:0 0 0 8px transparent}}
@keyframes hx-march{to{stroke-dashoffset:-24}}
@keyframes hx-pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@keyframes hx-shake{0%,100%{transform:none}25%{transform:rotate(-12deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-6deg)}}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .st{grid-template-columns:1fr}
  .st-sticky{display:none}
  .st-step,.st-step:first-child,.st-step:last-child{min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:var(--s-5);padding:0 0 var(--s-8)}
  .st-mobile{display:block}
  .st-copy{max-width:640px}
  .bt-grid{grid-template-columns:1fr 1fr}
  .bt-wide{grid-column:span 2}
  .rl{grid-template-columns:1fr}
  .rl-tabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter)}
  .rl-tabs button{flex:none;white-space:nowrap}
  .rl-tabs button[aria-selected=true]::before{display:none}
  .rl-card{grid-template-columns:1fr}
  .h-trust-grid{grid-template-columns:1fr;gap:var(--s-7)}
  .pl-track{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto}
  .pl-track>i{transform-origin:top;transform:scaleY(var(--p,0))}
  .pl-token{top:calc(var(--p,0) * 100%);left:50%}
  .pl-nodes{grid-template-columns:1fr;gap:var(--s-2)}
  .pl-nodes a{display:grid;grid-template-columns:56px 1fr;grid-template-rows:auto auto auto;column-gap:var(--s-4);align-items:center;text-align:left;padding:var(--s-2) 0}
  .pl-dot{grid-row:1/4;margin:0}
  .pl-n{display:none}
  .pl-out{justify-self:start;margin-top:var(--s-1)}
}
@media (max-width:760px){
  .h-hero{padding:var(--s-8) 0 var(--s-7)}
  .h-lede{font-size:var(--fs-16)}
  .hx{aspect-ratio:auto;display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-6)}
  .hx-svg{position:relative;inset:auto;height:auto;aspect-ratio:1160/440}
  .hx-grid{inset:-24px -16px auto;height:220px}
  .hx-card,.hx-tag{position:relative;inset:auto;width:auto;translate:none}
  .hx-tag{display:none}
  .hx-check{order:2}
  .hx-gate-card{order:1}
  .hx-truck{order:3}
  .h-section{padding:var(--s-9) 0}
  .h-head{margin-bottom:var(--s-7)}
  .st-copy h3{font-size:var(--fs-24)}
  .st-copy>p:not(.h-kicker){font-size:var(--fs-16)}
  .sp-layer{padding:var(--s-5)}
  .sp-conds{grid-template-columns:1fr}
  .sp-graph{grid-template-columns:1fr 1fr}
  .sp-graph li:nth-child(3)::before{display:none}
  .sp-kpis{grid-template-columns:1fr}
  .sp-cash{height:80px;margin-top:var(--s-3)}
  .bt-grid{grid-template-columns:1fr}
  .bt-wide{grid-column:auto;grid-template-columns:1fr}
  .rl-card{padding:var(--s-5)}
  .bt-spec>div{grid-template-columns:1fr;gap:2px}
  .bt{min-height:0}
  .h-value-grid{grid-template-columns:1fr}
  .h-trust-list{grid-template-columns:1fr}
  .h-cta{padding:var(--s-9) 0}
  .h-actions .btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .home *,.home *::before,.home *::after{animation:none!important;transition:none!important}
  .home [data-reveal]{opacity:1!important;transform:none!important;filter:none!important}
}

/* Mobile: keep every fact, drop decoration that does not read at this width */
@media (max-width:760px){
  .mg-scene,.erp-fig{display:none}
  .bd-types{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s-3);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) var(--s-2);scrollbar-width:none}
  .bd-type{flex:0 0 78%;scroll-snap-align:start}
  .bd-art{height:150px}.bd-art .il{height:120px}
  .h-section{padding:var(--s-8) 0}
  .erp-flow li{grid-template-columns:20px 1fr}.erp-flow em{grid-column:2;justify-self:start}.erp-flow li p{grid-column:2}
}

/* Construction evidence: a single surface, readable charts and drawing sheets. */
.ev-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:var(--fs-14);margin-bottom:16px}.ev-heading span,.ev-note{color:var(--c-muted)}
.ev-finance{padding:24px 0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.ev-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.ev-scroll:focus-visible{outline:2px solid var(--c-primary);outline-offset:3px}
.ev-chart,.ev-drawing,.ev-gantt{display:block;width:100%;height:auto;color:var(--c-text)}
.ev-chart{min-width:480px}.ev-drawing{min-width:480px}.ev-gantt{min-width:460px}
.ev-chart text,.ev-drawing text,.ev-gantt text{font-family:var(--font);font-size:var(--fs-12);fill:var(--c-muted);stroke:none}
.ev-grid{stroke:var(--c-line);fill:none}.ev-baseline{stroke:var(--c-muted);stroke-width:2;stroke-dasharray:6 5;fill:none}.ev-forecast{stroke:var(--c-primary);stroke-width:3;fill:none}.ev-point{fill:var(--c-primary)}.ev-callout{stroke:var(--c-primary);stroke-width:1;fill:none}
.ev-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--fs-12);color:var(--c-muted);margin-bottom:12px}.ev-legend span{display:flex;align-items:center;gap:8px}.ev-legend i{width:22px;border-top:2px dashed var(--c-muted)}.ev-legend i.forecast{border-top:3px solid var(--c-primary)}
.ev-note{font-size:var(--fs-12);line-height:1.6;margin:12px 0 0}.ev-cost{width:100%;min-width:440px;border-collapse:collapse;font-size:var(--fs-14);font-variant-numeric:tabular-nums}.ev-cost caption{text-align:left;margin:24px 0 12px;font-size:var(--fs-12);color:var(--c-muted)}.ev-cost td,.ev-cost th{padding:12px 8px;text-align:right;border-bottom:1px solid var(--c-line)}.ev-cost th:first-child{text-align:left}.ev-cost thead{font-size:var(--fs-12);color:var(--c-muted)}.ev-cost tfoot{font-weight:650;background:var(--c-subtle)}
.ev-axis{stroke:var(--c-muted);stroke-dasharray:6 5}.ev-revisions{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--fs-12);color:var(--c-muted);margin-top:12px}.ev-issued{color:var(--c-ok);font-weight:600}.ev-document{box-shadow:none;border:1px solid var(--c-line)}
.ev-task{fill:var(--c-primary);opacity:.85}.ev-dependency{stroke:var(--c-muted);stroke-width:1.5;fill:none}.ev-chain{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px 0;margin:0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}.ev-chain li{position:relative;font-size:var(--fs-12)}.ev-chain li:not(:last-child):after{content:'→';position:absolute;right:-10px;top:0;color:var(--c-muted)}.ev-chain b,.ev-chain span{display:block}.ev-chain span{color:var(--c-muted);margin-top:4px}.ev-week{min-width:0}.sp-plan{overflow-y:auto}.sp-plan .ev-heading{margin-bottom:8px}.erp-evidence{min-width:0}
@media(max-width:600px){.ev-finance{padding:16px 0}.ev-document{padding:16px}.ev-chain{grid-template-columns:repeat(2,1fr);gap:16px}.ev-chain li:nth-child(2):after{content:''}.sp-plan .sp-kpis{gap:12px}}

.st-sticky .sp-body{height:580px}
.st-steps,.st-step,.st-mobile,.sp,.sp-layer{min-width:0}
.st-mobile,.st-mobile .sp{width:100%;max-width:100%}
/* Shared project records: precise orthogonal connectors and document cards. */
.il-record-map{width:100%;height:auto;overflow:visible;font-family:var(--font)}
.rm-paths{stroke:var(--c-primary);stroke-width:1.4;opacity:.4;transition:opacity .6s}
.linked .rm-paths{opacity:.85}
.rm-node>rect:first-child{fill:var(--c-surface);stroke:var(--c-line);stroke-width:1;filter:drop-shadow(0 3px 5px #18326308)}
.rm-icon-bg{fill:var(--c-primary-soft);stroke:none}.rm-icon{fill:none;stroke:var(--c-primary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rm-name{font-size:13px;font-weight:600;fill:var(--c-text);letter-spacing:-.15px}.rm-ref{font-size:11px;fill:var(--c-muted);letter-spacing:.45px}
.rm-hub>rect{fill:var(--c-surface);stroke:var(--c-primary);stroke-width:1.2}.rm-hub .rm-hub-back{fill:var(--c-primary-soft);stroke:var(--c-line)}
.rm-hub text{fill:var(--c-text);font-size:14px;font-weight:600}.rm-hub .rm-meta{fill:var(--c-muted);font-size:9px;letter-spacing:1.5px;font-weight:500}
.rm-folder{fill:var(--c-primary-soft);stroke:var(--c-primary);stroke-width:1.3;stroke-linejoin:round}.rm-folder-line{fill:none;stroke:var(--c-primary);stroke-width:1.1}.rm-ports{fill:var(--c-primary);stroke:var(--c-surface);stroke-width:1.5}
@media(prefers-reduced-motion:reduce){.rm-paths{transition:none}}
/* Give the project network room and show records travelling into the hub. */
@media(min-width:901px){.gp-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr);gap:56px}.gp-figure{width:calc(100% + 16px);margin-left:-8px}}
.rm-hub .rm-folder{animation:record-receive 3.6s ease-in-out infinite}
@keyframes record-receive{0%,65%,100%{fill:var(--c-primary-soft)}78%{fill:color-mix(in srgb,var(--c-primary) 30%,transparent)}}
@media(prefers-reduced-motion:reduce){.rm-flow{display:none}.rm-hub .rm-folder{animation:none}}
.sd-sheet{display:block;width:100%;height:auto;color:var(--c-text);font-family:var(--font)}.sd-paper{fill:var(--c-surface)}.sd-sheet text{fill:currentColor;stroke:none;font-family:var(--font-body);letter-spacing:.15px}.sd-axis{stroke-dasharray:7 3 1 3;opacity:.55}.sd-section{stroke-dasharray:14 4;opacity:.5}.sd-rebar{stroke-dasharray:2 2}.sd-preview{position:relative;display:block;width:100%;border:1px solid var(--c-line);background:var(--c-surface);padding:8px;border-radius:3px;cursor:zoom-in;color:var(--c-text);text-align:left}.sd-preview>span{display:block;text-align:right;padding:12px 5px 4px;font:500 12px var(--font);color:var(--c-primary)}.sd-preview:hover{border-color:var(--c-primary)}.sd-dialog{width:min(1160px,95vw);max-width:95vw;max-height:92vh;padding:20px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-surface);color:var(--c-text)}.sd-dialog::backdrop{background:#070d20aa;backdrop-filter:blur(5px)}.sd-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:15px}.sd-dialog header button{border:1px solid var(--c-line);border-radius:8px;padding:10px 16px;background:var(--c-subtle);color:var(--c-text);cursor:pointer}.sd-full{overflow:auto}.sd-full .sd-sheet{min-width:780px}
/* Detailed construction and workflow illustrations; labels intentionally in English. */
.hi-scene,.hi-group{--hi-top:#f5f7fc;--hi-front:#dce4ef;--hi-side:#bdccdf;--hi-edge:#7f91aa;--hi-grid:#d5deed;width:100%;height:auto;display:block;overflow:visible}
[data-theme=dark] .hi-scene,[data-theme=dark] .hi-group{--hi-top:#35445b;--hi-front:#24344d;--hi-side:#192940;--hi-edge:#8398b6;--hi-grid:#40516c}
.hi-scene text{font:9px var(--font);letter-spacing:.8px;fill:var(--c-muted)}.hi-group{stroke:var(--hi-edge);stroke-width:.7;fill:none}.hi-group text{stroke:none;fill:var(--c-muted);font:9px var(--font);letter-spacing:.15px}.hi-paper{fill:var(--c-surface);filter:drop-shadow(0 4px 6px #18356309)}.hi-group .hi-bar{fill:var(--c-primary-soft);stroke:var(--c-primary);stroke-width:1}.hi-group .hi-solid{fill:var(--c-text)}.hi-group .hi-grid{stroke:var(--hi-grid)}.hi-hoist{animation:hi-lift 8s ease-in-out infinite}.hi-vehicle{animation:hi-travel 12s ease-in-out infinite}.hi-skyline{width:100%;height:100%;fill:#182b4a;stroke:#47648b;stroke-width:.7}.hi-skyline .hi-window{stroke:#85a9df;stroke-width:2;opacity:.35}.bd-art .hi-scene{max-height:260px}.bd-photo .hi-scene{max-height:210px}.mg-scene .hi-group{height:160px}
@keyframes hi-lift{50%{transform:translateY(6px)}}@keyframes hi-travel{50%{transform:translate(17px,7px)}}@media(prefers-reduced-motion:reduce){.hi-hoist,.hi-vehicle{animation:none}}
.bd-art{height:250px}.bd-art .hi-scene{height:235px;width:100%;max-width:100%;overflow:hidden}.mg-scene{height:165px}.mg-scene .hi-group{width:100%;height:160px}.bd-photo{height:155px}.bd-photo .hi-scene{height:150px;width:auto;max-width:100%}.bd-photo .hi-scene text{display:none}
@media(max-width:700px){.bd-art{height:225px}.bd-art .hi-scene{height:215px}}
[data-theme=dark] .bd-photo span{background:#101a30e6;color:#e8efff}

/* Financial overview: shared surface, prominent figures, linked records. */
.h-erp .erp-grid{grid-template-columns:1fr;gap:32px;align-items:start}
.ev-finance{padding:28px;border:1px solid var(--c-line);border-radius:20px;background:var(--c-surface);box-shadow:0 16px 48px -30px color-mix(in srgb,var(--c-primary) 30%,transparent)}
.ev-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:20px 0 28px;border-bottom:1px solid var(--c-line);margin-bottom:28px}
.ev-metrics>div+div{border-left:1px solid var(--c-line);padding-left:24px}.ev-metrics span{display:block;font-size:12px;color:var(--c-muted)}.ev-metrics b{display:block;font-size:36px;letter-spacing:-.04em;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}
.ev-finance-detail{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:start}.ev-cost caption{margin-top:0}.ev-chart{color:var(--c-primary)}
.erp-flow ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.erp-flow ol:before{top:15px;left:10px;right:10px;bottom:auto;height:1px;width:auto}.erp-flow li{display:flex;flex-direction:column;align-items:flex-start;padding:6px 0;gap:10px}.erp-flow .erp-dot{margin-bottom:8px}.erp-flow .erp-doc{display:flex;flex-direction:column;gap:4px}.erp-flow em{white-space:normal}.erp-flow li p{font-size:13px;line-height:1.6}
/* Content-height story steps avoid viewport-sized blank scroll intervals. */
@media(min-width:1001px){.st-steps{display:grid;gap:64px}.st-step,.st-step:first-child,.st-step:last-child{min-height:0;padding:0;align-items:flex-start}.st-sticky{top:96px}.st-copy{max-width:none}}
.bd-site{grid-template-columns:1fr;gap:40px}.bd-devices{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;align-items:center}.bd-tablet{padding:16px;border:8px solid var(--c-text);border-radius:28px;background:var(--c-surface);box-shadow:0 26px 60px -35px color-mix(in srgb,var(--c-primary) 45%,transparent);min-width:0}.bd-tablet-bar{display:flex;justify-content:space-between;gap:12px;padding:10px 4px 18px;border-bottom:1px solid var(--c-line);font-size:12px}.bd-tablet-bar span{font-size:10px;color:var(--c-muted)}.bd-tablet-body{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:16px;padding-top:20px;align-items:center}.bd-tablet-sheet{min-width:0}.bd-tablet-body aside{border-left:1px solid var(--c-line);padding-left:14px}.bd-tablet h4{font-size:15px;margin-top:14px}.bd-tablet p,.bd-tablet li,.bd-tablet small{font-size:11px;line-height:1.7}.bd-tablet p,.bd-tablet small{color:var(--c-muted)}.bd-tablet ul{display:grid;gap:12px;margin:20px 0;color:var(--c-ok)}.bd-tablet .tablet-pending{color:var(--c-warn)}.bd-tablet-status{display:block;background:var(--c-primary-soft);color:var(--c-primary);padding:8px;font-size:12px;border-radius:6px;margin-bottom:12px}.bd-site-copy{max-width:900px}.bd-site-copy h3{font-size:28px}
@media(max-width:1000px){.ev-finance-detail{grid-template-columns:1fr;gap:24px}.erp-flow ol{grid-template-columns:1fr}.erp-flow ol:before{display:none}.erp-flow li{display:grid;grid-template-columns:20px 1fr;gap:8px 12px}.erp-flow em,.erp-flow li p{grid-column:2}.bd-devices{grid-template-columns:1fr}.bd-tablet{max-width:760px;width:100%;margin:auto}}
@media(max-width:600px){.ev-finance{padding:16px}.ev-metrics{gap:8px}.ev-metrics>div+div{padding-left:10px}.ev-metrics b{font-size:28px}.ev-metrics span{font-size:11px}.bd-tablet{padding:10px;border-width:6px;border-radius:20px}.bd-tablet-body{grid-template-columns:1fr}.bd-tablet-body aside{border-left:0;border-top:1px solid var(--c-line);padding:14px 0 0}.bd-tablet ul{grid-template-columns:1fr 1fr;margin:12px 0}.bd-tablet-bar{flex-wrap:wrap}}
.bd-devices .bd-phone,.bd-tablet{box-sizing:border-box}.bd-devices .bd-phone{width:100%;max-width:300px}.ev-finance-detail>div{min-width:0}
