*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{color:#1a1a1a;background:radial-gradient(circle at top,#f3efe6 0%,#e7e0d2 45%,#d9d0bf 100%);margin:0;font-family:Georgia,Times New Roman,serif}.shell{min-height:100dvh;padding:1.5rem;padding-top:max(1.5rem, env(safe-area-inset-top,0px));padding-right:max(1.5rem, env(safe-area-inset-right,0px));padding-bottom:max(1.5rem, env(safe-area-inset-bottom,0px));padding-left:max(1.5rem, env(safe-area-inset-left,0px));text-align:center;place-content:center;gap:.75rem;display:grid}.brand{letter-spacing:.08em;margin:0;font-size:clamp(2rem,8vw,3.5rem);font-weight:700}.phase{letter-spacing:.18em;text-transform:uppercase;color:#5a5348;margin:0;font-size:clamp(.95rem,3.5vw,1.15rem)}.status{color:#2f2a24;margin:.5rem 0 0;font-size:clamp(1rem,3.8vw,1.25rem)}.status-connecting{letter-spacing:.06em}.status-error{color:#7a2e24}.error-block{justify-items:center;gap:.6rem;max-width:22rem;margin-inline:auto;display:grid}.error-code{color:#5a5348;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.retry-button{color:#f3efe6;min-width:9rem;min-height:44px;font:inherit;letter-spacing:.08em;cursor:pointer;background:#2f2a24;border:1px solid #2f2a24;border-radius:0;margin-top:.35rem;padding:.65rem 1.25rem}.retry-button:disabled{opacity:.55;cursor:not-allowed}.retry-button:focus-visible{outline-offset:3px;outline:2px solid #2f2a24}.home{justify-items:center;gap:1.75rem;width:min(100%,22rem);margin-inline:auto;display:grid}.home-header{justify-items:center;gap:.45rem;display:grid}.total-dp{letter-spacing:.06em;color:#2f2a24;margin:.35rem 0 0;font-size:clamp(1.05rem,4vw,1.35rem)}.home-message{justify-items:center;gap:.35rem;display:grid}.home-tagline{letter-spacing:.1em;margin:0;font-size:clamp(1.15rem,4.2vw,1.45rem);font-weight:700}.home-tagline-sub{letter-spacing:.12em;color:#5a5348;margin:0;font-size:clamp(.95rem,3.5vw,1.15rem)}.action-slot{place-items:center;width:100%;min-height:5.5rem;display:grid}.roll-button{color:#f3efe6;width:100%;min-height:44px;font:inherit;letter-spacing:.1em;cursor:not-allowed;opacity:.55;background:#2f2a24;border:1px solid #2f2a24;border-radius:0;padding:.85rem 1.25rem;font-size:clamp(1rem,3.8vw,1.2rem)}.roll-button-active:not(:disabled){opacity:1;cursor:pointer}.roll-button:disabled{opacity:.55;cursor:not-allowed}.roll-button-active:focus-visible{outline-offset:3px;outline:2px solid #2f2a24}.recharge-panel{border:1px solid #2f2a24;place-content:center;gap:.35rem;width:100%;min-height:5.5rem;padding:.75rem 1rem;display:grid}.recharge-label{letter-spacing:.14em;color:#5a5348;margin:0;font-size:clamp(.85rem,3.2vw,1rem)}.recharge-countdown{letter-spacing:.08em;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:clamp(1.6rem,6vw,2.1rem)}.reset-info{letter-spacing:.04em;color:#5a5348;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(.9rem,3.3vw,1.05rem)}.roll-result{justify-items:center;gap:.75rem;width:100%;display:grid}.dice-row{grid-template-columns:1fr 1fr;gap:.75rem;width:100%;display:grid}.dice-card{background:#f3efe6;border:1px solid #2f2a24;place-items:center;min-height:5.5rem;display:grid}.dice-value{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-family:ui-monospace,Consolas,monospace;font-size:clamp(2rem,8vw,2.75rem)}.roll-outcome{letter-spacing:.14em;margin:0;font-size:clamp(1.05rem,4vw,1.25rem);font-weight:700}.roll-dp-award{letter-spacing:.08em;color:#2f2a24;margin:0;font-size:clamp(.95rem,3.5vw,1.1rem)}.roll-balance-transition{align-content:center;justify-items:center;gap:.35rem;width:100%;min-height:4.5rem;display:grid}.roll-balance-value{letter-spacing:.06em;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:clamp(1.75rem,7vw,2.35rem);font-weight:700;animation:.22s ease-out roll-balance-enter}.roll-balance-delta{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:clamp(.9rem,3.4vw,1.05rem);animation:.22s ease-out roll-balance-enter}.roll-balance-spent{color:#5a5348;font-weight:700}.roll-balance-bonus{color:#2f2a24;border-bottom:1px solid #2f2a24;padding-bottom:.1rem;font-weight:700}.action-slot-filler{width:100%;min-height:5.5rem}@keyframes roll-balance-enter{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.roll-balance-value,.roll-balance-delta{animation:none}}.roll-status-panel{align-content:center;justify-items:center;gap:.55rem;width:100%;min-height:5.5rem;display:grid}.roll-status-title{letter-spacing:.08em;margin:0;font-size:clamp(1rem,3.8vw,1.2rem)}.onboarding{align-content:center;justify-items:center;gap:1.25rem;width:min(100%,22rem);min-height:min(100%,36rem);margin-inline:auto;display:grid}.onboarding-header{justify-items:center;gap:.45rem;display:grid}.onboarding-progress{justify-items:center;gap:.55rem;width:100%;min-height:2.5rem;display:grid}.onboarding-progress-text{letter-spacing:.14em;color:#5a5348;font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:clamp(.85rem,3.2vw,1rem)}.onboarding-progress-marks{grid-auto-flow:column;justify-content:center;gap:.45rem;display:grid}.onboarding-progress-mark{background:#c4bba8;width:1.35rem;height:.2rem}.onboarding-progress-mark-active{background:#2f2a24}.onboarding-step{align-content:start;justify-items:center;gap:.75rem;width:100%;min-height:9.5rem;display:grid}.onboarding-title{letter-spacing:.1em;text-transform:uppercase;color:#1a1a1a;margin:0;font-size:clamp(1.15rem,4.4vw,1.45rem);font-weight:700}.onboarding-body{letter-spacing:.04em;color:#2f2a24;white-space:pre-line;max-width:20rem;margin:0;font-size:clamp(.95rem,3.5vw,1.1rem);line-height:1.45}.onboarding-error,.onboarding-error-slot{align-content:center;justify-items:center;gap:.45rem;width:100%;min-height:4.75rem;display:grid}.onboarding-actions{justify-items:center;gap:.75rem;width:100%;display:grid}.onboarding-secondary-row{grid-template-columns:1fr 1fr;align-items:center;gap:.75rem;width:100%;display:grid}.onboarding-secondary-button{color:#2f2a24;min-height:44px;font:inherit;letter-spacing:.1em;cursor:pointer;background:0 0;border:1px solid #2f2a24;border-radius:0;padding:.55rem .75rem;font-size:clamp(.85rem,3.2vw,.95rem)}.onboarding-secondary-button:disabled{opacity:.55;cursor:not-allowed}.onboarding-secondary-button:focus-visible{outline-offset:3px;outline:2px solid #2f2a24}.onboarding-secondary-spacer{min-height:44px;display:block}.rules-dialog-root{z-index:40;padding:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-right,0px)) max(1rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));place-items:center;display:grid;position:fixed;inset:0}.rules-dialog-backdrop{cursor:pointer;background:#1a1a1a8c;border:0;margin:0;padding:0;position:absolute;inset:0}.rules-dialog{z-index:1;color:#1a1a1a;text-align:left;background:#f3efe6;border:1px solid #2f2a24;justify-items:stretch;gap:.9rem;width:min(100%,22rem);max-height:min(85dvh,32rem);padding:1.25rem 1.15rem;display:grid;position:relative;overflow:auto}.rules-dialog-title{letter-spacing:.14em;text-transform:uppercase;text-align:center;margin:0;font-size:clamp(1.05rem,4vw,1.25rem)}.rules-dialog-list{gap:.55rem;margin:0;padding-left:1.15rem;display:grid}.rules-dialog-item{letter-spacing:.03em;color:#2f2a24;font-size:clamp(.9rem,3.3vw,1.05rem);line-height:1.4}.rules-dialog-close{color:#f3efe6;min-height:44px;font:inherit;letter-spacing:.1em;cursor:pointer;background:#2f2a24;border:1px solid #2f2a24;border-radius:0;margin-top:.25rem}.rules-dialog-close:focus-visible{outline-offset:3px;outline:2px solid #2f2a24}@media (prefers-reduced-motion:reduce){.onboarding-step,.rules-dialog-root,.rules-dialog{transition:none;animation:none}}@media (width>=480px){.shell{padding:2rem;padding-top:max(2rem, env(safe-area-inset-top,0px));padding-right:max(2rem, env(safe-area-inset-right,0px));padding-bottom:max(2rem, env(safe-area-inset-bottom,0px));padding-left:max(2rem, env(safe-area-inset-left,0px))}.home,.onboarding{gap:2rem;width:min(100%,26rem)}}
