:root{--ink:#17324d;--paper:#fffaf0;--coral:#ef6f61;--deep:#d9563f;--gold:#f8c35a;--ice:#76cbd0;--pale:#dceff0}
*{box-sizing:border-box}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body{background:#f2e5ca;color:var(--ink)}
.game-main{width:min(100%,760px);margin:auto;padding:clamp(10px,3vw,24px)}
.hero-stage{aspect-ratio:16/9;background:var(--paper)}
.hero-stage img{display:block;width:100%;height:100%;object-fit:cover}
.intro-copy,.play-panel,.result-card,#editorial{background:var(--paper);border:3px solid var(--ink);border-radius:18px;box-shadow:6px 7px 0 var(--ink);padding:clamp(16px,4vw,28px);margin:18px 0}
.eyebrow{font-size:.78rem;font-weight:900;letter-spacing:.14em;color:var(--deep)}
h1{font-size:clamp(2rem,8vw,4rem);line-height:.96;margin:.35rem 0 1rem}
.dek{font-size:clamp(1.02rem,3vw,1.25rem);font-weight:700}
.news-brief,.rule-card{border:2px solid var(--ink);border-radius:14px;padding:12px 14px;margin:14px 0}
.news-brief{background:var(--pale)}
.rule-card{background:#fff0c9}
.news-brief p,.rule-card p{margin:.35rem 0 0}
.unofficial{display:block;margin-top:12px;line-height:1.5}
button{border:3px solid var(--ink);border-radius:999px;background:var(--coral);color:var(--ink);font:900 1rem/1 system-ui;padding:14px 20px;box-shadow:3px 4px 0 var(--ink);cursor:pointer}
button:hover{transform:translateY(-1px)}
button:active{transform:translate(2px,2px);box-shadow:1px 2px 0 var(--ink)}
button:disabled{opacity:.5}
.play-panel{padding:10px}
.play-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}
.status-ticket{background:var(--paper);border:2px solid var(--ink);border-radius:10px;text-align:center;padding:6px;font-size:.72rem}
.status-ticket b{display:block;font-size:1.12rem;font-variant-numeric:tabular-nums}
.board-frame{position:relative;overflow:hidden;border:3px solid var(--ink);border-radius:14px;background:var(--paper);touch-action:none;outline-offset:4px}
.board-frame:focus-visible{outline:4px solid var(--coral)}
canvas{display:block;width:100%;height:auto}
.gesture-copy{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);width:max-content;max-width:94%;background:rgba(255,250,240,.92);border:2px solid var(--ink);border-radius:999px;padding:5px 10px;font-weight:900;font-size:.72rem;pointer-events:none}
.feedback-panel{display:flex;align-items:center;justify-content:center;min-height:42px;margin-top:8px;border:2px solid var(--ink);border-radius:12px;font-weight:900;padding:7px}
.feedback-panel[data-zone=hot],.feedback-panel[data-zone=warn]{background:#ffd3cb}
.feedback-panel[data-zone=cool]{background:var(--pale)}
.feedback-panel[data-zone=done]{background:#fff0c9}
.result-card{text-align:center}
.result-art-frame{overflow:hidden;border:3px solid var(--ink);border-radius:14px;background:var(--pale);margin:10px auto 16px;max-width:600px}
.result-art-frame canvas{display:block;width:100%;height:auto}
.result-amount{font-size:clamp(3rem,14vw,6.5rem);font-weight:1000;line-height:.9;margin:.3rem 0}
.result-amount small{display:block;font-size:.9rem;letter-spacing:.08em}
.result-score{font-size:1.25rem;font-weight:900}
.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.result-actions #share{background:var(--ice)}
#editorial h2{margin-top:1.5rem}
#editorial section:first-child h2{margin-top:0}
@media(max-width:420px){.game-main{padding:8px}
.intro-copy,.result-card,#editorial{padding:15px;box-shadow:4px 5px 0 var(--ink)}
.play-hud{grid-template-columns:repeat(3,1fr)}
.status-ticket{font-size:.64rem}
.status-ticket b{font-size:.96rem}
.result-actions{display:grid}
.result-actions button{width:100%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
