/* GMI model demos — shared theme v2 (2026-10-20). gmicloud.ai tokens (lime #ddea4d, Geist Mono / Inter, square corners)
   with layered surfaces, light, and stronger hierarchy. Demo-specific CSS sits on top of this. */
:root{--bg:#000;--bg1:#070707;--bg2:#0d0d0d;--s1:rgba(255,255,255,.028);--s2:rgba(255,255,255,.05);--hair:rgba(255,255,255,.09);--hair2:rgba(255,255,255,.16);
  --line:#1b1b1b;--line2:#2a2a2a;--text:#fafafa;--text2:#c9c9c9;--muted:#8d8d8d;--faint:#4e4e4e;
  --lime:#ddea4d;--lime-deep:#b9c53a;--lime-soft:#eef3a6;--lime-ink:#0b0d00;--lime-10:rgba(221,234,77,.10);--lime-20:rgba(221,234,77,.2);--lime-35:rgba(221,234,77,.35);
  --amber:#f5b332;--red:#ff5a5a;--blue:#1d9bf0;
  --display:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"Inter",ui-sans-serif,system-ui,sans-serif;
  --r:2px;--shadow:0 24px 60px rgba(0,0,0,.55),0 2px 0 rgba(255,255,255,.03) inset}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}
body{min-height:100vh;display:flex;flex-direction:column;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(900px 420px at 18% -6%,rgba(221,234,77,.14),transparent 60%),radial-gradient(700px 500px at 92% 10%,rgba(221,234,77,.05),transparent 60%),
  linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:auto,auto,36px 36px,36px 36px;
  -webkit-mask-image:linear-gradient(#000 0,#000 60%,transparent 100%);mask-image:linear-gradient(#000 0,#000 60%,transparent 100%)}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit}
::selection{background:var(--lime);color:var(--lime-ink)}
*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#262626;border:2px solid #000}*::-webkit-scrollbar-thumb:hover{background:#3a3a3a}
main{flex:1;width:100%;max-width:1680px;margin:0 auto;padding:0 28px 56px;position:relative;z-index:2}
.eyebrow{font-size:10.5px;text-transform:uppercase;letter-spacing:.26em;color:var(--lime);display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:"";width:6px;height:6px;background:var(--lime);box-shadow:0 0 10px var(--lime)}
.lbl{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);white-space:nowrap}
h1{font-family:var(--display);font-size:clamp(34px,4vw,58px);line-height:1.02;margin:14px 0 14px;font-weight:700;letter-spacing:-.035em;text-wrap:balance}
h1 em{font-style:normal;color:var(--lime);text-shadow:0 0 28px rgba(221,234,77,.35)}
.sub{color:var(--text2);margin:0 0 22px;font-family:var(--sans);font-size:14.5px;line-height:1.55;max-width:62ch}
.sub b{color:var(--text);font-weight:600}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:start;padding:44px 0 26px;position:relative}
@media (max-width:1100px){.hero{grid-template-columns:1fr}}
.hero.compact{padding:34px 0 18px;grid-template-columns:1fr auto;align-items:center;gap:28px}
.hero.compact h1{font-size:clamp(30px,3.2vw,46px);margin:10px 0 10px}
.hero.compact .sub{margin:0 0 14px;font-size:14px}
.band{margin:18px 0}
.band .lbl{margin-bottom:8px;display:block}
/* controls */
.modelchip{border:1px solid var(--hair2);background:var(--s1);padding:6px 11px;font-size:11px;color:var(--text2);display:inline-flex;gap:8px;align-items:center;white-space:nowrap;border-radius:var(--r)}
.modelchip i{width:7px;height:7px;border-radius:50%;background:var(--lime);display:inline-block;box-shadow:0 0 10px var(--lime)}
.modelchip.mock i{background:var(--amber);box-shadow:0 0 10px var(--amber)}
.modelchip.live i{animation:pulse 1.2s infinite}
.seg{display:inline-flex;border:1px solid var(--hair2);background:var(--s1);overflow:hidden;border-radius:var(--r)}
.seg button{background:transparent;color:var(--text2);border:0;border-right:1px solid var(--hair);padding:8px 12px;cursor:pointer;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;transition:background .15s,color .15s}
.seg button:last-child{border-right:0}.seg button:hover{color:var(--text);background:var(--s2)}
.seg button.on{background:var(--lime);color:var(--lime-ink);font-weight:700;box-shadow:0 0 18px var(--lime-35)}.seg button:disabled{opacity:.5;cursor:not-allowed}
.ghost{background:var(--s1);color:var(--text2);border:1px solid var(--hair2);padding:7px 12px;cursor:pointer;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;border-radius:var(--r);transition:all .15s}
.ghost:hover{border-color:var(--lime);color:var(--lime);background:var(--lime-10)}.ghost:disabled{opacity:.35;cursor:not-allowed}
.primary{background:linear-gradient(180deg,#eaf36a,var(--lime) 55%,var(--lime-deep));color:var(--lime-ink);border:0;padding:15px 28px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.18em;cursor:pointer;position:relative;overflow:hidden;border-radius:var(--r);box-shadow:0 0 0 1px rgba(221,234,77,.5),0 10px 30px rgba(221,234,77,.18)}
.primary:hover:not(:disabled){filter:brightness(1.06)}.primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.primary:not(:disabled){animation:glow 2.8s ease-in-out infinite}
.primary.busy{animation:none}
.primary.busy::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:sheen 1.1s linear infinite}
textarea,input.text,select.text{width:100%;background:var(--s1);color:var(--text);border:1px solid var(--hair2);padding:12px 14px;font-size:12.5px;outline:none;line-height:1.6;border-radius:var(--r)}
textarea{min-height:100px;resize:vertical}
textarea:focus,input.text:focus{border-color:var(--lime);box-shadow:0 0 0 3px var(--lime-10)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 16px}
.chip{border:1px solid var(--hair2);padding:6px 11px;font-size:11px;color:var(--text2);cursor:pointer;user-select:none;transition:all .15s;background:var(--s1);border-radius:var(--r)}
.chip:hover,.chip.on{border-color:var(--lime);color:var(--lime);background:var(--lime-10);box-shadow:0 0 14px rgba(221,234,77,.12)}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.status{color:var(--muted);font-size:11.5px;min-height:18px}.status.err{color:var(--amber)}
/* stat cards */
.counters{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ct{position:relative;border:1px solid var(--hair);background:linear-gradient(180deg,var(--s2),var(--s1));padding:16px 16px 14px;min-height:96px;border-radius:var(--r);transition:border-color .3s;overflow:hidden;box-shadow:0 1px 0 rgba(255,255,255,.04) inset}
.ct::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--lime),transparent 70%);opacity:.75}
.ct.alt::after{background:linear-gradient(90deg,var(--hair2),transparent 70%)}
.ct b{display:block;font-family:var(--display);font-size:32px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;letter-spacing:-.02em;transition:color .3s}
.ct b.lime{color:var(--lime);text-shadow:0 0 22px rgba(221,234,77,.35)}.ct b.amber{color:var(--amber)}.ct b.red{color:var(--red)}.ct b.dim{color:var(--faint)}
.ct b small{font-size:14px;color:var(--muted);font-weight:400;margin-left:3px;letter-spacing:0}
.ct span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-top:9px}
.ct.hero-stat{background:linear-gradient(135deg,#eaf36a,var(--lime) 60%,var(--lime-deep));border-color:var(--lime)}
.ct.hero-stat b,.ct.hero-stat span{color:var(--lime-ink);text-shadow:none}.ct.hero-stat::after{display:none}
.ct.flash{animation:flash .9s ease-out}.ct.flashred{animation:flashred .9s ease-out}
/* panels */
.ws{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;align-items:start;margin-top:12px}
@media (max-width:1100px){.ws{grid-template-columns:1fr}}
.ws>.panel{min-width:0}
.panel{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--hair);display:flex;flex-direction:column;min-height:560px;max-height:calc(100vh - 120px);box-shadow:var(--shadow);border-radius:var(--r);backdrop-filter:blur(4px)}
.panel .pbar{background:rgba(0,0,0,.35);border-bottom:1px solid var(--hair);padding:9px 12px;display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;flex-shrink:0}
.panel .pbar i.dot{width:8px;height:8px;border-radius:50%;background:#262626;display:inline-block}.panel .pbar i.dot:first-child{background:var(--lime);box-shadow:0 0 8px var(--lime)}
.panel .pbar .r{margin-left:auto;display:flex;gap:6px;align-items:center}
.panel.live .pbar i.dot:first-child{animation:pulse 1.2s infinite}
.panel.live .pbar{position:relative;overflow:hidden}.panel.live .pbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--lime),transparent);animation:scan 1.6s linear infinite}
.tabs{display:flex;gap:0;margin-left:10px}
.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:6px 10px;cursor:pointer;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-family:inherit;transition:color .15s}
.tabs button:hover{color:var(--text2)}.tabs button.on{color:var(--lime);border-bottom-color:var(--lime)}
.tabs button .n{display:inline-block;min-width:16px;padding:0 4px;margin-left:5px;background:var(--hair2);color:var(--text2);font-size:9.5px;text-align:center;border-radius:var(--r)}
.tabs button .n.lime{background:var(--lime);color:var(--lime-ink)}.tabs button .n.red{background:var(--red);color:#fff}
.body{flex:1;overflow:auto;position:relative}
.body:empty::before{content:attr(data-empty);color:var(--faint);padding:18px;display:block;font-size:11.5px}
/* timeline */
.tl{padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.turn{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin:10px 0 2px}
.turn::after{content:"";flex:1;height:1px;background:var(--hair)}.turn .k{color:var(--lime)}
.ev{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:start;padding:7px 10px;border:1px solid var(--hair);background:var(--s1);font-size:11.5px;animation:slidein .35s cubic-bezier(.2,.8,.2,1) both;border-radius:var(--r)}
.ev .ic{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid var(--hair2);color:var(--text2);font-size:11px;font-weight:700;font-family:var(--display);transition:all .2s;border-radius:var(--r)}
.ev.read .ic{color:var(--muted)}.ev.write .ic{color:var(--lime);border-color:var(--lime-35);background:var(--lime-10)}
.ev.run .ic{color:var(--amber);border-color:rgba(245,179,50,.4)}.ev.run.ok .ic{color:var(--lime);border-color:var(--lime-35)}.ev.run.bad .ic{color:var(--red);border-color:rgba(255,90,90,.4)}
.ev.done .ic{background:var(--lime);color:var(--lime-ink);border-color:var(--lime);box-shadow:0 0 12px var(--lime-35)}.ev.err .ic{color:var(--red);border-color:var(--red)}
.ev .what{color:var(--text)}.ev .what .p{color:var(--lime-soft)}
.ev .meta{color:var(--muted);font-size:10.5px;white-space:nowrap;padding-top:2px}
.ev.clickable{cursor:pointer}.ev.clickable:hover{border-color:var(--lime)}
.pill{display:inline-block;padding:1px 7px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-left:6px;animation:pop .4s cubic-bezier(.2,.8,.2,1);border-radius:var(--r)}
.pill.ok{background:var(--lime);color:var(--lime-ink)}.pill.bad{background:var(--red);color:#fff}.pill.dim{background:var(--hair2);color:var(--text2)}
.note{padding:8px 12px;border-left:2px solid var(--hair2);color:var(--text2);font-size:12.5px;line-height:1.55;animation:rise .35s ease both;white-space:pre-wrap;font-family:var(--sans)}
.note.user{border-left-color:var(--lime);color:var(--text)}
.stream{border:1px solid var(--hair);background:rgba(0,0,0,.5);padding:8px 12px;font-size:11px;line-height:1.55;color:var(--text2);max-height:150px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;white-space:pre-wrap;word-break:break-word;position:relative;border-radius:var(--r)}
.stream::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--lime),transparent);animation:scan 1.6s linear infinite}
.stream .cursor{display:inline-block;width:7px;height:12px;background:var(--lime);vertical-align:-2px;animation:blink 1s steps(2) infinite;margin-left:2px}
.stream .th{color:var(--muted);font-style:italic}
/* code */
.code{overflow:auto;font-size:11.5px;line-height:1.55;padding:8px 0;flex:1;min-height:0}
.code .ln{display:grid;grid-template-columns:40px 40px 14px 1fr;white-space:pre;color:var(--text2)}
.code .ln .g{color:var(--faint);text-align:right;padding-right:8px;font-size:10px;user-select:none}.code .ln .s{color:var(--faint)}
.code .ln.add{background:rgba(221,234,77,.09);color:var(--lime-soft)}.code .ln.add .s{color:var(--lime)}
.code .ln.del{background:rgba(255,90,90,.1);color:#ffb3b3}.code .ln.del .s{color:var(--red)}
.code .ln.hunk{color:var(--muted);background:var(--s2);padding:2px 12px;grid-template-columns:1fr;font-size:10.5px;margin:4px 0}
.code .txt{padding-right:16px}
.console{padding:12px 14px;font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text2);overflow:auto;flex:1}
.console .okl{color:var(--lime)}.console .badl{color:var(--red)}.console .dim{color:var(--muted)}
/* phases */
.phases{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 0}
.ph{position:relative;border:1px solid var(--hair);padding:9px 12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);overflow:hidden;background:var(--s1);display:flex;align-items:center;gap:8px;transition:all .3s;border-radius:var(--r)}
.ph .n{width:16px;height:16px;border:1px solid var(--hair2);display:flex;align-items:center;justify-content:center;font-size:9px;font-family:var(--display)}
.ph.on{color:var(--text);border-color:var(--lime)}.ph.on .n{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}
.ph.on::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(221,234,77,.18),transparent);animation:scan 1.4s linear infinite}
.ph.done{color:var(--muted);border-color:var(--lime-deep)}.ph.done .n{border-color:var(--lime-deep);color:var(--lime-deep)}
.ph.done .n::before{content:"✓"}.ph.done .n span{display:none}
/* ---- system pipeline (pipeline.js) ---- */
.gp{position:relative;width:100%;border:1px solid var(--hair);background:radial-gradient(60% 120% at 50% 50%,rgba(221,234,77,.06),transparent 70%),linear-gradient(180deg,rgba(255,255,255,.03),rgba(0,0,0,.2));overflow:hidden;border-radius:var(--r);box-shadow:var(--shadow)}
.gp::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;-webkit-mask-image:radial-gradient(80% 90% at 50% 50%,#000 30%,transparent 100%);mask-image:radial-gradient(80% 90% at 50% 50%,#000 30%,transparent 100%)}
.gp-edges{position:absolute;inset:0;overflow:visible}
.gp-path{fill:none;stroke:rgba(255,255,255,.13);stroke-width:1.5;transition:stroke .3s}
.gp-path.on{stroke:rgba(221,234,77,.6)}
.gp-path.live{stroke:var(--lime);stroke-dasharray:3 7;animation:gpdash .9s linear infinite;filter:drop-shadow(0 0 4px rgba(221,234,77,.6))}
@keyframes gpdash{to{stroke-dashoffset:-20}}
.gp-pk{fill:var(--lime)}.gp-pk.red{fill:var(--red)}.gp-pk.amber{fill:var(--amber)}.gp-pk.white{fill:#fff}.gp-pk.blue{fill:var(--blue)}
.gp-pk.tail{opacity:.35}.gp-pk.tail2{opacity:.14}
.gp-halo{fill:var(--lime);opacity:0;transition:opacity .4s}
.gp-node{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--hair2);background:linear-gradient(180deg,rgba(28,28,28,.95),rgba(10,10,10,.95));color:var(--text2);transition:border-color .3s,box-shadow .3s,color .3s,transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s;box-sizing:border-box;font-size:11px;will-change:transform;border-radius:3px;box-shadow:0 10px 30px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,.06) inset}
.gp-node .gp-ic{width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--hair2);background:rgba(255,255,255,.03);color:var(--muted);transition:all .3s;border-radius:3px}
.gp-ic svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gp-txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.gp-label{font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-stat{font-size:13px;font-variant-numeric:tabular-nums;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.gp-sub{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-badge{position:absolute;right:-6px;top:-8px;display:none;font-style:normal;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;background:var(--lime);color:var(--lime-ink);border-radius:var(--r);box-shadow:0 0 12px var(--lime-35)}
.gp-node.active{border-color:var(--lime);box-shadow:0 0 0 1px rgba(221,234,77,.3),0 0 30px rgba(221,234,77,.22),0 10px 30px rgba(0,0,0,.5);animation:gppulse 1.6s ease-in-out infinite;color:var(--text)}
.gp-node.active .gp-ic{border-color:var(--lime);color:var(--lime-ink);background:var(--lime);box-shadow:0 0 14px var(--lime-35)}
.gp-node.active .gp-stat{color:var(--lime)}
.gp-node.done{border-color:rgba(221,234,77,.45)}.gp-node.done .gp-ic{color:var(--lime);border-color:rgba(221,234,77,.45);background:var(--lime-10)}.gp-node.done .gp-stat{color:var(--text)}
.gp-node.fail{border-color:var(--red);box-shadow:0 0 24px rgba(255,90,90,.2)}.gp-node.fail .gp-ic{color:#fff;border-color:var(--red);background:var(--red)}.gp-node.fail .gp-badge{background:var(--red);color:#fff;box-shadow:none}
.gp-node.idle{opacity:.72}
@keyframes gppulse{0%,100%{box-shadow:0 0 0 1px rgba(221,234,77,.3),0 0 22px rgba(221,234,77,.18),0 10px 30px rgba(0,0,0,.5)}50%{box-shadow:0 0 0 2px rgba(221,234,77,.5),0 0 42px rgba(221,234,77,.4),0 10px 30px rgba(0,0,0,.5)}}
/* ---- capability tiles ---- */
.gcaps{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:8px}
.gcap{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--hair);background:var(--s1);color:var(--muted);transition:all .35s;min-height:58px;border-radius:var(--r);overflow:hidden}
.gcap .gp-ic{width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--hair2);color:var(--faint);transition:all .35s;border-radius:3px}
.gcap b{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text2);font-weight:700;line-height:1.2}
.gcap span{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;line-height:1.25;font-weight:500}
.gcap em{position:absolute;right:9px;top:9px;width:7px;height:7px;border-radius:50%;background:#262626;transition:all .35s}
.gcap.on{border-color:rgba(221,234,77,.55);color:var(--text);background:linear-gradient(135deg,rgba(221,234,77,.16),rgba(221,234,77,.04) 60%,transparent);box-shadow:0 0 24px rgba(221,234,77,.1)}
.gcap.on .gp-ic{border-color:var(--lime);color:var(--lime-ink);background:var(--lime);box-shadow:0 0 14px var(--lime-35)}.gcap.on b{color:var(--text)}.gcap.on span{color:var(--lime)}.gcap.on em{background:var(--lime);box-shadow:0 0 10px var(--lime)}
.gcap.pulse{animation:gcappop .5s cubic-bezier(.2,.8,.2,1)}
@keyframes gcappop{0%{transform:scale(.97);background:rgba(221,234,77,.3)}100%{transform:none}}
/* motion */
@keyframes sheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes blink{to{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes slidein{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.18)}100%{transform:scale(1);opacity:1}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(221,234,77,.55)}60%{box-shadow:0 0 0 7px rgba(221,234,77,0)}}
@keyframes glow{0%,100%{box-shadow:0 0 0 1px rgba(221,234,77,.5),0 10px 30px rgba(221,234,77,.14)}50%{box-shadow:0 0 0 2px rgba(221,234,77,.55),0 14px 44px rgba(221,234,77,.32)}}
@keyframes flash{0%{background:rgba(221,234,77,.28)}100%{background:linear-gradient(180deg,var(--s2),var(--s1))}}
@keyframes flashred{0%{background:rgba(255,90,90,.28)}100%{background:linear-gradient(180deg,var(--s2),var(--s1))}}
@keyframes scan{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.reveal{animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
.reveal:nth-child(2){animation-delay:.06s}.reveal:nth-child(3){animation-delay:.12s}.reveal:nth-child(4){animation-delay:.18s}.reveal:nth-child(5){animation-delay:.24s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* ---- compact metrics strip (replaces the big .counters grid in the hero; sits top-right) ---- */
.metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0;border:1px solid var(--hair);background:linear-gradient(180deg,var(--s2),var(--s1));border-radius:var(--r);box-shadow:0 1px 0 rgba(255,255,255,.04) inset;max-width:640px;margin-left:auto}
.metrics .m{display:flex;flex-direction:column;justify-content:center;min-width:84px;padding:8px 14px;border-right:1px solid var(--hair);position:relative;transition:background .3s}
.metrics .m:last-child{border-right:0}
.metrics .m b{font-family:var(--display);font-size:19px;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;transition:color .3s}
.metrics .m b small{font-size:11px;color:var(--muted);font-weight:400;margin-left:2px;letter-spacing:0}
.metrics .m b.lime{color:var(--lime);text-shadow:0 0 16px rgba(221,234,77,.35)}.metrics .m b.amber{color:var(--amber)}.metrics .m b.red{color:var(--red)}.metrics .m b.dim{color:var(--faint)}
.metrics .m span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-top:4px;white-space:nowrap}
.metrics .m.key{background:linear-gradient(135deg,#eaf36a,var(--lime) 60%,var(--lime-deep))}
.metrics .m.key b,.metrics .m.key b small,.metrics .m.key span{color:var(--lime-ink);text-shadow:none}
.metrics .m.flash{animation:mflash .9s ease-out}.metrics .m.flashred{animation:mflashred .9s ease-out}
.metrics .m.key.flash{animation:mflashlime .9s ease-out}
@keyframes mflash{0%{background:rgba(221,234,77,.28)}100%{background:transparent}}
@keyframes mflashred{0%{background:rgba(255,90,90,.28)}100%{background:transparent}}
@keyframes mflashlime{0%{filter:brightness(1.35)}100%{filter:none}}
.metrics .mline{flex-basis:100%;padding:5px 14px 6px;border-top:1px solid var(--hair);font-size:10px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero.compact .hero-r{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
@media (max-width:1100px){.metrics{max-width:none;margin-left:0;justify-content:flex-start}.metrics .m{min-width:72px;padding:7px 11px}.metrics .m b{font-size:17px}}
