:root{color-scheme:dark;--bg:#080d18;--panel:#101827;--water:#17243a;--line:#35445f;--text:#edf4ff;--muted:#b8c5d9;--gold:#f1d38e;--blue:#8fc6ee}*{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{cursor:pointer;min-height:44px;border:1px solid var(--line);border-radius:7px;padding:10px 16px;background:var(--water);color:var(--text)}button:disabled{opacity:.45;cursor:default}button:hover:not(:disabled){filter:brightness(1.15)}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}.primary{background:var(--gold);color:#101827;border-color:var(--gold);font-weight:700}.secondary{background:transparent}.quiet{background:transparent;border-color:transparent;color:var(--muted)}header,footer{max-width:1340px;margin:auto;padding:22px 40px;display:flex;align-items:center;justify-content:space-between}header>a{color:var(--gold);font-size:26px}header>a span{color:var(--text);font-size:15px;margin-left:8px}main{max-width:1260px;margin:auto;padding:24px 24px 44px}.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:12px;letter-spacing:.14em;color:var(--gold);margin:0 0 14px}h1{font:500 64px/1.1 serif;letter-spacing:.18em;margin:0}h1 span{font:14px system-ui;color:var(--muted);margin-left:24px;letter-spacing:.3em}.lead{font-size:20px;margin:18px 0 0}.hero-note{color:var(--muted);border-left:1px solid var(--line);padding-left:28px}.setup{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:24px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}select{width:100%;padding:9px;min-height:44px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:7px}.start-actions{display:flex;gap:10px;grid-column:1/3}.setup p{font-size:12px;color:var(--muted);margin:0}.game-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:24px}.arena{border:1px solid var(--line);border-radius:14px;align-self:start;background:radial-gradient(ellipse at 50% 40%,#20344b,#101827 72%);overflow:hidden}.arena-head{display:flex;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.turn-line{display:flex;align-items:center;gap:12px;padding:20px 24px 8px}.turn-line>span{font-size:28px;color:var(--gold)}.turn-line strong{font-size:19px;font-weight:500}.turn-line p{font-size:13px;color:var(--muted);margin:2px 0 0}.board{position:relative;width:100%;aspect-ratio:840/720}.board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.board-outline{fill:#17273b70;stroke:#465b784a;stroke-width:1}.path{stroke:#50678240;stroke-width:1;fill:none}.move-line{stroke:var(--gold);stroke-width:5;stroke-linecap:round;opacity:.9}.tile{position:absolute;transform:translate(-50%,-50%);width:clamp(54px,6.5vw,82px);height:clamp(58px,6.9vw,88px);padding:0;border:1px solid #4a607c;border-radius:12px;background:#21354e;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.05;isolation:isolate}.tile::before{content:"";position:absolute;z-index:-1;inset:15px 7px 8px;background:repeating-linear-gradient(to top,#edf4ff18 0,#edf4ff18 2px,transparent 2px,transparent 9px);border-radius:5px}.tile.owner1{color:var(--gold);background:#343746}.tile.owner2{color:var(--blue);background:#193348}.tile.owner0{color:var(--muted);background:#27303e}.tile.empty{background:#0c1726;border:1px dashed #35445f;opacity:.65}.tile.empty::before{display:none}.tile .cell-id{font-size:12px;color:var(--muted);position:absolute;top:6px;left:8px}.tile .owner-mark{font-size:14px;position:absolute;top:6px;right:8px}.tile .height{font-size:30px;font-weight:600;line-height:1.2;margin-top:14px}.tile .move-kind{font-size:12px;position:absolute;bottom:-20px;white-space:nowrap;background:var(--panel);padding:2px 4px;border-radius:3px}.tile.source{border:3px solid var(--gold);outline:2px solid #f1d38e55;outline-offset:4px;background:#504b3d}.tile.source .move-kind{color:var(--gold)}.tile.destination{border:3px solid var(--blue);box-shadow:0 0 0 4px #8fc6ee15}.tile.shed{border-style:dashed;border-color:var(--gold)}.tile.chosen{outline:3px solid var(--text);outline-offset:4px;background:#3b5266}.tile.last{box-shadow:0 0 0 3px #edf4ff77}.tile:disabled:not(.empty){opacity:1}.tile.selectable:hover{box-shadow:0 0 0 3px #f1d38e55}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;padding:8px 12px 16px;font-size:12px;color:var(--muted);margin:0}.move-controls{background:#0c1422;padding:20px 22px;border-top:1px solid var(--line)}.preview{font-size:14px;color:var(--muted);min-height:68px}.preview strong{color:var(--text)}.confirm-row{display:flex;gap:10px;margin-top:12px}.confirm-row .primary{flex:1}#pass{width:100%;margin-top:10px}.dashboard{display:flex;flex-direction:column;gap:16px;min-width:0}.score-title{display:flex;align-items:center;justify-content:space-between}.score-title h2{font-size:15px;font-weight:500;margin:0}.score-title span{font-size:12px;color:var(--muted)}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:12px}.player{border:1px solid var(--line);border-radius:10px;padding:14px 18px;background:var(--panel)}.player.active{border-color:currentColor}.player>span{font-size:14px}.player strong{display:block;font-size:42px;font-weight:500;line-height:1.45}.player small{color:var(--muted);font-size:12px;margin-left:6px}.p1{color:var(--gold)}.p2{color:var(--blue)}.set-score{font-size:13px;color:var(--muted);margin:-6px 0 0}.status-card{padding:22px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.status-card h2{font-size:22px;line-height:1.35;margin:8px 0 12px}.status-card p{font-size:14px;color:var(--muted);margin:0}.status-card button{width:100%;margin-top:12px}.status-card label{margin-top:16px}.rules-mini{display:flex;flex-direction:column;gap:18px;border-bottom:1px solid var(--line);padding-bottom:18px}.rules-mini>div{display:flex;gap:14px}.rule-icon{font-size:27px;color:var(--gold);line-height:1.5}.rules-mini p{font-size:13px;color:var(--muted);margin:0}.rules-mini strong{font-size:15px;color:var(--text);font-weight:500}.history summary{font-size:13px;color:var(--muted);cursor:pointer;min-height:32px}.history ol{list-style:none;font-size:12px;max-height:120px;overflow:auto;margin:8px 0 0;padding:0}.history li{padding:6px 0;border-bottom:1px solid #35445f55}.history li:first-child{color:var(--gold)}.footnotes{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);margin-top:40px;padding-top:28px}.footnotes b{font-size:12px;letter-spacing:.1em;color:var(--gold);font-weight:400}.footnotes h3{font-size:18px;font-weight:500;margin:10px 0}.footnotes p{font-size:14px;color:var(--muted);margin:0}footer{font-size:12px;color:var(--muted);border-top:1px solid var(--line)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(560px,calc(100% - 32px));max-height:85dvh}dialog::backdrop{background:#020710cc}dialog h2{font-family:serif;font-weight:500}dialog p,dialog li{color:var(--muted);font-size:14px}dialog li{margin:10px 0}dialog ol{padding-left:22px}.close{float:right;width:44px;padding:0;background:transparent}.replay{padding:16px;border:1px solid var(--blue);border-radius:8px}.replay strong{font-size:14px;font-weight:500}.replay>div{display:flex;gap:8px;margin-top:8px}.replay button{flex:1;padding:8px;font-size:13px}
@media(min-width:1440px){main{max-width:1320px}}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px}.tile{width:58px;height:64px}.hero-note{display:none}.status-card{padding:18px}.turn-line{padding:18px 16px 8px}.turn-line strong{font-size:17px}.turn-line p{font-size:12px}.move-controls{padding:16px}.preview{font-size:13px}}
@media(max-width:740px){header,footer{padding:16px}main{padding:14px 16px 32px}.hero{margin-bottom:24px}h1{font-size:50px}.lead{font-size:18px}.eyebrow{font-size:11px;letter-spacing:.09em}.setup{grid-template-columns:1fr 1fr;padding:16px;gap:14px}.setup>div:nth-child(3){grid-column:1/3}.start-actions{flex-wrap:wrap}.start-actions button{flex:1;white-space:nowrap}.setup p{grid-column:1/3}.game-layout{grid-template-columns:1fr;gap:20px}.arena-head{padding:12px 14px;font-size:12px}.board{max-width:520px;margin:auto}.tile{width:54px;height:58px;border-radius:9px}.tile .cell-id{font-size:10px;top:5px;left:6px}.tile .owner-mark{font-size:12px;top:5px;right:6px}.tile .height{font-size:26px;margin-top:12px}.tile .move-kind{font-size:10px;bottom:-16px}.tile::before{inset:16px 6px 7px}.legend{font-size:10px;gap:7px 10px;padding-top:10px}.turn-line strong{font-size:17px}.turn-line p{font-size:12px}.preview{font-size:13px;min-height:60px}.confirm-row button{padding:10px 12px;font-size:14px}.player strong{font-size:36px}.rules-mini{display:none}.history ol{max-height:105px}.footnotes{grid-template-columns:1fr;gap:24px}.footnotes h3{margin:7px 0}.footnotes{margin-top:28px;padding-top:24px}.status-card{padding:18px}footer{flex-wrap:wrap;gap:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.tile::before{inset:auto 7px 8px;height:var(--stack-height,7px);background:repeating-linear-gradient(to top,#edf4ff28 0,#edf4ff28 2px,transparent 2px,transparent 7px)}
.tile.selectable:not(.source):not(.destination)::after{content:'•';position:absolute;bottom:4px;left:5px;color:var(--text);font-size:12px;line-height:1}
body.playing header{padding-top:12px;padding-bottom:12px}body.playing main{padding-top:8px}body.playing .hero{margin-bottom:18px}body.playing .hero .eyebrow,body.playing .hero .lead,body.playing .hero-note{display:none}body.playing h1{font-size:36px}
@media(min-width:1001px){body.playing .board{max-width:560px;margin:auto}body.playing .tile{width:70px;height:76px}}
.tile.cpu-source{border:3px solid var(--blue);outline:2px solid #8fc6ee55;outline-offset:4px;animation:cpu-pulse .85s ease-in-out infinite}.tile.cpu-destination{border:3px solid var(--gold);box-shadow:0 0 0 5px #f1d38e2b,0 0 22px #f1d38e55}.tile.cpu-destination.shed{border-style:dashed}.tile.cpu-source .move-kind{color:var(--blue)}.tile.cpu-destination .move-kind{color:var(--gold)}.move-line.cpu-line{stroke:var(--blue);opacity:1;filter:drop-shadow(0 0 5px #8fc6ee88)}
@keyframes cpu-pulse{50%{transform:translate(-50%,-50%) scale(1.045)}}
@media(prefers-reduced-motion:reduce){.tile.cpu-source{animation:none}}
