:root{
  --ink:#2b1d17;
  --sand:#f3e2c7;
  --ochre:#c8763c;
  --deep:#7a3b1f;
  --warn:#d94f2b;
  --ok:#4a7c3f;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;height:100%;overflow:hidden;background:#e8c9a0;
  font-family:ui-rounded,"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}
canvas{position:fixed;inset:0;width:100%;height:100%;display:block}

#hud{position:fixed;inset:0;pointer-events:none;padding:calc(env(safe-area-inset-top) + 10px) 12px 0}
.topbar{max-width:560px;margin:0 auto}
.track{position:relative;height:26px;border-radius:13px;background:rgba(43,29,23,.16);
  border:2px solid rgba(43,29,23,.28);overflow:hidden}
.track .fill{position:absolute;left:0;top:0;bottom:0;width:0%;
  background:linear-gradient(90deg,#e8a24a,#d9552b);transition:width .12s linear}
.track .peak{position:absolute;right:6px;top:1px;font-size:14px;opacity:.5}
.track .pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;letter-spacing:.02em;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.counters{display:flex;justify-content:space-between;gap:8px;margin-top:6px;
  font-size:12.5px;font-weight:800;color:#5c3a26;text-shadow:0 1px 0 rgba(255,244,224,.6)}
.crew{text-align:right;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:58%;opacity:.85}

.hands{pointer-events:auto;max-width:560px;margin:12px auto 0;display:flex;gap:8px;
  align-items:center;justify-content:center;flex-wrap:wrap}
.hands b{background:rgba(217,79,43,.94);color:#fff;padding:7px 13px;border-radius:999px;
  font-size:13px;font-weight:800;box-shadow:0 3px 0 rgba(122,59,31,.5)}
.invite{border:0;background:#2b1d17;color:#f3e2c7;font:inherit;font-weight:800;font-size:13px;
  padding:8px 14px;border-radius:999px;box-shadow:0 3px 0 rgba(0,0,0,.25);cursor:pointer}
.invite:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.25)}

.toasts{position:absolute;left:0;right:0;bottom:190px;display:flex;flex-direction:column;
  align-items:center;gap:6px}
.toast{background:rgba(43,29,23,.86);color:#f7ead6;padding:6px 12px;border-radius:999px;
  font-size:12.5px;font-weight:700;animation:pop .25s ease-out;max-width:90vw}
@keyframes pop{from{transform:translateY(8px) scale(.94);opacity:0}}

#pad{position:fixed;left:0;right:0;bottom:0;padding:0 16px calc(env(safe-area-inset-bottom) + 16px);
  display:flex;gap:12px;align-items:flex-end;pointer-events:none}
.key{pointer-events:auto;width:82px;height:82px;border-radius:26px;border:0;
  background:rgba(255,248,236,.82);color:var(--deep);font-size:26px;font-weight:900;
  box-shadow:0 5px 0 rgba(122,59,31,.35);backdrop-filter:blur(3px);cursor:pointer}
.key:active,.key.on{transform:translateY(4px);box-shadow:0 1px 0 rgba(122,59,31,.35);
  background:rgba(255,236,206,.95)}
.key.jump{margin-left:auto;width:96px;height:96px;border-radius:30px;
  background:rgba(232,162,74,.9);color:#fff}

#curtain{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 100% at 50% 30%,#f0d2a6,#c98a52);z-index:20;padding:24px}
#curtain.gone{opacity:0;pointer-events:none;transition:opacity .5s}
.box{text-align:center;max-width:340px}
.box h1{font-size:30px;margin:0 0 6px;letter-spacing:-.02em}
.box .sub{margin:0 0 22px;font-size:14.5px;opacity:.72;line-height:1.45}
.box .status{font-size:13px;opacity:.6;min-height:18px}
.go{margin-top:14px;border:0;background:var(--ink);color:var(--sand);font:inherit;
  font-weight:800;font-size:16px;padding:13px 34px;border-radius:999px;
  box-shadow:0 4px 0 rgba(0,0,0,.28);cursor:pointer}
.go:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.28)}

#summit{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;z-index:15;pointer-events:none;padding:28px;text-align:center;
  background:rgba(247,230,205,.34);backdrop-filter:blur(1px);animation:pop .3s ease-out}
#summit .quote{font-size:21px;font-weight:800;line-height:1.35;max-width:420px;
  text-shadow:0 2px 0 rgba(255,255,255,.4)}
#summit .who{margin-top:12px;font-size:13px;font-weight:700;opacity:.65}

@media (min-height:760px){ .toasts{bottom:220px} }
