:root{color-scheme:dark;--bg:#080d18;--panel:#101827;--line:#35445f;--text:#edf4ff;--muted:#b8c5d9;--gold:#f1d38e;--blue:#8fc6ee;--ruby:#efa6ad}
*{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;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:#17243a;color:var(--text)}button:disabled{cursor:default;opacity:.5}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.15)}[hidden]{display:none!important}
header,footer{max-width:1320px;margin:auto;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;font-size:15px}.brand>span{color:var(--gold);font-size:30px}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.quiet:hover{border-color:var(--line)}main{max-width:1280px;margin:auto;padding:28px 24px 48px}.intro{display:flex;align-items:center;justify-content:space-between;padding-bottom:32px}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:.15em;margin:0 0 12px}h1{font:500 64px/1.2 serif;letter-spacing:.13em;margin:0}h1 span{font:14px system-ui;letter-spacing:.2em;margin-left:20px;color:var(--muted)}.tagline{font-size:20px;margin:18px 0 0}.intro-note{border-left:1px solid var(--line);padding-left:30px;color:var(--muted)}
.setup{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;gap:16px;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:24px}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);min-width:0}select{width:100%;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text)}.start-actions{display:flex;gap:12px;grid-column:1/3}.primary{background:var(--gold);border-color:var(--gold);color:#101827;font-weight:650}.secondary{background:transparent}.set-note{grid-column:3/5;margin:8px 0;align-self:center;font-size:13px;color:var(--muted)}
.play-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:24px;align-items:start}.arena,.player,.decision,.hint-card{background:var(--panel);border:1px solid var(--line);border-radius:12px}.arena{overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#1b3040,#101827 68%)}.panel-heading{display:flex;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.turn-heading{padding:20px 22px 0}.turn-heading .eyebrow{margin-bottom:4px}.turn-heading h2{font:500 26px/1.4 serif;margin:0 0 8px}.turn-heading>p:last-child{color:var(--muted);font-size:14px;margin:0;min-height:24px}.board{position:relative;aspect-ratio:1;max-width:630px;margin:0 auto;width:100%;isolation:isolate}.board svg{position:absolute;inset:0;width:100%;height:100%}.thread{stroke:#63778a;stroke-width:2;stroke-dasharray:5 8;stroke-linecap:round}.thread.drawn{stroke:#c9d4db;stroke-width:3;stroke-dasharray:none}.thread.selected{stroke:var(--gold);stroke-width:5;stroke-dasharray:none;filter:drop-shadow(0 0 5px #f1d38e66)}.thread.cpu-target{stroke:var(--blue);stroke-width:6;stroke-dasharray:9 5;animation:signal 1s ease-in-out infinite alternate}.thread.recent{stroke:#f1d38e;stroke-width:4}.face{fill:#132332;stroke:none}.face.p1{fill:#f1d38e22}.face.p2{fill:#8fc6ee24}.face.preview{fill:#f1d38e3a}.face.affected{fill:#294050}.star-dot{fill:#d6dee8}.edge{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:12px;border:1px dashed #7d9aae;background:#0d1a29;color:#c7daeb;z-index:3}.edge:disabled{opacity:.65}.edge.drawn{background:#1d2b39;border-style:solid;color:#adc0cf;opacity:.65}.edge.selected{border:2px solid var(--gold);background:#f1d38e;color:#101827;font-weight:700}.edge.cpu-target{border:3px double var(--blue);background:#243b4e;color:var(--blue);opacity:1}.edge:focus-visible{z-index:6;outline-offset:4px}.face-label{position:absolute;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;line-height:1.2;min-width:48px;pointer-events:none;color:var(--muted);z-index:2}.face-label b{font:500 26px/1.2 serif;color:var(--text)}.face-label small{font-size:12px}.face-label.p1 b{color:var(--gold)}.face-label.p2 b{color:var(--blue)}.face-label.preview b{color:var(--gold)}.center-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:35px;color:var(--gold)}.legend{margin:0 16px 14px;text-align:center;color:var(--muted);font-size:12px}.controls{padding:18px 22px;border-top:1px solid var(--line)}.stitch-modes{display:flex;gap:10px}.stitch-modes button{flex:1;font-size:13px}.stitch-modes [aria-pressed=true]{border-color:var(--gold);background:#f1d38e16;color:var(--gold)}.impact{min-height:66px;font-size:14px;color:var(--muted);margin:14px 0}.impact strong{color:var(--gold);font-weight:500}.confirm-row{display:flex;gap:12px}.confirm-row .primary{flex:1}.receipt{margin:0;padding:16px 22px;background:#080d1866;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.dashboard{display:flex;flex-direction:column;gap:16px;min-width:0}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:12px}.player{padding:18px;display:flex;flex-direction:column;gap:6px}.player.active{border-color:currentColor}.p1{color:var(--gold)}.p2{color:var(--blue)}.player>span{font-size:13px}.player strong{font-size:38px;line-height:1.4;font-weight:500}.player small{font-size:12px;color:var(--muted)}.score-note{color:var(--muted);font-size:12px;margin:-6px 0 0}.decision{padding:22px}.decision h2{font:500 25px/1.5 serif;margin:6px 0 12px}.decision>p:not(.eyebrow){color:var(--muted);font-size:14px;margin:0}.hint-card{padding:20px;background:transparent}.hint-card>span{color:var(--gold);font:20px serif}.hint-card p{margin:12px 0 0;font-size:14px;color:var(--muted)}#result-actions{display:grid;gap:10px;margin-top:18px}.result-home-button{text-align:center;font-size:12px;color:var(--muted);text-decoration:underline;min-height:44px;padding:10px}.history{border-top:1px solid var(--line);padding-top:12px}.history summary{color:var(--muted);font-size:14px;cursor:pointer;min-height:44px;padding-top:8px}.history ol{padding:0;margin:0;list-style:none;max-height:280px;overflow:auto;font-size:13px}.history li{padding:8px 0;border-bottom:1px solid #35445f55}.history li:first-child{color:var(--gold)}.compact-score{display:none}.rules-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:36px 0 0;margin-top:32px;border-top:1px solid var(--line)}.rules-strip b{font-size:12px;letter-spacing:.08em;color:var(--gold);font-weight:400}.rules-strip h3{font:500 21px/1.5 serif;margin:12px 0}.rules-strip p{color:var(--muted);font-size:14px;margin:0}footer{border-top:1px solid var(--line);font-size:12px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);max-width:590px;width:calc(100% - 32px);max-height:85vh;padding:30px;line-height:1.9}dialog::backdrop{background:#030712d9}dialog h2{font:26px/1.5 serif}dialog ol{padding-left:22px}dialog li{margin:12px 0}dialog p,dialog li{font-size:14px}.close{float:right;background:transparent;font-size:22px;padding:0;width:44px}.practice-banner{border:1px solid var(--gold);border-radius:12px;padding:20px;margin-bottom:24px;background:#222b35}.practice-banner p{margin:8px 0 12px}.practice-banner b{color:var(--gold)}@keyframes signal{to{opacity:.5}}
@media(max-width:1050px){.intro-note{display:none}.setup{grid-template-columns:1fr 1fr}.set-note{grid-column:1/3}.play-layout{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:16px}.edge{width:44px;height:44px}.face-label b{font-size:23px}.face-label small{font-size:12px}.player{padding:14px}.turn-heading{padding:18px 16px 0}.controls{padding:16px}}
@media(max-width:800px){header,footer{padding:16px}main{padding:18px 16px 32px}.intro{padding-bottom:26px}h1{font-size:50px}h1 span{margin-left:12px;font-size:13px}.tagline{font-size:18px}.setup{padding:16px;gap:12px}.start-actions{flex-wrap:wrap}.start-actions button{flex:1;white-space:nowrap;padding:10px}.set-note{margin:0;font-size:12px}.play-layout{grid-template-columns:1fr;gap:22px}.panel-heading{padding:12px;font-size:12px}.turn-heading{padding:16px 12px 0}.turn-heading h2{font-size:23px}.turn-heading>p:last-child{font-size:13px;min-height:40px}.compact-score{display:flex;justify-content:space-between;gap:8px;padding:8px 12px 0;font-size:12px}.face-label b{font-size:24px}.board{max-width:570px}.controls{padding:14px 12px}.receipt{padding:12px;font-size:12px}.impact{font-size:13px;min-height:66px}.rules-strip{grid-template-columns:1fr;gap:24px}.rules-strip h3{margin:8px 0}.history ol{max-height:170px}footer{flex-wrap:wrap}.player{padding:16px}.confirm-row{gap:8px}.stitch-modes{gap:8px}.stitch-modes button{padding:9px 6px;font-size:12px}}
@media(max-width:440px){.face-label b{font-size:18px}.face-label small{font-size:10px}.face-label{min-width:38px}.edge{font-size:11px}.eyebrow{font-size:10px}.center-mark{font-size:24px}.legend{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.progress-dots{display:flex;gap:4px;margin-top:4px;min-height:5px}.progress-dots i{display:block;width:5px;height:5px;border:1px solid #91a8b9;border-radius:50%}.progress-dots i.filled{background:#dbe8ed}.thread.recent{stroke:#e9f5ff;stroke-width:5}
