@charset "UTF-8";:root{--bg: #f4f2ee;--panel: #ffffff;--ink: #23211d;--ink-soft: #6b675f;--line: #dcd8d0;--accent: #3e8e6d;--accent-strong: #e8b04b;--danger: #c04b3a;--sq-light: #e8e2d6;--sq-dark: #a08e75;--radius: 8px}@media(prefers-color-scheme:dark){:root{--bg: #1c1b19;--panel: #26241f;--ink: #ece8e1;--ink-soft: #9b968c;--line: #3a372f;--sq-light: #b9a98f;--sq-dark: #6f6046}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.app-shell main{max-width:1200px;margin:0 auto;padding:16px}.navbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.navbar .brand{font-size:20px;font-weight:700;text-decoration:none;color:var(--ink)}.navbar .brand .brand-n{color:var(--accent)}.navbar .nav-links{display:flex;align-items:center;gap:14px}.navbar .nav-links a{color:var(--ink-soft);text-decoration:none}.navbar .nav-links a:hover{color:var(--ink)}.navbar .nav-links .nav-user{font-weight:600}.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius);padding:8px 18px;font-size:15px;cursor:pointer;transition:transform .05s,background .15s}.btn:hover:not(:disabled){background:color-mix(in srgb,var(--panel) 85%,var(--accent))}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn-primary,.btn-roll{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled),.btn-roll:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 85%,black)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{background:transparent}.btn-small{padding:4px 10px;font-size:13px}.banner{border-radius:var(--radius);padding:10px 12px;margin-bottom:10px;font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.banner.banner-error{background:color-mix(in srgb,var(--danger) 12%,var(--panel));border:1px solid var(--danger)}.banner.banner-info{background:var(--panel);border:1px solid var(--line);color:var(--ink-soft)}.banner.banner-action{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid var(--accent)}.banner .share-link{display:block;width:100%;font-size:12px;overflow-wrap:anywhere}.auth-card{max-width:380px;margin:48px auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.auth-card h2{margin-top:0}.auth-card label{display:block;margin-bottom:12px;font-size:13px;color:var(--ink-soft)}.auth-card label input{display:block;width:100%;margin-top:4px;padding:8px 10px;font-size:15px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.auth-card .btn{width:100%;margin-top:6px}.auth-card .auth-alt{font-size:13px;color:var(--ink-soft)}.auth-card .auth-alt a{color:var(--accent)}.invite-sub{color:var(--ink-soft);font-size:14px;margin:0 0 16px}.invite-sub strong{color:var(--ink)}.invite-note{color:var(--ink-soft);font-size:12.5px;margin:8px 0 0}.guest-divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.guest-divider:before,.guest-divider:after{content:"";flex:1;height:1px;background:var(--line)}.share-invite .share-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.share-invite .share-actions a.btn{text-decoration:none;display:inline-flex;align-items:center}.share-invite .share-link-input{width:100%;margin-top:10px;padding:8px 10px;font-size:12px;font-family:ui-monospace,monospace;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink-soft)}.share-invite.compact .share-actions .btn-primary{background:transparent;color:var(--ink);border-color:var(--line)}.share-invite.compact .share-actions .btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--panel) 85%,var(--accent))}.waiting-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.waiting-panel .waiting-title{font-weight:600;margin-bottom:10px}.home-actions{margin-bottom:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.new-game-modal{display:flex;gap:10px;align-items:end;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.new-game-modal label{font-size:13px;color:var(--ink-soft)}.new-game-modal label select{display:block;margin-top:4px;padding:7px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.variant-row{flex-basis:100%;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-top:10px;margin-top:4px;border-top:1px solid var(--line)}.variant-row .variant-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:600}.variant-row .variant-check{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink);cursor:pointer}.variant-row .variant-check input{accent-color:var(--accent)}.variant-tag{color:var(--accent-strong);font-style:normal;font-size:12px}.game-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px}.game-list h3{margin:4px 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.game-list .empty{color:var(--ink-soft);font-size:14px;padding:6px 0 10px}.game-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.game-row .cell{color:var(--ink-soft);font-size:14px}.game-row .cell.name{color:var(--ink);flex:1;min-width:0}.game-row .cell.rank{width:42px}.game-row .cell.rating{font-weight:600;color:var(--ink)}.game-row .cell em{color:var(--ink-soft);font-style:normal}.game-row .cell .winner{font-weight:700}.game-row .btn{margin-left:auto;flex-shrink:0}.game-row .cell.name+.cell~.btn{margin-left:0}.game-page{display:grid;gap:16px;justify-content:center;align-items:stretch;grid-template-areas:"left main side";grid-template-columns:minmax(200px,280px) minmax(0,min(820px,100vh - 220px)) minmax(280px,350px)}.game-left{grid-area:left;min-width:0;min-height:0;display:flex;flex-direction:column}.game-left .left-well{flex:1;min-height:120px;margin-bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);display:grid;place-content:center;gap:4px;text-align:center}.game-left .left-well:has(.eval-graph){display:block;place-content:unset}.game-left .left-well .left-well-label{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft);font-weight:600}.game-left .left-well .left-well-hint{font-size:12px;color:color-mix(in srgb,var(--ink-soft) 55%,transparent)}.game-left .chat{flex:none;margin-bottom:0}.game-left .chat .chat-box{height:280px}.game-main{grid-area:main;min-width:0}.game-side{grid-area:side;min-width:0;min-height:0;display:flex;flex-direction:column}.game-side .dice-well{margin-bottom:12px}.game-side .side-tabs+.dice-well,.game-side .side-tabs~.dice-well{margin:12px 0 0}.game-side .dice-well.own .dice-row{gap:8px;min-height:56px}.game-side .dice-well.own .die{width:46px;height:46px}.game-side .dice-well.own .dice-actions .btn{min-width:96px}.side-tabs{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.side-tabs .side-tab-bar{display:flex;border-bottom:1px solid var(--line)}.side-tabs .side-tab-bar .side-tab{flex:1;background:transparent;border:0;cursor:pointer;padding:10px 8px;color:var(--ink-soft);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.11em;border-bottom:2px solid transparent}.side-tabs .side-tab-bar .side-tab.on{color:var(--ink);border-bottom-color:var(--accent)}.side-tabs .side-tab-content{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.side-tabs .side-tab-content .movelist{flex:1;min-height:0;display:flex;flex-direction:column;border:0;background:transparent;margin:0}.side-tabs .side-tab-content .movelist .movelist-head{display:none}.side-tabs .side-tab-content .movelist .movelist-box{max-height:none;flex:1}.side-tabs .side-tab-content .odds-panel{border:0;background:transparent;margin:0}.side-tabs .side-tab-content .empty{color:var(--ink-soft);font-size:14px;padding:14px}.side-complete{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.rolloff-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:10px;font-size:13px}.rolloff-banner .rolloff-label{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--ink-soft)}.rolloff-banner .rolloff-die{width:30px;height:30px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);border-radius:6px}.rolloff-banner .rolloff-die img{width:80%;height:80%;object-fit:contain}.rolloff-banner .rolloff-vs{color:var(--ink-soft);font-size:11px}.rolloff-banner .rolloff-ties{color:var(--ink-soft);font-style:italic}.rolloff-banner .rolloff-result{font-weight:700;margin-left:auto}@keyframes die-double-pulse{0%,to{box-shadow:0 0 8px color-mix(in srgb,var(--accent-strong) 30%,transparent)}50%{box-shadow:0 0 22px color-mix(in srgb,var(--accent-strong) 80%,transparent)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#04080c99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center}.modal-card{position:relative;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);padding:20px 24px;max-width:340px;width:calc(100% - 40px);box-shadow:0 12px 40px #00000080}.modal-card .modal-title{font-weight:700;font-size:16px;margin-bottom:6px}.modal-card p{color:var(--ink-soft);margin:0 0 14px}.modal-card .modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-card .modal-close{position:absolute;top:6px;right:10px;background:none;border:0;color:var(--ink-soft);font-size:22px;line-height:1;cursor:pointer}.modal-card .modal-close:hover{color:var(--ink)}.gameover-modal{text-align:center;max-width:380px}.gameover-modal .gameover-actions{justify-content:center}.capture-fx{position:absolute;z-index:20;pointer-events:none}.capture-fx .capture-shard{position:absolute;width:25%;height:25%;background-repeat:no-repeat;will-change:transform,opacity}.dice3d-lastroll img.muted{opacity:.3;filter:grayscale(.8)}.under-board{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:8px}.under-board .game-controls{margin-bottom:0}.dice-captures{display:flex;gap:3px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:6px;min-height:20px}.dice-captures img{width:20px;height:20px;opacity:.9}.dice-captures img.fresh{filter:drop-shadow(0 0 6px var(--accent));transform:scale(1.25);animation:capture-pop .5s ease-out}.dice-captures .capture-score{font-size:12px;font-weight:700;color:var(--ink);margin-left:6px}@keyframes capture-pop{0%{transform:scale(2);opacity:0}to{transform:scale(1.25);opacity:1}}.game-meta{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:12px;font-size:14px}.game-meta .game-meta-title{font-weight:600;margin-bottom:6px}.game-meta .game-meta-variant{display:inline-block;margin-bottom:6px;padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;border:1px solid var(--accent-strong);color:var(--accent-strong);border-radius:8px}.game-meta .game-meta-players{color:var(--ink-soft);line-height:1.8}.game-meta .game-meta-players .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;background:var(--sq-dark);border:1px solid var(--line)}.game-meta .game-meta-players .dot[data-color=white]{background:var(--sq-light)}.board-wrap,.board-placeholder{margin:10px 0}.board-wrap{position:relative}.board-row{display:flex;gap:10px;align-items:stretch}.board-row .board-wrap{flex:1;min-width:0}.eval-bar{position:relative;width:16px;margin:10px 0;flex-shrink:0;background:var(--sq-dark);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.eval-bar .eval-fill{width:100%;transition:height .6s ease}.eval-bar .eval-fill.white{background:linear-gradient(180deg,#f2eee2,#cfc9b8)}.eval-bar .eval-fill.black{background:linear-gradient(180deg,#3a4048,#23272d)}.eval-bar .eval-label{position:absolute;left:50%;transform:translate(-50%);font:700 9px/1 ui-monospace,monospace;pointer-events:none}.eval-bar .eval-label.up{bottom:4px;color:var(--bg);mix-blend-mode:normal}.eval-bar .eval-label.down{top:4px;color:var(--ink)}.eval-graph{width:100%;height:100%;padding:12px 14px;display:flex;flex-direction:column;gap:8px;text-align:left}.eval-graph .eval-graph-head{display:flex;justify-content:space-between;align-items:baseline}.eval-graph .eval-graph-now{font:700 16px/1 ui-monospace,monospace}.eval-graph .eval-graph-now.up{color:var(--accent)}.eval-graph .eval-graph-now.down{color:var(--danger)}.eval-graph svg{flex:1;width:100%;min-height:0}.eval-graph .eval-graph-mid{stroke:var(--line);stroke-width:.5;stroke-dasharray:2 2}.eval-graph .eval-graph-line{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}.board-placeholder{aspect-ratio:1;background:var(--panel);border-radius:6px}.player-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.player-bar.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.player-bar.winner{border-color:var(--accent-strong)}.player-bar .player-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--sq-dark);color:#fff}.player-bar .player-avatar[data-color=white]{background:var(--sq-light);color:var(--ink)}.player-bar .player-meta{display:flex;flex-direction:column;min-width:0}.player-bar .player-meta .player-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-bar .player-meta .player-rating{font-size:12px;color:var(--ink-soft)}.player-bar .player-clock{margin-left:auto;font:600 20px/1 ui-monospace,Cascadia Mono,monospace;padding:6px 10px;border-radius:6px;background:var(--bg)}.player-bar .player-clock.ticking{color:var(--accent)}.player-bar .player-clock.low{color:var(--danger);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.4}}.graveyard{margin-top:8px;font-size:18px;color:var(--ink-soft)}.graveyard .graveyard-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.graveyard .graveyard-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em}.graveyard .graveyard-score{font-size:13px;font-weight:600;color:var(--ink)}.dice-well{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px;transition:opacity .25s ease,border-color .25s ease}.dice-well .dice-row{display:flex;gap:12px;justify-content:center;min-height:64px;align-items:center}.dice-well .dice-empty{color:var(--ink-soft)}.dice-well .dice-caption{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);text-align:center;margin-bottom:4px}.dice-well.active{border-color:var(--accent)}.dice-well.idle{opacity:.55}.dice-well.readonly{padding:8px 14px}.dice-well.readonly .dice-row{min-height:46px;gap:8px}.dice-well.readonly .die{width:40px;height:40px;font-size:26px}.dice-well.own{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"caption caption" "dice actions" "badges badges" "captures captures";gap:4px 16px;align-items:center}.dice-well.own .dice-captures{grid-area:captures;justify-content:flex-start}.dice-well.own .dice-caption{grid-area:caption;margin-bottom:0;text-align:left}.dice-well.own .dice-row{grid-area:dice;min-height:72px}.dice-well.own .dice3d-mount{grid-area:dice;min-width:0}.dice-well.own .dice-actions{grid-area:actions;align-self:center;display:flex;flex-direction:column;gap:8px;margin:0}.dice-well.own .dice-actions .btn{min-width:112px}.dice-well.own .dice-actions .btn-roll.auto-on{opacity:1;box-shadow:0 0 16px #00d6c48c}.dice-well.own .dice-actions .auto-toggle.on{border-color:var(--accent);color:var(--accent)}.dice-well.own .dice-badges{grid-area:badges;margin:2px 0 0}.dice-well .die{width:56px;height:56px;border-radius:10px;display:grid;place-items:center;font-size:36px;background:var(--bg);border:1px solid var(--line);box-shadow:0 2px 6px #0000002e}.dice-well .die.live{border-color:var(--accent);box-shadow:0 0 12px #00d6c44d}.dice-well .die.frozen{opacity:.45;filter:grayscale(.9);box-shadow:none}.dice-well .die.missing{border-color:var(--danger);box-shadow:inset 0 0 10px color-mix(in srgb,var(--danger) 30%,transparent)}.dice-well .die.missing img{opacity:.45;filter:grayscale(.7)}.dice-well .die.doubled{animation:die-double-pulse 1.6s ease-in-out infinite}.dice-well .dice-caption.dud{color:var(--danger)}.dice-well .dice-badges{display:flex;gap:8px;justify-content:center;margin:10px 0 0;flex-wrap:wrap}.dice-well .dice-badges .badge{font-size:12px;font-weight:700;padding:4px 14px;border-radius:8px;background:color-mix(in srgb,var(--bg) 85%,transparent);border:1px solid}.dice-well .dice-badges .badge-wild{border-color:var(--accent-strong);color:var(--accent-strong)}.dice-well .dice-badges .badge-double{border-color:var(--accent);color:var(--accent)}.dice-well .dice-badges .badge-check{border-color:var(--danger);color:var(--danger)}.dice-well .dice-badges .badge-wasted{border-color:var(--ink-soft);color:var(--ink-soft)}.dice-well .dice-actions{display:flex;gap:10px;justify-content:center;margin-top:12px}.dice-well .dice-actions .btn{min-width:110px}.dice-well-3d .dice3d-mount{position:relative;height:200px;overflow:hidden}.dice-well-3d .dice3d-mount canvas{display:block}.dice-well-3d .dice3d-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-soft);pointer-events:none}.dice-well-3d .dice3d-lastroll{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:8px;align-items:center;justify-content:center}.dice-well-3d .dice3d-lastroll .dice-caption{margin:0 6px 0 0}.dice-well-3d .dice3d-lastroll img{width:34px;height:34px;opacity:.55}.game-controls{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.game-controls .confirm-resign{display:inline-flex;gap:6px;align-items:center;font-size:14px}.gameover-panel{background:var(--panel);border:1px solid var(--accent-strong);border-radius:var(--radius);padding:16px;margin-bottom:12px;text-align:center}.gameover-panel .gameover-verdict{font-size:22px;font-weight:700}.gameover-panel .gameover-reason{color:var(--ink-soft);margin:4px 0 12px}.gameover-panel .gameover-actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.chat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;margin-bottom:12px}.chat .chat-title{padding:8px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--line)}.chat .chat-box{height:180px;overflow-y:auto;padding:8px 12px;font-size:14px}.chat .chat-box .chat-line{margin-bottom:4px;overflow-wrap:anywhere}.chat .chat-box .chat-line .chat-from{font-weight:600;color:var(--accent)}.chat .chat-form{display:flex;border-top:1px solid var(--line)}.chat .chat-form input{flex:1;border:0;background:transparent;padding:10px 12px;color:var(--ink);font-size:14px;outline:none}.chat .chat-form .btn{border:0;border-left:1px solid var(--line);border-radius:0 0 var(--radius) 0}.pgn-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;font-size:13px;color:var(--ink-soft)}.pgn-panel .pgn-text{font-family:ui-monospace,monospace;margin-top:6px;overflow-wrap:anywhere}.leaderboard{max-width:560px;margin:0 auto}.leaderboard h2{margin:6px 0 14px}.leaderboard .lb-list{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--line);border-radius:var(--radius)}.leaderboard .empty{color:var(--ink-soft);padding:14px 16px}.leaderboard .lb-row{display:flex;align-items:center;gap:14px;padding:10px 16px;border-top:1px solid var(--line)}.leaderboard .lb-row:first-child{border-top:0}.leaderboard .lb-row .lb-rank{width:34px;height:24px;display:grid;place-items:center;flex-shrink:0;font:700 12px/1 ui-monospace,Cascadia Mono,monospace;background:var(--bg);color:var(--ink-soft);clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}.leaderboard .lb-row .lb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.leaderboard .lb-row .lb-rating{font:600 16px/1 ui-monospace,Cascadia Mono,monospace}.leaderboard .lb-row.podium .lb-rank{color:var(--accent)}.leaderboard .lb-row.first .lb-rank{background:var(--accent-strong);color:#3a2c07}.leaderboard .lb-row.first .lb-rating{color:var(--accent-strong)}@media(max-width:1180px){.game-page{grid-template-areas:"main side" "left side";grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.game-left .left-well{display:none}.game-left .chat .chat-box{height:240px}}@media(max-width:900px){.game-page{grid-template-areas:"main" "side" "left";grid-template-columns:minmax(0,1fr)}.game-left .chat .chat-box{height:220px}.side-tabs{flex:none}.side-tabs .side-tab-content{max-height:320px}}.odds-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px}.odds-panel .odds-title{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin-bottom:10px}.odds-panel .odds-escape{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 10px;margin-bottom:10px;border-radius:6px;background:color-mix(in srgb,var(--danger) 12%,var(--panel));border:1px solid var(--danger)}.odds-panel .odds-escape .odds-escape-label{font-size:12px}.odds-panel .odds-escape .odds-escape-value{font:700 18px/1 ui-monospace,monospace;font-variant-numeric:tabular-nums}.odds-panel .odds-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.odds-panel .odds-cell{display:flex;flex-direction:column;gap:2px;background:var(--bg);border-radius:6px;padding:7px 9px}.odds-panel .odds-k{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}.odds-panel .odds-v{font:700 16px/1 ui-monospace,monospace;font-variant-numeric:tabular-nums}.odds-panel .odds-v.small{font-size:12px;font-weight:600}.odds-panel .odds-v.warn{color:var(--danger)}.odds-panel .odds-v.gold{color:var(--accent-strong)}.odds-panel .odds-pieces{margin-top:10px;display:grid;gap:5px}.odds-panel .odds-piece{display:grid;grid-template-columns:58px 1fr 46px;gap:8px;align-items:center}.odds-panel .odds-bar{background:var(--bg);border-radius:3px;height:7px;overflow:hidden}.odds-panel .odds-bar i{display:block;height:100%;background:var(--accent)}.odds-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.odds-toggle input{accent-color:var(--accent)}.replay .replay-controls{display:flex;align-items:center;gap:6px;margin:10px 0 6px;flex-wrap:wrap}.replay .replay-controls .replay-counter{margin-left:auto;font:12px/1 ui-monospace,monospace;color:var(--ink-soft);font-variant-numeric:tabular-nums}.replay .replay-scrub{width:100%;accent-color:var(--accent)}.replay .replay-list{max-height:190px;overflow-y:auto;margin-top:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.replay .replay-step{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:5px 10px;color:var(--ink);font-size:13px;border-bottom:1px solid var(--line)}.replay .replay-step:last-child{border-bottom:0}.replay .replay-step:hover{background:var(--bg)}.replay .replay-step.on{background:color-mix(in srgb,var(--accent) 16%,var(--panel))}.replay .replay-step.roll .step-label{color:var(--ink-soft);letter-spacing:.14em}.replay .replay-step.nlm .step-label,.replay .replay-step.pass .step-label{color:var(--ink-soft);font-style:italic}.replay .replay-step .step-n,.replay .replay-step .step-time{font:11px/1 ui-monospace,monospace;color:var(--ink-soft)}.export-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-top:10px}.export-panel summary{cursor:pointer;font-size:13px;color:var(--ink-soft)}.export-panel .export-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.export-panel .export-row .export-label{flex:1;font-size:13px}.export-panel .export-row .export-label em{color:var(--ink-soft);font-style:normal;font-size:12px}.export-panel .export-text{width:100%;height:96px;margin-top:10px;font:11px/1.5 ui-monospace,monospace;background:var(--bg);color:var(--ink-soft);border:1px solid var(--line);border-radius:6px;padding:8px;resize:vertical}.rules-page{max-width:780px;margin:0 auto}.rules-page h1{font-size:30px;margin:0 0 10px}.rules-page h2{font-size:22px;margin:34px 0 10px;padding-top:18px;border-top:1px solid var(--line)}.rules-page h3{font-size:16px;margin:22px 0 8px}.rules-page p{color:var(--ink-soft)}.rules-page .rules-lede{font-size:17px;color:var(--ink)}.rules-page .rules-lede strong{font-weight:600}.rules-page .rules-head{margin-bottom:8px}.rules-page .rules-head .btn{margin-top:10px;text-decoration:none;display:inline-block}.rules-page .rules-toc{display:flex;gap:14px;flex-wrap:wrap;padding:12px 0;font-size:13px}.rules-page .rules-toc a{color:var(--accent);text-decoration:none}.rules-page .rules-pieces{display:grid;gap:10px}.rules-page .rules-piece{display:flex;gap:12px;align-items:start}.rules-page .rules-piece b{display:block}.rules-page .rules-piece span{color:var(--ink-soft);font-size:14px}.rules-page .rp{flex-shrink:0}.rules-page .rules-list{color:var(--ink-soft);padding-left:18px}.rules-page .rules-list li{margin-bottom:8px}.rules-page .rnr-delta{color:var(--accent-strong);font-weight:600}.rules-page .rules-note{font-size:13.5px}.rules-page .face-map{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.rules-page .face{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;align-items:center;gap:2px}.rules-page .face .face-n{font:11px/1 ui-monospace,monospace;color:var(--ink-soft)}.rules-page .rules-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.rules-page .rules-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.rules-page .rules-card b{display:block;margin-bottom:4px}.rules-page .rules-card p{margin:0;font-size:13.5px}.rules-page .rules-card.wild{border-color:var(--accent-strong)}.rules-page .rules-card.double{border-color:var(--accent)}.rules-page .rules-highlight{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid var(--accent);border-radius:var(--radius);padding:14px;margin:12px 0}.rules-page .rules-highlight b{font-size:16px}.rules-page .rules-highlight p{margin:6px 0 0}.rules-page .rules-table{width:100%;border-collapse:collapse;font-size:14px}.rules-page .rules-table td{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--ink-soft)}.rules-page .rules-table td:first-child{width:170px;color:var(--ink)}.rules-page .rules-foot{display:flex;gap:10px;margin-top:30px;flex-wrap:wrap}.rules-page .rules-foot .btn{text-decoration:none}.learn-page{max-width:1040px;margin:0 auto}.learn-page .learn-progress{display:flex;align-items:center;gap:7px;margin-bottom:16px}.learn-page .learn-progress .learn-dot{width:11px;height:11px;border-radius:50%;border:1px solid var(--line);background:var(--panel);cursor:pointer;padding:0}.learn-page .learn-progress .learn-dot.past{background:color-mix(in srgb,var(--accent) 55%,var(--panel))}.learn-page .learn-progress .learn-dot.on{background:var(--accent);border-color:var(--accent);transform:scale(1.25)}.learn-page .learn-progress .learn-count{margin-left:auto;font:12px/1 ui-monospace,monospace;color:var(--ink-soft)}.learn-page .learn-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:20px}.learn-page .learn-dice{display:flex;gap:10px;justify-content:center;margin:0 0 14px;min-height:46px;align-items:center}.learn-page .learn-dice .learn-die{width:42px;height:42px;display:grid;place-items:center;font-size:26px;background:var(--bg);border:1px solid var(--line);border-radius:8px;animation:learn-die-land .9s ease-out backwards}.learn-page .learn-dice .learn-die:nth-child(2){animation-delay:.09s}.learn-page .learn-dice .learn-die:nth-child(3){animation-delay:.18s}.learn-page .learn-dice .learn-dice-empty{color:var(--ink-soft);font-size:13px}.learn-page .learn-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;align-self:start}.learn-page .learn-card h2{margin:0 0 8px;font-size:20px}.learn-page .learn-card p{color:var(--ink-soft);font-size:14.5px}.learn-page .learn-task{background:var(--bg);border-radius:6px;padding:10px 12px;font-size:14px;margin:12px 0}.learn-page .learn-task .learn-done{color:var(--accent);font-weight:600}.learn-page .learn-opp{margin:-4px 0 12px;padding:0 12px;font-size:14px;font-style:italic;color:var(--ink-soft)}.learn-page .learn-actions{display:flex;gap:8px;flex-wrap:wrap}.learn-page .learn-nav{display:flex;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);gap:8px}.learn-page .learn-nav .btn{text-decoration:none}.learn-page .learn-nav .learn-nav-fwd{display:flex;gap:8px}.learn-page .learn-foot{margin:12px 0 0;font-size:13px}.learn-page .learn-foot a{color:var(--accent)}@keyframes learn-die-land{0%{transform:translateY(-16px);opacity:0}45%{transform:translateY(0);opacity:1}60%{box-shadow:0 0 22px #00d6c4d9;border-color:var(--accent, #00d6c4)}to{opacity:1;box-shadow:0 0 #00d6c400}}.presence-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--accent);flex-shrink:0}.presence-dot.away{background:var(--ink-soft)}.presence-away-note{font-size:12px;color:var(--ink-soft);font-style:italic}@media(max-width:900px){.learn-page .learn-body{grid-template-columns:minmax(0,1fr)}}.new-game-modal{flex-wrap:wrap;row-gap:10px}.new-game-modal .vs-divider{color:var(--ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.08em;align-self:center}.metrics-page{max-width:900px;margin:0 auto}.metrics-page h1{margin:0 0 6px;font-size:28px}.metrics-page h2{font-size:17px;margin:0 0 6px}.metrics-page .metrics-lede,.metrics-page .metrics-note,.metrics-page .metrics-foot{color:var(--ink-soft);font-size:13.5px}.metrics-page .metrics-foot{margin-top:26px;font-size:12px}.metrics-page .headline{margin:22px 0}.metrics-page .bignum{background:var(--panel);border:2px solid var(--line);border-radius:var(--radius);padding:26px;text-align:center}.metrics-page .bignum.good{border-color:var(--accent)}.metrics-page .bignum.warn{border-color:var(--accent-strong)}.metrics-page .bignum.bad{border-color:var(--danger)}.metrics-page .bignum .bignum-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.metrics-page .bignum .bignum-value{display:block;font:700 64px/1.1 ui-monospace,monospace;font-variant-numeric:tabular-nums;margin:6px 0}.metrics-page .bignum .bignum-value em{font-size:30px;font-style:normal;color:var(--ink-soft)}.metrics-page .bignum .bignum-hint{display:block;font-size:13px;color:var(--ink-soft);line-height:1.5}.metrics-page .bignum.good .bignum-value{color:var(--accent)}.metrics-page .bignum.warn .bignum-value{color:var(--accent-strong)}.metrics-page .bignum.bad .bignum-value{color:var(--danger)}.metrics-page .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:26px}.metrics-page .stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:2px}.metrics-page .stat .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.metrics-page .stat .stat-value{font:700 24px/1.1 ui-monospace,monospace;font-variant-numeric:tabular-nums}.metrics-page .stat .stat-value em{font-size:14px;font-style:normal;color:var(--ink-soft)}.metrics-page .stat .stat-hint{font-size:11.5px;color:var(--ink-soft)}.metrics-page .metrics-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}.metrics-page .outcome-bars{display:grid;gap:7px;margin-top:12px}.metrics-page .outcome{display:grid;grid-template-columns:118px 1fr 92px;gap:10px;align-items:center;font-size:13px}.metrics-page .outcome .outcome-name{color:var(--ink-soft)}.metrics-page .outcome .outcome-bar{background:var(--bg);border-radius:3px;height:14px;overflow:hidden}.metrics-page .outcome .outcome-bar i{display:block;height:100%;background:var(--accent)}.metrics-page .outcome .outcome-bar i[data-reason=autoCheckmate]{background:var(--accent-strong)}.metrics-page .outcome .outcome-bar i[data-reason=timeout]{background:var(--danger)}.metrics-page .outcome .outcome-pct{font:600 12px/1 ui-monospace,monospace;font-variant-numeric:tabular-nums}.metrics-page .outcome .outcome-pct em{color:var(--ink-soft);font-style:normal}.metrics-page .daily-table-wrap{overflow-x:auto}.metrics-page .daily-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}.metrics-page .daily-table th{text-align:left;font:600 10px/1.4 ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:6px 8px}.metrics-page .daily-table td{padding:6px 8px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.firstrun{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px}.firstrun .firstrun-head h2{margin:0 0 4px;font-size:19px}.firstrun .firstrun-head p{margin:0 0 16px;color:var(--ink-soft);font-size:14px}.firstrun .firstrun-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.firstrun .firstrun-card{display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:14px;color:var(--ink);transition:border-color .15s,transform .05s}.firstrun .firstrun-card:hover{border-color:var(--accent)}.firstrun .firstrun-card:active{transform:translateY(1px)}.firstrun .firstrun-card.primary{background:var(--accent);border-color:var(--accent);color:#fff}.firstrun .firstrun-card.primary .fr-sub{color:#ffffffd9}.firstrun .firstrun-card.primary:hover{background:color-mix(in srgb,var(--accent) 85%,black)}.firstrun .firstrun-card .fr-title{font-weight:600;font-size:15px}.firstrun .firstrun-card .fr-sub{font-size:12.5px;color:var(--ink-soft)}.firstrun .firstrun-levels{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--ink-soft)}.install-prompt{position:fixed;left:12px;right:12px;bottom:12px;z-index:50;display:flex;align-items:center;gap:12px;max-width:520px;margin:0 auto;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);padding:12px 14px;box-shadow:0 8px 30px #0000004d}.install-prompt .install-icon{border-radius:9px;flex-shrink:0}.install-prompt .install-copy{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}.install-prompt .install-copy b{font-size:13.5px}.install-prompt .install-copy span{color:var(--ink-soft)}.install-prompt .install-actions{margin-left:auto;display:flex;gap:6px;flex-shrink:0}@media(max-width:520px){.install-prompt{flex-wrap:wrap}.install-prompt .install-actions{margin-left:0;width:100%}}.legal-page{max-width:740px;margin:0 auto}.legal-page h1{font-size:28px;margin:0 0 6px}.legal-page h2{font-size:19px;margin:30px 0 8px;padding-top:16px;border-top:1px solid var(--line)}.legal-page h3{font-size:15px;margin:18px 0 6px}.legal-page p,.legal-page li{color:var(--ink-soft);font-size:14.5px}.legal-page li{margin-bottom:6px}.legal-page a{color:var(--accent)}.legal-page .legal-updated{font-size:12.5px;color:var(--ink-soft)}.legal-page .legal-summary{background:color-mix(in srgb,var(--accent) 9%,var(--panel));border:1px solid var(--accent);border-radius:var(--radius);padding:16px 18px;margin:18px 0}.legal-page .legal-summary h2{border:0;padding:0;margin:0 0 8px;font-size:16px}.legal-page .legal-summary p,.legal-page .legal-summary li{color:var(--ink)}.legal-page .legal-toc{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;padding:10px 0}.legal-page .legal-toc a{text-decoration:none}.legal-page table{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0}.legal-page table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:6px 8px}.legal-page table td{padding:7px 8px;border-top:1px solid var(--line);color:var(--ink-soft)}.site-footer{border-top:1px solid var(--line);margin-top:40px;padding:18px 0;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:var(--ink-soft)}.site-footer a{color:var(--ink-soft);text-decoration:none}.site-footer a:hover{color:var(--accent)}.legal-address{font-style:normal;background:var(--panel);border-left:3px solid var(--accent);padding:12px 16px;margin:12px 0;font-size:14px;line-height:1.7;color:var(--ink-soft)}.legal-address a{color:var(--accent)}.settings-page{max-width:820px;margin:0 auto}.settings-page h1{margin:0 0 4px;font-size:26px}.settings-page h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin:0 0 10px}.settings-page .settings-lede{color:var(--ink-soft);margin:0 0 20px;font-size:14px}.settings-page .settings-note{color:var(--ink-soft);font-size:13px;margin:10px 0 0}.settings-page .settings-check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;color:var(--ink);cursor:pointer}.settings-page .settings-check input{accent-color:var(--accent)}.settings-page .settings-block{background:var(--panel);border:1px solid var(--line);padding:16px 18px;margin-bottom:14px}.settings-page .settings-preview{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);padding:18px;margin-bottom:14px}.settings-page .mini-board{display:grid;grid-template-columns:repeat(4,46px);grid-template-rows:repeat(4,46px);flex-shrink:0}.settings-page .mini-board div{display:grid;place-items:center}.settings-page .mini-board .l{background:var(--l)}.settings-page .mini-board .d{background:var(--d)}.settings-page .mini-board img{width:80%;height:80%;object-fit:contain}.settings-page .colorway-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.settings-page .colorway{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--bg);border:1px solid var(--line);padding:8px 4px;cursor:pointer;color:var(--ink-soft);font-size:11px}.settings-page .colorway:hover{border-color:var(--accent)}.settings-page .colorway.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg));color:var(--ink)}.settings-page .finish-row{display:flex;gap:10px;flex-wrap:wrap}.settings-page .finish{display:flex;flex-direction:column;gap:6px;align-items:flex-start;background:var(--bg);border:1px solid var(--line);padding:10px 14px;cursor:pointer;color:var(--ink)}.settings-page .finish.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg))}.settings-page .finish .piece-row{display:flex;gap:2px}.settings-page .finish .finish-label{font-size:13px;font-weight:600}.settings-page .finish .finish-label em{display:block;font-style:normal;font-size:11px;color:var(--ink-soft)}.settings-page .board-grid{display:flex;gap:10px;flex-wrap:wrap}.settings-page .board-swatch{display:flex;flex-direction:column;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--line);padding:8px 12px;cursor:pointer;color:var(--ink-soft);font-size:12px}.settings-page .board-swatch.on{border-color:var(--accent);color:var(--ink)}.settings-page .board-swatch .bs-tiles{display:grid;grid-template-columns:16px 16px;grid-template-rows:16px 16px}.settings-page .board-swatch .bs-tiles i{display:block}.settings-page .settings-actions{display:flex;gap:10px;margin-top:18px}.settings-page .settings-actions .btn{text-decoration:none}.movelist{background:var(--panel);border:1px solid var(--line);margin-bottom:12px}.movelist .movelist-head{padding:8px 12px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft)}.movelist .movelist-box{max-height:240px;overflow-y:auto;scroll-behavior:smooth}.movelist .mv-none{padding:14px 12px;color:var(--ink-soft);font-size:13px}.movelist .mv-row{display:grid;grid-template-columns:30px 1fr 1fr;gap:6px;align-items:start;padding:5px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.movelist .mv-row:last-child{border-bottom:0}.movelist .mv-row:nth-child(odd){background:color-mix(in srgb,var(--bg) 45%,transparent)}.movelist .mv-n{font:600 11px/1.6 ui-monospace,monospace;color:var(--ink-soft);font-variant-numeric:tabular-nums}.movelist .mv-half{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.movelist .mv-empty{color:var(--ink-soft)}.movelist .mv-roll{display:inline-flex;gap:1px;padding:1px 3px;background:var(--bg);border:1px solid var(--line)}.movelist .mv-roll img{width:15px;height:15px;object-fit:contain}.movelist .mv-san{font:600 13px/1.4 ui-monospace,monospace;color:var(--ink)}.movelist .mv-san.pass,.movelist .mv-san.nlm{color:var(--ink-soft);font-style:italic;font-weight:400}.movelist .mv-time{font:10px/1 ui-monospace,monospace;color:var(--ink-soft);opacity:.7}.board-wrap [data-square]{position:relative;transition:background-color .12s ease}.board-wrap [data-movable=true]:before{content:"";position:absolute;top:4%;right:4%;bottom:4%;left:4%;border:2px solid var(--board-hl, var(--accent));box-shadow:inset 0 0 0 1px #060a0e8c,0 0 0 1px #060a0e73,0 0 10px color-mix(in srgb,var(--board-hl, var(--accent)) 45%,transparent);pointer-events:none;animation:rnr-unlock 2.4s ease-in-out infinite}@keyframes rnr-unlock{0%,to{opacity:.55}50%{opacity:1}}.board-wrap [data-selected=true]{background-color:color-mix(in srgb,var(--board-hl2, var(--accent-strong)) 32%,transparent)!important}.board-wrap [data-selected=true]:before{border-color:var(--board-hl2, var(--accent-strong));box-shadow:inset 0 0 0 1px #060a0e8c,0 0 0 2px color-mix(in srgb,var(--board-hl2, var(--accent-strong)) 45%,transparent);opacity:1;animation:none}.board-wrap [data-target=true]:after{content:"";position:absolute;left:50%;top:50%;width:30%;height:30%;transform:translate(-50%,-50%);border-radius:50%;background:color-mix(in srgb,var(--board-hl, var(--accent)) 85%,transparent);box-shadow:0 0 0 2px #060a0e80,0 0 8px color-mix(in srgb,var(--board-hl, var(--accent)) 55%,transparent);pointer-events:none}.board-wrap [data-capture=true]:after{width:86%;height:86%;border-radius:0;background:transparent;border:3px solid var(--danger);box-shadow:inset 0 0 12px color-mix(in srgb,var(--danger) 45%,transparent),0 0 8px color-mix(in srgb,var(--danger) 40%,transparent)}.board-wrap [data-movable=true]:hover{background-color:color-mix(in srgb,var(--board-hl, var(--accent)) 18%,transparent)!important}.board-wrap [data-target=true]:hover{background-color:color-mix(in srgb,var(--board-hl, var(--accent)) 22%,transparent)!important}.board-wrap [data-capture=true]:hover{background-color:color-mix(in srgb,var(--danger) 22%,transparent)!important}.board-wrap [data-lastcapture=true]{background-color:color-mix(in srgb,var(--danger) 24%,transparent)!important}.board-wrap .threat-pip{position:absolute;top:4%;right:4%;width:17%;height:17%;border-radius:50%;pointer-events:none;z-index:5;background:radial-gradient(circle at 35% 35%,#ff8d84,var(--danger));box-shadow:0 0 0 1px #060a0e8c,0 0 8px color-mix(in srgb,var(--danger) 70%,transparent);animation:threat-pulse 1.4s ease-in-out infinite}@keyframes threat-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.25);opacity:1}}@media(prefers-reduced-motion:reduce){.board-wrap .threat-pip{animation:none}}@media(prefers-reduced-motion:reduce){.board-wrap [data-movable=true]:before{animation:none;opacity:.9}}:root{--bg: #0b0f14;--panel: #151d27;--panel-2: #1b2531;--line: #263341;--ink: #e6eef7;--ink-soft: #93a3b5;--accent: #00d6c4;--accent-strong: #ffc93c;--danger: #e0574b;--sq-light: #33404f;--sq-dark: #1d2733;--radius: 6px}@media(prefers-color-scheme:light){:root{--bg: #0b0f14;--panel: #151d27;--ink: #e6eef7;--ink-soft: #93a3b5;--line: #263341;--sq-light: #33404f;--sq-dark: #1d2733}}body{background:radial-gradient(ellipse 90% 55% at 50% -10%,rgba(0,214,196,.07),transparent 70%),var(--bg);background-attachment:fixed}.btn{clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);border-radius:0;font-weight:600;letter-spacing:.03em}.btn-primary,.btn-roll{background:linear-gradient(100deg,var(--accent),#00a99b);border-color:transparent;color:#04181a;font-weight:700}.navbar{background:linear-gradient(180deg,var(--panel-2),var(--panel));border-bottom:1px solid var(--accent);box-shadow:0 1px #00d6c42e,0 6px 20px #00000059}.navbar .brand{letter-spacing:-.02em}.navbar .brand-n{color:var(--accent)}.navbar .nav-links a{font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.player-bar,.dice-well,.game-list,.odds-panel,.waiting-panel,.firstrun{border-left:2px solid var(--line);border-radius:0}.player-bar.active{border-left-color:var(--accent)}.player-bar.winner{border-left-color:var(--accent-strong)}.dice-well.active{border-left-color:var(--accent);box-shadow:0 0 14px #00d6c41f}.player-clock{font-family:ui-monospace,Cascadia Mono,monospace;letter-spacing:.02em;border-radius:0;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}.player-clock.ticking{color:var(--accent)}.player-clock.low{color:var(--danger)}.player-avatar{border-radius:0;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.die{border-radius:3px;background:linear-gradient(160deg,var(--panel-2),var(--bg));border:1px solid var(--line);clip-path:polygon(10% 0,100% 0,100% 90%,90% 100%,0 100%,0 10%)}.die img{width:78%;height:78%;object-fit:contain}.die.live{border-color:var(--accent);box-shadow:0 0 12px #00d6c438}:root.dice-invert .die{background:linear-gradient(160deg,#f6f2e7,#d9d3c2)}.badge{letter-spacing:.07em}.game-row{border-top:1px solid var(--line)}.game-row:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.banner{border-radius:0;border-left-width:2px}.gameover-panel{border-radius:0;border-left:3px solid var(--accent-strong);background:linear-gradient(100deg,color-mix(in srgb,var(--accent-strong) 8%,var(--panel)),var(--panel))}.learn-die{border-radius:3px;border-color:var(--accent);background:linear-gradient(160deg,var(--panel-2),var(--bg))}.learn-die img{width:76%;height:76%;object-fit:contain}.install-prompt,.firstrun-card,.colorway,.board-swatch{border-radius:0}.game-list h3,.odds-title,.chat-title,.waiting-title{text-transform:uppercase;letter-spacing:.11em;font-size:11px;color:var(--ink-soft)}
