:root{--bg:#120e0b;--bg-2:#18120e;--panel:#1f1812;--panel-2:#271e17;--panel-3:#30251c;--line:#3e3026;--line-2:#574333;--text:#f0e6d4;--text-dim:#b5a58c;--text-faint:#a3937b;--brass:#e0a458;--brass-2:#c9853f;--felt:#1d3a2d;--felt-2:#26493a;--chalk:#f5f1e6;--danger:#e0654f;--good:#7fd1a8;--warn:#f2b35e;--c-R:#d55e00;--c-B:#0072b2;--c-G:#009e73;--c-Y:#f0e442;--c-R-ink:#d55e00;--c-B-ink:#3b9ad9;--c-G-ink:#19b98b;--c-Y-ink:#f0e442;--sq-light:#c7ad83;--sq-dark:#957652;--pawn-S:#f6eedf;--pawn-S-edge:#4a3a2b;--pawn-N:#2a211b;--pawn-N-edge:#dcc7a2;--hl-move:#56b4e9;--hl-capture:#e0654f;--hl-select:#e69f00;--hl-epitaph:#cc79a7;--radius:10px;--radius-sm:6px;--shadow:0 10px 30px #00000073;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--chalk-font:"Chalkboard SE", "Chalkduster", "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.high-contrast{--sq-light:#e2cfa9;--sq-dark:#7a5a36;--line:#6d5540;--text-dim:#d9cbb3;--hl-move:#7cc8f5;--hl-capture:#ff7a5c}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(ellipse at 50% -10%, #e0a4581f, transparent 55%), radial-gradient(ellipse at 50% 120%, #1d3a2d59, transparent 60%), var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}#root{min-height:100vh}h1,h2,h3{font-family:var(--serif);letter-spacing:.01em;margin:0 0 .5em;font-weight:600}h1{font-size:1.8rem}h2{font-size:1.25rem}h3{font-size:1rem}p{margin:0 0 .6em}code{font-family:var(--mono);color:var(--chalk);font-size:.92em}a{color:var(--brass)}:focus-visible{outline:3px solid var(--hl-move);outline-offset:2px}.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}.dim{color:var(--text-dim)}.small{font-size:.85em}.good{color:var(--good)}.warn{color:var(--warn)}.lead{color:var(--text);max-width:70ch;font-size:1.05rem}.mini-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);margin-bottom:4px;font-size:.72rem;display:block}.btn{font:inherit;color:var(--text);background:linear-gradient(180deg, var(--panel-3), var(--panel-2));border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;min-height:40px;transition:transform .12s var(--ease), background .12s, border-color .12s;padding:.55em 1em;font-weight:600}.btn:hover:not(:disabled){border-color:var(--brass-2);background:linear-gradient(180deg, #3a2d22, var(--panel-3))}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, #eab26b, var(--brass-2));color:#1c130b;border-color:#f3c68b}.btn-primary:hover:not(:disabled){background:linear-gradient(#f3c07e,#d6904a);border-color:#fad8a8}.btn-danger{color:#ffb4a5;border-color:#8c3b2e}.btn-small{min-height:34px;padding:.35em .8em;font-size:.9em}.btn-large{min-height:52px;padding:.7em 1.4em;font-size:1.08rem}.btn-sub{color:var(--text-dim);font-size:.8rem;font-weight:400;display:block}.btn-primary .btn-sub{color:#3b2a18}.link-button{color:var(--text-dim);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px 0;font-size:.85rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.link-button:hover:not(:disabled){color:var(--brass)}.link-button:disabled{opacity:.5;cursor:default}.chip{background:var(--panel-3);border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;font-size:.85rem;font-weight:600;display:inline-block}.chip-dim{color:var(--text-dim);font-weight:400}.badge{border:1px solid var(--line-2);color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:.75rem;display:inline-flex}.badge-passed{background:#2c241c;border-color:#6b5a44}.badge-thinking{border-color:var(--brass-2);color:var(--brass);flex-basis:100%;justify-content:center}.dots{background:radial-gradient(circle,currentColor 2px,#0000 3px) 0 0/6px 6px repeat-x;width:18px;height:6px;animation:1s steps(3,end) infinite dots}@keyframes dots{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.notice{border:1px solid var(--brass-2);color:var(--text);border-radius:var(--radius-sm);background:#3a2a1a;margin:6px 0;padding:8px 12px}.notice-error{border-color:var(--danger);background:#3a1d17}.field{flex-direction:column;gap:4px;margin:0 0 12px;display:flex}.field-label{font-size:.9rem;font-weight:600}.field-hint{color:var(--text-dim);font-size:.8rem;font-weight:400;display:block}.field-row{flex-wrap:wrap;gap:16px;display:flex}.field-row .field{flex:200px}input[type=text],select{font:inherit;color:var(--text);background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);min-height:40px;padding:.5em .7em}input[type=range]{accent-color:var(--brass);width:min(320px,100%)}.inline-field{align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.choice{border:1px solid var(--line);border-radius:var(--radius);margin:0 0 14px;padding:10px 12px 12px}.choice legend{padding:0 6px;font-weight:600}.choice-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.choice-option{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;flex-direction:column;gap:2px;padding:10px 12px 10px 38px;display:flex;position:relative}.choice-option input{accent-color:var(--brass);width:16px;height:16px;position:absolute;top:13px;left:12px}.choice-option.is-checked{border-color:var(--brass);background:#2d2218}.choice-label{font-weight:600}.choice-hint{color:var(--text-dim);font-size:.8rem}.toggle{cursor:pointer;border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:var(--panel-3);border:1px solid var(--line-2);border-radius:999px;flex:none;width:42px;height:24px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:var(--text-dim);width:18px;height:18px;transition:transform .15s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--brass-2)}.toggle input:checked+.toggle-track:after{background:#fff4e0;transform:translate(18px)}.toggle input:focus-visible+.toggle-track{outline:3px solid var(--hl-move);outline-offset:2px}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0;display:flex}.panel{background:linear-gradient(180deg, var(--panel), var(--bg-2));border:1px solid var(--line);border-radius:var(--radius);margin:0 0 16px;padding:16px 18px}.page{max-width:920px;margin:0 auto;padding:24px 16px 60px}.page-head{align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-head h1{margin:0}.title-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.title-art{gap:18px;height:120px;margin-bottom:8px;display:flex}.title-pawn{filter:drop-shadow(0 12px 18px #0009);width:96px;height:110px;display:block}.title-pawn-n{transform:rotate(-6deg)translateY(6px)}.title-pawn-s{transform:rotate(5deg)}.logo{font-family:var(--serif);letter-spacing:.22em;color:var(--brass);text-shadow:0 2px #6b4520,0 8px 30px #e0a45859;margin:0 0 4px .22em;font-size:clamp(3rem,12vw,5.6rem)}.tagline{color:var(--text-dim);max-width:44ch;margin-bottom:28px}.menu{flex-direction:column;gap:10px;width:min(380px,100%);display:flex}.menu-row{flex-wrap:wrap;gap:8px;display:flex}.menu-row .btn{white-space:nowrap;flex:1;padding-left:.6em;padding-right:.6em}.title-footer{margin-top:28px;font-size:.8rem}.title-footer p{margin:0}.title-footer .title-sharing{max-width:34rem;margin-top:6px}.setup-form{max-width:760px}.settings-list{max-width:640px}.about{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.match,.match-inner{flex-direction:column;min-height:100vh;display:flex}.match-bar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#120e0bd9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex;position:sticky;top:0}.match-bar-info,.match-bar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.match-title{font-family:var(--serif);color:var(--brass)}.match-grid{flex:1;grid-template-columns:minmax(220px,260px) minmax(0,1fr) minmax(250px,310px);align-items:start;gap:14px;padding:14px;display:grid}.col-left,.col-right{flex-direction:column;gap:12px;min-width:0;display:flex}.col-center{flex-direction:column;align-items:center;gap:10px;min-width:0;display:flex}.col-right{max-height:calc(100vh - 74px);position:sticky;top:60px}.board-area{justify-content:center;width:100%;display:flex;position:relative}.match-grid.has-coach{grid-template:"left center coach""left center right"1fr/minmax(200px,240px) minmax(0,1fr) minmax(280px,360px)}.match-grid.has-coach>.col-left{grid-area:left}.match-grid.has-coach>.col-center{grid-area:center}.match-grid.has-coach>.col-right{grid-area:right;max-height:none;position:static}.match-grid.has-coach>.coach-slot{grid-area:coach;min-width:0}.match-grid.has-coach .side-content{display:contents}.match-grid.has-coach .side-info{order:-1}.coach{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--brass-2);border-radius:var(--radius);flex-direction:column;gap:7px;padding:10px 12px;font-size:.95rem;display:flex;box-shadow:0 0 0 1px #e0a45826}.coach-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;display:flex}.coach-head .mini-label{margin:0}.coach-dots{flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.coach-dot{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:22px;height:22px;padding:0;display:grid}.coach-dot:before{content:"";background:var(--panel-3);border:1px solid var(--line-2);border-radius:50%;width:10px;height:10px}.coach-dot.is-solved:before{background:var(--good);border-color:var(--good)}.coach-dot.is-current:before{background:var(--brass);border-color:var(--brass);box-shadow:0 0 0 3px #e0a4584d}.coach-dot:focus-visible{outline:2px solid var(--brass)}.coach-title{font-family:var(--serif);color:var(--brass);margin:0;font-size:1.25rem}.coach-text{margin:0;line-height:1.4}.coach-task{border-left:3px solid var(--brass);border-radius:var(--radius-sm);background:#e0a4581a;margin:2px 0 0;padding:8px 10px;font-weight:600}.coach-task .mini-label{margin-bottom:2px}.coach-hint{border:1px dashed var(--line-2);border-radius:var(--radius-sm);color:var(--text-dim);margin:0;padding:6px 10px}.coach-actions{flex-wrap:wrap;gap:6px;display:flex}.coach-result{border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.coach-result p{margin:0;line-height:1.45}.coach-result.is-success{border:1px solid var(--good);background:#7fd1a81f}.coach-result.is-retry{border:1px solid var(--warn);background:#f2b35e1f}.coach-nav{border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding-top:6px;display:flex}.tutorial-tips ol{flex-direction:column;gap:8px;margin:8px 0 0;padding-left:1.3em;line-height:1.45;display:flex}.page-tutorial{max-width:760px}.rules-tutorial{border:1px solid var(--brass-2);border-radius:var(--radius-sm);background:#e0a45814;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.board-wrap{--size:min(100%, calc(100vh - 330px), 600px);width:calc(var(--size) + 26px);grid-template-rows:auto 28px;grid-template-columns:26px auto;min-width:278px;display:grid}.board-ranks{color:var(--text-faint);grid-area:1/1;grid-template-rows:repeat(6,1fr);place-items:center;padding-right:10px;font-size:.75rem;font-weight:600;display:grid}.board-files{color:var(--text-faint);grid-area:2/2;grid-template-columns:repeat(6,1fr);place-items:center;padding-top:10px;font-size:.75rem;font-weight:600;display:grid}.board{aspect-ratio:1;width:100%;min-width:252px;box-shadow:0 0 0 6px #3a2a1c, 0 0 0 7px #6b4d31, var(--shadow);border-radius:8px;grid-area:1/2;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(6,1fr);display:grid;position:relative;overflow:hidden}.board-row{grid-column:1/-1;grid-template-columns:repeat(6,1fr);display:grid}.sq{cursor:pointer;background:var(--sq-light);border:none;margin:0;padding:0;display:block;position:relative}.sq-dark{background:var(--sq-dark)}.sq-light{background-image:linear-gradient(135deg,#ffffff0f,#0000 60%)}.sq-dark{background-image:linear-gradient(135deg,#0000000d,#0000 60%)}.sq:focus-visible{outline:3px solid var(--hl-move);outline-offset:-3px;z-index:3}.sq-last:before{content:"";background:#e0a45842;position:absolute;inset:0}.sq-mark{pointer-events:none;z-index:4;position:absolute;inset:0}.hl-move .sq-mark:after{content:"";background:var(--hl-move);border-radius:50%;width:28%;height:28%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #00000059}.hl-hop .sq-mark:after{content:"";border:4px solid var(--hl-move);width:40%;height:40%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 2px #00000059}.hl-capture .sq-mark{box-shadow:inset 0 0 0 5px var(--hl-capture)}.hl-capture .sq-mark:after{content:"×";font-size:calc(var(--size,600px) / 14);color:var(--hl-capture);text-shadow:0 0 3px #000,0 0 1px #000;font-weight:900;line-height:1;position:absolute;top:0;right:7%}.hl-pawn .sq-mark{box-shadow:inset 0 0 0 4px var(--hl-select)}.hl-selected .sq-mark{box-shadow:inset 0 0 0 5px var(--hl-select), inset 0 0 22px #e69f008c}.hl-collateral .sq-mark{box-shadow:inset 0 0 0 4px var(--hl-select);background:repeating-linear-gradient(135deg,#e69f0047 0 6px,#0000 6px 12px)}.hl-epitaph .sq-mark{box-shadow:inset 0 0 0 5px var(--hl-epitaph)}.hl-inspect .sq-mark{box-shadow:inset 0 0 0 3px var(--chalk)}.pawn-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.pawn-slot{width:16.6667%;height:16.6667%;transition:transform .42s var(--ease);justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.pawn-selected .pawn-figure{transform:translateY(-6%)scale(1.06)}.pawn-fading{animation:capture-out .85s var(--ease) forwards}@keyframes capture-out{0%{opacity:1;filter:none}40%{opacity:.9;filter:brightness(1.6) drop-shadow(0 0 10px var(--hl-capture))}to{opacity:0;transform:scale(.6)rotate(-18deg)}}.pawn-name{color:var(--chalk);white-space:nowrap;text-overflow:ellipsis;background:#120e0bcc;border-radius:3px;max-width:100%;padding:2px 4px;font-size:.62rem;line-height:1;position:absolute;bottom:1px;left:50%;overflow:hidden;transform:translate(-50%)}.pawn-figure{width:82%;height:82%;transition:transform .2s var(--ease);display:block;position:relative}.pawn-svg{width:100%;height:100%;overflow:visible}.pawn-shadow{fill:#00000059}.pawn-S .pawn-body,.pawn-S .pawn-head{fill:var(--pawn-S);stroke:var(--pawn-S-edge);stroke-width:3.5px}.pawn-N .pawn-body,.pawn-N .pawn-head{fill:var(--pawn-N);stroke:var(--pawn-N-edge);stroke-width:3.5px}.pawn-S .pawn-body{fill:url(#none) var(--pawn-S)}.pawn-crown{fill:#f2c14e;stroke:#7a5310;stroke-width:2.5px;stroke-linejoin:round}.pawn-badge{border-radius:50%;justify-content:center;align-items:center;width:34%;height:34%;display:flex;position:absolute}.pawn-immune{color:#8fd0ff;background:#0a1e2dd9;border:1px solid #8fd0ff;padding:3px;bottom:2%;left:-2%}.pawn-inscription{border:1px solid var(--brass);color:var(--brass);background:#281c12eb;padding:1px;bottom:2%;right:-2%}.pawn-inscription .route-glyph{width:100%;height:100%}.pawn-ticket{background:#c8302a;border:1px solid #ffd2c4;border-radius:2px;width:22%;height:16%;position:absolute;top:6%;right:4%;transform:rotate(18deg);box-shadow:0 2px 4px #00000080}.ticket-inline{background:#c8302a;width:10px;height:7px;margin-left:6px;display:inline-block;transform:rotate(12deg)}.ghost-layer{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0}.ghost-layer path{fill:none;stroke:var(--hl-move);stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 18;opacity:.95}.ghost-layer circle{fill:var(--hl-move);stroke:#0b1a24;stroke-width:3px}.ghost-epitaph path{stroke:var(--hl-epitaph)}.ghost-epitaph circle{fill:var(--hl-epitaph)}.card{--w:64px;--h:90px;width:var(--w);height:var(--h);color:#1d1712;font:inherit;transition:transform .16s var(--ease), box-shadow .16s, opacity .16s, filter .16s;background:linear-gradient(#f7f0e1,#e8dcc3);border:1px solid #a8987c;border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 3px 8px #00000073}button.card{cursor:pointer}.card:before{content:"";background:var(--band,#9b8a70);height:16%;position:absolute;top:0;left:0;right:0}.card.c-R{--band:var(--c-R)}.card.c-B{--band:var(--c-B)}.card.c-G{--band:var(--c-G)}.card.c-Y{--band:var(--c-Y)}.card-sm{--w:44px;--h:62px;font-size:.75rem}.card-lg{--w:84px;--h:118px}.card-number{font-family:var(--serif);font-weight:700;font-size:calc(var(--h) * .34);margin-top:8%;line-height:1}.card-glyph{align-items:center;gap:2px;display:flex}.card.c-R .card-glyph,.card.c-R .card-corner{color:var(--c-R)}.card.c-B .card-glyph,.card.c-B .card-corner{color:var(--c-B)}.card.c-G .card-glyph,.card.c-G .card-corner{color:var(--c-G)}.card.c-Y .card-glyph,.card.c-Y .card-corner{color:#c9b800}.card.c-Y .glyph{filter:drop-shadow(0 0 .5px #5c5300)drop-shadow(0 0 .5px #5c5300)}.card-corner{font-size:.7rem;font-weight:700;line-height:1;position:absolute;top:18%;left:6%}.card-caption{text-transform:uppercase;letter-spacing:.06em;color:#5b4d3b;font-size:.62rem}.card-sm .card-caption{display:none}.card-key{color:#7a6a52;font-size:.62rem;font-weight:600;position:absolute;top:18%;right:6%}.card-playable{box-shadow:0 0 0 2px var(--brass), 0 6px 16px #e0a45859}.card-playable:hover{transform:translateY(-5px)}.card-selected{box-shadow:0 0 0 3px var(--hl-select), 0 10px 22px #e69f0073;transform:translateY(-10px)}.card-unplayable{opacity:.5;filter:saturate(.4)}.card-wild{color:var(--chalk);background:linear-gradient(160deg,#3a2c21,#1e1611);border-color:#6b5540}.card-wild:before{background:linear-gradient(90deg, var(--c-R) 0 25%, var(--c-B) 25% 50%, var(--c-G) 50% 75%, var(--c-Y) 75%)}.card-wild .card-caption{color:#c9b79a}.card-wild:not(.card-wild-named){padding-top:calc(var(--h) * .16)}.card-wild:not(.card-wild-named) .card-number{font-size:calc(var(--h) * .24);margin-top:0}.card-wild .card-key{color:#b9a88c}.card-wild-named{background:#202a24;border-color:#56675b}.card-wild-named .card-number,.card-wild-named .card-caption{font-family:var(--chalk-font);color:var(--chalk);text-shadow:0 0 1px #ffffff80}.card-wild-named .card-caption{text-transform:none;letter-spacing:0;font-size:.8rem}.wild-emblem{grid-template-columns:1fr 1fr;gap:2px;display:grid}.wild-emblem>span{justify-content:center;align-items:center;line-height:0;display:flex}.card .wild-emblem .glyph{width:calc(var(--h) * .14);height:calc(var(--h) * .14)}.wild-emblem .c-R{color:var(--c-R)}.wild-emblem .c-B{color:#3b9ad9}.wild-emblem .c-G{color:var(--c-G)}.wild-emblem .c-Y{color:var(--c-Y)}.card-epitaph{color:#1a1714;background:linear-gradient(#9d978b,#6e695f);border-color:#c4bdb0;border-radius:45% 45% 8px 8px/26% 26% 8px 8px}.card-epitaph:before{display:none}.card-epitaph .route-glyph{color:#1a1714}.card-epitaph .card-corner{color:#1a1714;top:30%}.card-epitaph .card-caption{color:#2d2924}.card-back{background:repeating-linear-gradient(45deg,#3b2b1f 0 6px,#2a1f17 6px 12px)}.hand{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:8px 4px 4px;list-style:none;display:flex}.hand li{flex-direction:column;align-items:center;gap:4px;max-width:96px;display:flex}.card-reason{color:var(--text-faint);text-align:center;font-size:.68rem;line-height:1.2}.hand-recover .card{box-shadow:0 0 0 2px var(--danger)}.hand-empty{padding:16px}.prompt-bar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px 12px;width:100%;max-width:720px;padding:8px 12px;display:flex}.prompt-bar .prompt-text{flex:260px;margin:0}.prompt-bar .notice,.prompt-bar .face-picker,.prompt-bar .collateral-picker{flex-basis:100%}.prompt-bar.is-mine{border-color:var(--brass-2);box-shadow:0 0 0 1px #e0a45840}.prompt-text{margin:0 0 8px;font-weight:500}.prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.face-picker{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.face-row{gap:4px;display:flex}.btn-face{justify-content:center;align-items:center;gap:4px;min-width:52px;display:inline-flex}.face-row.c-R .btn-face{border-color:var(--c-R)}.face-row.c-B .btn-face{border-color:var(--c-B)}.face-row.c-G .btn-face{border-color:var(--c-G)}.face-row.c-Y .btn-face{border-color:#a99f00}.face-row.c-R .glyph{color:var(--c-R-ink)}.face-row.c-B .glyph{color:var(--c-B-ink)}.face-row.c-G .glyph{color:var(--c-G-ink)}.face-row.c-Y .glyph{color:var(--c-Y-ink)}.collateral-picker{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.player-panel{background:linear-gradient(180deg, var(--panel), var(--bg-2));border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:12px;display:flex}.player-panel.is-deciding{border-color:var(--brass-2)}.player-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.player-names{flex-direction:column;flex:1;min-width:min(6em,100%);line-height:1.2;display:flex}.player-names>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-pawn{flex:none;justify-content:center;align-items:center;width:30px;height:34px;display:flex}.side-pawn .pawn-figure{width:100%;height:100%}.side-token{border-radius:50%;flex:none;width:18px;height:18px}.token-S{background:var(--pawn-S);border:2px solid var(--pawn-S-edge)}.token-N{background:var(--pawn-N);border:2px solid var(--pawn-N-edge);border-radius:4px}.token-big{width:48px;height:48px}.player-scores{align-items:center;gap:12px;display:flex}.score-big{flex-direction:column;align-items:flex-start;min-width:72px;display:flex}.score-value{font-family:var(--serif);color:var(--brass);font-size:2.2rem;font-weight:700;line-height:1}.score-label{color:var(--text-faint);font-size:.7rem}.stat-list{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px;margin:0;font-size:.8rem;display:grid}.stat-list div{flex-direction:column;display:flex}.stat-list dt{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.stat-list dd{align-items:center;gap:3px;min-height:1.3em;margin:0;font-size:.95rem;font-weight:700;display:flex}.pip{border:1.5px solid var(--brass-2);border-radius:50%;width:10px;height:10px}.pip-on{background:var(--brass)}.player-epitaph .epitaph-slot{align-items:center;gap:10px;display:flex}.epitaph-meta{flex-direction:column;min-width:0;font-size:.8rem;display:flex}.epitaph-meta code{word-break:break-word;font-size:.72rem}.player-reserves ul{margin:0;padding:0;font-size:.85rem;list-style:none}.pile-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px}.felt{background:radial-gradient(ellipse at 40% 30%, var(--felt-2), var(--felt) 70%), var(--felt);border-radius:8px;justify-content:center;align-items:center;min-height:150px;display:flex;box-shadow:inset 0 0 30px #00000080}.pile-stack{position:relative}.pile-stack[data-count="2"]:before,.pile-stack[data-count="3"]:before,.pile-stack[data-count="4"]:before{content:"";background:#d9ccb1;border-radius:8px;position:absolute;inset:0;transform:rotate(-7deg)translate(-6px,2px);box-shadow:0 3px 8px #00000073}.pile-empty{color:#b9d1c2;text-align:center;padding:12px;font-size:.85rem}.pile-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:.9rem;display:flex}.chalk{font-family:var(--chalk-font);color:var(--chalk)}.pile-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pile-list li{align-items:center;gap:12px;display:flex}.side-tabs{gap:4px;display:flex}.side-tabs button{font:inherit;color:var(--text-dim);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;flex:1;padding:6px;font-size:.85rem}.side-tabs button[aria-selected=true]{color:var(--text);border-color:var(--brass-2)}.side-content{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow:hidden}.side-info{flex-direction:column;gap:12px;display:flex}.side-info:empty{display:none}.preview-panel,.inspect-panel,.epitaph-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.preview-panel h3{margin-bottom:4px}.preview-formula{margin-bottom:6px;font-size:1.15rem}.preview-formula strong{color:var(--brass)}.preview-lines{gap:2px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.epitaph-warning{border-radius:var(--radius-sm);color:#f1cfe2;background:#cc79a71f;border:1px solid #cc79a78c;align-items:flex-start;gap:10px;margin-top:8px;padding:8px;font-size:.85rem;display:flex}.epitaph-warning p{margin:0}.route-block{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);color:var(--brass);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.route-block code{color:var(--text);font-size:.8rem}.route-compare{grid-template-columns:1fr 1fr;gap:12px;display:grid}.log-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:1;min-height:160px;max-height:52vh;padding:10px 12px;display:flex}.log-list{flex-direction:column;flex:1;gap:3px;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex;overflow-y:auto}.log-list li{border-left:2px solid #0000;padding-left:6px}.log-RoundStarted,.log-RoundEnded,.log-MatchEnded,.log-MatchStarted{color:var(--brass);margin-top:4px;font-weight:600}.log-ChainScored{color:var(--good)}.log-PawnCaptured{border-left-color:var(--hl-capture)!important}.log-EpitaphPlayed,.log-EpitaphReceived{color:#e7bcd4}.score-burst{border:1px solid var(--brass-2);z-index:10;pointer-events:none;box-shadow:var(--shadow);animation:burst-in .26s var(--ease), burst-out .4s ease-in 1.6s forwards;background:#120e0be6;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:12px 22px;display:flex;position:absolute;top:16%;left:50%;transform:translate(-50%,-50%)}@keyframes burst-out{to{opacity:0}}@keyframes burst-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.9)}}.burst-who{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.burst-formula{font-family:var(--serif);align-items:baseline;gap:10px;font-size:2.2rem;font-weight:700;display:flex}.burst-p{color:#9fd9ff}.burst-m{color:#ffd08a}.burst-x,.burst-eq{color:var(--text-faint);font-size:1.6rem}.burst-score{color:var(--brass);animation:pop .32s var(--ease);font-size:2.8rem}@keyframes pop{0%{transform:scale(1.5)}}.burst-tags{color:var(--good);gap:8px;font-size:.8rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#080604b8;justify-content:center;align-items:center;padding:16px;animation:.16s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--line-2);width:min(460px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:14px;padding:20px 22px;overflow:auto}.modal-wide{width:min(680px,100%)}.modal-title{color:var(--brass)}.modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-win .modal-title{color:var(--good)}.modal-loss .modal-title{color:#e7a28f}.match-result{font-family:var(--serif);font-size:1.4rem}.round-result{font-size:1.1rem}.menu-list{flex-direction:column;gap:8px;display:flex}.choice-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.choice-list li{align-items:center;gap:12px;display:flex}.choice-list .route-block{flex:1}.zone-list{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.score-table{border-collapse:collapse;width:100%;margin-top:12px}.score-table th,.score-table td{border-bottom:1px solid var(--line);text-align:center;padding:6px 8px}.score-table th[scope=row]{text-align:left}.score-table td.won{color:var(--brass);font-weight:700}.handoff{z-index:200;background:radial-gradient(at 50% 40%,#2a1f16,#0b0806 70%),#0b0806;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.handoff-card{text-align:center;flex-direction:column;align-items:center;gap:10px;max-width:420px;display:flex}.replay-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.replay-controls input[type=range]{width:min(280px,60vw)}.replay-hand{width:100%}.replay-hand .hand{justify-content:flex-start}.replay-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.replay-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.replay-item>div:first-child{flex-direction:column;display:flex}.replay-actions{gap:6px;display:flex}.glyph-legend{flex-wrap:wrap;gap:10px 20px;margin:12px 0 18px;display:flex}.legend-item{align-items:center;gap:8px;display:inline-flex}.legend-item.c-R .glyph{color:var(--c-R-ink)}.legend-item.c-B .glyph{color:var(--c-B-ink)}.legend-item.c-G .glyph{color:var(--c-G-ink)}.legend-item.c-Y .glyph{color:var(--c-Y-ink)}.rules-toc{flex-wrap:wrap;gap:6px 14px;margin-bottom:18px;font-size:.9rem;display:flex}.rules-section{border-top:1px solid var(--line);padding:14px 0}.rules-section ul{padding-left:1.2em}.rules-section li{margin-bottom:4px}.pawn-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pawn-list.compact li{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.pawn-pick{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:10px;padding:8px 10px;display:flex}.pawn-pick.is-checked{border-color:var(--brass-2);background:#2a2017}.pawn-pick input{accent-color:var(--brass)}.file-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.offer-list{flex-wrap:wrap;gap:18px;margin:0;padding:0;list-style:none;display:flex}.offer{align-items:center;gap:12px;display:flex}.table-result.is-won h2,.run-end.is-won h2{color:var(--good)}.table-result.is-lost h2,.run-end.is-lost h2{color:#e7a28f}.run-recap{gap:4px;margin:4px 0 12px;padding:0;list-style:none;display:grid}.run-recap .is-won:before{content:"✓ ";color:var(--good)}.run-recap .is-lost:before{content:"✗ ";color:var(--warn)}.table-summary{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:8px}.crash{text-align:center;padding-top:20vh}.show-narrow{display:none}@media (max-width:1100px){.match-grid{grid-template-columns:minmax(0,1fr) minmax(240px,300px)}.match-grid.has-coach{grid-template:"left left""center coach""center right"1fr/minmax(0,1fr) minmax(260px,320px)}.col-left{flex-direction:row;grid-column:1/-1}.col-left .player-panel{flex:1;min-width:0}.col-right{top:56px}}@media (max-width:760px){body{font-size:14px}.match-bar{padding:6px 8px;position:static}.match-bar .btn-small{min-height:30px;padding:.25em .6em;font-size:.8rem}.score-label{display:none}.score-burst{padding:6px 14px;top:10%}.burst-formula{font-size:1.5rem}.burst-score{font-size:1.9rem}.match-grid{flex-direction:column;gap:10px;padding:8px;display:flex}.match-grid.has-coach>.coach-slot{order:-1}.coach{padding:10px 12px}.coach-title{font-size:1.15rem}.col-left{flex-direction:row;gap:8px}.col-left .player-panel{gap:6px;padding:8px}.player-epitaph,.player-reserves,.player-panel .link-button{display:none}.score-value{font-size:1.6rem}.stat-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;font-size:.78rem}.player-head{gap:6px}.side-pawn{width:22px;height:26px}.col-right{width:100%;max-height:none;position:static}.board-wrap{--size:min(calc(100vw - 44px), 560px)}.hide-narrow{display:none}.show-narrow{display:inline-flex}.card{--w:54px;--h:76px}.route-compare{grid-template-columns:1fr}.log-panel{max-height:40vh}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.card-sm.card-epitaph .card-corner{display:none}
