/* floor.css — the playable loop. Two verbs: ring, and take.
   Everything else that used to live here (the Pit, Trading Halts, the Closing
   Bell, buying $TICK) is still in the backend but off the page — it belongs to
   a later phase, not to somebody's first minute. */

.wrap{max-width:1180px;margin:0 auto;padding:26px clamp(14px,4vw,40px) 20px}

.whoami{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}
select{font-family:var(--mono);font-size:13px;background:var(--plate);color:var(--ink);
  border:2px solid var(--ink);padding:11px 12px;min-width:230px}
select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bal{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.bal b{color:var(--ink);font-weight:800}

/* ---- the three numbers that matter ---- */
.heroes{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--ink);
  border:3px solid var(--ink);margin-bottom:30px}
.hero-stat{background:var(--paper);padding:20px 18px}
.hero-stat b{display:block;font-size:clamp(26px,4.6vw,42px);font-weight:800;line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.hero-stat span{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:9px}
.hero-stat.g b{color:var(--good)} .hero-stat.r b{color:var(--bad)} .hero-stat.a b{color:var(--warn)}
@media (max-width:700px){.heroes{grid-template-columns:1fr}}

/* ---- panels ---- */
.panel{border:3px solid var(--ink);margin-bottom:24px;background:var(--plate)}
.panel h2{font-size:15px;padding:15px 18px 0;display:flex;justify-content:space-between;
  gap:10px;align-items:baseline}
.panel h2 em{font-style:normal;font-size:10px;letter-spacing:.14em;color:var(--ink-soft)}
.panel .lead{font-size:12.5px;color:var(--ink-soft);padding:8px 18px 15px;max-width:74ch;
  border-bottom:2px solid var(--ink)}
.panel.danger{border-color:var(--bad)}
.panel.danger h2{color:var(--bad)}
.empty{padding:22px 18px;color:var(--ink-soft);font-size:13px}

/* ---- rows ---- */
.row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:2px solid var(--ink);
  flex-wrap:wrap}
.row:last-child{border-bottom:0}
.thumb{width:56px;height:56px;flex:none;border:2px solid var(--ink);background:#F2EFE6}
.who{min-width:132px}
.who b{display:block;font-size:14px;font-weight:800}
.grow{flex:1;min-width:190px}
.meta{font-size:11.5px;color:var(--ink-soft);line-height:1.5}
.meta b{color:var(--ink)}
.num{font-variant-numeric:tabular-nums;font-weight:800;font-size:17px;text-align:right;min-width:88px}
.num small{display:block;font-size:9px;letter-spacing:.12em;color:var(--ink-soft);font-weight:400}
.bar-fill{height:5px;background:var(--sunk);margin-top:7px;border:1px solid var(--ink)}
.bar-fill i{display:block;height:100%;background:var(--good)}
.bar-fill.low i{background:var(--bad)}
.acts{display:flex;gap:7px;flex-wrap:wrap}

/* ---- the tape ---- */
.feed{max-height:420px;overflow-y:auto}
.ev{display:flex;gap:12px;align-items:baseline;padding:10px 18px;border-bottom:1px solid var(--sunk);
  font-size:12px}
.ev:last-child{border-bottom:0}
.ev time{color:var(--ink-soft);font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ev .k{font-size:8.5px;letter-spacing:.1em;font-weight:800;padding:2px 6px;white-space:nowrap;
  border:2px solid currentColor}
.k-bell{color:var(--good)} .k-raid{color:var(--bad)} .k-claim{color:var(--warn)}
.k-mint,.k-sale,.k-buy{color:var(--after-hours)} .k-lapse{color:var(--bad)}
.ev .whoev{font-weight:800;white-space:nowrap}
.ev .what{color:var(--ink-soft);flex:1;min-width:0}

/* ---- demo controls, folded away ---- */
.devbar{border:2px dashed var(--ink);padding:12px 16px;margin-bottom:20px}
.devbar summary{font-size:11px;letter-spacing:.18em;font-weight:700;cursor:pointer}
.devbar p{font-size:11.5px;color:var(--ink-soft);margin:10px 0}
.devrow{display:flex;gap:7px;flex-wrap:wrap}

/* ---- connect ---- */
#connect{position:fixed;inset:0;background:var(--paper);z-index:180;display:grid;place-items:center;
  padding:24px;overflow-y:auto}
#connect[hidden]{display:none}
.cbox{max-width:800px;width:100%}
.cbox h2{font-size:clamp(28px,5vw,44px);margin:6px 0 12px}
.cbox .lead{font-size:14px;color:var(--ink-soft);max-width:56ch;margin-bottom:22px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.ccard{text-align:left;font-family:var(--mono);background:var(--plate);border:3px solid var(--ink);
  padding:16px 15px;cursor:pointer;display:flex;flex-direction:column;gap:6px}
.ccard:hover{border-color:var(--accent)}
.ccard b{font-size:15px;font-weight:800}
.cseats{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}
.cblurb{font-size:11.5px;color:var(--ink-soft);line-height:1.5}

/* ---- toast + moments ---- */
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(90px);
  background:var(--ink);color:var(--paper);border:3px solid var(--ink);padding:13px 18px;
  font-size:12.5px;z-index:200;transition:transform .3s;max-width:92vw;text-align:center;font-weight:700}
#toast.bad{background:var(--bad);border-color:var(--bad);color:#fff}
#toast.on{transform:translateX(-50%) translateY(0)}

.ring-stage{position:fixed;inset:0;z-index:150;pointer-events:none;display:grid;place-items:center}
.ripple{position:absolute;width:110px;height:110px;border:3px solid var(--ink);border-radius:50%;
  opacity:.85;animation:ring 1.4s cubic-bezier(.15,.7,.3,1) forwards}
.ripple.d2{animation-delay:.12s} .ripple.d3{animation-delay:.24s}
@keyframes ring{to{width:150vmax;height:150vmax;opacity:0;border-width:1px}}
.earn{text-align:center;animation:rise 2s cubic-bezier(.2,.9,.3,1) forwards}
.earn b{display:block;font-size:clamp(42px,9vw,80px);font-weight:800;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.earn span{display:block;font-size:11px;letter-spacing:.2em;color:var(--ink-soft);margin-top:6px}
@keyframes rise{0%{opacity:0;transform:translateY(22px) scale(.93)}18%{opacity:1;transform:none}
  74%{opacity:1}100%{opacity:0;transform:translateY(-26px)}}
.tone-raid .ripple{border-color:var(--bad)} .tone-raid .earn b{color:var(--bad)}
.tone-safe .ripple{border-color:var(--warn)} .tone-safe .earn b{color:var(--warn)}
.snap{animation:snap .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes snap{0%{transform:scale(1)}38%{transform:scale(1.45);color:var(--good)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.ripple,.earn,.snap{animation:none}.earn{opacity:1}}

@media (max-width:640px){
  .row{gap:10px}
  .thumb{width:44px;height:44px}
  .grow{flex:1 0 100%}
  .acts{flex:1 0 100%}
  .acts .chip{flex:1}
  .num{min-width:0;margin-left:auto}
}
