:root{color:#232428;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#f9d7c0 0%,#f4f1ea 48%,#f7e4d2 100%);font-family:Nunito,Avenir Next,Arial Rounded MT Bold,Helvetica Neue,sans-serif;font-weight:600;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100svh}body,h1,h2,h3,p{margin:0}h1,h2,h3{color:#232428;font-family:Fredoka,"Baloo 2",Nunito,Avenir Next,Arial Rounded MT Bold,sans-serif}h1{margin-top:14px;font-size:clamp(2.4rem,8vw,3.6rem);line-height:.95}h2{font-size:1.2rem}h3{font-size:1.05rem}.app-shell{width:min(100%, var(--portrait-max-width));box-sizing:border-box;flex-direction:column;gap:18px;min-height:100svh;margin:0 auto;padding:24px 16px 40px;display:flex}.main-app{display:flex!important}.main-app.hidden-for-rotate{display:none!important}.match-screen-shell{padding-top:10px}.hero-card,.panel{border:4px solid var(--color-outline);background:#fff7ef;border-radius:28px;box-shadow:0 10px #2f344026}.hero-card{text-align:left;padding:24px 20px}.status-pill{color:var(--color-charcoal);text-transform:uppercase;letter-spacing:.06em;background:#f5c13d33;border-radius:999px;align-items:center;padding:6px 12px;font-size:.82rem;font-weight:800;display:inline-flex}.hero-copy{color:#232428cc;max-width:30rem;margin-top:10px}.home-hero,.match-hero{overflow:hidden}.hero-badges{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.mode-chip{border:3px solid var(--color-outline);background:#fff;border-radius:999px;align-items:center;padding:7px 12px;font-size:.9rem;font-weight:800;display:inline-flex}.setup-grid{gap:14px;display:grid}.settings-list{gap:10px;display:grid}.compact-settings{margin-top:16px}.setting-toggle{appearance:none;border:4px solid var(--color-outline);width:100%;color:var(--color-charcoal);font:inherit;cursor:pointer;background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.setting-toggle.enabled{background:color-mix(in srgb, var(--color-p2) 22%, white)}.settings-note{color:#232428ad;margin-top:12px}.turn-banner{background:#fff;border-radius:18px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.turn-chip{border:3px solid var(--color-outline);border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:8px 12px;font-weight:900;display:inline-flex}.turn-chip.p1{background:color-mix(in srgb, var(--color-p1) 28%, white)}.turn-chip.p2{background:color-mix(in srgb, var(--color-p2) 34%, white)}.turn-copy{font-weight:800}.dice-panel{background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:14px;display:flex}.dice-label{text-transform:uppercase;letter-spacing:.05em;color:#232428a6;font-size:.78rem}.dice-value{margin-top:4px;font-size:1.05rem;display:block}.dice-face{background:0 0;border-radius:20px;width:72px;height:72px;display:block}.dice-face.idle{opacity:.75}.dice-face img{object-fit:contain;width:100%;height:100%;display:block}.dice-star{width:100%;height:100%;display:block}.dice-placeholder{border:4px solid var(--color-outline);background:#fff8ea;border-radius:20px;width:100%;height:100%;display:block}.info-grid{gap:14px;display:grid}.mode-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px;display:grid}.mode-button,.primary-button,.secondary-button{appearance:none;border:4px solid var(--color-outline);font:inherit;color:var(--color-charcoal);cursor:pointer;background:#fff;border-radius:18px;padding:12px 14px;font-weight:800;transition:transform .12s,box-shadow .12s,opacity .12s}.mode-button:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.mode-button.active{box-shadow:0 8px #2f344024}.mode-button.p1.active{background:color-mix(in srgb, var(--color-p1) 20%, white)}.mode-button.p2.active{background:color-mix(in srgb, var(--color-p2) 35%, white)}.mode-button.private.active{background:#daf0ca}.mode-description{color:#232428b8;margin-top:12px}.start-button{margin-top:16px}.private-actions{gap:10px;margin-top:16px;display:grid}.ready-button:not(:disabled){background:#7ccb43}.form-error{color:#b3261e;margin-top:12px;font-weight:800}.dialog-backdrop{z-index:40;background:#2324286b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog-card{width:min(100%,360px)}.field-label{gap:8px;margin-top:14px;font-weight:900;display:grid}.field-label input{box-sizing:border-box;border:4px solid var(--color-outline);width:100%;color:var(--color-charcoal);font:inherit;background:#fff;border-radius:16px;padding:12px 14px;font-weight:800}.dialog-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.lobby-list{gap:10px;margin-top:14px;display:grid}.lobby-player,.lobby-empty,.lobby-code-box{border:4px solid var(--color-outline);background:#fff;border-radius:18px;align-items:center;gap:10px;padding:12px;display:grid}.lobby-player{grid-template-columns:42px minmax(0,1fr) auto}.lobby-empty{color:#232428ad;font-weight:800}.host-badge{border:3px solid var(--color-outline);background:color-mix(in srgb, var(--color-p2) 34%, white);border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:1000}.ruleset-panel{border:4px solid var(--color-outline);background:#fff;border-radius:18px;gap:10px;margin-top:16px;padding:12px;display:grid}.ruleset-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.ruleset-header span{color:#232428a8;text-transform:uppercase;font-size:.82rem;font-weight:900}.ruleset-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ruleset-option{appearance:none;border:3px solid var(--color-outline);min-height:86px;color:var(--color-charcoal);font:inherit;text-align:left;cursor:pointer;background:#fff8ea;border-radius:14px;gap:4px;padding:10px;display:grid}.ruleset-option span{color:#232428a8;font-size:.82rem;font-weight:800;line-height:1.2}.ruleset-option.active{background:color-mix(in srgb, var(--color-p2) 30%, white);box-shadow:inset 0 0 0 3px #ffffffb3}.ruleset-option:disabled{cursor:default;opacity:.78}.lobby-code-box{grid-template-columns:minmax(0,1fr) auto auto;margin-top:16px}.lobby-code-box span{color:#232428a8;text-transform:uppercase;font-size:.82rem;font-weight:900}.lobby-code-box strong{letter-spacing:.08em;font-size:1.45rem}.info-grid{grid-template-columns:1fr}.match-topbar{justify-content:space-between;align-items:center;gap:10px;min-height:42px;display:flex;position:relative}.match-mode-pill,.icon-text-button{border:3px solid var(--color-outline);color:var(--color-charcoal);background:#fff7ef;border-radius:999px;font-weight:900;box-shadow:0 5px #2f34401f}.match-mode-pill{text-align:center;min-width:0;padding:8px 12px}.icon-text-button{appearance:none;font:inherit;cursor:pointer;padding:8px 12px}.online-match-topbar{justify-content:flex-start}.topbar-timer{border:3px solid var(--color-outline);min-width:74px;color:var(--color-charcoal);text-align:center;white-space:nowrap;background:#fff7ef;border-radius:999px;padding:8px 14px;font-weight:1000;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 5px #2f34401f}.topbar-timer.urgent,.topbar-timer.expired{background:color-mix(in srgb, var(--color-p1) 18%, white);color:#b3261e}.topbar-timer.urgent{animation:.95s ease-in-out infinite alternate timer-urgent-pulse}.topbar-timer.attention{animation:.62s ease-in-out timer-threshold-wiggle}.topbar-timer.urgent.attention{animation:.62s ease-in-out timer-threshold-wiggle,.95s ease-in-out .62s infinite alternate timer-urgent-pulse}.match-title{margin-top:12px;font-size:clamp(2rem,5vw,2.8rem)}.board-panel{padding:8px}.timed-match-bar{border:4px solid var(--color-outline);background:#fff;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 8px;padding:10px 12px;display:grid}.timed-match-bar span{color:#232428a8;text-transform:uppercase;font-size:.82rem;font-weight:900}.timed-match-bar strong{font-size:1.35rem}.board-stage{background:linear-gradient(#f5c13d29,#f45b5b1a),#fff7ef;border-radius:22px;padding:8px}.player-hud-row{min-height:72px;display:flex}.player-hud-row.top{justify-content:flex-end;align-items:flex-start;padding:0 0 10px}.player-hud-row.bottom{justify-content:flex-start;align-items:flex-end;padding:10px 0 0}.player-hud{--hud-dice-center-offset:41px;--hud-board-edge-offset:6px;width:calc(50% + var(--hud-dice-center-offset) + var(--hud-board-edge-offset));border:4px solid var(--color-outline);opacity:.82;background:#fff;border-radius:20px;grid-template-columns:42px minmax(0,1fr) 58px;align-items:center;gap:8px;padding:8px;display:grid;box-shadow:0 6px #2f344024}.player-hud-row.top .player-hud{margin-right:calc(var(--hud-board-edge-offset) * -1);grid-template-columns:58px minmax(0,1fr) 42px}.player-hud-row.bottom .player-hud{margin-left:calc(var(--hud-board-edge-offset) * -1)}.player-hud-row.top .hud-die{grid-area:1/1}.player-hud-row.top .player-meta{text-align:right;grid-area:1/2}.player-hud-row.top .player-avatar{grid-area:1/3}.player-hud.active{opacity:1;transform:translateY(-1px)}.player-hud.p1.active{background:color-mix(in srgb, var(--color-p1) 18%, white)}.player-hud.p2.active{background:color-mix(in srgb, var(--color-p2) 28%, white)}.player-avatar{border:3px solid var(--color-outline);background:#fff7ef;border-radius:999px;place-items:center;width:42px;height:42px;font-weight:1000;display:grid}.player-meta{min-width:0}.player-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.1;display:block;overflow:hidden}.player-score{color:#232428ad;margin-top:3px;font-size:.82rem;font-weight:900;display:block}.hud-die{appearance:none;isolation:isolate;background:0 0;border:0;border-radius:18px;place-items:center;width:58px;height:58px;padding:3px;display:grid;position:relative}.hud-die.timer-active:before{content:"";z-index:0;pointer-events:none;border-radius:inherit;background:conic-gradient(from 0deg, #35b85a1f var(--timer-angle), #35b85a 0);position:absolute;inset:0}.hud-die.rollable{cursor:pointer;animation:.9s ease-in-out infinite alternate roll-ready}.hud-die:disabled{cursor:default}.hud-die .dice-face{z-index:1;background:#fff8ea;border-radius:14px;width:52px;height:52px;position:relative;overflow:hidden}.hud-die .dice-face.rolling{perspective:190px;background:0 0;place-items:center;display:grid;overflow:visible}.hud-die .dice-face.rolling-card{perspective:180px;background:0 0;place-items:center;display:grid;overflow:visible}.dice-roll-card{--card-size:48px;--card-depth:8px;--face-rotation:0deg;width:var(--card-size);height:var(--card-size);transform-origin:50%;transform-style:preserve-3d;animation:.65s cubic-bezier(.18,.76,.16,1) both dice-card-tumble;position:relative}.dice-card-front,.dice-card-back,.dice-card-edge{box-sizing:border-box;backface-visibility:hidden;display:block;position:absolute}.dice-card-front,.dice-card-back{border:2px solid var(--color-outline);border-radius:13px;inset:0;overflow:hidden}.dice-card-front{transform:translateZ(var(--card-depth));background:#fff8ea;box-shadow:inset 0 -3px #2f34401f,inset 0 2px #ffffffb3}.dice-card-back{transform:translateZ(calc(var(--card-depth) * -1)) rotateY(180deg);background:#e9d8b6}.dice-card-edge{border:2px solid var(--color-outline);background:#d9c49f;box-shadow:inset 0 2px #ffffff47}.dice-card-edge.edge-top,.dice-card-edge.edge-bottom{width:calc(var(--card-size) - 14px);height:calc(var(--card-depth) * 2);left:7px}.dice-card-edge.edge-top{top:calc(var(--card-depth) * -1);transform:rotateX(90deg) translateZ(var(--card-depth))}.dice-card-edge.edge-bottom{bottom:calc(var(--card-depth) * -1);transform:rotateX(-90deg) translateZ(var(--card-depth))}.dice-card-edge.edge-left,.dice-card-edge.edge-right{width:calc(var(--card-depth) * 2);height:calc(var(--card-size) - 14px);top:7px}.dice-card-edge.edge-left{left:calc(var(--card-depth) * -1);transform:rotateY(-90deg) translateZ(var(--card-depth))}.dice-card-edge.edge-right{right:calc(var(--card-depth) * -1);transform:rotateY(90deg) translateZ(var(--card-depth))}.dice-card-front img{object-fit:contain;width:100%;height:100%;transform:rotate(var(--face-rotation))}.dice-roll-card.frame-1{--face-rotation:90deg}.dice-roll-card.frame-2{--face-rotation:180deg}.dice-roll-card.frame-3{--face-rotation:-90deg}.dice-roll-card.frame-4{--face-rotation:45deg}.dice-roll-card.frame-5{--face-rotation:-45deg}.dice-cube{--dice-size:42px;--dice-half:21px;width:var(--dice-size);height:var(--dice-size);transform-style:preserve-3d;transform-origin:50%;animation:.65s cubic-bezier(.2,.72,.18,1) both dice-cube-roll;position:relative}.dice-cube-face{box-sizing:border-box;border:2px solid var(--color-outline);backface-visibility:hidden;background:#fff8ea;border-radius:10px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 -3px #2f344024,inset 0 2px #ffffffa3}.dice-cube-face img{object-fit:contain;width:100%;height:100%}.dice-cube-face.face-1{transform:rotateY(0deg) translateZ(var(--dice-half))}.dice-cube-face.face-2{transform:rotateY(90deg) translateZ(var(--dice-half))}.dice-cube-face.face-2 img{transform:rotate(90deg)}.dice-cube-face.face-3{transform:rotateX(90deg) translateZ(var(--dice-half))}.dice-cube-face.face-3 img{transform:rotate(-90deg)}.dice-cube-face.face-4{transform:rotateX(-90deg) translateZ(var(--dice-half))}.dice-cube-face.face-4 img{transform:rotate(180deg)}.dice-cube-face.face-5{transform:rotateY(-90deg) translateZ(var(--dice-half))}.dice-cube-face.face-5 img{transform:rotate(-90deg)}.dice-cube-face.face-6{transform:rotateY(180deg) translateZ(var(--dice-half))}.dice-cube-face.face-6 img{transform:rotate(180deg)}@keyframes roll-ready{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes dice-cube-roll{0%{transform:translate(-2px)rotateX(18deg)rotateY(-22deg)rotate(-8deg)}18%{transform:translate3d(3px,-5px,6px)rotateX(146deg)rotateY(98deg)rotate(32deg)}36%{transform:translate(-3px,2px)rotateX(274deg)rotateY(204deg)rotate(-22deg)}56%{transform:translate3d(2px,-4px,5px)rotateX(408deg)rotateY(316deg)rotate(18deg)}76%{transform:translate(-2px,1px)rotateX(538deg)rotateY(438deg)rotate(-10deg)}to{transform:translate(0,0)rotateX(640deg)rotateY(540deg)rotate(0)}}@keyframes dice-card-tumble{0%{transform:translate(-2px)rotateX(0)rotateY(0)rotate(-7deg)scale(.94)}16%{transform:translate3d(3px,-5px,8px)rotateX(72deg)rotateY(36deg)rotate(24deg)scale(.9)}34%{transform:translate(-4px,2px)rotateX(142deg)rotateY(112deg)rotate(-32deg)scale(.92)}52%{transform:translate3d(3px,-4px,7px)rotateX(232deg)rotateY(178deg)rotate(18deg)scale(.88)}72%{transform:translate(-2px,1px)rotateX(318deg)rotateY(266deg)rotate(-12deg)scale(.93)}to{transform:translate(0,0)rotateX(360deg)rotateY(360deg)rotate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.dice-roll-card,.dice-cube{animation:none}.dice-roll-card{transform:scale(.94)}.dice-cube{transform:rotateX(18deg)rotateY(-22deg)}}@keyframes timer-urgent-pulse{0%{box-shadow:0 5px #2f34401f,0 0 #f45b5b2e}to{box-shadow:0 5px #2f34401f,0 0 0 7px #f45b5b14}}@keyframes timer-threshold-wiggle{0%{transform:translate(-50%)rotate(0)}16%{transform:translate(-50%)rotate(-7deg)}32%{transform:translate(-50%)rotate(7deg)}48%{transform:translate(-50%)rotate(-5deg)}64%{transform:translate(-50%)rotate(5deg)}82%{transform:translate(-50%)rotate(-2deg)}to{transform:translate(-50%)rotate(0)}}.rotate-card{text-align:center}.rotate-overlay{z-index:50;background:linear-gradient(#f9d7c0 0%,#f4f1ea 48%,#f7e4d2 100%);justify-content:center;align-items:center;padding:24px 16px 40px;display:none;position:fixed;inset:0}.rotate-overlay .rotate-card{width:min(100%, var(--portrait-max-width))}.rotate-icon{place-items:center;margin-top:24px;display:grid}.rotate-phone{border:5px solid var(--color-outline);background:#fff;border-radius:22px;width:72px;height:116px;position:relative;transform:rotate(-90deg);box-shadow:0 10px #2f34401f}.rotate-phone:before{content:"";background:color-mix(in srgb, var(--color-p2) 28%, white);border-radius:14px;position:absolute;inset:10px}.panel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.subtle-copy{color:#232428b8}.board-frame{aspect-ratio:1;background:#f4f1ea;width:100%;position:relative}.board-overlay-shell{position:relative}.board-canvas{z-index:1;outline:6px solid var(--color-outline);outline-offset:0;background:0 0;border:0;border-radius:0;width:100%;height:100%;position:relative;overflow:hidden}.board-static-preview{z-index:0;object-fit:contain;outline:6px solid var(--color-outline);outline-offset:0;width:100%;height:100%;display:block;position:absolute;inset:0}.board-frame.loading .board-canvas,.board-frame.ready .board-static-preview{opacity:0}.board-canvas canvas{display:block;width:100%!important;height:100%!important}.board-token-hit{z-index:2;cursor:pointer;z-index:2;background:0 0;border:none;border-radius:999px;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute}.board-winner-overlay{z-index:4;background:#fff7ef47;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.panel{padding:18px}.panel h3{margin-bottom:8px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.stats-grid div{background:#fff;border-radius:18px;padding:12px}.stats-grid dt{text-transform:uppercase;letter-spacing:.05em;color:#232428a6;margin-bottom:6px;font-size:.78rem}.stats-grid dd{color:var(--color-charcoal);margin:0;font-size:1.1rem;font-weight:800}.action-row,.compact-actions{margin-top:16px}.primary-button{background:var(--color-p1);width:100%}.secondary-button{background:var(--color-cream)}.primary-button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.status-box,.event-card{background:#fff;border-radius:18px;margin-top:16px;padding:14px}.winner-card{border:4px solid var(--color-outline);background:color-mix(in srgb, var(--color-p2) 24%, white);border-radius:20px;margin-top:16px;padding:16px}.board-winner-card{width:min(88%,300px);margin-top:0;box-shadow:0 14px #2f34402e}.winner-card p{margin-top:6px}.winner-actions{margin-top:14px}.rules-card{background:#fff;border-radius:18px;margin-top:16px;padding:14px}.small-list{font-size:.95rem}.checklist{margin:0;padding-left:1.1rem}.checklist li+li{margin-top:10px}.checklist.compact{margin-top:16px}@media (width<=640px){.panel-header{flex-direction:column}.mode-actions,.stats-grid{grid-template-columns:1fr}.match-screen-shell{gap:10px;width:100%;padding:8px 0 28px}.match-screen-shell .match-topbar,.match-screen-shell .info-grid>:not(.board-panel){margin-inline:8px}.match-screen-shell .info-grid{gap:10px}.board-panel{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.board-stage{background:0 0;border-radius:0;padding:0}.board-frame,.board-canvas{border-radius:0}.board-frame{width:calc(100% - 16px);margin-inline:auto}.board-canvas{outline-width:6px}.pass-and-play-match .player-hud-row.top .player-meta,.pass-and-play-match .player-hud-row.top .player-avatar,.pass-and-play-match .player-hud-row.top .dice-face{transform:rotate(180deg)}.pass-and-play-match .player-hud-row.top .player-meta{text-align:left}.turn-banner,.dice-panel{flex-direction:column;align-items:flex-start}}.rotate-overlay.active{display:flex}
