@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{color-scheme:dark;color:#e4ede5;font-synthesis:none;--forest:#c4dfb0;--ink:#e4ede5;--muted:#a7b6ac;--line:#31463a;--lime:#dcf19b;--page-gutter:clamp(16px, 2.5vw, 48px);background:#111c18;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;min-width:320px;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:5px;outline:3px solid #789944}button{color:inherit}button,fieldset{-webkit-appearance:none}button{border:0}h1,h2,p{margin:0}.page-shell{width:100%;min-width:0}.site-header{height:84px;margin:0 var(--page-gutter);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;display:flex}.brand{color:var(--forest);letter-spacing:-1.5px;align-items:center;gap:12px;font-family:Manrope,sans-serif;font-size:27px;font-weight:800;text-decoration:none;display:inline-flex}.brand-period{color:#a8bba9}.brand-mark{background:#315b40;border-radius:10px;width:33px;height:33px;display:inline-block;position:relative;transform:rotate(-9deg);box-shadow:inset 0 0 0 1px #15372e}.brand-mark i{background:#e4f1b5;border-radius:50%;width:5px;height:5px;position:absolute}.brand-mark i:first-child{top:7px;left:7px}.brand-mark i:nth-child(2){top:14px;left:14px}.brand-mark i:nth-child(3){bottom:7px;right:7px}.header-actions{align-items:center;gap:18px;display:flex}.session-badge{border:1px solid var(--line);background:#23382b;border-radius:30px;align-items:center;gap:8px;padding:7px 13px;font-size:11px;font-weight:500;display:inline-flex}.status-dot{background:#789c60;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #789c6014}.eyebrow{letter-spacing:1.9px;font-size:10px;font-weight:650}h1{letter-spacing:-2px;margin:11px 0 12px;font-family:Manrope,sans-serif;font-size:clamp(30px,3.4vw,43px);font-weight:650;line-height:1.3}.game-layout{width:100%;min-width:0}.table-card{background:#17251f;width:100%;min-width:0}.table-heading{height:51px;padding:0 var(--page-gutter);justify-content:space-between;align-items:center;gap:10px;display:flex}.table-title{align-items:center;gap:9px;font-size:12px;font-weight:600;display:flex}.small-die{color:#a8bba9;font-family:Arial,sans-serif;font-size:24px;line-height:1}.table-label{letter-spacing:1.45px;color:#a8bba9;font-size:8px}.dice-stage{isolation:isolate;background:radial-gradient(at 50% 47%,#315e43,#1b4634 58%,#153d2e);width:100%;height:clamp(420px,65svh,860px);position:relative;overflow:hidden}.dice-stage,.dice-stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.dice-stage:after{content:"";z-index:2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.07' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}#dice-canvas{z-index:1;touch-action:pan-y;outline:none;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}[data-dragging-die] #dice-canvas{cursor:grabbing;touch-action:none}.result-bar{min-height:92px;padding:18px var(--page-gutter);border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;display:flex}.result-label{color:#a8bba9;letter-spacing:1.5px;margin-bottom:5px;font-size:8px;display:block}.result-copy{min-width:0}.result-faces{flex-wrap:wrap;align-items:center;gap:8px;min-height:25px;display:flex}.face-frequency{border:1px solid var(--line);background:#23382b;border-radius:7px;align-items:center;gap:5px;padding:5px 7px;display:inline-flex}.face-frequency.empty{opacity:.4}.face-action{color:inherit;touch-action:manipulation}.face-action:not(.face-frequency){background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;min-width:40px;min-height:44px;padding:5px;display:inline-flex}.face-frequency.face-action{min-height:44px}.face-action:enabled:hover{background:#2c4432;border-color:#a9bd7c}.face-action:disabled{cursor:default}.face-frequency .mini-die{font-size:25px}.face-multiplier{font-variant-numeric:tabular-nums;color:#a8bba9;font-size:11px}.result-placeholder{color:#a8bba9;font-size:12px}.face-with-plus{align-items:center;gap:8px;display:inline-flex}.face-group-parenthesis{color:var(--muted);font-size:20px;line-height:1}.result-plus{color:#a8bba9;font-size:12px;font-weight:400}.mini-die{font-family:Arial,sans-serif;font-size:28px;line-height:1}.die-face-red{color:#ff7077}.total-block{text-align:right;border-left:1px solid var(--line);min-width:66px;padding-left:23px}.total-number{letter-spacing:-1px;font-family:Manrope,sans-serif;font-size:28px;font-weight:600;line-height:1}.count-stepper{border:1px solid var(--line);background:#1c2d24;border-radius:9px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;display:grid}.count-step{color:#a8bba9;background:0 0;border-radius:8px;width:44px;min-height:48px;font-size:23px}.count-step:hover:enabled{background:#2c4432}.count-step:disabled{opacity:.35}.count-input{outline-offset:0;width:100%;min-width:0;min-height:48px;color:var(--forest);text-align:center;-moz-appearance:textfield;appearance:textfield;background:0 0;border:0;padding:0;font:650 16px Manrope,sans-serif}.count-input::-webkit-inner-spin-button,.count-input::-webkit-outer-spin-button{appearance:none;margin:0}.dice-count-fieldset:disabled{opacity:.6}.roll-dock{padding:14px var(--page-gutter);grid-template-columns:minmax(0,320px) 140px auto;justify-content:center;align-items:start;gap:12px;display:grid}.table-settings{align-items:start;gap:8px;display:flex}.dice-count-fieldset{border:0;min-width:0;margin:0;padding:0}.count-hint{text-align:center;color:#a8bba9;margin-top:8px;font-size:9px;line-height:1.6}.device-settings{min-width:0;position:relative}.device-settings-toggle{border:1px solid var(--line);cursor:pointer;touch-action:manipulation;background:#1f3328;border-radius:9px;justify-content:center;align-items:center;width:48px;min-height:50px;list-style:none;display:flex}.device-settings-toggle:focus-visible{outline-offset:3px;outline:3px solid #789944}.auto-blur-toggle{color:var(--muted);flex-direction:column;gap:3px;font-size:8px;line-height:1}.auto-blur-toggle[aria-pressed=true]{color:var(--lime);background:#2c4432;border-color:#a9bd7c}.auto-blur-icon{font:22px/1 Arial,sans-serif}.dice-stage[role=button]{cursor:pointer;outline-offset:-4px}.device-settings[data-open] .device-settings-toggle{background:#2c4432;border-color:#a9bd7c}.device-icon{border:2px solid #b5d0a8;border-radius:4px;width:15px;height:24px;position:relative}.device-icon:after{content:"";background:#b5d0a8;border-radius:2px;width:4px;height:2px;position:absolute;bottom:2px;left:3.5px}.device-settings-panel{z-index:5;overscroll-behavior:contain;border:1px solid var(--line);background:#17251f;border-radius:12px;gap:16px;width:min(290px,100vw - 34px);max-height:min(420px,65svh);padding:18px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 12px 36px #173f3226}.device-settings-panel h2{font-size:13px;font-weight:650}.device-settings-panel[hidden]{display:none}.device-settings-panel .sound-button{border-top:1px solid var(--line);width:100%;padding-top:10px}.roll-primary{min-width:0}.roll-button{border:1px solid var(--line);background:var(--lime);color:#19301f;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:9px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:48px;padding:12px 16px;font-size:13px;font-weight:650;transition:transform .16s,background .16s;display:flex;box-shadow:0 3px #d3e59b44}.roll-button:enabled:hover{background:#cfe985;transform:translateY(-1px)}.roll-button:enabled:active{transform:translateY(1px)}.roll-button:disabled{opacity:.7}.roll-button.is-holding:enabled{background:#c4e477;border-color:#a8c65c;transform:translateY(1px);box-shadow:inset 0 2px 5px #526c3224}.roll-button.is-holding .roll-icon{transform:rotate(-18deg)}.roll-hint{text-align:center;color:#a8bba9;margin-top:8px;font-size:10px;line-height:1.6}.motion-control,.orientation-control{min-width:0}.motion-button{border:1px solid var(--line);color:#a8bba9;background:#1f3328;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:10px 12px;font-size:11px;font-weight:550;display:flex}.motion-button:enabled:hover{background:#2c4432;border-color:#c4d3a7}.motion-button[aria-pressed=true]{color:#d4ebbe;background:#2c4432;border-color:#bdce9b}.motion-button:disabled{color:#a8bba9}.motion-icon{font-size:19px;line-height:1}.motion-status{color:#a8bba9;text-align:center;margin-top:8px;font-size:9px;line-height:1.7}.phone-permission-feedback{margin:12px var(--page-gutter);border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:12px 16px;font-size:12px;line-height:1.7}.phone-permission-feedback .motion-button{width:auto;margin-top:10px}#dice-canvas,.result-bar,.history-list,.empty-history{filter:blur(var(--board-reveal-blur,var(--phone-view-blur,0px)));transition:filter .22s}[data-board-revealed] #dice-canvas,[data-board-revealed] .result-bar,[data-board-revealed] .history-list,[data-board-revealed] .empty-history{transition:none}.roll-icon{font-family:Arial,sans-serif;font-size:21px;line-height:1}.roll-arrow{margin-left:auto;font-size:18px}.roll-icon{margin-right:auto}.keyboard-hint{text-align:center;color:#a8bba9;margin-top:4px;font-size:9px}kbd{border:1px solid var(--line);color:#a8bba9;background:#23382b;border-radius:3px;padding:2px 5px;font-family:inherit;font-size:8px}.sound-button{text-align:left;background:0 0;align-items:center;gap:8px;width:180px;max-width:100%;min-height:44px;padding:0;font-size:10px;display:flex}.sound-icon{color:#a8bba9;width:18px;font-size:18px;line-height:1}.toggle{background:#405747;border-radius:20px;width:28px;height:16px;margin-left:auto;padding:3px;transition:background .2s}.toggle>span{background:#fff;border-radius:50%;width:10px;height:10px;transition:transform .2s;display:block;box-shadow:0 1px 2px #00000015}.toggle.on{background:#799d58}.toggle.on>span{transform:translate(12px)}.notice{border:1px solid var(--line);color:#e7c58b;margin:20px var(--page-gutter) 0;background:#382f1d;border-radius:9px;padding:14px 18px;font-size:12px;line-height:1.6}.history-card{border:1px solid var(--line);margin:23px var(--page-gutter) 0;background:#17251f;border-radius:13px;padding:19px 22px 0}.history-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.history-heading>div{align-items:center;gap:8px;display:flex}.history-heading h2{font-size:11px;font-weight:600}.history-icon{color:#a8bba9;margin-right:1px;font-size:20px;font-weight:400;line-height:1}.history-badge{color:#a8bba9;background:#2c4432;border-radius:4px;padding:2px 5px;font-size:8px}.clear-button{color:#a8bba9;background:0 0;min-height:44px;padding:4px 0;font-size:10px}.clear-button:disabled{color:#a8bba9}.clear-button:enabled:hover{text-decoration:underline}.empty-history{align-items:center;gap:14px;padding:22px 1px 24px;display:flex}.empty-history-die{color:#a8bba9;font-family:Arial,sans-serif;font-size:36px;line-height:1;transform:rotate(-12deg)}.empty-history strong{color:#a8bba9;font-size:11px;font-weight:500}.empty-history p{color:#a8bba9;margin-top:5px;font-size:10px}.empty-history-line{border-bottom:1px dashed var(--line);flex:1;margin-left:12px}.history-list{overscroll-behavior:contain;max-height:265px;margin:0;padding:10px 0 2px;list-style:none;overflow:auto}.history-row{border-top:1px solid var(--line);align-items:center;gap:14px;min-height:44px;padding:6px 0;display:flex}.round-sequence{color:#a8bba9;font-variant-numeric:tabular-nums;width:25px;font-size:10px}.history-faces{color:#c4d8b1;gap:6px;font-family:Arial,sans-serif;font-size:23px;line-height:1;display:flex}.history-more{color:#a8bba9;white-space:nowrap;background:#2c4432;border-radius:5px;align-self:center;padding:4px 5px;font:600 9px DM Sans,sans-serif}.history-dice-count{color:#a8bba9;margin-left:auto;font-size:10px}.history-total-label{letter-spacing:1px;color:#a8bba9;margin-left:10px;font-size:7px}.history-total{text-align:right;min-width:23px;font-family:Manrope,sans-serif;font-size:17px;font-weight:600}.closing-note{color:#a8bba9;justify-content:center;align-items:center;gap:13px;padding:30px 0 33px;font-size:10px;display:flex}.closing-note>span{color:#a8bba9;font-size:12px}.site-footer{border-top:1px solid var(--line);margin:0 var(--page-gutter);color:#a8bba9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:22px 0 25px;font-size:9px;display:flex}.site-footer a{color:inherit;text-underline-offset:3px}.site-footer>span:last-child{letter-spacing:1.2px;font-size:7px}.boot-splash{z-index:100;text-align:center;background:#111c18;flex-direction:column;justify-content:center;align-items:center;gap:15px;min-height:100svh;padding:24px;display:flex;position:fixed;inset:0}[hidden]{display:none!important}body:has(.boot-splash:not([hidden])){overflow:hidden}.boot-splash .brand-mark{width:44px;height:44px}.boot-splash .brand-mark i:nth-child(2){top:20px;left:20px}.boot-splash h1{margin:0;font-size:30px}.boot-splash p{color:#a8bba9;font-size:14px}.boot-splash small{color:#a8bba9;font-size:11px}.boot-progress-group{width:min(300px,100%);margin:12px 0 0}.boot-progress-track{border:1px solid var(--line);background:#283e30;border-radius:20px;height:8px;overflow:hidden}.boot-progress-fill{border-radius:inherit;background:#849e56;width:0;height:100%;transition:width .14s linear;display:block}.boot-progress-track.is-indeterminate .boot-progress-fill{width:35%;animation:1.4s ease-in-out infinite boot-download}.boot-progress-caption{color:#a8bba9;font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;min-height:15px;margin-top:10px;font-size:10px;display:flex}.boot-retry{border:1px solid var(--line);background:var(--lime);color:#19301f;border-radius:8px;min-height:44px;padding:11px 20px;font-size:12px;font-weight:600}.boot-splash.has-error .boot-progress-fill{background:#b48b60}.boot-splash.has-error small{color:#a8bba9;max-width:330px;line-height:1.7}@keyframes boot-download{0%{transform:translate(-110%)}to{transform:translate(390%)}}.help-modal{width:430px;max-width:calc(100% - 40px);max-height:calc(100svh - 40px);color:var(--ink);border:1px solid var(--line);background:#1b2b23;border-radius:18px;padding:35px;overflow:auto;box-shadow:0 20px 90px #132b2e44}.help-modal::backdrop{backdrop-filter:blur(7px);background:#12322670}.help-modal h2{letter-spacing:-.8px;margin:12px 0 20px;font-family:Manrope,sans-serif;font-size:24px}.help-modal .eyebrow{color:#a8bba9;font-size:8px}.help-modal>p:not(.eyebrow){color:#a8bba9;font-size:11px;line-height:1.9}.help-modal .roll-button{justify-content:space-between;margin-top:24px}.action-modal>p{margin:14px 0 20px;font-size:13px;line-height:1.7}.dialog-actions{gap:12px;margin-top:20px;display:flex}.dialog-actions>button{flex:1}.action-modal .roll-button{justify-content:center;margin-top:0}.action-modal form label{margin-bottom:8px;font-size:12px;display:block}.new-dice-count{border:1px solid var(--line);width:100%;min-height:48px;font:inherit;color:var(--forest);background:#1c2d24;border-radius:9px;padding:10px 14px;font-size:20px}.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}@media (width<=760px){:root{--page-gutter:22px}.site-header{height:85px}.brand{gap:9px;font-size:23px}.brand-mark{border-radius:9px;width:30px;height:30px}.brand-mark i:nth-child(2){top:12.5px;left:12.5px}.header-actions{gap:8px}.session-badge{padding:6px 10px;font-size:9px}h1{letter-spacing:-1.6px;font-size:31px}.table-label{letter-spacing:1px;font-size:7px}.dice-stage{height:clamp(300px,58svh,560px)}.roll-dock{grid-template-columns:minmax(0,1fr) 126px auto;gap:8px}.roll-dock .roll-button{padding:12px 10px;font-size:12px}.roll-hint{font-size:9px}.keyboard-hint{display:none}.motion-button{min-height:44px}.sound-button{width:150px}.history-card{margin-top:17px;padding:15px 18px 0}.closing-note{padding:25px 0}.site-footer{padding:20px 0 max(20px, env(safe-area-inset-bottom))}}@media (width<=480px){:root{--page-gutter:17px}.site-header{height:76px}.brand{font-size:22px}.session-badge{background:0 0;border:0;padding:0;font-size:9px}h1{margin:10px 0;font-size:31px;line-height:1.35}.roll-dock{grid-template-columns:minmax(0,1fr) 126px}.table-settings{grid-column:1/-1;justify-self:end}.table-label{letter-spacing:1px;font-size:6px}.table-title{font-size:11px}.result-bar{min-height:83px;padding-top:14px;padding-bottom:14px}.result-faces,.face-with-plus{gap:5px}.mini-die{font-size:23px}.result-plus{font-size:10px}.total-block{min-width:55px;padding-left:15px}.total-number{font-size:25px}.history-heading h2{font-size:10px}.clear-button{font-size:9px}.empty-history{gap:10px;padding:20px 0}.empty-history strong{font-size:10px}.empty-history p{font-size:9px}.empty-history-line{display:none}.history-row{gap:9px}.history-faces{gap:3px;font-size:20px}.face-frequency{gap:3px;padding:4px 5px}.face-frequency .mini-die{font-size:22px}.face-multiplier{font-size:9px}.history-dice-count{font-size:8px}.history-total-label{display:none}.history-total{font-size:15px}.site-footer{gap:10px;font-size:8px}.site-footer>span:last-child{letter-spacing:.5px;font-size:6px}.help-modal{padding:30px 25px 25px}}@media (width<=360px){.roll-dock .roll-icon,.roll-dock .roll-arrow{display:none}.roll-dock .roll-button{gap:0;padding-inline:6px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}