:root{color-scheme:dark;--bg:#080d18;--panel:#101827;--water:#17243a;--line:#35445f;--text:#edf4ff;--muted:#b8c5d9;--gold:#f1d38e;--blue:#8fc6ee;--danger:#f19a91}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 system-ui,"Yu Gothic",sans-serif}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 16px;color:var(--text);background:var(--water)}button:disabled{opacity:.48;cursor:default}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:hover:not(:disabled){filter:brightness(1.14)}[hidden]{display:none!important}header,footer{max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:22px 40px}header>a{display:flex;align-items:center;gap:12px}.moon{font-size:28px;color:var(--gold);line-height:1}.quiet{background:transparent;color:var(--muted);border-color:transparent}.quiet:hover{border-color:var(--line)}main{max-width:1280px;margin:auto;padding:28px 24px 48px}.intro{display:flex;justify-content:space-between;align-items:center;padding:0 0 28px}.eyebrow{font-size:12px;letter-spacing:.15em;color:var(--gold);margin:0 0 10px}h1{font-family:serif;font-size:66px;letter-spacing:.16em;font-weight:500;line-height:1.1;margin:0}h1 span{font:14px system-ui;letter-spacing:.3em;margin-left:20px;color:var(--muted)}.tagline{font-size:20px;margin:18px 0 0}.intro-note{color:var(--muted);border-left:1px solid var(--line);padding-left:30px;margin-right:6px}.setup{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border:1px solid var(--line);padding:22px;background:var(--panel);border-radius:12px;margin-bottom:24px}.field{display:flex;flex-direction:column;gap:6px}label{color:var(--muted);font-size:13px}select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:7px;background:var(--bg);padding:8px;color:var(--text)}.start-actions{display:flex;gap:12px;grid-column:1/3}.primary{background:var(--gold);color:#101827;font-weight:700;border-color:var(--gold)}.primary span{margin-left:16px}.secondary{background:transparent}.set-note{margin:0;align-self:center;color:var(--muted);font-size:13px}.play-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:24px;align-items:start}.arena{border:1px solid var(--line);border-radius:14px;background:radial-gradient(ellipse at 50% 35%,#1b303b 0,#111d2d 50%,#101827 78%);overflow:hidden;scroll-margin-top:14px}.board-heading{padding:15px 22px;display:flex;justify-content:space-between;font-size:13px;color:var(--muted);border-bottom:1px solid #35445f80}.turn-line{display:flex;gap:14px;align-items:start;padding:18px 22px 2px;min-height:92px}.turn-line>span{font-size:24px;color:var(--gold)}.turn-line strong{font-size:16px}.turn-line p{font-size:13px;color:var(--muted);margin:5px 0}.board{position:relative;width:100%;max-width:590px;aspect-ratio:570/625;margin:0 auto}.board>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tile{fill:#142438;stroke:#405672;stroke-width:1}.tile.home1{fill:#3a352a;stroke:var(--gold);stroke-width:2}.tile.home2{fill:#193345;stroke:var(--blue);stroke-width:2}.tile.selected{fill:#665431;stroke:var(--gold);stroke-width:3}.tile.destination{fill:#263d42;stroke:var(--gold);stroke-dasharray:5 4;stroke-width:2}.tile.target{fill:#504332;stroke:var(--gold);stroke-width:3}.tile.last{stroke:#d8e5f5;stroke-width:2}.tile.cpu-from{fill:#294559;stroke:var(--blue);stroke-width:3}.tile.cpu-to{fill:#2a4d65;stroke:var(--blue);stroke-width:4}.cell{position:absolute;transform:translate(-50%,-50%);width:14.56%;height:13.28%;border:2px solid transparent;border-radius:50%;padding:0;background:none;color:var(--muted);min-height:0;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.1}.cell:disabled{opacity:1}.cell.can-select{cursor:pointer}.cell.can-select .piece-icon{box-shadow:0 0 0 2px #edf4ff24}.cell.destination:before{content:'◎';font-size:24px;line-height:1;color:var(--gold);position:absolute}.cell.destination.occupied:before{font-size:42px;opacity:.6}.cell.chosen{border:2px solid var(--gold)}.cell.selected{border-color:var(--gold);background:#f1d38e12}.cell:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.piece-icon{display:grid;place-items:center;width:55%;height:55%;border-radius:50%;font-size:clamp(15px,2.5vw,26px);font-family:serif;font-weight:700;background:#101827;border:1px solid currentColor;z-index:1}.p1 .piece-icon{color:var(--gold);background:#3d3527}.p2 .piece-icon{color:var(--blue);background:#203c51;border-radius:23%}.cell.king .piece-icon{border:2px double currentColor;box-shadow:0 0 14px #ffffff14}.cell-label{font-size:12px;position:absolute;bottom:0;color:#b8c5d9;line-height:1}.cell.home-empty .piece-icon{font-family:inherit;font-size:12px;border:none;background:transparent;color:inherit;opacity:.8}.cell .owner-mark{position:absolute;right:3%;top:8%;font-size:12px;line-height:1}.p1{color:var(--gold)}.p2{color:var(--blue)}#move-arrow{fill:none;stroke:var(--gold);color:var(--gold);stroke-width:5;stroke-dasharray:9 7;pointer-events:none;opacity:.85}#move-arrow.cpu{stroke:var(--blue);color:var(--blue)}.board-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0 12px 16px;color:var(--muted);font-size:12px}.sigil-section{border-top:1px solid var(--line);padding:16px 18px 0;background:#0c142180}.rack-label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:8px}.rack-label strong{font-weight:500;color:var(--text)}.sigil-rack{display:grid;grid-template-columns:1fr 1fr .85fr .85fr;gap:10px}.sigil{min-height:104px;padding:8px 5px 6px;display:flex;flex-direction:column;align-items:center;background:#111f30;border:1px solid #627791;position:relative}.sigil strong{font-family:serif;font-size:20px;line-height:1.2}.sigil svg{width:100%;height:66px;max-width:100px;overflow:visible}.sigil small{font-size:12px;color:var(--muted)}.sigil.waiting{border-color:#35445f;border-style:dashed;opacity:.65}.sigil.selected{border:2px solid var(--gold);background:#3d3525;padding:7px 4px 5px}.sigil.cpu-used{border:2px solid var(--blue);background:#203f50}.sigil.coming{border-color:var(--blue);opacity:1}.sigil:not(.waiting):disabled{opacity:.75}.sigil-note{font-size:12px;color:var(--muted);margin:10px 0}.move-tray{padding:0 18px 18px;background:#0c142180}.move-tray>p{font-size:13px;min-height:66px;margin:0 0 12px;padding:12px;background:var(--bg);border-radius:7px;color:var(--muted)}.move-tray strong{color:var(--text)}.confirm-row{display:flex;gap:10px}.confirm-row .primary{flex:1}.move-tray>#practice-next{width:100%;margin-top:10px}.dashboard{display:flex;flex-direction:column;gap:16px;min-width:0}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:12px}.player{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.player.active{border-color:currentColor}.player>span{font-size:13px}.player small{font-size:12px;color:var(--muted);margin-left:5px}.player strong{font-size:34px;font-weight:500;line-height:1.4}.player>span:last-child{font-size:12px;color:var(--muted)}.decision{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:22px}.decision h2{font:500 24px/1.4 serif;margin:6px 0 10px}.decision>p:not(.eyebrow){margin:0 0 14px;color:var(--muted);font-size:14px}.handoff{display:flex;flex-direction:column;gap:5px;background:var(--bg);padding:16px;border-radius:7px}.handoff span,.handoff small{font-size:12px;color:var(--muted)}.handoff strong{font:500 24px/1.4 serif;letter-spacing:.12em}.rules-mini{padding:0 6px}.rules-mini p{font-size:13px;color:var(--muted);margin:0 0 18px}.rules-mini span{float:left;color:var(--gold);margin-right:12px;font-size:12px}.rules-mini strong{display:block;color:var(--text);font-size:15px;font-weight:500;margin-bottom:5px}.history{border-top:1px solid var(--line);padding-top:12px}.history summary{font-size:13px;color:var(--muted);cursor:pointer;min-height:44px}.history summary span{float:right}.history ol{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;font-size:13px}.history li{padding:7px 0;border-bottom:1px solid #35445f50}.history li:first-child{color:var(--gold)}.result-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}.result-home{display:inline-flex;justify-content:center;align-items:center;min-height:36px;font-size:12px;text-decoration:underline;color:var(--muted)}.footnotes{display:grid;grid-template-columns:1fr 1fr;gap:34px;border-top:1px solid var(--line);padding-top:28px;margin-top:36px}.footnotes h3{font-size:18px;font-weight:500;margin:8px 0}.footnotes p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}footer{border-top:1px solid var(--line);font-size:12px;color:var(--muted)}dialog{width:min(580px,calc(100% - 32px));background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:28px;max-height:85dvh}dialog::backdrop{background:#020610c9}dialog h2{font:500 26px serif}dialog p,dialog li{font-size:14px;color:var(--muted)}dialog li{margin:12px 0}dialog strong{color:var(--text)}dialog ol{padding-left:22px}.close{float:right;padding:0;width:44px;background:transparent}
@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px}.intro-note{font-size:14px}.turn-line{padding:14px 16px 0}.decision{padding:18px}.sigil-rack{gap:7px}.sigil-section{padding:14px 12px 0}.move-tray{padding:0 12px 14px}.cell-label{font-size:12px}.sigil svg{height:55px}.sigil{min-height:95px}}
@media(max-width:780px){header,footer{padding:18px 24px}.play-layout{grid-template-columns:1fr}.board{max-width:550px}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:18px}.scoreboard,.history,#reset{grid-column:1/-1}.setup{grid-template-columns:1fr 1fr}.start-actions{grid-column:1/-1;grid-row:3}.set-note{grid-column:2;grid-row:2}.intro-note{display:none}.cell-label{font-size:12px}.piece-icon{font-size:25px}}
@media(max-width:500px){header{padding:16px}main{padding:16px 16px 32px}.intro{padding-bottom:24px}h1{font-size:52px}h1 span{font-size:13px;margin-left:15px}.tagline{font-size:18px}.eyebrow{font-size:11px;letter-spacing:.1em}.setup{padding:16px;gap:12px;margin-bottom:18px}.set-note{font-size:12px}.start-actions{gap:10px}.start-actions button{flex:1;white-space:nowrap;padding:10px 12px}.primary span{margin-left:4px}.board-heading{padding:12px 14px;font-size:12px}.turn-line{min-height:95px;padding:13px 14px 0;gap:10px}.turn-line strong{font-size:15px}.turn-line p{font-size:12px;line-height:1.5;margin:4px 0}.turn-line>span{font-size:20px}.piece-icon{font-size:17px}.cell-label{font-size:10px;bottom:0}.cell .owner-mark{font-size:10px}.cell.home-empty .piece-icon{font-size:11px}.board-legend{font-size:10px;gap:6px 10px;padding:0 8px 12px}.sigil-section{padding:12px 10px 0}.sigil-rack{gap:7px;grid-template-columns:1fr 1fr .83fr .83fr}.sigil{min-height:93px;padding:6px 2px 5px}.sigil.selected{padding:5px 1px 4px}.sigil strong{font-size:18px}.sigil svg{height:52px}.sigil small{font-size:10px}.rack-label,.sigil-note{font-size:11px}.move-tray{padding:0 10px 14px}.move-tray>p{font-size:12px}.confirm-row{gap:8px}.confirm-row button{padding:10px 12px;font-size:14px}.dashboard{display:flex;gap:14px}.scoreboard{gap:10px}.player{padding:12px 16px}.player strong{font-size:30px}.rules-mini{display:none}.decision{padding:18px}.decision h2{font-size:23px}.footnotes{grid-template-columns:1fr;gap:20px}.footnotes h3{font-size:17px}footer{padding:18px 16px;flex-wrap:wrap;gap:8px}.cell.destination:before{font-size:22px}.cell.destination.occupied:before{font-size:36px}}
.control-panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.control-panel .sigil-section{border-top:0}.danger{color:var(--danger)!important}
@media(min-width:781px){.control-panel .sigil-section{padding:16px 12px 0}.control-panel .sigil-rack{gap:7px}.control-panel .sigil svg{height:55px}.control-panel .sigil{min-height:100px}.control-panel .move-tray{padding:0 12px 14px}.control-panel .confirm-row{flex-wrap:wrap}.control-panel .confirm-row button{padding:10px 12px}.control-panel .confirm-row .primary{flex:1;white-space:nowrap}}
@media(max-width:780px){.dashboard{display:flex}.control-panel{order:-1}.turn-line{min-height:78px}.control-panel .sigil svg{height:48px}.control-panel .sigil{min-height:88px}.control-panel .move-tray>p{min-height:58px}.arena{scroll-margin-top:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
