/* Stack & Launch */
.shock{display:flex;flex-direction:column;gap:2px;border:var(--line);border-radius:14px;padding:10px 14px;margin:10px 0;background:#fff7d6;box-shadow:3px 3px 0 var(--ink)}
.shock b{font:900 1rem 'Rubik',sans-serif}
.tip{display:flex;flex-direction:column;gap:2px;border:2px dashed #7c3aed;border-radius:14px;padding:10px 14px;margin:10px 0;background:#f3efff}
.tip small{color:var(--muted)}
.cashpill{background:#fff;color:var(--ink);font-weight:800}
.stack h4,.card h4{margin:12px 0 6px;font:800 .8rem 'Rubik',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}
@media(max-width:520px){.slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
.slot{border:var(--line);border-radius:12px;padding:8px 6px;text-align:center;background:#fff;display:flex;flex-direction:column;gap:2px;min-width:0}
.slot .ic{font-size:1.5rem}
.slot b{font-size:.78rem;overflow-wrap:anywhere}
.slot small{font-size:.72rem;font-weight:700}
.slot.ok{background:#dcfce7}
.slot.miss{background:#fee2e2;border-style:dashed}
.invrow{display:flex;flex-wrap:wrap;gap:6px}
.inv{display:flex;align-items:center;gap:6px;border:2px solid #cbd5e1;border-radius:10px;padding:4px 6px 4px 10px;background:#fff;font-weight:600;font-size:.9rem}
.loanrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;font-size:.9rem}
.btn.xs{padding:3px 9px;font-size:.75rem;border-width:2px;box-shadow:none}
.stp{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:.9rem}
.stp span{flex:1;min-width:0}
.stp b{min-width:20px;text-align:center}
.stp input{width:90px;border:2px solid var(--ink);border-radius:10px;padding:5px 8px;font:600 .95rem 'Rubik',sans-serif}
.grid2.tight{gap:12px}
.offer{border:2px solid var(--ink);border-radius:12px;padding:10px 12px;margin:8px 0;background:#fff;display:flex;flex-direction:column;gap:6px}
.offer>div:first-child{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.offer .deal{display:flex;flex-direction:column;gap:2px;font-size:.9rem}
.offer.done{background:#f0fdf4}
.offer.declined,.offer.cancelled,.offer.expired{opacity:.6}
.lot{display:flex;justify-content:space-between;align-items:center;gap:10px;border:2px solid #cbd5e1;border-radius:12px;padding:8px 10px;margin:6px 0;background:#fff}
.lot>div:first-child{display:flex;flex-direction:column;min-width:0}
.lot small{color:var(--muted)}
.lot.need{border-color:var(--acc);background:#eff6ff}
.bidin{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.bidin input,.ordg input{width:86px;border:2px solid var(--ink);border-radius:10px;padding:6px 8px;font:700 1rem 'Rubik',sans-serif}
.ordrow{border:2px solid #cbd5e1;border-radius:12px;padding:8px 10px;margin:8px 0;background:#fff}
.ordrow.need{border-color:var(--acc);background:#eff6ff}
.ordh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.ordh small{color:var(--muted)}
.ordg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ordg label{display:flex;flex-direction:column;gap:2px;font:800 .7rem 'Rubik',sans-serif;text-transform:uppercase;color:var(--muted)}
.ordg input{width:100%}
@media(max-width:420px){.ordg{grid-template-columns:repeat(2,minmax(0,1fr))}}
.chk.big{font-size:1rem;margin:10px 0}
.feed{display:flex;flex-direction:column;gap:4px;font-size:.9rem;max-height:340px;overflow:auto}
.feed>div{border-bottom:1px dashed #cbd5e1;padding:4px 0}
.stackmeter{font-weight:800}
.lb tr.me td{background:#fff7d6}
.qr.big svg{width:min(420px,70vw);height:auto}
.big{font-size:3rem}
.rolecard{background:#f8fafc;border-style:dashed}
.rolecard .focus{display:block;margin-top:4px;font-weight:700;color:var(--acc)}
.crew{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.crew .pill.me{background:var(--acc2)}
.lock{display:inline-block;font:800 .72rem 'Rubik',sans-serif;color:#64748b;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:999px;padding:2px 8px;vertical-align:middle}
.roleic{font-size:1rem;margin-inline:4px}
select:disabled,input:disabled,button:disabled{opacity:.55;cursor:not-allowed}

/* ================= visual layer: heroes, tiles, motion ================= */
@keyframes slUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes slPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.18);opacity:1}100%{transform:scale(1)}}
@keyframes slSlide{0%{opacity:0;transform:translateY(-16px) rotate(-1.5deg)}60%{transform:translateY(2px) rotate(.6deg);opacity:1}100%{transform:none}}
@keyframes slShake{0%,100%{transform:none}20%{transform:translateX(-4px) rotate(-.6deg)}40%{transform:translateX(4px) rotate(.6deg)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
@keyframes slPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes slSheen{from{background-position:0 0}to{background-position:240px 0}}
@keyframes slRise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes slFlashUp{0%{background:#22c55e;color:#fff;transform:scale(1.15)}100%{background:#fff;color:var(--ink);transform:none}}
@keyframes slFlashDn{0%{background:#ef4444;color:#fff;transform:scale(1.15)}100%{background:#fff;color:var(--ink);transform:none}}
@keyframes slTick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes slFeed{from{opacity:0;transform:translateX(-18px);background:#fef9c3}to{opacity:1;transform:none;background:transparent}}
@keyframes slBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes slGlow{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.55),4px 4px 0 var(--ink)}50%{box-shadow:0 0 0 7px rgba(34,197,94,0),4px 4px 0 var(--ink)}}

/* entrance: staggered, and continues (not restarts) when the screen redraws */
main.enter>*{animation:slUp .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--el,0ms)}
main.enter>*:nth-child(2){animation-delay:calc(var(--el,0ms) + 90ms)}
main.enter>*:nth-child(3){animation-delay:calc(var(--el,0ms) + 180ms)}
main.enter>*:nth-child(4){animation-delay:calc(var(--el,0ms) + 270ms)}
main.enter>*:nth-child(n+5){animation-delay:calc(var(--el,0ms) + 340ms)}
.pop{animation:slPop .7s cubic-bezier(.2,.9,.3,1.4) both;animation-delay:var(--d,0ms)}

/* wave hero */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(120deg,var(--c1),var(--c2));border:var(--line);border-radius:22px;box-shadow:6px 6px 0 var(--ink);padding:22px 26px 18px;margin:0 0 16px}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.09) 0 22px,transparent 22px 60px);animation:slSheen 9s linear infinite;pointer-events:none}
.hero>*{position:relative}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}
.hero-t{flex:1 1 380px;min-width:0}
.hero-k{display:inline-block;font:800 .78rem 'Rubik',sans-serif;letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.55);border-radius:999px;padding:4px 12px}
.hero h1{color:#fff;margin:8px 0 4px;font:900 clamp(1.7rem,4vw,2.8rem)/1.05 'Rubik',sans-serif;text-shadow:3px 3px 0 rgba(0,0,0,.18)}
.hero p{margin:6px 0 0;max-width:720px;font-size:1.02rem;color:rgba(255,255,255,.93)}
.hero-clock{background:#fff;color:var(--ink);border:var(--line);border-radius:18px;box-shadow:4px 4px 0 var(--ink);padding:8px 18px 10px;text-align:center;flex:0 0 auto}
.hero-clock .pill{display:block;margin-top:6px}
.hero-clock.paused{background:#f1f5f9}
.hero .bigclock.low{color:#dc2626;animation:slPulse 1s ease-in-out infinite}
.hero .hostbar{flex-wrap:wrap}
.hero .shock{color:var(--ink);margin:14px 0 0;animation:slSlide .7s cubic-bezier(.2,.8,.2,1) both,slShake .5s .75s both;animation-delay:calc(var(--el,0ms) + 250ms),calc(var(--el,0ms) + 950ms)}
.shock.in{animation:slSlide .7s cubic-bezier(.2,.8,.2,1) both,slShake .5s .75s both}
.steps{list-style:none;display:flex;gap:6px;margin:16px 0 0;padding:0;counter-reset:s}
.steps li{flex:1;min-width:0;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.35);border-radius:999px;padding:5px 10px 5px 5px;font:700 .82rem 'Rubik',sans-serif;color:rgba(255,255,255,.85)}
.steps li i{font-style:normal;flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.25);font-size:.85rem}
.steps li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.steps li.on{background:#fff;color:var(--ink);border-color:#fff;box-shadow:3px 3px 0 rgba(0,0,0,.2)}
.steps li.on i{background:var(--c1);color:#fff;animation:slPulse 1.6s ease-in-out infinite}
.steps li.done i{background:#22c55e;color:#fff}
.hero.sm{padding:16px 16px 14px;border-radius:18px;box-shadow:4px 4px 0 var(--ink)}
.hero.sm h1{font-size:1.65rem}
.hero.sm p{font-size:.92rem}
.hero.sm .steps li{padding:3px;justify-content:center}
.hero.sm .steps li span{display:none}
.hero.sm .steps li.on{flex:2.4;justify-content:flex-start;padding-inline-end:10px}
.hero.sm .steps li.on span{display:inline}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;background:#fff;border:var(--line);border-radius:16px;padding:10px 14px;margin:0 0 16px}
.toolbar .hostbar{flex-wrap:wrap;margin-inline-start:auto}
.tipnote{font-weight:700;color:#6d28d9}

/* team tiles on the projector */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.tile{position:relative;background:#fff;border:var(--line);border-radius:16px;padding:12px 12px 10px 16px;box-shadow:4px 4px 0 var(--ink);overflow:hidden;transition:transform .2s}
.tile::before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:var(--tc)}
html[dir=rtl] .tile::before{inset:0 0 0 auto}
.tile.full{background:linear-gradient(180deg,#f0fdf4,#fff);animation:slGlow 2s ease-in-out infinite}
.tile-h{display:flex;align-items:center;gap:8px;min-width:0}
.tile-h b{flex:1;min-width:0;font:800 1.08rem 'Rubik',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font:800 .8rem 'Rubik',sans-serif}
.tile .cash{font:800 .95rem ui-monospace,Menlo,monospace;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:2px 9px;white-space:nowrap}
.cash.flash.up{animation:slFlashUp 1.2s ease-out both;animation-delay:var(--d,0ms)}
.cash.flash.down{animation:slFlashDn 1.2s ease-out both;animation-delay:var(--d,0ms)}
.slmeter{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0 8px}
.seg{height:38px;display:grid;place-items:center;font-size:1.25rem;border-radius:10px;border:2px dashed #cbd5e1;background:#f8fafc;filter:grayscale(1);opacity:.45}
.seg.on{border:2px solid var(--ink);background:#dcfce7;filter:none;opacity:1}
.seg.prem{background:linear-gradient(135deg,#fef08a,#facc15);box-shadow:0 0 10px rgba(250,204,21,.7)}
.tile-f,.tile-s{display:flex;justify-content:space-between;gap:8px;font-size:.86rem;flex-wrap:wrap}
.tile-f span:first-child{font-weight:800}
.tile-s{color:var(--muted);font-size:.8rem;margin-top:3px}
.tile .debt{color:#b91c1c;font-weight:700}
.wavegrid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media(max-width:900px){.wavegrid{grid-template-columns:minmax(0,1fr)}}
.feed>div.new{animation:slFeed .9s ease-out both;animation-delay:var(--d,0ms)}

/* live ticker along the bottom of the projector */
.ticker{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;background:var(--ink);color:#fff;height:38px;font:600 .95rem 'Rubik',sans-serif;overflow:hidden}
.ticker>b{flex:0 0 auto;background:#ef4444;height:100%;display:grid;place-items:center;padding:0 14px;letter-spacing:.12em;font-size:.78rem}
.ticker>b::before{content:"● ";animation:slPulse 1s infinite}
.tk-w{flex:1;overflow:hidden;direction:ltr}
.tk-r{display:inline-flex;white-space:nowrap;animation:slTick 30s linear infinite}
.tk-r span{padding-right:60px}
body[data-ph=wave] .wrap,body[data-ph=res] .wrap{padding-bottom:56px}

/* podium */
.slpod{display:flex;justify-content:center;align-items:flex-end;gap:14px;margin:18px auto 22px;max-width:720px}
.slpod .pc{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:stretch}
.slpod .who{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 4px 10px;min-width:0;animation:slUp .6s both;animation-delay:calc(var(--el,0ms) + 900ms)}
.slpod .p1 .who{animation-delay:calc(var(--el,0ms) + 1300ms)}
.slpod .med{font-size:2.6rem;line-height:1;animation:slBob 2.4s ease-in-out infinite}
.slpod .p1 .med{font-size:3.4rem}
.slpod .who b{font:900 1.1rem 'Rubik',sans-serif;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slpod .amt{font:800 1.15rem ui-monospace,Menlo,monospace;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:2px 12px}
.slpod .blk{border:var(--line);border-bottom:0;border-radius:16px 16px 0 0;background:linear-gradient(180deg,var(--tc),#fff 170%);box-shadow:5px 0 0 var(--ink);display:grid;place-items:center;transform-origin:bottom;animation:slRise .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--el,0ms) + 200ms)}
.slpod .blk span{font:900 2.4rem 'Rubik',sans-serif;color:#fff;text-shadow:2px 2px 0 var(--ink)}
.slpod .p1 .blk{height:170px;background:linear-gradient(180deg,#facc15,#fde68a);animation-delay:calc(var(--el,0ms) + 500ms)}
.slpod .p2 .blk{height:120px}
.slpod .p3 .blk{height:85px}
.slpod+.actions{border-top:var(--line);padding-top:16px;margin-top:0}
.slconf{position:fixed;inset:0;pointer-events:none;z-index:200}

/* setup and lobby: wave cards in wave colours */
.how>div{border-top:6px solid #94a3b8}
.how>div:nth-child(1){border-top-color:#f97316}
.how>div:nth-child(2){border-top-color:#7c3aed}
.how>div:nth-child(3){border-top-color:#0d9488}
.how>div:nth-child(4){border-top-color:#1d4ed8}

/* phone: status cash flash */
.status .cashpill{transition:transform .2s}
.status .cashpill.up{animation:slFlashUp 1.1s ease-out both}
.status .cashpill.down{animation:slFlashDn 1.1s ease-out both}
.status .clock.low{animation:slPulse 1s ease-in-out infinite}

/* phone: role card */
.rolecard{background:linear-gradient(135deg,#eef2ff,#fff);border-style:solid}
.rhead{display:flex;align-items:center;gap:10px}
.ric{font-size:1.5rem;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:4px 8px;white-space:nowrap}
.rhead small{display:block;font:800 .7rem 'Rubik',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rhead b{font:800 1.05rem 'Rubik',sans-serif}
ul.focus{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
ul.focus li{background:#fff;border:2px solid var(--acc);border-radius:12px;padding:7px 10px 7px 34px;position:relative;font-weight:700;color:#1e3a8a}
ul.focus li::before{content:"➜";position:absolute;left:11px;top:7px;color:var(--acc)}
html[dir=rtl] ul.focus li{padding:7px 34px 7px 10px}
html[dir=rtl] ul.focus li::before{left:auto;right:11px;content:"⬅"}
.rdet{margin-top:10px}
.rdet summary{cursor:pointer;font:800 .82rem 'Rubik',sans-serif;color:var(--acc)}
.lockcard{background:#f8fafc;border-style:dashed}

/* phone: blueprint */
.bphead{display:flex;align-items:center;gap:12px}
.ring{flex:0 0 58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#22c55e calc(var(--p)*1%),#e2e8f0 0);border:2px solid var(--ink);position:relative;transition:background .6s}
.ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff;border:2px solid var(--ink)}
.ring b{position:relative;font:900 .95rem 'Rubik',sans-serif}
.slots{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px}
.slot{padding:8px 3px 6px;border-radius:12px;transition:transform .2s}
.slot .ic{font-size:1.45rem}
.slot b{font-size:.64rem;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:normal;word-break:normal;hyphens:auto;-webkit-hyphens:auto}
.slot small{font-size:.85rem;font-weight:900}
.slot.ok small{color:#15803d}
.slot.miss small{color:#b91c1c}
.slot.miss .ic{filter:grayscale(1);opacity:.5}
.slot.prem{background:linear-gradient(135deg,#fef9c3,#fde047);box-shadow:0 0 12px rgba(250,204,21,.6)}
.slot.prem small{color:#a16207}
.inv{border-radius:999px;padding:4px 5px 4px 12px;gap:8px}
.inv .btn.xs{border-radius:999px}
.medal{animation:slBob 2.4s ease-in-out infinite;display:block;margin:6px auto 0}
.nw{font:900 2rem ui-monospace,Menlo,monospace;margin:4px 0 6px}
.finale{background:radial-gradient(circle at 50% 0,#fef9c3,#fff 60%)}
.lb tbody tr{transition:background .3s}

@media(max-width:520px){
  .hero{padding:16px}
  .tiles{grid-template-columns:1fr}
  .slpod .who b{font-size:.9rem}
  .slpod .amt{font-size:.85rem;padding:2px 8px}
  .slpod .med{font-size:2rem}.slpod .p1 .med{font-size:2.5rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition:none!important}
  .tk-r{animation:none!important}
}
.side .prog td{white-space:nowrap}
.side .prog td:first-child{white-space:normal}

/* ---------- prices ---------- */
.pboard{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;background:#fff;border:var(--line);border-radius:16px;box-shadow:4px 4px 0 var(--ink);padding:10px 12px;margin:0 0 16px}
.pb-t{flex:0 0 auto;align-self:center;font:900 .9rem 'Rubik',sans-serif;margin-inline-end:4px}
.pcell{flex:1 1 140px;min-width:0;display:flex;gap:8px;align-items:center;border:2px solid #e2e8f0;border-radius:12px;padding:6px 8px;background:#f8fafc}
.pcell .pic{font-size:1.5rem}
.pcell small{display:block;font:800 .7rem 'Rubik',sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;font:800 .95rem ui-monospace,Menlo,monospace}
.prow .ls{color:#475569}
.mk{font:800 .9rem ui-monospace,Menlo,monospace;border-radius:999px;padding:1px 7px;background:#eef2ff;color:#1e3a8a;white-space:nowrap}
.mk.up{background:#dcfce7;color:#15803d}
.mk.dn{background:#fee2e2;color:#b91c1c}
.mk.none{background:transparent;color:#94a3b8}
.mk.flash{animation:slPop .7s cubic-bezier(.2,.9,.3,1.4) both;animation-delay:var(--d,0ms)}
.pb-n{flex-basis:100%;color:var(--muted);font-size:.78rem}
.pboard.listonly .pcell{flex-basis:110px}
.pricecard .pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 6px}
.pc2{display:flex;flex-direction:column;align-items:center;gap:1px;border:2px solid #e2e8f0;border-radius:12px;padding:6px 4px;background:#f8fafc;min-width:0;text-align:center}
.pc2.need{border-color:var(--acc);background:#eff6ff}
.pc2 .pic{font-size:1.25rem}
.pc2 small{font:800 .64rem 'Rubik',sans-serif;text-transform:uppercase;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc2 b{font:800 .9rem ui-monospace,Menlo,monospace}
.pc2 .mk{font-size:.76rem;padding:0 6px}
.pc2 .mk.star{background:#fef9c3;color:#a16207}
.pxt{display:inline-block;font:700 .72rem ui-monospace,Menlo,monospace;color:#1e3a8a;background:#eef2ff;border-radius:999px;padding:1px 8px;margin-top:2px}
.pxs{color:var(--muted);font:700 .75rem ui-monospace,Menlo,monospace}
.toolbar select{border:2px solid var(--ink);border-radius:999px;padding:5px 10px;font:700 .8rem 'Rubik',sans-serif;background:#fff}
.ipohow{margin:6px 0 12px;padding-inline-start:20px;font-size:.88rem;color:#334155;display:flex;flex-direction:column;gap:4px}
.ipohow li::marker{font-weight:900;color:var(--acc)}
/* launch box */
.lbox{border:var(--line);border-radius:16px;padding:12px;margin:10px 0 14px;background:#f8fafc;box-shadow:3px 3px 0 var(--ink)}
.lbox.ready{background:linear-gradient(135deg,#eff6ff,#fff)}
.lbox.go{background:linear-gradient(135deg,#dcfce7,#fff)}
.lchk{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.9rem}
.lchk .ok{color:#15803d}.lchk .no{color:#b91c1c}
.launchbtn{width:100%;font:900 1.35rem 'Rubik',sans-serif!important;letter-spacing:.06em;padding:14px!important;border-radius:16px!important}
.lbox.ready .launchbtn:not(:disabled){animation:slPulse 1.4s ease-in-out infinite;background:linear-gradient(120deg,#facc15,#f97316)!important}
.lwhy{margin:8px 0 0;font-size:.88rem;font-weight:600;color:#334155}
.lgo{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.lgo .rk{flex:0 0 auto;font-size:2.2rem;background:none;width:auto;height:auto;animation:slBob 1.6s ease-in-out infinite}
.lgo b{display:block;font:900 1.1rem 'Rubik',sans-serif;color:#15803d}
.lgo small{color:#334155}
@keyframes slFly{0%{transform:translateY(40px) rotate(0);opacity:0}20%{opacity:1}100%{transform:translateY(-420px) rotate(-8deg);opacity:0}}
.rocketfly{position:absolute;left:50%;top:60%;font-size:3rem;pointer-events:none;animation:slFly 2.4s ease-in .3s both}
.finale{position:relative;overflow:hidden}
/* bazaar: who has what */
.whorow{display:flex;flex-direction:column;gap:6px;border-top:1.5px dashed #cbd5e1;padding:8px 0}
.whorow:first-of-type{border-top:0}
.wh{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.wh small{color:var(--muted);font-weight:600}
.whs{display:flex;flex-wrap:wrap;gap:6px}
.spchip{border:2px solid var(--ink);border-radius:999px;background:#fff;padding:4px 10px;font:700 .82rem 'Rubik',sans-serif;cursor:pointer}
.spchip.want{background:#fef08a;box-shadow:0 0 0 3px rgba(250,204,21,.35)}
.spchip:not(:disabled):hover{transform:translateY(-1px)}
.commit{margin:10px 0 0;font-weight:700;font-size:.88rem;color:#1e3a8a;background:#eef2ff;border-radius:10px;padding:8px 10px}
.commit.over{color:#9a3412;background:#ffedd5}
.allynote .banner{font-size:.85rem}
/* wave 4 investing */
.prosp{border:2px solid var(--ink);border-radius:14px;padding:10px 12px;margin:10px 0;background:#fff;box-shadow:3px 3px 0 var(--ink);display:flex;flex-direction:column;gap:8px}
.prosp .ph{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.prosp .ph b{font:900 1.05rem 'Rubik',sans-serif}
.pfacts{display:flex;flex-wrap:wrap;gap:5px}
.pfacts span{font:700 .78rem 'Rubik',sans-serif;background:#f1f5f9;border-radius:999px;padding:3px 9px}
.est{border-radius:12px;padding:8px 10px;font-size:.86rem;display:flex;flex-direction:column;gap:2px}
.est small{font:800 .68rem 'Rubik',sans-serif;text-transform:uppercase;letter-spacing:.05em;opacity:.8}
.est b{font:900 1rem ui-monospace,Menlo,monospace}
.est.up{background:#dcfce7;color:#14532d}
.est.dn{background:#fee2e2;color:#7f1d1d}
.pbuy{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.pbuy input{width:80px;border:2px solid var(--ink);border-radius:10px;padding:6px 8px;font:700 1rem 'Rubik',sans-serif}
.prog.invtab td{vertical-align:top}
.prog.invtab tr.dim{opacity:.55}
.prog.invtab .up{color:#15803d;font-weight:900}.prog.invtab .dn{color:#b91c1c;font-weight:900}
