/* ============================================================
   growhigh.io — dark site
   Near-black canvas, thin wireframe isometric drawings,
   one emerald accent, mono labels.
   ============================================================ */

:root{
  /* brand palette (growhigh.io design system): white surfaces, emerald primary */
  --bg:#FFFFFF;
  --bg-raise:#F6F8F8;
  --panel:#FFFFFF;
  --panel-hi:#EEF1F1;
  --line:rgba(18,22,21,.09);
  --line-mid:rgba(18,22,21,.16);
  --line-hi:rgba(18,22,21,.3);
  --fg:#121615;
  --fg-muted:#4B5552;
  --fg-subtle:#6B7674;
  --accent:#059669;
  --accent-hi:#047857;
  --accent-deep:#047857;
  --accent-press:#065F46;
  --accent-wash:#E9FBF5;

  --font-display:"Schibsted Grotesk","Hanken Grotesk",system-ui,sans-serif;
  --font-sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Consolas,monospace;

  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px,4vw,56px);
  --maxw:1320px;
  --head-h:72px;
}

/* dark islands keep the original palette: the hero, the header while it sits on the hero,
   the footer, and every glowing stage or dark panel (custom properties inherit downwards) */
.hero,.show-stage,.gl,.dash,.ct-tile,.ix-panel,#ix-panel,.is-dark{
  --bg:#060807;
  --bg-raise:#0B0E0D;
  --panel:#101413;
  --panel-hi:#151A18;
  --line:rgba(255,255,255,.07);
  --line-mid:rgba(255,255,255,.12);
  --line-hi:rgba(255,255,255,.22);
  --fg:#F3F6F5;
  --fg-muted:#9BA5A1;
  --fg-subtle:#69736F;
  --accent:#10B981;
  --accent-hi:#34D399;
  --accent-deep:#059669;
  --accent-press:#047857;
  --accent-wash:rgba(16,185,129,.12);
  color:var(--fg);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-sans);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px;border-radius:4px}

/* faint vertical guide lines, like a drafting sheet */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(90deg,var(--line) 1px,transparent 1px) calc(50% - 440px) 0/100% 100% no-repeat,
    linear-gradient(90deg,var(--line) 1px,transparent 1px) calc(50% + 440px) 0/100% 100% no-repeat;
  background-size:1px 100%,1px 100%;
  opacity:.8;
}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);position:relative;z-index:1}

.mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.muted{color:var(--fg-muted)}
.subtle{color:var(--fg-subtle)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  padding:14px 20px;border:1px solid var(--line-hi);border-radius:4px;background:transparent;
  cursor:pointer;white-space:nowrap;
  transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease);
}
.btn:hover{border-color:var(--fg);transform:translateY(-1px)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#03130D;font-weight:600}
.btn-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi)}
.btn-ghost{border-color:var(--line-mid);color:var(--fg-muted)}
.btn-ghost:hover{color:var(--fg)}
.btn .arr{display:inline-block;transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}

/* ---------- header ---------- */
.head{
  position:fixed;top:0;left:0;right:0;z-index:50;height:var(--head-h);
  border-bottom:1px solid var(--line);
  background:rgba(6,8,7,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.head .wrap{height:100%;display:flex;align-items:center;gap:32px}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brand svg{width:26px;height:26px}
.brand b{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.02em}
.brand b span{color:var(--accent-hi)}
.head-tag{display:flex;flex-direction:column;line-height:1.5;padding-left:28px;border-left:1px solid var(--line)}
.head-tag span:last-child{color:var(--fg-subtle)}
.nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav a{color:var(--fg-muted);transition:color .2s}
.nav a:hover{color:var(--fg)}
.head-cta{display:flex;align-items:center;gap:14px;flex:none}
.head-cta .btn{padding:11px 16px}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line-mid);border-radius:4px;padding:10px 12px;cursor:pointer}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  padding-top:calc(var(--head-h) + clamp(40px,7vh,88px));
  background:
    radial-gradient(90% 70% at 72% 0%,rgba(16,185,129,.13),transparent 62%),
    linear-gradient(180deg,#0A100D 0%,#060807 78%);
}
.beam{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;filter:drop-shadow(0 0 14px rgba(110,231,183,.55)) drop-shadow(0 0 46px rgba(16,185,129,.45))}
.beam-glow{
  position:absolute;z-index:0;pointer-events:none;left:72%;top:60%;width:1100px;height:400px;
  transform:translate(-50%,-50%);mix-blend-mode:screen;filter:blur(8px);
  background:radial-gradient(closest-side,rgba(190,255,225,.62),rgba(52,211,153,.30) 26%,rgba(16,185,129,.09) 56%,transparent 74%);
}
.hero-in,.hero-dash{position:relative;z-index:2;max-width:1160px}
.chip{
  display:inline-flex;align-items:center;gap:8px;padding:7px 11px;font-size:11px;
  border:1px solid var(--line-mid);border-radius:6px;background:rgba(255,255,255,.045);color:#C9D3CF;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.hero h1{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(34px,5vw,68px);line-height:1.07;letter-spacing:-.04em;margin-top:22px;
}
.hero h1 .line{
  display:block;width:fit-content;max-width:100%;padding-bottom:.09em;
  background:linear-gradient(90deg,#7C8A84 0%,#DCE4E0 36%,#F7FBF9 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 40%,transparent 60%);
          mask-image:linear-gradient(90deg,#000 0,#000 40%,transparent 60%);
  -webkit-mask-size:250% 100%;mask-size:250% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:100% 0;mask-position:100% 0;
  animation:wipe 1.15s var(--ease) forwards;animation-delay:calc(var(--d) * .4s + .15s);
}
.hero h1 .line-acc{background-image:linear-gradient(90deg,#10B981 0%,#34D399 40%,#A7F3D0 100%)}
@keyframes wipe{to{-webkit-mask-position:0 0;mask-position:0 0}}
.hero .lede{margin-top:22px;max-width:31em;color:#AEB9B4;font-size:clamp(16px,1.25vw,19px);opacity:0;animation:rise .9s var(--ease) 1.25s forwards}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:34px}
.hero .hero-actions{opacity:0;animation:rise .9s var(--ease) 1.45s forwards}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.btn-glow{
  border-radius:8px;border:0;color:#052014;
  background:linear-gradient(180deg,#A7F3D0 0%,#34D399 55%,#10B981 100%);
  box-shadow:0 0 0 1px rgba(167,243,208,.55),0 8px 30px rgba(16,185,129,.38),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-glow:hover{background:linear-gradient(180deg,#C6F9E2 0%,#5EE0AE 55%,#1FC592 100%)}
.btn-link{font-size:16px;color:#C5CFCB;display:inline-flex;align-items:center;gap:10px;transition:color .2s}
.btn-link:hover{color:var(--fg)}
.btn-link .arr{display:inline-block;transition:transform .25s var(--ease)}
.btn-link:hover .arr{transform:translateX(4px)}

/* the product, framed in light */
.hero-dash{margin-top:clamp(40px,6.5vh,76px)}
.dash{
  position:relative;height:clamp(320px,52vh,520px);overflow:hidden;
  padding:8px 8px 0;border-radius:24px 24px 0 0;
  background:linear-gradient(180deg,rgba(214,255,236,.95) 0%,rgba(110,231,183,.6) 22%,rgba(16,185,129,.2) 70%);
  box-shadow:0 0 0 1px rgba(190,255,225,.55),0 0 46px rgba(110,231,183,.5),0 0 160px rgba(16,185,129,.42);
  opacity:0;animation:rise 1.1s var(--ease) .5s forwards;
}
.ui-sprite{position:absolute}
.dash-in{position:relative;height:100%;border-radius:17px 17px 0 0;background:#F4F7F5;overflow:hidden}

/* dummy product screen: light, like the real app. drawn at 1180px wide, scaled by js */
.ui{
  position:absolute;left:0;top:0;width:1180px;height:700px;transform-origin:0 0;
  display:grid;grid-template-columns:92px minmax(0,1fr);background:#F4F7F5;
  color:#111815;font-family:var(--font-sans);font-size:13px;line-height:1.3;
}
.ui.cam{transition:transform .9s var(--ease)}
.ui svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.ui b{font-weight:600}
.ui h4{margin:0}
.ui-rail{border-right:1px solid #E3E8E5;background:#fff;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:3px}
.ui-logo{display:block;padding:4px 0 12px}
.ui-logo svg{width:30px;height:30px;stroke-width:6}
.ui-item{width:76px;padding:8px 2px 7px;border-radius:9px;display:flex;flex-direction:column;align-items:center;gap:4px;color:#56625D;font-size:10.5px;text-align:center;line-height:1.15;transition:background .3s,color .3s}
.ui-item em{font-style:normal}
.ui-item svg{width:18px;height:18px}
.ui-item.on{background:#E4F7EE;color:#047857;font-weight:600}

.ui-body{padding:14px 20px 0 18px;min-width:0}
.ui-tabs{display:flex;align-items:center;gap:6px}
.ui-tab{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 13px;border:1px solid #DFE5E2;border-radius:8px;background:#fff;color:#27312D;font-weight:500;white-space:nowrap}
.ui-tab.on{border-color:#059669;color:#047857;box-shadow:inset 0 0 0 1px #059669}
.ui-tab b{font-family:var(--font-mono);font-size:10.5px;font-weight:500;background:#EEF2F0;border-radius:5px;padding:2px 6px;color:#4B5651}
.ui-me{margin-left:auto;display:flex;align-items:center;gap:16px}
.ui-bell{position:relative;color:#4B5651;display:block}
.ui-bell svg{width:19px;height:19px}
.ui-bell i{position:absolute;top:-7px;right:-9px;background:#EF4444;color:#fff;font-size:9px;font-style:normal;font-weight:700;border-radius:8px;padding:1px 5px}
.ui-av,.uc-av{display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#10B981,#047857);color:#fff;font-weight:700;flex:none}
.ui-av{width:32px;height:32px;font-size:12px}

.ui-split{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:14px;margin-top:12px}
.ui-panel,.ui-case{border:1px solid #DFE5E2;border-radius:14px;background:#fff;min-height:560px;box-shadow:0 1px 2px rgba(16,24,20,.04)}
.ui-head{display:flex;align-items:center;gap:14px;padding:15px 16px 12px}
.ui-head h4{font-family:var(--font-display);font-weight:600;font-size:19px;letter-spacing:-.02em;color:#0E1512}
.ui-dial{display:inline-flex;align-items:center;gap:8px;border:1px solid #A7F3D0;border-radius:20px;padding:5px 12px;color:#047857;font-size:12px;background:#ECFDF5;white-space:nowrap}
.ui-dial b{color:#064E3B}
.ui-dial i{width:7px;height:7px;border-radius:50%;background:#10B981;animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.ui-btns{margin-left:auto;display:flex;gap:8px}
.ui-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid #A7E3CB;border-radius:8px;background:#fff;color:#047857;font-weight:500;font-size:12.5px;white-space:nowrap}
.ui-btn.fill{background:#059669;border-color:#059669;color:#fff;font-weight:600}
.ui-filters{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:8px;border:1px solid #E3E8E5;border-radius:10px;background:#FAFBFA}
.ui-in{height:34px;border:1px solid #DCE2DF;border-radius:8px;background:#fff;display:inline-flex;align-items:center;gap:8px;padding:0 11px;color:#8A9590;white-space:nowrap}
.ui-in.grow{flex:1;min-width:0;overflow:hidden}
.ui-in.dashd{border-style:dashed;color:#27312D}

.ui-row{display:grid;grid-template-columns:40px minmax(0,1.5fr) 92px minmax(0,1fr) 96px 104px 84px;align-items:center;height:52px;padding:0 6px 0 0;border-top:1px solid #ECEFED;position:relative;transition:background .4s}
.ui-row > span{min-width:0;padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-row > span:first-child{display:grid;place-items:center;padding:0}
.ui-th{height:38px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6B7772;background:#F7F9F8}
.ui-cb{width:14px;height:14px;border:1.4px solid #C2CAC6;border-radius:3px;display:block;background:#fff}
.ui-who{display:flex;align-items:center;gap:10px}
.ui-ini{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:700;flex:none}
.t0{background:#FEF3C7;color:#92400E}.t1{background:#EDE9FE;color:#5B21B6}
.t2{background:#D1FAE5;color:#065F46}.t3{background:#DBEAFE;color:#1E40AF}
.ui-who div{min-width:0}
.ui-who b{display:block;color:#0E1512;overflow:hidden;text-overflow:ellipsis}
.ui-who small{display:block;color:#6B7772;font-size:11.5px;font-family:var(--font-mono)}
.ui-ics{display:flex;gap:9px;color:#7A8681}
.ui-ics svg{width:15px;height:15px}
.ui-ics .ai{color:#059669}
.c-phase{color:#27312D}
.ch{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11.5px;font-weight:500;background:#EFF2F0;color:#3F4A45;white-space:nowrap}
.ch-a{background:#FEF3C7;color:#92400E}
.ch-b{background:#DBEAFE;color:#1E40AF}
.ch-g{background:#D1FAE5;color:#065F46}
.ch-r{background:#FEE2E2;color:#991B1B}
.ch-none{color:#A3ADA8}
.ui-row.sel{background:#EFFBF5}
.ui-row.sel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#059669}
.ui-row.sel .ui-cb{background:#059669;border-color:#059669}
.ui-row.new{animation:rowIn .9s var(--ease) both}
.ui-row.new::after,.ui-row.upd::after{content:"";position:absolute;inset:0;background:rgba(16,185,129,.22);animation:flash 2.2s ease-out forwards;pointer-events:none}
@keyframes rowIn{from{height:0;opacity:0}to{height:52px;opacity:1}}
@keyframes flash{to{opacity:0}}
.ch.flash{animation:chipFlash 1.4s ease-out}
@keyframes chipFlash{0%{box-shadow:0 0 0 0 rgba(5,150,105,.85);transform:scale(1.12)}100%{box-shadow:0 0 0 10px rgba(5,150,105,0);transform:none}}
.press{transform:scale(.93);transition:transform .12s}

/* the hand that works the queue */
.ui .ui-cur{position:absolute;left:0;top:0;z-index:9;width:24px;height:24px;pointer-events:none;transform:translate(520px,430px);transition:transform .8s cubic-bezier(.3,.7,.2,1);filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
.ui .ui-cur svg{width:24px;height:24px;fill:#111815;stroke:#fff;stroke-width:1.5}
.ui-cur i{position:absolute;left:-8px;top:-8px;width:28px;height:28px;border-radius:50%;border:2px solid #059669;opacity:0}
.ui-cur.tap i{animation:tap .55s ease-out}
@keyframes tap{0%{opacity:.95;transform:scale(.3)}100%{opacity:0;transform:scale(1.7)}}

.ui-case{padding:16px;display:flex;flex-direction:column;gap:12px;transition:opacity .25s}
.ui-case.is-swapping{opacity:.35}
.uc-head{display:flex;align-items:center;gap:12px}
.uc-av{width:42px;height:42px;border-radius:11px;font-size:14px;background:linear-gradient(135deg,#3B82F6,#1D4ED8);color:#fff}
.uc-who{min-width:0;flex:1}
.uc-who b{display:block;font-family:var(--font-display);font-size:16.5px;letter-spacing:-.01em;color:#0E1512}
.uc-who small{display:flex;align-items:center;gap:6px;color:#6B7772;font-size:11.5px;font-family:var(--font-mono);margin-top:2px}
.uc-who small svg{width:12px;height:12px}
.uc-nav{font-family:var(--font-mono);font-size:10.5px;color:#6B7772;border:1px solid #DFE5E2;border-radius:6px;padding:4px 8px;white-space:nowrap}
.uc-stage{display:flex;align-items:center;gap:8px;font-size:12px;color:#6B7772;padding-bottom:12px;border-bottom:1px solid #ECEFED;white-space:nowrap}
.uc-stage > span:first-child{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.uc-stage b{color:#111815;margin-right:2px}
.uc-acts{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.uc-acts span{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 7px;border:1px solid #DCE2DF;border-radius:8px;background:#fff;font-size:10.5px;color:#27312D}
.uc-acts span.on{background:#059669;border-color:#059669;color:#fff;font-weight:600}
.uc-acts span.busy{background:#EF4444;border-color:#EF4444;color:#fff;font-weight:600}
.uc-cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}

.uc-slot{min-height:118px}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.uc-call{border:1px solid #A7F3D0;background:#ECFDF5;border-radius:12px;padding:12px;animation:pop .45s var(--ease)}
.uc-call-r{display:flex;align-items:center;gap:12px}
.uc-call-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#059669;color:#fff;flex:none}
.uc-call.ringing .uc-call-ic{animation:ring .9s ease-in-out infinite}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(6deg)}}
.uc-call b{display:block;color:#0E1512;font-size:13.5px}
.uc-call small{color:#56625D;font-size:11.5px}
.uc-time{margin-left:auto;font-family:var(--font-mono);font-size:15px;font-weight:600;color:#047857}
.uc-wave{display:flex;gap:3px;align-items:center;height:20px;margin-top:10px}
.uc-wave i{flex:1;max-width:5px;height:100%;border-radius:2px;background:#10B981;transform-origin:center;animation:wave .8s ease-in-out infinite}
@keyframes wave{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
.uc-call.ended{border-color:#DFE5E2;background:#F7F9F8}
.uc-call.ended .uc-call-ic{background:#E3E8E5;color:#4B5651}
.uc-call.ended .uc-time{color:#27312D}
.uc-call.missed{border-color:#FECACA;background:#FEF2F2}
.uc-call.missed .uc-call-ic{background:#EF4444;color:#fff}
.uc-call.missed .uc-time{color:#991B1B}
.uc-read{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:11.5px;color:#56625D;animation:pop .45s var(--ease)}
.uc-read svg{color:#059669;width:14px;height:14px}

.uc-ai{border:1px solid #A7F3D0;border-radius:12px;padding:12px;background:linear-gradient(180deg,#E9FBF3,#F8FEFB);animation:pop .5s var(--ease)}
.uc-ai-h{display:flex;align-items:center;gap:8px;color:#059669}
.uc-ai-h b{color:#064E3B;margin-right:auto}
.uc-ai p{margin:8px 0 3px;color:#1F2925;font-size:12.5px;line-height:1.4}
.uc-ai small{color:#56625D;font-size:11px}
.uc-ai-b{display:flex;gap:8px;margin-top:10px}
.uc-ai-b .ui-btn{height:28px;font-size:12px}
.uc-ai.done{border-color:#DFE5E2;background:#F7F9F8}
.uc-ai.done .uc-ai-b{display:none}

.uc-wa{animation:pop .5s var(--ease)}
.uc-wa-h{display:flex;align-items:center;gap:8px;color:#059669;font-size:12px;margin-bottom:8px}
.uc-wa-h b{color:#064E3B}
.uc-bub{margin-left:auto;width:fit-content;max-width:92%;background:#D9FDD3;border:1px solid #C3EFBB;border-radius:12px 12px 3px 12px;padding:9px 11px 6px;font-size:12px;line-height:1.4;color:#111B21}
.uc-bub em{display:flex;align-items:center;gap:7px;font-style:normal;color:#1F2925;background:rgba(255,255,255,.65);border:1px solid rgba(0,0,0,.08);border-radius:7px;padding:5px 8px;margin-bottom:6px;font-size:11.5px}
.uc-bub span{display:block;text-align:right;font-size:10px;color:#3B8FC4;margin-top:3px;font-family:var(--font-mono)}

.uc-tl{display:flex;flex-direction:column;gap:11px;padding:2px 2px 0 6px;border-left:1px solid #DFE5E2;margin-left:6px}
.uc-tl div{position:relative;padding-left:14px}
.uc-tl div.in{animation:tlIn .6s var(--ease)}
@keyframes tlIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.uc-tl i{position:absolute;left:-10px;top:4px;width:7px;height:7px;border-radius:50%;background:#10B981;box-shadow:0 0 0 3px #fff}
.uc-tl .r i{background:#EF4444}
.uc-tl .a i{background:#F59E0B}
.uc-tl b{display:block;font-size:12.5px;color:#1F2925}
.uc-tl small{color:#6B7772;font-size:11px}

/* performance: ask a question, get the report */
.ui-perf{display:none}
.ui-body.perf .ui-tabs,.ui-body.perf .ui-split{display:none}
.ui-body.perf .ui-perf{display:block;animation:pop .5s var(--ease)}
.up-head{display:flex;align-items:flex-end;gap:16px;padding:6px 2px 14px}
.up-head h4{font-family:var(--font-display);font-weight:600;font-size:21px;letter-spacing:-.02em;color:#0E1512}
.up-head small{color:#6B7772;font-size:12px}
.up-pills{margin-left:auto;display:flex;gap:6px}
.up-pills span{height:32px;padding:0 14px;display:inline-flex;align-items:center;border:1px solid #DCE2DF;border-radius:8px;background:#fff;color:#27312D;font-weight:500;font-size:12.5px}
.up-pills .on{background:#059669;border-color:#059669;color:#fff}
.up-ask{display:flex;align-items:center;gap:12px;height:54px;padding:0 10px 0 16px;border:1.5px solid #DCE2DF;border-radius:14px;background:#fff;color:#059669;box-shadow:0 1px 2px rgba(16,24,20,.04);transition:border-color .3s,box-shadow .3s}
.up-ask.on{border-color:#34D399;box-shadow:0 0 0 4px rgba(52,211,153,.2)}
.up-ask > svg{width:19px;height:19px}
.up-q{color:#0E1512;font-size:15px;font-weight:500;white-space:nowrap}
.up-ask.on .up-q::after{content:"";display:inline-block;width:1.5px;height:17px;background:#059669;margin-left:2px;vertical-align:-3px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.up-ph{color:#9AA5A0;font-size:15px}
.up-ask .ui-btn{margin-left:auto;height:36px;padding:0 20px;font-size:13px}
.up-hints,.up-load,.up-out{display:none}
.ui-perf[data-s="idle"] .up-hints{display:flex;gap:8px;padding:14px 2px}
.up-hints span{border:1px solid #DCE2DF;border-radius:18px;background:#fff;padding:6px 12px;color:#4B5651;font-size:12px}
.ui-perf[data-s="load"] .up-load{display:flex;align-items:center;gap:10px;padding:18px 4px;color:#047857;font-size:13px;font-weight:500}
.up-load svg{animation:spin 1.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ui-perf[data-s="done"] .up-out{display:block;margin-top:14px;animation:pop .6s var(--ease)}
.up-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.up-kpi,.up-card{border:1px solid #DFE5E2;border-radius:12px;background:#fff;padding:14px 16px;box-shadow:0 1px 2px rgba(16,24,20,.04)}
.up-kpi small{display:block;color:#6B7772;font-size:12px;margin-bottom:2px}
.up-kpi b{font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:-.02em;color:#0E1512}
.up-kpi em{font-style:normal;font-size:11.5px;font-weight:600;color:#065F46;background:#D1FAE5;border-radius:6px;padding:2px 7px;margin-left:8px;vertical-align:4px}
.up-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;margin-top:12px}
.up-t{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6B7772;margin-bottom:10px}
.up-bar{display:grid;grid-template-columns:112px 1fr 30px;align-items:center;gap:10px;height:30px;font-size:12.5px;color:#27312D}
.up-bar i{display:block;height:12px;border-radius:6px;background:#EEF2F0;overflow:hidden}
.up-bar u{display:block;height:100%;width:var(--w);border-radius:6px;background:linear-gradient(90deg,#059669,#34D399);text-decoration:none}
.up-bar b{text-align:right;color:#0E1512}
.up-cols{display:flex;align-items:flex-end;gap:8px;height:104px}
.up-cols i{flex:1;border-radius:4px 4px 0 0;background:#BDEBD7;transform-origin:bottom}
.up-cols i.hi{background:linear-gradient(180deg,#34D399,#059669)}
.ui-perf[data-s="done"] .up-bar u{animation:barW 1.1s var(--ease) both}
.ui-perf[data-s="done"] .up-cols i{animation:colUp 1s var(--ease) both}
@keyframes barW{from{width:0}to{width:var(--w)}}
@keyframes colUp{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.up-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9.5px;color:#8A9590;margin-top:6px}
.up-ans{display:flex;gap:10px;align-items:flex-start;margin-top:12px;border:1px solid #A7F3D0;border-radius:12px;background:#ECFDF5;padding:12px 14px;color:#059669}
.up-ans p{margin:0;color:#1F2925;font-size:13px;line-height:1.45}
.up-ans svg{margin-top:2px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.stat{padding:30px 0 32px;border-right:1px solid var(--line);padding-left:24px}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0}
.stat b{display:block;font-family:var(--font-display);font-weight:500;font-size:clamp(26px,2.6vw,38px);letter-spacing:-.03em;line-height:1}
.stat span{display:block;margin-top:10px;color:var(--fg-subtle)}

/* ---------- section shell ---------- */
.sec{position:relative;padding:clamp(72px,10vw,150px) 0}
.sec-line{border-top:1px solid var(--line)}
#platform{border-top:0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:32px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sec-head h2{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(30px,3.8vw,54px);line-height:1.05;letter-spacing:-.035em;text-wrap:balance;
}
.sec-head p{color:var(--fg-muted);max-width:36em;margin-top:18px}
.sec-head .eyebrow{align-self:start;padding-top:10px}

/* ---------- platform showcase ---------- */
.show{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:clamp(24px,3.4vw,64px);align-items:start}

/* the six products */
.show-list{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.show-tab{
  all:unset;box-sizing:border-box;position:relative;cursor:pointer;
  display:grid;grid-template-columns:46px minmax(0,1fr);
  padding-top:22px;border-top:1px solid var(--line);
}
.show-tab:focus-visible{outline:2px solid var(--accent-hi);outline-offset:4px;border-radius:4px}
.st-n{color:var(--fg-subtle);padding-top:7px;transition:color .4s}
.st-t{
  font-family:var(--font-display);font-weight:500;font-size:clamp(20px,1.75vw,26px);letter-spacing:-.025em;line-height:1.2;
  color:var(--fg-subtle);padding-bottom:22px;transition:color .4s;
}
.show-tab:hover .st-t{color:var(--fg)}
.show-tab.is-on .st-t{color:var(--fg)}
.show-tab.is-on .st-n{color:var(--accent-hi)}
.st-body{grid-column:2;display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.st-body > span{display:block;min-height:0;overflow:hidden;opacity:0;transition:opacity .5s}
.show-tab.is-on .st-body{grid-template-rows:1fr}
.show-tab.is-on .st-body > span{opacity:1;transition-delay:.15s}
.st-p{display:block;color:var(--fg-muted);font-size:15.5px;line-height:1.55;max-width:30em}
.show-tab.is-on .st-t{padding-bottom:12px}
.st-vals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 26px;padding-top:20px;border-top:1px dashed var(--line-mid)}
.st-v b{
  display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(24px,2.3vw,34px);letter-spacing:-.035em;line-height:1;
  background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  white-space:nowrap;
}
.st-v em{display:block;font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle);margin-top:9px;line-height:1.45}
.st-bar{position:absolute;left:0;right:0;top:-1px;height:1px;opacity:0;transition:opacity .4s}
.show-tab.is-on .st-bar{opacity:1}
.st-bar u{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 14px var(--accent-hi);text-decoration:none}

/* the stage */
.show-stage{
  position:relative;border-radius:24px;border:1px solid transparent;overflow:hidden;isolation:isolate;
  background:
    linear-gradient(#0A0F0D,#0A0F0D) padding-box,
    linear-gradient(145deg,rgba(167,243,208,.6),rgba(255,255,255,.08) 26%,rgba(255,255,255,.04) 66%,rgba(52,211,153,.45)) border-box;
  box-shadow:0 50px 140px rgba(0,0,0,.65),0 0 90px rgba(16,185,129,.14),inset 0 1px 0 rgba(255,255,255,.08);
}
.stage-bg{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(62% 52% at 82% 4%,rgba(52,211,153,.26),transparent 62%),
    radial-gradient(48% 46% at 8% 100%,rgba(16,185,129,.18),transparent 62%),
    radial-gradient(40% 40% at 50% 50%,rgba(16,185,129,.05),transparent 70%),
    linear-gradient(180deg,#0E1512,#080C0A);
}
.stage-bg::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent 78%);mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent 78%);
}
.stage-bg::after{
  content:"";position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.stage-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(420px circle at var(--mx,70%) var(--my,20%),rgba(190,255,225,.13),transparent 62%)}
.show-stage:hover .stage-spot{opacity:1}
.art-wrap{position:relative;width:100%;aspect-ratio:760/540;overflow:hidden}
.art{position:absolute;left:0;top:0;width:760px;height:540px;transform-origin:0 0;transition:transform .8s var(--ease)}
.tilt{position:absolute;inset:0;transform:perspective(1700px) rotateX(calc(var(--ty,0) * -2.4deg)) rotateY(calc(var(--tx,0) * 2.8deg));transition:transform .6s var(--ease)}
.stage-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px 20px;border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent)}
.stage-foot .btn{padding:11px 15px}
.stage-nav{display:flex;align-items:center;gap:8px;color:var(--fg-muted)}
.stage-nav .mono{margin-right:8px}
.stage-nav button{width:40px;height:40px;border:1px solid var(--line-mid);border-radius:50%;background:rgba(255,255,255,.03);color:var(--fg);cursor:pointer;display:grid;place-items:center;transition:border-color .2s,background .2s}
.stage-nav button:hover{border-color:var(--accent-hi);background:var(--accent-wash)}
.stage-nav svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* scenes: drawn on a 760 x 540 board */
.scene{position:absolute;inset:0;display:none;font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815}
.scene.is-on{display:block}
.scene > *{position:absolute;animation:scIn .85s var(--ease) both;animation-delay:calc(var(--i,0) * 85ms + 60ms)}
.scene > .bob{animation:scIn .85s var(--ease) both,bob 7s ease-in-out infinite;animation-delay:calc(var(--i,0) * 85ms + 60ms),1.6s}
@keyframes scIn{from{opacity:0;transform:translateY(20px) scale(.965)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.scene b{font-weight:600}
.scene ul{list-style:none;margin:0;padding:0}
.scene svg.ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.scene .grow{flex:1;min-width:0}
.scene .num{font-family:var(--font-mono);font-size:11.5px}
.scene .cap{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590;margin:14px 0 7px}
.scene .cap.grow{margin:0}
.scene .ln1{display:block;font-size:13.5px;color:#0E1512;margin-bottom:10px}
.scene .btns{display:flex;gap:8px}
.scene .ui-btn{height:30px;font-size:12px}

.pc{background:#fff;border-radius:16px;padding:16px 18px;border:1px solid rgba(255,255,255,.9);
  box-shadow:0 30px 70px rgba(0,0,0,.5),0 6px 18px rgba(0,0,0,.28),0 0 0 1px rgba(16,185,129,.10)}
.pc h5{margin:0;font-family:var(--font-display);font-weight:600;font-size:15.5px;letter-spacing:-.015em;color:#0E1512}
.pc small{color:#6B7772;font-size:11.5px}
.pc-row{display:flex;align-items:center;gap:11px}
.pc-row.owner{margin-top:14px;padding:10px 12px;border-radius:10px;background:#F5F8F6}
.pc-row.owner b{display:block;color:#0E1512}
.pc-foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #ECEFED;color:#047857;font-size:12px;font-weight:500}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.gl{background:rgba(12,20,16,.74);border:1px solid rgba(255,255,255,.13);border-radius:13px;color:#E6EEEA;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 16px 44px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.07)}
.gl.badge{display:flex;align-items:center;gap:9px;padding:11px 14px;font-size:12.5px;color:#D5DFDA;white-space:nowrap}
.gl.badge b{color:#fff;font-family:var(--font-display);font-size:15px}
.gl.badge svg{color:#34D399}
.ping{width:7px;height:7px;border-radius:50%;background:#34D399;animation:ping 2s infinite;flex:none}

/* 01 capture */
.sc-svg{left:0;top:0;width:760px;height:540px;overflow:visible}
.sc-svg .flow path{fill:none;stroke:rgba(110,231,183,.34);stroke-width:1.3;stroke-dasharray:3 7;animation:dashes 1.6s linear infinite}
@keyframes dashes{to{stroke-dashoffset:-20}}
.sc-svg .motes circle{fill:#A7F3D0;filter:drop-shadow(0 0 6px #34D399)}
.gl.src{display:flex;align-items:center;gap:10px;width:160px;height:44px;padding:0 14px;font-size:13px;font-weight:500}
.gl.src i{width:9px;height:9px;border-radius:3px;flex:none}
.gl.src b{margin-left:auto;font-family:var(--font-mono);font-size:11.5px;font-weight:500;color:#9FB0A8}
.tl li{position:relative;padding:0 0 10px 16px;border-left:1px solid #E1E6E3;margin-left:4px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:#10B981;box-shadow:0 0 0 3px #fff}
.tl b{display:block;font-size:12.5px;color:#1F2925}

/* 02 journey */
.gl.steps{display:grid;grid-template-columns:repeat(5,1fr);height:82px;padding:0 10px;align-items:center}
.steps > span{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:12px;color:#8E9B95;z-index:1}
.steps > span i{width:20px;height:20px;border-radius:50%;border:1.6px solid rgba(255,255,255,.22);background:#0C1410;display:block;position:relative}
.steps .done{color:#D5DFDA}
.steps .done i{background:#10B981;border-color:#10B981}
.steps .done i::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid #03130D;border-width:0 2px 2px 0;transform:rotate(42deg)}
.steps .now{color:#fff;font-weight:600}
.steps .now i{border-color:#34D399;box-shadow:0 0 0 0 rgba(52,211,153,.7);animation:ping 2s infinite}
.steps .now i::after{content:"";position:absolute;inset:4px;border-radius:50%;background:#34D399}
.steps-line{position:absolute;left:10%;right:10%;top:30px;height:2px;background:rgba(255,255,255,.12);border-radius:2px}
.steps-line u{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,#059669,#34D399);animation:toHalf 1.5s var(--ease) .5s both}
@keyframes toHalf{to{width:50%}}
.todo li{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13px;color:#27312D}
.todo li i{width:17px;height:17px;border-radius:5px;border:1.5px solid #C2CAC6;flex:none;position:relative;background:#fff}
.todo .ok i,.todo .late i{animation:tick .4s var(--ease) both}
.todo .ok i{background:#059669;border-color:#059669}
.todo .ok i::after,.todo .late i::after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:8.5px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.todo .late i{animation:tickLate .5s var(--ease) 2s both}
.todo .late i::after{opacity:0;animation:fadeIn .3s 2.1s both}
@keyframes tick{from{transform:scale(.6)}to{transform:none}}
@keyframes tickLate{from{background:#fff;border-color:#C2CAC6;transform:scale(.7)}to{background:#059669;border-color:#059669;transform:none}}
@keyframes fadeIn{to{opacity:1}}
.go{display:flex;align-items:center;justify-content:center;gap:8px;height:40px;margin-top:14px;border-radius:10px;font-weight:600;font-size:13px;
  background:#E9EEEB;color:#8A9590;animation:goLive .6s var(--ease) 2.5s both}
@keyframes goLive{to{background:#059669;color:#fff;box-shadow:0 10px 26px rgba(5,150,105,.4)}}
.avs{display:flex;gap:-6px;margin:2px 0 10px}
.avs .ui-ini{margin-right:-7px;border:2px solid #fff;width:34px;height:34px}
.avs .pick{box-shadow:0 0 0 2px #10B981;z-index:1;animation:tick .5s var(--ease) 1.2s both}

/* 03 field */
.pc.map{padding:0;overflow:hidden}
.map-svg{display:block;width:100%;height:auto}
.map-svg .blocks rect{fill:#DCEBE3}
.map-svg .park{fill:#CDE8D8}
.map-svg .route-bg{fill:none;stroke:#fff;stroke-width:9;stroke-linejoin:round;stroke-linecap:round}
.map-svg .route{fill:none;stroke:#059669;stroke-width:4;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 3.2s var(--ease) .7s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.map-svg .stops circle{fill:#fff;stroke:#059669;stroke-width:2.5}
.map-svg .stops text{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:#065F46;text-anchor:middle}
.map-svg .here{fill:#059669;stroke:#fff;stroke-width:3}
.map-svg .here-r{fill:rgba(5,150,105,.25);animation:halo 2s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes halo{from{transform:scale(1);opacity:1}to{transform:scale(3.2);opacity:0}}
.map-foot{display:grid;grid-template-columns:repeat(3,1fr);padding:14px 18px 16px;border-top:1px solid #ECEFED}
.map-foot b{display:block;font-family:var(--font-display);font-size:19px;letter-spacing:-.02em;color:#0E1512}
.phone{width:204px;height:424px;border-radius:34px;padding:7px;background:linear-gradient(160deg,#2A332F,#0B0F0D);
  box-shadow:0 34px 80px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.14),inset 0 0 0 1px rgba(255,255,255,.06)}
.scene > .phone{animation:scIn .85s var(--ease) both,bob 8s ease-in-out infinite;animation-delay:calc(var(--i,0) * 85ms + 60ms),2.2s}
.ph-in{height:100%;border-radius:28px;background:#F6F9F7;padding:12px 14px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden}
.ph-top{align-self:flex-start;font-family:var(--font-mono);font-size:10px;color:#27312D;font-weight:600}
.selfie{position:relative;width:74px;height:74px;border-radius:50%;margin:12px 0 10px;display:grid;place-items:center;
  background:linear-gradient(135deg,#34D399,#047857);color:#fff;font-weight:700;font-size:21px;box-shadow:0 0 0 4px #fff,0 0 0 6px #A7F3D0}
.selfie i{position:absolute;right:-4px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:#059669;border:3px solid #F6F9F7;display:grid;place-items:center;color:#fff}
.selfie i svg{width:12px;height:12px}
.ph-in > b{font-family:var(--font-display);font-size:15px;color:#0E1512}
.ph-in small{color:#6B7772;font-size:10.5px}
.ph-btn{display:block;width:100%;margin-top:12px;padding:9px 0;border-radius:9px;background:#059669;color:#fff;font-weight:600;font-size:11.5px}
.ph-in .cap{align-self:flex-start;margin:14px 0 6px}
.ph-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 8px;border-radius:9px;background:#fff;border:1px solid #E6EBE8;margin-bottom:6px}
.ph-row .ui-ini{width:26px;height:26px;font-size:9.5px}
.ph-row b{display:block;font-size:11.5px;color:#0E1512}

/* 04 quote and collect */
.pc.paper{border-radius:12px;padding:20px 22px}
.mark{width:26px;height:26px;fill:none;stroke:#059669;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.paper .to{display:block;margin:14px 0 8px}
.paper .to b{color:#0E1512}
.paper table{width:100%;border-collapse:collapse;font-size:12.5px}
.paper th{text-align:left;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8A9590;font-weight:500;padding:7px 0;border-bottom:1px solid #DFE5E2}
.paper td{padding:8px 0;border-bottom:1px solid #EEF1EF;color:#27312D}
.paper th:nth-child(2),.paper td:nth-child(2){text-align:center;width:44px}
.paper th:last-child,.paper td:last-child{text-align:right}
.paper .sum td{color:#6B7772;border-bottom:0;padding-top:10px}
.paper .tot td{border:0;font-family:var(--font-display);font-weight:600;font-size:17px;color:#0E1512;padding-top:2px}
.sign{position:relative;margin-top:10px;padding-top:4px;border-top:1px dashed #C9D1CD}
.sign svg{display:block;width:170px;height:50px}
.sign path{fill:none;stroke:#0E1512;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.8s ease-in-out 1.3s forwards}
.stamp{position:absolute;right:0;top:12px;padding:6px 11px;border:2px solid #059669;border-radius:8px;color:#047857;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  transform:rotate(-7deg);opacity:0;animation:stamp .5s cubic-bezier(.2,1.6,.4,1) 3.1s forwards;background:rgba(236,253,245,.9)}
@keyframes stamp{from{opacity:0;transform:rotate(-7deg) scale(1.7)}to{opacity:1;transform:rotate(-7deg) scale(1)}}
.file{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;background:#E7FCE3;border:1px solid #C9F0C2;color:#047857}
.file b{display:block;font-size:12.5px;color:#111B21}
.tick{color:#3B9AD6;letter-spacing:-2px}
.meter{height:8px;border-radius:4px;background:#EEF2F0;overflow:hidden;margin:12px 0 4px}
.meter i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#059669,#34D399);animation:pay 3.4s var(--ease) .9s both}
@keyframes pay{0%{width:0}35%,55%{width:25%}100%{width:60%}}
.pays li{display:flex;align-items:center;gap:10px;padding:9px 0 0;font-size:12.5px}
.pays b{color:#0E1512;min-width:68px}
.pays small{flex:1}
.pays .late{animation:scIn .6s var(--ease) 2.9s both}

/* 05 grow demand */
.fun{margin-top:14px}
.fun li,.rev li{display:grid;align-items:center;gap:10px;height:31px;font-size:12.5px;color:#27312D}
.fun li{grid-template-columns:70px 1fr 46px}
.rev li{grid-template-columns:82px 1fr 46px 50px;height:38px}
.fun i,.rev i,.moves i{display:block;height:10px;border-radius:5px;background:#EEF2F0;overflow:hidden}
.fun u,.rev u,.moves u{display:block;height:100%;width:var(--w);min-width:6px;border-radius:5px;background:linear-gradient(90deg,#059669,#34D399);text-decoration:none;
  animation:barW 1.2s var(--ease) both;animation-delay:calc(var(--d) * 130ms + 500ms)}
.fun .win u{background:linear-gradient(90deg,#F59E0B,#FBBF24)}
.fun b,.rev b{text-align:right;color:#0E1512;font-variant-numeric:tabular-nums}
.rev{margin-top:12px}
.rev small{text-align:right}
.seo{display:flex;align-items:flex-end;gap:22px}
.seo span b{display:block;font-family:var(--font-display);font-size:22px;letter-spacing:-.02em;color:#0E1512;line-height:1.1}
.seo svg{margin-left:auto;width:110px;height:38px}
.seo path{fill:none;stroke:#059669;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.6s var(--ease) 1.2s forwards}

/* 06 autopilot */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.trio span{padding:2px 0}
.trio b{display:block;font-family:var(--font-display);font-size:22px;letter-spacing:-.02em;color:#0E1512;line-height:1.1}
.modes{display:flex;padding:3px;border-radius:9px;background:#EEF2F0}
.modes i{font-style:normal;font-size:11.5px;font-weight:500;color:#56625D;padding:5px 11px;border-radius:7px}
.modes .on{background:#fff;color:#047857;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.moves{margin-top:10px}
.moves li{display:grid;grid-template-columns:22px minmax(0,1fr) 84px 52px;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #EEF1EF;
  animation:scIn .6s var(--ease) both;animation-delay:calc(var(--d) * 140ms + 350ms)}
.moves em{font-style:normal;font-family:var(--font-mono);font-size:11px;color:#8A9590}
.moves div b{display:block;color:#0E1512}
.moves div small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.moves span b{display:block;font-size:12px;color:#047857;margin-bottom:4px;font-variant-numeric:tabular-nums}
.moves i{height:6px}
.moves strong{font-family:var(--font-display);font-weight:600;font-size:14px;color:#0E1512;text-align:right}
.draft{margin:10px 0 12px;padding:10px 12px;border-radius:12px 12px 12px 3px;background:#F1F5F3;color:#1F2925;font-size:12.5px;line-height:1.45}
.scene svg.acc{color:#059669}

@keyframes barW{from{width:0}to{width:var(--w)}}

/* ---------- replace the stack / pricing ---------- */
.swap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.swap-side{padding:clamp(26px,3.4vw,48px)}
.swap-old{background:var(--bg-raise);border-right:1px solid var(--line)}
.swap-new{background:var(--panel);position:relative}
.swap-new::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}
.tools{list-style:none;padding:0;margin:26px 0 0}
.tools li{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);color:var(--fg-muted)}
.tools li span:first-child{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.28)}
.tools li .mono{color:var(--fg-subtle)}
.price{font-family:var(--font-display);font-weight:500;letter-spacing:-.04em;line-height:1;font-size:clamp(44px,5.4vw,78px);margin-top:26px}
.price small{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin-left:10px}
.price.old{color:var(--fg-subtle);font-size:clamp(34px,4vw,56px)}
.incl{list-style:none;padding:0;margin:26px 0 30px;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
.incl li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--fg)}
.incl li::before{content:"";flex:none;width:7px;height:7px;background:var(--accent);margin-top:8px}
.fine{color:var(--fg-subtle);font-size:13px;margin-top:22px;max-width:44em}

/* ---------- industries ---------- */
.inds{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.ind{padding:28px 24px 30px;border-right:1px solid var(--line);background:var(--bg-raise);display:flex;flex-direction:column;gap:14px;min-height:250px;transition:background .3s}
.ind:last-child{border-right:0}
.ind:hover{background:var(--panel-hi)}
.ind h3{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.02em}
.ind p{color:var(--fg-muted);font-size:14.5px}
.ind ol{list-style:none;padding:0;margin:auto 0 0;display:flex;flex-direction:column;gap:6px}
.ind ol li{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle);display:flex;gap:8px}
.ind ol li::before{content:attr(data-n);color:var(--accent-hi)}

/* ---------- closing call ---------- */
.close{text-align:center;padding:clamp(90px,12vw,180px) 0}
.close h2{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,5vw,72px);letter-spacing:-.04em;line-height:1.02;text-wrap:balance;max-width:14em;margin:22px auto 0}
.close p{color:var(--fg-muted);max-width:34em;margin:22px auto 0}
.close .hero-actions{justify-content:center}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);padding:56px 0 40px;position:relative;z-index:1}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px}
.foot h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-subtle);margin:0 0 16px;font-weight:500}
.foot ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.foot li a{color:var(--fg-muted);font-size:14.5px;transition:color .2s}
.foot li a:hover{color:var(--fg)}
.foot-note{color:var(--fg-muted);font-size:14.5px;max-width:26em;margin-top:16px}
.foot-base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:48px;padding-top:24px;color:var(--fg-subtle)}

/* ---------- drawing primitives ---------- */
.dw{stroke-linejoin:round;stroke-linecap:round}
.dw .grid line{stroke:rgba(255,255,255,.065);stroke-width:1}
.dw .bx polygon{stroke:rgba(255,255,255,.5);stroke-width:1}
.dw .bx-wire .f-t{fill:#161B19}
.dw .bx-wire .f-l{fill:#0D100F}
.dw .bx-wire .f-r{fill:#111514}
.dw .bx-ghost polygon{fill:none;stroke:rgba(255,255,255,.16)}
.dw .bx-accent polygon{stroke:rgba(255,255,255,.8)}
.dw .bx-accent .f-t{fill:#34D399}
.dw .bx-accent .f-l{fill:#047857}
.dw .bx-accent .f-r{fill:#10B981}
.dw .ln{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1}
.dw .ln-dash{fill:none;stroke:rgba(255,255,255,.2);stroke-width:1;stroke-dasharray:3 5}
.dw .ln-acc{fill:none;stroke:var(--accent-hi);stroke-width:1.6}
.dw .orbit{fill:none;stroke:rgba(255,255,255,.2);stroke-width:1}
.dw .face-txt{font-family:var(--font-mono);font-weight:600;letter-spacing:.06em;fill:#03130D}
.dw .face-txt.on-dark{fill:rgba(255,255,255,.62);font-weight:500}
.dw .pill rect{fill:#0F1312;stroke:rgba(255,255,255,.2);stroke-width:1}
.dw .pill text{font-family:var(--font-sans);font-size:13px;fill:#E9EEEC}
.dw .pill circle{fill:none;stroke:var(--accent-hi);stroke-width:1.2}
.dw .pill .dot{fill:var(--accent-hi);stroke:none}
.dw .pill.lit rect{fill:#EEF2F0;stroke:#EEF2F0}
.dw .pill.lit text{fill:#07110D;font-weight:600}
.dw .tag rect{fill:#EEF2F0}
.dw .tag text{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;fill:#07110D}
.dw .tag .n{fill:#4A5551}
.dw .cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;fill:rgba(255,255,255,.45);text-transform:uppercase}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .head-tag{display:none}
  .inds{grid-template-columns:repeat(2,1fr)}
  .ind{border-bottom:1px solid var(--line)}
  .ind:nth-child(2n){border-right:0}
  .foot-grid{grid-template-columns:1fr 1fr 1fr}
  .foot-grid > div:first-child{grid-column:1/-1}
}
@media (max-width:860px){
  :root{--head-h:64px}
  .nav,.head-cta .signin{display:none}
  .menu-btn{display:block}
  .head-cta{margin-left:0}
  .head.open .nav{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    position:absolute;top:var(--head-h);left:0;right:0;background:var(--bg);
    border-bottom:1px solid var(--line);padding:8px var(--gutter) 20px;
  }
  .head.open .nav a{padding:14px 0;width:100%;border-bottom:1px solid var(--line)}
  .dash{height:clamp(300px,46vh,400px);border-radius:18px 18px 0 0;padding:6px 6px 0}
  .dash-in{border-radius:13px 13px 0 0}
  .beam{opacity:.6}
  .hero .lede{text-shadow:0 0 14px #060807,0 0 4px #060807}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat{padding-left:16px}
  .stat:nth-child(odd){padding-left:0}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .sec-head{grid-template-columns:1fr;gap:14px}
  .swap{grid-template-columns:1fr}
  .swap-old{border-right:0;border-bottom:1px solid var(--line)}
  .incl{grid-template-columns:1fr}
  .show{grid-template-columns:1fr;gap:28px}
  .show-stage{order:-1;border-radius:18px}
  .art-wrap{aspect-ratio:auto}
  .st-vals{gap:12px}
}
@media (max-width:560px){
  .inds{grid-template-columns:1fr}
  .ind{border-right:0;min-height:0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .head-cta .btn{padding:10px 12px;font-size:11px}
  .stage-nav .mono{display:none}
  .stage-foot{padding:12px 14px 14px}
  .stage-foot .btn{padding:10px 12px;font-size:11px}
  .brand b{font-size:17px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .hero h1 .line{animation:none;-webkit-mask-image:none;mask-image:none}
  .hero .lede,.hero .hero-actions,.dash{animation:none;opacity:1}
  .ui-row.new,.ui-row.new::after,.ui-dial i,.uc-ai,.uc-tl div.in,.up-bar u,.up-cols i,.up-load svg{animation:none !important}
  .ui-row.new::after,.ui-cur{display:none}
  .ui.cam{transition:none}
  .scene > *,.scene *{animation:none !important}
  .map-svg .route,.sign path,.seo path{stroke-dashoffset:0}
  .stamp,.todo .late i::after{opacity:1}
  .todo .late i{background:#059669;border-color:#059669}
  .go{background:#059669;color:#fff}
  .steps-line u{width:50%}
  .meter i{width:60%}
  .st-body,.art,.tilt{transition:none}
}

/* added with the drawings */
.dw .dotp{fill:var(--accent-hi)}
.dw .grid .gl{stroke:rgba(255,255,255,.075);stroke-width:1}
.tools li .mono{white-space:nowrap;flex:none}


/* ============================================================
   SECTION: flow
   ============================================================ */

/* ============================================================
   HOW IT WORKS (flow) — one record, seven stations, three jobs
   Every class here starts with fl-
   ============================================================ */

.fl-sec{--fl-pad:36px}
.fl-sec .fl-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.fl-grow{flex:1;min-width:0}
.fl-mono{font-family:var(--font-mono)}

/* reveal (only hidden when the script is running, so no-JS stays readable) */
.fl-rise{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.fl-sec.fl-js .fl-rise:not(.fl-in){opacity:0;transform:translateY(18px)}
.fl-sec.fl-boot *,.fl-sec.fl-boot *::before,.fl-sec.fl-boot *::after{transition:none !important}

/* nothing loops while the section is off screen */
.fl-sec:not(.is-live) *,.fl-sec:not(.is-live) *::before,.fl-sec:not(.is-live) *::after{animation-play-state:paused !important}

.fl-stage{order:0}
.fl-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(460px circle at var(--fl-mx,50%) var(--fl-my,30%),rgba(190,255,225,.11),transparent 62%)}
.fl-stage:hover .fl-spot{opacity:1}

/* ---------- the track ---------- */
.fl-track{
  position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:34px auto;row-gap:20px;
  padding:30px var(--fl-pad) 30px;border-bottom:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0));
}
.fl-grp{
  grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:9px;margin:0 12px;
  font-size:10.5px;letter-spacing:.14em;color:#7E8984;transition:color .5s;
}
.fl-grp b{font-weight:500;white-space:nowrap}
.fl-grp i{display:block;width:100%;height:9px;border:1px solid var(--line-mid);border-bottom:0;border-radius:8px 8px 0 0;transition:border-color .5s,box-shadow .5s}
.fl-g1{grid-column:1 / span 3}
.fl-g2{grid-column:4 / span 3}
.fl-g3{grid-column:7 / span 1}
.fl-grp.fl-done{color:#A9B7B0}
.fl-grp.fl-done i{border-color:rgba(52,211,153,.38)}
.fl-grp.fl-on{color:var(--accent-hi)}
.fl-grp.fl-on i{border-color:rgba(110,231,183,.85);box-shadow:0 -8px 20px -8px rgba(52,211,153,.7)}

.fl-st{
  all:unset;box-sizing:border-box;grid-row:2;position:relative;z-index:2;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:17px;text-align:center;min-width:0;
  -webkit-tap-highlight-color:transparent;
}
.fl-st:nth-of-type(1){grid-column:1}.fl-st:nth-of-type(2){grid-column:2}.fl-st:nth-of-type(3){grid-column:3}
.fl-st:nth-of-type(4){grid-column:4}.fl-st:nth-of-type(5){grid-column:5}.fl-st:nth-of-type(6){grid-column:6}
.fl-st:nth-of-type(7){grid-column:7}
.fl-st:focus-visible{outline:2px solid var(--accent-hi);outline-offset:6px;border-radius:14px}
.fl-node{
  position:relative;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:#0B1210;border:1px solid var(--line-hi);color:#7D8983;
  box-shadow:0 0 0 6px #0A0F0D,0 10px 26px rgba(0,0,0,.45);
  transition:background .5s,border-color .5s,color .5s,box-shadow .6s,transform .6s var(--ease);
}
.fl-node .fl-ic{width:20px;height:20px}
.fl-lab{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.fl-lab em{font-style:normal;font-size:10px;letter-spacing:.14em;color:#78837E;transition:color .4s}
.fl-lab b{font-family:var(--font-sans);font-weight:500;font-size:14.5px;line-height:1.25;color:#8C9792;transition:color .4s}
.fl-st:hover .fl-node{border-color:rgba(167,243,208,.65);color:#DDE6E2}
.fl-st:hover .fl-lab b{color:var(--fg)}
.fl-st.fl-done .fl-node{background:#0D1D17;border-color:rgba(52,211,153,.6);color:var(--accent-hi)}
.fl-st.fl-done .fl-lab b{color:#C9D3CF}
.fl-st.fl-on .fl-node{
  background:radial-gradient(circle at 34% 26%,#D1FAE5 0%,#6EE7B7 28%,#10B981 72%,#059669 100%);
  border-color:#D1FAE5;color:#03130D;transform:scale(1.1);
  box-shadow:0 0 0 6px rgba(52,211,153,.16),0 0 30px rgba(52,211,153,.7),0 0 80px rgba(16,185,129,.35),0 12px 30px rgba(0,0,0,.5);
}
.fl-st.fl-on .fl-node::after{
  content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(167,243,208,.7);
  animation:fl-ring 2.6s ease-out infinite;
}
.fl-st.fl-on .fl-lab b{color:#fff}
.fl-st.fl-on .fl-lab em{color:var(--accent-hi)}
@keyframes fl-ring{from{transform:scale(.94);opacity:.9}to{transform:scale(1.38);opacity:0}}
@keyframes fl-ring-s{from{transform:scale(.96);opacity:.9}to{transform:scale(1.2);opacity:0}}

/* the rail and the travelling light (the script measures the real node centres) */
.fl-rail{
  position:absolute;z-index:0;display:block;border-radius:2px;background:rgba(255,255,255,.1);
  left:calc(var(--fl-pad) + (100% - 2 * var(--fl-pad)) / 14);right:calc(var(--fl-pad) + (100% - 2 * var(--fl-pad)) / 14);
  top:110px;height:2px;
}
.fl-rail u{
  position:absolute;inset:0;display:block;border-radius:2px;text-decoration:none;
  background:linear-gradient(90deg,#059669,#34D399 72%,#A7F3D0);box-shadow:0 0 14px rgba(52,211,153,.75);
  transform-origin:0 50%;transform:scaleX(var(--fl-k,1));
}
.fl-track.fl-vert .fl-rail u{background:linear-gradient(180deg,#059669,#34D399 72%,#A7F3D0);transform-origin:50% 0;transform:scaleY(var(--fl-k,1))}
.fl-mote{
  position:absolute;z-index:1;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:#F0FFF8;opacity:0;pointer-events:none;will-change:transform,opacity;
  box-shadow:0 0 0 3px rgba(167,243,208,.35),0 0 18px 5px rgba(52,211,153,.95),0 0 50px 12px rgba(16,185,129,.5);
}
.fl-mote::before{
  content:"";position:absolute;right:6px;top:50%;width:74px;height:4px;margin-top:-2px;border-radius:4px;
  background:linear-gradient(90deg,rgba(52,211,153,0),rgba(167,243,208,.85));filter:blur(.6px);
}
.fl-track.fl-vert .fl-mote::before{right:auto;left:50%;top:auto;bottom:6px;width:4px;height:40px;margin:0 0 0 -2px;background:linear-gradient(180deg,rgba(52,211,153,0),rgba(167,243,208,.85))}

/* ---------- body: what happens · the record · what is kept ---------- */
.fl-body{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px) minmax(0,1fr);gap:0 44px;
  align-items:stretch;padding:40px var(--fl-pad) 42px;scroll-margin-top:calc(var(--head-h,72px) + 4px);
}
.fl-body::before{
  content:"";position:absolute;left:50%;top:48%;width:min(820px,90%);height:560px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(52,211,153,.24),rgba(16,185,129,.08) 52%,transparent 76%);
}

.fl-side{display:flex;flex-direction:column;justify-content:center;min-width:0}
.fl-panes{display:grid}
.fl-pane{
  grid-area:1 / 1;min-width:0;opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .45s var(--ease),transform .6s var(--ease),visibility 0s linear .45s;
}
.fl-pane.fl-on{opacity:1;visibility:visible;transform:none;transition:opacity .6s var(--ease) .12s,transform .7s var(--ease) .12s,visibility 0s}
.fl-tag{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:10.5px;letter-spacing:.14em;color:var(--accent-hi)}
.fl-tag b{font-weight:400;color:#7E8984}
.fl-tag i{width:18px;height:1px;background:var(--line-hi);margin:0 2px}
.fl-pane h3{font-family:var(--font-display);font-weight:500;font-size:clamp(23px,2vw,29px);line-height:1.14;letter-spacing:-.03em;margin:18px 0 0;text-wrap:balance}
.fl-pane p{color:var(--fg-muted);font-size:15.5px;line-height:1.6;margin-top:14px;max-width:30em}

.fl-by{display:inline-flex;align-items:center;gap:12px;margin-top:22px;padding:9px 16px 9px 9px;border-radius:14px;border:1px solid var(--line-mid);background:rgba(255,255,255,.035)}
.fl-by-ic,.fl-by-av{width:34px;height:34px;border-radius:10px;flex:none}
.fl-by-ic{display:grid;place-items:center;background:var(--accent-wash);color:var(--accent-hi);border:1px solid rgba(52,211,153,.3)}
.fl-by-av{font-size:11px}
.fl-by small{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7E8984;line-height:1.2}
.fl-by b{display:block;font-weight:500;font-size:14px;color:var(--fg);margin-top:3px;line-height:1.25}

.fl-ctl{display:flex;align-items:center;gap:8px;padding-top:30px}
.fl-btn{
  all:unset;box-sizing:border-box;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--line-mid);background:rgba(255,255,255,.03);color:var(--fg);transition:border-color .2s,background .2s;
}
.fl-btn:hover{border-color:var(--accent-hi);background:var(--accent-wash)}
.fl-btn:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
.fl-btn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fl-play .fl-i-play{display:none;fill:currentColor;stroke-width:1}
.fl-play[aria-pressed="true"] .fl-i-play{display:block}
.fl-play[aria-pressed="true"] .fl-i-pause{display:none}
.fl-sec:not(.fl-js) .fl-ctl{display:none}
.fl-count{margin-left:12px;color:#7E8984;font-size:11px;letter-spacing:.12em}
.fl-count b{font-weight:500;color:var(--fg)}

/* ---------- the record (a light card, like the real app) ---------- */
.fl-card{color:#111815;font-family:var(--font-sans);font-size:13px;line-height:1.35}
.fl-card b{font-weight:600}
.fl-case{
  position:relative;width:100%;align-self:start;justify-self:center;padding:18px 20px 16px;border-radius:18px;
  box-shadow:0 40px 90px rgba(0,0,0,.55),0 8px 22px rgba(0,0,0,.3),0 0 0 1px rgba(16,185,129,.12),0 0 70px rgba(52,211,153,.16);
}
.fl-case-h{gap:12px}
.fl-av{width:40px;height:40px;font-size:12.5px;border-radius:12px}
.fl-case h5{font-size:17px}
.fl-sub{display:flex;align-items:center;gap:10px;margin-top:2px;white-space:nowrap}
.fl-sub .fl-mono{font-size:11.5px}
.fl-own{padding-left:10px;border-left:1px solid #DFE5E2}
.fl-own b{color:#27312D;font-weight:600}
.fl-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fl-chips-h{flex:none;flex-wrap:nowrap}
.fl-dim{color:#7A8681}

.fl-cap{
  display:flex;justify-content:space-between;align-items:center;margin:16px 0 6px;padding-top:12px;border-top:1px solid #ECEFED;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#77837D;
}
.fl-cap b{color:#047857;font-weight:600}

.fl-rows{list-style:none;margin:0;padding:0;position:relative}
.fl-rows::before{content:"";position:absolute;left:13.5px;top:18px;bottom:18px;width:1px;background:#E1E6E3}
.fl-row{position:relative;padding-left:42px}
.fl-dot{
  position:absolute;left:0;top:4px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1.5px dashed #CBD3CF;color:#B7C0BB;box-shadow:0 0 0 3px #fff;
  transition:background .5s,color .5s,border-color .5s,box-shadow .5s;
}
.fl-dot .fl-ic{width:14px;height:14px}
.fl-row-h{display:flex;align-items:center;gap:12px;height:36px}
.fl-row-h b{min-width:0;font-size:13.5px;color:#27312D;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .4s}
.fl-when{margin-left:auto;flex:none;font-family:var(--font-mono);font-size:10.5px;color:#6F7B76;white-space:nowrap}
.fl-case .fl-when{font-size:10.5px}

/* an entry that has not happened yet: a quiet placeholder */
.fl-row:not(.fl-has) .fl-row-h b,.fl-row:not(.fl-has) .fl-when{
  color:transparent;border-radius:6px;background:linear-gradient(#EDF1EF,#EDF1EF) 0 50% / 100% 9px no-repeat;
}
.fl-row:not(.fl-has) .fl-row-h b{max-width:46%}
.fl-row{transition:opacity .6s var(--ease)}
.fl-row.fl-now + .fl-row + .fl-row:not(.fl-has){opacity:.8}
.fl-row.fl-now + .fl-row + .fl-row + .fl-row:not(.fl-has){opacity:.62}
.fl-row.fl-now + .fl-row + .fl-row + .fl-row + .fl-row:not(.fl-has){opacity:.46}
.fl-row.fl-now + .fl-row + .fl-row + .fl-row + .fl-row + .fl-row:not(.fl-has){opacity:.34}
.fl-row.fl-now + .fl-row + .fl-row + .fl-row + .fl-row + .fl-row + .fl-row:not(.fl-has){opacity:.26}
.fl-row.fl-has .fl-dot{border:1.5px solid transparent;background:#E4F7EE;color:#047857}
.fl-row.fl-now .fl-dot{background:#059669;color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 7px rgba(16,185,129,.2)}
.fl-row.fl-now .fl-row-h b{color:#0B1210}
.fl-row.fl-now .fl-when{color:#047857}
.fl-sec.fl-js .fl-row.fl-now .fl-row-h{animation:fl-slide .7s var(--ease) both}
@keyframes fl-slide{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

.fl-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.fl-more > div{min-height:0;overflow:hidden}
.fl-row.fl-now .fl-more{grid-template-rows:1fr}
.fl-d{
  height:96px;margin:2px 0 10px;padding:0 14px;border-radius:12px;background:#F4F8F6;border:1px solid #E4EAE7;
  display:flex;flex-direction:column;justify-content:center;gap:9px;overflow:hidden;
  opacity:0;transition:opacity .4s;
}
.fl-row.fl-now .fl-d{opacity:1;transition:opacity .6s .2s}
.fl-d b{color:#0E1512}
.fl-line{display:flex;align-items:center;gap:10px;min-width:0}
.fl-tile{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#059669;color:#fff;flex:none}
.fl-tile .fl-ic{width:14px;height:14px}
.fl-sum{display:flex;align-items:flex-start;gap:8px;margin:0;color:#27312D;font-size:12.5px;line-height:1.4}
.fl-sum .fl-ic{width:14px;height:14px;color:#059669;margin-top:2px}

/* 1 enquiry */
.fl-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fl-kv span{display:block;min-width:0}
.fl-kv small{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#77837D;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-kv b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 2 whatsapp */
.fl-d2{gap:7px}
.fl-bub{
  margin:0;align-self:flex-start;max-width:100%;padding:6px 10px 5px;border-radius:3px 11px 11px 11px;
  background:#D9FDD3;border:1px solid #C3EFBB;color:#111B21;font-size:12.5px;line-height:1.45;
}
.fl-bub span{font-family:var(--font-mono);font-size:10px;color:#4F6D5E;margin-left:8px;white-space:nowrap}
.fl-tk{display:inline-block;width:15px;height:9px;margin-left:5px;vertical-align:-1px;fill:none;stroke:#2F8FCB;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fl-d2 .ch{padding:2px 8px;font-size:11px}

/* 3 call */
.fl-wave{flex:1;min-width:0;display:flex;align-items:center;gap:3px;height:24px;overflow:hidden}
.fl-wave i{flex:1;max-width:4px;min-width:2px;height:100%;border-radius:2px;background:#34D399;transform:scaleY(.4);transform-origin:center}
.fl-wave i:nth-child(3n){transform:scaleY(.85);background:#10B981}
.fl-wave i:nth-child(4n+1){transform:scaleY(.6)}
.fl-wave i:nth-child(5n+2){transform:scaleY(1);background:#059669}
.fl-wave i:nth-child(7n){transform:scaleY(.25)}
.fl-sec.is-live .fl-row.fl-now .fl-wave i{animation:fl-wave 1.1s ease-in-out infinite}
.fl-wave i:nth-child(2n){animation-delay:-.35s !important}
.fl-wave i:nth-child(3n){animation-delay:-.6s !important}
.fl-wave i:nth-child(5n){animation-delay:-.85s !important}
@keyframes fl-wave{0%,100%{transform:scaleY(.22)}50%{transform:scaleY(1)}}
.fl-dur{font-size:12.5px;color:#047857}

/* 4 visit */
.fl-d4{flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;padding-right:10px}
.fl-selfie{
  position:relative;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:linear-gradient(135deg,#34D399,#047857);color:#fff;font-weight:700;font-size:16px;box-shadow:0 0 0 3px #fff,0 0 0 5px #A7F3D0;
}
.fl-selfie i{position:absolute;right:-5px;bottom:-4px;width:22px;height:22px;border-radius:50%;background:#0E1512;border:2.5px solid #F4F8F6;display:grid;place-items:center;color:#fff}
.fl-selfie .fl-ic{width:11px;height:11px}
.fl-d4 b{display:block;font-size:13px;margin-bottom:7px}
.fl-d4 .ch{padding:2px 8px;font-size:11px}
.fl-map{width:128px;height:74px;border-radius:9px;flex:none;border:1px solid #DCE5E0}
.fl-halo{fill:rgba(5,150,105,.28);transform-box:fill-box;transform-origin:center}
.fl-sec.is-live .fl-row.fl-now .fl-halo{animation:fl-halo 2s ease-out infinite}
@keyframes fl-halo{from{transform:scale(1);opacity:1}to{transform:scale(3.4);opacity:0}}

/* 5 quotation */
.fl-d5 .fl-grow b{display:block;font-size:13px}
.fl-sig{width:104px;height:32px;flex:none}
.fl-sig path{fill:none;stroke:#0E1512;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.fl-sec.fl-js .fl-row.fl-now .fl-sig path{animation:fl-draw 1.5s ease-in-out .5s both}
@keyframes fl-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.fl-otp{display:flex;gap:4px;flex:none}
.fl-otp i{width:20px;height:24px;border-radius:6px;border:1px solid #BFE8D6;background:#fff;display:grid;place-items:center}
.fl-otp i::before{content:"";width:6px;height:6px;border-radius:50%;background:#0E1512}
.fl-sec.fl-js .fl-row.fl-now .fl-otp i::before{animation:fl-pop .35s var(--ease) both}
.fl-otp i:nth-child(1)::before{animation-delay:.35s !important}.fl-otp i:nth-child(2)::before{animation-delay:.5s !important}
.fl-otp i:nth-child(3)::before{animation-delay:.65s !important}.fl-otp i:nth-child(4)::before{animation-delay:.8s !important}
.fl-otp i:nth-child(5)::before{animation-delay:.95s !important}.fl-otp i:nth-child(6)::before{animation-delay:1.1s !important}
@keyframes fl-pop{from{transform:scale(0);opacity:0}to{transform:none;opacity:1}}
.fl-okline{display:inline-flex;align-items:center;gap:6px;color:#047857;font-weight:600;font-size:12px;white-space:nowrap}
.fl-okline .fl-ic{width:15px;height:15px}

/* 6 payment */
.fl-d6{gap:8px}
.fl-amt{font-family:var(--font-display);font-size:17px;letter-spacing:-.02em}
.fl-d6 .ch{padding:2px 8px;font-size:11px}
.fl-meter{height:6px;border-radius:3px;background:#E3EAE6;overflow:hidden}
.fl-meter i{display:block;height:100%;width:100%;border-radius:3px;background:linear-gradient(90deg,#059669,#34D399)}
.fl-sec.fl-js .fl-row.fl-now .fl-meter i{animation:fl-pay 1.8s var(--ease) .3s both}
@keyframes fl-pay{0%{width:0}40%,58%{width:25%}100%{width:100%}}
.fl-pays{gap:8px}
.fl-pays span{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:3px 9px 3px 7px;border-radius:7px;background:#fff;border:1px solid #E1E8E4;font-size:11.5px;color:#27312D;white-space:nowrap}
.fl-pays .fl-ic{width:13px;height:13px;color:#059669}

/* 7 reported back */
.fl-send{gap:12px}
.fl-end{display:inline-flex;align-items:center;gap:8px;flex:none;padding:6px 10px;border-radius:9px;background:#fff;border:1px solid #E1E8E4;white-space:nowrap}
.fl-end b{font-size:13px}
.fl-end .ch{padding:2px 8px;font-size:11px}
.fl-wire{position:relative;flex:1;min-width:18px;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,#9FD9BF 0 5px,transparent 5px 10px)}
.fl-wire::after{content:"";position:absolute;right:-1px;top:50%;width:7px;height:7px;margin-top:-4px;border:solid #059669;border-width:1.8px 1.8px 0 0;transform:rotate(45deg)}
.fl-wire i{position:absolute;left:0;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#059669;box-shadow:0 0 0 3px rgba(16,185,129,.22);opacity:0}
.fl-sec.is-live .fl-row.fl-now .fl-wire i{animation:fl-go 1.9s var(--ease) .4s infinite}
@keyframes fl-go{0%{left:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}

.fl-case-f{margin-top:8px}
.fl-case-f .fl-ic{width:15px;height:15px}

/* ---------- what is kept ---------- */
.fl-aside{display:flex;flex-direction:column;justify-content:center;min-width:0}
.fl-aside-cap{font-size:10.5px;letter-spacing:.14em;color:#7E8984}
.fl-facts-wrap{display:grid;margin-top:18px}
.fl-facts{
  grid-area:1 / 1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0;
  opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s linear .4s;
}
.fl-facts.fl-on{opacity:1;visibility:visible;transition:opacity .4s,visibility 0s}
.fl-facts .fl-fact{white-space:normal;align-items:center;min-height:60px;gap:12px;padding:10px 16px;font-size:13.5px;line-height:1.35;color:#DCE5E1;transform:translateY(8px);opacity:0;transition:opacity .5s var(--ease),transform .6s var(--ease)}
.fl-facts .fl-fact .fl-ic{color:#34D399}
.fl-facts.fl-on .fl-fact{opacity:1;transform:none}
.fl-facts.fl-on .fl-fact:nth-child(1){transition-delay:.14s}
.fl-facts.fl-on .fl-fact:nth-child(2){transition-delay:.22s}
.fl-facts.fl-on .fl-fact:nth-child(3){transition-delay:.30s}
.fl-cta{margin-top:26px;align-self:flex-start;padding:13px 17px}

/* ---------- the three jobs, with values ---------- */
.fl-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.fl-col{position:relative;display:flex;flex-direction:column;padding:30px 34px 0;border-right:1px solid var(--line);min-width:0}
.fl-col:first-child{padding-left:0}
.fl-col:last-child{border-right:0;padding-right:0}
.fl-col::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-hi));
  box-shadow:0 0 14px var(--accent-hi);transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease);
}
.fl-col.fl-on::before{transform:scaleX(1)}
.fl-col-n{display:flex;align-items:center;gap:12px;color:#7E8984;font-size:11px}
.fl-col-n b{font-weight:500;color:#7E8984;transition:color .4s}
.fl-col.fl-on .fl-col-n b{color:var(--accent-hi)}
.fl-col h3{font-family:var(--font-display);font-weight:500;font-size:clamp(21px,1.8vw,25px);letter-spacing:-.025em;line-height:1.2;margin-top:14px}
.fl-col p{color:var(--fg-muted);font-size:15.5px;line-height:1.6;margin-top:10px;max-width:31em}
.fl-col p{margin-bottom:28px}
.fl-vals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:auto;padding-top:26px;border-top:1px dashed var(--line-mid);align-items:start}
.fl-v b{
  display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(34px,3.3vw,50px);letter-spacing:-.04em;line-height:1;white-space:nowrap;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  padding-bottom:.06em;font-variant-numeric:tabular-nums;
}
.fl-v em{display:block;font-style:normal;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8A9590;margin-top:10px;line-height:1.5;max-width:20em;min-height:3em}
.fl-nb{white-space:nowrap}
.fl-vals-3{grid-template-columns:minmax(0,1fr)}
.fl-v-row{display:flex;align-items:center;gap:20px}
.fl-sm{display:none}
.fl-outs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.fl-outs span{padding:6px 9px;border:1px solid var(--line-mid);border-radius:6px;background:rgba(255,255,255,.03);color:#C9D3CF;font-size:10px;letter-spacing:.1em;line-height:1.2}
.fl-outs span:first-child{border-color:rgba(52,211,153,.5);color:var(--accent-hi);background:var(--accent-wash)}

/* ---------- short screens (laptops): a tighter stage ---------- */
@media (min-width:861px) and (max-height:900px){
  .fl-track{grid-template-rows:30px auto;row-gap:16px;padding:22px var(--fl-pad) 22px}
  .fl-node{width:48px;height:48px}
  .fl-st{gap:13px}
  .fl-lab{gap:4px}
  .fl-body{padding-top:28px;padding-bottom:30px}
  .fl-d{height:92px}
  .fl-case{padding:16px 20px 14px}
  .fl-cap{margin:13px 0 4px;padding-top:10px}
  .fl-row-h{height:34px}
  .fl-dot{top:3px}
  .fl-pane h3{margin-top:14px}
  .fl-ctl{padding-top:24px}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .fl-sec{--fl-pad:28px}
  .fl-grp{font-size:10px;letter-spacing:.08em;margin:0 8px}
  .fl-lab b{font-size:13.5px}
  .fl-body{grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:30px 36px}
  .fl-side{grid-column:1;grid-row:1}
  .fl-case{grid-column:2;grid-row:1 / span 2;align-self:center}
  .fl-aside{grid-column:1;grid-row:2;padding-top:0}
  .fl-side,.fl-aside{justify-content:flex-start}
  .fl-side{padding-top:6px}
  .fl-col{padding:28px 24px 0}
}
@media (max-width:860px){
  .fl-sec{--fl-pad:16px}
  .fl-stage{border-radius:18px}

  /* the track turns into a vertical timeline */
  .fl-track{grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:0;padding:14px var(--fl-pad) 16px}
  .fl-track .fl-grp,.fl-track .fl-st{grid-column:1;grid-row:auto}
  .fl-track .fl-grp{flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;margin:0;padding:16px 0 6px 56px;font-size:10px;letter-spacing:.14em}
  .fl-grp i{flex:1;width:auto;height:0;border:0;border-top:1px solid var(--line-mid);border-radius:0;box-shadow:none}
  .fl-grp.fl-on i{box-shadow:none}
  .fl-track .fl-st{flex-direction:row;align-items:center;gap:16px;min-height:52px;text-align:left;padding:0 10px 0 0;border-radius:14px}
  .fl-node{width:40px;height:40px;box-shadow:0 0 0 5px #0A0F0D}
  .fl-node .fl-ic{width:17px;height:17px}
  .fl-st.fl-on .fl-node{transform:scale(1.06)}
  .fl-st.fl-on .fl-node::after{inset:-5px;animation-name:fl-ring-s}
  .fl-lab{flex-direction:row;align-items:baseline;gap:12px}
  .fl-lab b{font-size:16px}
  .fl-rail{left:calc(var(--fl-pad) + 19px);right:auto;top:70px;bottom:40px;width:2px;height:auto}
  .fl-rail u{transform-origin:50% 0;transform:scaleY(var(--fl-k,1));background:linear-gradient(180deg,#059669,#34D399 72%,#A7F3D0)}

  .fl-body{grid-template-columns:minmax(0,1fr);gap:26px;padding:28px var(--fl-pad) 24px}
  .fl-body::before{top:56%;height:620px;width:120%}
  .fl-side,.fl-case,.fl-aside{grid-column:1;grid-row:auto}
  .fl-side{padding-top:0}
  .fl-pane h3{font-size:24px;margin-top:14px}
  .fl-pane p{font-size:15.5px}
  .fl-ctl{padding-top:22px}
  .fl-by{margin-top:18px}
  .fl-outs span{font-size:10px;padding:7px 10px}
  .fl-btn{width:44px;height:44px}

  .fl-case{padding:16px 14px 14px;border-radius:16px}
  .fl-case-h{flex-wrap:wrap;gap:10px 12px}
  .fl-chips-h{width:100%}
  .fl-row{padding-left:38px}
  .fl-row-h b{font-size:14px}
  .fl-when span{display:none}
  .fl-more{margin-left:-38px}
  .fl-d{height:118px;padding:0 12px}
  .fl-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fl-kv span:nth-child(3){display:none}
  .fl-map{width:92px;height:74px}
  .fl-selfie{width:48px;height:48px;font-size:14px}
  .fl-sig{width:74px}
  .fl-pays{flex-wrap:wrap;gap:6px}
  .fl-send{gap:6px}
  .fl-end{padding:5px 7px;gap:5px}
  .fl-end .ch{padding:2px 6px}
  .fl-sum{font-size:14px;line-height:1.35}
  .fl-bub{font-size:14px;line-height:1.4}
  .fl-kv small{letter-spacing:.06em}
  .fl-kv b{font-size:13.5px}
  .fl-xs{display:none}
  .fl-sm{display:inline}
  .fl-facts .fl-fact{min-height:54px}

  .fl-aside-cap{font-size:10px}
  .fl-facts .fl-fact{font-size:14px}
  .fl-cta{align-self:stretch}

  .fl-cols{grid-template-columns:minmax(0,1fr);margin-top:36px}
  .fl-col,.fl-col:first-child,.fl-col:last-child{padding:26px 0 28px;border-right:0;border-bottom:1px solid var(--line)}
  .fl-col:last-child{border-bottom:0;padding-bottom:0}
  .fl-col::before{top:-1px}
  .fl-col p{font-size:15.5px}
  .fl-v b{font-size:40px}
  .fl-v em{font-size:10px}
  .fl-vals-3 .fl-v em{min-height:0}
}

@media (prefers-reduced-motion:reduce){
  .fl-rise,.fl-sec.fl-js .fl-rise:not(.fl-in){opacity:1;transform:none;transition:none}
  .fl-sec *,.fl-sec *::before,.fl-sec *::after{animation:none !important;transition:none !important}
  .fl-mote{display:none}
  .fl-fact{opacity:1;transform:none}
  .fl-wire i{opacity:1;left:50%}
}

/* ============================================================
   SECTION: conversations
   ============================================================ */

/* ============================================================
   CONVERSATIONS  (#conversations, prefix tk-)
   Values on the left, a glowing stage on the right holding a
   light three-pane inbox with dark glass notes around it.
   Fluid CSS, no fixed artboard. Breakpoints: 1280 / 900 / 760 / 560 / 372.
   ============================================================ */

.tk-sec{overflow:hidden;overflow:clip}
.tk-sec::before{
  content:"";position:absolute;right:-12%;top:18%;width:64%;height:70%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(16,185,129,.09),transparent 72%);
}
.tk-sec:not(.is-live) *{animation-play-state:paused !important}

.tk-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}

.tk-grid{
  display:grid;grid-template-columns:minmax(0,.56fr) minmax(0,1.5fr);
  gap:clamp(28px,4vw,64px);align-items:stretch;
}

/* ---------- values ---------- */
.tk-side{min-width:0;display:flex;flex-direction:column}
.tk-vals{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line);flex:1;display:flex;flex-direction:column}
.tk-val{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0 25px;border-top:1px solid var(--line)}
.tk-val::before{
  content:"";position:absolute;left:0;top:-1px;width:56px;height:1px;
  background:linear-gradient(90deg,var(--accent-hi),transparent);opacity:0;transition:opacity .5s;
}
.tk-val:first-child::before,.tk-val:hover::before{opacity:1}
.tk-val-h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.tk-val b{
  font-family:var(--font-display);font-weight:600;font-size:clamp(40px,3.5vw,54px);letter-spacing:-.045em;line-height:.95;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;white-space:nowrap;font-variant-numeric:tabular-nums;
}
.tk-u{font-size:.46em;letter-spacing:-.01em;margin-left:.16em;font-weight:500}
.tk-val em{
  font-style:normal;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent-hi);
}
.tk-val p{margin-top:11px;color:var(--fg-muted);font-size:15px;line-height:1.5;max-width:30em;text-wrap:pretty}
.tk-also{
  display:flex;align-items:center;gap:12px;min-height:59px;color:var(--fg-muted);font-size:14px;line-height:1.45;
}
.tk-also .tk-ic{width:16px;height:16px;color:var(--accent-hi)}

/* ---------- stage ---------- */
.tk-stage{display:flex;flex-direction:column;min-width:0}
.tk-board{
  position:relative;display:grid;grid-template-columns:224px minmax(0,1fr) 208px;gap:16px;
  padding:26px 26px 26px;
  font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815;
}
/* the glow sits behind every card, so it never tints a neighbouring white card */
.tk-board::before{
  content:"";position:absolute;z-index:-1;left:20%;right:16%;top:4%;bottom:12%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(16,185,129,.17),transparent 72%);
}
.tk-col{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-width:0}
.tk-board b{font-weight:600}

/* light cards */
/* shadows fall straight down and fade inside the 16px gap: a card never smudges its neighbour */
.tk-card{
  position:relative;z-index:1;padding:0;overflow:hidden;min-width:0;
  box-shadow:0 30px 44px -28px rgba(0,0,0,.9),0 12px 16px -12px rgba(0,0,0,.55),0 0 0 1px rgba(16,185,129,.10);
}
.tk-thread{
  box-shadow:0 38px 54px -32px rgba(0,0,0,.95),0 14px 18px -14px rgba(0,0,0,.6),0 0 0 1px rgba(16,185,129,.18);
}
.tk-gl{box-shadow:0 22px 30px -22px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07)}
.tk-cap{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}

.tk-av{position:relative}
.tk-av-lg{width:36px;height:36px;font-size:12px}
.tk-mini{width:18px;height:18px;font-size:8px}
.tk-chn{
  position:absolute;right:-5px;bottom:-4px;width:15px;height:15px;border-radius:50%;
  display:grid;place-items:center;background:#059669;color:#fff;box-shadow:0 0 0 2px #fff;font-style:normal;
}
.tk-chn .tk-ic{width:8.5px;height:8.5px;stroke-width:2.3}
.tk-chn-web{background:#2563EB}

/* ----- list ----- */
.tk-list{flex:1;display:flex;flex-direction:column}
.tk-li-h{display:flex;align-items:center;gap:8px;padding:14px 14px 10px}
.tk-li-h h5{flex:1}
.tk-li-un{font-size:11px;color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;border-radius:999px;padding:2px 9px;white-space:nowrap}
.tk-li-un b{font-weight:700;margin-left:2px}
.tk-pills{display:flex;gap:5px;padding:0 14px 12px}
.tk-pill{
  display:inline-flex;align-items:center;gap:5px;height:25px;padding:0 9px;border-radius:999px;
  border:1px solid #DCE2DF;background:#fff;color:#4B5651;font-size:11px;white-space:nowrap;
}
.tk-pill.tk-on{background:#059669;border-color:#059669;color:#fff;font-weight:600}

.tk-row{position:relative;flex:1;display:flex;align-items:center;gap:11px;padding:11px 14px 11px;border-top:1px solid #ECEFED;transition:background .5s}
.tk-row.tk-sel{background:#EFFBF5}
.tk-row.tk-sel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#059669}
.tk-row .tk-av{margin-top:-1px}
.tk-row-m{flex:1;min-width:0}
.tk-row-1{display:flex;align-items:center;gap:6px;min-height:19px}
.tk-row-1 b{flex:1;min-width:0;font-size:12.5px;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-team{flex:none;font-size:9.5px;font-weight:600;padding:1px 7px;border-radius:999px;display:none}
.tk-team.tk-on{display:inline-block}
.tk-row-2{display:flex;align-items:center;gap:6px;margin-top:1px;min-height:18px}
.tk-prev{flex:1;min-width:0;display:block;font-size:11.5px;color:#6B7772;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-prev .tk-ic{display:inline-block;width:11px;height:11px;vertical-align:-1.5px;margin-right:4px;color:#059669}
.tk-prev.tk-new{color:#0E1512;font-weight:500}
.tk-pv-l{display:none}
.tk-unread{
  flex:none;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#059669;color:#fff;
  font-size:10px;font-weight:700;display:grid;place-items:center;
}
.tk-unread[hidden]{display:none}
.tk-unread.tk-pop{animation:tk-pop .5s var(--ease)}
.tk-row-3{display:flex;gap:6px;margin-top:3px;font-family:var(--font-mono);font-size:10px;color:#7A8681}
.tk-row-3 span + span::before{content:"\00b7";margin-right:6px}

/* ----- thread ----- */
.tk-thread{flex:1;display:flex;flex-direction:column}
.tk-th-head{display:flex;align-items:center;gap:11px;padding:14px 16px 12px;border-bottom:1px solid #ECEFED}
.tk-th-who{flex:1;min-width:0}
.tk-th-who b{display:block;font-family:var(--font-display);font-size:15.5px;letter-spacing:-.015em;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-th-who small{display:block;font-family:var(--font-mono);font-size:10.5px;color:#6B7772;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-mode{
  flex:none;display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 8px;border-radius:999px;
  font-size:11px;font-weight:600;white-space:nowrap;background:#D1FAE5;color:#065F46;transition:background .4s,color .4s;
}
.tk-mode i{width:6px;height:6px;border-radius:50%;background:#10B981;transition:background .4s}
.tk-thread[data-mode="team"] .tk-mode{background:#FEF3C7;color:#92400E}
.tk-thread[data-mode="team"] .tk-mode i{background:#F59E0B}

.tk-th-bar{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 16px;background:#FAFBFA;border-bottom:1px solid #ECEFED}
.tk-th-note{flex:1;min-width:0;font-size:11.5px;color:#6B7772;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-hand{height:30px;font-size:12px;flex:none;transition:transform .15s,background .3s,border-color .3s,color .3s,box-shadow .4s}
.tk-hand .tk-hand-spark{display:none}
.tk-thread[data-mode="team"] .tk-hand{border-color:#DCE2DF;color:#3F4A45}
.tk-thread[data-mode="team"] .tk-hand .tk-hand-user{display:none}
.tk-thread[data-mode="team"] .tk-hand .tk-hand-spark{display:block}
.tk-hand.tk-aim{box-shadow:0 0 0 4px rgba(16,185,129,.22);border-color:#059669}
.tk-hand.tk-press{transform:scale(.94);background:#ECFDF5}

.tk-body{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;flex:1 1 auto;min-height:440px;overflow:hidden;
  padding:4px 14px 14px;
  background:
    radial-gradient(rgba(16,24,20,.045) 1px,transparent 1.2px) 0 0/14px 14px,
    linear-gradient(180deg,#F1F5F3,#F6F9F7);
}
.tk-flow{flex:none;display:flex;flex-direction:column;transition:opacity .4s}
.tk-body.tk-fading .tk-flow{opacity:0}
.tk-day{
  align-self:center;margin-top:10px;padding:2px 10px;border-radius:999px;background:rgba(255,255,255,.9);border:1px solid #E4E9E6;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7A8681;
}
.tk-msg,.tk-typing{display:grid;grid-template-rows:1fr}
.tk-msg > div,.tk-typing > div{min-height:0;overflow:hidden;display:flex;padding:0}
.tk-out > div,.tk-typing > div{justify-content:flex-end}
.tk-sys > div{justify-content:center}
.tk-bub{
  margin:9px 2px 2px;max-width:min(86%,310px);padding:8px 11px 6px;border-radius:13px 13px 13px 4px;
  background:#fff;border:1px solid #E4E9E6;color:#111B21;font-size:12.5px;line-height:1.42;text-wrap:pretty;
  box-shadow:0 1px 1px rgba(16,24,20,.05);transform-origin:0 100%;
}
.tk-out .tk-bub{background:#D9FDD3;border-color:#C3EFBB;border-radius:13px 13px 4px 13px;transform-origin:100% 100%}
.tk-who{display:flex;align-items:center;gap:5px;margin-bottom:3px;font-size:10.5px;font-weight:600;color:#047857}
.tk-who .tk-ic{width:11px;height:11px;stroke-width:2}
.tk-meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-top:2px;font-family:var(--font-mono);font-size:10px;color:#6F7B76}
.tk-tk{width:17px;height:11px;fill:none;stroke:#8A9590;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s;max-width:none}
.tk-tk .tk-tk2{transition:opacity .3s}
.tk-tk[data-t="sent"] .tk-tk2{opacity:0}
.tk-tk[data-t="read"]{stroke:#2E9BDB}
.tk-sys-t{
  margin:12px 2px 4px;
  display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;
  background:#FEF3C7;border:1px solid #FDE68A;color:#92400E;font-size:11px;font-weight:500;white-space:nowrap;
}
.tk-sys-t .tk-ic{width:12px;height:12px}

.tk-typing{display:none}
.tk-dots{margin:9px 2px 2px;display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border-radius:13px 13px 4px 13px;background:#D9FDD3;border:1px solid #C3EFBB}
.tk-dots em{font-style:normal;font-size:10.5px;font-weight:600;color:#047857;margin-right:5px;white-space:nowrap}
.tk-dots i{width:5px;height:5px;border-radius:50%;background:#3F9E70;animation:tk-dot 1.1s ease-in-out infinite}
.tk-dots i:nth-of-type(2){animation-delay:.16s}
.tk-dots i:nth-of-type(3){animation-delay:.32s}

.tk-compose{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #ECEFED;background:#fff}
.tk-cbtn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#6B7772;flex:none}
.tk-input{flex:1;min-width:0;height:34px;border:1px solid #DCE2DF;border-radius:17px;padding:0 14px;display:flex;align-items:center;color:#8A9590;font-size:12px;background:#FAFBFA;white-space:nowrap;overflow:hidden}
.tk-send{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#059669;color:#fff;flex:none;box-shadow:0 6px 14px rgba(5,150,105,.35)}
.tk-send .tk-ic{width:14px;height:14px;margin-left:-1px}

/* ----- customer ----- */
.tk-cust{flex:1;display:flex;flex-direction:column;padding:15px 16px 13px}
.tk-cu-who{display:flex;align-items:center;gap:10px;margin:10px 0 4px}
.tk-cu-who div{min-width:0}
.tk-cu-who b{display:block;font-family:var(--font-display);font-size:14.5px;letter-spacing:-.015em;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-cu-who small{display:block;font-family:var(--font-mono);font-size:10.5px;color:#6B7772}
.tk-dl{margin:8px 0 0;flex:1;display:flex;flex-direction:column}
.tk-dl > div{position:relative;flex:1;display:flex;align-items:center;gap:8px;min-height:35px;border-top:1px solid #EEF1EF}
.tk-dl > div::before{content:"";position:absolute;left:-8px;right:-8px;top:2px;bottom:3px;border-radius:8px;background:#E7FBF1;opacity:0;transition:opacity .6s}
.tk-dl dt,.tk-dl dd{position:relative}
.tk-dl dt{flex:none;width:60px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7A8681}
.tk-dl dd{margin:0;min-width:0;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:#0E1512;white-space:nowrap}
.tk-dl > div.tk-lit::before{opacity:1}
.tk-cu-foot{margin-top:4px}

/* ----- dark glass notes ----- */
.tk-gl{padding:13px 14px;color:#E6EEEA;min-width:0}
.tk-gl b{display:block;font-size:12.5px;font-weight:600;color:#F3F6F5;letter-spacing:-.005em}
.tk-gl small{display:block;font-size:11px;line-height:1.4;color:#9FB0A8;margin-top:2px;text-wrap:balance}
.tk-gl-h{display:flex;align-items:center;gap:8px}
.tk-gl-h .tk-ic{color:#34D399}
.tk-gl-m{min-width:0;flex:1}

.tk-g-win{display:flex;align-items:center;gap:12px}
.tk-ring{width:46px;height:46px;flex:none;max-width:none;overflow:visible}
.tk-ring circle{fill:none;stroke-width:3}
.tk-ring-bg{stroke:rgba(255,255,255,.1)}
.tk-ring-fg{stroke:#34D399;stroke-linecap:round;stroke-dasharray:82 100;transform:rotate(-90deg);transform-origin:24px 24px;filter:drop-shadow(0 0 5px rgba(52,211,153,.6))}
.tk-ring text{font-family:var(--font-display);font-size:12.5px;font-weight:600;fill:#F3F6F5;text-anchor:middle;letter-spacing:-.02em}

.tk-sts{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:11px}
.tk-st{display:flex;align-items:center;gap:6px;height:25px;padding:0 9px;border-radius:7px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);font-size:11px;color:#D5DFDA;white-space:nowrap}
.tk-st i{width:6px;height:6px;border-radius:50%;background:#7A8681;flex:none}
.tk-st-p i{background:#FBBF24}
.tk-st-a i{background:#34D399}
.tk-st-r i{background:#F87171}
.tk-st-a{border-color:rgba(52,211,153,.4);background:rgba(16,185,129,.13);color:#fff}
.tk-q{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#9FB0A8}
.tk-q span{flex:1;min-width:0}
.tk-q b{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:12px}
.tk-q em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#34D399;border:1px solid rgba(52,211,153,.4);border-radius:4px;padding:1px 5px}

.tk-seq{list-style:none;margin:11px 0 0;padding:0;position:relative}
.tk-seq::before{content:"";position:absolute;left:8.5px;top:10px;bottom:10px;width:1px;background:linear-gradient(180deg,rgba(52,211,153,.7),rgba(255,255,255,.12))}
.tk-seq li{position:relative;display:flex;align-items:center;gap:9px;height:25px;font-size:11.5px;color:#E6EEEA}
.tk-seq li i{
  position:relative;width:18px;height:18px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-style:normal;font-family:var(--font-mono);font-size:9px;font-weight:600;color:#9FB0A8;background:#101A15;border:1px solid rgba(255,255,255,.18);
}
.tk-seq li:first-child i{background:#10B981;border-color:#10B981;color:#03130D}
.tk-seq li span{flex:1;min-width:0}
.tk-seq li small{margin:0;font-family:var(--font-mono);font-size:10px;color:#9FB0A8;white-space:nowrap}

.tk-blocks{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:12px 22px;gap:5px;margin:11px 0 8px;position:relative}
.tk-blocks i{display:block;border-radius:4px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.1)}
.tk-blocks i:first-child{grid-column:1/-1}
.tk-blocks::after{
  content:"";position:absolute;right:0;bottom:0;width:calc(50% - 2.5px);height:22px;border-radius:4px;
  border:1px dashed rgba(52,211,153,.55);pointer-events:none;
}
.tk-blocks .tk-drag{
  position:relative;z-index:1;border:1px solid rgba(110,231,183,.7);
  background:linear-gradient(180deg,rgba(52,211,153,.38),rgba(16,185,129,.22));
  animation:tk-drag 4.8s var(--ease) infinite;
}
.tk-blocks .tk-drag::after{
  content:"";position:absolute;right:9px;bottom:-8px;width:13px;height:13px;opacity:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 3l14 8.2-6.2 1.5L9.6 19z' fill='%23fff' stroke='%23052014' stroke-width='1.6' stroke-linejoin='round'/></svg>") center/contain no-repeat;
  animation:tk-hand 4.8s var(--ease) infinite;
}

.tk-g-web{display:flex;align-items:center;gap:11px}
.tk-mic{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;color:#03130D;background:linear-gradient(180deg,#6EE7B7,#10B981);box-shadow:0 0 0 4px rgba(16,185,129,.16)}
.tk-wave{display:flex;align-items:center;gap:2.5px;height:20px;flex:none}
.tk-wave i{width:2.5px;height:100%;border-radius:2px;background:#34D399;transform-origin:center;animation:tk-wave .9s ease-in-out infinite}
.tk-wave i:nth-child(1){animation-delay:-.1s;transform:scaleY(.4)}
.tk-wave i:nth-child(2){animation-delay:-.45s;transform:scaleY(.8)}
.tk-wave i:nth-child(3){animation-delay:-.25s;transform:scaleY(.55)}
.tk-wave i:nth-child(4){animation-delay:-.7s}
.tk-wave i:nth-child(5){animation-delay:-.55s;transform:scaleY(.65)}

/* ----- step rail ----- */
.tk-rail{
  grid-column:1/-1;margin:10px -26px -26px;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);
}
.tk-step{
  all:unset;box-sizing:border-box;position:relative;cursor:pointer;
  display:flex;align-items:center;gap:11px;min-height:58px;padding:0 20px;min-width:0;
  border-left:1px solid rgba(255,255,255,.06);color:#87928D;font-size:13.5px;
  transition:color .4s,background .4s;
}
.tk-step:first-child{border-left:0}
.tk-step .mono{font-size:10.5px;color:inherit;transition:color .4s;flex:none}
.tk-step-t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-step::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:1px;
  background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 14px var(--accent-hi);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease),opacity .4s;
}
.tk-step.tk-done{color:#AEB8B4}
.tk-step.tk-done::before{transform:scaleX(1);opacity:.35;box-shadow:none}
.tk-step.tk-on{color:var(--fg);background:linear-gradient(180deg,rgba(16,185,129,.09),transparent)}
.tk-step.tk-on .mono{color:var(--accent-hi)}
.tk-step.tk-on::before{transform:scaleX(1);opacity:1}
.tk-step:hover{color:var(--fg)}
.tk-step:focus-visible{outline:2px solid var(--accent-hi);outline-offset:-3px;border-radius:6px}

/* ---------- motion (only when section.js is running) ---------- */
.tk-js .tk-rise{opacity:0;transform:translateY(22px) scale(.97)}
.tk-js.tk-seen .tk-rise{
  opacity:1;transform:none;
  transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 90ms + 60ms);
}
.tk-js .tk-val.tk-rise,.tk-js .tk-also.tk-rise{transform:translateY(16px)}
.tk-js.tk-seen .tk-val.tk-rise,.tk-js.tk-seen .tk-also.tk-rise{transform:none}
.tk-js .tk-ring-fg{stroke-dasharray:0 100;transition:stroke-dasharray 1.6s var(--ease) .7s}
.tk-js.tk-seen .tk-ring-fg{stroke-dasharray:82 100}

.tk-js .tk-body{flex-basis:440px}
.tk-js .tk-flow{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12px);mask-image:linear-gradient(180deg,transparent 0,#000 12px)}
.tk-js .tk-typing{display:grid}
.tk-js .tk-msg,.tk-js .tk-typing{
  grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .55s var(--ease),opacity .45s ease;
}
.tk-js .tk-msg.tk-shown,.tk-js .tk-typing.tk-on{grid-template-rows:1fr;opacity:1}
.tk-js .tk-typing{transition-duration:.35s,.25s}
.tk-js .tk-msg .tk-bub,.tk-js .tk-msg .tk-sys-t{transform:translateY(10px) scale(.96);transition:transform .6s var(--ease)}
.tk-js .tk-msg.tk-shown .tk-bub,.tk-js .tk-msg.tk-shown .tk-sys-t{transform:none}
.tk-still .tk-msg:not(.tk-shown){display:none}
.tk-js.tk-instant *,.tk-js.tk-instant *::before{transition:none !important}

@keyframes tk-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
@keyframes tk-pop{0%{transform:scale(.3)}60%{transform:scale(1.18)}100%{transform:none}}
@keyframes tk-wave{0%,100%{transform:scaleY(.28)}50%{transform:scaleY(1)}}
@keyframes tk-drag{
  0%,10%{transform:translate(9px,-9px) rotate(-3deg);box-shadow:0 12px 20px rgba(0,0,0,.5)}
  34%,100%{transform:none;box-shadow:0 0 0 rgba(0,0,0,0)}
}
@keyframes tk-hand{0%,30%{opacity:1}44%,100%{opacity:0}}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .tk-grid{grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,44px)}
  .tk-stage{order:-1}
  .tk-board{grid-template-columns:minmax(232px,.8fr) minmax(0,1.25fr) minmax(224px,.75fr);gap:18px}
  .tk-col{gap:18px}
  .tk-rail{margin-top:8px}
  .tk-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:0;border-top:1px solid var(--line)}
  .tk-val{display:block;border-top:0;padding:26px 24px 0 0}
  .tk-val + .tk-val{padding-left:24px;border-left:1px solid var(--line)}
  .tk-val::before{display:none}
  .tk-val-h{flex-direction:column;align-items:flex-start;gap:12px}
  .tk-val p{font-size:14.5px}
  .tk-also{margin-top:28px;min-height:0}
}
@media (max-width:900px){
  /* two panes on top, the notes in rows underneath */
  .tk-board{
    grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;padding:20px;
    grid-template-areas:
      "thread thread thread list list list"
      "thread thread thread cust cust cust"
      "gwin gwin gwin gweb gweb gweb"
      "gtpl gtpl gseq gseq gmail gmail"
      "rail rail rail rail rail rail";
  }
  .tk-rail{grid-area:rail;margin:6px -20px -20px}
  .tk-col{display:contents}
  .tk-thread{grid-area:thread}
  .tk-list{grid-area:list}
  .tk-cust{grid-area:cust}
  .tk-g-win{grid-area:gwin}
  .tk-g-tpl{grid-area:gtpl}
  .tk-g-seq{grid-area:gseq}
  .tk-g-mail{grid-area:gmail}
  .tk-g-web{grid-area:gweb}
  .tk-row-x,.tk-pv-s{display:none}
  .tk-pv-l{display:inline}
  .tk-body{min-height:486px}
  .tk-js .tk-body{flex-basis:486px}
  .tk-vals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tk-val{padding:24px 20px 24px 0}
  .tk-val + .tk-val{padding-left:24px}
  .tk-val:nth-child(odd){padding-left:0;border-left:0}
  .tk-val:nth-child(n+3){border-top:1px solid var(--line)}
  .tk-step{padding:0 14px;gap:9px;font-size:13px}
}
@media (max-width:760px){
  /* one column: the thread first, then the customer, the list and the notes */
  .tk-stage{border-radius:18px}
  .tk-board{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px;
    grid-template-areas:"gwin gwin" "thread thread" "rail rail" "cust cust" "list list" "gtpl gtpl" "gseq gseq" "gmail gweb";
  }
  .tk-rail{margin:0;border:1px solid rgba(255,255,255,.12);border-radius:14px;overflow:hidden;background:rgba(12,20,16,.7)}
  .tk-step::before{top:0}
  .tk-body{min-height:480px}
  .tk-js .tk-body{flex-basis:480px}
  .tk-bub{font-size:13px}
  .tk-dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}
  .tk-dl > div{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:54px;padding:8px 0}
  .tk-dl dt{width:auto}
  .tk-g-web{flex-wrap:wrap;align-content:flex-start;gap:10px 8px}
  .tk-g-web .tk-wave{order:2;margin-left:auto}
  .tk-g-web .tk-gl-m{order:3;flex:0 0 100%}
  .tk-gl small{font-size:12px}
  .tk-gl b{font-size:13.5px}
  .tk-row-1 b{font-size:13.5px}
  .tk-prev{font-size:12.5px}
  .tk-th-note{font-size:12px}
  .tk-dl dd{font-size:13.5px}
  .tk-seq li{font-size:12.5px;height:27px}
  .tk-st{font-size:12px;height:28px}
  .tk-q{font-size:12px}
  .tk-sys-t{font-size:11.5px}
}
@media (max-width:560px){
  .tk-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tk-step{min-height:52px;padding:0 14px}
  .tk-step:nth-child(odd){border-left:0}
  .tk-step:nth-child(n+3){border-top:1px solid rgba(255,255,255,.06)}
  .tk-vals{grid-template-columns:minmax(0,1fr);border-top:0;border-bottom:1px solid var(--line)}
  .tk-val,.tk-val + .tk-val{padding:20px 0 21px;border-left:0;border-top:1px solid var(--line)}
  .tk-val::before{display:block}
  .tk-val-h{flex-direction:row;align-items:baseline;gap:14px}
  .tk-val b{font-size:42px}
  .tk-val p{font-size:15px}
  .tk-also{margin-top:18px;align-items:flex-start}
}
@media (max-width:372px){
  /* narrow phones: the channel is already on the avatar, and the handover button takes the full bar */
  .tk-th-ch,.tk-th-note{display:none}
  .tk-th-bar{padding:8px 12px}
  .tk-hand{flex:1;justify-content:center;height:34px}
}

@media (prefers-reduced-motion:reduce){
  .tk-sec *,.tk-sec *::before{animation:none !important;transition:none !important}
  .tk-rise{opacity:1 !important;transform:none !important}
  .tk-typing{display:none !important}
  .tk-body{height:auto !important}
}

/* ============================================================
   SECTION: revenue
   ============================================================ */

/* ============================================================
   REVENUE AND ADS  (section id "revenue", prefix mn-)
   A closed loop across the top of a glowing stage, two light
   product cards under it, send controls, then five values.
   ============================================================ */

.mn-sec:not(.is-live) *{animation-play-state:paused}

.mn-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.mn-grow{flex:1;min-width:0}

/* reveal (only when the script is running, so the page reads without it) */
.mn-js .mn-rvl{opacity:0;transform:translateY(20px);transition:opacity .95s var(--ease),transform .95s var(--ease);transition-delay:calc(var(--i,0) * 95ms)}
.mn-js.mn-in .mn-rvl{opacity:1;transform:none}

/* ---------- the stage ---------- */
.mn-stage{padding:0}
.mn-halo{position:absolute;left:50%;top:-120px;width:min(1100px,96%);height:520px;transform:translateX(-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(52,211,153,.17),rgba(16,185,129,.06) 55%,transparent 72%)}

/* ---------- the loop ---------- */
.mn-loop{position:relative;padding:62px 134px 56px}
.mn-n-l,.mn-n-r{width:212px}
.mn-ring{position:relative;height:172px;--mn-r:86px}
.mn-ring::before{
  content:"";position:absolute;inset:0;border-radius:var(--mn-r);
  border:1px solid rgba(110,231,183,.26);
  background:radial-gradient(60% 120% at 50% 50%,rgba(16,185,129,.07),transparent 70%);
  box-shadow:inset 0 0 70px rgba(16,185,129,.08),0 0 80px rgba(16,185,129,.07);
}
.mn-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;max-width:none}
.mn-svg path{fill:none;stroke-linecap:round}
.mn-p-dots{stroke:rgba(190,255,225,.5);stroke-width:1.4;stroke-dasharray:1.5 10;animation:mn-dots 1.5s linear infinite}
@keyframes mn-dots{to{stroke-dashoffset:-23}}
.mn-comet{filter:drop-shadow(0 0 5px rgba(110,231,183,.95)) drop-shadow(0 0 16px rgba(16,185,129,.7))}
.mn-sec:not(.mn-js) .mn-comet{display:none}
.mn-p-tail{stroke:rgba(52,211,153,.34);stroke-width:2}
.mn-p-mid{stroke:rgba(110,231,183,.8);stroke-width:2.2}
.mn-p-head{stroke:#F0FFF8;stroke-width:2.6}
.mn-orb{fill:#F4FFFA}

.mn-arw{position:absolute;width:8px;height:8px;border:solid rgba(190,255,225,.8);border-width:1.6px 1.6px 0 0;z-index:1;pointer-events:none}
.mn-arw-t{left:50%;top:0;transform:translate(-60%,-50%) rotate(45deg)}
.mn-arw-b1{left:24%;top:100%;transform:translate(-40%,-50%) rotate(-135deg)}
.mn-arw-b2{left:76%;top:100%;transform:translate(-40%,-50%) rotate(-135deg)}

.mn-nodes{list-style:none;margin:0;padding:0}
.mn-node{
  position:absolute;left:calc(var(--x) * 100%);top:calc(var(--y) * 100%);transform:translate(-50%,-50%);z-index:2;
  display:flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;border-radius:32px;white-space:nowrap;
  background:rgba(9,16,13,.9);
  transition:border-color .6s,box-shadow .6s;
}
.mn-disc{
  position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:rgba(52,211,153,.10);border:1px solid rgba(110,231,183,.34);color:#6EE7B7;
  transition:border-color .45s,color .45s,box-shadow .45s;
}
.mn-disc::before{content:"";position:absolute;inset:-1px;border-radius:50%;background:linear-gradient(180deg,#6EE7B7,#10B981);opacity:0;transition:opacity .45s}
.mn-disc .mn-ic{position:relative;width:17px;height:17px}
.mn-lab b{display:block;font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.015em;line-height:1.2;color:var(--fg)}
.mn-lab small{display:block;font-size:12px;line-height:1.3;color:#8E9B95;margin-top:2px;transition:color .5s}
.mn-node.mn-is-hot{border-color:rgba(110,231,183,.7);box-shadow:0 16px 44px rgba(0,0,0,.5),0 0 0 4px rgba(52,211,153,.10),0 0 38px rgba(52,211,153,.32),inset 0 1px 0 rgba(255,255,255,.1)}
.mn-node.mn-is-hot .mn-disc,.mn-still .mn-disc,.mn-sec:not(.mn-js) .mn-disc{border-color:#A7F3D0;color:#03130D;box-shadow:0 0 22px rgba(52,211,153,.5)}
.mn-node.mn-is-hot .mn-disc::before,.mn-still .mn-disc::before,.mn-sec:not(.mn-js) .mn-disc::before{opacity:1}
.mn-node.mn-is-hot .mn-lab small{color:#A7F3D0}

.mn-tick{position:absolute;left:50%;top:50%;width:min(560px,64%);transform:translate(-50%,-50%);text-align:center;pointer-events:none;transition:opacity .28s,transform .5s var(--ease)}
.mn-tick.mn-is-out{opacity:0;transform:translate(-50%,-38%)}
.mn-tick-k{display:block;font-size:11px;color:var(--accent-hi)}
.mn-tick-t{margin-top:9px;font-family:var(--font-display);font-weight:500;font-size:clamp(18px,1.75vw,24px);letter-spacing:-.025em;line-height:1.22;color:var(--fg);text-wrap:balance}

/* ---------- product cards ---------- */
.mn-cards{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;padding:0 28px;align-items:stretch}
.mn-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:18px 18px 15px;overflow:hidden;
  font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815}
.mn-card b{font-weight:600}
.mn-card .pc-foot{margin-top:auto;padding-top:13px}
.mn-cf{font-size:12.5px}
.mn-ch{gap:12px}
.mn-ch h5{font-size:16px}
.mn-ch small{display:block;margin-top:1px}
.mn-ci{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:#E4F7EE;color:#047857}
.mn-ci .mn-ic{width:17px;height:17px}
.mn-sel{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 10px;border:1px solid #DCE2DF;border-radius:8px;background:#fff;color:#27312D;font-size:12px;font-weight:500;white-space:nowrap;flex:none}
.mn-sel .mn-ic{width:14px;height:14px;color:#7A8681}
.mn-live{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid #A7F3D0;border-radius:20px;background:#ECFDF5;color:#047857;font-size:12px;white-space:nowrap;flex:none}
.mn-live b{color:#064E3B;font-variant-numeric:tabular-nums}
.mn-live .ping{background:#10B981}

.mn-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}
.mn-kpi{border:1px solid #E3E8E5;border-radius:11px;padding:10px 12px 11px;background:#FAFBFA;min-width:0}
.mn-kpi small{display:block;font-size:11.5px;color:#6B7772;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mn-kpi b{display:block;margin-top:3px;font-family:var(--font-display);font-size:21px;letter-spacing:-.025em;line-height:1.1;color:#0E1512}
.mn-kpi-hi{border-color:#A7F3D0;background:linear-gradient(180deg,#E9FBF3,#F8FEFB)}
.mn-kpi-hi b{color:#047857}

/* campaigns table (a grid, so it can re-flow on a phone) */
.mn-tbl{margin-top:14px}
.mn-tr{
  position:relative;display:grid;align-items:center;min-height:52px;border-top:1px solid #ECEFED;
  grid-template-columns:minmax(0,1fr) 46px 48px 42px 62px 76px 54px 72px 66px;
  transition:background .6s;
}
.mn-tr > span{min-width:0;padding:0 7px;text-align:right;font-variant-numeric:tabular-nums;color:#27312D;white-space:nowrap}
.mn-tr > span:first-child{text-align:left;padding-left:12px}
.mn-tr > span:last-child{padding-right:10px}
.mn-th{min-height:44px;border-top:0;border-radius:9px;background:#F5F8F6}
.mn-th > span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;line-height:1.3;color:#6B7772;white-space:normal}
.mn-th + .mn-tr{border-top:0}
.mn-camp b{display:block;color:#0E1512;overflow:hidden;text-overflow:ellipsis}
.mn-camp small{display:block;overflow:hidden;text-overflow:ellipsis}
.mn-money{color:#0E1512 !important;font-weight:600}
.mn-tr::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:#059669;opacity:0;transition:opacity .5s}
.mn-tr.mn-is-story{background:linear-gradient(90deg,#EFFBF5,rgba(239,251,245,0))}
.mn-tr.mn-is-story::before{opacity:1}

.mn-num{
  all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  position:relative;isolation:isolate;
  min-width:34px;height:28px;padding:0 7px;margin-right:-7px;border-radius:7px;
  font-weight:600;color:#047857;font-variant-numeric:tabular-nums;
  text-decoration:underline dotted rgba(4,120,87,.45);text-underline-offset:3px;
}
/* the highlight is its own small plate, so the button can grow to a touch size without the light growing with it */
.mn-num::before{content:"";position:absolute;left:0;right:0;top:50%;height:28px;margin-top:-14px;border-radius:7px;z-index:-1;transition:background .2s}
.mn-num:hover::before{background:#E4F7EE}
.mn-num:focus-visible{outline:2px solid #059669;outline-offset:1px}
.mn-num.mn-is-flash::before{animation:mn-flash 1.5s ease-out}
@keyframes mn-flash{0%{background:#A7F3D0;box-shadow:0 0 0 0 rgba(5,150,105,.75)}60%{background:#D1FAE5}100%{background:transparent;box-shadow:0 0 0 12px rgba(5,150,105,0)}}
@keyframes mn-flash-s{0%{background:#C9F5E1}55%{background:#E4F7EE}100%{background:transparent}}
.mn-pill{display:inline-block;font-style:normal;font-weight:600;padding:3px 8px;border-radius:6px;background:#E4F7EE;color:#065F46}
.mn-pill-top{background:#059669;color:#fff}
.mn-pill-low{background:#FEF3C7;color:#92400E}

/* the leads behind a number */
.mn-drill{
  position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;padding:18px 18px 15px;background:#fff;border-radius:inherit;
  opacity:0;transform:translateX(26px);transition:opacity .35s,transform .55s var(--ease);
}
.mn-drill[hidden]{display:none}
.mn-drill.mn-is-open{opacity:1;transform:none}
.mn-back{all:unset;box-sizing:border-box;cursor:pointer;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;border:1px solid #A7E3CB;color:#047857;background:#fff;transition:background .2s}
.mn-back:hover{background:#E4F7EE}
.mn-back:focus-visible{outline:2px solid #059669;outline-offset:2px}
.mn-back .mn-ic{width:16px;height:16px;transform:rotate(180deg)}
.mn-dfil{display:flex;gap:8px;margin-top:14px;padding:8px;border:1px solid #E3E8E5;border-radius:10px;background:#FAFBFA;overflow:hidden}
.mn-dfil .mn-sel:first-child{flex:1;min-width:0;color:#8A9590;font-weight:400;overflow:hidden}
.mn-dt{margin-top:12px}
.mn-dr{display:grid;align-items:center;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,.95fr) 88px 128px;min-height:50px;border-top:1px solid #ECEFED}
.mn-dr > span{min-width:0;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#27312D}
.mn-dr > span:nth-child(4){text-align:right;font-variant-numeric:tabular-nums;color:#0E1512;font-weight:600}
.mn-dr > span:nth-child(5){text-align:right;color:#6B7772;font-size:12px}
.mn-dh{min-height:36px;border-top:0;border-radius:9px;background:#F5F8F6}
.mn-dh > span,.mn-dh > span:nth-child(4),.mn-dh > span:nth-child(5){font-family:var(--font-mono);font-size:9.5px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:#6B7772}
.mn-dh + div > .mn-dr:first-child{border-top:0}
.mn-who{display:flex !important;align-items:center;gap:10px}
.mn-who .ui-ini{font-style:normal}
.mn-who div{min-width:0}
.mn-who b{display:block;color:#0E1512;overflow:hidden;text-overflow:ellipsis}
.mn-who small{display:block;font-family:var(--font-mono);font-size:11px}
.mn-drill.mn-is-open .mn-dr{animation:mn-rise .6s var(--ease) both;animation-delay:calc(var(--d,0) * 60ms + 120ms)}
@keyframes mn-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* conversions log */
.mn-lt{margin-top:15px}
.mn-lr{position:relative;display:grid;align-items:center;grid-template-columns:62px minmax(0,1fr) 72px 126px 70px;height:52px;border-top:1px solid #ECEFED;overflow:hidden}
.mn-lr > span{min-width:0;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mn-lr > span:first-child{padding-left:10px;padding-right:0}
.mn-lr > span:last-child{padding:0 8px 0 0;text-align:right}
.mn-lh{height:36px;border-top:0;border-radius:9px;background:#F5F8F6}
.mn-lh > span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#6B7772}
.mn-lh > span:nth-child(3){text-align:right}
.mn-lrows > .mn-lr:first-child{border-top:0}
.mn-lrows{transition:opacity .32s}
.mn-lrows.mn-is-swap{opacity:0}
.mn-when{font-family:var(--font-mono);font-size:10.5px;color:#6B7772}
.mn-ev code{font-family:var(--font-mono);font-size:10.5px;letter-spacing:-.01em;color:#0E1512;background:#F1F5F3;border-radius:5px;padding:3px 5px}
.mn-lv{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#0E1512}
.mn-nil{color:#A3ADA8;font-weight:400}
.mn-dest b{display:block;font-weight:500;font-size:12.5px;color:#1F2925;overflow:hidden;text-overflow:ellipsis}
.mn-dest small{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis}
.mn-st .ch{font-style:normal}
.mn-lr.mn-is-new{animation:mn-rowin .9s var(--ease) both}
.mn-lr.mn-is-new::after{content:"";position:absolute;inset:0;background:rgba(16,185,129,.2);animation:mn-fade 2.4s ease-out forwards;pointer-events:none}
@keyframes mn-rowin{from{height:0;opacity:0}to{height:52px;opacity:1}}
@keyframes mn-fade{to{opacity:0}}
.mn-live.mn-is-bump{animation:mn-bump 1.2s ease-out}
@keyframes mn-bump{0%{box-shadow:0 0 0 0 rgba(5,150,105,.7)}100%{box-shadow:0 0 0 10px rgba(5,150,105,0)}}

/* ---------- send controls ---------- */
.mn-foot{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  margin-top:30px;border-top:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);
}
.mn-fcol{min-width:0;padding:20px 28px 24px}
.mn-fcol + .mn-fcol{border-left:1px solid rgba(255,255,255,.07)}
.mn-frow{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;margin-top:12px}
.mn-fk{display:block;color:var(--fg-muted);font-size:11px}
.mn-fk2{color:var(--fg-subtle)}
.mn-seg{display:inline-flex;padding:3px;border-radius:11px;border:1px solid var(--line-mid);background:rgba(255,255,255,.04)}
.mn-seg-b{
  all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  height:36px;padding:0 15px;border-radius:8px;font-size:13.5px;color:var(--fg-muted);white-space:nowrap;
  transition:background .3s,color .3s,box-shadow .3s;
}
.mn-seg-b:hover{color:var(--fg)}
.mn-seg-b:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.mn-seg-b.mn-is-on{color:#fff;background:linear-gradient(180deg,rgba(52,211,153,.26),rgba(16,185,129,.14));box-shadow:inset 0 0 0 1px rgba(110,231,183,.5),0 0 22px rgba(16,185,129,.18)}
.mn-note{font-size:13.5px;color:var(--fg-muted)}
.mn-dry-r{display:inline-flex;align-items:center;gap:8px 10px;flex-wrap:wrap;transition:opacity .35s}
.mn-dry.mn-is-run .mn-dry-r{opacity:.28}
.mn-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;font-size:13px;white-space:nowrap;border:1px solid}
.mn-chip b{font-family:var(--font-display);font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}
.mn-chip-g{background:rgba(16,185,129,.13);border-color:rgba(110,231,183,.34);color:#A7F3D0}
.mn-chip-g b{color:#fff;display:inline-block;min-width:2ch;text-align:right}
.mn-chip-a{background:rgba(245,158,11,.10);border-color:rgba(251,191,36,.32);color:#FCD34D}
.mn-chip-a b{color:#FFF7E0}
/* a fixed width, so the strip does not shift when the label changes to "Routing..." */
.mn-dry-b{padding:11px 15px;gap:9px;margin-left:6px;min-width:146px;justify-content:center}
.mn-dry-b .mn-ic{width:13px;height:13px;color:var(--accent-hi)}
.mn-dry.mn-is-run .mn-dry-b .mn-ic{animation:mn-spin 1s linear infinite}
@keyframes mn-spin{to{transform:rotate(360deg)}}

/* ---------- values ---------- */
.mn-vals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(40px,4.6vw,68px);border-top:1px solid var(--line)}
.mn-val{padding:30px 24px 4px;border-right:1px solid var(--line);min-width:0}
.mn-val:first-child{padding-left:0}
.mn-val:last-child{border-right:0;padding-right:0}
.mn-vn{
  display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(44px,4.4vw,64px);letter-spacing:-.045em;line-height:.95;white-space:nowrap;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;padding-bottom:.06em;
}
.mn-vn small{font-size:.42em;font-weight:500;letter-spacing:-.02em}
.mn-val em{display:block;margin-top:14px;font-style:normal;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:1.45;color:var(--accent-hi)}
.mn-val p{margin-top:12px;font-size:14.5px;line-height:1.58;color:var(--fg-muted)}

/* ---------- responsive ---------- */
/* a 1280-wide laptop keeps the two cards side by side, a little tighter */
@media (min-width:1271px) and (max-width:1320px){
  .mn-loop{padding-left:128px;padding-right:128px}
  .mn-cards{gap:18px;padding:0 22px}
  .mn-card,.mn-drill{padding:17px 16px 14px}
  .mn-lr{grid-template-columns:62px minmax(0,1fr) 72px 120px 70px}
  .mn-fcol{padding-left:22px;padding-right:22px}
}

/* stacked cards: the columns share the width, so no table has an empty middle */
@media (max-width:1270px){
  .mn-cards{grid-template-columns:minmax(0,1fr)}
  .mn-tr{grid-template-columns:minmax(130px,1.7fr) repeat(3,minmax(46px,.7fr)) minmax(62px,.9fr) minmax(76px,1fr) minmax(56px,.9fr) minmax(72px,1fr) minmax(70px,1fr)}
  .mn-th > span,.mn-lh > span,
  .mn-dh > span,.mn-dh > span:nth-child(4),.mn-dh > span:nth-child(5){font-size:10px}
  .mn-lr{grid-template-columns:84px minmax(0,1fr) minmax(84px,.6fr) minmax(0,1.3fr) 96px}
  .mn-lv,.mn-lh > span:nth-child(3){text-align:left}
  .mn-dr{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(88px,.8fr) minmax(128px,.9fr)}
}

/* a narrower ring: the two top stops move apart so the arrow between them has room */
@media (min-width:981px) and (max-width:1180px){
  .mn-node[data-at=".33"]{--x:.29 !important}
  .mn-node[data-at=".67"]{--x:.71 !important}
}

@media (max-width:1180px){
  .mn-vals{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mn-val{grid-column:span 2;padding-bottom:30px}
  .mn-val:nth-child(3){border-right:0;padding-right:0}
  .mn-val:nth-child(n+4){grid-column:span 3;border-top:1px solid var(--line)}
  .mn-val:nth-child(4){padding-left:0}
  .mn-val:nth-child(n+4) p{max-width:30em}
}

/* compact loop: a disc on the line, its name outside the ring */
@media (max-width:980px){
  .mn-loop{padding:78px 64px 84px}
  .mn-ring{height:236px;--mn-r:52px}
  .mn-node,.mn-n-l,.mn-n-r{display:block;width:0;height:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none;
    -webkit-backdrop-filter:none;backdrop-filter:none}
  .mn-node.mn-is-hot{box-shadow:none}
  .mn-disc{position:absolute;left:-24px;top:-24px;width:48px;height:48px;background:#0D1713;border-color:rgba(110,231,183,.4);box-shadow:0 10px 26px rgba(0,0,0,.5)}
  .mn-disc .mn-ic{width:19px;height:19px}
  .mn-lab{position:absolute;left:0;transform:translateX(-50%);text-align:center;white-space:nowrap}
  .mn-lab b{font-size:14px}
  .mn-lab small{display:none}
  .mn-n-t .mn-lab{bottom:32px}
  .mn-n-b .mn-lab,.mn-n-l .mn-lab,.mn-n-r .mn-lab{top:32px}
  .mn-tick{width:68%}
}

@media (max-width:860px){
  .mn-stage{border-radius:18px}
  .mn-cards{padding:0 14px;gap:16px}
  .mn-card{padding:16px 14px 14px}
  .mn-drill{padding:16px 14px 14px}
  .mn-cf{font-size:14px;line-height:1.4;align-items:flex-start}
  .mn-cf .mn-ic{margin-top:2px}
  .mn-foot{grid-template-columns:minmax(0,1fr);margin-top:22px}
  .mn-fcol{padding:20px 14px 22px}
  .mn-fcol + .mn-fcol{border-left:0;border-top:1px solid rgba(255,255,255,.07)}
  .mn-frow{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .mn-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .mn-seg-b{height:44px;padding:0 4px;font-size:14px}
  .mn-note{font-size:14px}
  .mn-chip{height:36px;font-size:14px}
  .mn-dry-b{width:100%;min-height:46px;margin-left:0}
  .mn-vals{grid-template-columns:minmax(0,1fr);border-top:0;margin-top:34px}
  .mn-val,.mn-val:first-child,.mn-val:last-child,.mn-val:nth-child(n){
    display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:16px;align-items:start;
    padding:24px 0;border-right:0;border-top:1px solid var(--line);
  }
  .mn-vn{grid-row:1 / span 2;font-size:52px}
  .mn-val em{margin-top:4px}
  .mn-val p,.mn-val:nth-child(n+4) p{margin-top:8px;font-size:15px;max-width:none}

  /* touch sizes while the tables are still tables */
  .mn-tr{min-height:58px}
  .mn-num{min-width:44px;height:44px}
  .mn-back{width:44px;height:44px}
}

/* below this the nine columns no longer fit beside a readable campaign name */
@media (max-width:720px){
  /* each campaign becomes a small block: name, then two rows of four figures */
  .mn-th{display:none}
  .mn-tr,.mn-th + .mn-tr{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;min-height:0;padding:16px 0 14px;border-top:1px solid #ECEFED;align-items:start}
  .mn-tr > span,.mn-tr > span:first-child,.mn-tr > span:last-child{padding:0;text-align:left;white-space:normal;font-size:13.5px;line-height:28px}
  .mn-tr > span.mn-camp:first-child{grid-column:1 / -1;line-height:1.35;transition:padding .5s var(--ease)}
  .mn-tr.mn-is-story > span.mn-camp:first-child{padding-left:14px}
  .mn-pill{line-height:1.35}
  .mn-camp b{font-size:15px}
  .mn-camp small{font-size:12px}
  .mn-tr > span[data-l]::before{
    content:attr(data-l);display:flex;align-items:flex-end;min-height:27px;margin-bottom:4px;
    font-family:var(--font-mono);font-size:10px;font-weight:400;letter-spacing:.05em;text-transform:uppercase;line-height:1.3;color:#6B7772;
  }
  .mn-tr::before{top:16px;bottom:auto;height:36px}
  .mn-tr.mn-is-story{background:none}
  .mn-num{min-width:44px;height:44px;margin:-8px 0 -8px -8px;padding:0 8px;justify-content:flex-start;font-size:15px;line-height:1;vertical-align:top}
  .mn-num.mn-is-flash::before{animation-name:mn-flash-s}

  /* the leads behind a number: name and stage, then the amount if there is one, then owner and last touch */
  .mn-dh{display:none}
  .mn-dr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who stage" "who rev" "own touch";gap:3px 10px;min-height:0;padding:12px 0}
  .mn-dr > span{padding:0}
  .mn-dr > span:nth-child(1){grid-area:who}
  .mn-dr > span:nth-child(2){grid-area:own;font-size:12.5px;color:#6B7772;padding-left:40px}
  .mn-dr > span:nth-child(3){grid-area:stage;text-align:right}
  .mn-dr > span:nth-child(4){grid-area:rev}
  .mn-dr > span.mn-dn{display:none}
  .mn-dr > span:nth-child(5){grid-area:touch}
}

@media (max-width:640px){
  .mn-loop{padding:74px 40px 80px}
  .mn-ring{height:232px;--mn-r:44px}
  .mn-disc{left:-23px;top:-23px;width:46px;height:46px}
  .mn-tick{width:72%}
  .mn-tick-t{font-size:16.5px;line-height:1.28}
  .mn-tick-k{font-size:10px}

  .mn-ch{flex-wrap:wrap}
  .mn-lsa .mn-ch .mn-sel{order:3;width:100%;justify-content:flex-start;height:40px}
  .mn-lsa .mn-ch .mn-sel .mn-ic:last-child{margin-left:auto}
  .mn-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mn-kpi small{font-size:12px}
  .mn-tr-x{display:none}
  .mn-dfil .mn-sel:nth-child(n+3){display:none}

  /* conversions log */
  .mn-lh{display:none}
  .mn-lr,.mn-lrows > .mn-lr:first-child{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"ev val st" "dest dest when";gap:6px 10px;height:auto;padding:12px 0;border-top:1px solid #ECEFED}
  .mn-lr > span,.mn-lr > span:first-child,.mn-lr > span:last-child{padding:0}
  .mn-ev{grid-area:ev}
  .mn-lv{grid-area:val;font-size:13.5px}
  .mn-st{grid-area:st}
  .mn-dest{grid-area:dest;display:flex !important;gap:6px;align-items:baseline}
  .mn-dest b{font-size:13px;flex:none}
  .mn-dest small{font-size:12px}
  .mn-when{grid-area:when;text-align:right;font-size:10.5px}
  .mn-ev code{font-size:12px}
  .mn-lr.mn-is-new{animation-name:mn-rise}
}

@media (prefers-reduced-motion:reduce){
  .mn-sec *,.mn-sec *::before,.mn-sec *::after{animation:none !important;transition:none !important}
  .mn-js .mn-rvl{opacity:1;transform:none}
  .mn-comet{display:none}
}

/* ============================================================
   SECTION: mobile
   ============================================================ */

/* ============================================================
   MOBILE APP  (#mobile, prefix mb-)
   Three phones fanned on a glowing stage, nine glass badges
   around them, four value numbers underneath.
   The fan is drawn on a 740 x 660 board and scaled with --mb-f.
   ============================================================ */

.mb-sec:not(.is-live) *,
.mb-sec:not(.is-live) *::before,
.mb-sec:not(.is-live) *::after{animation-play-state:paused !important}

.mb-ic{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none;width:16px;height:16px}
.mb-grow{flex:1;min-width:0}

/* ---------- the stage ---------- */
.mb-stage{--mb-f:.88;--mb-h:660px}
.mb-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(460px circle at var(--mb-mx,50%) var(--mb-my,30%),rgba(190,255,225,.12),transparent 62%)}
.mb-stage:hover .mb-spot{opacity:1}

.mb-scene{position:relative;height:var(--mb-h);overflow:hidden}
.mb-scene::before{
  content:"";position:absolute;left:50%;top:0;width:900px;height:var(--mb-h);margin-left:-450px;pointer-events:none;
  background:
    radial-gradient(46% 48% at 50% 46%,rgba(110,231,183,.22),rgba(16,185,129,.08) 55%,transparent 78%),
    radial-gradient(34% 70% at 50% 0%,rgba(190,255,225,.10),transparent 70%);
}

/* slow orbits. The dotted rings are painted once and never move; each pair of
   lights rides a zero-size arm that only rotates, so the browser moves a small
   layer instead of repainting the whole stage on every frame. */
.mb-orbit{position:absolute;left:50%;top:50%;width:1208px;height:660px;margin:-330px 0 0 -604px;pointer-events:none;
  transform:scale(var(--mb-o,1))}
.mb-rings{position:absolute;inset:0;width:1208px;height:660px;max-width:none;overflow:visible;
  -webkit-mask-image:radial-gradient(62% 72% at 50% 50%,#000 46%,transparent 100%);mask-image:radial-gradient(62% 72% at 50% 50%,#000 46%,transparent 100%)}
.mb-rings circle{fill:none;stroke:rgba(167,243,208,.2);stroke-width:1;stroke-dasharray:2 9;vector-effect:non-scaling-stroke}
.mb-sky{position:absolute;left:604px;top:336px;width:0;height:0;transform:scaleY(.6)}
.mb-arm{position:absolute;left:0;top:0;width:0;height:0;animation:mb-spin 110s linear infinite}
.mb-arm-a{opacity:.95}
.mb-arm-b{opacity:.66;rotate:90deg;animation-duration:150s;animation-direction:reverse}
.mb-arm-c{opacity:.4;animation-duration:190s}
.mb-mote{position:absolute;left:calc(var(--mb-r) - 11px);top:-11px;width:22px;height:22px;border-radius:50%;
  background:radial-gradient(circle,#D1FAE5 0,#A7F3D0 14%,rgba(52,211,153,.6) 24%,rgba(52,211,153,.2) 46%,transparent 68%)}
.mb-mote-s{left:calc(var(--mb-r) * -1 - 8px);top:-8px;width:16px;height:16px;opacity:.6}
@keyframes mb-spin{to{transform:rotate(360deg)}}

/* ---------- the fan ---------- */
.mb-fan{position:absolute;left:50%;top:50%;z-index:2;width:740px;height:660px;margin:-330px 0 0 -370px;
  transform:scale(var(--mb-f));transform-origin:50% 50%;transition:opacity 1s var(--ease)}
.mb-tilt{position:absolute;inset:0;
  transform:perspective(1800px) rotateX(calc(var(--mb-ty,0) * -1.6deg)) rotateY(calc(var(--mb-tx,0) * 2.4deg));
  transition:transform .7s var(--ease)}
.mb-floor{position:absolute;left:50%;top:556px;width:940px;height:156px;margin-left:-470px;border-radius:50%;pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%,rgba(190,255,225,.62),rgba(52,211,153,.34) 30%,rgba(16,185,129,.12) 56%,transparent 74%);filter:blur(7px)}
.mb-ring{position:absolute;left:50%;top:582px;width:660px;height:104px;margin-left:-330px;border-radius:50%;pointer-events:none;
  border:1px solid rgba(190,255,225,.55);box-shadow:0 0 22px rgba(52,211,153,.35),inset 0 0 22px rgba(52,211,153,.18);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.25) 45%,#000 100%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.25) 45%,#000 100%)}

.mb-phone{position:absolute;left:50%;top:24px;width:292px;height:604px;margin-left:-146px;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform 1.05s var(--ease);will-change:transform}
.mb-phone[data-pos="c"]{z-index:3;cursor:default;transform:translate3d(0,0,0) rotate(0deg) scale(1)}
.mb-phone[data-pos="l"]{z-index:1;transform:translate3d(-214px,16px,0) rotate(-6.5deg) scale(.84)}
.mb-phone[data-pos="r"]{z-index:1;transform:translate3d(214px,16px,0) rotate(6.5deg) scale(.84)}
.mb-phone[data-pos="l"]:hover{transform:translate3d(-216px,9px,0) rotate(-6.8deg) scale(.85)}
.mb-phone[data-pos="r"]:hover{transform:translate3d(216px,9px,0) rotate(6.8deg) scale(.85)}

.mb-float{animation:mb-float 9s ease-in-out infinite;animation-delay:calc(var(--mb-d,0) * -3s)}
@keyframes mb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
.mb-shadow{position:absolute;left:50%;bottom:-30px;width:236px;height:34px;margin-left:-118px;border-radius:50%;pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.55),rgba(0,0,0,.22) 45%,transparent 72%);filter:blur(5px);
  animation:mb-shade 9s ease-in-out infinite;animation-delay:calc(var(--mb-d,0) * -3s)}
@keyframes mb-shade{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.88);opacity:.62}}

/* the device */
.mb-dev{position:relative;width:292px;height:604px;border-radius:47px;padding:9px;
  background:linear-gradient(150deg,#56635D 0%,#232B27 14%,#0A0D0C 46%,#151A18 78%,#414C47 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.2),
    inset 0 0 0 1.5px rgba(0,0,0,.65),
    inset 0 1.5px 1px rgba(255,255,255,.4),
    inset 0 -1.5px 1px rgba(255,255,255,.12),
    0 34px 60px rgba(0,0,0,.4),
    0 14px 26px rgba(0,0,0,.38),
    0 0 80px rgba(16,185,129,.14);
  -webkit-box-reflect:below 10px linear-gradient(transparent 88%,rgba(255,255,255,.11));
}
/* rim light, the same cut as the stage border */
.mb-dev::before{content:"";position:absolute;inset:-1px;border-radius:48px;padding:1px;pointer-events:none;
  background:linear-gradient(140deg,rgba(190,255,225,.8),rgba(255,255,255,.14) 28%,rgba(255,255,255,.03) 62%,rgba(52,211,153,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.mb-key{position:absolute;right:-3px;width:3.5px;border-radius:0 2px 2px 0;background:linear-gradient(90deg,#1B211E,#56635D 60%,#2A332F)}
.mb-key-a{top:118px;height:74px}
.mb-key-b{top:214px;height:44px}

.mb-screen{position:relative;height:100%;border-radius:38px;overflow:hidden;background:#F3F6F4;
  box-shadow:0 0 0 2px #040605;display:flex;flex-direction:column;
  font-family:var(--font-sans);font-size:11.5px;line-height:1.3;color:#111815;text-align:left;
  -webkit-user-select:none;user-select:none}
.mb-screen b{font-weight:600}
.mb-screen small{display:block;font-size:10.5px;color:#6B7772}
.mb-screen .ch{font-size:10px;padding:2px 6px;border-radius:5px;line-height:1.4}
/* the live dot: the shared one animates a shadow, which repaints the phone on
   every frame, so inside the phones the pulse is a ring that only scales and fades */
.mb-screen .ping{position:relative;width:6px;height:6px;animation:none}
.mb-screen .ping::after{content:"";position:absolute;inset:0;border-radius:50%;background:#34D399;opacity:0;animation:mb-ping 2s infinite}
@keyframes mb-ping{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(3.4);opacity:0}}
/* side phones sit back in the dark */
.mb-screen::after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,14,10,.2),rgba(5,14,10,.4));opacity:0;transition:opacity .9s var(--ease)}
.mb-phone:not([data-pos="c"]) .mb-screen::after{opacity:1}
.mb-phone:not([data-pos="c"]):hover .mb-screen::after{opacity:.4}
.mb-glare{position:absolute;inset:0;z-index:7;pointer-events:none;
  background:
    linear-gradient(116deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,.14) 13%,rgba(255,255,255,0) 27%),
    linear-gradient(146deg,transparent 62%,rgba(8,40,26,.04) 100%)}
.mb-home{position:absolute;left:50%;bottom:7px;z-index:6;width:94px;height:4px;margin-left:-47px;border-radius:2px;background:rgba(14,21,18,.3)}

/* status bar and app bar */
.mb-sb{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;height:30px;padding:5px 20px 0 24px;
  background:#fff;font-weight:600;font-size:11px;color:#0E1512;letter-spacing:.01em}
.mb-cam{position:absolute;left:50%;top:10px;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;
  background:radial-gradient(circle at 36% 34%,#31466A 0,#0A0D0C 48%);box-shadow:0 0 0 1.5px #0A0D0C}
.mb-sb-r{display:flex;align-items:center;gap:4px}
.mb-si{width:14px;height:9px;fill:#0E1512;max-width:none}
.mb-si-l{width:13px;height:9.5px;fill:none;stroke:#0E1512;stroke-width:1.9;stroke-linecap:round}
.mb-si-b{width:21px;height:9.5px}
.mb-si-b .mb-si-o{fill:none;stroke:#0E1512;stroke-width:1.1;stroke-linecap:round;opacity:.5}

.mb-bar{flex:none;display:flex;align-items:center;gap:10px;height:42px;padding:0 15px;background:#fff;border-bottom:1px solid #E6EBE8;color:#27312D}
.mb-bar > b{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.015em;color:#0E1512}
.mb-bar .mb-ic{width:17px;height:17px}
.mb-bar-r{margin-left:auto;display:flex;align-items:center;gap:13px;color:#4B5651}
.mb-bar .mb-back{transform:rotate(180deg)}
.mb-bar .mb-warn{color:#D97706}
.mb-nav{font-family:var(--font-mono);font-size:10px;color:#56625D;border:1px solid #DFE5E2;border-radius:6px;padding:3px 8px;background:#FAFBFA;white-space:nowrap}
.mb-bar-t{min-width:0}
.mb-bar-t b{display:block;font-family:var(--font-display);font-size:13.5px;letter-spacing:-.01em;color:#0E1512;line-height:1.2}
.mb-bar-t small{font-family:var(--font-mono);font-size:9px;line-height:1.3}
.mb-bell{position:relative;display:block}
.mb-bell i{position:absolute;top:-6px;right:-7px;min-width:13px;height:13px;padding:0 3px;border-radius:7px;background:#EF4444;color:#fff;
  font-style:normal;font-weight:700;font-size:8.5px;line-height:13px;text-align:center}

.mb-body{flex:1;min-height:0;overflow:hidden;padding:10px 12px 0;display:flex;flex-direction:column;gap:8px}
.mb-lead,.mb-case,.mb-card{flex:none;border:1px solid #E1E7E4;border-radius:14px;background:#fff;padding:10px 11px;box-shadow:0 1px 2px rgba(16,24,20,.04)}

/* 1. my work */
.mb-att{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;padding:10px 11px;border-radius:14px;border:1px solid #A7F3D0;
  background:linear-gradient(180deg,#E6FAF1,#F6FEFA)}
.mb-att b{display:flex;align-items:center;gap:6px;color:#064E3B;white-space:nowrap}
.mb-att small{color:#3F6B5A;font-size:10px;margin-top:1px;white-space:nowrap}
.mb-selfie{position:relative;width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,#34D399,#047857);color:#fff;font-weight:700;font-size:11px;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #A7F3D0}
.mb-selfie i{position:absolute;right:-5px;bottom:-5px;width:17px;height:17px;border-radius:50%;background:#059669;border:2px solid #EFFBF5;display:grid;place-items:center;color:#fff}
.mb-selfie .mb-ic{width:8.5px;height:8.5px;stroke-width:2.4}
.mb-att-f{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding-top:8px;border-top:1px solid rgba(5,150,105,.16);
  font-size:10.5px;color:#3F6B5A}
.mb-att-f b{display:inline;font-family:var(--font-display);font-size:14px;letter-spacing:-.01em;margin-right:3px}
.mb-att-btn{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:8px;border:1px solid #A7E3CB;background:#fff;color:#047857;font-weight:600;font-size:10.5px}

.mb-lbl{flex:none;display:flex;align-items:center;gap:6px;padding:3px 2px 0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#6B7772}
.mb-lbl b{font-weight:500;letter-spacing:0;background:#E6EBE8;border-radius:5px;padding:1px 5px;color:#3F4A45}
.mb-fil{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-sans);font-size:10.5px;font-weight:500;letter-spacing:0;text-transform:none;color:#27312D}
.mb-fil .mb-ic{width:12px;height:12px}
.mb-fil i{min-width:14px;height:14px;border-radius:7px;background:#059669;color:#fff;font-style:normal;font-size:8.5px;font-weight:700;line-height:14px;text-align:center}

.mb-lead-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mb-lead-h b{font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:-.01em;color:#0E1512;white-space:nowrap}
.mb-screen .mb-num{font-family:var(--font-mono);font-size:9.5px;color:#6B7772;margin-top:1px}
.mb-lead-c{display:flex;align-items:center;gap:5px;margin-top:7px;min-height:24px}
.mb-lead-a{margin-left:auto;display:flex;gap:6px}
.mb-lead-a i{width:24px;height:24px;border-radius:50%;border:1px solid #CDEBDD;background:#F1FBF6;color:#047857;display:grid;place-items:center}
.mb-lead-a .mb-ic{width:11.5px;height:11.5px}

.mb-fab{position:absolute;right:14px;bottom:24px;z-index:5;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 15px 0 11px;border-radius:14px;
  background:#059669;color:#fff;font-weight:600;font-size:11.5px;box-shadow:0 12px 24px rgba(5,150,105,.42),0 2px 6px rgba(0,0,0,.2)}
.mb-fab .mb-ic{width:15px;height:15px;stroke-width:2.1}

/* 2. case */
.mb-pill{font-family:var(--font-mono);font-size:9.5px;color:#4B5651;background:#EEF2F0;border-radius:6px;padding:2px 7px;white-space:nowrap}
.mb-sels{display:flex;gap:6px;margin-top:9px}
.mb-sel{flex:1;min-width:0;height:34px;padding:0 9px;border:1px solid #DCE2DF;border-radius:9px;background:#FAFBFA;display:flex;flex-direction:column;justify-content:center}
.mb-screen .mb-sel small{font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#8A9590;line-height:1.25}
.mb-sel b{font-size:11px;color:#0E1512;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-sel-s{flex:none;width:34px;padding:0;align-items:center;color:#4B5651}
.mb-sel-s .mb-ic{width:14px;height:14px}

.mb-tabrow{flex:none;display:flex;align-items:center;justify-content:space-between;padding:3px;border-radius:999px;background:#E7ECE9}
.mb-tabrow span{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 6px;border-radius:999px;font-size:10px;font-weight:500;color:#56625D;white-space:nowrap}
.mb-tabrow .mb-on{padding:0 9px;background:#fff;color:#047857;font-weight:700;box-shadow:0 1px 3px rgba(16,24,20,.16)}
.mb-tabrow .mb-ic{width:11px;height:11px;stroke-width:2.1}

.mb-tl{flex:none;list-style:none;margin:0;padding:3px 2px 0;position:relative;display:flex;flex-direction:column;gap:11px}
.mb-tl::before{content:"";position:absolute;left:14.5px;top:12px;bottom:10px;width:1px;background:#DCE2DF}
.mb-tl li{position:relative;display:flex;align-items:flex-start;gap:10px}
.mb-tl-i{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;background:#fff;border:1px solid #DCE2DF;color:#4B5651;box-shadow:0 0 0 3px #F3F6F4}
.mb-tl-i .mb-ic{width:12px;height:12px}
.mb-tl-g{background:#059669;border-color:#059669;color:#fff}
.mb-tl b{display:block;font-size:11.5px;color:#0E1512;line-height:1.3}
.mb-screen .mb-tl small{font-size:10px}
.mb-rec{display:flex;align-items:center;gap:8px;margin-top:6px;padding:4px 10px 4px 4px;border:1px solid #DCE2DF;border-radius:999px;background:#fff}
.mb-play{width:22px;height:22px;border-radius:50%;background:#059669;color:#fff;display:grid;place-items:center;flex:none}
.mb-play .mb-ic{width:9px;height:9px;fill:currentColor;stroke-width:1.4;margin-left:1px}
.mb-wave{flex:1;min-width:0;display:flex;align-items:center;gap:2px;height:16px}
.mb-wave i{flex:1;height:var(--h);border-radius:1px;background:#C9D2CD}
.mb-wave i:nth-child(-n+9){background:#10B981}
.mb-rec em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;color:#56625D}
.mb-tl-c{display:flex;align-items:center;gap:9px;margin-top:6px}
.mb-link{font-size:10.5px;font-weight:600;color:#047857}

.mb-next{position:absolute;right:12px;bottom:72px;z-index:5;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px 0 11px;border-radius:17px;
  background:linear-gradient(180deg,#16211C,#0B120F);color:#fff;font-weight:600;font-size:11px;box-shadow:0 12px 24px rgba(0,0,0,.3),inset 0 0 0 1px rgba(52,211,153,.4)}
.mb-next .mb-ic{width:13px;height:13px;color:#34D399}

.mb-act{flex:none;position:relative;z-index:4;display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px 19px;background:#fff;border-top:1px solid #E6EBE8;box-shadow:0 -8px 20px rgba(16,24,20,.05)}
.mb-act span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9.5px;font-weight:500;color:#27312D}
.mb-act .mb-ic{width:17px;height:17px;color:#047857}

/* 3. sales */
.mb-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:18px}
.mb-screen .mb-card-h small{font-size:10.5px;color:#56625D;white-space:nowrap}
.mb-card-h small b{color:#0E1512}
.mb-cap{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590;white-space:nowrap}
.mb-q{display:flex;align-items:center;gap:10px;margin-top:8px}
.mb-q-i{width:32px;height:32px;border-radius:9px;flex:none;display:grid;place-items:center;background:#ECFDF5;border:1px solid #CDEFDE;color:#047857}
.mb-q b{display:block;font-family:var(--font-display);font-size:13px;letter-spacing:-.01em;color:#0E1512;line-height:1.25}
.mb-q-a{display:flex;gap:11px;color:#6B7772}
.mb-meter{height:6px;border-radius:3px;background:#EEF2F0;overflow:hidden;margin-top:9px}
.mb-meter i{display:block;width:60%;height:100%;border-radius:3px;background:linear-gradient(90deg,#059669,#34D399)}
.mb-screen .mb-rem{margin-top:5px;font-size:10px}
.mb-pay{display:flex;align-items:center;gap:10px;margin-top:7px;padding-top:7px;border-top:1px solid #EEF1EF}
.mb-pay b{display:block;font-size:11.5px;color:#0E1512;line-height:1.25}
.mb-screen .mb-pay small{font-size:10px}
.mb-proof{position:relative;width:28px;height:28px;border-radius:7px;flex:none;border:1px solid #DCE2DF;
  background:
    linear-gradient(#BFC9C4,#BFC9C4) 6px 7px/11px 1.5px no-repeat,
    linear-gradient(#DDE3E0,#DDE3E0) 6px 11.5px/15px 1.5px no-repeat,
    linear-gradient(#DDE3E0,#DDE3E0) 6px 16px/9px 1.5px no-repeat,
    #fff}
.mb-proof i{position:absolute;right:-4px;bottom:-4px;width:13px;height:13px;border-radius:50%;background:#059669;border:2px solid #fff}
.mb-proof i::after{content:"";position:absolute;left:3px;top:1px;width:2.5px;height:5px;border:solid #fff;border-width:0 1.4px 1.4px 0;transform:rotate(42deg)}
.mb-pad{position:relative;height:58px;margin-top:8px;border:1px dashed #BFC9C4;border-radius:10px;background:#FAFBFA;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px}
.mb-pad svg{position:absolute;left:50%;top:3px;width:188px;height:42px;margin-left:-94px;max-width:none}
.mb-pad path{fill:none;stroke:#0E1512;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.mb-screen .mb-pad small{font-size:9px;color:#8A9590}
.mb-btns{display:flex;gap:6px;margin-top:8px}
.mb-screen .ui-btn{flex:1;justify-content:center;height:28px;padding:0 8px;border-radius:8px;font-size:10.5px}

/* the front phone comes alive */
.mb-js .mb-phone[data-pos="c"] .mb-pad path{animation:mb-draw 1.9s ease-in-out .55s both}
.mb-js .mb-phone[data-pos="c"] .mb-meter i{animation:mb-meter 1.5s var(--ease) .45s both}
.mb-js .mb-phone[data-pos="c"] .mb-wave i{animation:mb-wave 1.2s var(--ease) .3s both;transform-origin:50% 50%}
.mb-js .mb-phone[data-pos="c"] .mb-wave i:nth-child(3n){animation-delay:.42s}
.mb-js .mb-phone[data-pos="c"] .mb-wave i:nth-child(3n+2){animation-delay:.54s}
@keyframes mb-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes mb-meter{from{width:25%}to{width:60%}}
@keyframes mb-wave{from{transform:scaleY(.2)}to{transform:scaleY(1)}}

/* ---------- glass badges ---------- */
.mb-badges{list-style:none;margin:0;padding:0}
.mb-badge{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:14px}
.mb-bi{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;color:#6EE7B7;
  background:linear-gradient(180deg,rgba(52,211,153,.2),rgba(52,211,153,.06));box-shadow:inset 0 0 0 1px rgba(110,231,183,.28),0 0 18px rgba(16,185,129,.16)}
.mb-bt{min-width:0}
.mb-bt b{display:block;font-family:var(--font-display);font-weight:500;font-size:13px;letter-spacing:-.012em;line-height:1.25;color:#fff;white-space:nowrap}
.mb-bt small{display:block;font-size:12px;line-height:1.35;color:#9FB0A8;white-space:nowrap;margin-top:1px}

/* ---------- foot: choose a screen ---------- */
.mb-foot{position:relative;z-index:5;display:flex;align-items:center;gap:24px;padding:14px 22px 16px;
  border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent)}
.mb-tabs{flex:none;display:flex;gap:4px;padding:4px;border:1px solid var(--line-mid);border-radius:13px;background:rgba(255,255,255,.03)}
.mb-tab{all:unset;box-sizing:border-box;position:relative;overflow:hidden;cursor:pointer;display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 18px 0 14px;border-radius:10px;
  font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:-.012em;color:var(--fg-muted);white-space:nowrap;
  transition:color .3s,background .3s,box-shadow .3s}
.mb-tab:hover{color:var(--fg)}
.mb-tab:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.mb-tab[aria-pressed="true"]{color:#fff;background:rgba(52,211,153,.1);box-shadow:inset 0 0 0 1px rgba(52,211,153,.36)}
.mb-tab-n{font-size:10px;color:#7F8A85;transition:color .3s}
.mb-tab[aria-pressed="true"] .mb-tab-n{color:var(--accent-hi)}
.mb-tab-bar{position:absolute;left:0;right:0;bottom:0;height:2px;opacity:0;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--accent),var(--accent-hi))}
.mb-auto .mb-tab[aria-pressed="true"] .mb-tab-bar{opacity:1;animation:mb-fill 8s linear forwards}
.mb-auto .mb-stage:hover .mb-tab[aria-pressed="true"] .mb-tab-bar,
.mb-auto .mb-stage:focus-within .mb-tab[aria-pressed="true"] .mb-tab-bar{animation-play-state:paused}
@keyframes mb-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.mb-capt{flex:1;min-width:0;max-width:40em;color:var(--fg-muted);font-size:14.5px;line-height:1.45;text-wrap:balance}
.mb-hint{flex:none;display:inline-flex;align-items:center;gap:8px;font-size:10.5px;color:#8A9590}
.mb-hint .mb-ic{width:14px;height:14px;color:var(--accent-hi)}

/* ---------- values ---------- */
.mb-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(36px,4.4vw,64px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mb-val{position:relative;padding:32px 28px 34px;border-right:1px solid var(--line)}
.mb-val:first-child{padding-left:0}
.mb-val:last-child{border-right:0;padding-right:0}
.mb-val::before{content:"";position:absolute;left:28px;top:-1px;width:34px;height:1px;background:var(--accent-hi);box-shadow:0 0 12px var(--accent-hi)}
.mb-val:first-child::before{left:0}
.mb-val b{display:block;width:fit-content;font-family:var(--font-display);font-weight:600;font-size:clamp(38px,4vw,58px);letter-spacing:-.045em;line-height:1;white-space:nowrap;padding-bottom:.06em;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.mb-val em{display:block;margin-top:14px;font-style:normal;font-size:11px;letter-spacing:.09em;color:#C9D3CF;line-height:1.45}
.mb-val p{margin-top:8px;color:var(--fg-muted);font-size:14.5px;line-height:1.5;max-width:22em}

/* ---------- entrance (only when the script is running) ---------- */
.mb-js .mb-fan{opacity:0}
.mb-js.mb-in .mb-fan{opacity:1}
.mb-js:not(.mb-in) .mb-phone[data-pos]{transform:translate3d(0,34px,0) rotate(0deg) scale(.9)}
.mb-js .mb-badge{opacity:0;translate:0 14px;transition:opacity .9s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--i) * 80ms + 350ms)}
.mb-js .mb-bl{translate:-18px 0}
.mb-js .mb-br{translate:18px 0}
.mb-js.mb-in .mb-badge{opacity:1;translate:0 0}
.mb-js .mb-val{opacity:0;translate:0 16px;transition:opacity .9s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--i) * 90ms + 200ms)}
.mb-js.mb-in .mb-val{opacity:1;translate:0 0}

/* ---------- wide: badges sit around the phones ---------- */
@media (min-width:1280px){
  .mb-badges{position:absolute;left:0;right:0;top:0;height:var(--mb-h);z-index:4;pointer-events:none}
  .mb-badge{position:absolute;top:calc(var(--y) * 1%);width:246px;transform:translateY(-50%);
    animation:mb-bob 8s ease-in-out infinite;animation-delay:calc(var(--i) * -1.3s)}
  .mb-bl{right:calc(100% - var(--x) * 1%)}
  .mb-br{left:calc(var(--x) * 1%)}
}
@keyframes mb-bob{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 6px))}}

/* ---------- compact: phones on top, badges in a grid below ---------- */
@media (max-width:1279px){
  .mb-stage{--mb-f:.9;--mb-h:650px;display:flex;flex-direction:column}
  .mb-scene{order:1}
  .mb-foot{order:2}
  .mb-fan{top:14px;margin-top:0;transform-origin:50% 0}
  .mb-badges{order:3;position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
    padding:20px 20px 22px;border-top:1px solid rgba(255,255,255,.07)}
  .mb-js .mb-bl,.mb-js .mb-br{translate:0 14px}
  .mb-js.mb-in .mb-bl,.mb-js.mb-in .mb-br{translate:0 0}
  .mb-bt b,.mb-bt small{white-space:normal}
  .mb-hint{display:none}
}
@media (max-width:980px){
  .mb-badges{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mb-badge:last-child{grid-column:1 / -1}
  .mb-vals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mb-val{padding:28px 24px 30px}
  .mb-val:nth-child(odd){padding-left:0}
  .mb-val:nth-child(odd)::before{left:0}
  .mb-val:nth-child(even){border-right:0;padding-right:0}
  .mb-val:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .mb-val::before{left:24px}
}
@media (max-width:860px){
  .mb-bt b{font-size:15px}
  .mb-bt small{font-size:14px}
  .mb-badge{padding:10px 14px 10px 10px;gap:12px}
  .mb-foot{flex-direction:column;align-items:stretch;gap:12px;padding:14px 14px 16px}
  .mb-tabs{width:100%}
  .mb-tab{flex:1;min-width:0;justify-content:center;padding:0 8px}
  .mb-capt{max-width:none;min-height:2.9em}
}
@media (max-width:600px){
  .mb-stage{--mb-h:600px}
  .mb-badges{grid-template-columns:1fr;gap:8px;padding:14px 14px 16px}
  .mb-tab{font-size:14.5px;gap:7px}
  .mb-val{padding:24px 16px 26px}
  .mb-val::before{left:16px}
  .mb-val b{font-size:clamp(34px,10.4vw,44px)}
  .mb-val em{font-size:10px;margin-top:12px}
  .mb-val p{font-size:14px}
}
/* very narrow phones: a label may take two lines, so keep the sentences level */
@media (max-width:374px){
  .mb-val em{min-height:2.9em}
}

/* ---------- reduced motion: everything finished, nothing moving ---------- */
@media (prefers-reduced-motion:reduce){
  .mb-sec *,.mb-sec *::before,.mb-sec *::after{animation:none !important}
  .mb-phone,.mb-tilt,.mb-fan,.mb-screen::after,.mb-tab,.mb-tab-n{transition:none}
  .mb-tilt{transform:none}
  .mb-js .mb-fan{opacity:1}
  .mb-js:not(.mb-in) .mb-phone[data-pos="c"]{transform:translate3d(0,0,0) rotate(0deg) scale(1)}
  .mb-js:not(.mb-in) .mb-phone[data-pos="l"]{transform:translate3d(-214px,16px,0) rotate(-6.5deg) scale(.84)}
  .mb-js:not(.mb-in) .mb-phone[data-pos="r"]{transform:translate3d(214px,16px,0) rotate(6.5deg) scale(.84)}
  .mb-js .mb-badge,.mb-js .mb-val{opacity:1;translate:0 0;transition:none}
}

/* ============================================================
   SECTION: partners
   ============================================================ */

/* ============================================================
   PARTNERS AND COMMISSION   (section id "partners", prefix pt-)
   A three-level partner tree on a glowing stage, with the
   commission rule and the statement beside it as light cards.
   ============================================================ */

.pt-sec:not(.is-live) *{animation-play-state:paused}
.pt-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* own reveal, so it works with or without the site script */
.pt-sec.pt-js .pt-rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.pt-sec.pt-js .pt-rv.pt-in{opacity:1;transform:none}

.pt-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.pt-grow{flex:1;min-width:0}

/* ---------- stage ---------- */
.pt-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch}

/* ---------- the tree ---------- */
.pt-tree{position:relative;display:flex;flex-direction:column;padding:30px 26px 30px 30px;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:#E6EEEA;transition:opacity .35s}
.pt-tree.pt-reset{opacity:.35}
.pt-tree b{font-weight:600}
.pt-halo{position:absolute;left:50%;top:4%;width:92%;height:66%;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(52,211,153,.18),rgba(16,185,129,.06) 52%,transparent 72%)}

.pt-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.pt-top .badge{padding:9px 13px;font-size:12.5px}
.pt-top .badge b{font-family:var(--font-mono);font-size:11px;font-weight:500;color:#9FB0A8;margin-left:2px}
.pt-top .pt-ic{color:#34D399}
.pt-live{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}

.pt-row{position:relative;z-index:1;display:grid}
.pt-row-1{grid-template-columns:minmax(0,1fr)}
.pt-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pt-row-3{grid-template-columns:repeat(4,minmax(0,1fr))}
.pt-cell{display:flex;justify-content:center;min-width:0;padding:0 5px}
.pt-rowcap{display:none}

/* nodes */
.pt-node{position:relative;min-width:0;border-radius:14px;transition:border-color .5s,box-shadow .5s,background-color .5s}
.pt-bp,.pt-ba{display:flex;align-items:center;gap:12px}
.pt-bp{width:min(100%,334px);padding:14px 18px 14px 14px}
.pt-ba{width:min(100%,286px);padding:12px 16px 12px 12px}
.pt-ga{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(100%,146px);padding:15px 8px 13px}

.pt-node .pt-av{font-style:normal;box-shadow:0 0 0 3px rgba(255,255,255,.07)}
.pt-bp .pt-av{width:44px;height:44px;font-size:13.5px}
.pt-ba .pt-av{width:38px;height:38px;font-size:12px}
.pt-ga .pt-av{width:36px;height:36px;font-size:11.5px;margin-bottom:10px}

.pt-who{display:block;flex:1;min-width:0}
.pt-name{display:block;max-width:100%;color:#fff;font-family:var(--font-display);letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-bp .pt-name{font-size:16px}
.pt-ba .pt-name{font-size:14.5px}
.pt-ga .pt-name{font-size:13.5px}
.pt-role{display:block;font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8FA39A;margin-top:5px;white-space:nowrap}
.pt-ga .pt-role{font-size:9px;letter-spacing:.08em;margin-top:4px}

.pt-earn{display:block;flex:none;text-align:right}
.pt-earn small{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:6px;font-size:10.5px;color:#8FA39A}
.pt-amt{display:block;font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1;color:#CBD7D1;transition:color .5s}
.pt-bp .pt-amt{font-size:24px}
.pt-ba .pt-amt{font-size:19px}
.pt-ga .pt-amt{font-size:17px;margin-top:11px}
.pt-node.pt-on .pt-amt{
  background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}

.pt-rate{display:inline-block;font-style:normal;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1;padding:3px 6px;border-radius:5px;
  background:rgba(52,211,153,.13);color:#6EE7B7;border:1px solid rgba(52,211,153,.26);white-space:nowrap}

/* the amount that has just arrived */
.pt-plus{position:absolute;right:14px;top:-11px;z-index:3;padding:4px 8px;border-radius:7px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;line-height:1;color:#03130D;white-space:nowrap;
  background:linear-gradient(180deg,#A7F3D0,#34D399);box-shadow:0 6px 18px rgba(16,185,129,.45),inset 0 1px 0 rgba(255,255,255,.6);
  opacity:0;transform:translateY(8px) scale(.9);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.pt-plus:empty{display:none}
.pt-node.pt-on .pt-plus{opacity:1;transform:none}
/* a Growth Associate swaps its rate for the amount, in place */
.pt-slot{display:grid;justify-items:center;align-items:center;margin-top:9px;min-height:19px}
.pt-slot > *{grid-area:1/1}
.pt-slot .pt-rate{transition:opacity .35s}
.pt-slot .pt-plus{position:static;box-shadow:0 4px 14px rgba(16,185,129,.4),inset 0 1px 0 rgba(255,255,255,.6)}
.pt-ga.pt-on .pt-slot .pt-rate{opacity:0}

/* ports, where a connector meets a node */
.pt-node::before,.pt-node::after{content:"";position:absolute;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;z-index:2;
  background:#0B1410;border:1.2px solid rgba(190,255,225,.4);transition:background-color .4s,border-color .4s,box-shadow .4s,opacity .4s}
.pt-node::before{top:-4px}
.pt-node::after{bottom:-4px}
.pt-bp::before{display:none}
.pt-ga::after{opacity:0}
.pt-ga.pt-src::after{opacity:1}
.pt-node.pt-on::before,.pt-node.pt-on::after{background:#A7F3D0;border-color:#A7F3D0;box-shadow:0 0 10px 2px rgba(52,211,153,.8)}

.pt-node.pt-on{border-color:rgba(110,231,183,.6);background-color:rgba(10,32,23,.8);
  box-shadow:0 16px 44px rgba(0,0,0,.45),0 0 0 1px rgba(52,211,153,.2),0 0 40px rgba(16,185,129,.26),inset 0 1px 0 rgba(255,255,255,.1)}
.pt-node.pt-hit{animation:pt-k-hit 1.1s var(--ease)}
@keyframes pt-k-hit{
  0%{box-shadow:0 16px 44px rgba(0,0,0,.45),0 0 0 0 rgba(110,231,183,.55),0 0 40px rgba(16,185,129,.26)}
  100%{box-shadow:0 16px 44px rgba(0,0,0,.45),0 0 0 11px rgba(110,231,183,0),0 0 40px rgba(16,185,129,.26)}
}

/* connectors: drawn in percentages so they follow the columns at any width */
.pt-links{position:relative;z-index:0;flex:1 1 64px;min-height:64px}
.pt-wire{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;max-width:none}
.pt-wire path{fill:none;stroke:rgba(190,255,225,.2);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linecap:round}
.pt-wire-lit{filter:drop-shadow(0 0 6px rgba(52,211,153,.95))}
.pt-wire-lit path{stroke:#86EFC0;stroke-width:1.7;opacity:0;transition:opacity .7s}
.pt-wire-lit path.pt-lit{opacity:1}

/* the amount travelling up a connector */
.pt-dot{position:absolute;left:0;top:0;z-index:2;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;pointer-events:none;will-change:transform;
  background:#ECFDF5;box-shadow:0 0 0 3px rgba(52,211,153,.28),0 0 16px 4px rgba(52,211,153,.95)}
.pt-dot em{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-style:normal;font-family:var(--font-mono);font-size:10.5px;font-weight:600;line-height:1;white-space:nowrap;
  padding:4px 7px;border-radius:6px;background:rgba(5,20,14,.92);border:1px solid rgba(110,231,183,.5);color:#A7F3D0}
.pt-dot.pt-left em{left:auto;right:16px}

/* from the deal up to the Growth Associate who owns it */
.pt-drop{position:relative;z-index:0;flex:.45 1 34px;min-height:34px}
.pt-drop > i{position:absolute;left:var(--pt-x,37.5%);top:3px;bottom:0;width:0;border-left:1.2px solid rgba(190,255,225,.22);transition:left .8s var(--ease),border-color .5s,box-shadow .5s}
.pt-drop.pt-lit > i{border-left-color:#86EFC0;box-shadow:0 0 9px 1px rgba(52,211,153,.85)}

/* the deal that earns the commission */
.pt-deal{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,.95fr) minmax(0,1.2fr) auto;align-items:center;gap:14px;
  padding:13px 16px;border-radius:14px;color:#111815;font-size:13px;transition:opacity .3s}
.pt-deal.pt-swap{opacity:.4}
.pt-deal::before{content:"";position:absolute;left:var(--pt-x,37.5%);top:-5px;width:8px;height:8px;margin-left:-4px;border-radius:50%;
  background:#fff;border:1.5px solid #10B981;box-shadow:0 0 10px rgba(52,211,153,.9);transition:left .8s var(--ease)}
.pt-deal .ui-ini{font-style:normal;width:34px;height:34px;font-size:11px}
.pt-deal-who{min-width:0}
.pt-deal-who b{display:block;font-family:var(--font-display);font-size:14.5px;letter-spacing:-.015em;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-deal-who small{display:block;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-deal-ev{min-width:0}
.pt-ev{display:flex;align-items:center;gap:7px;font-size:12px;color:#27312D;white-space:nowrap;font-variant-numeric:tabular-nums}
.pt-ev-ic{position:relative;width:14px;height:14px;border-radius:50%;border:1.5px solid #C2CAC6;background:#fff;flex:none;transition:background-color .35s,border-color .35s}
.pt-ev-ic::after{content:"";position:absolute;left:4px;top:1.5px;width:3px;height:6px;border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(42deg);opacity:0;transition:opacity .3s}
.pt-deal[data-s="done"] .pt-ev-ic{background:#059669;border-color:#059669}
.pt-deal[data-s="done"] .pt-ev-ic::after{opacity:1}
.pt-meter{position:relative;display:block;height:6px;margin-top:8px;border-radius:3px;background:#E9EEEB}
.pt-meter u{display:block;height:100%;width:var(--pt-w,25%);border-radius:3px;background:linear-gradient(90deg,#059669,#34D399);text-decoration:none}
.pt-meter i{position:absolute;left:25%;top:-3px;bottom:-3px;width:0;border-left:1.5px dashed #059669}
.pt-deal:not([data-t="pay"]) .pt-meter{display:none}
.pt-deal-chip{font-weight:600;font-variant-numeric:tabular-nums;transition:background-color .35s,color .35s}
.pt-deal[data-s="wait"] .pt-deal-chip{background:#EFF2F0;color:#56625D}

.pt-note{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:18px;font-size:10px;letter-spacing:.1em;color:#7C8A84}
.pt-note span{display:inline-flex;align-items:center;gap:8px}

/* ---------- the two cards ---------- */
.pt-side{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px;padding:30px 30px 30px 8px;
  font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815}
.pt-card{padding:16px 20px 17px}
.pt-card b{font-weight:600}
.pt-card .ch{font-style:normal}
.pt-cap{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590;margin:14px 0 7px}

/* rule */
.pt-trigs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pt-trig{-webkit-appearance:none;appearance:none;position:relative;display:flex;align-items:center;gap:9px;min-height:38px;margin:0;padding:0 34px 0 12px;
  border:1px solid #DCE2DF;border-radius:10px;background:#fff;color:#27312D;font-family:var(--font-sans);font-size:12.5px;font-weight:500;line-height:1.2;text-align:left;cursor:pointer;
  transition:border-color .25s,background-color .25s,color .25s,box-shadow .25s}
.pt-trig > span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-trig .pt-ic{color:#7A8681;transition:color .25s}
.pt-trig::after{content:"";position:absolute;right:12px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;border:1.5px solid #C2CAC6;background:#fff;transition:border-color .25s,box-shadow .25s}
.pt-trig:hover{border-color:#A7E3CB}
.pt-trig.pt-on{border-color:#059669;background:#ECFDF5;color:#064E3B;font-weight:600;box-shadow:inset 0 0 0 1px #059669}
.pt-trig.pt-on .pt-ic{color:#059669}
.pt-trig.pt-on::after{border-color:#059669;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 8px #059669}

.pt-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.pt-line .pt-cap{margin:0}
.pt-seg{display:inline-flex;padding:3px;border-radius:9px;background:#EEF2F0}
.pt-seg button{-webkit-appearance:none;appearance:none;margin:0;border:0;background:transparent;min-height:30px;padding:0 13px;border-radius:7px;
  font-family:var(--font-sans);font-size:12px;font-weight:500;color:#56625D;cursor:pointer;white-space:nowrap;transition:background-color .25s,color .25s,box-shadow .25s}
.pt-seg button.pt-on{background:#fff;color:#047857;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.14)}

.pt-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pt-rates > span{display:block;min-width:0;padding:8px 12px 9px;border-radius:10px;background:#F5F8F6;border:1px solid #E6EBE8}
.pt-rates small{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-rates b{display:block;margin-top:3px;font-family:var(--font-display);font-size:19px;letter-spacing:-.025em;line-height:1.15;color:#0E1512}

.pt-trig:focus-visible,.pt-seg button:focus-visible,.pt-pay:focus-visible{outline:2px solid #10B981;outline-offset:2px}

.pt-hold{display:flex;align-items:center;gap:10px;margin-top:10px;padding:9px 12px;border-radius:10px;border:1px dashed #8FD9BC;background:#F1FCF7;color:#1F2925;font-size:12.5px;
  transition:opacity .4s,border-color .4s,background-color .4s}
.pt-hold .pt-ic{color:#059669}
.pt-hold b{color:#047857}
.pt-hold.pt-off{opacity:.5;border-color:#DCE2DF;background:#FAFBFA}
.pt-hold.pt-off .pt-ic,.pt-hold.pt-off b{color:#56625D}

/* statement */
.pt-pay{-webkit-appearance:none;appearance:none;margin:0;height:34px;cursor:pointer;font-family:var(--font-sans);transition:transform .18s var(--ease),background-color .3s,border-color .3s,color .3s,box-shadow .3s;
  box-shadow:0 6px 16px rgba(5,150,105,.28)}
.pt-pay:hover{background:#047857;border-color:#047857}
.pt-pay.pt-press{transform:scale(.94)}
.pt-pay.pt-done{background:#F1F5F3;border-color:#DCE2DF;color:#56625D;box-shadow:none;cursor:default}
.pt-stmt{display:flex;flex-direction:column}
.pt-table{display:flex;flex-direction:column;flex:1;margin-top:12px}
.pt-table > .pt-tr{flex:1 0 auto}
.pt-table > .pt-th{flex:none}
.pt-tr{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 38px 62px 76px 62px;align-items:center;gap:8px;min-height:43px;border-top:1px solid #EEF1EF}
.pt-tr > span{min-width:0;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px;color:#27312D}
.pt-tr > span b{font-weight:500}
.pt-tr > span:first-child{text-align:left}
.pt-th{min-height:28px;border-top:0}
.pt-tr.pt-th > span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8A9590}
.pt-p{display:flex;align-items:center;gap:9px}
.pt-p .ui-ini{font-style:normal;width:28px;height:28px;font-size:10px}
.pt-p > span{display:block;min-width:0}
.pt-p b{display:block;font-weight:600;color:#0E1512;overflow:hidden;text-overflow:ellipsis}
.pt-p small{display:block;font-size:10.5px;overflow:hidden;text-overflow:ellipsis}
.pt-tr .ch{font-size:11.5px;font-weight:600;transition:background-color .4s,color .4s}
.pt-tr .ch.pt-nil{background:transparent;color:#A3ADA8;font-weight:500;padding-right:0}
.pt-tr .pt-paid{color:#047857;font-weight:600}
.pt-tr.pt-upd::after{content:"";position:absolute;left:-8px;right:-8px;top:1px;bottom:1px;border-radius:8px;background:rgba(16,185,129,.16);pointer-events:none;animation:pt-k-flash 1.7s ease-out forwards}
@keyframes pt-k-flash{to{opacity:0}}
.pt-foot{margin-top:0;font-variant-numeric:tabular-nums}
.pt-foot.pt-allpaid .pt-ic{color:#059669}

/* ---------- values ---------- */
/* four numbers over four points: both bands share the same column lines */
.pt-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pt-val{padding:32px 28px 34px;border-right:1px solid var(--line)}
.pt-val:first-child{padding-left:0}
.pt-val:last-child{border-right:0;padding-right:0}
.pt-val b{display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(38px,3.9vw,56px);letter-spacing:-.045em;line-height:1;white-space:nowrap;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-bottom:.06em}
.pt-val .mono{display:block;margin-top:14px;font-size:10.5px;letter-spacing:.1em;color:var(--accent-hi);line-height:1.5}
.pt-val p{margin-top:10px;color:var(--fg-muted);font-size:14.5px;line-height:1.55;max-width:22em}

/* ---------- how partner teams work ---------- */
.pt-feats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(28px,3.2vw,48px)}
.pt-feat{display:flex;flex-direction:column;align-items:flex-start;padding:4px 28px 0;border-right:1px solid var(--line)}
.pt-feat:first-child{padding-left:0}
.pt-feat:last-child{border-right:0;padding-right:0}
.pt-feat-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--accent-hi);
  border:1px solid rgba(52,211,153,.26);background:linear-gradient(180deg,rgba(52,211,153,.16),rgba(16,185,129,.05));box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.pt-feat-ic .pt-ic{width:17px;height:17px}
.pt-feat h3{margin-top:18px;font-family:var(--font-display);font-weight:500;font-size:19px;letter-spacing:-.02em;line-height:1.25}
.pt-feat p{margin-top:8px;margin-bottom:22px;color:var(--fg-muted);font-size:14.5px;line-height:1.55;max-width:24em}
/* a small piece of the product under each point */
.pt-mini{display:flex;align-items:center;gap:8px;width:100%;max-width:300px;min-height:48px;margin-top:auto;padding:8px 10px;border-radius:12px;
  border:1px solid var(--line-mid);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  font-family:var(--font-sans);font-size:12.5px;line-height:1.2;color:#D5DFDA;white-space:nowrap;overflow:hidden}
.pt-mini .pt-ic{width:14px;height:14px}
.pt-mini .ui-ini{font-style:normal;width:28px;height:28px;font-size:10px}
.pt-m-act{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#C5D1CB}
.pt-m-act .pt-ic{color:var(--accent-hi)}
.pt-m-t{font-weight:500;color:#E6EEEA;overflow:hidden;text-overflow:ellipsis}
.pt-m-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#C5D1CB}
.pt-m-chip .pt-ic{color:#8FA39A}
.pt-m-end{margin-left:auto}
.pt-m-on,.pt-m-end{border-color:rgba(52,211,153,.32);background:var(--accent-wash);color:#A7F3D0}
.pt-m-on .pt-ic,.pt-m-end .pt-ic{color:var(--accent-hi)}
.pt-m-arr{color:var(--fg-subtle);flex:none}
.pt-m-avs{display:inline-flex;flex:none;padding-left:2px}
.pt-m-avs .ui-ini{position:relative;margin-right:-5px;box-shadow:0 0 0 2px #0B0E0D}
.pt-m-avs .ui-ini:nth-child(1){z-index:4}
.pt-m-avs .ui-ini:nth-child(2){z-index:3}
.pt-m-avs .ui-ini:nth-child(3){z-index:2}
.pt-m-avs + .pt-m-t{margin-left:11px}

/* ---------- responsive ---------- */
@media (min-width:1181px) and (max-width:1320px){
  .pt-ba{gap:9px;padding-right:14px}
  .pt-ba .pt-role{letter-spacing:.04em}
}
@media (max-width:1320px){
  .pt-val,.pt-feat{padding-left:22px;padding-right:22px}
  .pt-mini{gap:6px;padding:8px}
  .pt-m-chip{padding:0 8px}
  .pt-m-act{gap:5px}
  .pt-mini .pt-m-av{display:none}
  .pt-mini .pt-m-av + .pt-m-t{padding-left:4px}
}
@media (max-width:1180px){
  .pt-grid{grid-template-columns:minmax(0,1fr)}
  .pt-tree{width:100%;max-width:760px;margin:0 auto;padding:30px 28px 6px}
  .pt-side{flex-direction:row;align-items:stretch;padding:24px 28px 30px}
  .pt-side > .pt-card{flex:1;min-width:0}
  .pt-tr{grid-template-columns:minmax(0,1fr) 32px 58px 72px 58px;gap:6px}
  .pt-vals{grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:0}
  .pt-val{border-bottom:1px solid var(--line)}
  .pt-feats{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 0}
  .pt-val,.pt-feat{padding-left:28px;padding-right:28px}
  .pt-val:nth-child(2n),.pt-feat:nth-child(2n){border-right:0;padding-right:0}
  .pt-val:nth-child(2n+1),.pt-feat:nth-child(2n+1){padding-left:0}
  .pt-mini{gap:8px;padding:8px 10px}
  .pt-m-chip{padding:0 10px}
  .pt-mini .pt-m-av{display:grid}
  .pt-mini .pt-m-av + .pt-m-t{padding-left:0}
}
@media (max-width:860px){
  .pt-tree{padding:24px 20px 4px}
  .pt-side{flex-direction:column;padding:22px 20px 24px}
  .pt-trig{min-height:44px}
  .pt-seg button{min-height:44px;padding:0 14px;font-size:12.5px}
  .pt-seg{border-radius:11px}
  .pt-seg button{border-radius:9px}
  .pt-pay{height:44px;padding:0 16px;font-size:13px}
  .pt-val{padding-top:26px;padding-bottom:28px}
  .pt-note{font-size:10px}
  .pt-role,.pt-ga .pt-role,.pt-cap,.pt-tr.pt-th > span{font-size:10px}
}
@media (max-width:620px){
  .pt-tree{padding:20px 12px 2px}
  .pt-side{padding:20px 12px 16px;gap:14px}
  .pt-top{margin-bottom:22px}
  .pt-cell{padding:0 3px}
  .pt-links{height:48px}
  .pt-bp{padding:12px 14px 12px 12px;gap:10px}
  .pt-bp .pt-av{width:40px;height:40px;font-size:12.5px}
  .pt-bp .pt-name{font-size:15px}
  .pt-bp .pt-amt{font-size:21px}
  /* Business Associates stand upright so two fit side by side */
  .pt-ba{flex-direction:column;gap:0;text-align:center;padding:14px 8px 12px}
  .pt-ba .pt-av{margin-bottom:9px}
  .pt-ba .pt-who{flex:none;width:100%}
  .pt-ba .pt-name{font-size:14px}
  .pt-ba .pt-earn{text-align:center;margin-top:10px}
  .pt-ba .pt-earn small{justify-content:center;margin-top:7px}
  .pt-ba .pt-amt{font-size:18px}
  .pt-ba .pt-plus{right:8px}
  /* Growth Associates shrink to a first name; the row is labelled once */
  #pt-l2{min-height:58px}
  #pt-l2 .pt-dot em{display:none}
  .pt-rowcap{display:block;position:absolute;left:50%;top:9px;transform:translateX(-50%);z-index:1;font-size:10px;letter-spacing:.1em;line-height:1;color:#8FA39A;white-space:nowrap;pointer-events:none}
  .pt-ga{padding:12px 3px 10px;border-radius:12px}
  .pt-ga .pt-av{width:32px;height:32px;font-size:10.5px;margin-bottom:8px}
  .pt-ga .pt-name{font-size:12.5px}
  .pt-ga .pt-last,.pt-ga .pt-role{display:none}
  .pt-ga .pt-amt{font-size:14px;margin-top:7px;letter-spacing:-.02em}
  .pt-slot{margin-top:7px}
  .pt-slot .pt-plus{font-size:10px;padding:4px 5px;letter-spacing:0}
  .pt-deal{grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;padding:12px 14px}
  .pt-deal-ev{grid-column:1/-1;grid-row:2;padding-top:10px;border-top:1px solid #ECEFED}
  .pt-note{margin-top:14px;justify-content:center;text-align:center}
  .pt-card{padding:16px 16px}
  .pt-trigs{grid-template-columns:minmax(0,1fr)}
  /* the rate type takes its own line, so its label never breaks in two */
  .pt-line{display:block;margin-top:0}
  .pt-line .pt-cap{margin:14px 0 7px}
  .pt-seg{display:flex}
  .pt-seg button{flex:1;padding:0 8px}
  .pt-rates > span{padding:9px 9px 10px}
  .pt-rates small{font-size:10.5px;white-space:normal;line-height:1.25;min-height:2.5em}
  .pt-rates b{font-size:18px}
  /* statement rows stack: the partner, then the four numbers */
  .pt-th{display:none}
  .pt-table > .pt-tr{flex:none}
  .pt-tr{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:4px 8px;padding:12px 0 12px;min-height:0}
  .pt-tr > span{text-align:left;font-size:12.5px}
  .pt-tr > span[data-l] > *{display:inline-flex;align-items:center;min-height:24px}
  .pt-tr > span:first-child{grid-column:1/-1;margin-bottom:4px}
  .pt-tr > span[data-l]::before{content:attr(data-l);display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8A9590;margin-bottom:4px}
  .pt-tr .ch.pt-nil{padding-left:0}
  .pt-val p,.pt-feat p{font-size:14.5px}
  .pt-val:nth-child(2n+1){padding-right:18px}
  .pt-val:nth-child(2n){padding-left:18px}
  .pt-feats{grid-template-columns:minmax(0,1fr);gap:0}
  .pt-feat,.pt-feat:nth-child(2n),.pt-feat:nth-child(2n+1){padding:26px 0 28px;border-right:0;border-bottom:1px solid var(--line)}
  .pt-feat p{margin-bottom:18px}
  .pt-mini{max-width:none}
  .pt-feat:first-child{padding-top:4px}
  .pt-feat:last-child{border-bottom:0;padding-bottom:0}
}

/* very narrow phones: nothing is cut off and nothing touches an edge */
@media (max-width:359px){
  .pt-top{gap:8px}
  .pt-top .badge{padding:8px 10px;gap:7px;font-size:12px}
  .pt-live{letter-spacing:.06em}
  .pt-role,.pt-ga .pt-role{white-space:normal;letter-spacing:.06em;line-height:1.35}
  .pt-bp .pt-amt{font-size:19px}
  .pt-cell{padding:0 2px}
  .pt-ga .pt-amt{font-size:12.5px}
  .pt-deal{grid-template-columns:auto minmax(0,1fr)}
  .pt-deal-chip{grid-column:1/-1;justify-self:start}
}

/* ---------- reduced motion: everything in its finished state ---------- */
@media (prefers-reduced-motion:reduce){
  .pt-sec.pt-js .pt-rv{opacity:1;transform:none;transition:none}
  .pt-sec *,.pt-sec *::before,.pt-sec *::after{animation:none !important;transition:none !important}
  .pt-dot{display:none}
}

/* ============================================================
   SECTION: control
   ============================================================ */

/* ============================================================
   CONTROL - "Nothing moves without a name on it."
   A bento grid of seven tiles. Prefix: ct-
   The plain markup is the finished state. section.js adds .ct-rw
   to a tile just before it arrives (rewinds it, without motion) and
   swaps it for .ct-in when its product card is on screen (plays it).
   ============================================================ */

.ct-sec{overflow:hidden}
.ct-sec::before{
  content:"";position:absolute;left:50%;top:46%;width:1200px;height:900px;transform:translate(-50%,-50%);
  background:radial-gradient(closest-side,rgba(16,185,129,.085),transparent 72%);pointer-events:none;
}
.ct-sec:not(.is-live) *{animation-play-state:paused}

/* ---------- grid ---------- */
.ct-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.ct-a{grid-column:span 7}
.ct-p{grid-column:span 5}
.ct-c,.ct-d,.ct-u{grid-column:span 4}
.ct-l{grid-column:span 5}
.ct-t{grid-column:span 7}

/* ---------- tile ---------- */
.ct-tile{
  --pad:28px;
  position:relative;display:flex;flex-direction:column;gap:24px;min-width:0;
  padding:var(--pad);border-radius:22px;border:1px solid transparent;overflow:hidden;isolation:isolate;
  background:
    linear-gradient(180deg,#0D1411 0%,#090D0B 100%) padding-box,
    linear-gradient(150deg,rgba(167,243,208,.40),rgba(255,255,255,.08) 24%,rgba(255,255,255,.045) 68%,rgba(52,211,153,.28)) border-box;
  /* no outer shadow: it would fall on the neighbouring tile and grey its cards */
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}
.ct-tile::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(62% 58% at var(--gx,88%) var(--gy,0%),rgba(52,211,153,.20),transparent 64%),
    radial-gradient(46% 46% at calc(100% - var(--gx,88%)) 100%,rgba(16,185,129,.09),transparent 66%);
}
.ct-tile::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:radial-gradient(80% 80% at var(--gx,88%) var(--gy,0%),#000,transparent 76%);
          mask-image:radial-gradient(80% 80% at var(--gx,88%) var(--gy,0%),#000,transparent 76%);
}
.ct-spot{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(190,255,225,.10),transparent 62%);
}
.ct-tile:hover .ct-spot{opacity:1}

.ct-wide{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:40px;align-items:stretch}
.ct-wide > .ct-mock{align-self:center}
.ct-wide > .ct-copy > .ct-val:not(.ct-val-2){margin-top:auto}
.ct-wide > .ct-copy > .ct-txt{margin-bottom:28px}
.ct-a{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:34px}

/* ---------- words ---------- */
.ct-copy{display:flex;flex-direction:column;min-width:0}
.ct-label{display:inline-flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.1em;color:var(--accent-hi)}
.ct-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.ct-h{
  font-family:var(--font-display);font-weight:500;font-size:clamp(20px,1.62vw,23.5px);line-height:1.18;letter-spacing:-.025em;
  color:var(--fg);margin-top:16px;text-wrap:balance;
}
.ct-txt{color:var(--fg-muted);font-size:14.5px;line-height:1.55;margin-top:10px;max-width:33em;text-wrap:pretty}

/* value numbers */
.ct-val{display:flex;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px dashed var(--line-mid)}
.ct-val b{
  font-family:var(--font-display);font-weight:600;font-size:clamp(42px,3.7vw,56px);letter-spacing:-.045em;line-height:1;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;
  padding-right:.04em;
}
.ct-val b i{font-style:normal;font-size:.46em;letter-spacing:-.02em;margin-left:.2em}
.ct-val > span{font-size:10px;letter-spacing:.08em;line-height:1.55;color:var(--fg-subtle);max-width:21em}
.ct-val > .ct-rec{display:flex;align-items:flex-start;gap:8px}
.ct-val .ping{margin-top:4px}
.ct-val-2{margin-top:14px;padding-top:0;border-top:0}
.ct-t .ct-val b{min-width:2.55em}

/* the four locked things, spelled out under the "4" */
.ct-locks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0 0;padding:0;list-style:none;max-width:320px}
.ct-locks li{
  display:flex;align-items:center;gap:8px;height:32px;padding:0 11px;border-radius:9px;min-width:0;
  border:1px solid var(--line-mid);background:rgba(255,255,255,.03);
  font-size:10px;letter-spacing:.1em;line-height:1;color:#C9D3CF;white-space:nowrap;
}
.ct-locks .ct-ic{width:12px;height:12px;color:var(--accent-hi)}

.ct-split{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}
.ct-val-col{flex-direction:column;align-items:flex-start;gap:9px;margin:0;padding:0 0 3px 22px;border-top:0;border-left:1px dashed var(--line-mid)}
.ct-val-col > span{max-width:13em}

/* ---------- product mock-ups ---------- */
.ct-mock{position:relative;min-width:0;font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815}
.ct-tile > .ct-mock{margin-top:auto}
.ct-wide > .ct-mock{margin-top:0}
.ct-c > .ct-mock,.ct-d > .ct-mock,.ct-u > .ct-mock{flex:1 1 auto;display:flex;flex-direction:column}
.ct-c .ct-card,.ct-d .ct-card,.ct-u .ct-card{flex:1 1 auto}
.ct-mock b{font-weight:600}
.ct-mock ul{list-style:none;margin:0;padding:0}
.ct-mock p{margin:0}
.ct-card{position:relative;border-radius:16px;padding:18px;box-shadow:0 34px 48px -22px rgba(0,0,0,.62),0 10px 14px -8px rgba(0,0,0,.3),0 0 0 1px rgba(16,185,129,.10)}
.ct-grow{flex:1;min-width:0}
.ct-cap{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}
.ct-num{font-family:var(--font-mono);font-size:11.5px}
.ct-card .ui-ini{font-style:normal}
.ct-card h5{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-stack{display:grid}
.ct-stack > *{grid-area:1/1}

/* a rewound tile jumps to its "before" state without motion */
.ct-tile.ct-rw,.ct-tile.ct-rw *,.ct-tile.ct-rw *::before,.ct-tile.ct-rw *::after{transition:none !important;animation:none !important}

/* a chip that flips from its "before" to its "after" value */
.ct-flip{display:inline-grid;flex:none}
.ct-flip > *{grid-area:1/1;justify-self:end;transition:opacity .45s var(--ease),transform .45s var(--ease)}
.ct-flip > :first-child{opacity:0;transform:translateY(-7px)}
.ct-tile.ct-in .ct-flip > *{transition-delay:var(--ct-d,1.2s)}
.ct-tile.ct-rw .ct-flip > :first-child{opacity:1;transform:none}
.ct-tile.ct-rw .ct-flip > :last-child{opacity:0;transform:translateY(7px)}

/* something that arrives after the tile's main motion */
.ct-late{transition:opacity .5s var(--ease),transform .5s var(--ease)}
.ct-tile.ct-in .ct-late{transition-delay:var(--ct-d,1.2s)}
.ct-tile.ct-rw .ct-late{opacity:0;transform:translateY(6px)}

/* a card that runs off the bottom of its tile and dissolves into it */
.ct-bleed{
  flex:1 1 270px;height:270px;min-height:270px;margin-bottom:calc(var(--pad) * -1);overflow:hidden;border-radius:16px 16px 0 0;
  -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 58px),rgba(0,0,0,.72) calc(100% - 34px),rgba(0,0,0,.12) 100%);
          mask-image:linear-gradient(180deg,#000 calc(100% - 58px),rgba(0,0,0,.72) calc(100% - 34px),rgba(0,0,0,.12) 100%);
}
.ct-bleed .ct-card{min-height:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:48px;box-shadow:none}

/* ---------- 1. approvals ---------- */
.ct-deck{position:relative;padding-bottom:18px}
.ct-deck > i{position:absolute;left:0;right:0;bottom:0;height:70px;border-radius:16px;transform-origin:50% 100%}
.ct-deck-1{transform:translateY(-9px) scale(.94);background:#8E9A95}
.ct-deck-2{transform:scale(.88);background:#47524D}
.ct-rev{display:flex;flex-direction:column;gap:14px;z-index:1}
.ct-a [data-ct-on]{opacity:0;visibility:hidden;transition:opacity .16s ease,visibility 0s linear .16s}
.ct-a[data-ct-state="hold"] [data-ct-on="hold"],
.ct-a[data-ct-state="ok"] [data-ct-on="ok"],
.ct-a[data-ct-state="back"] [data-ct-on="back"]{opacity:1;visibility:visible;transition:opacity .4s ease .16s,visibility 0s}

.ct-stamp{
  position:absolute;right:14px;top:9px;z-index:2;padding:6px 11px 7px;border:2px solid #059669;border-radius:9px;
  background:rgba(236,253,245,.92);color:#047857;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;line-height:1.2;transform:rotate(-6deg);transform-origin:60% 50%;pointer-events:none;
}
.ct-stamp em{display:block;font-style:normal;font-weight:500;font-size:9px;letter-spacing:.04em;text-transform:none;opacity:.85;margin-top:2px}
.ct-stamp-r{border-color:#DC2626;color:#B42318;background:rgba(254,242,242,.92)}
.ct-a.ct-anim .ct-stamp{transition:none}
.ct-a.ct-anim[data-ct-state="ok"] .ct-stamp[data-ct-on="ok"],
.ct-a.ct-anim[data-ct-state="back"] .ct-stamp[data-ct-on="back"]{animation:ct-stamp .55s cubic-bezier(.2,1.5,.4,1) .3s both}
@keyframes ct-stamp{from{opacity:0;transform:rotate(-6deg) scale(1.8)}to{opacity:1;transform:rotate(-6deg) scale(1)}}

.ct-adv{display:grid;grid-template-columns:auto minmax(28px,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#F5F8F6;border:1px solid #E8EDEA}
.ct-adv-n{display:flex;align-items:center;gap:10px;min-width:0}
.ct-adv-n > i{position:relative;width:20px;height:20px;border-radius:50%;border:1.6px solid #C2CAC6;background:#fff;flex:none;transition:background .4s,border-color .4s,box-shadow .4s}
.ct-adv-n > i::after{content:"";position:absolute;inset:4px;border-radius:50%;background:transparent;transition:background .4s}
.ct-adv-n b{display:block;font-size:13px;color:#0E1512;transition:color .4s}
.ct-adv-n small{display:block;font-size:11px;color:#6B7772}
.ct-adv-to b{color:#8A9590}
.ct-adv-line{display:block;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,#C6CECA 0 4px,transparent 4px 9px)}
.ct-adv-line u{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,#059669,#34D399);text-decoration:none;transition:width .5s var(--ease)}
.ct-a[data-ct-state="hold"] .ct-adv-from > i{border-color:#F59E0B;box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.ct-a[data-ct-state="hold"] .ct-adv-from > i::after{background:#F59E0B}
.ct-a[data-ct-state="back"] .ct-adv-from > i{border-color:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.16)}
.ct-a[data-ct-state="back"] .ct-adv-from > i::after{background:#EF4444}
.ct-a[data-ct-state="ok"] .ct-adv-from > i{background:#059669;border-color:#059669}
.ct-a[data-ct-state="ok"] .ct-adv-from > i::after{inset:auto;left:6px;top:2.5px;width:5px;height:9px;border-radius:0;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg);background:transparent}
.ct-a[data-ct-state="ok"] .ct-adv-line u{width:100%;transition:width .9s var(--ease) .55s}
.ct-a[data-ct-state="ok"] .ct-adv-to > i{border-color:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.18);transition-delay:1.1s}
.ct-a[data-ct-state="ok"] .ct-adv-to > i::after{background:#10B981;transition-delay:1.1s}
.ct-a[data-ct-state="ok"] .ct-adv-to b{color:#0E1512;transition-delay:1.1s}

.ct-note p{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid;font-size:12.5px;line-height:1.42;color:#1F2925}
.ct-note .ct-ic{margin-top:1.5px}
.ct-note .ct-note-a{background:#FFFBEB;border-color:#FDE68A}.ct-note-a .ct-ic{color:#B45309}
.ct-note .ct-note-g{background:#ECFDF5;border-color:#A7F3D0}.ct-note-g .ct-ic{color:#059669}
.ct-note .ct-note-r{background:#FEF2F2;border-color:#FECACA}.ct-note-r .ct-ic{color:#DC2626}

.ct-acts{display:flex;gap:8px;flex-wrap:wrap}
.ct-btn{cursor:pointer;height:36px;padding:0 13px;font-family:var(--font-sans);transition:background .25s,border-color .25s,color .25s,transform .15s,box-shadow .25s}
.ct-btn:hover{transform:translateY(-1px)}
.ct-btn:active{transform:scale(.96)}
.ct-btn:focus-visible{outline:2px solid #059669;outline-offset:2px}
.ct-btn-ok:hover{border-color:#059669}
.ct-btn-ok[aria-pressed="true"]{background:#059669;border-color:#059669;color:#fff;font-weight:600;box-shadow:0 8px 20px rgba(5,150,105,.32)}
.ct-btn-back{border-color:#F1C6C6;color:#B42318}
.ct-btn-back:hover{border-color:#DC2626}
.ct-btn-back[aria-pressed="true"]{background:#DC2626;border-color:#DC2626;color:#fff;font-weight:600;box-shadow:0 8px 20px rgba(220,38,38,.28)}
.ct-hint{display:block;margin-top:16px;text-align:center;font-size:10px;letter-spacing:.1em;color:var(--fg-subtle);visibility:hidden}
.ct-on .ct-hint{visibility:visible}

/* ---------- 2. permissions ---------- */
.ct-badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#E4F7EE;color:#047857;flex:none}
.ct-badge .ct-ic{width:17px;height:17px}
.ct-prow{display:grid;grid-template-columns:minmax(0,1fr) 54px 54px;align-items:center;height:38px;border-top:1px solid #EEF1EF;font-size:13px;color:#27312D}
.ct-prow > :nth-child(n+2){justify-self:center}
.ct-prow > span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.ct-phead{height:30px;margin-top:12px;border-top:0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}
.ct-phead > span:first-child{font-weight:400}
.ct-sw{
  all:unset;box-sizing:border-box;position:relative;display:block;width:34px;height:20px;border-radius:12px;background:#D6DDD9;
  cursor:pointer;flex:none;transition:background .35s var(--ease),box-shadow .35s;
}
span.ct-sw{cursor:default}
.ct-sw i{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .4s var(--ease)}
.ct-sw::after{content:"";position:absolute;inset:-12px -9px}
.ct-sw[aria-checked="true"],.ct-sw-on{background:#059669}
.ct-sw[aria-checked="true"] i,.ct-sw-on i{transform:translateX(14px)}
.ct-sw:focus-visible{outline:2px solid #059669;outline-offset:3px}
.ct-sw.ct-pulse{animation:ct-pulse 1.1s ease-out}
@keyframes ct-pulse{0%{box-shadow:0 0 0 0 rgba(5,150,105,.7)}100%{box-shadow:0 0 0 12px rgba(5,150,105,0)}}

/* ---------- 3. claims ---------- */
.ct-claim{display:flex;flex-direction:column;gap:12px}
.ct-quote{padding:10px 12px;border-radius:12px 12px 12px 3px;background:#F1F5F3;color:#1F2925;font-size:12.5px;line-height:1.45}
.ct-quote small{display:block;margin-top:4px;color:#6B7772;font-size:11px}
.ct-claim > .ct-cap{margin-bottom:-5px}
.ct-own{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:12px;background:#EEF2F0}
.ct-own-thumb{
  position:absolute;left:3px;top:3px;bottom:3px;width:calc(50% - 3px);border-radius:9px;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.14),0 0 0 1.5px rgba(5,150,105,.55);transform:translateX(100%);
  transition:transform .8s var(--ease);
}
.ct-own-s{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px;min-width:0;transition:opacity .5s}
.ct-own-s .ui-ini{width:26px;height:26px;font-size:9.5px}
.ct-own-s b{font-size:12.5px;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-own-b{padding-left:16px}
.ct-own-a{opacity:.5}
.ct-own-arr{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#fff;border:1px solid #DCE2DF;display:grid;place-items:center;color:#56625D}
.ct-own-arr .ct-ic{width:11px;height:11px}
.ct-tile.ct-in .ct-own-thumb,.ct-tile.ct-in .ct-own-s{transition-delay:var(--ct-d,1.2s)}
.ct-tile.ct-rw .ct-own-thumb{transform:none}
.ct-tile.ct-rw .ct-own-a{opacity:1}
.ct-tile.ct-rw .ct-own-b{opacity:.5}

/* ---------- 4. discrepancy ---------- */
.ct-dis{display:flex;flex-direction:column}
.ct-wrong{display:block;margin-top:11px;font-family:var(--font-display);font-size:15px;letter-spacing:-.012em;line-height:1.3;color:#0E1512}
.ct-by{display:block;margin-top:4px}
.ct-mock .ct-thread{margin-top:13px;padding-top:13px;border-top:1px solid #ECEFED}
.ct-thread li{display:flex;gap:10px;align-items:flex-start}
.ct-thread .ui-ini{width:28px;height:28px;font-size:10px}
.ct-thread b{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12.5px;color:#0E1512}
.ct-thread b small{font-family:var(--font-mono);font-weight:400;font-size:10.5px;color:#8A9590}
.ct-thread p{margin-top:3px;padding:8px 11px;border-radius:3px 12px 12px 12px;background:#F1F5F3;font-size:12.5px;line-height:1.4;color:#1F2925}
.ct-line{transition:opacity .6s var(--ease) .55s,transform .6s var(--ease) .55s}
.ct-tile.ct-rw .ct-line{opacity:0;transform:translateY(12px)}
.ct-thread .ct-done{align-items:center;margin-top:10px;font-size:12px;font-weight:500;color:#3F4A45}
.ct-done > i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#E4F7EE;color:#047857;flex:none}
.ct-done .ct-ic{width:14px;height:14px}
.ct-done small{font-family:var(--font-mono);font-size:10.5px;font-weight:400;color:#8A9590;white-space:nowrap}

/* ---------- 5. duplicates ---------- */
.ct-merge{display:grid;grid-template-columns:minmax(0,1fr) 56px auto;align-items:center;margin-top:16px}
.ct-srcs{display:flex;flex-direction:column;gap:6px}
.ct-srcs li{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border:1px solid #E6EBE8;border-radius:9px;background:#FAFBFA;font-size:12.5px;min-width:0}
.ct-srcs i{width:8px;height:8px;border-radius:3px;background:var(--c,#10B981);flex:none}
.ct-srcs b{font-weight:500;color:#1F2925;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-srcs small{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:#8A9590;white-space:nowrap}
.ct-merge-svg{width:56px;height:114px;overflow:visible;max-width:none}
.ct-merge-svg path{fill:none;stroke:#10B981;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease)}
.ct-merge-svg path:nth-child(1){transition-delay:.45s}
.ct-merge-svg path:nth-child(2){transition-delay:.6s}
.ct-merge-svg path:nth-child(3){transition-delay:.75s}
.ct-one{
  width:66px;height:66px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#ECFDF5,#D1FAE5);border:1px solid #A7F3D0;box-shadow:0 10px 24px rgba(5,150,105,.2);
  transition:opacity .5s var(--ease) 1.25s,transform .6s cubic-bezier(.2,1.5,.4,1) 1.25s;
}
.ct-one b{font-family:var(--font-display);font-size:27px;letter-spacing:-.03em;line-height:1;color:#047857}
.ct-one small{font-size:10.5px;color:#065F46;margin-top:2px}
.ct-tile.ct-rw .ct-merge-svg path{stroke-dashoffset:1}
.ct-tile.ct-rw .ct-one{opacity:0;transform:scale(.7)}
.ct-dup{display:flex;flex-direction:column}
.ct-dup .ct-merge{margin:auto 0;padding:16px 0}
.ct-dup .pc-foot{margin-top:0}
.ct-u{--ct-d:1.75s}
.ct-dis .pc-foot{margin-top:auto}
.ct-dis .ct-thread{margin-bottom:14px}
.ct-claim .ct-own{margin-top:auto}
.ct-claim > .ct-cap{margin-top:auto}
.ct-claim > .ct-cap + .ct-own{margin-top:0}

/* ---------- 6. audit trail ---------- */
.ct-tabs{display:flex;gap:3px;padding:3px;border-radius:10px;background:#EEF2F0}
.ct-tab{
  all:unset;box-sizing:border-box;flex:1 1 0;min-width:0;text-align:center;cursor:pointer;font-size:12px;font-weight:500;color:#56625D;
  padding:7px 4px;border-radius:7px;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s;
}
.ct-tab:hover{color:#0E1512}
.ct-tab.ct-on-tab{background:#fff;color:#047857;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ct-tab:focus-visible{outline:2px solid #059669;outline-offset:1px}
.ct-logs{margin-top:6px}
.ct-rows{display:none}
.ct-rows.ct-on-tab{display:block}
.ct-rows.ct-swap-in{animation:ct-rise .45s var(--ease) both}
@keyframes ct-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ct-rows li{position:relative;display:flex;gap:11px;align-items:flex-start;padding:11px 0;max-height:76px}
.ct-rows li + li{border-top:1px solid #EEF1EF}
.ct-rows .ui-ini{width:28px;height:28px;font-size:10px;margin-top:1px}
.ct-sys{background:#E8ECEA;color:#4B5651}
.ct-r1{display:flex;align-items:baseline;gap:7px;min-width:0}
.ct-r1 b{font-size:13px;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-r1 small{font-size:11.5px;color:#6B7772;white-space:nowrap}
.ct-r1 time{margin-left:auto;padding-left:6px;font-family:var(--font-mono);font-size:10.5px;color:#8A9590;white-space:nowrap}
.ct-diff{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:12px;min-width:0}
.ct-diff s{padding:2px 7px;border-radius:5px;background:#F1F4F2;color:#7A8681;text-decoration:line-through;text-decoration-color:rgba(122,134,129,.6);white-space:nowrap}
.ct-diff em{padding:2px 7px;border-radius:5px;background:#D1FAE5;color:#065F46;font-style:normal;font-weight:500;white-space:nowrap}
.ct-diff .ct-ic{width:12px;height:12px;color:#9AA5A0}
.ct-diff i{font-style:normal;color:#6B7772}
.ct-row-new{overflow:hidden;transition:max-height .7s var(--ease) .5s,padding .7s var(--ease) .5s,opacity .5s ease .75s}
.ct-row-new::after{content:"";position:absolute;inset:0 -18px;background:rgba(16,185,129,.2);opacity:0;pointer-events:none}
.ct-tile.ct-in .ct-row-new::after{animation:ct-flash 2.2s ease-out 1s both}
@keyframes ct-flash{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
.ct-tile.ct-rw .ct-rows li.ct-row-new{max-height:0;padding-top:0;padding-bottom:0;opacity:0}

/* ---------- 7. deadlines ---------- */
.ct-t > .ct-mock{display:flex;flex-direction:column;gap:12px}
.ct-track{position:relative;height:30px;margin:40px 10px 0 2px}
.ct-track-bar{position:absolute;left:0;right:0;top:12px;height:6px;border-radius:3px;background:#EEF2F0;overflow:hidden}
.ct-track-bar u{display:block;height:100%;width:66.67%;border-radius:3px;background:linear-gradient(90deg,#34D399 40%,#FBBF24);text-decoration:none;transition:width 1.5s cubic-bezier(.45,0,.2,1) .35s}
.ct-track-bell{
  position:absolute;left:66.67%;top:15px;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:#FEF3C7;
  border:2px solid #fff;box-shadow:0 0 0 1px #FCD34D,0 4px 10px rgba(245,158,11,.3);display:grid;place-items:center;color:#92400E;
  transition:opacity .4s ease 1.75s,transform .5s cubic-bezier(.2,1.5,.4,1) 1.75s;
}
.ct-track-bell .ct-ic{width:14px;height:14px;transform-origin:50% 10%}
.ct-tile.ct-in .ct-track-bell .ct-ic{animation:ct-ring .9s ease-in-out 2.1s 2}
@keyframes ct-ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(13deg)}60%{transform:rotate(-9deg)}80%{transform:rotate(6deg)}}
.ct-track-bell em{
  position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;font-style:normal;
  font-size:11px;font-weight:600;padding:4px 9px;border-radius:7px;background:#111815;color:#fff;
}
.ct-track-bell em::after{content:"";position:absolute;left:50%;top:100%;margin-left:-4px;border:4px solid transparent;border-top-color:#111815}
.ct-track-flag{position:absolute;right:-10px;top:15px;width:24px;height:24px;margin-top:-12px;border-radius:50%;background:#fff;border:1.5px solid #DCE2DF;display:grid;place-items:center;color:#56625D}
.ct-track-flag .ct-ic{width:12px;height:12px}
.ct-track-x{position:relative;display:flex;justify-content:space-between;height:14px;margin:7px 10px 0 2px;font-family:var(--font-mono);font-size:10px;color:#8A9590;white-space:nowrap}
.ct-track-x > span:last-child{margin-right:-10px}
.ct-x-warn{position:absolute;left:66.67%;transform:translateX(-50%);color:#92400E}
.ct-t{--ct-d:1.85s}
.ct-tile.ct-rw .ct-track-bar u{width:0}
.ct-tile.ct-rw .ct-track-bell{opacity:0;transform:scale(.4)}

.ct-rr{display:flex;align-items:center;gap:8px 18px;margin-top:13px;flex-wrap:wrap}
.ct-rr-avs{position:relative;display:flex;padding-right:6px}
.ct-rr-avs .ui-ini{width:32px;height:32px;border:2px solid #fff;margin-right:-6px;font-size:10.5px;transition:opacity .5s ease 2.5s}
.ct-rr-avs .ct-rr-from{opacity:.45}
.ct-rr-ring{position:absolute;left:-2px;top:-2px;width:36px;height:36px;border-radius:50%;border:2px solid #10B981;transform:translateX(52px);transition:transform .8s var(--ease) 2.5s}
.ct-rr-txt{display:flex;align-items:center;gap:7px;font-size:12.5px;white-space:nowrap}
.ct-rr-txt s{color:#8A9590}
.ct-rr-txt b{color:#0E1512}
.ct-rr-txt .ct-ic{width:12px;height:12px;color:#9AA5A0}
.ct-tile.ct-rw .ct-rr-ring{transform:translateX(26px)}
.ct-tile.ct-rw .ct-rr-from{opacity:1}

/* ---------- responsive ---------- */
@media (min-width:1081px){
  /* three-up row: keep the card tops level when one headline fits on a single line */
  .ct-c .ct-h,.ct-d .ct-h,.ct-u .ct-h{min-height:2.36em}
}
@media (max-width:1180px){
  .ct-wide{gap:26px}
  .ct-tile{--pad:24px}
}
@media (max-width:1080px){
  .ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-tile{grid-column:span 1}
  .ct-a,.ct-t,.ct-u{grid-column:span 2}
  .ct-a{order:1}.ct-p{order:2}.ct-l{order:3}.ct-c{order:4}.ct-d{order:5}.ct-u{order:6}.ct-t{order:7}
  .ct-u{display:grid;gap:26px;align-items:start}
  .ct-u > .ct-mock{margin-top:0}
  .ct-wide,.ct-u{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
}
@media (max-width:860px){
  .ct-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .ct-tile,.ct-a,.ct-t,.ct-u{grid-column:auto;order:0}
  .ct-c,.ct-d{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:start}
  .ct-c > .ct-mock,.ct-d > .ct-mock{margin-top:0}
  /* touch sizes: 44px targets, mono labels at 10px or more */
  .ct-cap,.ct-phead{font-size:10px;letter-spacing:.1em}
  .ct-stamp em{font-size:10px}
  .ct-btn{height:44px}
  .ct-prow{height:44px}
  .ct-tab{padding:14px 4px;min-height:44px}
  .ct-locks li{height:36px}
}
@media (max-width:640px){
  .ct-tile{--pad:20px;gap:22px;border-radius:18px}
  .ct-wide,.ct-u,.ct-c,.ct-d{display:flex;flex-direction:column;align-items:stretch;gap:22px}
  .ct-wide > .ct-mock{align-self:stretch}
  .ct-wide > .ct-copy > .ct-txt{margin-bottom:0}
  .ct-wide > .ct-copy > .ct-val:not(.ct-val-2){margin-top:20px}
  .ct-h{font-size:21px}
  .ct-txt{font-size:15px}
  .ct-val{gap:14px;margin-top:20px;padding-top:18px}
  .ct-val b{font-size:44px}
  .ct-val > span{font-size:10.5px}
  .ct-split{grid-template-columns:minmax(0,1fr);gap:0}
  .ct-val-col{flex-direction:row;align-items:center;gap:14px;margin-top:20px;padding:18px 0 0;border-left:0;border-top:1px dashed var(--line-mid)}
  .ct-val-col > span{max-width:21em}
  .ct-card{padding:16px}
  .ct-bleed .ct-card{padding-bottom:48px}
  .ct-bleed{flex-basis:304px;height:304px;min-height:304px}
  .ct-row-new::after{inset:0 -16px}
  .ct-rows li{max-height:104px}
  .ct-r1{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:1px;align-items:baseline}
  .ct-r1 b{grid-column:1;grid-row:1}
  .ct-r1 time{grid-column:2;grid-row:1}
  .ct-r1 small{grid-column:1 / -1;grid-row:2;font-size:12px}
  .ct-btn{flex:1 1 auto;justify-content:center}
  .ct-prow{grid-template-columns:minmax(0,1fr) 56px 56px}
  .ct-tab{padding:14px 2px;font-size:11.5px}
  .ct-stamp{top:11px;right:10px}
  .ct-rev .ct-who{margin-top:12px}
  .ct-locks{max-width:none}
  .ct-note p{font-size:13px}
  .ct-quote,.ct-thread p{font-size:13.5px}
  .ct-done{font-size:12.5px}
  .ct-own-s .ui-ini{display:none}
  .ct-own-s{padding:9px 12px}
  .ct-own-b{padding-left:18px}
  .ct-merge{grid-template-columns:minmax(0,1fr) 38px auto}
  .ct-merge-svg{width:38px}
  .ct-one{width:58px;height:58px;border-radius:16px}
  .ct-srcs li{padding:0 9px;gap:7px}
  .ct-srcs small{font-size:10px}
  .ct-hint{margin-top:14px}
  .ct-adv{padding:11px 12px;gap:9px}
  .ct-adv-n{gap:8px}
}
@media (max-width:380px){
  .ct-adv-n small{display:none}
  .ct-tab{font-size:11px}
}

/* ---------- reduced motion: everything in its finished state ---------- */
@media (prefers-reduced-motion:reduce){
  .ct-sec *,.ct-sec *::before,.ct-sec *::after{animation:none !important;transition:none !important}
}

/* ============================================================
   SECTION: reports
   ============================================================ */

/* ============================================================
   REPORTS AND FORECAST  (section id "reports", prefix "ns-")
   One glowing stage: four value tabs, one large light dashboard,
   an "ask in plain words" bar, then four notes under the stage.
   ============================================================ */

.ns-sec:not(.is-live) *{animation-play-state:paused !important}
.ns-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.ns-sec button:focus-visible{outline:2px solid #059669;outline-offset:2px;border-radius:8px}

/* own reveal, switched on by the section script (works without site.js) */
.ns-js .ns-rvl{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
.ns-js.is-seen .ns-rvl{opacity:1;transform:none}

/* ---------- the four tabs ---------- */
.ns-tabs{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid rgba(255,255,255,.08)}
.ns-tab{all:unset;box-sizing:border-box;position:relative;cursor:pointer;display:flex;flex-direction:column;padding:26px 28px 24px;border-left:1px solid rgba(255,255,255,.07);transition:background .5s var(--ease)}
.ns-tab:first-child{border-left:0}
.ns-sec .ns-tab:focus-visible{outline:2px solid var(--accent-hi);outline-offset:-4px;border-radius:10px}
.ns-tab-k{display:flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.1em;color:#7F8B86;transition:color .4s}
.ns-tab-k .ns-ic{width:14px;height:14px}
.ns-tab-v{display:flex;align-items:baseline;gap:10px;margin-top:18px;white-space:nowrap}
.ns-tab-v b{font-family:var(--font-display);font-weight:600;font-size:clamp(32px,3.1vw,46px);letter-spacing:-.045em;line-height:1;color:#77837E;transition:color .4s}
.ns-tab-v em{font-style:normal;font-family:var(--font-display);font-size:16px;letter-spacing:-.01em;color:#7F8B86;transition:color .4s}
.ns-tab-d{margin-top:11px;font-size:13.5px;line-height:1.5;color:#7F8B86;max-width:21em;transition:color .4s}
.ns-tab:hover .ns-tab-v b{color:#C9D3CF}
.ns-tab:hover .ns-tab-k{color:var(--fg-muted)}
.ns-tab.is-on{background:linear-gradient(180deg,rgba(52,211,153,.11),rgba(52,211,153,.02) 70%,transparent)}
.ns-tab.is-on .ns-tab-k{color:var(--accent-hi)}
.ns-tab.is-on .ns-tab-v b{background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.ns-tab.is-on .ns-tab-v em{color:var(--fg)}
.ns-tab.is-on .ns-tab-d{color:var(--fg-muted)}
.ns-tab-bar{position:absolute;left:0;right:0;top:0;height:2px;opacity:0;background:rgba(255,255,255,.05);transition:opacity .4s}
.ns-tab.is-on .ns-tab-bar{opacity:1}
.ns-tab-bar u{display:block;height:100%;width:calc(var(--p,1) * 100%);background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 14px var(--accent-hi);text-decoration:none}

/* ---------- the dashboard, framed in light ---------- */
.ns-board{position:relative;z-index:1;padding:clamp(10px,2.3vw,32px)}
.ns-frame{position:relative;padding:5px;border-radius:22px;
  background:linear-gradient(180deg,rgba(214,255,236,.9) 0%,rgba(110,231,183,.45) 22%,rgba(16,185,129,.16) 68%,rgba(16,185,129,.1));
  box-shadow:0 0 0 1px rgba(190,255,225,.34),0 0 54px rgba(52,211,153,.24),0 0 150px rgba(16,185,129,.16),0 44px 110px rgba(0,0,0,.62)}
.ns-win{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr);border-radius:17px;overflow:hidden;background:#F4F7F5;color:#111815;font-family:var(--font-sans);font-size:13px;line-height:1.35}
.ns-win b{font-weight:600}
.ns-win h4,.ns-win h5{margin:0;font-family:var(--font-display);font-weight:600;color:#0E1512}
.ns-win h4{font-size:20px;letter-spacing:-.02em;line-height:1.2}
.ns-win h5{font-size:15.5px;letter-spacing:-.015em}
.ns-win ul{list-style:none;margin:0;padding:0}

.ns-rail{border-right:1px solid #E3E8E5;background:#fff;padding:14px 3px;display:flex;flex-direction:column;align-items:center;gap:3px}
.ns-logo{display:block;padding:4px 0 12px}
.ns-logo svg{width:30px;height:30px;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ns-rail-i{width:74px;padding:8px 2px 7px;border-radius:9px;display:flex;flex-direction:column;align-items:center;gap:4px;color:#56625D;font-size:10.5px;text-align:center;line-height:1.15;transition:background .3s,color .3s}
.ns-rail-i em{font-style:normal}
.ns-rail-i .ns-ic{width:18px;height:18px}
.ns-rail-i[data-ns-go]{cursor:pointer}
.ns-rail-i.is-on{background:#E4F7EE;color:#047857;font-weight:600}

.ns-body{padding:20px 22px 22px;min-width:0}
.ns-panels{display:grid;grid-template-columns:minmax(0,1fr)}
.ns-panel{min-width:0;display:flex;flex-direction:column}
.ns-panel + .ns-panel{margin-top:30px;padding-top:28px;border-top:1px solid #DFE5E2}
.ns-js .ns-panel{grid-area:1/1;margin:0;padding:0;border:0;visibility:hidden;opacity:0;transition:opacity .3s ease,visibility 0s linear .3s}
.ns-js .ns-panel.is-on{visibility:visible;opacity:1;transition:opacity .45s ease .06s,visibility 0s}

/* panel head */
.ns-ph{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:14px}
.ns-ph-t{margin-right:auto;min-width:0}
.ns-ph small{display:block;color:#6B7772;font-size:12px;margin-top:3px}
.ns-ph-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ns-btn{height:32px}
.ns-btn .ns-ic{width:14px;height:14px}

.ns-seg{display:inline-flex;padding:3px;border-radius:9px;background:#E9EEEB;gap:2px;max-width:100%}
.ns-seg > *{all:unset;box-sizing:border-box;font-size:12px;font-weight:500;color:#56625D;padding:6px 12px;border-radius:7px;white-space:nowrap;line-height:1.2;text-align:center}
.ns-seg > button{cursor:pointer;transition:background .25s,color .25s}
.ns-seg > button:hover{color:#0E1512}
.ns-seg > .is-on{background:#fff;color:#047857;font-weight:600;box-shadow:0 1px 3px rgba(16,24,20,.14)}
.ns-seg-s > *{font-size:11.5px;padding:5px 9px}
.ns-seg-w{display:flex}
.ns-seg-w > *{flex:1 1 0;min-width:0;padding-left:4px;padding-right:4px}

/* shared card bits */
.ns-g{display:grid;gap:14px;align-items:stretch;flex:1}
.ns-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.ns-col > *{flex:1 1 auto}
.ns-card{border:1px solid #DFE5E2;border-radius:14px;background:#fff;padding:16px 18px;box-shadow:0 1px 2px rgba(16,24,20,.04);min-width:0}
.ns-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.ns-card-h small{color:#6B7772;font-size:12px}
.ns-cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6B7772}
.ns-win .ns-foot{margin-top:auto;padding-top:11px}
.ns-total{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid #E3E8E5;font-size:12.5px;color:#56625D}
.ns-total b{font-family:var(--font-display);font-size:15.5px;letter-spacing:-.015em;color:#0E1512}
.ns-up{color:#047857}
.ns-dn{color:#B42318}

/* ---------- 01 leaderboard ---------- */
.ns-views{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.ns-view{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid #DFE5E2;border-radius:8px;background:#fff;color:#27312D;font-weight:500;font-size:12.5px;white-space:nowrap}
.ns-view .ns-ic{width:14px;height:14px;color:#7A8681}
.ns-view.is-on{border-color:#059669;color:#047857;background:#F3FCF8;box-shadow:inset 0 0 0 1px #059669}
.ns-view.is-on .ns-ic{color:#059669}
.ns-view-add{border-style:dashed;background:transparent;color:#56625D}
.ns-share{margin-left:auto;display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border:1px solid #A7F3D0;border-radius:20px;background:#ECFDF5;color:#047857;font-size:12px;white-space:nowrap}
.ns-share .ns-ic{width:14px;height:14px}

.ns-g-lb{grid-template-columns:minmax(0,1.82fr) minmax(0,1fr)}
.ns-tbl{padding:4px 0 0;overflow:hidden;display:flex;flex-direction:column}
.ns-tr{display:grid;grid-template-columns:minmax(0,2.5fr) repeat(6,minmax(0,1fr));align-items:center;flex:1 1 auto;min-height:43px;padding:0 18px 0 14px;border-top:1px solid #ECEFED;font-variant-numeric:tabular-nums}
.ns-tr > span{min-width:0;text-align:right;color:#27312D;white-space:nowrap}
.ns-tr > span:first-child{text-align:left}
.ns-tr > .ns-nm{display:flex;align-items:center;gap:9px;overflow:hidden}
.ns-th{flex:0 0 auto;min-height:38px;border-top:0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}
.ns-th > span{color:#6B7772}
.ns-th em{font-style:normal}
.ns-team{background:#F7F9F8}
.ns-team > span{font-weight:600;color:#0E1512}
.ns-group > span{font-weight:500}
.ns-l1{padding-left:16px}
.ns-l2{padding-left:32px}
.ns-chev{width:13px;height:13px;color:#8A9590}
.ns-shut .ns-chev{transform:rotate(-90deg)}
.ns-mem .ui-ini{width:26px;height:26px;font-size:9.5px;font-style:normal}
.ns-who{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;color:#0E1512;font-weight:500;line-height:1.2}
.ns-mgr{font-style:normal;font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#1D4ED8}
.ns-tot{min-height:48px;border-top:1.5px solid #A7E3CB;background:#F3FCF8}
.ns-num{all:unset;box-sizing:border-box;cursor:pointer;display:inline-block;color:#047857;font-weight:600;padding:3px 7px;margin:-3px -7px;border-radius:7px;
  text-decoration:underline dotted #8FD3B6;text-underline-offset:3px;transition:background .25s,box-shadow .25s}
.ns-num:hover{background:#E4F7EE}
.ns-num.is-on{background:#D1FAE5;box-shadow:inset 0 0 0 1.5px #34D399;text-decoration-color:transparent}

.ns-trend{display:flex;flex-direction:column}
.ns-trend .ns-card-h{flex-wrap:wrap}
.ns-plot{position:relative;flex:1;min-height:128px}
.ns-tsvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ns-grid path{fill:none;stroke:#EDF1EF;stroke-width:1;vector-effect:non-scaling-stroke}
.ns-line{fill:none;stroke:#059669;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ns-tbars{display:none}
.ns-tbars rect{fill:#34D399;transform-box:fill-box;transform-origin:50% 100%}
.ns-tdot{position:absolute;left:98%;top:37%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#059669;box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(5,150,105,.35)}
.ns-mbars{display:none;position:absolute;inset:0;flex-direction:column;justify-content:space-around}
.ns-mbars > div{display:grid;grid-template-columns:92px minmax(0,1fr) 22px;align-items:center;gap:10px;font-size:12px;color:#27312D}
.ns-mbars i{display:block;height:11px;border-radius:6px;background:#EEF2F0;overflow:hidden}
.ns-mbars u{display:block;height:100%;width:var(--w);transform-origin:0 50%;border-radius:6px;background:linear-gradient(90deg,#059669,#34D399);text-decoration:none}
.ns-mbars b{text-align:right;color:#0E1512}
.ns-axis{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9.5px;color:#8A9590;margin-top:8px}
.ns-trend[data-ns-mode="line"] .ns-area{display:none}
.ns-trend[data-ns-mode="bar"] .ns-area,.ns-trend[data-ns-mode="bar"] .ns-line,.ns-trend[data-ns-mode="bar"] .ns-tdot{display:none}
.ns-trend[data-ns-mode="bar"] .ns-tbars{display:block}
.ns-trend[data-ns-mode="members"] .ns-tsvg,.ns-trend[data-ns-mode="members"] .ns-tdot{display:none}
.ns-trend[data-ns-mode="members"] .ns-mbars{display:flex}
.ns-trend[data-ns-mode="members"] .ns-axis{visibility:hidden}

.ns-drill{display:flex;flex-direction:column}
.ns-drill .ns-card-h{margin-bottom:8px}
.ns-drill-t{display:block;font-family:var(--font-display);font-size:15.5px;letter-spacing:-.015em;color:#0E1512;margin-bottom:8px}
.ns-leads li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #EEF1EF}
.ns-leads .ui-ini{width:28px;height:28px;font-size:10px;font-style:normal}
.ns-leads div{flex:1;min-width:0}
.ns-leads b{display:block;color:#0E1512;font-size:12.5px}
.ns-leads small{display:block;color:#6B7772;font-size:11px;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 02 forecast ---------- */
.ns-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.ns-kpi{border:1px solid #DFE5E2;border-radius:12px;background:#fff;padding:13px 16px 14px;box-shadow:0 1px 2px rgba(16,24,20,.04);min-width:0}
.ns-kpi small{display:flex;align-items:center;gap:7px;color:#56625D;font-size:12px}
.ns-kpi small .ns-ic{width:14px;height:14px;color:#059669}
.ns-kpi b{display:block;font-family:var(--font-display);font-size:28px;letter-spacing:-.03em;line-height:1.1;color:#0E1512;margin-top:7px}
.ns-kpi em{display:block;font-style:normal;font-size:11.5px;color:#6B7772;margin-top:3px}

.ns-g-fc{grid-template-columns:minmax(0,1.62fr) minmax(0,1fr)}
.ns-fc{display:flex;flex-direction:column}
.ns-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ns-pills button{all:unset;box-sizing:border-box;cursor:pointer;height:30px;padding:0 13px;display:inline-flex;align-items:center;border:1px solid #DCE2DF;border-radius:8px;background:#fff;color:#27312D;font-weight:500;font-size:12.5px;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.ns-pills button:hover{border-color:#8FD3B6}
.ns-pills .is-on,.ns-pills .is-on:hover{background:#059669;border-color:#059669;color:#fff;font-weight:600}
.ns-fc3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ns-fcc{border:1px solid #E3E8E5;border-radius:11px;padding:11px 13px 12px;background:#FAFBFA;min-width:0}
.ns-fcc-s{border-color:#A7F3D0;background:linear-gradient(180deg,#E9FBF3,#F8FEFB)}
.ns-fcc small{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:#56625D;white-space:nowrap}
.ns-fcc small .ns-ic{width:13px;height:13px;color:#059669}
.ns-fcc b{display:block;font-family:var(--font-display);font-size:23px;letter-spacing:-.03em;line-height:1.15;color:#0E1512;margin-top:6px}
.ns-fcc b.ns-up{color:#047857}
.ns-fcc b.ns-dn{color:#B42318}
.ns-fcc em{display:block;font-style:normal;font-size:11px;color:#6B7772;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-conf{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#065F46;background:#D1FAE5;border-radius:10px;padding:1px 7px;margin-right:6px}
.ns-swap{animation:ns-swap .5s var(--ease)}

.ns-bars{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:clamp(4px,1vw,14px);flex:1;min-height:150px;margin-top:16px;padding:0 6px}
.ns-bar{display:flex;flex-direction:column;align-items:center;min-width:0;transition:opacity .5s var(--ease)}
.ns-bar > i{position:relative;flex:1;width:100%;max-width:42px;display:block;border-bottom:1px solid #CFD8D3;transform-origin:50% 100%}
.ns-bar u{position:absolute;left:0;right:0;display:block;border-radius:5px 5px 0 0;text-decoration:none}
.ns-bar .ns-so{z-index:0;bottom:max(0px,calc(var(--won) * .84 - 5px));height:calc(var(--open) * .84 + min(5px,calc(var(--won) * .84)));background:repeating-linear-gradient(135deg,#DDEFE6 0 3px,#F1F8F4 3px 7px);box-shadow:inset 0 0 0 1px #BFE3D1}
.ns-bar .ns-st{z-index:1;bottom:max(0px,calc(var(--won) * .84 - 5px));height:calc(var(--wt) * .84 + min(5px,calc(var(--won) * .84)));background:linear-gradient(180deg,#6EE7B7,#34D399)}
.ns-bar .ns-sw{z-index:2;bottom:0;height:calc(var(--won) * .84);background:linear-gradient(180deg,#0A9F73,#047857)}
.ns-bar span{font-family:var(--font-mono);font-size:9.5px;color:#6B7772;margin-top:7px;letter-spacing:.04em}
.ns-bar b{font-style:normal;position:absolute;z-index:3;left:50%;bottom:calc((var(--won) + var(--open)) * .84 + 6px);transform:translateX(-50%);font-family:var(--font-display);font-size:11.5px;letter-spacing:-.01em;color:#0E1512;white-space:nowrap;transition:opacity .4s}
.ns-bar.is-dim b{opacity:0}
.ns-bar.is-dim > i,.ns-bar.is-dim > span{opacity:.3}
.ns-bar > i,.ns-bar > span{transition:opacity .5s var(--ease)}
.ns-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:11px;font-size:11px;color:#56625D}
.ns-key span{display:inline-flex;align-items:center;gap:6px}
.ns-key i{width:10px;height:10px;border-radius:3px;display:block}
.ns-key .ns-sw{background:#047857}
.ns-key .ns-st{background:#34D399}
.ns-key .ns-so{background:repeating-linear-gradient(135deg,#DDEFE6 0 3px,#F1F8F4 3px 7px);box-shadow:inset 0 0 0 1px #BFE3D1}
.ns-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.ns-stats div{border:1px solid #E8ECEA;border-radius:9px;background:#F7F9F8;padding:8px 11px;min-width:0}
.ns-stats small{display:block;font-size:11px;color:#6B7772;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-stats b{display:block;font-size:13px;margin-top:1px;color:#0E1512;white-space:nowrap;font-variant-numeric:tabular-nums}
.ns-stats b.ns-up{color:#047857}
.ns-stats b.ns-dn{color:#B42318}

.ns-temps{gap:12px}
.ns-temp{position:relative;overflow:hidden;padding:15px 16px 6px;display:flex;flex-direction:column}
.ns-temp::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ns-t)}
.ns-hot{--ns-t:#EF4444}
.ns-warm{--ns-t:#F59E0B}
.ns-cold{--ns-t:#38BDF8}
.ns-temp .ns-card-h{margin-bottom:0}
.ns-tt{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:#0E1512}
.ns-tt .ns-ic{width:15px;height:15px;color:var(--ns-t)}
.ns-cnt{font-family:var(--font-display);font-weight:600;font-size:13px;background:#EEF2F0;border-radius:20px;padding:2px 10px;color:#27312D}
.ns-ttl{display:block;color:#6B7772;font-size:11.5px;margin:2px 0 8px}
.ns-temp ul{margin-top:auto}
.ns-temp li{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid #EEF1EF;font-size:12.5px}
.ns-temp li b{font-weight:500;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-temp li span{font-weight:600;color:#0E1512;font-variant-numeric:tabular-nums}
.ns-temp li em{font-style:normal;font-size:11.5px;font-weight:600;text-align:center;color:#047857;background:#E4F7EE;border-radius:10px;padding:2px 0}

/* ---------- 03 report builder ---------- */
.ns-tpls{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:14px}
.ns-tpl-row{display:flex;gap:8px;flex-wrap:wrap}
.ns-tpl{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;gap:1px;min-height:44px;padding:6px 14px 7px;border:1px solid #DFE5E2;border-radius:10px;background:#fff;font-size:12.5px;font-weight:600;color:#0E1512;white-space:nowrap;transition:border-color .25s,background .25s,box-shadow .25s}
.ns-tpl em{font-style:normal;font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#8A9590}
.ns-tpl:hover{border-color:#8FD3B6}
.ns-tpl.is-on{border-color:#059669;background:#F3FCF8;box-shadow:inset 0 0 0 1px #059669}
.ns-tpl.is-on em{color:#059669}
.ns-tpl-more,.ns-tpl-more:hover{cursor:default;border:1px dashed #C9D1CD;background:transparent;color:#56625D;font-weight:500}

.ns-g-rb{grid-template-columns:minmax(0,.95fr) minmax(0,1.5fr) minmax(0,1fr)}
.ns-setup{display:flex;flex-direction:column;gap:10px}
.ns-setup > .ns-cap{margin-bottom:3px}
.ns-f{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:10px}
.ns-f small{font-size:11.5px;font-weight:500;color:#56625D}
.ns-f-c{grid-template-columns:minmax(0,1fr);gap:6px;margin-top:2px}
.ns-sel-0 b{color:#8A9590}
.ns-sel{display:flex;align-items:center;justify-content:space-between;gap:6px;height:34px;padding:0 9px 0 11px;border:1px solid #DCE2DF;border-radius:8px;background:#fff;min-width:0}
.ns-sel b{font-weight:500;font-size:12.5px;color:#0E1512;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-sel .ns-ic{width:13px;height:13px;color:#8A9590}
.ns-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:9px}
.ns-acts .ns-btn{flex:1 1 0;justify-content:center;padding:0 10px}
.ns-acts .ns-btn-w{flex:1 0 100%}

.ns-result{display:flex;flex-direction:column}
.ns-result .ns-card-h{align-items:flex-start}
.ns-result .ns-card-h small{display:block;margin-top:2px}
.ns-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(8px,2vw,28px);flex:1;min-height:178px;padding:0 10px;
  background:linear-gradient(#DCE2DF,#DCE2DF) left bottom 26px / 100% 1px no-repeat,
    repeating-linear-gradient(0deg,transparent 0 53px,#F0F3F1 53px 54px) left bottom 27px / 100% calc(100% - 50px) no-repeat}
.ns-cols > div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}
.ns-cols b{font-family:var(--font-display);font-size:12.5px;color:#0E1512;margin-bottom:6px;white-space:nowrap}
.ns-cols i{display:block;width:100%;max-width:66px;height:calc(var(--h) * .7);min-height:3px;border-radius:7px 7px 0 0;background:#BDEBD7;transform-origin:50% 100%}
.ns-cols .is-hi i{background:linear-gradient(180deg,#34D399,#059669)}
.ns-cols span{height:26px;padding-top:8px;font-size:11.5px;line-height:18px;color:#56625D;white-space:nowrap}
.ns-cols > div{height:100%}
.ns-pie{display:none;align-items:center;justify-content:center;gap:clamp(14px,3vw,34px);flex:1;min-height:178px}
.ns-pie svg,.ns-donut svg{display:block;width:150px;height:150px;transform:rotate(-90deg);flex:none}
.ns-ring{fill:none;stroke:#EEF2F0;stroke-width:15}
.ns-sg{fill:none;stroke-width:15;stroke-dasharray:calc(var(--v) * 1px - .9px) 100px;stroke-dashoffset:calc(var(--o) * -1px)}
.ns-sg.ns-s0{stroke:#047857}
.ns-sg.ns-s1{stroke:#10B981}
.ns-sg.ns-s2{stroke:#6EE7B7}
.ns-sg.ns-s3{stroke:#C4EDDD}
.ns-pie ul{min-width:150px}
.ns-pie li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:center;padding:6px 0;border-top:1px solid #EEF1EF;font-size:12.5px;color:#27312D}
.ns-pie li:first-child{border-top:0}
.ns-pie li i{width:10px;height:10px;border-radius:3px;display:block}
.ns-pie li b{color:#0E1512;font-variant-numeric:tabular-nums}
.ns-pie .ns-s0{background:#047857}
.ns-pie .ns-s1{background:#10B981}
.ns-pie .ns-s2{background:#6EE7B7}
.ns-pie .ns-s3{background:#C4EDDD}
.ns-result[data-ns-kind="pie"] .ns-cols{display:none}
.ns-result[data-ns-kind="pie"] .ns-pie{display:flex}

.ns-sched{display:flex;flex-direction:column;gap:11px}
.ns-sched .ns-card-h{margin-bottom:0}
.ns-tog{position:relative;width:34px;height:20px;border-radius:12px;background:#059669;flex:none}
.ns-tog i{position:absolute;right:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ns-sc-n{display:block;font-family:var(--font-display);font-size:15.5px;letter-spacing:-.015em;color:#0E1512}
.ns-dl{margin:0;display:flex;flex-direction:column}
.ns-dl > div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;border-top:1px solid #EEF1EF;font-size:12.5px}
.ns-dl > div:first-child{border-top:0}
.ns-dl dt{color:#6B7772}
.ns-dl dd{margin:0;color:#0E1512;font-weight:500}
.ns-to{display:flex;align-items:center}
.ns-to .ui-ini{width:24px;height:24px;font-size:8.5px;font-style:normal;border:2px solid #fff;margin-left:-7px;box-sizing:content-box}
.ns-to .ui-ini:first-child{margin-left:0}
.ns-to span{margin-left:8px}
.ns-mail{display:flex;flex-direction:column;gap:2px;margin-top:auto;border:1px solid #E3E8E5;border-radius:11px;background:#FAFBFA;padding:11px 13px 12px}
.ns-mail b{font-size:13px;color:#0E1512;margin-top:4px}
.ns-mail small{font-size:11.5px;color:#6B7772}
.ns-file{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;max-width:100%;margin-top:8px;padding:5px 10px 5px 8px;border:1px solid #C9F0DD;border-radius:8px;background:#ECFDF5;color:#047857;font-family:var(--font-mono);font-size:10.5px}
.ns-file .ns-ic{width:14px;height:14px}
.ns-file span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-sched .ns-foot{margin-top:0}

/* ---------- 04 loss analysis ---------- */
.ns-g-ls{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.ns-why{display:flex;flex-direction:column}
.ns-why .ns-btn{height:30px}
.ns-why-in{display:grid;grid-template-columns:168px minmax(0,1fr);gap:clamp(14px,2vw,26px);align-items:center;flex:1}
.ns-donut{position:relative;width:168px;height:168px}
.ns-donut svg{width:168px;height:168px}
.ns-donut > span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ns-donut b{font-family:var(--font-display);font-size:32px;letter-spacing:-.035em;line-height:1;color:#0E1512}
.ns-donut small{font-size:11px;color:#6B7772;margin-top:3px}
.ns-sg.ns-r0{stroke:#DC2626}
.ns-sg.ns-r1{stroke:#F59E0B}
.ns-sg.ns-r2{stroke:#94A3B8}
.ns-sg.ns-r3{stroke:#B8C2CE}
.ns-sg.ns-r4{stroke:#DCE2E8}
.ns-rt .ns-r0{background:#DC2626}
.ns-rt .ns-r1{background:#F59E0B}
.ns-rt .ns-r2{background:#94A3B8}
.ns-rt .ns-r3{background:#B8C2CE}
.ns-rt .ns-r4{background:#DCE2E8}
.ns-rr{display:grid;grid-template-columns:minmax(0,1.5fr) 40px 58px minmax(0,1.05fr);gap:10px;align-items:center;min-height:42px;border-top:1px solid #EEF1EF;font-size:12.5px;color:#27312D;font-variant-numeric:tabular-nums}
.ns-rr > span{min-width:0;white-space:nowrap}
.ns-rr > span:nth-child(2),.ns-rr > span:nth-child(3){text-align:right}
.ns-rr > span:first-child{display:flex;align-items:center;gap:8px;color:#0E1512;font-weight:500;overflow:hidden;text-overflow:ellipsis}
.ns-rr > span:first-child i{width:9px;height:9px;border-radius:3px;flex:none;display:block}
.ns-rr > span:last-child{display:flex;align-items:center;gap:8px}
.ns-rr > span:last-child i{flex:1;display:block;height:8px;border-radius:4px;background:#EEF2F0;overflow:hidden}
.ns-rr u{display:block;height:100%;width:calc(var(--w) * 2.8);transform-origin:0 50%;border-radius:4px;text-decoration:none}
.ns-rr b{width:32px;text-align:right;color:#0E1512}
.ns-rh{min-height:30px;border-top:0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase}
.ns-rh > span,.ns-rh > span:first-child{color:#6B7772;font-weight:400}
.ns-sum{display:flex;gap:10px;align-items:flex-start;margin-top:14px;border:1px solid #A7F3D0;border-radius:11px;background:#ECFDF5;padding:11px 14px;color:#059669}
.ns-sum .ns-ic{margin-top:2px}
.ns-sum p{margin:0;color:#1F2925;font-size:12.5px;line-height:1.5}

.ns-where{display:flex;flex-direction:column}
.ns-stg{margin-top:2px;flex:1;display:flex;flex-direction:column;justify-content:space-around}
.ns-stg li{display:grid;grid-template-columns:82px minmax(0,1fr) 24px 50px;gap:10px;align-items:center;min-height:42px;font-size:12.5px;color:#27312D;font-variant-numeric:tabular-nums}
.ns-stg i{display:block;height:12px;border-radius:6px;background:#EEF2F0;overflow:hidden}
.ns-stg u{display:block;height:100%;width:var(--w);transform-origin:0 50%;border-radius:6px;background:#F4B9B5;text-decoration:none}
.ns-stg .is-hi u{background:linear-gradient(90deg,#DC2626,#F87171)}
.ns-stg .is-hi span{color:#0E1512;font-weight:600}
.ns-stg b{text-align:right;color:#0E1512}
.ns-stg small{text-align:right;color:#6B7772;font-size:11.5px}

/* ---------- ask in plain words ---------- */
.ns-ask{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1.1fr);align-items:center;gap:18px;
  padding:20px clamp(14px,2.5vw,34px) 24px;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}
.ns-ask-k{display:flex;flex-direction:column;gap:5px;white-space:nowrap}
.ns-ask-k .mono{display:flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.1em;color:var(--accent-hi)}
.ns-ask-k .ns-ic{width:15px;height:15px}
.ns-ask-k small{font-size:13px;line-height:1.3;color:#7F8B86;padding-left:24px}
.ns-ask-q{display:flex;align-items:center;gap:11px;height:48px;padding:0 16px;border-radius:13px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045);
  color:var(--fg);font-size:15px;min-width:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:border-color .4s,box-shadow .4s}
.ns-ask-q .ns-ic{color:var(--fg-subtle)}
.ns-ask-q span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ns-caret{display:block;width:1.5px;height:18px;margin-left:-8px;background:var(--accent-hi);flex:none;opacity:0}
.ns-ask.is-typing .ns-ask-q{border-color:rgba(52,211,153,.55);box-shadow:0 0 0 4px rgba(52,211,153,.12),inset 0 1px 0 rgba(255,255,255,.06)}
.ns-js .ns-ask.is-typing .ns-caret{opacity:1;animation:ns-blink 1s steps(2) infinite}
.ns-ask-ar{width:18px;height:18px;color:var(--fg-subtle)}
.ns-ask-a{display:flex;align-items:center;gap:16px;min-width:0;opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.ns-ask.is-ans .ns-ask-a{opacity:1;transform:none}
.ns-mini{display:flex;align-items:flex-end;gap:4px;height:36px;padding:0 1px 0;flex:none;border-bottom:1px solid rgba(255,255,255,.16)}
.ns-mini i{display:block;width:9px;height:var(--h);min-height:2px;border-radius:3px 3px 0 0;background:rgba(52,211,153,.38);transition:height .7s var(--ease)}
.ns-mini i.is-hi{background:linear-gradient(180deg,#A7F3D0,#34D399);box-shadow:0 0 12px rgba(52,211,153,.5)}
.ns-ask-a p{margin:0;font-size:15px;line-height:1.45;color:var(--fg-muted)}
.ns-ask-a p b{color:var(--fg);font-weight:600}

/* ---------- notes under the stage ---------- */
.ns-feats{list-style:none;margin:clamp(40px,5vw,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.ns-feats li{padding:32px 28px 4px;border-left:1px solid var(--line)}
.ns-feats li:first-child{padding-left:0;border-left:0}
.ns-feats li:last-child{padding-right:0}
.ns-feat-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid rgba(52,211,153,.3);
  background:radial-gradient(circle at 30% 18%,rgba(52,211,153,.26),rgba(16,185,129,.05) 70%);color:var(--accent-hi);box-shadow:0 0 26px rgba(16,185,129,.16),inset 0 1px 0 rgba(255,255,255,.08)}
.ns-feat-ic .ns-ic{width:18px;height:18px}
.ns-feats h3{font-family:var(--font-display);font-weight:500;font-size:21px;letter-spacing:-.02em;line-height:1.2;margin-top:20px}
.ns-feats p{color:var(--fg-muted);font-size:15px;line-height:1.55;margin-top:9px;max-width:24em}

/* ---------- motion (only with the script, only while on screen) ---------- */
@keyframes ns-in{from{opacity:0;transform:translateY(9px)}}
@keyframes ns-pop{from{opacity:0;transform:translateY(12px) scale(.985)}}
@keyframes ns-growy{from{transform:scaleY(0)}}
@keyframes ns-growx{from{transform:scaleX(0)}}
@keyframes ns-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes ns-fade{from{opacity:0}}
@keyframes ns-seg{from{stroke-dasharray:0 100px}}
@keyframes ns-blink{50%{opacity:0}}
@keyframes ns-swap{from{opacity:0;transform:translateY(6px)}}
@keyframes ns-flash{from{box-shadow:0 0 0 4px rgba(52,211,153,.45),0 1px 2px rgba(16,24,20,.04)}}
@keyframes ns-halo{0%{box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(5,150,105,.45)}100%{box-shadow:0 0 0 3px #fff,0 0 0 12px rgba(5,150,105,0)}}

.ns-js .ns-panel.is-on .ns-ph,.ns-js .ns-panel.is-on .ns-views,.ns-js .ns-panel.is-on .ns-tpls{animation:ns-in .6s var(--ease) both}
.ns-js .ns-panel.is-on .ns-views,.ns-js .ns-panel.is-on .ns-tpls{animation-delay:70ms}
.ns-js .ns-panel.is-on .ns-kpi{animation:ns-pop .65s var(--ease) both;animation-delay:calc(var(--i) * 70ms + 80ms)}
.ns-js .ns-panel.is-on .ns-g > .ns-card,.ns-js .ns-panel.is-on .ns-col > .ns-card{animation:ns-pop .7s var(--ease) both;animation-delay:calc(var(--i,0) * 80ms + 160ms)}
.ns-js .ns-panel.is-on .ns-tr:not(.ns-th){animation:ns-in .55s var(--ease) both;animation-delay:calc(var(--i) * 45ms + 260ms)}
.ns-js .ns-panel.is-on .ns-tsvg .ns-area,.ns-js .ns-panel.is-on .ns-tsvg .ns-line{animation:ns-wipe 1.5s var(--ease) .45s both}
.ns-js .ns-panel.is-on .ns-tdot{animation:ns-fade .4s ease 1.6s both,ns-halo 2.2s ease-out 2s infinite}
.ns-js .ns-panel.is-on .ns-tbars rect{animation:ns-growy .7s var(--ease) both;animation-delay:calc(var(--i) * 22ms + 120ms)}
.ns-js .ns-panel.is-on .ns-mbars u{animation:ns-growx .9s var(--ease) both;animation-delay:calc(var(--i) * 90ms + 120ms)}
.ns-js .ns-panel.is-on .ns-bar > i{animation:ns-growy .95s var(--ease) both;animation-delay:calc(var(--i) * 55ms + 420ms)}
.ns-js .ns-panel.is-on .ns-cols i{animation:ns-growy .95s var(--ease) both;animation-delay:calc(var(--i) * 90ms + 420ms)}
.ns-js .ns-panel.is-on .ns-cols b{animation:ns-fade .5s ease both;animation-delay:calc(var(--i) * 90ms + 900ms)}
.ns-js .ns-panel.is-on .ns-sg{animation:ns-seg 1.1s var(--ease) .5s both}
.ns-js .ns-panel.is-on .ns-pie li,.ns-js .ns-panel.is-on .ns-rr:not(.ns-rh){animation:ns-in .55s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms + 520ms)}
.ns-js .ns-panel.is-on .ns-rr u,.ns-js .ns-panel.is-on .ns-stg u{animation:ns-growx 1s var(--ease) both;animation-delay:calc(var(--i) * 90ms + 560ms)}
.ns-js .ns-drill.is-flash{animation:ns-flash 1s ease-out}
.ns-js .ns-drill.is-flash .ns-leads li{animation:ns-in .45s var(--ease) both}
.ns-js .ns-drill.is-flash .ns-leads li:nth-child(2){animation-delay:70ms}
.ns-js .ns-drill.is-flash .ns-leads li:nth-child(3){animation-delay:140ms}

/* ---------- responsive ---------- */
@media (max-width:1279px){
  .ns-tab{padding:22px 20px 20px}
  .ns-temp ul{margin-top:0}
  .ns-g-lb,.ns-g-fc,.ns-g-rb{grid-template-rows:1fr auto}
  .ns-g-ls{grid-template-rows:auto 1fr}
  .ns-drill .ns-foot{margin-top:0}
  .ns-g-lb,.ns-g-fc,.ns-g-ls{grid-template-columns:minmax(0,1fr)}
  .ns-g-lb > .ns-col,.ns-temps{flex-direction:row}
  .ns-g-lb > .ns-col > *,.ns-temps > *{flex:1 1 0}
  .ns-g-rb{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr)}
  .ns-sched{grid-column:1 / -1}
  .ns-plot{min-height:150px}
  .ns-ask{grid-template-columns:minmax(0,1fr) auto minmax(0,1.1fr)}
  .ns-ask-k{grid-column:1 / -1;flex-direction:row;align-items:center;gap:14px;flex-wrap:wrap}
  .ns-ask-k small{padding-left:0}
  .ns-feats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ns-feats li{padding-bottom:30px}
  .ns-feats li:nth-child(odd){padding-left:0;border-left:0}
  .ns-feats li:nth-child(n+3){border-top:1px solid var(--line)}
  .ns-feats li:last-child{padding-right:28px}
}
@media (max-width:859px){
  .ns-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ns-tab{padding:18px 16px 17px;min-height:44px}
  .ns-tab:nth-child(odd){border-left:0}
  .ns-tab:nth-child(n+3){border-top:1px solid rgba(255,255,255,.07)}
  .ns-tab-v{margin-top:12px;gap:8px}
  .ns-tab-v em{font-size:14px}
  .ns-frame{padding:4px;border-radius:18px}
  .ns-win{grid-template-columns:minmax(0,1fr);border-radius:14px}
  .ns-rail{display:none}
  .ns-body{padding:18px 16px 18px}
  .ns-js .ns-panel{display:none}
  .ns-js .ns-panel.is-on{display:flex}
  .ns-share{margin-left:0}
  .ns-ask{grid-template-columns:minmax(0,1fr);gap:12px;padding:18px 16px 22px}
  .ns-ask-ar{display:none}
  .ns-ask-q{font-size:14px}
  .ns-ask-k small{font-size:14px}
  .ns-seg-n{display:grid;grid-template-columns:repeat(4,auto);width:100%}
  .ns-seg-n > *{padding:8px 6px}
  .ns-seg > button,.ns-pills button{min-height:44px}
  .ns-pills button{padding:0 15px}
  .ns-tpl{min-height:46px}
}
@media (max-width:639px){
  .ns-tab-d{display:none}
  .ns-tab-k{font-size:10px;letter-spacing:.08em}
  .ns-tab-v{flex-direction:column;align-items:flex-start;gap:5px;white-space:normal}
  .ns-tab-v b{font-size:34px}
  .ns-board{padding:10px}
  .ns-body{padding:16px 12px 14px}
  .ns-ph-r{width:100%}
  .ns-hm,.ns-hx{display:none}
  .ns-tr{grid-template-columns:minmax(0,1.75fr) minmax(0,.9fr) minmax(0,.8fr) minmax(0,1fr);padding:0 12px 0 10px;min-height:46px;font-size:12.5px}
  .ns-l1{padding-left:12px}
  .ns-l2{padding-left:18px}
  .ns-mem .ui-ini{display:none}
  .ns-who{flex-direction:column;align-items:flex-start;gap:2px}
  .ns-mgr{font-size:10px;padding:1px 5px}
  .ns-num{padding:14px 6px;margin:-14px -6px}
  .ns-tpl em,.ns-conf{font-size:10px}
  .ns-g-lb > .ns-col,.ns-temps{flex-direction:column}
  .ns-g-lb > .ns-col > *,.ns-temps > *{flex:1 1 auto}
  .ns-seg-s > *{padding:8px 8px}
  .ns-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ns-kpi{padding:12px 12px 13px}
  .ns-kpi b{font-size:24px}
  .ns-kpi small{font-size:11.5px;gap:6px}
  .ns-fc3{grid-template-columns:minmax(0,1fr)}
  .ns-fcc{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px}
  .ns-fcc b{grid-row:1 / 3;grid-column:2;margin-top:0}
  .ns-fcc small{font-size:10px}
  .ns-bars{padding:0;gap:5px}
  .ns-bar span{font-size:10px;letter-spacing:0}
  .ns-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ns-g-rb{grid-template-columns:minmax(0,1fr)}
  .ns-tpl-row{gap:6px}
  .ns-tpl{padding:6px 11px 7px}
  .ns-cols{padding:0 2px;gap:8px}
  .ns-cols span{font-size:11px}
  .ns-pie{flex-direction:column;gap:12px;padding-bottom:4px}
  .ns-pie ul{width:100%}
  .ns-why-in{grid-template-columns:minmax(0,1fr);justify-items:center}
  .ns-rt{width:100%}
  .ns-card{padding:15px 14px}
  .ns-tbl{padding:4px 0 0}
  .ns-temp{padding:15px 14px 6px}
  .ns-seg-n{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ns-rr{grid-template-columns:minmax(0,1fr) 26px 52px 36px;gap:8px;min-height:44px}
  .ns-rr > span:first-child{white-space:normal;line-height:1.25}
  .ns-bar b{display:none}
  .ns-bar.is-top b{display:block}
  .ns-rr > span:last-child i{display:none}
  .ns-rr b{width:100%}
  .ns-rr > span:last-child{justify-content:flex-end}
  .ns-rh,.ns-th,.ns-cap{font-size:10px}
  .ns-fcc small,.ns-bar span,.ns-axis{font-size:10px}
  .ns-stg li{grid-template-columns:78px minmax(0,1fr) 22px 48px;gap:8px}
  .ns-feats{grid-template-columns:minmax(0,1fr)}
  .ns-feats li,.ns-feats li:last-child{padding:26px 0 26px;border-left:0}
  .ns-feats li + li{border-top:1px solid var(--line)}
  .ns-feats p{max-width:none}
}

@media (prefers-reduced-motion:reduce){
  .ns-sec *,.ns-sec *::before,.ns-sec *::after{animation:none !important;transition:none !important}
  .ns-js .ns-rvl{opacity:1;transform:none}
  .ns-caret{display:none}
}

.ns-bar.is-won .ns-st,.ns-bar.is-won .ns-so{display:none}

/* the hand that shows what a click does */
.ns-cur{position:absolute;left:0;top:0;z-index:6;width:24px;height:24px;pointer-events:none;opacity:0;transform:translate(var(--x,0),var(--y,0));
  transition:transform .95s cubic-bezier(.3,.7,.2,1),opacity .35s;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
.ns-cur.is-on{opacity:1}
.ns-cur.is-jump{transition:none}
.ns-cur svg{display:block;width:24px;height:24px;fill:#111815;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}
.ns-cur i{position:absolute;left:-8px;top:-8px;width:28px;height:28px;border-radius:50%;border:2px solid #059669;opacity:0}
.ns-js .ns-cur.is-tap i{animation:ns-tap .55s ease-out}
@keyframes ns-tap{0%{opacity:.95;transform:scale(.3)}100%{opacity:0;transform:scale(1.7)}}
.ns-run{cursor:pointer;font-family:inherit}
.ns-js .ns-sum.is-new{animation:ns-pop .7s var(--ease) both}
.ns-js .ns-run.is-busy .ns-ic{animation:ns-spin 1s linear infinite}
@keyframes ns-spin{to{transform:rotate(360deg)}}
@media (max-width:859px){.ns-cur{display:none}}
@media (prefers-reduced-motion:reduce){.ns-cur{display:none}}
.ns-sum{opacity:var(--ns-o,1);transition:opacity .3s}
.ns-where .ns-foot{margin-top:12px}
@media (min-width:1280px) and (max-width:1380px){.ns-th{font-size:9px;letter-spacing:.04em}}
@media (min-width:640px) and (max-width:1279px){
  .ns-sched{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:26px;row-gap:11px;align-items:start;
    grid-template-areas:"h m" "n m" "s m" "d m" "d f"}
  .ns-sched .ns-card-h{grid-area:h}
  .ns-sc-n{grid-area:n}
  .ns-sched > .ns-seg{grid-area:s}
  .ns-dl{grid-area:d}
  .ns-mail{grid-area:m;margin-top:0;align-self:stretch;justify-content:center}
  .ns-sched .ns-foot{grid-area:f;align-self:end;margin-top:0}
}
@media (max-width:639px){
  /* a tall tap area, a small highlight */
  .ns-num{position:relative;z-index:0}
  .ns-num:hover,.ns-num.is-on{background:none;box-shadow:none}
  .ns-num.is-on::before{content:"";position:absolute;z-index:-1;left:0;right:0;top:50%;height:26px;margin-top:-13px;border-radius:7px;background:#D1FAE5;box-shadow:inset 0 0 0 1.5px #34D399}
}

/* ============================================================
   SECTION: seo
   ============================================================ */

/* ============================================================
   SEO ENGINE AND WEBSITES   (section id "seo", prefix so-)
   Four values, then one glowing stage with three linked cards
   (write, rank, fix) and a month strip, then two tiles.
   ============================================================ */

.so-sec:not(.is-live) *{animation-play-state:paused}

/* own reveal, so it works with or without the site script */
.so-sec.so-js .so-rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.so-sec.so-js .so-rv.so-in{opacity:1;transform:none}

.so-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.so-grow{flex:1;min-width:0}
.so-cap{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}

/* ---------- four values ---------- */
.so-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:clamp(28px,3.6vw,52px)}
.so-val{position:relative;min-width:0;padding:32px 28px 34px;border-right:1px solid var(--line)}
.so-val:first-child{padding-left:0}
.so-val:last-child{border-right:0;padding-right:0}
.so-val-g{position:absolute;right:28px;top:36px;width:38px;height:38px;color:var(--accent-hi);overflow:visible}
.so-val:last-child .so-val-g{right:0}
.so-g-fill{fill:currentColor;opacity:.85}
.so-g-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.so-g-dim{fill:none;stroke:rgba(255,255,255,.12);stroke-width:2}
.so-g-arc{stroke-dasharray:100;stroke-dashoffset:22;transform:rotate(-90deg);transform-origin:23px 23px}
.so-g-dots path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.so-g-dots path:nth-child(odd){opacity:.55}
.so-g-b1{stroke-width:3}
.so-g-b2{stroke-width:3;opacity:.62}
.so-g-b3{stroke-width:3;opacity:.34}
.so-val-n{display:flex;align-items:baseline;gap:9px;font-family:var(--font-display);font-weight:600;font-size:clamp(42px,4.3vw,62px);letter-spacing:-.045em;line-height:.95;white-space:nowrap}
.so-val-n span{display:inline-block;min-width:var(--so-nw,0);padding-right:.04em;background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.so-val-n small{font-size:.32em;font-weight:500;letter-spacing:-.01em;color:#CFE9DD}
.so-val-k{display:block;margin-top:18px;font-size:11px;color:var(--accent-hi)}
.so-val p{margin-top:10px;max-width:21em;color:var(--fg-muted);font-size:14.5px;line-height:1.5}

/* ---------- stage ---------- */
.so-stage{margin-bottom:clamp(18px,1.8vw,26px)}
.so-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(460px circle at var(--mx,70%) var(--my,20%),rgba(190,255,225,.12),transparent 62%)}
.so-stage:hover .so-spot{opacity:1}

.so-top{position:relative;z-index:1;display:flex;align-items:center;gap:18px;padding:22px 26px 0}
.so-top .so-badge{padding:9px 14px;font-size:12.5px}
.so-hint{margin-left:auto;min-width:0;color:#9FB0A8;font-size:13px;line-height:1.35;text-align:right;transition:opacity .3s}
.so-hint.so-fade{opacity:0}
.so-mode{display:flex;flex:none;padding:3px;border-radius:11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.so-mode-b{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 15px;border-radius:8px;
  font-family:var(--font-sans);font-size:12.5px;font-weight:500;color:#A9B7B0;white-space:nowrap;transition:background .35s var(--ease),color .25s,box-shadow .35s}
.so-mode-b:hover{color:#fff}
.so-mode-b.so-on{background:#fff;color:#047857;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.35),0 0 0 1px rgba(16,185,129,.18)}
.so-mode-b:focus-visible,.so-step:focus-visible,.so-phr-b:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px;border-radius:8px}

.so-trio{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding:24px 26px 32px}
.so-col{position:relative;display:flex;flex-direction:column;min-width:0}

/* step rail */
.so-step{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;column-gap:10px;width:100%;padding:4px 0 14px}
.so-step-n{font-size:11px;color:var(--fg-subtle);transition:color .4s}
.so-step-t{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.025em;line-height:1.2;color:#8E9B95;transition:color .4s}
.so-step-d{min-width:0;font-size:12.5px;color:#7F8C86;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .4s}
.so-step-bar{position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.13)}
.so-step-bar u{display:block;height:100%;width:0;text-decoration:none;background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 14px var(--accent-hi)}
.so-step:hover .so-step-t{color:#fff}
.so-col.so-on .so-step-n{color:var(--accent-hi)}
.so-col.so-on .so-step-t{color:#fff}
.so-col.so-on .so-step-d{color:#B9C6C0}
.so-sec:not(.so-js) .so-step-t,.so-still .so-step-t{color:#fff}
.so-still .so-col.so-on .so-step-bar u{width:100%}

/* the knuckle that joins two cards */
.so-join{position:absolute;left:-28px;top:calc(50% + 26px);z-index:3;width:30px;height:30px;margin-top:-15px;border-radius:50%;display:grid;place-items:center;
  background:#0C1410;border:1px solid rgba(255,255,255,.18);color:#6EE7B7;box-shadow:0 8px 22px rgba(0,0,0,.55),0 0 0 4px rgba(10,15,13,.55);transition:border-color .5s,box-shadow .5s,color .5s}
.so-join .so-ic{width:13px;height:13px}
.so-col.so-on .so-join{border-color:rgba(110,231,183,.8);color:#A7F3D0;box-shadow:0 8px 22px rgba(0,0,0,.55),0 0 0 4px rgba(10,15,13,.55),0 0 22px rgba(52,211,153,.55)}

/* cards */
.so-card{flex:1;display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:18px;font-family:var(--font-sans);font-size:13px;line-height:1.4;color:#111815;
  transition:box-shadow .7s var(--ease),transform .7s var(--ease)}
.so-card b{font-weight:600}
.so-card p{margin:0}
.so-card ul{list-style:none;margin:0;padding:0}
.so-col.so-on .so-card{transform:translateY(-3px);box-shadow:0 34px 80px rgba(0,0,0,.55),0 6px 18px rgba(0,0,0,.28),0 0 0 1px rgba(52,211,153,.6),0 0 80px rgba(16,185,129,.24)}
.so-card-h{gap:11px}
.so-card-h small{display:block;margin-top:1px}
.so-tic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:#E4F7EE;color:#047857}
.so-tic .so-ic{width:17px;height:17px}

/* shared hide / show used by the replay */
.so-w,.so-fx,.so-prow-new,.so-hold,.so-pub{transition:opacity .5s var(--ease),transform .6s var(--ease)}
.so-off{opacity:0 !important;transform:translateY(7px)}

/* 01 post */
.so-status{display:inline-flex;align-items:center;gap:6px;transition:background .3s,color .3s}
.so-status.so-busy::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:so-pulse 1.1s ease-in-out infinite}
@keyframes so-pulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
.so-kw{display:flex;align-items:center;gap:10px;min-width:0}
.so-kw-chip{display:inline-flex;align-items:center;gap:7px;min-width:0;height:30px;padding:0 11px;border-radius:8px;border:1px solid #DCE2DF;background:#FAFBFA;color:#27312D;font-family:var(--font-mono);font-size:10.5px;white-space:nowrap;overflow:hidden}
.so-kw-chip .so-ic{width:13px;height:13px;color:#7A8681}
.so-kw-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.so-kw-m{margin-left:auto;flex:none;font-size:11.5px;color:#6B7772;white-space:nowrap}
.so-kw-m b{margin-left:3px;padding:2px 7px;border-radius:6px;background:#D1FAE5;color:#065F46;font-family:var(--font-mono);font-size:11px}

.so-paper{flex:1;display:flex;flex-direction:column;gap:9px;padding:16px 16px 14px;border-radius:12px;border:1px solid #E3E8E5;background:linear-gradient(180deg,#FBFCFB,#F5F8F6)}
.so-cover{position:relative;display:block;height:46px;border-radius:8px;overflow:hidden;background:radial-gradient(90% 160% at 100% 0%,rgba(52,211,153,.6),transparent 62%),linear-gradient(135deg,#064E3B,#0B241B);transition:opacity .6s var(--ease),filter .6s var(--ease)}
.so-cover svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.so-cover path{fill:rgba(167,243,208,.16)}
.so-cover path + path{fill:rgba(167,243,208,.2)}
.so-cover em{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-style:normal;font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:-.04em;line-height:1;color:rgba(255,255,255,.92)}
.so-cover.so-blank{opacity:.35;filter:grayscale(1)}
.so-title{margin:0;font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-.02em;line-height:1.25;color:#0E1512}
.so-body{font-size:12.5px;line-height:1.55;color:#3A4540}
.so-ty-off{visibility:hidden}
.so-ty.so-typing .so-ty-on::after{content:"";display:inline-block;width:1.5px;height:1.05em;margin-left:1px;vertical-align:-.16em;background:#059669;animation:so-blink 1s steps(2) infinite}
@keyframes so-blink{50%{opacity:0}}
.so-sub{display:block;margin-top:3px;font-weight:600;font-size:12.5px;color:#1F2925}
.so-sk{display:block;height:7px;width:var(--w);border-radius:4px;background:#E1E7E4;transform-origin:0 50%;transition:transform .8s var(--ease),opacity .4s;transition-delay:calc(var(--i,0) * 140ms)}
.so-sk.so-off{transform:scaleX(0)}
.so-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.so-tags span{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:6px;background:#EAF7F0;color:#047857;font-size:11px;font-weight:500;white-space:nowrap}
.so-tags .so-ic{width:12px;height:12px}

.so-pfoot{position:relative;min-height:118px}
.so-pfoot-h{display:flex;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid #ECEFED}
.so-prow{display:flex;align-items:center;gap:10px;height:31px;border-bottom:1px solid #F0F3F1;font-size:12.5px;color:#27312D}
.so-prow:last-child{border-bottom:0}
.so-pt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-prow-new .so-pt{font-weight:600;color:#0E1512}
/* while the post is being written its row in the list is a quiet placeholder, not a hole */
.so-prow-new{position:relative}
.so-prow-new > *{transition:opacity .5s var(--ease)}
.so-prow-new::before{content:"";position:absolute;left:0;top:50%;width:58%;height:7px;margin-top:-3.5px;border-radius:4px;background:#E6EBE8;opacity:0;transition:opacity .4s var(--ease)}
.so-prow-new.so-off{opacity:1 !important;transform:none}
.so-prow-new.so-off > *{opacity:0}
.so-prow-new.so-off::before{opacity:1}
.so-pos{display:inline-flex;align-items:baseline;gap:7px;flex:none}
.so-pos b{font-family:var(--font-display);font-size:15px;letter-spacing:-.02em;color:#0E1512}
.so-pos em{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-size:10.5px;font-weight:600;color:#047857}
.so-pos em::before{content:"";width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-bottom:6px solid currentColor}
.so-hold{position:absolute;inset:0;display:none}
.so-hold p{margin:9px 0 11px;color:#4B5651;font-size:12.5px;line-height:1.45}
.so-hold-b{display:flex;gap:7px;flex-wrap:wrap}
.so-hold-b .ui-btn,.so-fix-b .ui-btn{height:30px;padding:0 11px;font-size:12px}
.so-stage[data-mode="review"] .so-pub{display:none}
.so-stage[data-mode="review"] .so-hold{display:block}

/* 02 local map */
.so-scan{display:inline-flex;align-items:center;gap:6px}
.so-scan.so-busy{background:#FEF3C7;color:#92400E}
.so-scan.so-busy::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:so-pulse 1.1s ease-in-out infinite}
.so-phr{display:flex;gap:6px;flex-wrap:wrap}
.so-phr-b{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:15px;border:1px solid #DCE2DF;background:#fff;color:#4B5651;
  font-family:var(--font-sans);font-size:12px;font-weight:500;white-space:nowrap;transition:border-color .25s,background .25s,color .25s,box-shadow .25s}
.so-phr-b:hover{border-color:#A7E3CB;color:#047857}
.so-phr-b.so-on{border-color:#059669;background:#ECFDF5;color:#047857;box-shadow:inset 0 0 0 1px #059669}

.so-mapbox{position:relative;flex:1;min-height:0;aspect-ratio:320/262;border-radius:12px;overflow:hidden;border:1px solid #D9E3DE;background:#E2EEE7}
.so-map-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.so-m-water{fill:#D3E9EC}
.so-m-park{fill:#CBE6D6}
.so-m-road{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round}
.so-m-ave{fill:none;stroke:#fff;stroke-width:8;stroke-linecap:round}
.so-mapbox::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 70% at 50% 50%,rgba(255,255,255,0) 40%,rgba(226,238,231,.55) 100%)}
.so-grid{position:absolute;inset:9px;z-index:2;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr));place-items:center}
.so-dot{position:relative;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--font-mono);font-size:10px;font-weight:600;line-height:1;color:#fff;
  box-shadow:0 0 0 2px rgba(255,255,255,.9),0 3px 9px rgba(14,21,18,.24);
  transition:transform .6s var(--ease),opacity .4s;transition-delay:calc(var(--d,0) * 1ms)}
.so-r1{background:#059669}
.so-r2{background:#F59E0B}
.so-r3{background:#EA580C}
.so-r0{background:#CBD4CF;color:#6E7A75}
.so-dot.so-r0{box-shadow:0 0 0 2px rgba(255,255,255,.7)}
.so-me::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(5,150,105,.55);animation:so-halo 2.2s ease-out infinite}
@keyframes so-halo{from{transform:scale(.8);opacity:1}to{transform:scale(1.9);opacity:0}}
.so-grid.so-blank .so-dot{transform:scale(.3);opacity:0;transition-delay:0ms;transition-duration:.2s}
.so-sweep{position:absolute;left:50%;top:50%;z-index:1;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;border:1.5px solid rgba(5,150,105,.45);background:radial-gradient(closest-side,rgba(16,185,129,.12),transparent);opacity:0;pointer-events:none}
.so-mapbox.so-sweeping .so-sweep{animation:so-sweep 1.6s ease-out 2}
@keyframes so-sweep{0%{transform:scale(.3);opacity:.95}100%{transform:scale(7);opacity:0}}

.so-mstats{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8px}
.so-mstat{padding:10px 13px 11px;border-radius:10px;background:#F5F8F6;border:1px solid #ECEFED}
.so-mstat small{display:block;font-size:11.5px;color:#6B7772}
.so-mstat b{display:block;margin:1px 0;font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:-.035em;line-height:1.08;color:#0E1512}
.so-mstat-a{background:linear-gradient(180deg,#E9FBF3,#F6FDF9);border-color:#BFEBD6}
.so-mstat-a b{color:#047857}
.so-legend{display:flex;flex-wrap:wrap;gap:5px 13px;font-size:11.5px;color:#56625D}
.so-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.so-legend i{width:9px;height:9px;border-radius:50%;flex:none}

/* 03 fix list */
.so-ring{position:relative;width:52px;height:52px;flex:none;display:grid;place-items:center}
.so-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);max-width:none}
.so-ring-bg{fill:none;stroke:#E6ECE9;stroke-width:6}
.so-ring-fg{fill:none;stroke:#059669;stroke-width:6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc((100 - var(--p,0)) * 1px);transition:stroke-dashoffset 1.3s var(--ease)}
.so-ring b{position:relative;font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-.03em;color:#0E1512;font-variant-numeric:tabular-nums}
.so-fix-a,.so-fix-c{display:flex;flex-direction:column;gap:8px}
.so-fix-a{flex:1}
.so-fix-c .so-fixrow:first-child{margin-bottom:4px}
.so-fx{transition-delay:calc(var(--i,0) * 110ms)}
.so-fx.so-off{transition-delay:0ms}
.so-grp{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#0E1512}
.so-grp span{padding:1px 7px;border-radius:9px;background:#EFF2F0;color:#56625D;font-family:var(--font-mono);font-size:10.5px}
.so-gd{width:9px;height:9px;border-radius:50%;flex:none}
.so-gd-1{background:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.16)}
.so-gd-2{background:#F59E0B;box-shadow:0 0 0 3px rgba(245,158,11,.16)}
.so-gd-3{background:#A3ADA8;box-shadow:0 0 0 3px rgba(163,173,168,.2)}
.so-fixcard{flex:1;display:flex;flex-direction:column;padding:13px 13px 12px;border-radius:12px;border:1px solid #E1E7E4;background:#fff;box-shadow:0 1px 2px rgba(16,24,20,.04)}
.so-fix-top{display:flex;gap:5px;flex-wrap:wrap}
.so-fix-top .ch{font-size:11px;padding:2px 7px}
.so-fix-t{display:block;margin-top:9px;font-size:13.5px;color:#0E1512}
.so-fix-d{margin-top:3px !important;font-size:12.5px;line-height:1.45;color:#4B5651}
.so-paste{flex:1;margin-top:10px;border-radius:10px;background:#0E1512;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.so-paste-h{display:flex;align-items:center;justify-content:space-between;padding:7px 8px 0 12px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8FA39A}
.so-copy{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:6px;background:rgba(255,255,255,.07);color:#D5DFDA;font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;transition:background .3s,color .3s,transform .2s}
.so-copy em{font-style:normal}
.so-copy .so-ic{width:12px;height:12px}
.so-copy.so-done{background:#059669;color:#fff}
.so-copy.so-press{transform:scale(.93)}
.so-code{display:block;padding:6px 12px 11px;font-family:var(--font-mono);font-size:11px;line-height:1.55;color:#E6EEEA;white-space:pre-wrap;word-break:break-word}
.so-tg{color:#6EE7B7}
.so-fix-b{display:flex;gap:7px;padding-top:11px}
.so-fixrow{display:flex;align-items:center;gap:9px;min-height:38px;padding:7px 11px;border-radius:10px;border:1px solid #E6EBE8;background:#FAFBFA;font-size:12.5px;color:#27312D}
.so-fixrow .ch{flex:none;font-size:11px;padding:2px 7px}
.so-fixrow b{min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-more{display:none}

/* one month of the engine */
.so-month{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:center;padding:24px 26px 28px;border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.022),transparent)}
.so-month-k{color:var(--accent-hi);font-size:11px}
.so-month-h p{margin-top:9px;color:#9FB0A8;font-size:14px;line-height:1.5}
.so-days{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:5px;padding-bottom:20px}
.so-d{position:relative;display:block;aspect-ratio:1;border-radius:5px;background:rgba(255,255,255,.055);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.so-d-w::after{content:attr(data-day);position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);font-style:normal;font-family:var(--font-mono);font-size:10px;line-height:1;color:#7F8C86}
.so-d.so-lit{background:rgba(16,185,129,.34);box-shadow:inset 0 0 0 1px rgba(52,211,153,.4)}
.so-d-w.so-lit{background:rgba(52,211,153,.62);box-shadow:inset 0 0 0 1px rgba(167,243,208,.85),0 0 0 3px rgba(52,211,153,.16)}
.so-d-m.so-lit{background:linear-gradient(180deg,#C8FBE4,#34D399);box-shadow:0 0 0 3px rgba(52,211,153,.22),0 0 18px rgba(52,211,153,.6)}
.so-d.so-now{background:#A7F3D0;box-shadow:0 0 0 3px rgba(167,243,208,.2),0 0 16px rgba(110,231,183,.8)}
.so-keys{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.so-keys li{display:flex;align-items:flex-start;gap:11px;min-width:0}
.so-keys b{display:block;font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:-.015em;color:#fff}
.so-keys span{display:block;margin-top:2px;color:#9FB0A8;font-size:13px;line-height:1.4}
.so-k{width:13px;height:13px;margin-top:4px;border-radius:4px;flex:none}
.so-k-d{background:rgba(16,185,129,.4);box-shadow:inset 0 0 0 1px rgba(52,211,153,.5)}
.so-k-w{background:rgba(52,211,153,.66);box-shadow:inset 0 0 0 1px rgba(167,243,208,.85),0 0 0 3px rgba(52,211,153,.16)}
.so-k-m{background:linear-gradient(180deg,#C8FBE4,#34D399);box-shadow:0 0 0 3px rgba(52,211,153,.22),0 0 14px rgba(52,211,153,.55)}

/* ---------- two tiles ---------- */
.so-duo{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(18px,1.8vw,26px)}
.so-tile{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;isolation:isolate;border-radius:22px;border:1px solid transparent;padding:30px 30px 0;
  background:
    linear-gradient(#0A0F0D,#0A0F0D) padding-box,
    linear-gradient(150deg,rgba(167,243,208,.34),rgba(255,255,255,.07) 30%,rgba(255,255,255,.04) 70%,rgba(52,211,153,.24)) border-box;
  box-shadow:0 30px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.so-tile::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 88% 0%,rgba(52,211,153,.2),transparent 64%),
    radial-gradient(50% 44% at 0% 100%,rgba(16,185,129,.12),transparent 62%)}
.so-tile::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask-image:radial-gradient(80% 70% at 70% 20%,#000,transparent 76%);mask-image:radial-gradient(80% 70% at 70% 20%,#000,transparent 76%)}
.so-tile-k{display:inline-flex;align-items:center;gap:9px;color:var(--accent-hi);font-size:11px}
.so-tile-k .so-ic{width:15px;height:15px}
.so-tile h3{margin-top:16px;max-width:17em;font-family:var(--font-display);font-weight:500;font-size:clamp(22px,2vw,28px);letter-spacing:-.03em;line-height:1.15;color:#fff;text-wrap:balance}
.so-tile-t p{margin-top:12px;margin-bottom:24px;max-width:33em;color:var(--fg-muted);font-size:15px;line-height:1.55}
/* three small figures: number over label, pinned to the foot of the text block so both tiles line up */
.so-facts{list-style:none;margin:auto 0 0;padding:18px 0 0;border-top:1px dashed var(--line-mid);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.so-facts li{display:flex;flex-direction:column;gap:9px;min-width:0;padding:0 16px 0 20px;border-left:1px solid var(--line)}
.so-facts li:first-child{padding-left:0;border-left:0}
.so-facts b{align-self:flex-start;font-family:var(--font-display);font-weight:600;font-size:30px;letter-spacing:-.035em;line-height:1;background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.so-facts span{min-height:2.9em;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#93A19B;line-height:1.45}

.so-tile-t{flex:1;display:flex;flex-direction:column}
/* the product card runs off the foot of the tile and fades out, so it reads as a crop, not a cut */
.so-tile > .pc{position:relative;flex:none;height:348px;overflow:hidden;margin-top:28px;font-family:var(--font-sans);font-size:13px;line-height:1.4;color:#111815;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 92px),rgba(0,0,0,.18) 100%);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 92px),rgba(0,0,0,.18) 100%)}
.so-tile > .pc b{font-weight:600}
.so-tile > .pc ul{list-style:none;margin:0;padding:0}

/* website builder */
.so-web{padding:0;border-radius:16px 16px 0 0;border-bottom:0}
.so-web-bar{display:flex;align-items:center;gap:12px;height:46px;padding:0 14px;border-bottom:1px solid #E6EBE8;background:#F7F9F8}
.so-web-dots{display:flex;gap:5px;flex:none}
.so-web-dots i{width:9px;height:9px;border-radius:50%;background:#D5DCD8}
.so-url{flex:1;min-width:0;display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:14px;border:1px solid #E1E7E4;background:#fff;color:#27312D;font-family:var(--font-mono);font-size:11px;white-space:nowrap;overflow:hidden}
.so-url .so-ic{width:12px;height:12px;color:#059669}
.so-url span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.so-dev{display:flex;gap:3px;flex:none;padding:3px;border-radius:8px;background:#EEF2F0;color:#7A8681}
.so-dev .so-ic{width:24px;height:22px;padding:4px 5px;border-radius:6px;box-sizing:border-box}
.so-dev .so-ic.so-on{background:#fff;color:#047857;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.so-web-tabs{display:flex;gap:4px;padding:10px 14px 0;border-bottom:1px solid #ECEFED;overflow:hidden}
.so-web-tabs span{padding:0 10px 9px;font-size:12px;font-weight:500;color:#6B7772;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.so-web-tabs .so-on{color:#047857;border-bottom-color:#059669;font-weight:600}
.so-web-body{display:grid;grid-template-columns:minmax(0,176px) minmax(0,1fr);gap:14px;padding:14px 14px 0}
.so-secs{display:flex;flex-direction:column;gap:6px}
.so-secs li{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px 0 8px;border-radius:9px;border:1px solid #E6EBE8;background:#fff;font-size:12.5px;color:#27312D}
.so-secs .so-pick{border-color:#059669;background:#F1FCF7;box-shadow:0 8px 20px rgba(5,150,105,.18);font-weight:600;color:#065F46}
.so-grip{width:8px;height:12px;flex:none;opacity:.55;background-image:radial-gradient(circle,#7A8681 1.1px,transparent 1.3px);background-size:4px 4px}
.so-secs em{margin-left:auto;position:relative;width:24px;height:14px;border-radius:7px;background:#D5DCD8;flex:none}
.so-secs em::after{content:"";position:absolute;left:2px;top:2px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.so-secs em.so-on{background:#059669}
.so-secs em.so-on::after{left:12px}
.so-secs .so-add{justify-content:center;border-style:dashed;border-color:#C2CAC6;background:transparent;color:#047857;font-weight:500}
.so-add .so-ic{width:13px;height:13px}
.so-page{display:flex;flex-direction:column;gap:8px;padding:10px 10px 0;border-radius:12px 12px 0 0;border:1px solid #E1E7E4;border-bottom:0;background:#F5F8F6;min-height:236px}
.so-pg{border-radius:8px;background:#fff;border:1px solid #E6EBE8}
.so-pg-hero{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:16px 16px 15px;border:0;color:#fff;
  background:radial-gradient(90% 120% at 100% 0%,rgba(52,211,153,.55),transparent 60%),linear-gradient(135deg,#064E3B,#0B241B)}
.so-pg-hero b{font-family:var(--font-display);font-size:15px;letter-spacing:-.02em;line-height:1.2}
.so-pg-hero span{font-size:11px;color:rgba(255,255,255,.72)}
.so-pg-hero i{margin-top:6px;padding:4px 11px;border-radius:6px;background:#34D399;color:#03130D;font-style:normal;font-size:10.5px;font-weight:600}
.so-pg u{display:block;height:6px;width:var(--w);border-radius:3px;background:#E1E7E4;text-decoration:none}
.so-pg-about{display:flex;flex-direction:column;gap:6px;padding:11px 12px}
.so-pg-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:8px;border-color:#A7E3CB;box-shadow:0 0 0 2px rgba(16,185,129,.18)}
.so-pg-row i{height:38px;border-radius:6px;background:linear-gradient(180deg,#E4F7EE,#F3FBF7);border:1px solid #CDEEDD}
.so-pg-quote{display:flex;flex-direction:column;gap:6px;padding:11px 12px 12px}
.so-pg-quote em{width:20px;height:20px;border-radius:50%;background:#EDE9FE}

/* visibility in assistants */
.so-aiv{padding:16px 18px 16px;border-radius:16px 16px 0 0;border-bottom:0}
.so-ring-s .so-ring-fg{stroke:#059669}
.so-aiv-m{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border-radius:12px;border:1px solid #E6EBE8;background:#FAFBFA}
.so-aiv-m span{padding:11px 13px 12px;border-right:1px solid #E6EBE8;min-width:0}
.so-aiv-m span:last-child{border-right:0}
.so-aiv-m b{display:block;font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.03em;line-height:1.1;color:#0E1512}
.so-aiv-m small{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-q{margin-top:8px !important}
.so-q li{display:flex;align-items:center;gap:10px;min-height:40px;padding:6px 0;border-bottom:1px solid #EEF1EF;font-size:12.5px;color:#27312D}
.so-q li:last-child{border-bottom:0}
.so-q span{flex:1;min-width:0}
.so-q em{font-style:normal;flex:none}


/* tile entrances */
.so-sec.so-js .so-tile .so-secs li,.so-sec.so-js .so-tile .so-pg,.so-sec.so-js .so-tile .so-q li{opacity:0;transform:translateY(10px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0) * 90ms + 350ms)}
.so-sec.so-js .so-tile.so-in .so-secs li,.so-sec.so-js .so-tile.so-in .so-pg,.so-sec.so-js .so-tile.so-in .so-q li{opacity:1;transform:none}
.so-sec.so-js .so-tile .so-ring-fg{stroke-dashoffset:100px}
.so-sec.so-js .so-tile.so-in .so-ring-fg{stroke-dashoffset:calc((100 - var(--p,0)) * 1px);transition-delay:.5s}

/* ---------- responsive ---------- */
/* three cards side by side need about 345px each; below that the third card takes its own row */
@media (max-width:1240px){
  .so-trio{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .so-join{left:-26px}
  .so-col:nth-child(3){grid-column:1 / -1}
  .so-col:nth-child(3) .so-join{left:50%;top:-11px;margin:-15px 0 0 -15px;transform:rotate(90deg)}
  .so-fix{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;row-gap:12px;align-items:start}
  .so-fix > .so-card-h{grid-column:1 / -1}
  .so-fix-c{padding-top:0}
  .so-more{display:flex}
}
@media (max-width:1180px){
  .so-trio{padding-left:22px;padding-right:22px}
  .so-top,.so-month{padding-left:22px;padding-right:22px}
}
@media (max-width:1100px){
  .so-month{grid-template-columns:1fr;gap:18px}
  .so-val{padding-left:20px;padding-right:20px}
  .so-val-g{right:20px;width:38px;height:38px}
}
@media (max-width:860px){
  .so-vals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .so-val{padding:26px 18px 28px}
  .so-val:nth-child(odd){padding-left:0}
  .so-val:nth-child(even){border-right:0;padding-right:0}
  .so-val:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .so-val-g{top:28px;right:18px}
  .so-val:nth-child(even) .so-val-g{right:0}
  .so-val p{font-size:14px}

  .so-stage{border-radius:18px}
  .so-top{flex-wrap:wrap;gap:12px;padding:16px 14px 0}
  .so-hint{order:3;flex:1 0 100%;margin-left:0;text-align:left;font-size:14px}
  .so-mode{margin-left:auto}
  .so-mode-b{height:44px;padding:0 14px;font-size:13px}
  .so-trio{grid-template-columns:minmax(0,1fr);gap:30px;padding:20px 14px 24px}
  .so-col:nth-child(3){grid-column:auto}
  .so-col .so-join,.so-col:nth-child(3) .so-join{left:50%;top:-15px;margin:-15px 0 0 -15px;transform:rotate(90deg)}
  .so-step{min-height:44px;padding-top:8px}
  .so-fix{display:flex;align-items:stretch}
  .so-more{display:none}
  .so-fixrow b{white-space:normal;overflow:visible;text-overflow:clip}
  .so-phr-b{height:44px;padding:0 12px;border-radius:22px;font-size:12.5px}
  .so-body,.so-fix-d,.so-hold p{font-size:14px}
  .so-sub,.so-prow,.so-fixrow,.so-fix-t,.so-q li,.so-secs li{font-size:13.5px}
  .so-fix-t{font-size:14.5px}
  .so-code{font-size:11.5px}
  .so-mstat small,.so-legend,.so-card-h small{font-size:12px}
  .so-col.so-on .so-card{transform:none}
  .so-month{padding:20px 14px 22px}
  .so-keys{grid-template-columns:1fr;gap:14px}
  .so-keys span{font-size:14px}
  .so-month-h p{font-size:14px}

  .so-duo{grid-template-columns:minmax(0,1fr)}
  .so-tile{padding:24px 18px 0;border-radius:18px}
  .so-facts span{min-height:0}
  .so-tile-t p{font-size:15px}
}
@media (min-width:600px) and (max-width:860px){
  .so-mapbox{flex:none;aspect-ratio:auto;height:350px}
  .so-grid{left:50%;right:auto;width:min(430px,calc(100% - 18px));transform:translateX(-50%)}
}
@media (max-width:599px){
  .so-days{grid-template-columns:repeat(15,minmax(0,1fr));gap:22px 6px}
}
@media (max-width:460px){
  .so-top .so-badge{font-size:12px;padding:8px 11px;white-space:normal}
  .so-mode{width:100%;margin-left:0}
  .so-mode-b{flex:1}
  .so-card{padding:15px}
  .so-phr-b{padding:0 10px;font-size:12px}
  .so-dot{width:25px;height:25px}
  .so-grid{inset:6px}
  .so-mapbox{flex:none;aspect-ratio:1 / 1}
  .so-kw{flex-wrap:wrap;gap:8px 10px}
  .so-kw-chip{max-width:100%}
  .so-kw-m{margin-left:0}
  .so-facts li{padding:0 8px 0 14px}
  .so-facts b{font-size:26px}
  .so-web-body{grid-template-columns:minmax(0,1fr)}
  .so-secs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .so-dev,.so-web-dots{display:none}
  .so-aiv-m b{font-size:20px}
  .so-aiv-m span{padding:10px 10px 11px}
  .so-aiv-m small{white-space:normal;font-size:11px;line-height:1.3}
  .so-aiv-use{display:none}
  .so-web-tabs{gap:0;padding:10px 10px 0}
  .so-web-tabs span{padding:0 7px 9px;font-size:11.5px}
  .so-web-bar{gap:9px;padding:0 11px}
  .so-q li{align-items:flex-start;flex-direction:column;gap:5px;padding:9px 0}
  .so-val-n{font-size:40px}
  .so-val-g{display:none}
}

@media (max-width:380px){
  .so-phr{gap:5px}
  .so-phr-b{padding:0 9px}
  .so-legend{display:grid;grid-template-columns:repeat(2,max-content);gap:6px 24px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .so-sec *{animation:none !important;transition:none !important}
  .so-sec.so-js .so-rv{opacity:1;transform:none}
  .so-sec.so-js .so-tile .so-secs li,.so-sec.so-js .so-tile .so-pg,.so-sec.so-js .so-tile .so-q li{opacity:1;transform:none}
  .so-sec.so-js .so-tile .so-ring-fg{stroke-dashoffset:calc((100 - var(--p,0)) * 1px)}
  .so-col.so-on .so-card{transform:none}
  .so-sweep,.so-me::after{display:none}
}

/* ============================================================
   SECTION: integrations
   ============================================================ */

/* ============================================================
   CONNECTIONS AND MIGRATION  (section id "integrations", prefix cn-)
   A hub on a glowing stage: the GrowHigh mark in the centre, two
   rings of connectors around it, light travelling along each spoke
   in the direction the data moves. A light migration card sits
   beside the hub. Five values underneath, in two groups.
   The hub is drawn on a 740 x 640 board and scaled by the script.
   ============================================================ */

.cn-sec:not(.is-live) *{animation-play-state:paused}

.cn-ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.cn-grow{flex:1;min-width:0}
.cn-vh{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* reveal (only when the script is running, so the page reads without it) */
.cn-js .cn-rise{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
.cn-js.cn-in .cn-rise{opacity:1;transform:none}

/* ---------- the stage ---------- */
.cn-stage{display:grid;grid-template-columns:minmax(0,1fr) 416px;align-items:stretch;padding:0}
.cn-hub{position:relative;min-width:0;display:flex;flex-direction:column;padding:26px 6px 26px 28px}
.cn-side{position:relative;display:flex;align-items:center;min-width:0;padding:26px 26px 26px 10px}

.cn-hub-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;z-index:4}
.cn-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.3;color:#B4C0BB}
.cn-legend li{display:flex;align-items:center;gap:10px}
.cn-legend .mono{font-size:10px;letter-spacing:.1em;color:var(--fg-subtle);min-width:84px}
.cn-lg{width:13px;height:13px;border-radius:50%;flex:none}
.cn-lg-1{border:1.5px solid #34D399;box-shadow:0 0 10px rgba(52,211,153,.5)}
.cn-lg-2{border:1.5px dashed rgba(255,255,255,.5)}
.cn-live{flex:none;padding:9px 14px}
.cn-live b{display:inline-block;min-width:1.9em;font-variant-numeric:tabular-nums}
.cn-live b.cn-is-bump{animation:cn-bump .9s var(--ease)}
@keyframes cn-bump{0%{transform:translateY(7px);opacity:0;color:#6EE7B7}45%{transform:none;opacity:1;color:#A7F3D0}100%{color:#fff}}

/* ---------- the board ---------- */
.cn-fit{position:relative;width:100%;height:640px;margin-top:-18px}
.cn-board{position:absolute;left:50%;top:0;width:740px;height:640px;margin-left:-370px;transform-origin:50% 0;font-family:var(--font-sans)}
.cn-orbit,.cn-orbit-in{position:absolute;inset:0;pointer-events:none}

.cn-glow{position:absolute;left:370px;top:326px;width:760px;height:760px;margin:-380px 0 0 -380px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(52,211,153,.23),rgba(16,185,129,.08) 40%,transparent 70%)}

.cn-ring{position:absolute;left:370px;top:326px;border-radius:50%;transform:translate(-50%,-50%)}
.cn-ring-1{width:346px;height:346px;border:1px solid rgba(167,243,208,.2);box-shadow:inset 0 0 80px rgba(16,185,129,.09),0 0 60px rgba(16,185,129,.05)}
.cn-ring-2{width:572px;height:572px;border:1px dashed rgba(255,255,255,.15)}
/* a light that travels round each ring */
.cn-ring::after{
  content:"";position:absolute;inset:-1px;border-radius:50%;padding:1px;
  background:conic-gradient(from 0deg,transparent 0 70%,rgba(110,231,183,0) 70%,rgba(167,243,208,.8) 86%,transparent 86.5%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:cn-spin 16s linear infinite;
}
.cn-ring-2::after{animation-duration:26s;animation-direction:reverse;opacity:.55}
@keyframes cn-spin{to{transform:rotate(360deg)}}

.cn-pulse{position:absolute;left:370px;top:326px;width:572px;height:572px;margin:-286px 0 0 -286px;border-radius:50%;
  border:1px solid rgba(110,231,183,.55);opacity:0;animation:cn-pulse 7s cubic-bezier(.2,.6,.3,1) infinite}
.cn-pulse-b{animation-delay:-3.5s}
@keyframes cn-pulse{0%{transform:scale(.22);opacity:0}10%{opacity:.5}100%{transform:scale(1.04);opacity:0}}

/* spokes: a thin line from the hub to each connector */
.cn-sp{position:absolute;left:370px;top:326px;width:var(--r);height:1px;transform-origin:0 50%;transform:rotate(var(--a));
  background:linear-gradient(90deg,transparent 60px,rgba(110,231,183,.6) 70px,rgba(110,231,183,.2) 100%)}
.cn-sp-o{background:none}
.cn-sp-o::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(167,243,208,.42) 0 2px,transparent 2px 8px);
  -webkit-mask-image:linear-gradient(90deg,transparent 62px,#000 76px);mask-image:linear-gradient(90deg,transparent 62px,#000 76px)}
.cn-sp::after{content:"";position:absolute;left:64px;right:0;top:-1px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,#D1FAE5,rgba(52,211,153,.55));box-shadow:0 0 14px rgba(52,211,153,.9);opacity:0;transition:opacity .5s}
.cn-sp.cn-is-on::after{opacity:1}
/* a round node at the end of each spoke: only shown on phones, where the labels move into lists */
.cn-nd{display:none;position:absolute;right:-21px;top:50%;width:42px;height:42px;margin-top:-21px;border-radius:50%;place-items:center;transform:rotate(calc(var(--a) * -1));
  background:linear-gradient(180deg,#16221D,#0A100D);border:1.5px solid rgba(255,255,255,.2);color:#C3CFCA;box-shadow:0 8px 20px rgba(0,0,0,.5);transition:border-color .45s,box-shadow .45s,color .45s,background .45s}
.cn-nd .cn-ic{width:19px;height:19px;stroke-width:1.9}
.cn-sp:not(.cn-sp-o) .cn-nd{color:#6EE7B7;border-color:rgba(110,231,183,.4)}
.cn-sp.cn-is-on .cn-nd{background:linear-gradient(180deg,#6EE7B7,#10B981);border-color:#D1FAE5;color:#03130D;box-shadow:0 0 0 6px rgba(52,211,153,.18),0 0 30px rgba(52,211,153,.8)}

/* dial marks between the two rings */
.cn-ticks{position:absolute;left:370px;top:326px;width:468px;height:468px;margin:-234px 0 0 -234px;border-radius:50%;
  background:repeating-conic-gradient(from -.2deg,rgba(255,255,255,.2) 0 .4deg,transparent .4deg 3deg);
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));mask:radial-gradient(closest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));opacity:.55}

/* captions that follow the outer ring */
.cn-arcs{position:absolute;left:0;top:0;width:740px;height:640px;max-width:none;overflow:visible}
.cn-arcs text{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.3px;text-transform:uppercase;fill:rgba(167,243,208,.6);text-anchor:middle}

/* the light that travels: a small comet, head first */
.cn-m{position:absolute;left:0;top:50%;width:18px;height:2px;margin-top:-1px;border-radius:2px;opacity:0;filter:drop-shadow(0 0 5px rgba(110,231,183,.95))}
.cn-m::after{content:"";position:absolute;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:#F0FFF8;box-shadow:0 0 10px 2px rgba(52,211,153,.9)}
.cn-m-in{background:linear-gradient(90deg,#ECFDF5,rgba(52,211,153,0));animation:cn-in var(--t,3s) cubic-bezier(.45,.05,.55,.95) var(--dl,0s) infinite}
.cn-m-in::after{left:-2px}
.cn-m-out{background:linear-gradient(270deg,#ECFDF5,rgba(52,211,153,0));animation:cn-out var(--t,3s) cubic-bezier(.45,.05,.55,.95) calc(var(--dl,0s) - var(--t,3s) / 2) infinite}
.cn-m-out::after{right:-2px}
@keyframes cn-in{0%{transform:translateX(calc(var(--r) - 40px));opacity:0}16%{opacity:1}82%{opacity:1}100%{transform:translateX(66px);opacity:0}}
@keyframes cn-out{0%{transform:translateX(66px);opacity:0}16%{opacity:1}82%{opacity:1}100%{transform:translateX(calc(var(--r) - 40px));opacity:0}}

/* the hub */
.cn-core{position:absolute;left:370px;top:326px;width:128px;height:128px;margin:-64px 0 0 -64px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  background:radial-gradient(circle at 50% 28%,#15291F,#08100C 72%);border:1px solid rgba(167,243,208,.6);
  box-shadow:0 0 0 9px rgba(16,185,129,.07),0 0 0 10px rgba(167,243,208,.12),0 0 80px rgba(16,185,129,.55),0 0 180px rgba(16,185,129,.22),0 26px 60px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.14)}
.cn-core svg{width:40px;height:40px;max-width:none;filter:drop-shadow(0 0 10px rgba(52,211,153,.6))}
.cn-core b{font-family:var(--font-display);font-weight:700;font-size:13.5px;letter-spacing:-.02em;line-height:1;color:#F3F6F5}
.cn-core b span{color:var(--accent-hi)}
.cn-core-halo{position:absolute;inset:-24px;border-radius:50%;border:1px solid rgba(110,231,183,.26);animation:cn-breathe 4.5s ease-in-out infinite}
@keyframes cn-breathe{0%,100%{transform:scale(.96);opacity:.5}50%{transform:scale(1.05);opacity:1}}

/* connectors */
.cn-grp{display:contents}
.cn-grp-t{display:none}
.cn-pill{
  all:unset;box-sizing:border-box;position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:3;
  display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 15px 0 6px;border-radius:999px;white-space:nowrap;cursor:pointer;
  font-family:var(--font-sans);font-size:12.5px;font-weight:500;line-height:1;color:#D5DFDA;
  background:linear-gradient(180deg,rgba(20,31,26,.97),rgba(9,15,12,.97));border:1px solid rgba(255,255,255,.15);
  box-shadow:0 14px 34px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);
  transition:border-color .45s,box-shadow .45s,color .45s,transform .5s var(--ease);
}
.cn-pi{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(52,211,153,.14);color:#6EE7B7;position:relative;transition:color .45s,background .45s}
.cn-pi .cn-ic{width:13px;height:13px;position:relative}
.cn-pill-o .cn-pi{background:rgba(255,255,255,.08);color:#C3CFCA}
.cn-pill:hover{border-color:rgba(167,243,208,.5);color:#fff}
.cn-pill:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
.cn-pill.cn-is-on{color:#fff;border-color:rgba(110,231,183,.9);transform:translate(-50%,-50%) scale(1.07);z-index:4;
  box-shadow:0 0 0 4px rgba(52,211,153,.14),0 0 40px rgba(16,185,129,.5),0 14px 34px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12)}
.cn-pill.cn-is-on .cn-pi{background:linear-gradient(180deg,#6EE7B7,#10B981);color:#03130D}


/* what the selected connector does */
.cn-read{position:relative;z-index:4;display:flex;align-items:center;gap:16px;margin-top:-8px;padding:16px 18px 18px;border-radius:16px;overflow:hidden}
.cn-read-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;background:rgba(52,211,153,.12);border:1px solid rgba(110,231,183,.32);color:#6EE7B7;
  box-shadow:0 0 26px rgba(16,185,129,.2)}
.cn-read-ic .cn-ic{width:20px;height:20px}
.cn-read-main{flex:1;min-width:0}
.cn-read-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
.cn-read-top b{font-family:var(--font-display);font-weight:600;font-size:17.5px;letter-spacing:-.02em;line-height:1.2;color:#fff;margin-right:4px}
.cn-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:#B4C0BB;border:1px solid rgba(255,255,255,.15);white-space:nowrap}
.cn-tag em{font-style:normal}
.cn-tag-d{color:#A7F3D0;border-color:rgba(110,231,183,.36);background:rgba(16,185,129,.1)}
/* direction mark: a dot for the hub and an arrow head showing which way the data moves */
.cn-tag-d i{position:relative;width:17px;height:8px;flex:none;background:radial-gradient(circle,currentColor 0 2.2px,transparent 2.8px) right center / 6px 6px no-repeat}
.cn-tag-d i::before,.cn-tag-d i::after{content:"";position:absolute;top:50%;width:5px;height:5px;margin-top:-2.5px;border:solid currentColor;border-width:1.5px 1.5px 0 0;transform:rotate(45deg)}
.cn-tag-d[data-dir="in"] i::before{left:0;opacity:.45}
.cn-tag-d[data-dir="in"] i::after{left:5px}
.cn-tag-d[data-dir="out"] i{background-position:left center}
.cn-tag-d[data-dir="out"] i::before{right:6px;opacity:.45}
.cn-tag-d[data-dir="out"] i::after{right:1px}
.cn-tag-d[data-dir="both"] i{background-position:center}
.cn-tag-d[data-dir="both"] i::before{left:1px;transform:rotate(-135deg)}
.cn-tag-d[data-dir="both"] i::after{right:1px}
.cn-read p{margin:6px 0 0;font-size:14px;line-height:1.5;color:#AEB9B4;min-height:42px;max-width:46em}
.cn-read.cn-is-swap .cn-read-main,.cn-read.cn-is-swap .cn-read-ic{animation:cn-swap .6s var(--ease) both}
@keyframes cn-swap{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.cn-read-nav{display:flex;align-items:center;gap:8px;flex:none;color:var(--fg-muted)}
.cn-read-nav .mono{margin-right:6px;font-size:11px}
.cn-read-nav button{all:unset;box-sizing:border-box;width:40px;height:40px;border:1px solid var(--line-mid);border-radius:50%;background:rgba(255,255,255,.03);color:var(--fg);cursor:pointer;display:grid;place-items:center;transition:border-color .2s,background .2s}
.cn-read-nav button:hover{border-color:var(--accent-hi);background:var(--accent-wash)}
.cn-read-nav button:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
.cn-read-nav svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cn-read-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.06)}
.cn-read-bar u{display:block;height:100%;width:0;text-decoration:none;background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 12px var(--accent-hi)}
.cn-read-bar u.cn-is-run{animation:cn-bar var(--cn-dwell,3.4s) linear forwards}
.cn-read-bar u.cn-is-full{width:100%}
@keyframes cn-bar{from{width:0}to{width:100%}}

/* ---------- migration card ---------- */
.cn-mig{position:relative;width:100%;padding:18px 18px 14px;display:flex;flex-direction:column;font-family:var(--font-sans);font-size:13px;line-height:1.35;color:#111815}
.cn-mig b{font-weight:600}
.cn-mig-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;background:#E4F7EE;color:#047857}
.cn-mig-ic .cn-ic{width:18px;height:18px}
.cn-mig-h h5{font-size:16px}

.cn-steps{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;position:relative}
.cn-steps::before{content:"";position:absolute;left:19.3px;top:18px;bottom:18px;width:1.4px;background:#E1E6E3}
.cn-steps li{position:relative}
.cn-step{all:unset;box-sizing:border-box;position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px 0 8px;border-radius:9px;cursor:pointer;transition:background .35s}
.cn-step:hover{background:#F5F8F6}
.cn-step:focus-visible{outline:2px solid #059669;outline-offset:1px}
.cn-step i{position:relative;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:#6B7772;
  border:1.4px solid #C9D1CD;background:#fff;transition:background .35s,border-color .35s,color .35s,box-shadow .35s}
.cn-step i::after{content:"";position:absolute;left:8.5px;top:4.5px;width:4.5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg) scale(.4);opacity:0;transition:opacity .3s,transform .4s var(--ease)}
.cn-step b{font-weight:500;font-size:13px;color:#56625D;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .35s}
.cn-step em{font-style:normal;font-size:11.5px;color:#6B7772;white-space:nowrap;opacity:0;transform:translateX(8px);transition:opacity .45s,transform .45s var(--ease)}
.cn-step.cn-is-done i{background:#059669;border-color:#059669;color:transparent}
.cn-step.cn-is-done i::after{opacity:1;transform:rotate(42deg)}
.cn-step.cn-is-done b{color:#27312D}
.cn-step.cn-is-done em{opacity:1;transform:none}
.cn-step.cn-is-on,.cn-step.cn-is-on:hover{background:#EAF9F1}
.cn-step.cn-is-on b{color:#0E1512;font-weight:600}
.cn-step.cn-is-on i{border-color:#059669;box-shadow:0 0 0 3px rgba(16,185,129,.18)}
.cn-step.cn-is-on:not(.cn-is-done) i{color:#047857}
.cn-step.cn-is-on::before{content:"";position:absolute;left:-18px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:#059669}

.cn-panes{position:relative;height:246px;margin-top:12px;border:1px solid #E3E8E5;border-radius:12px;background:#FAFBFA;overflow:hidden}
.cn-pane{position:absolute;inset:0;padding:14px 14px 12px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s,transform 0s .2s,visibility 0s .2s}
.cn-pane.cn-is-on{opacity:1;visibility:visible;transform:none;transition:opacity .5s .2s,transform .6s var(--ease) .2s}
.cn-cap{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590;margin:0 0 6px}
.cn-field{display:flex;align-items:center;gap:8px;height:36px;padding:0 11px;border:1px solid #DCE2DF;border-radius:9px;background:#fff;color:#1F2925;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden}
.cn-field .cn-ic{color:#059669}
.cn-field .cn-chev{margin-left:auto;color:#8A9590}
.cn-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px}
.cn-pane > .cn-two:first-child{margin-top:0}
.cn-note{display:flex;align-items:flex-start;gap:8px;margin:auto 0 0;padding:9px 11px;border-radius:9px;background:#ECFDF5;border:1px solid #CFF3E2;color:#065F46;font-size:12px;line-height:1.4}
.cn-note .cn-ic{width:14px;height:14px;margin-top:1px}

.cn-land{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:18px;position:relative}
.cn-land-s{position:relative;padding-top:16px;font-size:11px;color:#8A9590;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-land-s::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:3px;background:#E1E6E3}
.cn-land-s.cn-is-on{color:#047857;font-weight:600}
.cn-land-s.cn-is-on::before{background:linear-gradient(90deg,#059669,#34D399);box-shadow:0 0 0 3px rgba(16,185,129,.16)}

.cn-map{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);align-items:center;gap:10px;height:35px;border-top:1px solid #ECEFED;font-size:12.5px;color:#27312D}
.cn-map-h{height:24px;border-top:0;align-items:start;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8A9590}
.cn-map b{display:flex;align-items:center;gap:7px;color:#0E1512;white-space:nowrap}
.cn-map b .ch{font-size:10px;padding:2px 6px;font-weight:500}
.cn-map > .cn-ic{color:#10B981;width:14px;height:14px}
.cn-map-s > .cn-ic{color:#8A9590}
.cn-col{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:6px;background:#fff;border:1px solid #DCE2DF;font-family:var(--font-mono);font-size:11px;color:#3F4A45;
  width:fit-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.cn-pv-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.cn-pv-h .cn-cap{margin:0}
.cn-pv{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;height:37px;border-top:1px solid #ECEFED}
.cn-pv .ui-ini{width:26px;height:26px;font-size:9.5px}
.cn-pv div{min-width:0}
.cn-pv b{display:block;font-size:12.5px;color:#0E1512;line-height:1.25}
.cn-pv small{display:block;font-family:var(--font-mono);font-size:10.5px;color:#6B7772;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.cn-pv-1{height:48px;margin-top:16px;padding:0 11px;border:1px solid #E3E8E5;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(16,24,20,.04)}

.cn-run-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cn-run-h small{font-size:12px}
.cn-run-h small b{color:#0E1512}
.cn-meter{height:8px;border-radius:4px;background:#E6EBE8;overflow:hidden;margin:12px 0 12px}
.cn-meter i{display:block;height:100%;width:100%;border-radius:4px;background:linear-gradient(90deg,#059669,#34D399)}
.cn-run-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.cn-run-g span{padding:9px 9px 8px;border-radius:9px;background:#fff;border:1px solid #E3E8E5;min-width:0}
.cn-run-g b{display:block;font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.025em;color:#0E1512;line-height:1.1}
.cn-run-g small{display:block;font-size:11px;margin-top:2px}
.cn-run-x{display:flex;align-items:center;gap:8px;margin:11px 0 10px;font-size:12px;color:#3F4A45}
.cn-run-x .cn-ic{width:14px;height:14px;color:#059669}

/* rows arrive one after another when a step opens */
.cn-js .cn-pane.cn-is-on .cn-map,.cn-js .cn-pane.cn-is-on .cn-pv{animation:cn-row .55s var(--ease) both;animation-delay:calc(var(--d,0) * 80ms + 260ms)}
@keyframes cn-row{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}

.cn-sync{display:flex;align-items:center;gap:12px;margin-top:12px;padding:11px 12px;border-radius:11px;background:#F3F7F5}
.cn-sync b{display:block;color:#0E1512;font-size:13px}
.cn-sync small{display:block;line-height:1.35}
.cn-tog{position:relative;width:34px;height:20px;border-radius:10px;background:#059669;flex:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.2)}
.cn-tog i{position:absolute;right:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.cn-sync-ic{color:#059669;animation:cn-spin 7s linear infinite}
.cn-mig .pc-foot{margin-top:12px}

/* ---------- values ---------- */
.cn-vals{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);margin-top:clamp(40px,4.6vw,68px)}
.cn-vg{min-width:0}
.cn-vg-b{padding-left:clamp(20px,2.6vw,40px);border-left:1px solid var(--line)}
.cn-vg-t{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--fg-subtle);padding-bottom:18px;border-bottom:1px solid var(--line)}
.cn-vg-t i{width:6px;height:6px;border-radius:50%;background:var(--accent-hi);box-shadow:0 0 12px var(--accent-hi);flex:none}
.cn-vrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.cn-vg-b .cn-vrow{grid-template-columns:repeat(2,minmax(0,1fr))}
.cn-v{padding:34px 26px 4px 0;min-width:0}
.cn-v + .cn-v{padding-left:26px;border-left:1px solid var(--line)}
.cn-v b{
  display:block;width:fit-content;font-family:var(--font-display);font-weight:600;font-size:clamp(46px,4.7vw,70px);letter-spacing:-.05em;line-height:.95;padding-right:.06em;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
.cn-v em{display:block;font-style:normal;font-size:10.5px;letter-spacing:.1em;line-height:1.5;color:var(--accent-hi);margin-top:18px}
.cn-v p{color:var(--fg-muted);font-size:14.5px;line-height:1.55;margin-top:10px;max-width:25em}

/* side by side: the card is as tall as the hub beside it */
@media (min-width:1240px){
  .cn-side{align-items:stretch}
  .cn-mig-b{flex:1;display:flex;flex-direction:column;min-height:0}
  .cn-step{height:40px}
  .cn-steps::before{top:20px;bottom:20px}
  .cn-panes{flex:1;height:auto;min-height:250px}
  .cn-map{height:40px}
  .cn-map-h{height:24px}
  .cn-pv{height:42px}
  .cn-pv-1{height:50px}
}

/* ---------- responsive ---------- */
@media (max-width:1239px){
  .cn-stage{grid-template-columns:minmax(0,1fr)}
  .cn-hub{padding:24px 24px 0}
  .cn-side{padding:20px 24px 24px;justify-content:center}
  .cn-mig{max-width:900px}
  .cn-mig-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:center}
  .cn-steps{margin-top:16px}
  .cn-panes{margin-top:16px}
  .cn-vals{grid-template-columns:minmax(0,1fr)}
  .cn-vg-b{padding-left:0;border-left:0;margin-top:44px}
}

@media (max-width:760px){
  .cn-stage{border-radius:18px}
  .cn-hub{padding:16px 14px 0}
  .cn-side{padding:16px 14px 14px}
  .cn-hub-h{flex-direction:column;gap:14px}
  .cn-legend{font-size:14px}
  .cn-legend li{align-items:flex-start}
  .cn-legend .cn-lg{margin-top:3px}
  .cn-legend .mono{min-width:82px;padding-top:3px}

  /* the board becomes a small drawing, then lists of connectors */
  .cn-fit,.cn-board{display:contents}
  .cn-orbit{position:relative;inset:auto;order:1;height:calc(624px * var(--cn-os,.56));margin:0 -14px;overflow:hidden}
  .cn-orbit-in{inset:auto;left:50%;top:calc(-14px * var(--cn-os,.56));width:740px;height:640px;margin-left:-370px;transform:scale(var(--cn-os,.56));transform-origin:50% 0}
  .cn-core b{display:none}
  .cn-core svg{width:62px;height:62px}
  .cn-nd{display:grid}
  .cn-arcs,.cn-ticks{display:none}
  .cn-hub-h{order:0}
  .cn-read{order:2;margin-top:4px;flex-wrap:wrap;gap:12px 14px;padding:16px 16px 18px}
  .cn-read-main{flex:1 1 200px}
  .cn-read p{min-height:63px}
  .cn-tag{font-size:10px}
  .cn-read-nav{width:100%;justify-content:space-between}
  .cn-read-nav .mono{margin-right:auto}
  .cn-read-nav button{width:44px;height:44px}
  .cn-grp{display:flex;flex-wrap:wrap;gap:8px;order:3;margin-top:22px}
  .cn-grp-t{display:block;width:100%;font-size:10.5px;letter-spacing:.12em;color:var(--fg-subtle);margin-bottom:2px}
  .cn-pill,.cn-pill.cn-is-on{position:relative;left:auto;top:auto;transform:none;height:44px;padding:0 16px 0 8px;font-size:14px}
  .cn-pi{width:28px;height:28px}
  .cn-pi .cn-ic{width:14px;height:14px}
  .cn-side{margin-top:10px}

  .cn-mig{padding:16px 14px 12px}
  .cn-mig-b{display:block}
  .cn-step{height:44px;gap:8px;padding:0 8px 0 6px}
  .cn-step b{font-size:13.5px}
  .cn-step em{font-size:11px}
  .cn-step.cn-is-on::before{left:-14px}
  .cn-steps::before{top:22px;bottom:22px}
  .cn-panes{height:264px}
  .cn-land-s{font-size:10.5px;letter-spacing:-.01em;text-overflow:clip}
  .cn-map{height:37px;font-size:13px}
  .cn-map-h{height:24px;font-size:10px}
  .cn-pv{height:40px}
  .cn-pv b{font-size:13px}
  .cn-run-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cn-run-x{display:none}
  .cn-sync small{font-size:12.5px}
  .cn-note{font-size:13px}
  .cn-cap{font-size:10px}
  .cn-mig .pc-foot{font-size:13px;align-items:flex-start}
  .cn-mig{max-width:none}

  .cn-vrow,.cn-vg-b .cn-vrow{grid-template-columns:minmax(0,1fr)}
  .cn-v,.cn-v + .cn-v{display:grid;grid-template-columns:92px minmax(0,1fr);column-gap:16px;padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .cn-v b{grid-row:1 / span 2;font-size:52px;align-self:start}
  .cn-v em{margin-top:6px}
  .cn-v p{grid-column:2;margin-top:8px;font-size:14.5px}
  .cn-vg-b{margin-top:36px}
}

@media (max-width:359px){
  .cn-step{grid-template-columns:24px minmax(0,1fr)}
  .cn-step em{display:none}
  .cn-mig-h .ch{display:none}
  .cn-legend .mono{min-width:76px}
}

@media (prefers-reduced-motion:reduce){
  .cn-sec *,.cn-sec *::before,.cn-sec *::after{animation:none !important;transition:none !important}
  .cn-m,.cn-pulse{display:none}
  .cn-js .cn-rise{opacity:1;transform:none}
  .cn-read-bar u{width:100%}
}

/* ============================================================
   SECTION: features
   ============================================================ */

/* ============================================================
   EVERYTHING INCLUDED — the feature index.  Prefix: ix-
   Layout: a strip of totals, then one framed panel holding the
   search bar, the group tabs and the list.
   The plain markup is the full list, open. Everything that hides rows
   (the cut "All" view, the folds) and every control is switched on by
   .ix-js, which section.js adds to the section; with no script the
   whole list is simply there to read.
   ============================================================ */

.ix-sec::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(56% 30% at 72% 22%,rgba(16,185,129,.085),transparent 70%),
    radial-gradient(40% 26% at 12% 60%,rgba(16,185,129,.045),transparent 70%);
}
.ix-sec:not(.is-live) *{animation-play-state:paused}

.ix-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ix-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}
.ix-kbd{
  display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:7px;
  border:1px solid var(--line-mid);background:rgba(255,255,255,.04);color:var(--fg-muted);
  font-family:var(--font-mono);font-size:11px;line-height:1;letter-spacing:0;box-shadow:inset 0 -1px 0 rgba(255,255,255,.08);
}

/* ---------- the totals ---------- */
.ix-totals{
  display:grid;grid-template-columns:minmax(0,1.62fr) repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.ix-total{position:relative;min-width:0;padding:34px 28px 32px;border-left:1px solid var(--line)}
.ix-total:first-child{border-left:0;padding-left:0}
.ix-total b{
  display:block;width:fit-content;font-family:var(--font-display);font-weight:600;
  font-size:clamp(40px,4.1vw,58px);line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FFFFFF 12%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;padding-right:.06em;
}
.ix-total .mono{display:block;margin-top:16px;font-size:11px;letter-spacing:.1em;color:var(--fg)}
.ix-total small{display:block;margin-top:7px;font-size:14px;line-height:1.5;color:var(--fg-muted);max-width:21em;text-wrap:pretty}
.ix-total-hero{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr auto auto;column-gap:clamp(20px,2.2vw,34px);padding-right:34px}
.ix-total-hero b{grid-row:1 / -1;align-self:end;font-size:clamp(76px,8.4vw,124px);line-height:.84;letter-spacing:-.065em;padding-bottom:.02em}
.ix-total-hero .mono{grid-column:2;grid-row:2;margin-top:0;color:var(--accent-hi)}
.ix-total-hero small{grid-column:2;grid-row:3}
/* a short green rule that lights the top of the first cell */
.ix-total-hero::before{
  content:"";position:absolute;left:0;top:-1px;width:min(260px,70%);height:1px;
  background:linear-gradient(90deg,var(--accent-hi),rgba(52,211,153,0));box-shadow:0 0 14px rgba(52,211,153,.7);
}

/* ---------- the panel ---------- */
.ix-panel{
  position:relative;margin-top:clamp(28px,3.4vw,48px);border-radius:24px;border:1px solid transparent;
  overflow:hidden;overflow:clip;isolation:isolate;
  background:
    linear-gradient(#0A0F0D,#0A0F0D) padding-box,
    linear-gradient(145deg,rgba(167,243,208,.6),rgba(255,255,255,.08) 22%,rgba(255,255,255,.04) 66%,rgba(52,211,153,.42)) border-box;
  box-shadow:0 50px 140px rgba(0,0,0,.65),0 0 90px rgba(16,185,129,.12),inset 0 1px 0 rgba(255,255,255,.08);
}
.ix-bg{
  position:absolute;left:0;right:0;top:0;height:560px;z-index:-2;pointer-events:none;
  background:
    radial-gradient(52% 60% at 88% 0%,rgba(52,211,153,.20),transparent 64%),
    radial-gradient(40% 50% at 0% 0%,rgba(16,185,129,.08),transparent 66%);
}
.ix-bg::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(70% 90% at 84% 0%,#000,transparent 74%);mask-image:radial-gradient(70% 90% at 84% 0%,#000,transparent 74%);
}
.ix-spot{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(460px circle at var(--ix-mx,70%) var(--ix-my,10%),rgba(190,255,225,.075),transparent 62%);
}
.ix-panel:hover .ix-spot{opacity:1}

/* ---------- search bar ---------- */
.ix-bar{display:flex;align-items:center;gap:14px;padding:20px 22px;border-bottom:1px solid var(--line)}
.ix-search{
  position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px;height:54px;padding:0 12px 0 18px;
  border-radius:14px;border:1px solid var(--line-mid);background:rgba(255,255,255,.035);color:var(--fg-subtle);cursor:text;
  transition:border-color .25s,box-shadow .25s,background .25s,color .25s;
}
.ix-search:hover{border-color:var(--line-hi)}
.ix-search:focus-within{border-color:rgba(52,211,153,.7);background:rgba(16,185,129,.05);color:var(--accent-hi);box-shadow:0 0 0 4px rgba(16,185,129,.14)}
.ix-search > .ix-ic{width:18px;height:18px}
.ix-q{
  flex:1 1 auto;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;-webkit-appearance:none;appearance:none;
  font-family:var(--font-sans);font-size:16px;color:var(--fg);caret-color:var(--accent-hi);
}
.ix-q::placeholder{color:var(--fg-subtle);opacity:1}
.ix-q::-webkit-search-cancel-button,.ix-q::-webkit-search-decoration{-webkit-appearance:none;display:none}
.ix-q:focus-visible{outline:0}
.ix-clear{
  all:unset;box-sizing:border-box;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;cursor:pointer;
  color:var(--fg-muted);background:rgba(255,255,255,.06);transition:background .2s,color .2s;
}
.ix-clear:hover{background:rgba(255,255,255,.12);color:var(--fg)}
.ix-clear:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.ix-clear[hidden]{display:none}
.ix-clear .ix-ic{width:14px;height:14px}
.ix-has-q .ix-search > .ix-kbd{display:none}

.ix-mob{
  all:unset;box-sizing:border-box;flex:none;display:inline-flex;align-items:center;gap:10px;height:54px;padding:0 14px 0 16px;
  border-radius:14px;border:1px solid var(--line-mid);background:rgba(255,255,255,.035);cursor:pointer;
  font-size:14.5px;font-weight:500;color:var(--fg-muted);white-space:nowrap;
  transition:border-color .25s,background .25s,color .25s,box-shadow .25s;
}
.ix-mob:hover{border-color:var(--line-hi);color:var(--fg)}
.ix-mob:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}
.ix-mob b{
  min-width:28px;height:22px;padding:0 7px;border-radius:7px;display:inline-grid;place-items:center;
  background:rgba(255,255,255,.07);color:var(--fg-muted);font-size:11px;font-weight:500;letter-spacing:.02em;transition:background .25s,color .25s;
}
.ix-mob[aria-pressed="true"]{border-color:rgba(52,211,153,.7);background:rgba(16,185,129,.12);color:var(--fg);box-shadow:0 0 0 4px rgba(16,185,129,.10)}
.ix-mob[aria-pressed="true"] .ix-ic{color:var(--accent-hi)}
.ix-mob[aria-pressed="true"] b{background:var(--accent);color:#03130D;font-weight:600}

.ix-count{flex:none;min-width:11.5em;text-align:right;font-size:11px;letter-spacing:.08em;color:var(--fg-subtle);white-space:nowrap}
.ix-count b{color:var(--fg);font-weight:500}

/* ---------- group tabs ---------- */
.ix-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-right:-1px;border-bottom:1px solid var(--line)}
.ix-tab{
  all:unset;box-sizing:border-box;position:relative;min-width:0;display:flex;align-items:center;gap:9px;height:56px;padding:0 14px 0 18px;
  border-right:1px solid var(--line);cursor:pointer;color:var(--fg-subtle);
  transition:background .3s,color .3s,opacity .3s;
}
.ix-tab:nth-child(-n+6){border-bottom:1px solid var(--line)}
.ix-tab::before{
  content:"";position:absolute;left:0;right:1px;top:0;height:2px;opacity:0;transform:scaleX(.4);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--accent),var(--accent-hi));box-shadow:0 0 14px var(--accent-hi);
  transition:opacity .3s,transform .5s var(--ease);
}
.ix-tname{font-size:14.5px;font-weight:500;color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.ix-tn{
  margin-left:auto;flex:none;min-width:28px;height:22px;padding:0 7px;border-radius:7px;display:inline-grid;place-items:center;
  background:rgba(255,255,255,.055);color:var(--fg-muted);font-size:11px;font-weight:500;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;transition:background .3s,color .3s;
}
.ix-tab:hover{background:rgba(255,255,255,.03);color:var(--fg-muted)}
.ix-tab:hover .ix-tname{color:var(--fg)}
.ix-tab:focus-visible{outline:2px solid var(--accent-hi);outline-offset:-3px;border-radius:6px}
.ix-tab.ix-on{background:linear-gradient(180deg,rgba(16,185,129,.15),rgba(16,185,129,.035));color:var(--accent-hi)}
.ix-tab.ix-on::before{opacity:1;transform:none}
.ix-tab.ix-on .ix-tname{color:var(--fg)}
.ix-tab.ix-on .ix-tn{background:var(--accent);color:#03130D;font-weight:600}
.ix-tab.ix-zero{opacity:.36;cursor:default}
.ix-tab.ix-zero:hover{background:transparent}
.ix-tab.ix-zero:hover .ix-tname{color:var(--fg-muted)}

/* ---------- the list ---------- */
.ix-list{position:relative}
.ix-group[hidden]{display:none}
.ix-group:not([hidden]) ~ .ix-group:not([hidden]){border-top:1px solid var(--line)}
.ix-gh{margin:0;font:inherit}
.ix-gbtn{
  all:unset;box-sizing:border-box;display:flex;align-items:center;gap:14px;width:100%;min-width:0;padding:26px 28px 20px;
  color:var(--fg);cursor:default;
}
.ix-gico{
  width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;color:var(--accent-hi);
  background:linear-gradient(160deg,rgba(52,211,153,.2),rgba(16,185,129,.06));
  box-shadow:inset 0 0 0 1px rgba(52,211,153,.26),0 8px 22px rgba(16,185,129,.12);
}
.ix-gico .ix-ic{width:17px;height:17px}
.ix-gname{font-family:var(--font-display);font-weight:500;font-size:21px;letter-spacing:-.025em;line-height:1.2;white-space:nowrap}
.ix-gblurb{min-width:0;padding-left:16px;border-left:1px solid var(--line-mid);font-size:14px;color:var(--fg-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ix-gn{margin-left:auto;flex:none;font-size:11px;letter-spacing:.08em;color:var(--fg-subtle);white-space:nowrap}
.ix-gn b{color:var(--fg);font-weight:500}
.ix-chev{display:none;color:var(--fg-subtle);transition:transform .45s var(--ease)}

.ix-fold{display:grid;grid-template-rows:1fr}
.ix-items{
  list-style:none;margin:0 -1px 0 0;padding:0;min-height:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
}
.ix-item{
  position:relative;min-width:0;display:flex;flex-direction:column;padding:20px 28px 22px;
  border-right:1px solid var(--line);border-top:1px solid var(--line);
  transition:background .35s;
}
.ix-item[hidden]{display:none}
.ix-pad{border-right:1px solid var(--line);border-top:1px solid var(--line);min-width:0}
.ix-item::before{
  content:"";position:absolute;left:0;top:20px;bottom:20px;width:2px;border-radius:0 2px 2px 0;
  background:linear-gradient(180deg,var(--accent-hi),var(--accent));box-shadow:0 0 12px rgba(52,211,153,.7);
  transform:scaleY(0);transform-origin:50% 0;transition:transform .45s var(--ease);
}
.ix-name{
  font-family:var(--font-display);font-weight:500;font-size:16px;line-height:1.3;letter-spacing:-.015em;color:#E4EAE7;
  padding-right:72px;transition:color .3s;
}
.ix-say{margin-top:6px;font-size:14px;line-height:1.5;color:var(--fg-muted);text-wrap:balance;transition:color .3s}
.ix-meta{position:absolute;right:22px;top:19px;height:22px;display:flex;align-items:center;gap:9px}
.ix-no{font-size:10px;letter-spacing:.1em;color:#4F5A55;font-variant-numeric:tabular-nums;transition:color .3s}
.ix-m{
  display:grid;place-items:center;width:22px;height:22px;border-radius:7px;color:#7FB8A2;
  background:rgba(16,185,129,.09);box-shadow:inset 0 0 0 1px rgba(52,211,153,.2);transition:color .3s,background .3s,box-shadow .3s;
}
.ix-m .ix-ic{width:12.5px;height:12.5px;display:block}
@media (hover:hover){
  .ix-item:hover{background:linear-gradient(90deg,rgba(16,185,129,.085),rgba(16,185,129,.02) 70%)}
  .ix-item:hover::before{transform:none}
  .ix-item:hover .ix-name{color:#fff}
  .ix-item:hover .ix-say{color:#B9C4BF}
  .ix-item:hover .ix-m{color:#03130D;background:var(--accent-hi);box-shadow:0 0 16px rgba(52,211,153,.45)}
  .ix-item:hover .ix-no{color:var(--fg-muted)}
}

.ix-hit{background:rgba(52,211,153,.24);color:#EAFBF3;border-radius:3px;box-shadow:0 0 0 1.5px rgba(52,211,153,.24)}
.ix-say .ix-hit{color:#DDF6EA}

/* the list arrives in a quick wave when the view changes */
.ix-wave .ix-item{animation:ix-in .55s var(--ease) both;animation-delay:calc(var(--ix-i,0) * 22ms)}
.ix-wave .ix-gbtn{animation:ix-in .5s var(--ease) both}
@keyframes ix-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* nothing found */
.ix-none{
  display:flex;flex-direction:column;align-items:center;gap:14px;margin:0;padding:64px 24px 70px;text-align:center;
  color:var(--fg-muted);font-size:16px;
}
.ix-none[hidden]{display:none}
.ix-none > .ix-ic{width:26px;height:26px;color:var(--fg-subtle)}
.ix-none b{color:var(--fg);font-weight:500}
.ix-reset{
  all:unset;box-sizing:border-box;cursor:pointer;height:44px;padding:0 18px;border-radius:10px;border:1px solid var(--line-hi);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);
  display:inline-grid;place-items:center;transition:border-color .2s,background .2s;
}
.ix-reset:hover{border-color:var(--accent-hi);background:var(--accent-wash)}
.ix-reset:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}

/* ---------- show all ---------- */
.ix-more{display:none;justify-content:center;position:relative;z-index:3;padding:26px 22px 30px}
.ix-morebtn{gap:12px;padding:15px 22px;border-radius:10px;background:rgba(10,15,13,.72);border-color:rgba(167,243,208,.42);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 40px rgba(16,185,129,.16)}
.ix-morebtn:hover{border-color:var(--accent-hi);background:rgba(16,185,129,.14)}
.ix-morebtn .ix-ic{width:14px;height:14px;transition:transform .45s var(--ease)}
.ix-morebtn[aria-expanded="true"] .ix-ic{transform:rotate(180deg)}

/* ---------- foot ---------- */
.ix-foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px 18px;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);
}
.ix-legend{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;color:var(--fg-muted)}
.ix-legend .ix-m{color:#03130D;background:var(--accent-hi);box-shadow:none}
.ix-tip{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.1em;color:var(--fg-subtle)}

/* ============================================================
   WIDE SCREENS: tabs, three columns, a capped "All" view
   ============================================================ */
@media (min-width:861px){
  .ix-js .ix-list.ix-capped{max-height:820px;overflow:hidden}
  .ix-js .ix-list.ix-capped::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:300px;pointer-events:none;z-index:2;
    background:linear-gradient(180deg,rgba(10,15,13,0) 0%,rgba(10,15,13,.72) 42%,rgba(10,15,13,.96) 78%,#0A0F0D 100%);
  }
  .ix-js .ix-capped + .ix-more,.ix-js .ix-full + .ix-more{display:flex}
  .ix-list.ix-full{border-bottom:1px solid var(--line)}
  .ix-js .ix-capped + .ix-more{margin-top:-96px;padding-top:0;padding-bottom:30px}
  /* the long view: the way back floats at the foot of the screen */
  .ix-full + .ix-more{position:sticky;bottom:22px;padding:22px 22px 26px;pointer-events:none}
  .ix-full + .ix-more .ix-morebtn{pointer-events:auto}

  /* in the long view the group name stays in sight while its rows scroll */
  .ix-js .ix-list:not(.ix-capped) .ix-gh{
    position:sticky;top:var(--head-h,72px);z-index:2;
    background:rgba(10,15,13,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    box-shadow:0 1px 0 var(--line),0 18px 30px -18px rgba(0,0,0,.8);
  }
}
@media (min-width:861px) and (max-width:1279px){
  .ix-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ix-tab:nth-child(-n+6){border-bottom:0}
  .ix-tab:nth-child(-n+8){border-bottom:1px solid var(--line)}
}
@media (min-width:861px) and (max-width:1180px){
  .ix-item{padding:18px 24px 20px}
  .ix-meta{right:18px}
  .ix-gbtn{padding-left:24px;padding-right:24px}
  .ix-count{min-width:0}
}
@media (min-width:861px) and (max-width:1079px){
  .ix-items{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  .ix-totals{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ix-total-hero{grid-column:1 / -1;border-bottom:1px solid var(--line);padding:30px 0 28px}
  .ix-total:nth-child(2){border-left:0;padding-left:0}
}

/* ============================================================
   SMALL SCREENS: no tabs, the groups fold
   ============================================================ */
@media (max-width:860px){
  .ix-panel{border-radius:18px;margin-top:28px}
  .ix-bar{flex-wrap:wrap;gap:12px;padding:16px}
  .ix-search{flex:1 1 100%;height:52px}
  .ix-search > .ix-kbd{display:none}
  .ix-mob{height:44px;border-radius:12px;font-size:14px;padding:0 12px 0 14px}
  .ix-count{margin-left:auto;min-width:0;font-size:10.5px}
  .ix-cw{display:none}
  .ix-tabs{display:none}
  .ix-tip{display:none}

  .ix-gbtn{min-height:68px;padding:14px 16px;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .ix-gbtn:focus-visible{outline:2px solid var(--accent-hi);outline-offset:-3px;border-radius:8px}
  .ix-gname{font-size:18px}
  .ix-gblurb{display:none}
  .ix-gn{font-size:10.5px}
  .ix-js .ix-chev{display:block;width:18px;height:18px}
  .ix-js .ix-open .ix-chev{transform:rotate(180deg);color:var(--accent-hi)}
  .ix-js .ix-sifting .ix-chev{display:none}
  .ix-sifting .ix-gbtn,.ix-sec:not(.ix-js) .ix-gbtn{cursor:default}

  .ix-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ix-js .ix-fold{grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
  .ix-js .ix-items{overflow:hidden;visibility:hidden;transition:visibility 0s linear .55s}
  .ix-js .ix-open .ix-fold,.ix-js .ix-sifting .ix-fold{grid-template-rows:1fr}
  .ix-js .ix-open .ix-items,.ix-js .ix-sifting .ix-items{visibility:visible;transition-delay:0s}
  .ix-item{padding:16px 16px 18px}
  .ix-meta{right:16px;top:16px}
  .ix-say{font-size:14.5px}
  .ix-foot{padding:14px 16px 16px}
  .ix-none{padding:44px 20px 50px}
}
@media (max-width:620px){
  .ix-totals{grid-template-columns:minmax(0,1fr)}
  .ix-total,.ix-total:nth-child(2){
    display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:16px;align-items:center;
    padding:18px 0;border-left:0;border-top:1px solid var(--line);
  }
  .ix-total b{grid-row:1 / span 2;font-size:40px}
  .ix-total .mono{margin-top:0;align-self:end;font-size:10.5px}
  .ix-total small{margin-top:3px;align-self:start;font-size:14px}
  .ix-total-hero{grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:18px;border-top:0;border-bottom:0;padding:26px 0 24px}
  .ix-total-hero b{grid-row:1 / span 2;font-size:84px}
  .ix-total-hero .mono{grid-row:1;align-self:end}
  .ix-total-hero small{grid-row:2;align-self:start}
  .ix-items{grid-template-columns:minmax(0,1fr)}
  .ix-item{border-right:0}
}
@media (max-width:480px){
  .ix-gw{display:none}
  .ix-gn b{
    display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 7px;border-radius:7px;
    background:rgba(255,255,255,.06);color:var(--fg-muted);letter-spacing:.02em;
  }
  .ix-js .ix-open .ix-gn b{background:rgba(16,185,129,.16);color:var(--accent-hi)}
  .ix-gname{white-space:normal}
}

/* ---------- arriving (only when the script is running) ---------- */
.ix-js .ix-totals,.ix-js .ix-panel{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.ix-js .ix-panel{transition-delay:.12s}
.ix-js .ix-totals.ix-in,.ix-js .ix-panel.ix-in{opacity:1;transform:none}

/* ---------- no script: everything open, no dead controls ---------- */
.ix-sec:not(.ix-js) .ix-bar,.ix-sec:not(.ix-js) .ix-tabs,.ix-sec:not(.ix-js) .ix-tip{display:none}

/* ---------- reduced motion: finished state, no movement ---------- */
@media (prefers-reduced-motion:reduce){
  .ix-sec *,.ix-sec *::before,.ix-sec *::after{animation:none !important;transition:none !important}
  .ix-js .ix-totals,.ix-js .ix-panel{opacity:1;transform:none}
}

/* ============================================================
   SECTION: launch
   ============================================================ */

/* ============================================================
   GO LIVE (launch) — the 15-day rollout as a rising curve
   Every class here starts with lv-
   The plot is a 1500 x 510 board (100 units per day). Under it sits a
   strip with the day numbers and the milestone names.
   ============================================================ */

.lv-sec{
  --lv-h:510px;          /* height of the plot */
  --lv-strip:94px;       /* height of the strip under the plot */
  --lv-p:100%;           /* how far the curve is lit */
  --lv-q:100%;           /* how far the plan line is drawn */
  --lv-lx:96.667%;       /* the travelling light: left in percent, top as a share of the plot height */
  --lv-ly:.1267;
}
.lv-sec .lv-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;max-width:none}

/* nothing loops while the section is off screen */
.lv-sec:not(.is-live) *,.lv-sec:not(.is-live) *::before,.lv-sec:not(.is-live) *::after{animation-play-state:paused !important}

/* while the script sets the first state, nothing glides */
.lv-still,.lv-still *,.lv-still *::before,.lv-still *::after{transition:none !important}

/* reveal (only hidden when the script is running, so no-JS stays readable) */
.lv-rise{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.lv-sec.lv-js .lv-rise:not(.lv-in){opacity:0;transform:translateY(18px)}
.lv-vals.lv-rise{transition-delay:.15s}

.lv-board{position:relative}

/* ---------- top line of the stage ---------- */
.lv-top{
  display:flex;align-items:center;justify-content:space-between;gap:24px;height:56px;padding:0 26px;
  border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0));
}
.lv-cap{display:inline-flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.12em;color:#C9D3CF;white-space:nowrap}
.lv-cap b{font-weight:400;color:var(--fg-muted);padding-left:12px;margin-left:1px;border-left:1px solid var(--line-mid);font-variant-numeric:tabular-nums}
.lv-cap b span{color:var(--accent-hi)}
.lv-key{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--fg-muted);min-width:0}
.lv-key svg{width:28px;height:14px;fill:none;stroke:var(--accent-hi);stroke-width:1.7;stroke-linecap:round;flex:none;filter:drop-shadow(0 0 5px rgba(52,211,153,.8))}

/* ---------- the chart ---------- */
.lv-chart{position:relative;height:calc(var(--lv-h) + var(--lv-strip))}
.lv-plot{position:absolute;left:0;top:0;width:100%;height:var(--lv-h);pointer-events:none}
.lv-svg{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;overflow:visible}
.lv-svg path,.lv-svg use{vector-effect:non-scaling-stroke}
.lv-grid-h path{fill:none;stroke:rgba(255,255,255,.075);stroke-width:1;stroke-dasharray:2 7}
.lv-grid-v path{fill:none;stroke:rgba(255,255,255,.045);stroke-width:1}
.lv-axis{fill:none;stroke:rgba(255,255,255,.17);stroke-width:1}

.lv-plan,.lv-lit,.lv-glow{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.lv-plan{-webkit-clip-path:inset(0 calc(100% - var(--lv-q)) 0 0);clip-path:inset(0 calc(100% - var(--lv-q)) 0 0)}
.lv-area-dim{fill:url(#lv-g-dim);stroke:none}
.lv-line-dim{fill:none;stroke:rgba(255,255,255,.3);stroke-width:1.3;stroke-dasharray:3 6;stroke-linecap:round}

.lv-lit{-webkit-clip-path:inset(-40px calc(100% - var(--lv-p)) 0 0);clip-path:inset(-40px calc(100% - var(--lv-p)) 0 0)}
.lv-area{fill:url(#lv-g-area);stroke:none}
.lv-glow{filter:drop-shadow(0 0 6px rgba(110,231,183,.8)) drop-shadow(0 0 22px rgba(16,185,129,.6))}
.lv-line{fill:none;stroke:url(#lv-g-line);stroke-width:2.6;stroke-linecap:round}

.lv-light{position:absolute;left:var(--lv-lx);top:calc(var(--lv-h) * var(--lv-ly));width:0;height:0;z-index:2;pointer-events:none;transition:opacity .5s}
.lv-light i{
  position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:#F0FFF8;
  box-shadow:0 0 0 5px rgba(110,231,183,.2),0 0 22px 6px rgba(52,211,153,.9),0 0 70px 22px rgba(16,185,129,.42);
}
.lv-light i::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(167,243,208,.55);animation:lv-ring 2.6s ease-out infinite}
@keyframes lv-ring{from{transform:scale(.6);opacity:.9}to{transform:scale(1.9);opacity:0}}

.lv-days{
  position:absolute;left:0;right:0;top:calc(var(--lv-h) + 10px);z-index:1;pointer-events:none;
  display:grid;grid-template-columns:repeat(15,minmax(0,1fr));text-align:center;
  font-size:9.5px;letter-spacing:.04em;color:#5E6A65;transition:opacity .6s;
}

/* ---------- the eight milestones ---------- */
.lv-pins{position:absolute;left:0;top:0;width:100%;height:100%;z-index:3}
.lv-pin{
  all:unset;box-sizing:border-box;display:block;position:absolute;top:0;bottom:0;cursor:pointer;
  left:calc(var(--d0) / 15 * 100%);width:calc(var(--dn) / 15 * 100%);
  -webkit-tap-highlight-color:transparent;
}
.lv-pin::before{
  content:"";position:absolute;left:0;right:0;top:0;height:var(--lv-h);opacity:0;transition:opacity .35s;pointer-events:none;
  background:linear-gradient(180deg,rgba(52,211,153,0) 0%,rgba(52,211,153,.07) 100%);
}
.lv-pin:hover::before{opacity:1}
.lv-pin.is-on::before{opacity:1;left:-30px;right:-30px;background:radial-gradient(50% 78% at 50% 100%,rgba(110,231,183,.16),rgba(52,211,153,0) 72%)}
.lv-stem{
  position:absolute;left:50%;top:calc(var(--lv-h) * var(--y) + 22px);height:max(0px,calc(var(--lv-h) * (1 - var(--y)) - 22px));width:1px;margin-left:-.5px;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.22) 0 3px,transparent 3px 8px);transition:opacity .5s,background .4s;
}
.lv-dot{
  position:absolute;left:50%;top:calc(var(--lv-h) * var(--y));width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;
  display:grid;place-items:center;background:#0B1210;border:1px solid var(--line-hi);color:#7D8983;
  box-shadow:0 0 0 5px rgba(9,14,12,.9),0 12px 26px rgba(0,0,0,.5);
  transition:background .5s,border-color .5s,color .5s,box-shadow .6s,transform .6s var(--ease),opacity .5s;
}
.lv-dot .lv-ic{width:16px;height:16px}
.lv-seg{
  position:absolute;left:4px;right:4px;top:calc(var(--lv-h) + 32px);height:3px;border-radius:2px;
  background:rgba(255,255,255,.1);overflow:hidden;transition:opacity .6s;
}
.lv-seg u{display:block;height:100%;width:0;border-radius:2px;text-decoration:none;background:linear-gradient(90deg,var(--accent),var(--accent-hi))}
.lv-lab{
  position:absolute;left:0;right:0;top:calc(var(--lv-h) + 47px);display:flex;flex-direction:column;align-items:center;gap:5px;
  text-align:center;transition:opacity .6s;
}
.lv-lab em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-subtle);white-space:nowrap;transition:color .4s}
.lv-lab b{font-family:var(--font-sans);font-weight:500;font-size:13.5px;line-height:1.2;color:#7D8983;white-space:nowrap;transition:color .4s}

.lv-pin:hover .lv-dot{border-color:rgba(167,243,208,.7);color:#E6EEEA}
.lv-pin:hover .lv-lab b{color:var(--fg)}
.lv-pin:focus-visible .lv-dot{outline:2px solid var(--accent-hi);outline-offset:5px}
.lv-pin:focus-visible .lv-lab b{color:var(--fg);text-decoration:underline;text-underline-offset:4px}

.lv-pin.is-done .lv-dot{background:#0D1D17;border-color:rgba(52,211,153,.62);color:var(--accent-hi)}
.lv-pin.is-done .lv-stem{background:repeating-linear-gradient(180deg,rgba(52,211,153,.5) 0 3px,transparent 3px 8px)}
.lv-pin.is-done .lv-seg u{width:100%;opacity:.55}
.lv-pin.is-done .lv-lab b{color:#C9D3CF}

.lv-pin.is-on .lv-dot{
  background:radial-gradient(circle at 34% 26%,#D1FAE5 0%,#6EE7B7 28%,#10B981 72%,#059669 100%);
  border-color:#D1FAE5;color:#03130D;transform:scale(1.16);
  box-shadow:0 0 0 6px rgba(52,211,153,.17),0 0 30px rgba(52,211,153,.75),0 0 80px rgba(16,185,129,.4),0 12px 30px rgba(0,0,0,.5);
}
.lv-pin.is-on .lv-dot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(167,243,208,.7);animation:lv-ring2 2.6s ease-out infinite}
@keyframes lv-ring2{from{transform:scale(.94);opacity:.9}to{transform:scale(1.42);opacity:0}}
.lv-pin.is-on .lv-stem{background:repeating-linear-gradient(180deg,rgba(167,243,208,.85) 0 3px,transparent 3px 8px)}
.lv-pin.is-on .lv-seg{background:rgba(255,255,255,.14)}
.lv-pin.is-on .lv-seg u{width:100%;box-shadow:0 0 12px var(--accent-hi)}
.lv-pin.is-on .lv-lab em{color:var(--accent-hi)}
.lv-pin.is-on .lv-lab b{color:#fff}

/* before the first run: the chart is empty and then draws itself */
.lv-pre .lv-light{opacity:0}
.lv-pre .lv-days{opacity:0}
.lv-pre .lv-pin:not(.lv-show)::before{opacity:0}
.lv-pre .lv-pin:not(.lv-show) .lv-dot{opacity:0;transform:scale(.4)}
.lv-pre .lv-pin:not(.lv-show) .lv-stem,
.lv-pre .lv-pin:not(.lv-show) .lv-seg,
.lv-pre .lv-pin:not(.lv-show) .lv-lab{opacity:0}

/* ---------- foot of the stage ---------- */
.lv-foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px 20px;
  border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);
}
.lv-foot .btn{padding:11px 15px}
.lv-nav{display:none;align-items:center;gap:8px;color:var(--fg-muted)}
.lv-js .lv-nav{display:flex}
.lv-nav .mono{margin-right:8px;font-variant-numeric:tabular-nums}
.lv-nav button{
  width:40px;height:40px;padding:0;border:1px solid var(--line-mid);border-radius:50%;background:rgba(255,255,255,.03);color:var(--fg);
  cursor:pointer;display:grid;place-items:center;transition:border-color .2s,background .2s;
}
.lv-nav button:hover{border-color:var(--accent-hi);background:var(--accent-wash)}
.lv-nav svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lv-pause .lv-i-play{display:none;fill:currentColor;stroke-width:1}
.lv-pause.is-paused .lv-i-play{display:block}
.lv-pause.is-paused .lv-i-pause{display:none}

/* ---------- the cards ---------- */
.lv-cards{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}
.lv-rail,.lv-row{display:none}
.lv-item{min-width:0;display:flex}
.lv-card{
  flex:1;min-width:0;display:flex;flex-direction:column;padding:20px 22px 18px;border-radius:18px;
  color:#111815;font-family:var(--font-sans);
}
.lv-card-b{margin-top:auto}
.lv-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px}
.lv-card-h .ch{font-size:12px;font-weight:600;padding:4px 10px;border-radius:7px}
.lv-step{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590;white-space:nowrap}
.lv-card h3{font-family:var(--font-display);font-weight:600;font-size:21px;letter-spacing:-.025em;line-height:1.2;color:#0E1512;margin:14px 0 8px}
.lv-card p{font-size:14px;line-height:1.5;color:#4B5651;margin:0}
.lv-todo{list-style:none;margin:16px 0 0;padding:15px 0 0;border-top:1px solid #ECEFED;display:grid;grid-template-columns:minmax(0,1fr);gap:9px 16px}
.lv-todo li{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.35;color:#27312D;min-width:0}
.lv-todo i{position:relative;width:17px;height:17px;border-radius:5px;background:#059669;flex:none;margin-top:.5px}
.lv-todo i::after{content:"";position:absolute;left:6px;top:2.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.lv-who{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:13px;border-top:1px solid #ECEFED;flex-wrap:wrap}
.lv-avs{display:flex;flex:none}
.lv-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff;flex:none;box-shadow:0 1px 3px rgba(16,24,20,.18)}
.lv-av + .lv-av{margin-left:-9px}
.lv-av-gh{background:#0B1210}
.lv-av-gh svg{width:16px;height:16px;fill:none;stroke:#34D399;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round}
.lv-av-you{background:#DBEAFE;color:#1E40AF}
.lv-av-you .lv-ic{width:15px;height:15px}
.lv-who-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.lv-who-t small{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8A9590}
.lv-who-t b{font-size:13px;font-weight:600;color:#0E1512;white-space:nowrap}
.lv-fact{display:flex;align-items:center;gap:7px;flex:1 1 100%;font-size:12px;font-weight:500;line-height:1.3;color:#047857}
.lv-fact .lv-ic{width:14px;height:14px}

/* ---------- values ---------- */
.lv-vals{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(30px,3.6vw,56px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.lv-val{padding:30px 24px 32px;border-right:1px solid var(--line);min-width:0}
.lv-val:first-child{padding-left:0}
.lv-val:last-child{border-right:0;padding-right:0}
.lv-val b{
  display:block;width:fit-content;font-family:var(--font-display);font-weight:600;font-size:clamp(40px,4.1vw,62px);letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FFFFFF 10%,#A7F3D0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
.lv-val .mono{display:block;margin-top:16px;min-height:3em;font-size:10.5px;letter-spacing:.1em;line-height:1.5;color:#DCE4E0}
.lv-val p{margin-top:6px;font-size:14px;line-height:1.5;color:var(--fg-muted)}
.lv-fine{color:var(--fg-subtle);font-size:13px;margin-top:20px;max-width:54em}

/* ============================================================
   WITH THE SCRIPT: one card at a time
   ============================================================ */
/* The words of the chosen card arrive piece by piece and the ticks land one after
   another. These rules are driven by classes only and sit outside any media query,
   so a change of window size never replays them. */
.lv-js .lv-item.is-on .lv-card-a > *,.lv-js .lv-item.is-on .lv-card-b > *{animation:lv-in .7s var(--ease) both}
.lv-js .lv-item.is-on .lv-card-a > :nth-child(2){animation-delay:.06s}
.lv-js .lv-item.is-on .lv-card-a > :nth-child(3){animation-delay:.12s}
.lv-js .lv-item.is-on .lv-card-b > :nth-child(1){animation-delay:.2s}
.lv-js .lv-item.is-on .lv-card-b > :nth-child(2){animation-delay:.28s}
.lv-js .lv-item.is-on .lv-todo i{animation:lv-tick .5s var(--ease) both}
.lv-js .lv-item.is-on .lv-todo li:nth-child(1) i{animation-delay:.5s}
.lv-js .lv-item.is-on .lv-todo li:nth-child(2) i{animation-delay:.64s}
.lv-js .lv-item.is-on .lv-todo li:nth-child(3) i{animation-delay:.78s}
.lv-js .lv-item.is-on .lv-todo li:nth-child(4) i{animation-delay:.92s}
@keyframes lv-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes lv-tick{from{transform:scale(.3);background:#C2CAC6}to{transform:none;background:#059669}}

@media (min-width:860px){
  /* the cards share one place and one size, so the white surface never moves */
  .lv-js .lv-cards{grid-template-columns:minmax(0,1fr);gap:0;transition:opacity .7s var(--ease),transform .9s var(--ease)}
  .lv-js.lv-pre .lv-cards{opacity:0;transform:translateY(16px)}
  .lv-js .lv-item{grid-area:1 / 1;visibility:hidden}
  .lv-js .lv-item.is-on{visibility:visible}
  .lv-js .lv-todo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lv-js .lv-fact{flex:0 1 auto;margin-left:auto;align-items:flex-start}
  .lv-js .lv-fact .lv-ic{margin-top:1px}
  .lv-js .lv-who{flex-wrap:nowrap}
}

/* wide: the card floats over the empty top-left of the chart */
@media (min-width:1280px){
  .lv-js .lv-cards{position:absolute;left:28px;top:82px;width:clamp(400px,35%,440px);margin:0;z-index:4;pointer-events:none}
  .lv-js .lv-item.is-on{pointer-events:auto}
}
/* medium: the card sits under the chart, laid out wide */
@media (min-width:860px) and (max-width:1279.98px){
  .lv-sec{--lv-h:420px}
  .lv-js .lv-cards{margin-top:16px}
  .lv-js .lv-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:8px 36px;padding:24px 28px}
  .lv-js .lv-card-b{margin-top:0}
  .lv-js .lv-todo{margin-top:2px;padding-top:0;border-top:0}
  .lv-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lv-lab b{font-size:12.5px}
  .lv-vals{grid-template-columns:repeat(6,minmax(0,1fr))}
  .lv-val{grid-column:span 2}
  .lv-val:nth-child(n+4){grid-column:span 3;border-top:1px solid var(--line)}
  .lv-val:nth-child(3){border-right:0;padding-right:0}
  .lv-val:nth-child(4){padding-left:0}
  .lv-val .mono{min-height:0}
}

/* ============================================================
   PHONE: a small picture of the curve, then a vertical timeline
   ============================================================ */
@media (max-width:859.98px){
  .lv-sec{--lv-h:204px;--lv-strip:38px}
  .lv-stage{border-radius:18px}
  .lv-top{height:auto;padding:14px 16px;flex-direction:column;align-items:flex-start;gap:8px}
  .lv-cap{font-size:10px}
  .lv-key{font-size:14px;color:#C9D3CF}

  .lv-pins{pointer-events:none}
  .lv-pin::before{display:none}
  .lv-dot{width:14px;height:14px;margin:-7px 0 0 -7px;box-shadow:0 0 0 3px rgba(9,14,12,.9)}
  .lv-dot .lv-ic{display:none}
  .lv-js .lv-pin .lv-dot{background:#0D1D17;border-color:rgba(52,211,153,.62)}
  .lv-js .lv-pin .lv-stem{background:repeating-linear-gradient(180deg,rgba(52,211,153,.45) 0 3px,transparent 3px 8px)}
  .lv-js .lv-pin.is-on .lv-dot{background:radial-gradient(circle at 34% 26%,#D1FAE5 0%,#6EE7B7 28%,#10B981 72%,#059669 100%);border-color:#D1FAE5}
  .lv-pin.is-on .lv-dot{transform:scale(1.35)}
  .lv-pin.is-on .lv-dot::after{inset:-6px}
  .lv-stem{top:calc(var(--lv-h) * var(--y) + 10px);height:max(0px,calc(var(--lv-h) * (1 - var(--y)) - 10px))}
  .lv-seg,.lv-lab{display:none}
  .lv-light i{left:-5px;top:-5px;width:10px;height:10px}
  .lv-days{top:calc(var(--lv-h) + 12px);display:flex;justify-content:space-between;padding:0 14px;font-size:10px;color:var(--fg-subtle);letter-spacing:.1em}
  .lv-days span{display:none;white-space:nowrap}
  .lv-days span:first-child,.lv-days span:last-child{display:block}
  .lv-days span::before{content:"Day "}

  .lv-foot{padding:12px 14px 14px}
  .lv-foot .btn{padding:12px 14px;font-size:11px;min-height:44px}
  .lv-js .lv-nav{display:none}

  .lv-cards{display:block;margin-top:26px}
  .lv-rail{display:block;position:absolute;left:21px;top:32px;bottom:32px;width:2px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
  .lv-rail u{display:block;width:100%;height:var(--lv-rail,100%);border-radius:2px;background:linear-gradient(180deg,var(--accent-deep),var(--accent-hi));transition:height .7s var(--ease)}
  .lv-item{display:block;position:relative}
  .lv-row{
    all:unset;box-sizing:border-box;display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:10px 2px 10px 0;
    cursor:pointer;-webkit-tap-highlight-color:transparent;
  }
  .lv-row:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px;border-radius:12px}
  .lv-node{
    position:relative;z-index:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
    background:#0B1210;border:1px solid var(--line-hi);color:#7D8983;box-shadow:0 0 0 5px var(--bg);
    transition:background .4s,border-color .4s,color .4s,box-shadow .5s;
  }
  .lv-node .lv-ic{width:18px;height:18px}
  .lv-row-t{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .lv-row-t em{font-style:normal;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-subtle)}
  .lv-row-t b{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:-.02em;line-height:1.2;color:#9BA5A1}
  .lv-chev{width:18px;height:18px;color:var(--fg-subtle);transition:transform .4s var(--ease),color .3s}

  .lv-item.is-done .lv-node{background:#0D1D17;border-color:rgba(52,211,153,.62);color:var(--accent-hi)}
  .lv-item.is-done .lv-row-t b{color:#C9D3CF}
  .lv-item.is-on .lv-node{
    background:radial-gradient(circle at 34% 26%,#D1FAE5 0%,#6EE7B7 28%,#10B981 72%,#059669 100%);border-color:#D1FAE5;color:#03130D;
    box-shadow:0 0 0 5px var(--bg),0 0 26px rgba(52,211,153,.7);
  }
  .lv-item.is-on .lv-row-t em{color:var(--accent-hi)}
  .lv-item.is-on .lv-row-t b{color:#fff}
  .lv-item.is-on .lv-chev{transform:rotate(180deg);color:var(--accent-hi)}

  .lv-card{position:relative;margin:4px 0 16px 58px;padding:18px 18px 16px;border-radius:16px}
  /* the row above already shows the days and the title */
  .lv-card-h,.lv-card h3{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}
  .lv-card p{font-size:14.5px}
  .lv-todo li{font-size:14px}
  .lv-who-t small{font-size:10px}
  .lv-who-t b{font-size:14px}
  .lv-fact{font-size:14px}
  .lv-js .lv-item:not(.is-on) .lv-card{display:none}
  /* without the script every card is open, so every step reads as done */
  .lv-sec:not(.lv-js) .lv-chev{display:none}

  .lv-vals{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:34px}
  .lv-val{padding:24px 14px 24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .lv-val:nth-child(odd){border-right:1px solid var(--line)}
  .lv-val:nth-child(even){padding-left:18px;padding-right:0}
  .lv-val:last-child{grid-column:1 / -1;border-right:0;border-bottom:0;padding-right:0}
  .lv-val b{font-size:44px}
  .lv-val:last-child .mono{min-height:0}
  .lv-fine{font-size:14px}
}

@media (prefers-reduced-motion:reduce){
  .lv-rise,.lv-sec.lv-js .lv-rise:not(.lv-in){opacity:1;transform:none;transition:none}
  .lv-sec *,.lv-sec *::before,.lv-sec *::after{animation:none !important;transition:none !important}
  .lv-light i::after,.lv-pin.is-on .lv-dot::after{display:none}
}

/* ============================================================
   LIGHT PAGE (brand guideline): overrides for rules that were
   written with dark-page literals
   ============================================================ */
body{background:#fff}
body::before{opacity:.6}
.btn-primary{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.btn-primary:hover{background:var(--accent);border-color:var(--accent)}
.hero .btn-glow{color:#052014}
.hero .btn-glow:hover{color:#052014}
.st-v b{background:linear-gradient(180deg,#121615 0%,#047857 100%);-webkit-background-clip:text;background-clip:text}
.tools li span:first-child{text-decoration-color:rgba(18,22,21,.3)}
.stage-nav button{color:var(--fg)}

/* ------------------------------------------------------------
   LIGHT PAGE: value strips and small controls in the sections
   that were written with dark-page literals (stages stay dark)
   ------------------------------------------------------------ */
.fl-v b,.mn-vn,.mb-val b,.pt-val b,.so-val-n span,.cn-v b,.ix-total b,.lv-val b{background-image:linear-gradient(180deg,#121615 0%,#047857 100%)}
.fl-v em,.fl-col-n,.fl-col-n b,.mb-val em,.mb-val .mono,.lv-val .mono{color:#6B7674}
.so-val-n small{color:#047857}
.fl-outs span{background:rgba(18,22,21,.035);border-color:rgba(18,22,21,.12);color:#4B5552}
.pt-mini{color:#4B5552;background:#F6F8F8;border-color:rgba(18,22,21,.1)}
.pt-m-act,.pt-m-chip{border-color:rgba(18,22,21,.12);background:#fff;color:#4B5552}
.pt-m-t{color:#121615}
.pt-m-on,.pt-m-end{border-color:rgba(5,150,105,.35);background:#E9FBF5;color:#047857}
.tk-val b{background-image:linear-gradient(180deg,#121615 0%,#047857 100%)}
.tk-cap{color:#6B7674}

/* ============================================================
   BRAND LOCKUP: the real G-mark plus the wordmark (brand preview pattern)
   ============================================================ */
.lk{display:inline-flex;align-items:center;gap:9px;flex:none;color:#121615;text-decoration:none}
.lk-mark{display:block;height:26px;width:auto}
.lk-wm{font-family:var(--font-sans);font-weight:800;font-size:20px;letter-spacing:-.03em;line-height:1;color:#121615;white-space:nowrap}
.lk-wm .hi{color:#047857}
.lk-wm .tld{color:#6B7674;font-weight:700}

/* ============================================================
   HEADER v2: a floating white bar, the same over the dark hero and the white page
   ============================================================ */
.hd{position:fixed;top:14px;left:0;right:0;z-index:50;pointer-events:none}
.hd-bar{pointer-events:auto;position:relative;display:flex;align-items:center;gap:6px;height:58px;padding:0 10px 0 16px;border-radius:16px;
  background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(18,22,21,.09);box-shadow:0 1px 2px rgba(18,22,21,.05),0 14px 44px -18px rgba(18,22,21,.35)}
.hd-nav{display:flex;align-items:center;gap:2px;margin:0 auto}
.hd-nav a{font-family:var(--font-sans);font-size:14.5px;font-weight:500;color:#4B5552;padding:8px 12px;border-radius:9px;text-decoration:none;transition:color .18s,background .18s}
.hd-nav a:hover{color:#121615;background:#EEF1F1}
.hd-nav .hd-nav-signin{display:none}
.hd-cta{display:flex;align-items:center;gap:6px;flex:none}
.hd-signin{font-family:var(--font-sans);font-size:14.5px;font-weight:600;color:#4B5552;padding:8px 12px;border-radius:9px;text-decoration:none;transition:color .18s,background .18s}
.hd-signin:hover{color:#121615;background:#EEF1F1}
.hd-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px 0 16px;margin-left:4px;border:0;border-radius:11px;cursor:pointer;
  font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:-.005em;color:#fff;background:#047857;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(4,120,87,.35);transition:background .18s,transform .18s}
.hd-btn:hover{background:#059669;transform:translateY(-1px)}
.hd-btn:active{background:#065F46;transform:none}
.hd-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.hd-btn:hover svg{transform:translate(1px,-1px)}
.hd-menu{display:none;width:40px;height:40px;border-radius:10px;border:1px solid rgba(18,22,21,.12);background:#fff;color:#121615;cursor:pointer;place-items:center;padding:0}
.hd-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hd-menu .hd-mi-close,.hd.open .hd-menu .hd-mi-open{display:none}
.hd.open .hd-menu .hd-mi-close{display:block}
@media (max-width:900px){
  .hd{top:10px}
  .hd-bar{height:52px;padding:0 6px 0 12px;border-radius:14px}
  .hd-nav,.hd-signin{display:none}
  .hd-menu{display:grid}
  .hd-btn{height:36px;padding:0 12px;font-size:13.5px}
  .hd.open .hd-nav{display:flex;flex-direction:column;align-items:stretch;gap:2px;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:8px;border-radius:14px;
    background:#fff;border:1px solid rgba(18,22,21,.09);box-shadow:0 20px 50px -20px rgba(18,22,21,.4)}
  .hd.open .hd-nav a{padding:12px 14px;font-size:16px;border-radius:10px}
  .hd.open .hd-nav .hd-nav-signin{display:block;margin-top:4px;border-top:1px solid rgba(18,22,21,.08);border-radius:0 0 10px 10px;padding-top:14px;color:#047857}
}
@media (max-width:380px){ .lk-wm .tld{display:none} }

/* ============================================================
   FOOTER v2: light brand surface
   ============================================================ */
.ft{position:relative;overflow:hidden;background:#F6F8F8;border-top:1px solid rgba(18,22,21,.08);padding:76px 0 0;color:#121615}
.ft-top{display:grid;grid-template-columns:minmax(240px,1.3fr) repeat(4,minmax(0,1fr));gap:36px 32px}
.ft-note{margin:20px 0 0;max-width:30em;color:#4B5552;font-size:14.5px;line-height:1.6;text-wrap:pretty}
.ft-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:22px}
.ft-contact a,.ft-contact button{display:inline-flex;align-items:center;gap:9px;padding:0;border:0;background:none;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600;color:#121615;text-decoration:none;transition:color .18s}
.ft-contact a:hover,.ft-contact button:hover{color:#047857}
.ft-contact svg{width:16px;height:16px;fill:none;stroke:#047857;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ft h4{margin:0 0 14px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#6B7674}
.ft ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ft li a{font-size:14.5px;color:#4B5552;text-decoration:none;transition:color .18s}
.ft li a:hover{color:#121615}
.ft-base{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-top:56px;padding:22px 0 24px;border-top:1px solid rgba(18,22,21,.08);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:#6B7674}
.ft-links{display:flex;gap:20px}
.ft-links a{color:#6B7674;text-decoration:none}
.ft-links a:hover{color:#121615}
.ft-made{display:inline-flex;align-items:center;gap:8px}
.ft-made i{width:7px;height:7px;border-radius:50%;background:#059669;box-shadow:0 0 0 3px #E9FBF5}
.ft-giant{position:relative;z-index:0;margin:8px 0 -.2em;font-family:var(--font-display);font-weight:700;font-size:clamp(64px,17.5vw,252px);line-height:1;letter-spacing:-.06em;text-align:center;color:rgba(18,22,21,.045);user-select:none;pointer-events:none;white-space:nowrap}
@media (max-width:1000px){ .ft-top{grid-template-columns:1fr 1fr 1fr} .ft-brand{grid-column:1/-1} }
@media (max-width:600px){ .ft{padding-top:56px} .ft-top{grid-template-columns:1fr 1fr;gap:28px 20px} .ft-base{flex-direction:column;align-items:flex-start;gap:12px} }
