:root{color-scheme:dark;font-family:"Noto Sans SC",system-ui,-apple-system,sans-serif;color:#fff4f2;background:#0a0405}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;overflow-x:hidden;touch-action:pan-y}
body{min-height:100svh;display:grid;place-items:center;padding:12px;background:radial-gradient(ellipse at 50% 2%,#531419 0,#1c070a 42%,#080405 86%)}
button{font:inherit;cursor:pointer}
[hidden]{display:none!important}
.game{width:min(100%,760px);height:min(910px,calc(100svh - 24px));min-height:420px;display:flex;flex-direction:column;gap:10px}
.head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px}
.head-actions{display:flex;align-items:center;gap:9px}
.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:800;color:#e56d72}
h1{margin:4px 0 0;font-size:clamp(28px,5vw,45px);letter-spacing:-.04em;line-height:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.head h1.art-heading{width:clamp(190px,33vw,275px)}
.title-art{position:relative;display:block;width:100%;aspect-ratio:1344/400;overflow:hidden}
.title-art img{position:absolute;top:-44%;left:0;display:block;width:100%;height:auto;max-width:none}
.head p{margin:6px 0 0;font-size:12px;color:#ad898c}
.sound{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid #914048;background:#210e12;color:#ffc8ca;font-size:22px}
.head-close{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(232,189,125,.48);border-radius:50%;background:rgba(29,10,13,.75);color:#f5ddc5;font:300 27px/1 Arial,sans-serif;text-decoration:none;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}
.head-close:hover{border-color:#f5d0a2;background:#56252a;transform:rotate(90deg)}
.head-close:focus-visible{outline:2px solid #ffe1ae;outline-offset:4px}
.table{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:9px;border:1px solid #8e313a;border-radius:24px;background:#12090c;box-shadow:0 24px 70px #0009}
.stage{position:relative;min-height:0;overflow:hidden;border-radius:17px;border:1px solid #692830;background:#39070e url("/house-rules/background-still.jpg?v=3e2198bcae3f5805") center/cover no-repeat;touch-action:none}
.stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.stage:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#10030733,#10030711 45%,#10030755);pointer-events:none}
.cup{position:absolute;z-index:3;left:50%;bottom:9%;width:min(96%,470px);height:min(90%,470px);display:grid;place-items:center;transform:translate3d(-50%,0,0);touch-action:none;user-select:none;cursor:grab}
.cup img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.cup:active{cursor:grabbing}
.cup.returning{transition:transform .58s cubic-bezier(.19,.82,.28,1)}
.cup.shaking{animation:cup-shake 1.25s ease-in-out}
@keyframes cup-shake{0%,100%{transform:translate3d(-50%,0,0) rotate(0)}12%{transform:translate3d(calc(-50% - 17px),-5px,0) rotate(-4deg)}28%{transform:translate3d(calc(-50% + 18px),-9px,0) rotate(4deg)}45%{transform:translate3d(calc(-50% - 17px),-5px,0) rotate(-3deg)}64%{transform:translate3d(calc(-50% + 13px),-7px,0) rotate(3deg)}82%{transform:translate3d(calc(-50% - 8px),-4px,0) rotate(-2deg)}}
.stage-hint{position:absolute;z-index:4;right:12px;bottom:9px;white-space:nowrap;font-size:11px;color:#f1aaa9;text-shadow:0 2px 4px #000;pointer-events:none}
.stage-hint.rolling{opacity:0}
.flash-overlay{position:absolute;z-index:5;inset:0;opacity:0;pointer-events:none;background:#fff4e6}
.flash-overlay.active{animation:flash .2s ease-out}
@keyframes flash{0%{opacity:0}25%{opacity:.95}100%{opacity:0}}
.controls{text-align:center;padding:2px 8% 7px}
.step{color:#df7178;font-size:10px;font-weight:800;letter-spacing:.2em}
.status{min-height:18px;margin:6px 0 10px;color:#c7a5a7;font-size:12px}
.action{width:100%;min-height:64px;border:1px solid #ff9795;border-radius:100px;background:linear-gradient(180deg,#ec6565,#c2303d 55%,#8c1829);color:#fff;font-weight:900;box-shadow:0 10px 29px #ad253d68,inset 0 2px #ffd2cf69}
.action span,.action small{display:block}.action span{font-size:17px}.action small{margin-top:2px;letter-spacing:.15em;font-size:9px;opacity:.8}
.action:disabled{cursor:default;opacity:.65;filter:grayscale(.35)}
.permission{position:absolute;z-index:10;inset:0;display:grid;place-items:center;padding:14px;background:#090408db;backdrop-filter:blur(9px)}
.permission-card{width:min(100%,390px);padding:24px;text-align:center;border:1px solid #ae4850;border-radius:20px;background:#210c12;box-shadow:0 20px 50px #000}
.permission-mark{font-size:33px;color:#ff797c}.permission h2{margin:5px 0 10px;font-size:22px}.permission p{color:#d2abad;font-size:13px;line-height:1.6}
.permission button{width:100%;min-height:47px;border:0;border-radius:12px;color:#fff;background:#b42c3a;font-weight:800}
.permission .dismiss{margin-top:8px;border:1px solid #69363a;background:transparent;color:#d0a6a8}
.flat-results{position:absolute;z-index:2;left:50%;top:66%;width:min(74%,330px);transform:translate(-50%,-50%);display:none;grid-template-columns:repeat(6,1fr);gap:8px;pointer-events:none}
.flat-results.visible{display:grid}
.flat-results.concealing{transition:opacity .26s ease-out}
.flat-die{position:relative;grid-column:span 2;aspect-ratio:1;background:linear-gradient(145deg,#fff,#f5eeee);border:1px solid #ded1d0;border-radius:16%;box-shadow:0 7px 10px #1804088c,inset 0 1px 2px #fff}
.pip{position:absolute;width:14%;aspect-ratio:1;max-width:11px;border-radius:50%;background:#274dc7;transform:translate(-50%,-50%);box-shadow:inset 0 1px 2px #1527708c}
.pip.red{background:#e84240;box-shadow:inset 0 1px 2px #8f101a96}
.flat-die:nth-child(4){grid-column:2/span 2}.flat-die:nth-child(5){grid-column:4/span 2}
footer{text-align:center;color:#805c60;font-size:10px;letter-spacing:.12em}
@media(max-width:600px){body{padding:6px}.game{height:calc(100svh - 12px);min-height:360px;gap:5px}.head{padding:0 4px}.head h1{font-size:26px}.head h1.art-heading{width:min(53vw,235px)}.head p{display:none}.eyebrow{font-size:8px}.table{padding:6px;gap:5px}.cup{width:100%;height:min(88%,440px);bottom:6%}.stage-hint{left:50%;right:auto;bottom:7px;transform:translateX(-50%)}.controls{padding:2px 5px 4px}.status{margin:4px 0 6px}.action{min-height:58px}footer{font-size:9px}}
@media(max-height:620px){.head p,footer{display:none}.game{min-height:310px}.cup{height:min(86%,440px)}.status{margin:2px 0 4px}.action{min-height:49px}}
@media(prefers-reduced-motion:reduce){.stage-video{display:none}.cup.shaking,.flash-overlay.active{animation:none}.cup.returning,.flat-results.concealing{transition:none}}