:root{color-scheme:dark;--void:#080d18;--panel:#101827;--water:#17243a;--line:#35445f;--line-strong:#526886;--text:#edf4ff;--muted:#b8c5d9;--gold:#f1d38e;--blue:#8fc6ee;--p1:#f1d38e;--p2:#8fc6ee;--danger:#f19a91}
*{box-sizing:border-box}body{margin:0;color:var(--text);font:15px/1.65 system-ui,"Yu Gothic","Noto Sans JP",sans-serif}.tide-ui{min-width:0}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;color:var(--text);border:1px solid var(--line);border-radius:8px;background:var(--water);padding:10px 14px}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){filter:brightness(1.14)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:inherit}[hidden]{display:none!important}
.tide-ui>main{width:min(1340px,calc(100% - 56px));margin:0 auto;padding:26px 0 44px}.tide-ui>header{width:min(1340px,calc(100% - 56px));margin:auto;padding:20px 0;border-bottom:1px solid var(--line)}.tide-ui>footer{width:min(1340px,calc(100% - 56px));margin:0 auto;padding:20px 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.tide-ui>footer a{color:var(--muted)}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:24px 0 32px}.hero .eyebrow{font-size:12px;letter-spacing:.14em;color:var(--gold);margin:0 0 12px}.hero h1{font-size:clamp(48px,6vw,68px);line-height:1.15;letter-spacing:.08em;margin:0;color:var(--text);font-family:serif}.hero h1 span{font:500 15px system-ui,sans-serif;letter-spacing:.18em;color:var(--muted);margin-left:12px}.hero .lead{font-size:20px;margin:12px 0 0;color:var(--text)}.hero-note{margin:0 12px 7px 0;padding:6px 0 6px 24px;border-left:1px solid var(--line);color:var(--muted);line-height:1.9}
.setup{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;align-items:end;gap:14px 18px;padding:22px;margin-bottom:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.setup>div:not(.start-actions){display:grid;gap:7px}.setup label,.status-card label{font-size:13px;color:var(--muted)}.setup select,.status-card select{width:100%;min-height:48px;padding:10px 38px 10px 13px;border:1px solid var(--line-strong);border-radius:7px;background:var(--void);color:var(--text)}.setup .start-actions{display:flex;gap:10px}.start-actions button{flex:1;white-space:nowrap}.setup .primary,.status-card>.primary,.status-card #practice-start,.status-card #rematch{border-color:var(--gold);background:var(--gold);color:#101827;font-weight:600}.setup .secondary,.status-card .secondary{background:transparent;border-color:var(--line-strong)}.setup>p{grid-column:1/-1;margin:0;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.game-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);align-items:start;gap:22px}.tree-panel,.status-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.panel-heading{display:flex;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.turn-line{display:flex;align-items:flex-start;gap:14px;padding:17px 20px 5px}.turn-line>span{font-size:24px;color:var(--gold);line-height:1.3}.turn-line strong{font-weight:550;font-size:17px}.turn-line p{margin:2px 0 0;font-size:13px;color:var(--muted)}.tree-stage{width:100%;padding:8px 12px 0;background:radial-gradient(ellipse at 50% 48%,#19304a 0,transparent 70%)}#tree{display:block;width:100%;height:auto;aspect-ratio:900/740;overflow:visible}.tree-edge{fill:none;stroke:#68809b;stroke-width:8;stroke-linecap:round;opacity:.72;transition:stroke .18s,opacity .18s,stroke-width .18s}.tree-edge.claimed1{stroke:var(--p1);opacity:.92}.tree-edge.claimed2{stroke:var(--p2);opacity:.92}.tree-edge.preview1{stroke:var(--p1);stroke-dasharray:7 8;stroke-width:12;opacity:1}.tree-edge.preview2{stroke:var(--p2);stroke-dasharray:7 8;stroke-width:12;opacity:1}.tree-edge.last{stroke-width:15;filter:drop-shadow(0 0 6px #edf4ff66)}.tree-node{fill:#1a2c42;stroke:#7690ad;stroke-width:3}.tree-node.claimed1{stroke:var(--p1);fill:#363647}.tree-node.claimed2{stroke:var(--p2);fill:#19364b}.tree-tip{fill:var(--gold);stroke:#fff4cf;stroke-width:2}.tree-root{fill:var(--gold);stroke:#fff4cf;stroke-width:3}.root-mark{fill:#101827;font:600 18px system-ui,sans-serif;text-anchor:middle;dominant-baseline:central}.tree-key{display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:center;padding:0 12px 16px;color:var(--muted);font-size:12px}.tree-key span{display:flex;align-items:center;gap:7px}.key-line{width:22px;border-top:3px solid #68809b}.key-line.p1{border-color:var(--p1)}.key-line.p2{border-color:var(--p2)}.key-dot{width:9px;height:9px;border-radius:50%;background:var(--gold)}
.branch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 14px}.branch-group{min-width:0;border:1px solid var(--line);border-radius:9px;background:#0c1422;padding:10px}.branch-group.preview-group{border-color:var(--gold);box-shadow:inset 0 0 0 1px #f1d38e38}.branch-group.cpu-group{border-color:var(--blue);box-shadow:inset 0 0 0 1px #8fc6ee38}.branch-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;font-size:12px;color:var(--muted)}.branch-title strong{font-size:13px;font-weight:550;color:var(--text)}.branch-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.edge-action{display:flex;min-width:0;min-height:50px;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:4px 3px;border-color:#435776;background:#101b2c;line-height:1.2}.edge-action .edge-name{font-size:11px;color:var(--muted)}.edge-action .edge-value{font-size:14px;font-weight:600;color:var(--text)}.edge-action.legal{border-style:dashed;border-color:#90a6c1}.edge-action.selected{border:2px solid var(--gold);background:#443e30}.edge-action.cpu-target{border:2px solid var(--blue);background:#1b394b}.edge-action:disabled{opacity:.55}.edge-action.claimed1,.edge-action.claimed2{border-style:solid}.edge-action.claimed1{color:var(--gold);background:#332f2a}.edge-action.claimed2{color:var(--blue);background:#152c3d}.edge-action .owner{font-size:10px;line-height:1.1}.board-footnote{margin:0;padding:12px 18px 17px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.dashboard{display:flex;flex-direction:column;gap:14px;min-width:0}.score-title{display:flex;align-items:center;justify-content:space-between}.score-title h2{margin:0;font-size:15px;font-weight:500}.score-title span{font-size:12px;color:var(--muted)}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:10px}.player{padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.player.active{border-color:currentColor}.player>span{font-size:13px}.player strong{display:block;font-size:38px;font-weight:500;line-height:1.4}.player small{font-size:12px;color:var(--muted);margin-left:5px}.p1{color:var(--gold)}.p2{color:var(--blue)}.status-card{padding:19px}.status-card .eyebrow{font-size:11px;letter-spacing:.14em;color:var(--gold)}.status-card h2{font-size:21px;line-height:1.35;margin:8px 0 9px}.status-card>p{margin:0;color:var(--muted);font-size:14px}.preview{min-height:72px;margin-top:14px;padding:12px;border-radius:7px;background:#080d18;color:var(--muted);font-size:13px}.preview strong{color:var(--text)}.status-card>button,.status-card #result-actions button{width:100%;margin-top:10px}.status-card label{display:block;margin:8px 0 6px}.status-card #result-actions{margin-top:6px}.status-card #result-actions select{margin-bottom:3px}.status-card #result-help{width:auto;min-height:34px;margin-top:8px;padding:5px 9px;font-size:12px;color:var(--muted)}.result-home-button{display:flex;width:max-content;min-height:30px;align-items:center;margin:1px 0 0;padding:2px 5px;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px}.result-home-button:hover{color:var(--gold)}.history{padding-top:10px;border-top:1px solid var(--line)}.history h3{margin:0 0 6px;font-size:14px;font-weight:500}.history ol{margin:0;padding:0;list-style:none;max-height:200px;overflow:auto;font-size:12px;color:var(--muted)}.history li{padding:6px 0;border-bottom:1px solid #35445f55}.history li:first-child{color:var(--gold)}.dashboard>.quiet{align-self:flex-start;background:transparent;color:var(--muted)}
.rules-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.rules-strip>div>b{font-size:12px;font-weight:400;letter-spacing:.12em;color:var(--gold)}.rules-strip h3{margin:8px 0;font-size:17px;font-weight:500}.rules-strip p{margin:0;font-size:13px;color:var(--muted)}
dialog{width:min(560px,calc(100% - 28px));max-height:86dvh;padding:26px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text)}dialog::backdrop{background:#020710cc}dialog h2{font-family:serif;font-weight:500}dialog p,dialog li{font-size:14px;color:var(--muted)}dialog li{margin:10px 0}dialog ol{padding-left:22px}.close{float:right;width:44px;padding:0;background:transparent;font-size:24px}.dialog-actions{display:flex;gap:10px}
.series-summary{margin:-6px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#0c1422;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1.2fr) minmax(275px,.8fr);gap:15px}.setup{grid-template-columns:repeat(3,minmax(0,1fr))}.setup .start-actions{grid-column:1/-1}.branch-list{gap:8px;padding-right:12px;padding-left:12px}.branch-group{padding:8px}.branch-actions{gap:4px}.edge-action{min-height:48px}.status-card{padding:16px}}
@media(max-width:720px){.tide-ui>header,.tide-ui>main,.tide-ui>footer{width:calc(100% - 28px)}.tide-ui>header{padding:15px 0}.tide-ui>main{padding:18px 0 32px}.hero{margin:18px 0 23px}.hero h1{font-size:48px}.hero .lead{font-size:17px}.hero-note{display:none}.setup{grid-template-columns:1fr 1fr;padding:15px;gap:12px}.setup>div:nth-child(3){grid-column:1/-1}.setup .start-actions{grid-column:1/-1}.setup>p{grid-column:1/-1;font-size:12px}.game-layout{grid-template-columns:1fr;gap:17px}.tree-stage{padding:4px 4px 0}.tree-key{font-size:12px}.branch-list{grid-template-columns:1fr;gap:8px;padding:0 10px 12px}.branch-group{padding:9px 10px}.branch-actions{gap:8px}.edge-action{min-height:52px}.edge-action .edge-name{font-size:12px}.edge-action .edge-value{font-size:15px}.dashboard{gap:12px}.status-card{padding:17px}.rules-strip{grid-template-columns:1fr;gap:17px;margin-top:24px;padding-top:20px}.rules-strip h3{margin:5px 0}.history ol{max-height:160px}.tide-ui>footer{gap:8px;flex-wrap:wrap}}
@media(max-width:380px){.hero h1{font-size:43px}.setup{padding:12px;gap:10px}.setup .start-actions{flex-wrap:wrap}.start-actions button{min-width:130px}.branch-actions{gap:5px}.edge-action{min-height:50px;padding:3px 1px}.edge-action .edge-name{font-size:11px}}
.tree-edge.revealed-preview{stroke:var(--gold);stroke-dasharray:4 7;stroke-width:11;opacity:1;filter:drop-shadow(0 0 5px #f1d38e66)}
.constellation-link.target{stroke:var(--blue);stroke-width:4;stroke-dasharray:2 5;opacity:1;filter:drop-shadow(0 0 5px #8fc6ee88)}.edge-action .edge-pair{font-size:12px}@media(max-width:720px){.edge-action .edge-pair{font-size:10px}}
.tide-ui>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tide-ui>header #home{display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none}.status-card #swap-opening{width:100%;margin-top:10px;background:transparent;border-color:var(--line-strong)}
.edge-action.revealed:disabled{border-style:solid;border-color:var(--gold);opacity:.92}
.edge-action.revealed .edge-name{color:var(--gold)}
.constellation-link{stroke:#f1d38e88;stroke-width:2.5;stroke-dasharray:4 8;stroke-linecap:round;opacity:.62;pointer-events:none;transition:stroke .18s,opacity .18s,stroke-width .18s}.constellation-link.open{stroke:var(--gold);opacity:.82}.constellation-link.open.owner2{stroke:var(--blue)}.constellation-link.complete{stroke-dasharray:none;stroke-width:6;opacity:1;filter:drop-shadow(0 0 6px #f1d38e88)}.constellation-link.complete.owner2{stroke:var(--blue);filter:drop-shadow(0 0 6px #8fc6ee88)}.constellation-link.split{stroke:#d6a0ad;stroke-dasharray:2 5;opacity:.9}.tree-edge.pair-threat{stroke:var(--gold);stroke-dasharray:3 6;stroke-width:12;opacity:1}.tree-node.pair-threat{stroke:var(--gold);stroke-width:5;fill:#443c2b;filter:drop-shadow(0 0 5px #f1d38e88)}.edge-action.pair-target{border-color:var(--gold);background:#332f2a;box-shadow:0 0 0 1px #f1d38e55}.key-pair{width:22px;height:0;border-top:2px dashed var(--gold)}.edge-action .edge-pair{max-width:100%;overflow:hidden;color:var(--gold);font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.edge-action.claimed2 .edge-pair{color:var(--blue)}.edge-action.claimed1 .edge-pair{color:var(--gold)}.edge-action{min-height:58px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:720px){.edge-action .edge-pair{font-size:10px}}

.branch-list-details{margin:0 16px 14px}.branch-list-details>summary{display:flex;min-height:44px;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;font-size:13px;list-style:none}.branch-list-details>summary::-webkit-details-marker{display:none}.branch-list-details>summary::before{content:'＋';color:var(--gold);font-size:16px}.branch-list-details[open]>summary::before{content:'−'}.branch-list-details>summary:hover{border-color:var(--line-strong);color:var(--text)}.branch-list-details>summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.branch-list-details .branch-list{padding:12px 0 0}
.tree-action{cursor:pointer;touch-action:manipulation;outline:none}.tree-action-hit{fill:transparent;pointer-events:all}.tree-action-marker{fill:#101827;stroke:var(--gold);stroke-width:3px;vector-effect:non-scaling-stroke;transition:fill .15s,stroke .15s,filter .15s}.tree-action-value{fill:var(--gold);font-family:system-ui,sans-serif;font-weight:750;text-anchor:middle;dominant-baseline:central;pointer-events:none}.tree-action-bonus{fill:var(--gold);font-family:system-ui,sans-serif;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:#101827;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.tree-action.available:hover .tree-action-marker{fill:#3b382f;filter:drop-shadow(0 0 6px #f1d38eaa)}.tree-action.selected .tree-action-marker{fill:var(--gold);stroke:#fff4cf;stroke-width:4px;filter:drop-shadow(0 0 8px #f1d38eaa)}.tree-action.selected .tree-action-value,.tree-action.selected .tree-action-bonus{fill:#101827;stroke:none}.tree-action.cpu-target .tree-action-marker{fill:var(--blue);stroke:#e2f4ff;stroke-width:4px;filter:drop-shadow(0 0 8px #8fc6eeaa)}.tree-action.cpu-target .tree-action-value{fill:#101827}.tree-action:focus-visible .tree-action-hit{stroke:#edf4ff;stroke-width:2px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.key-dot{width:13px;height:13px;border:2px solid var(--gold);background:#443e30;box-shadow:0 0 0 2px #f1d38e33}
@media(max-width:720px){.branch-list-details{margin-right:10px;margin-left:10px}.branch-list-details>summary{font-size:13px}}
