:root{--plum:#220631;--violet:#57146c;--gold:#ffd56a;--cream:#fffaf4;--muted:#dfd0e7;--ink:#351043}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{color:var(--cream);background:radial-gradient(circle at 50% -12%,rgba(255,213,106,.18),transparent 34%),linear-gradient(155deg,var(--plum),var(--violet) 58%,#29083c);font-size:16px}.game-shell{width:min(940px,100%);margin:auto;padding:18px 12px 42px}.game-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 auto 18px}.brand{color:var(--gold);font-weight:950;letter-spacing:.06em;text-decoration:none;font-size:18px}.brand span{display:block;color:#ead6df;font-size:11px;letter-spacing:.28em;margin-top:2px}.player-chip{border:1px solid rgba(255,255,255,.17);background:#ffffff12;padding:8px 11px;border-radius:999px;font-size:13px}.dice-panel{padding:22px 12px 14px;border:1px solid #ffffff24;border-radius:28px;background:#ffffff0e;box-shadow:0 24px 70px #0007;text-align:center}.game-kicker,.eyebrow{color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.16em}.dice-panel h1{font-size:clamp(35px,7vw,62px);line-height:.98;margin:9px 0;color:var(--gold);font-weight:950}.dice-panel h1 em{font-style:normal;color:var(--cream)}.game-intro{color:var(--muted);max-width:530px;margin:0 auto 18px}.dice-stage{position:relative;height:clamp(380px,62vw,530px);min-height:380px;overflow:hidden;border-radius:23px;background:radial-gradient(ellipse at 50% 42%,#ffffff12,transparent 45%),linear-gradient(#51125f,#2b0837)}#scene{position:absolute;inset:0}#scene canvas{width:100%!important;height:100%!important;display:block}.scene-loading{position:absolute;inset:0;display:grid;place-items:center;background:#21052dde;font-weight:800}.scene-loading.hidden{display:none}.dice-status{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);width:min(640px,92%);display:grid;gap:2px;padding:10px 14px;border:1px solid #ffffff24;border-radius:16px;background:#170317b5;backdrop-filter:blur(7px)}#roll-label{font-size:13px;color:var(--muted)}#roll-faces{font-size:clamp(30px,6vw,46px);line-height:1;color:var(--gold)}#roll-description{font-size:13px}.roll-actions{display:flex;justify-content:center;align-items:center;gap:18px;margin:14px 0 8px}.roll-button{min-width:230px;border:0;border-radius:15px;padding:15px 22px;color:#43144e;background:linear-gradient(#ffe58d,#efb53a);box-shadow:0 6px 0 #9e6714,0 9px 18px #0004;font-size:17px;font-weight:950;cursor:pointer}.roll-button:active{transform:translateY(3px);box-shadow:0 3px 0 #9e6714}.roll-button:disabled{opacity:.65;cursor:wait}.quiet-link{color:#f7dbe3;font-weight:750}.fairness-note{margin:6px 0 0;color:#cdb8d4;font-size:12px}.result-card,.rules-card{margin-top:14px;border:1px solid #ffffff1e;border-radius:20px;background:#ffffff12;padding:17px}.result-summary h2,.coupon-result h2{margin:5px 0;color:var(--gold);font-size:27px}.result-summary p,.no-coupon,.small{color:var(--muted);margin:5px 0}.coupon-result{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;padding:15px;border-radius:16px;background:linear-gradient(120deg,#ffd56a22,#ffffff0c);border:1px solid #ffd56a55}.coupon-result p{margin:6px 0}.coupon-result canvas{background:var(--cream);padding:5px;border-radius:10px;max-width:160px;height:auto}.error{color:#ffd0d5;font-weight:750}.rules-card h2{font-size:18px;color:var(--gold);margin:0 0 8px}.rules-card>div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #ffffff15;padding:9px 0;font-size:14px}.rules-card span,.rules-card p{color:var(--muted)}.rules-card p{font-size:12px;line-height:1.45;margin-bottom:0}@media(max-width:560px){.game-shell{padding:12px 8px 30px}.game-header{margin:0 5px 13px}.dice-panel{padding:16px 8px 12px;border-radius:22px}.dice-stage{height:min(69vh,510px);min-height:410px}.roll-actions{gap:12px}.roll-button{min-width:205px}.coupon-result{align-items:flex-start}.coupon-result canvas{width:120px}.rules-card>div{display:block}.rules-card span{display:block;margin-top:3px}}/* compact staff/register shared styles */
.card{max-width:500px;margin:24px auto;padding:24px;background:white;border-radius:18px;box-shadow:0 8px 30px #24304a20;color:#172033}.card h1{margin-top:0}label{display:block;margin:14px 0;font-weight:600}input{display:block;width:100%;padding:13px;margin-top:6px;border:1px solid #bec7d8;border-radius:10px;font:inherit}button,.button{display:inline-block;background:#2457e6;color:#fff;border:0;border-radius:10px;padding:13px 18px;font-weight:700;text-decoration:none;cursor:pointer}.token{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:1px;word-break:break-all}.result-modal{width:min(430px,calc(100% - 28px));border:1px solid #ffffff35;border-radius:24px;padding:26px;background:linear-gradient(155deg,#57146c,#29083c);color:var(--cream);box-shadow:0 24px 70px #000b;text-align:center}.result-modal::backdrop{background:#17011ddd}.result-modal h2{margin:8px 0;font-size:30px;color:var(--gold)}.result-modal p{color:var(--muted);line-height:1.5}.coupon-qr{display:grid;place-items:center;width:196px;min-height:196px;margin:18px auto;padding:8px;background:#fffaf4;border-radius:12px;color:#351043}.coupon-qr img,.coupon-qr canvas{display:block;max-width:180px;height:auto}.modal-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.quiet-button{background:#ffffff18;border:1px solid #ffffff44;color:var(--cream)}
