:root{--bg: #2a1410;--panel: #3a1d17;--ink: #fff9e9;--dim: #f6c987;--accent: #e66536;--accent-dark: #a53928;--brown: #743d2e;--brown-dark: #44211c;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none;touch-action:manipulation}html,body{position:fixed;inset:0;width:100%;overflow:hidden}.shell{height:100%;max-width:560px;margin:0 auto;padding:calc(8px + var(--safe-top)) 10px calc(10px + var(--safe-bottom));display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0}.desk{height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);justify-items:center;align-items:stretch;min-height:0}.rotate-hint{display:none}@media (orientation: portrait) and (pointer: coarse){.rotate-hint{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:32px;text-align:center;background:var(--bg)}.rotate-hint img{width:100%;max-width:170px}.rotate-hint h1{margin:0;font-size:24px}.rotate-hint p{margin:0;max-width:280px;font-size:15px;line-height:1.5;color:var(--dim)}.rotate-hint .rotate-phone{font-size:64px;line-height:1;animation:rotate-nudge 2.4s ease-in-out infinite}@keyframes rotate-nudge{0%,55%,to{transform:rotate(0)}75%,92%{transform:rotate(-90deg)}}}.hud{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;background:var(--panel);border-radius:14px;padding:8px 12px}.hud-cell.hud-legacy{display:none}.misses{letter-spacing:.12em}.misses.warn{color:#ff9a6b}.hud-cell{display:flex;flex-direction:column;line-height:1.15}.hud-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.hud-cell strong{font-size:19px;font-variant-numeric:tabular-nums}.hud-live,.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.icon-btn{border:0;border-radius:10px;width:34px;height:34px;background:var(--brown);color:var(--ink);font-weight:800;font-size:13px;cursor:pointer;box-shadow:inset 0 -3px var(--brown-dark)}.icon-btn:active{transform:translateY(2px);box-shadow:none}.stage{position:relative;border-radius:18px;overflow:hidden;background:#1f0e0b;min-height:0}#canvas{display:block;width:100%;height:100%}.toast{position:absolute;left:50%;bottom:12px;transform:translate(-50%);margin:0;padding:6px 14px;border-radius:999px;background:#00000073;color:var(--dim);font-size:13px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .16s}.toast.show{opacity:1}.toast.good{color:#b7f2a0}.toast.bad{color:#ff9a6b}.guest-caption{position:absolute;left:var(--guest-caption-x, 50%);bottom:var(--guest-caption-bottom, 8%);width:min(290px,29vw);margin:0;pointer-events:none;color:#b7f2a0;font:700 13px/1.26 Georgia,serif;text-align:center;text-shadow:0 1px 0 #26150e,0 2px 8px rgba(0,0,0,.82);opacity:0;transform:translate(-50%,8px);will-change:transform,opacity}.guest-caption.show{animation:guest-caption-float 2.8s ease-out both}@keyframes guest-caption-float{0%{opacity:0;transform:translate(-50%,9px)}14%{opacity:.88;transform:translate(calc(-50% + var(--guest-caption-drift, 0px) * .2),2px)}72%{opacity:.82;transform:translate(calc(-50% + var(--guest-caption-drift, 0px)),-6px)}to{opacity:0;transform:translate(calc(-50% + var(--guest-caption-drift, 0px)),-12px)}}.screen{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;overflow-y:auto;background:#1f0e0bed;backdrop-filter:blur(3px)}.screen[hidden]{display:none}.screen h1{margin:0;font-size:25px}.where{margin:4px 0 2px;display:grid;gap:4px;justify-items:center}.where-note{margin:0;font-size:13px;color:var(--dim);max-width:300px;line-height:1.5}.where-name{margin:6px 0 0;font-size:12px;letter-spacing:.12em;color:var(--dim)}.where-list{margin:0;padding:0;list-style:none;display:grid;gap:2px}.where-list a{color:var(--dim);font-size:13px;text-decoration:underline;text-underline-offset:3px}.toast{position:fixed;left:50%;bottom:calc(18px + var(--safe-bottom));transform:translate(-50%);z-index:20;padding:9px 16px;border-radius:999px;background:#1f0e0beb;color:var(--ink);font-size:13px;box-shadow:0 6px 18px #00000059}.invite{margin:0;font-size:13px;color:var(--dim)}.version{margin:0;font-size:11px;letter-spacing:.04em;color:var(--dim);opacity:.55}.rules{margin:0;padding-left:20px;text-align:left;font-size:14px;line-height:1.5;color:var(--dim);max-width:320px}.rules b{color:var(--ink)}.intro-art{width:100%;max-width:200px;max-height:34vh;object-fit:contain;border-radius:14px;box-shadow:0 10px 28px #00000080;background:#fff}.intro-slogan{margin:0;min-height:1.4em;max-width:320px;font:700 15px/1.4 Courier New,monospace;letter-spacing:.01em;color:var(--ink);white-space:pre-wrap}.intro-slogan .caret{display:inline-block;margin-left:1px;color:var(--accent);animation:intro-blink .8s steps(1) infinite}@keyframes intro-blink{50%{opacity:0}}.screen-rest{gap:8px}.rest-art{width:100%;max-width:150px;max-height:30vh;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}.rest-note{margin:0;max-width:300px;font-size:13px;line-height:1.5;color:var(--dim)}.rest-time{margin:2px 0 0;font-size:40px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}.rest-unit{margin-left:3px;font-size:17px;font-weight:700;color:var(--dim)}.keys{margin:0;font-size:12px;color:var(--dim);opacity:.8}.result-score{margin:0;font-size:54px;font-weight:800;line-height:1}.result-stats{margin:0;padding:0;list-style:none;font-size:13px;color:var(--dim);line-height:1.7}button.primary,button.ghost{border:0;border-radius:14px;padding:13px 30px;font-size:16px;font-weight:800;color:var(--ink);cursor:pointer}button.primary{background:var(--accent);box-shadow:inset 0 -4px var(--accent-dark)}button.ghost{background:transparent;box-shadow:inset 0 0 0 2px var(--brown);font-weight:600;font-size:14px;padding:10px 24px}button.primary:active,button.ghost:active{transform:translateY(2px);box-shadow:none}.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.controls button{border:0;border-radius:14px;padding:9px 4px;background:var(--brown);color:var(--ink);cursor:pointer;box-shadow:inset 0 -4px var(--brown-dark)}.controls button.selected{background:#a95035}.controls button:active{transform:translateY(2px);box-shadow:none}.controls b{display:block;font-size:19px}.controls span{font-size:10px;color:var(--dim)}@media (max-height: 640px){.rules{font-size:13px}.screen h1{font-size:21px}}@media (min-aspect-ratio: 1/1){.desk{padding:0}.stage{touch-action:none}.shell{max-width:none;width:100%;padding:0;gap:0;grid-template-rows:minmax(0,1fr);position:relative}.stage{border-radius:0}.hud{position:absolute;z-index:4;top:0;left:0;right:0;border-radius:0;padding:calc(4px + var(--safe-top)) calc(10px + var(--safe-top)) 14px;background:linear-gradient(to bottom,#1f0e0bc7,#1f0e0b00);pointer-events:none}.hud .icon-btn{pointer-events:auto;justify-self:end;grid-column:-1}.hud{padding-bottom:18px}.hud-cell strong{font-size:17px}.hud{grid-template-columns:auto auto 1fr;gap:20px}.controls{display:none}}.feedback-open{margin:2px auto 0;padding:6px 10px;background:none;border:0;color:var(--dim);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.feedback{width:100%;max-width:340px;margin:6px auto 0;display:grid;gap:8px;text-align:left}.feedback-title{margin:0;font-size:14px;font-weight:700}.feedback-moods{display:grid;grid-template-columns:1fr 1fr;gap:8px}.feedback-mood{padding:9px 8px;border:1px solid rgba(255,224,145,.35);border-radius:10px;background:#ffe09112;color:inherit;font:inherit;font-size:13px;cursor:pointer}.feedback-mood.picked{background:#ffe09147;border-color:#ffe091cc;font-weight:700}.feedback textarea{width:100%;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,224,145,.28);background:#0000002e;color:inherit;font:inherit;font-size:13px;line-height:1.4;resize:none}.feedback-actions{display:flex;gap:8px;justify-content:center}.feedback-thanks{margin:6px 0 0;font-size:13px;color:var(--dim)}
