:root{--die-radius-ratio:.11;--die-size:clamp(180px, min(64vw, 60vh), 420px);--die-radius:calc(var(--die-size) * var(--die-radius-ratio));--pip:#fff;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--top-row:60px;--top-clear:calc(var(--top-row) + 8px + 1rem + 8px)}:root,html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1220;--bg-elevated:#1a1f33;--surface:#20263c;--border:#ffffff1f;--text:#f3f5fb;--muted:#9aa3bd;--accent:#7c5cf6;--accent-contrast:#fff;--accent-strong:#7352ee;--accent-bridge:#9580f8;--accent-bridge-ink:var(--bg);--shadow-die:0 18px 40px #00000073, 0 4px 10px #00000059;--shadow-ui:0 10px 30px #0006}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5fb;--bg-elevated:#fff;--surface:#fff;--border:#14172824;--text:#181b27;--muted:#5b6276;--accent:#6a44e8;--accent-contrast:#fff;--accent-strong:var(--accent);--accent-bridge:var(--accent);--accent-bridge-ink:var(--accent-contrast);--shadow-die:0 16px 34px #14172829, 0 3px 8px #1417281a;--shadow-ui:0 10px 28px #14172824}html[data-palette=feutrine][data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1a14;--bg-elevated:#16261e;--surface:#1d3026;--border:#ffffff1f;--text:#eef7f1;--muted:#93ac9e;--accent:#2ea877;--accent-contrast:#fff;--accent-strong:#0c7d53;--accent-bridge:var(--accent);--accent-bridge-ink:var(--bg);--shadow-die:0 18px 40px #00000073, 0 4px 10px #00000059;--shadow-ui:0 10px 30px #0006}html[data-palette=feutrine][data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f1f7f3;--bg-elevated:#fff;--surface:#fff;--border:#10261c24;--text:#14241c;--muted:#4f6659;--accent:#07744d;--accent-contrast:#fff;--accent-strong:var(--accent);--accent-bridge:var(--accent);--accent-bridge-ink:var(--accent-contrast);--shadow-die:0 16px 34px #10261c29, 0 3px 8px #10261c1a;--shadow-ui:0 10px 28px #10261c24}html[data-palette=braise][data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a110d;--bg-elevated:#261a16;--surface:#2f211c;--border:#ffffff1f;--text:#f9f0ea;--muted:#b69a8c;--accent:#f0803a;--accent-contrast:#fff;--accent-strong:#b34505;--accent-bridge:var(--accent);--accent-bridge-ink:var(--bg);--shadow-die:0 18px 40px #00000073, 0 4px 10px #00000059;--shadow-ui:0 10px 30px #0006}html[data-palette=braise][data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fdf5f0;--bg-elevated:#fff;--surface:#fff;--border:#28181024;--text:#241710;--muted:#6b5245;--accent:#ab460b;--accent-contrast:#fff;--accent-strong:var(--accent);--accent-bridge:var(--accent);--accent-bridge-ink:var(--accent-contrast);--shadow-die:0 16px 34px #28181029, 0 3px 8px #2818101a;--shadow-ui:0 10px 28px #28181024}:root{--dwc-surface:var(--bg-elevated);--dwc-surface-2:var(--surface);--dwc-text:var(--text);--dwc-text-soft:var(--muted);--dwc-border:var(--border);--dwc-border-strong:var(--muted);--dwc-primary:var(--accent-bridge);--dwc-primary-contrast:var(--accent-bridge-ink);--dwc-primary-soft:color-mix(in srgb, var(--accent) 14%, var(--surface));--dwc-success:var(--lightningcss-light,#166534)var(--lightningcss-dark,#4ade80);--dwc-warning:var(--lightningcss-light,#854d0e)var(--lightningcss-dark,#fbbf24);--dwc-danger:var(--lightningcss-light,#b91c1c)var(--lightningcss-dark,#f87171);--dwc-info:var(--lightningcss-light,#6d28d9)var(--lightningcss-dark,#c084fc);--dwc-radius:.9375rem;--dwc-shadow:var(--shadow-ui)}@layer components{:where([data-dwc=error-banner-retry],[data-dwc=error-banner-dismiss],[data-dwc=error-boundary-reset],[data-dwc=error-boundary-backup],[data-dwc=share-button],[data-dwc=update-banner-update],[data-dwc=update-button],[data-dwc=update-banner-dismiss],[data-dwc=update-banner-ignore],[data-dwc=offline-ready-dismiss],[data-dwc=consent-accept],[data-dwc=consent-refuse],[data-dwc=consent-section-action],[data-dwc=pwa-install-actions] button,[data-dwc=footer-source],[data-dwc=footer-sponsor],[data-dwc=footer-issues],[data-dwc=family-source],[data-dwc=family-sponsor],[data-dwc=family-app],[data-dwc=family-app-repo]){min-height:2.75rem}:where([data-dwc=error-banner-retry],[data-dwc=error-boundary-reset],[data-dwc=error-boundary-backup],[data-dwc=share-button],[data-dwc=update-banner-update],[data-dwc=update-button],[data-dwc=update-banner-dismiss],[data-dwc=update-banner-ignore],[data-dwc=offline-ready-dismiss],[data-dwc=consent-accept],[data-dwc=consent-refuse],[data-dwc=consent-section-action],[data-dwc=pwa-install-actions] button){font:inherit;border:1px solid var(--dwc-border,color-mix(in srgb, CanvasText 18%, Canvas));border-radius:calc(var(--dwc-radius,.75rem) * .7);background:var(--dwc-surface,Canvas);color:var(--dwc-text,CanvasText);cursor:pointer;justify-content:center;align-items:center;padding:.4rem .85rem;font-size:.875em;display:inline-flex}@keyframes dwc-spin{to{transform:rotate(360deg)}}@keyframes dwc-pulse{50%{opacity:.45}}@keyframes dwc-rise{0%{opacity:0;transform:translateY(1rem)}}@media (prefers-reduced-motion:reduce){[data-dwc=button-spinner],[data-dwc=bottom-nav-icon],[data-dwc=skeleton],[data-dwc=sheet-panel],[data-dwc=confirm-panel],[data-dwc=toast],[data-dwc=update-banner],[data-dwc=offline-ready],[data-dwc=consent-banner]{animation-duration:.001ms;animation-iteration-count:1}[data-dwc=family-app]{transition-duration:.001ms}}@media (forced-colors:active){[data-dwc=button],[data-dwc=badge],[data-dwc=theme-toggle]{border-color:currentColor}@media (hover:hover){[data-dwc=button]:hover:not(:disabled):not([aria-disabled=true]),[data-dwc=update-banner-update]:hover:not([aria-busy=true]){color:highlighttext;background:highlight}}[data-dwc=button]:disabled,[data-dwc=button][aria-disabled=true],[data-dwc=update-banner-update][aria-busy=true]{opacity:1;color:graytext;border-color:graytext}[data-dwc=sheet-panel]{outline-offset:-1px;outline:1px solid canvastext}[data-dwc=skeleton]{outline-offset:-1px;outline:1px solid graytext}[data-dwc=sync-status]:before{background:canvastext}[data-dwc=confirm-panel],[data-dwc=toast],[data-dwc=bottom-nav-drawer],[data-dwc=update-banner],[data-dwc=offline-ready]{outline-offset:-1px;outline:1px solid canvastext}[data-dwc=bottom-nav-item][data-current],[data-dwc=bottom-nav-more][data-current]{border-block-start-color:highlight}[data-dwc=bars-bar],[data-dwc=gauge-fill]{background:canvastext}[data-dwc=gauge]{outline-offset:-1px;outline:1px solid graytext}}@media print{[data-dwc=sheet],[data-dwc=confirm],[data-dwc=toast-viewport],[data-dwc=bottom-nav],[data-dwc=pwa-install-prompt],[data-dwc=update-banner],[data-dwc=offline-ready],[data-dwc=update-button-group]{display:none}[data-dwc=button][data-variant=primary],[data-dwc=button][data-variant=danger],[data-dwc=confirm-confirm],[data-dwc=update-banner-update],[data-dwc=bottom-nav-badge],span[data-dwc=family-app-icon]{color:canvastext;border-color:canvastext}[data-dwc=skeleton]{opacity:1;animation:none}[data-dwc=stat],[data-dwc=sheet-panel],[data-dwc=pwa-install-prompt]{box-shadow:none}}[data-dwc][hidden]{display:none}[data-dwc=app-footer],[data-dwc=family-links]{gap:var(--spacing-fluid-md,1rem);font-size:var(--text-fluid-sm,.9rem);flex-wrap:wrap;display:flex}[data-dwc=footer-source],[data-dwc=footer-sponsor],[data-dwc=footer-issues],[data-dwc=family-source],[data-dwc=family-sponsor]{color:var(--dwc-text-soft,GrayText);align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}[data-dwc=footer-source]:hover,[data-dwc=footer-sponsor]:hover,[data-dwc=footer-issues]:hover,[data-dwc=family-source]:hover,[data-dwc=family-sponsor]:hover{color:var(--dwc-primary,CanvasText);text-decoration:underline}@media (width<=30rem){[data-dwc=app-footer]{gap:.5rem;font-size:.75rem}[data-dwc=app-footer]>[data-dwc=footer-source],[data-dwc=app-footer]>[data-dwc=footer-sponsor],[data-dwc=app-footer]>[data-dwc=footer-issues]{gap:.25rem}[data-dwc=app-footer]>[data-dwc=footer-issues]:last-child{flex:1;max-width:max-content}}[data-dwc=share-button-group]{align-items:center;gap:.5rem;display:inline-flex}[data-dwc=share-button-status]:not(:empty){color:var(--dwc-text-soft,GrayText);font-size:var(--text-fluid-sm,.9rem)}[data-dwc=app-version]{color:var(--dwc-text-soft,GrayText);font-size:var(--text-fluid-sm,.9rem);flex-wrap:wrap;align-items:baseline;gap:.4rem;margin:0;display:flex}[data-dwc=app-version-value]{font-variant-numeric:tabular-nums}a[data-dwc=app-version-value]{color:inherit;text-decoration:none}a[data-dwc=app-version-value]:hover{color:var(--dwc-primary,CanvasText);text-decoration:underline}[data-dwc=app-version-updated],[data-dwc=app-version-available]{border-radius:var(--dwc-radius,.75rem);background:var(--dwc-primary-soft,color-mix(in srgb, CanvasText 6%, Canvas));color:var(--dwc-text,CanvasText);padding:.1rem .45rem;font-size:.85em}[data-dwc=family-apps-title]{margin:var(--spacing-fluid-sm,.75rem) 0;font-size:var(--text-fluid-lg,1.125rem)}[data-dwc=family-app-list]{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}[data-dwc=family-apps][data-layout=list] [data-dwc=family-app-list]{grid-template-columns:1fr}[data-dwc=family-app-groups]{flex-direction:column;gap:.4rem;display:flex}[data-dwc=family-app-group]{border:1px solid var(--dwc-border,color-mix(in srgb, CanvasText 18%, Canvas));border-radius:calc(var(--dwc-radius,.75rem) * .8)}[data-dwc=family-app-group] [data-dwc=family-app-list]{padding:0 .5rem .5rem}[data-dwc=family-app-group-summary]{cursor:pointer;align-items:center;gap:.5rem;padding:.6rem .75rem;font-weight:500;list-style:none;display:flex}[data-dwc=family-app-group-summary]::-webkit-details-marker{display:none}[data-dwc=family-app-group-summary]:after{content:"";opacity:.55;border-bottom:2px solid;border-right:2px solid;width:.45rem;height:.45rem;margin-inline-start:auto;transform:rotate(45deg)translate(-.1rem,-.1rem)}[data-dwc=family-app-group][open]>[data-dwc=family-app-group-summary]:after{transform:rotate(-135deg)translate(-.16rem,-.16rem)}[data-dwc=family-app-group-count]{background:var(--dwc-surface-2,color-mix(in srgb, CanvasText 4%, Canvas));color:var(--dwc-text-soft,GrayText);border-radius:999px;padding:.05rem .45rem;font-size:.8em;font-weight:400}[data-dwc=family-app]{border:1px solid var(--dwc-border,color-mix(in srgb, CanvasText 18%, Canvas));border-radius:calc(var(--dwc-radius,.75rem) * .8);background:var(--dwc-surface-2,color-mix(in srgb, CanvasText 4%, Canvas));color:inherit;align-items:center;gap:.65rem;padding:.6rem .75rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}[data-dwc=family-app]:hover{border-color:var(--dwc-primary,CanvasText);transform:translateY(-1px)}[data-dwc=family-app-item][data-with-repo]{border:1px solid var(--dwc-border,color-mix(in srgb, CanvasText 18%, Canvas));border-radius:calc(var(--dwc-radius,.75rem) * .8);background:var(--dwc-surface-2,color-mix(in srgb, CanvasText 4%, Canvas));align-items:center;gap:.15rem;padding-inline-end:.35rem;display:flex}[data-dwc=family-app-item][data-with-repo]:hover{border-color:var(--dwc-primary,CanvasText)}[data-dwc=family-app-item][data-with-repo]>[data-dwc=family-app]{background:0 0;border-color:#0000;flex:auto;min-width:0}[data-dwc=family-app-repo]{border-radius:calc(var(--dwc-radius,.75rem) * .6);min-width:2.75rem;color:var(--dwc-text-soft,GrayText);flex:none;justify-content:center;align-items:center;display:inline-flex}[data-dwc=family-app-repo]:hover{color:var(--dwc-primary,CanvasText);background:var(--dwc-primary-soft,color-mix(in srgb, CanvasText 6%, Canvas))}[data-dwc=family-app-icon]{border-radius:.7rem;flex:none;width:2.5rem;height:2.5rem}span[data-dwc=family-app-icon]{background:var(--dwc-primary,CanvasText);color:var(--dwc-primary-contrast,Canvas);place-items:center;font-weight:700;display:grid}[data-dwc=family-app-body]{flex:auto;gap:.1rem;min-width:0;display:grid}[data-dwc=family-app-head]{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}[data-dwc=family-app-name]{font-weight:600;font-size:var(--text-fluid-sm,.9rem)}[data-dwc=family-app-desc]{font-size:var(--text-fluid-xs,.8rem);color:var(--dwc-text-soft,GrayText);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-dwc=maturity]{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:999px;padding:.1rem .4rem;font-size:.68rem}[data-dwc=maturity][data-maturity=stable]{color:color-mix(in srgb, var(--dwc-success,var(--lightningcss-light,#15803d)var(--lightningcss-dark,#4ade80)) 60%, var(--dwc-text,CanvasText))}[data-dwc=maturity][data-maturity=beta]{color:color-mix(in srgb, var(--dwc-warning,var(--lightningcss-light,#b45309)var(--lightningcss-dark,#fbbf24)) 60%, var(--dwc-text,CanvasText))}[data-dwc=maturity][data-maturity=alpha]{color:var(--dwc-text-soft,GrayText)}[data-dwc=family-app-arrow]{color:var(--dwc-text-soft,GrayText);flex:none;line-height:0}}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{position:fixed;inset:0}.app__brand{top:calc(var(--safe-top) + var(--top-row) + 8px);z-index:1;width:max-content;max-width:min(28rem,100% - 2rem);color:var(--text);letter-spacing:.01em;text-align:center;opacity:.55;pointer-events:none;margin:0 auto;padding:0 .35rem;font-size:.78rem;font-weight:600;line-height:1.25;position:absolute;inset-inline:0}.app__overlay{pointer-events:none;z-index:2;position:absolute;inset:0}.app__overlay>*{pointer-events:auto}.dice-screen{background:radial-gradient(circle at 50% 36%, color-mix(in srgb, var(--screen-tint,var(--accent)) 36%, transparent), transparent 62%), var(--bg);transition:background .48s var(--ease-out);position:absolute;inset:0}.dice-screen__zone{width:100%;height:100%;padding:calc(var(--safe-top) + var(--top-clear)) var(--safe-right) calc(var(--safe-bottom) + 16px) var(--safe-left);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:clamp(28px,7vh,64px);display:flex}.dice-screen__zone:active .dice-stage{transform:scale(.96)}.dice-screen__meta{flex-direction:column;align-items:center;gap:6px;min-height:2.4em;margin:0;display:flex}.dice-screen__total{letter-spacing:.01em;color:var(--text);font-size:clamp(1.4rem,7vw,2rem);font-weight:800}.dice-screen__hint{color:var(--muted);letter-spacing:.01em;text-align:center;font-size:clamp(.95rem,4vw,1.15rem)}.dice-stage{transition:transform .16s var(--ease-out);will-change:transform}.dice-stage[data-status=rolling]{animation:.22s linear infinite dice-tumble}.dice-stage[data-status=result]{animation:dice-pop .44s var(--ease-pop)}.dice-tray{--tile:clamp(140px, min(64vw, 52vh, 100vh - 200px), 380px);--die-radius:calc(var(--tile) * var(--die-radius-ratio));flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(10px,3vw,22px);max-width:92vw;display:flex}.dice-tray[data-count="2"],.dice-tray[data-count="3"],.dice-tray[data-count="4"]{--tile:clamp(110px, 36vw, 200px)}.dice-tray[data-count="5"],.dice-tray[data-count="6"]{--tile:clamp(84px, 27vw, 158px)}.dice-face{width:var(--tile,var(--die-size));height:var(--tile,var(--die-size));border-radius:var(--die-radius);background:radial-gradient(circle at 30% 24%, color-mix(in srgb, var(--face-bg) 92%, white 24%), var(--face-bg) 46%, var(--face-bg-deep) 100%);box-shadow:var(--shadow-die);transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out);place-items:center;padding:clamp(10px,5%,28px);display:grid;position:relative}.dice-face--shaped{box-shadow:none;filter:drop-shadow(0 12px 18px #00000073);border-radius:0}.dice-numeral{font-weight:800;font-size:calc(var(--tile,var(--die-size)) * .46);color:#fff;transform:translateY(var(--nudge-y,0%));text-shadow:0 2px 3px #0006,0 0 1px #00000080;font-variant-numeric:tabular-nums;line-height:1}.dice-face__badge{top:6%;color:#fff;min-width:1.5em;font-size:calc(var(--tile,var(--die-size)) * .2);text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;background:#0000009e;border-radius:999px;padding:0 .25em;font-weight:800;line-height:1.5;position:absolute;inset-inline-start:6%}.dice-face--rolling{filter:saturate(1.05)}.dice-face--shaped.dice-face--rolling{filter:saturate(1.05)drop-shadow(0 12px 18px #00000073)}.dice-face__grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:clamp(4px,2%,12px);width:100%;height:100%;display:grid}.dice-pip{aspect-ratio:1;background:0 0;border-radius:50%;place-self:center;width:62%}.dice-pip--on{background:radial-gradient(circle at 36% 30%,#fff,#e9ecf6 70%);box-shadow:0 1px 2px #00000059,0 0 0 1px #0000001f,inset 0 -2px 3px #0000002e,inset 0 2px 2px #fff9}@keyframes dice-tumble{0%{transform:translateY(0)rotate(-5deg)scale(1)}25%{transform:translateY(-6px)rotate(4deg)scale(1.02)}50%{transform:translateY(0)rotate(6deg)scale(1.03)}75%{transform:translateY(-4px)rotate(-3deg)scale(1.02)}to{transform:translateY(0)rotate(-5deg)scale(1)}}@keyframes dice-pop{0%{transform:scale(1.16)}60%{transform:scale(.97)}to{transform:scale(1)}}.icon-button{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 70%, transparent);width:48px;height:48px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.icon-button:active{transform:scale(.94)}.settings-trigger{top:calc(var(--safe-top) + 12px);right:calc(var(--safe-right) + 12px);position:absolute}.dice-chip{top:calc(var(--safe-top) + 12px);border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 70%, transparent);width:max-content;height:48px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:14px;align-items:center;gap:6px;margin-inline:auto;padding:0 18px;font-size:1rem;font-weight:700;display:inline-flex;position:absolute;inset-inline:0}.dice-chip:active{transform:scale(.96)}.sheet-root{z-index:10;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-root [data-dwc=sheet-backdrop]{background:#00000080;animation:.16s fade-in;position:absolute;inset:0}.sheet-root [data-dwc=sheet-panel]{width:min(560px,100%);max-height:92dvh;padding:12px 20px calc(var(--safe-bottom) + 20px);background:var(--bg-elevated);box-shadow:var(--shadow-ui);animation:sheet-up .24s var(--ease-out);border-radius:22px 22px 0 0;outline:none;flex-direction:column;display:flex;position:relative}.sheet-root [data-dwc=sheet-panel]:before{content:"";background:var(--border);border-radius:99px;flex:none;width:44px;height:5px;margin:4px auto 14px}.sheet-root [data-dwc=sheet-head]{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.sheet-root [data-dwc=sheet-title]{margin:0;font-size:1.1rem}.sheet-root [data-dwc=sheet-close]{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:-8px -8px -8px 0;display:inline-flex}.sheet-root [data-dwc=sheet-body]{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}.sheet-root [data-dwc=sheet-footer]{border-top:1px solid var(--border);flex:none;margin-top:4px;padding-top:14px}[data-dwc=confirm]{z-index:20;padding:calc(var(--safe-top) + 20px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 20px) calc(var(--safe-left) + 20px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}[data-dwc=confirm-backdrop]{background:#00000080;animation:.16s fade-in;position:absolute;inset:0}[data-dwc=confirm-panel]{border:1px solid var(--border);background:var(--bg-elevated);width:min(380px,100%);color:var(--text);border-radius:20px;padding:22px;position:relative}[data-dwc=confirm-title]{margin:0 0 8px;font-size:1.1rem}[data-dwc=confirm-body]{color:var(--muted);font-size:.95rem;line-height:1.45}[data-dwc=confirm-actions]{gap:10px;margin-top:20px;display:flex}[data-dwc=confirm-actions] button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:14px;flex:1;padding:14px;font-size:1rem;font-weight:700}[data-destructive] [data-dwc=confirm-confirm]{border-color:color-mix(in srgb, var(--dwc-danger) 55%, transparent);color:var(--dwc-danger)}[data-dwc=confirm-actions] button[aria-disabled=true]{opacity:.6;cursor:default}.setting-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.setting-row__label{font-weight:600;display:block}.setting-row__hint{color:var(--muted);margin-top:2px;font-size:.85rem;display:block}.setting-row--stack{flex-direction:column;align-items:stretch;gap:10px}.segmented{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.segmented--wide{grid-template-columns:repeat(3,1fr)}.segmented__item{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:11px;padding:10px 0;font-size:.85rem;font-weight:700;transition:background .14s,color .14s}.segmented__item--active{background:var(--accent-strong);color:var(--accent-contrast);border-color:#0000}.segmented__item--die{flex-direction:column;align-items:center;gap:4px;padding:8px 0 10px;display:flex}.die-shape{aspect-ratio:1;fill:currentColor;stroke:currentColor;stroke-width:2.4px;stroke-linejoin:round;stroke-opacity:.85;width:min(34px,80%);overflow:visible}.segmented__item--active .die-shape{animation:die-shape-pose .36s var(--ease-pop)}@keyframes die-shape-pose{0%{transform:scale(.7)rotate(-12deg)}}.stepper{flex:none;align-items:center;gap:4px;display:inline-flex}.stepper__btn{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:11px;font-size:1.3rem;line-height:1}.stepper__btn:disabled{opacity:.4;cursor:not-allowed}.voice-picker{align-items:center;gap:8px;display:flex}.voice-picker__select{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);font:inherit;border-radius:11px;flex:auto;padding:10px 12px;font-size:.9rem}.voice-picker__try{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:11px;flex:none;padding:10px 14px;font-size:.85rem;font-weight:700}.stepper__value{text-align:center;font-variant-numeric:tabular-nums;min-width:1.6em;font-size:1.1rem;font-weight:800}.sheet__close{background:var(--accent-strong);width:100%;color:var(--accent-contrast);cursor:pointer;border:0;border-radius:14px;padding:14px;font-weight:600}.switch{appearance:none;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:99px;flex:none;width:52px;height:30px;transition:background .16s;position:relative}.switch:after{content:"";width:22px;height:22px;transition:transform .16s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(22px)}.switch:disabled{opacity:.55;cursor:not-allowed}[data-dwc=pwa-install-prompt]{box-sizing:border-box;bottom:calc(var(--safe-bottom) + 14px);background:color-mix(in srgb, var(--surface) 86%, transparent);border:1px solid var(--border);width:min(100% - 24px,26rem);box-shadow:var(--shadow-ui);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slide-up .26s var(--ease-out);border-radius:16px;margin-inline:auto;padding:10px 12px;position:absolute;inset-inline:0}[data-dwc=pwa-install-title]{margin:0;font-size:.9rem;font-weight:600}[data-dwc=pwa-install-desc]{color:var(--muted);margin:2px 0 8px;font-size:.8rem}[data-dwc=pwa-install-prompt][data-method=instructions] [data-dwc=pwa-install-desc]{color:var(--text)}[data-dwc=pwa-install-actions]{gap:10px;display:flex}[data-dwc=pwa-install-actions] button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:11px;padding:8px 12px;font-size:.85rem}[data-dwc=pwa-install-prompt][data-method=prompt] [data-dwc=pwa-install-actions] button:first-child{background:var(--accent-strong);color:var(--accent-contrast);border-color:#0000;font-weight:600}.sw-update-banner{box-sizing:border-box;bottom:calc(var(--safe-bottom) + 14px);z-index:20;background:var(--bg-elevated);border:1px solid var(--border);width:min(100% - 28px,26rem);box-shadow:var(--shadow-ui);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-inline:auto;padding:14px 16px;display:flex;position:fixed;inset-inline:0}.sw-update-banner [data-dwc=update-banner-title]{flex:100%;font-weight:600}.sw-update-banner [data-dwc=update-banner-actions]{display:contents}.sw-update-banner button{white-space:nowrap;background:var(--accent-strong);color:var(--accent-contrast);cursor:pointer;border:0;border-radius:11px;flex:1 1 0;padding:8px 14px;font-weight:600}.sw-update-banner [data-dwc=update-banner-dismiss]{color:var(--text);border:1px solid var(--border);background:0 0;font-weight:500}.sw-update-banner button[aria-disabled=true]{opacity:.65;cursor:default}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.about,.settings-group{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.settings-group:first-child{border-top:0;margin-top:0}.about__label,.settings-group__title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-size:.8rem;font-weight:600;display:block}.settings-group__title+.setting-row{border-top:0;padding-top:4px}.about__links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.link-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:11px 12px;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.link-btn:active{transform:scale(.98)}.link-btn--coffee{color:#5b3d00;background:#fbbf24;border-color:#0000}.reprise__lead{color:var(--text);margin:0 0 14px;font-size:.95rem;line-height:1.45}.reprise__qr{background:#fff;border-radius:12px;width:min(230px,62vw);height:auto;margin:0 auto 6px;padding:10px;display:block}.reprise__note{color:var(--muted);margin:10px 0 0;font-size:.82rem;line-height:1.4}.about__feedback{min-height:1.2em;color:var(--accent);text-align:center;margin:8px 0 0;font-size:.85rem;font-weight:600}.about__maintenance{border-top:1px dashed var(--border);margin-top:12px;padding-top:12px}.about__maintenance [data-dwc=update-button]{width:100%}.about__maintenance [data-dwc=update-button-hint]{color:var(--muted);margin:8px 0 0;font-size:.78rem;line-height:1.45}.about__maintenance [data-dwc=update-button][aria-disabled=true]{opacity:.65;cursor:progress}.about__version{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:6px;margin:10px 0 0;font-size:.8rem;display:flex}[data-dwc=app-version-value]{font-variant-numeric:tabular-nums}a[data-dwc=app-version-value]{color:inherit;text-decoration:none}a[data-dwc=app-version-value]:hover{color:var(--accent);text-decoration:underline}[data-dwc=app-version-updated],[data-dwc=app-version-available]{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--text);border-radius:999px;padding:2px 8px;font-size:.85em;font-weight:600}.family-apps [data-dwc=family-apps]{display:contents}.family-apps [data-dwc=family-app-icon]{background:color-mix(in srgb, var(--accent) 14%, var(--surface));width:40px;height:40px;color:var(--accent);object-fit:cover;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:flex}.family-apps [data-dwc=family-app-desc]{color:var(--muted);font-size:.8rem;line-height:1.4}.stats__total{margin:0 0 8px;font-weight:700}.stats__bars{flex-direction:column;gap:5px;display:flex}.stats__row{align-items:center;gap:8px;display:flex}.stats__face{text-align:right;font-variant-numeric:tabular-nums;width:1.5em;color:var(--muted);font-size:.85rem}.stats__bar{background:var(--surface);border:1px solid var(--border);border-radius:99px;flex:1;height:9px;overflow:hidden}.stats__bar>span{background:var(--accent);height:100%;transition:width .24s var(--ease-out);border-radius:99px;display:block}.stats__count{text-align:right;font-variant-numeric:tabular-nums;min-width:2.4em;font-size:.85rem;font-weight:600}.rolllog{flex-direction:column;gap:4px;margin:6px 0 10px;padding:0;list-style:none;display:flex}.rolllog__row{font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:.85rem;display:flex}.rolllog__die{min-width:2.6em;color:var(--accent,currentColor);font-weight:700}.rolllog__values{opacity:.85;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rolllog__total{text-align:right;min-width:2.4em;font-weight:700}.pig-target{text-align:center;margin-top:-4px}.pig-turn-total{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800}.pig-bust{color:var(--danger,#d4504e);font-size:1.2rem;font-weight:800}.crash{background:var(--bg);color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:fixed;inset:0}.crash__emoji{font-size:3rem}.crash__btn{width:auto;padding:14px 22px}.mode-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.mode-card__badge{background:var(--accent-strong);color:var(--accent-contrast);text-transform:uppercase;letter-spacing:.03em;border-radius:99px;padding:2px 9px;font-size:.7rem;font-weight:700}.setup-extra{flex-direction:column;gap:8px;width:100%;max-width:460px;display:flex}.mode-trigger{top:calc(var(--safe-top) + 12px);left:calc(var(--safe-left) + 12px);position:absolute}.icon-button--sm{border-radius:11px;width:36px;height:36px}.mode-list{flex-direction:column;gap:10px;margin-top:6px;display:flex}.mode-card{border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;display:flex}.mode-card:active{transform:scale(.99)}.mode-card__title{font-size:1.05rem;font-weight:700}.mode-card__hint{color:var(--muted);font-size:.85rem}.game-shell{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%), var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.game-shell__bar{padding:calc(var(--safe-top) + 10px) calc(var(--safe-right) + 12px) 10px calc(var(--safe-left) + 12px);align-items:center;gap:12px;display:flex}.game-shell__title{text-align:center;flex:1;margin:0;font-size:1.2rem}.game-shell__spacer{width:48px}.game-shell__body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;align-items:center;gap:14px;padding:8px 16px 16px;display:flex;overflow-y:auto}.game-shell__body:focus-visible{outline-offset:-3px}.game-shell__body>*{flex-shrink:0}.game-shell__footer{padding:12px calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 14px) calc(var(--safe-left) + 16px);border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.primary-btn,.secondary-btn{cursor:pointer;border:0;border-radius:14px;width:100%;padding:16px;font-size:1.05rem;font-weight:700}.primary-btn{background:var(--accent-strong);color:var(--accent-contrast)}.secondary-btn{background:var(--surface);color:var(--text);border:1px solid var(--border)}.primary-btn:disabled,.secondary-btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{gap:10px;display:flex}.setup{flex-direction:column;gap:12px;width:100%;max-width:460px;display:flex}.setup__title{text-align:center;margin:8px 0 4px}.setup__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.setup__row{align-items:center;gap:8px;display:flex}.setup__index{background:var(--surface);width:26px;height:26px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.setup__input{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);border-radius:12px;flex:1;padding:12px 14px;font-size:1rem}.setup__add{border:1px dashed var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:12px;padding:12px;font-weight:600}.setup__start{background:var(--accent-strong);color:var(--accent-contrast);cursor:pointer;border:0;border-radius:14px;margin-top:4px;padding:16px;font-size:1.05rem;font-weight:700}.game-dice{--tile:clamp(58px, 17vw, 92px);--die-radius:calc(var(--tile) * var(--die-radius-ratio));flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.game-dice[data-count="3"]{--tile:clamp(74px, 22vw, 120px)}.game-dice[data-count="5"]{--tile:clamp(48px, 15vw, 92px)}.game-die{cursor:pointer;border-radius:var(--die-radius);transition:transform .14s var(--ease-out), opacity .14s ease;background:0 0;border:0;padding:0;position:relative}.game-die:disabled{cursor:default}.game-die .dice-face{transition:transform .14s var(--ease-out), opacity .14s ease}.game-die--held .dice-face{opacity:.95;transform:scale(.9)}.game-die--held:after{content:"";border:2px solid var(--accent);border-radius:var(--die-radius);pointer-events:none;position:absolute;inset:0}.game-die__badge{z-index:2;background:var(--accent-strong);color:var(--accent-contrast);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:.62rem;font-weight:700;line-height:1.3;position:absolute;bottom:-7px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #00000047}.game-turn{margin:0;font-size:1.1rem;font-weight:700}.game-status,.game-hand{min-height:1.4em;color:var(--muted);text-align:center;margin:0}.game-hand{color:var(--text);font-weight:600}.game-status__sub{color:var(--accent);margin-top:2px;font-size:.9em;font-weight:600;display:block}.scorecard{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));align-items:start;gap:8px;width:100%;max-width:460px;display:grid}.scorecard__col{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.scorecard__row{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:11px;justify-content:space-between;align-items:center;padding:11px 14px;font-size:.95rem;display:flex}.scorecard__row--pick{cursor:pointer;border-color:color-mix(in srgb, var(--accent) 60%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--surface))}.scorecard__row--pick .scorecard__value{color:color-mix(in srgb, var(--accent) 60%, var(--text));font-weight:700}.scorecard__row--filled{opacity:.7}.scorecard__row:disabled{cursor:default}.scorecard__value{font-variant-numeric:tabular-nums;font-weight:700}.scorecard__subtotal{color:var(--muted);justify-content:space-between;padding:6px 14px;font-size:.82rem;display:flex}.scoreboard{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;max-width:460px;display:flex}.scoreboard__item{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;min-width:64px;padding:8px 12px;display:flex}.scoreboard__item--active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--surface))}.scoreboard__name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:9ch;font-size:.8rem;overflow:hidden}.scoreboard__score{font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:800}.game421-status{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pill{background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:5px 12px;font-size:.85rem;font-weight:700}.pill--charge{background:color-mix(in srgb, var(--blue,#3b82f6) 22%, var(--surface))}.pill--decharge{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.round-note{text-align:center;color:var(--muted);margin:0;font-size:.9rem}.results{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:460px;margin-top:12px;display:flex}.results__title{color:var(--muted);margin:0}.results__headline{text-align:center;margin:0;font-size:1.5rem;font-weight:800}.results__list{flex-direction:column;gap:6px;width:100%;margin:0;padding:0;list-style:none;display:flex}.results__row{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;padding:12px 16px;display:flex}.results__score{font-variant-numeric:tabular-nums;font-weight:800}.notation-input{border:1px solid var(--border);background:var(--surface);width:100%;max-width:460px;color:var(--text);font-variant-numeric:tabular-nums;text-align:center;border-radius:14px;padding:14px 16px;font-size:1.2rem}.chips{flex-wrap:wrap;justify-content:center;gap:8px;max-width:460px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:99px;padding:8px 12px;font-size:.85rem;font-weight:700}.chip:active{transform:scale(.96)}.notation-error{color:var(--danger,#e5484d);margin:0;font-weight:600}.notation-result{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:460px;display:flex}.notation-total{color:var(--accent);font-variant-numeric:tabular-nums;font-size:clamp(3rem,18vw,5rem);font-weight:800;line-height:1}.notation-breakdown{flex-direction:column;gap:6px;width:100%;margin:0;padding:0;list-style:none;display:flex}.notation-breakdown li{border:1px solid var(--border);background:var(--surface);border-radius:11px;align-items:center;gap:12px;padding:8px 14px;display:flex}.notation-term{min-width:5em;font-weight:700}.notation-rolls{flex-wrap:wrap;gap:6px;display:flex}.notation-die{background:color-mix(in srgb, var(--accent) 14%, var(--surface));text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;min-width:1.8em;padding:2px 6px;font-weight:700}.notation-die--dropped{opacity:.5;background:0 0;text-decoration:line-through}.decide-actions{gap:10px;width:100%;max-width:460px;display:flex}.decide-result{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid var(--border);text-align:center;border-radius:16px;justify-content:center;align-items:center;width:100%;max-width:460px;min-height:2.4em;padding:14px 18px;font-size:clamp(1.3rem,6vw,2rem);font-weight:800;display:flex}.decide-options{flex-direction:column;gap:6px;width:100%;max-width:460px;display:flex}.decide-options textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:12px;padding:12px 14px;font-family:inherit;font-size:1rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.dice-stage[data-status=rolling]{animation:none}}.family-links{left:50%;bottom:calc(var(--safe-bottom) + 10px);opacity:.55;transition:opacity .16s var(--ease-out);align-items:center;gap:14px;font-size:.75rem;display:flex;position:absolute;transform:translate(-50%)}.family-links:hover,.family-links:focus-within{opacity:1}.family-links__link{color:var(--text);align-items:center;gap:5px;text-decoration:none;display:inline-flex}.family-links__link:hover{text-decoration:underline}[data-dwc=pwa-install-prompt]~.family-links{display:none}[data-dwc=consent-banner]{box-sizing:border-box;top:calc(var(--safe-top) + 70px);background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--border);width:min(100% - 24px,40rem);box-shadow:var(--shadow-ui);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:consent-in .26s var(--ease-out);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px;margin-inline:auto;padding:10px 12px;display:flex;position:absolute;inset-inline:0}[data-dwc=consent-message]{color:var(--text);flex:15rem;margin:0;font-size:.8rem;line-height:1.4}[data-dwc=consent-actions]{flex-wrap:wrap;gap:10px;display:flex}[data-dwc=consent-accept],[data-dwc=consent-refuse]{border:1px solid var(--border);min-height:2.75rem;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:11px;padding:8px 14px;font-size:.85rem}@keyframes consent-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}[data-dwc=consent-section-text]{color:var(--muted);margin:0;font-size:.85rem}[data-dwc=consent-section-state]{margin:8px 0 10px;font-size:.9rem}
