:root{--sky:#f2f8ff;--white:#fff;--azure:#2d7ff9;--deep:#0b4fb3;--bougainvillea:#e8457c;--sun:#ffc93c;--mint:#5fd3b0;--ink:#0d2b52;--ink-muted:#4a6283;--azure-deep:#1f6bdb;--bougainvillea-deep:#c92e62;--tray:#dcebff;--edge:#c8dcf7;--edge-azure:#13489a;--edge-pink:#8f1e45;--edge-sun:#d9a21c;--edge-mint:#3aa888;--edge-ink:#06182f;--edge-deep:#073a85;--scrim:#0d2b5266;--stars:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%232D7FF9' stroke-opacity='0.16' stroke-width='1.5' stroke-linejoin='round'%3E%3Crect x='20' y='20' width='24' height='24'/%3E%3Crect x='20' y='20' width='24' height='24' transform='rotate(45 32 32)'/%3E%3Ccircle cx='32' cy='32' r='4'/%3E%3Cpath d='M0 32h7M57 32h7M32 0v7M32 57v7'/%3E%3C/g%3E%3C/svg%3E");--stars-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-opacity='0.16' stroke-width='1.5' stroke-linejoin='round'%3E%3Crect x='20' y='20' width='24' height='24'/%3E%3Crect x='20' y='20' width='24' height='24' transform='rotate(45 32 32)'/%3E%3Ccircle cx='32' cy='32' r='4'/%3E%3Cpath d='M0 32h7M57 32h7M32 0v7M32 57v7'/%3E%3C/g%3E%3C/svg%3E");--star-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='%23FFFFFF'%3E%3Crect x='4' y='4' width='12' height='12'/%3E%3Crect x='4' y='4' width='12' height='12' transform='rotate(45 10 10)'/%3E%3C/g%3E%3C/svg%3E");--star-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg fill='%230D2B52'%3E%3Crect x='4' y='4' width='12' height='12'/%3E%3Crect x='4' y='4' width='12' height='12' transform='rotate(45 10 10)'/%3E%3C/g%3E%3C/svg%3E");--font:"Rubik", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--fs-display:3rem;--fs-score:23px;--fs-button:19px;--fs-body:1rem;--fs-name:12.5px;--fs-rule:9.5px;--fw-display:900;--fw-number:800;--fw-name:700;--r-tile:18px;--r-button:18px;--r-chip:14px;--r-panel:24px;--tap:44px;--shadow-raised:inset 0 2px 0 #ffffffe6, 0 5px 0 var(--edge), 0 10px 16px -6px #0b4fb340;--shadow-pressed:inset 0 2px 0 #ffffffe6, 0 1px 0 var(--edge), 0 3px 6px -3px #0b4fb340;--shadow-panel:0 0 0 2px #2d7ff91f, 0 18px 40px -12px #0b4fb366;--shadow-tray:inset 0 6px 10px -4px #0b4fb34d, inset 0 -2px 0 #fffc;--spring:cubic-bezier(.34, 1.56, .64, 1);--settle:cubic-bezier(.3, .7, .3, 1);--t-instant:.12s;--t-quick:.2s;--t-calm:.32s;--t-roll:.62s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font)}[data-colour=azure],[data-accent=azure]{--seat:var(--azure);--seat-fill:var(--azure-deep);--seat-edge:var(--edge-azure);--on-seat:var(--white)}[data-colour=pink],[data-accent=pink]{--seat:var(--bougainvillea);--seat-fill:var(--bougainvillea-deep);--seat-edge:var(--edge-pink);--on-seat:var(--white)}[data-colour=sun],[data-accent=sun]{--seat:var(--sun);--seat-fill:var(--sun);--seat-edge:var(--edge-sun);--on-seat:var(--ink)}[data-colour=mint],[data-accent=mint]{--seat:var(--mint);--seat-fill:var(--mint);--seat-edge:var(--edge-mint);--on-seat:var(--ink)}[data-fill=azure]{--fill:var(--azure-deep);--fill-edge:var(--edge-azure);--on-fill:var(--white);--star:var(--star-white)}[data-fill=pink]{--fill:var(--bougainvillea-deep);--fill-edge:var(--edge-pink);--on-fill:var(--white);--star:var(--star-white)}[data-fill=sun]{--fill:var(--sun);--fill-edge:var(--edge-sun);--on-fill:var(--ink);--star:var(--star-ink)}[data-fill=mint]{--fill:var(--mint);--fill-edge:var(--edge-mint);--on-fill:var(--ink);--star:var(--star-ink)}[data-piece=azure]{background:var(--azure)}[data-piece=pink]{background:var(--bougainvillea)}[data-piece=sun]{background:var(--sun)}[data-piece=mint]{background:var(--mint)}*,:before,:after{box-sizing:border-box}html{background-color:var(--sky);background-image:var(--stars);background-size:64px 64px}body{color:var(--ink);margin:0}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:3px solid var(--azure);outline-offset:3px}.is-hidden{visibility:hidden}.app{max-width:430px;min-height:100dvh;padding:max(8px, env(safe-area-inset-top)) 16px max(8px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:0 auto;display:flex}@media (width>=520px){.app{background-color:#f2f8ff99;box-shadow:0 0 0 1.5px #2d7ff92e,0 0 48px #0b4fb31a}}.topbar{justify-content:flex-end;align-items:center;gap:8px;display:flex}.help-btn,.mute-btn{width:var(--tap);height:var(--tap);color:var(--deep);background:var(--white);box-shadow:0 3px 0 var(--edge);border:0;border-radius:50%;place-items:center;display:grid}.help-btn[hidden]{display:none}.help-btn[aria-pressed=true]{color:var(--white);background:var(--deep);box-shadow:0 3px 0 var(--edge-deep)}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.mute-btn[aria-pressed=true] .speaker-waves,.mute-btn[aria-pressed=false] .speaker-slash{display:none}.lang{height:var(--tap);background:var(--white);box-shadow:0 3px 0 var(--edge);border-radius:999px;align-items:center;gap:2px;padding:0;display:inline-flex}.lang-sep{display:none}.lang-btn{min-width:48px;height:var(--tap);color:var(--deep);background:0 0;border:0;border-radius:999px;font-size:.85rem;font-weight:700}.lang-btn[aria-pressed=true]{color:var(--white);background:var(--deep);box-shadow:inset 0 0 0 4px var(--white)}.setup,.game,.rules,.online{flex-direction:column;flex:1;display:flex}.setup[hidden],.game[hidden],.rules[hidden],.online[hidden]{display:none}.game{gap:10px}.play{flex-direction:column;flex:1;gap:10px;display:flex}.strip{gap:7px;padding-top:5px;display:flex}.chip{border-radius:var(--r-chip);min-width:0;min-height:48px;color:var(--on-seat);background:var(--seat-fill);box-shadow:inset 0 2px 0 #ffffff4d, 0 4px 0 var(--seat-edge);transition:transform var(--t-quick) var(--spring);border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;padding:3px 4px;line-height:1.1;display:flex}.chip[hidden]{display:none}.chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--fs-name);font-weight:var(--fw-name);overflow:hidden}.chip-total{font-size:17px;font-weight:var(--fw-number);font-variant-numeric:tabular-nums}.chip.is-current{box-shadow:inset 0 2px 0 #ffffff4d, 0 0 0 3px var(--sky), 0 0 0 6px var(--ink), 0 8px 0 var(--seat-edge);transform:translateY(-4px)}.chip.is-shown:not(.is-current){outline:3px dashed var(--ink);outline-offset:3px}.card{grid-template-columns:repeat(4,1fr);align-self:center;gap:9px;width:min(100%,100dvh - 440px);min-width:248px;padding-bottom:5px;display:grid;container-type:inline-size}.card[data-accent]{box-shadow:0 0 0 5px var(--sky), 0 0 0 9px var(--seat);border-radius:22px}.tile{aspect-ratio:1;min-width:var(--tap);min-height:var(--tap);border-radius:var(--r-tile);text-align:center;color:var(--ink);background:var(--white);box-shadow:var(--shadow-raised);transition:transform var(--t-instant) ease-out, box-shadow var(--t-instant) ease-out;border:0;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:4px 3px;line-height:1.1;display:flex;position:relative}.tile-name{font-size:min(var(--fs-name), 3.5cqi);font-weight:var(--fw-name)}.tile-sub,.tile-rule{font-size:min(var(--fs-rule), 2.65cqi);color:var(--ink-muted);font-weight:500}.tile-sub[hidden],.tile-rule[hidden]{display:none}.tile-value{min-height:1em;font-size:max(19px, min(var(--fs-score), 6.4cqi));font-weight:var(--fw-number);font-variant-numeric:tabular-nums;line-height:1}.tile--upper .face{width:38%;height:38%;color:var(--deep);border:2px solid;border-radius:24%;flex:none;padding:8%}.tile[data-status=preview] .tile-value{color:var(--azure)}.tile:not(:disabled):active{box-shadow:var(--shadow-pressed);transform:translateY(4px)}.tile.is-selected{box-shadow:0 0 0 3px var(--white), 0 0 0 6px var(--seat,var(--azure)), 0 9px 0 var(--edge), 0 14px 18px -8px #0b4fb359;transform:translateY(-4px)}.tile[data-status=filled]{color:var(--on-fill);background:var(--fill);box-shadow:inset 0 2px 0 #ffffff59, 0 5px 0 var(--fill-edge), 0 10px 16px -6px #0b4fb340}.tile[data-status=filled] .tile-rule,.tile[data-status=filled] .tile-sub,.tile[data-status=filled] .face{color:inherit}.tile[data-status=filled]:after{content:"";opacity:.7;background:var(--star) center / contain no-repeat;width:12%;height:12%;position:absolute;bottom:7%;right:7%}.tile.is-just-scored{box-shadow:0 0 0 3px var(--sky), 0 0 0 6px var(--ink), 0 5px 0 var(--fill-edge,var(--edge))}.tile--total{color:var(--white);background:var(--ink);box-shadow:inset 0 2px 0 #ffffff29, 0 5px 0 var(--edge-ink), 0 10px 16px -6px #0b4fb359}.tile--total .tile-name{letter-spacing:.06em;text-transform:uppercase;font-size:min(10px,2.8cqi)}.tile--total .tile-rule{color:var(--sun)}.face{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;display:grid}.pip{visibility:hidden;background:currentColor;border-radius:50%;place-self:center;width:80%;height:80%}.face[data-face="1"] .pip:nth-child(5),.face[data-face="2"] .pip:is(:nth-child(3),:nth-child(7)),.face[data-face="3"] .pip:is(:nth-child(3),:nth-child(5),:nth-child(7)),.face[data-face="4"] .pip:is(:first-child,:nth-child(3),:nth-child(7),:nth-child(9)),.face[data-face="5"] .pip:is(:first-child,:nth-child(3),:nth-child(5),:nth-child(7),:nth-child(9)),.face[data-face="6"] .pip:is(:first-child,:nth-child(3),:nth-child(4),:nth-child(6),:nth-child(7),:nth-child(9)){visibility:visible}.confirm-row{flex-direction:column;justify-content:flex-end;gap:5px;min-height:74px;display:flex}.breakdown{text-align:center;min-height:20px;font-size:1.05rem;font-weight:var(--fw-number);font-variant-numeric:tabular-nums;color:var(--deep);margin:0}.breakdown[hidden],.confirm-row .confirm.is-hidden{display:none}.status{text-align:center;min-height:48px;font-weight:var(--fw-name);color:var(--ink);flex:1;justify-content:center;align-items:center;margin:0;display:flex}.status[hidden]{display:none}.roll,.confirm,.play-btn,.newgame{border-radius:var(--r-button);min-height:52px;font-size:var(--fs-button);font-weight:var(--fw-number);transition:transform var(--t-calm) var(--spring), box-shadow var(--t-instant) ease-out;border:0;padding:0 20px}.roll:not(:disabled):active,.confirm:not(:disabled):active,.play-btn:not(:disabled):active,.newgame:active{transition-duration:var(--t-instant), var(--t-instant);transition-timing-function:ease-out;transform:translateY(3px)scale(1.04,.92)}.roll,.play-btn,.newgame{color:var(--white);background:var(--azure);box-shadow:inset 0 2px 0 #ffffff4d, 0 6px 0 var(--deep), 0 12px 18px -8px #2d7ff999}.roll{min-height:56px}.roll.roll--skip{background:var(--ink);box-shadow:inset 0 2px 0 #ffffff29, 0 6px 0 var(--edge-ink)}.roll.is-breathing{animation:2.4s ease-in-out infinite breathe}@keyframes breathe{0%,to{scale:1}50%{scale:1.035}}.confirm{min-height:48px;color:var(--ink);background:var(--mint);box-shadow:inset 0 2px 0 #ffffff73, 0 5px 0 var(--edge-mint), 0 10px 16px -8px #2f9a7b99}.roll:disabled,.confirm:disabled,.play-btn:disabled{opacity:.45}.newgame--secondary,.mode-btn,.rules-link,.rules-reset,.help-link{border-radius:var(--r-button);min-height:48px;font-size:1rem;font-weight:var(--fw-name);color:var(--deep);background:var(--white);box-shadow:inset 0 0 0 2.5px var(--deep), 0 4px 0 var(--edge);transition:transform var(--t-calm) var(--spring);border:0;padding:0 16px}.newgame--secondary:active,.mode-btn:active,.rules-link:active,.rules-reset:active,.help-link:active{transition-duration:var(--t-instant);transform:translateY(3px)scale(1.03,.94)}.seed{text-align:center;color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:12px}.dice{background:var(--tray);box-shadow:var(--shadow-tray);border-radius:24px;grid-template-columns:repeat(5,1fr);gap:8px;padding:16px 10px 12px;display:grid}.die{--s:clamp(34px, calc((min(100vw, 430px) - 32px - 20px - 32px) / 5 - 10px), 52px);aspect-ratio:1;min-width:var(--tap);min-height:var(--tap);transition:opacity var(--t-quick) ease-out;background:0 0;border:0;border-radius:16px;place-items:center;padding:0;display:grid;position:relative}.die-shadow,.die-hold{width:var(--s);height:var(--s);border-radius:22%;grid-area:1/1;display:block}.die-shadow{background:var(--edge);transform:translateY(4px);box-shadow:0 6px 10px -4px #0b4fb366}.die-hold{transition:transform var(--t-quick) var(--spring)}.die-toss{perspective:420px;width:100%;height:100%;display:block}.cube{width:100%;height:100%;transform-style:preserve-3d;display:block;position:relative}.cube-face{color:var(--deep);backface-visibility:hidden;background:radial-gradient(circle at 30% 22%,#fff,#fff0 60%),linear-gradient(#fff,#f1f6ff);border-radius:22%;padding:15%;position:absolute;inset:0;box-shadow:inset 0 0 0 1.5px #0b4fb31f,inset 0 -3px #0b4fb314}.cube-face .pip{box-shadow:inset 0 1.5px 1px #0000004d}.core{background:#e6efff;border-radius:14%;position:absolute;inset:4%}.core--x{transform:rotateX(90deg)}.core--y{transform:rotateY(90deg)}.die.is-empty .cube{visibility:hidden}.die.is-empty .die-shadow{box-shadow:none;background:0 0;border:2px dashed #0b4fb34d;transform:none}.die.is-held .die-hold{transform:translateY(-9px)}.die.is-held .cube-face{box-shadow:inset 0 0 0 1.5px #0b4fb31f, 0 0 0 3px var(--tray), 0 0 0 6px var(--seat,var(--azure))}.die.is-counting .cube-face{box-shadow:inset 0 0 0 1.5px #0b4fb31f, 0 0 0 3px var(--seat,var(--azure)), 0 0 14px 3px var(--seat,var(--azure))}.die.is-held.is-counting .cube-face{box-shadow:inset 0 0 0 1.5px #0b4fb31f, 0 0 0 3px var(--tray), 0 0 0 6px var(--seat,var(--azure)), 0 0 16px 4px var(--seat,var(--azure))}.die.is-dim{opacity:.42}.gameover{z-index:15;background:var(--scrim);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gameover[hidden]{display:none}.gameover-panel{border-radius:var(--r-panel);text-align:center;background:var(--white);width:min(100%,360px);box-shadow:var(--shadow-panel);flex-direction:column;gap:12px;padding:22px 18px 18px;display:flex}.gameover-title{font-size:1.6rem;font-weight:var(--fw-display);color:var(--deep);margin:0}.results{flex-direction:column;gap:8px;margin:0 0 4px;padding:0;list-style:none;display:flex}.result{border-radius:var(--r-chip);text-align:left;min-height:48px;color:var(--on-seat);background:var(--seat-fill);box-shadow:0 4px 0 var(--seat-edge);grid-template-columns:2em 1fr auto;align-items:center;padding:6px 14px;display:grid}.result[hidden]{display:none}.result.is-highlight{box-shadow:0 0 0 3px var(--white), 0 0 0 6px var(--ink), 0 7px 0 var(--seat-edge)}.result-place,.result-name{font-weight:var(--fw-name)}.result-total{font-size:1.4rem;font-weight:var(--fw-display);font-variant-numeric:tabular-nums}.setup{gap:14px;padding-bottom:24px}.setup-title{font-size:2.2rem;font-weight:var(--fw-display);color:var(--deep);margin:8px 0 4px}.setup-quick,.setup-multi{flex-direction:column;gap:10px;display:flex}.setup-quick[hidden],.setup-multi[hidden]{display:none}.setup-group,.setup-bot{background:var(--white);min-height:60px;box-shadow:var(--shadow-raised);border-radius:18px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex}.setup-bot[hidden]{display:none}.setup-label,.setup-bot-name{font-size:1.05rem;font-weight:var(--fw-name)}.seg{background:var(--tray);border-radius:14px;gap:3px;padding:3px;display:inline-flex}.seg-btn{min-width:52px;min-height:var(--tap);color:var(--deep);background:0 0;border:0;border-radius:11px;padding:0 12px;font-weight:500}.seg-btn[aria-pressed=true]{font-weight:var(--fw-number);color:var(--white);background:var(--deep);box-shadow:0 2px 0 var(--edge-deep)}.play-btn{min-height:56px;margin-top:6px}.seat{background:var(--white);box-shadow:var(--shadow-raised);border-radius:18px;grid-template-columns:12px 1fr auto;grid-template-areas:"sw kind rm""sw name lvl""sw err err";align-items:center;gap:8px 10px;padding:10px 8px 12px 10px;display:grid}.seat[hidden]{display:none}.seat-swatch{background:var(--seat);border-radius:6px;grid-area:sw;align-self:stretch}.seat-kind{grid-area:kind;justify-self:start}.seat-remove{min-width:var(--tap);min-height:var(--tap);color:var(--ink);background:0 0;border:0;border-radius:50%;grid-area:rm;font-size:1.5rem;line-height:1}.seat-remove:disabled{opacity:.25}.seat-name{min-width:0;min-height:var(--tap);font:inherit;font-size:16px;font-weight:var(--fw-name);color:var(--ink);background:var(--sky);box-shadow:inset 0 0 0 2px var(--edge);border:0;border-radius:12px;grid-area:2/2/auto/4;padding:0 12px}.seat-name::placeholder{color:var(--ink-muted);opacity:1;font-weight:500}.seat-name[aria-invalid=true]{box-shadow:inset 0 0 0 3px var(--bougainvillea-deep)}.seat-name[hidden],.seat-bot-name[hidden],.seat-level[hidden]{display:none}.seat-bot-name{font-size:1.05rem;font-weight:var(--fw-name);grid-area:name}.seat-level{grid-area:lvl}.seat-error,.setup-error{font-weight:var(--fw-name);color:var(--bougainvillea-deep);margin:0}.seat-error{grid-area:err}.setup-error{background:var(--white);box-shadow:inset 0 0 0 2px var(--bougainvillea-deep);border-radius:14px;padding:10px 14px}.seat-error:before,.setup-error:before{content:"! "}.seat-error[hidden],.setup-error[hidden]{display:none}.add-seat{min-height:var(--tap);border:2px dashed var(--deep);font-weight:var(--fw-name);color:var(--deep);background:var(--white);border-radius:18px}.add-seat:disabled{display:none}.handoff{z-index:35;width:100%;color:var(--on-seat);background-color:var(--seat-fill);background-image:var(--stars-white);background-size:64px 64px;border:0;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0}.handoff[hidden]{display:none}.handoff-name{overflow-wrap:anywhere;max-width:100%;font-size:clamp(2.6rem,14vw,4.6rem);font-weight:var(--fw-display);text-align:center;line-height:1.05}.handoff-prompt{font-size:1.15rem;font-weight:var(--fw-number);color:var(--ink);background:var(--white);border-radius:999px;padding:12px 24px;box-shadow:0 5px #0d2b5240}.tip{z-index:24;text-align:left;max-width:min(300px,100vw - 24px);color:var(--white);background:var(--ink);box-shadow:0 6px 0 var(--edge-ink), 0 12px 20px -8px #0b4fb366;border:0;border-radius:16px;flex-direction:column;gap:4px;padding:12px 14px 10px;line-height:1.3;display:flex;position:fixed}.tip[hidden]{display:none}.tip-text{font-size:.98rem;font-weight:500}.tip-hint{color:var(--sun);font-size:.78rem;font-weight:500}.tip-arrow{background:var(--ink);width:14px;height:14px;margin-left:-7px;position:absolute;transform:rotate(45deg)}.tip[data-side=above] .tip-arrow{bottom:-6px}.tip[data-side=below] .tip-arrow{top:-6px}.help-scrim{z-index:26;background:var(--scrim);position:fixed;inset:0}.help-scrim[hidden]{display:none}.app[data-help=on] .card,.app[data-help=on] .topbar,.app[data-help=panel] .topbar{z-index:27;position:relative}.app[data-help=on] .tile{cursor:help;outline:2px dashed var(--azure);outline-offset:-6px}.help-panel{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));z-index:28;border-radius:var(--r-panel);background:var(--white);max-width:406px;max-height:70dvh;box-shadow:var(--shadow-panel);flex-direction:column;gap:8px;margin:0 auto;padding:18px 18px 14px;display:flex;position:fixed;overflow:auto}.help-panel[hidden]{display:none}.help-title{font-size:1.4rem;font-weight:var(--fw-display);color:var(--deep);margin:0}.help-rule,.help-scoring,.help-yours{margin:0;line-height:1.35}.help-scoring{font-weight:var(--fw-name)}.help-yours{font-weight:var(--fw-number);color:var(--deep);background:var(--sky);box-shadow:inset 0 0 0 2px var(--azure);border-radius:12px;padding:8px 12px}.help-yours[hidden],.help-example[hidden]{display:none}.help-example{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.help-example-label{width:100%;color:var(--ink-muted);font-size:.85rem}.help-example-points{font-weight:var(--fw-number)}.help-actions{gap:8px;margin-top:4px;display:flex}.help-close{border-radius:var(--r-button);min-height:48px;font-weight:var(--fw-number);color:var(--white);background:var(--deep);box-shadow:0 4px 0 var(--edge-deep);border:0;margin-left:auto;padding:0 18px}.mini-dice{gap:4px;display:flex}.mini-face{width:28px;height:28px;color:var(--deep);background:var(--white);box-shadow:inset 0 0 0 1.5px var(--edge), 0 2px 0 var(--edge);border-radius:8px;padding:4px}.rules{gap:10px;padding-bottom:24px}.rules-back{min-height:var(--tap);font-weight:var(--fw-name);color:var(--deep);background:0 0;border:0;align-self:flex-start;padding:0}.rules-title{font-size:2.2rem;font-weight:var(--fw-display);color:var(--deep);margin:0 0 4px}.rules-title:focus{outline:none}.rules-section{background:var(--white);border-radius:18px;padding:14px 16px 10px;box-shadow:0 0 0 2px #2d7ff91a}.rules-section h2{font-size:1.2rem;font-weight:var(--fw-number);margin:0 0 6px}.rules-section p{margin:0 0 6px;line-height:1.4}.rules-example{align-items:center;gap:10px;margin:8px 0;display:flex}.rules-example-caption{font-weight:var(--fw-name)}.rules-reset{align-self:flex-start;margin-top:8px}.rules-reset-done{font-weight:var(--fw-name);margin:0}.rules-reset-done[hidden]{display:none}.fx-layer{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.zp{display:block;position:fixed}.zp--square{border-radius:3px}.zp--star{clip-path:polygon(50% 0%,64.2% 15.8%,85.4% 14.6%,84.2% 35.8%,100% 50%,84.2% 64.2%,85.4% 85.4%,64.2% 84.2%,50% 100%,35.8% 84.2%,14.6% 85.4%,15.8% 64.2%,0% 50%,15.8% 35.8%,14.6% 14.6%,35.8% 15.8%)}.zhar{z-index:20;background:#f2f8ffd1;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.zhar[hidden]{display:none}.zhar-flash{background:var(--sun);opacity:0;position:absolute;inset:0}.zhar-text{text-align:center;background:var(--white);max-width:calc(100vw - 40px);box-shadow:0 0 0 4px var(--sun), 0 0 0 9px var(--bougainvillea), 0 18px 40px -10px #0b4fb373;border-radius:28px;padding:22px 18px 20px;position:relative}.zhar-call{font-size:clamp(1.9rem,8.4vw,3.4rem);font-weight:var(--fw-display);white-space:nowrap;color:var(--deep);margin:0;line-height:1}.zhar-sub{font-weight:var(--fw-name);color:var(--bougainvillea-deep);margin:10px 0 0}.zhar-toast{z-index:25;text-align:center;white-space:nowrap;pointer-events:none;background:var(--white);box-shadow:0 0 0 3px var(--sun), 0 0 0 6px var(--bougainvillea), 0 10px 20px -8px #0b4fb366;border-radius:20px;padding:10px 18px;position:fixed;left:50%;translate:-50%}.zhar-toast[hidden]{display:none}.zhar-toast-call{font-size:1.6rem;font-weight:var(--fw-display);color:var(--deep);margin:0}.zhar-toast-sub{color:var(--bougainvillea-deep);margin:2px 0 0;font-size:.9rem;font-weight:500}.debug-toggle{z-index:40;min-height:32px;font-size:12px;font-weight:var(--fw-name);color:var(--deep);background:var(--white);box-shadow:inset 0 0 0 1.5px var(--deep);border:0;border-radius:10px;padding:0 10px;position:fixed;bottom:8px;left:8px}.debug-panel{z-index:39;max-height:70dvh;color:var(--ink);background:var(--white);box-shadow:0 -2px 0 var(--deep);padding:12px 16px 52px;font-size:14px;position:fixed;bottom:0;left:0;right:0;overflow:auto}.debug-panel[hidden]{display:none}.debug-row{grid-template-columns:8.5em 1fr 4.5em;align-items:center;gap:8px;min-height:44px;display:grid}.debug-row input{width:100%;min-height:32px;accent-color:var(--azure)}.debug-row output{text-align:right;font-variant-numeric:tabular-nums}.debug-buttons{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.debug-buttons button{min-height:44px;color:var(--deep);background:var(--sky);box-shadow:inset 0 0 0 1.5px var(--deep);border:0;border-radius:12px;padding:0 12px}.debug-buttons button[aria-pressed=true]{color:var(--ink);background:var(--sun)}.debug-values{width:100%;color:var(--ink);font:12px/1.4 ui-monospace,Consolas,monospace}.install-btn{border-radius:var(--r-button);min-height:48px;font-size:1rem;font-weight:var(--fw-number);color:var(--ink);background:var(--sun);box-shadow:inset 0 2px 0 #ffffff73, 0 4px 0 var(--edge-sun);border:0;padding:0 16px}.install-btn[hidden]{display:none}.ios-tip{background:var(--white);box-shadow:var(--shadow-raised);border-radius:18px;grid-template-columns:auto 1fr;grid-template-areas:"icon text""ok ok";align-items:center;gap:8px 12px;padding:14px 14px 12px;display:grid}.ios-tip[hidden]{display:none}.share-icon{width:28px;height:28px;color:var(--deep);grid-area:icon}.ios-tip-text{grid-area:text;margin:0;line-height:1.35}.ios-tip-ok{min-width:88px;min-height:var(--tap);font-weight:var(--fw-number);color:var(--white);background:var(--deep);box-shadow:0 3px 0 var(--edge-deep);border:0;border-radius:14px;grid-area:ok;justify-self:end}.update-banner{width:100%;color:var(--white);background:var(--ink);box-shadow:0 6px 0 var(--edge-ink), 0 12px 20px -8px #0b4fb366;border-radius:18px;order:-1;justify-content:space-between;align-items:center;gap:10px;padding:6px 6px 6px 16px;display:flex}.update-banner[hidden]{display:none}.update-text{font-weight:var(--fw-name)}.update-btn{min-height:var(--tap);font-weight:var(--fw-number);color:var(--ink);background:var(--sun);border:0;border-radius:14px;padding:0 16px}.play-btn.resume-btn{color:var(--ink);background:var(--sun);box-shadow:inset 0 2px 0 #ffffff73, 0 6px 0 var(--edge-sun), 0 12px 18px -8px #ffc93c99;margin-top:0}.resume-btn[hidden],.online-btn[hidden],.online [hidden]{display:none}.online{gap:14px;padding-bottom:24px}.online-choose,.online-form,.lobby{flex-direction:column;gap:12px;display:flex}.play-btn.play-btn--alt{color:var(--ink);background:var(--mint);box-shadow:inset 0 2px 0 #ffffff73, 0 6px 0 var(--edge-mint), 0 12px 18px -8px #2f9a7b99}.online-field{background:var(--white);box-shadow:var(--shadow-raised);border-radius:18px;flex-direction:column;gap:6px;padding:10px 12px 12px 14px;display:flex}.online-label{font-size:1.05rem;font-weight:var(--fw-name)}.online-input{min-width:0;min-height:var(--tap);font:inherit;font-size:16px;font-weight:var(--fw-name);color:var(--ink);background:var(--sky);box-shadow:inset 0 0 0 2px var(--edge);border:0;border-radius:12px;padding:0 12px}.online-input:focus-visible{box-shadow:inset 0 0 0 3px var(--azure);outline:none}.online-code{font-size:1.6rem;font-weight:var(--fw-display);letter-spacing:.3em;text-transform:uppercase}.lobby{text-align:center;align-items:stretch}.lobby-code-label{font-weight:var(--fw-name);color:var(--ink-muted);margin:8px 0 0}.room-code{font-size:clamp(3.4rem,22vw,5.5rem);line-height:1.05;font-weight:var(--fw-display);letter-spacing:.12em;color:var(--deep);font-variant-numeric:tabular-nums;margin:0}.lobby-share{justify-content:center;align-items:center;gap:12px;display:flex}.lobby-copied{font-weight:var(--fw-number);color:var(--deep)}.lobby-players-label{text-align:left;margin:8px 0 0;font-size:1.05rem}.lobby-players{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lobby-player{text-align:left;background:var(--white);min-height:52px;box-shadow:var(--shadow-raised);border-radius:16px;align-items:center;gap:12px;padding:8px 14px 8px 8px;display:flex}.lobby-player .seat-swatch{align-self:stretch;width:12px}.lobby-player-name{font-size:1.1rem;font-weight:var(--fw-number)}.lobby-player-tags{color:var(--ink-muted)}.lobby-player.is-me{box-shadow:inset 0 0 0 2.5px var(--seat), var(--shadow-raised)}.lobby-note{font-weight:var(--fw-name);color:var(--ink-muted);margin:0}.notice[hidden]{display:none}@media (prefers-reduced-motion:reduce){.roll.is-breathing{animation:none}.roll:not(:disabled):active,.confirm:not(:disabled):active,.play-btn:not(:disabled):active,.newgame:active,.newgame--secondary:active,.mode-btn:active,.rules-link:active,.rules-reset:active,.help-link:active{transform:translateY(3px)}.tile,.die,.die-hold,.chip,.roll,.confirm,.play-btn,.newgame{transition:none}}
