:root{color-scheme:dark;--ink:#eef2ff;--muted:#9aa6c8;--panel:#141d33;--panel-soft:#1c2743;--line-colour:#2c3757;--seat-1:#3df2e0;--seat-2:#ff5fa2;--preset:#6a769b;--idle:#33405f;--risk:#b07c2c;--gain:#8de06a;--dot-track:1fr;--gap-track:3.4fr;color:var(--ink);background:#070b16;font-family:Inter,ui-sans-serif,system-ui,sans-serif}html[data-theme=sunset]{--ink:#fff3ea;--muted:#c8a99b;--panel:#2a1626;--panel-soft:#3a1f33;--line-colour:#56304a;--seat-1:#ffb703;--seat-2:#ff5c7a;--preset:#9c7a8e;--idle:#5a3550;--risk:#c07a2c;--gain:#8ee06a;background:#1a0d18}html[data-theme=forest]{--ink:#eafaef;--muted:#9dbcaa;--panel:#12241c;--panel-soft:#1a3227;--line-colour:#2c4a39;--seat-1:#6ef2a2;--seat-2:#ffd166;--preset:#6f8f7d;--idle:#2f4d3c;--risk:#c08a2c;--gain:#b6f06a;background:#08150f}html[data-theme=mono]{--ink:#f2f2f2;--muted:#a8a8a8;--panel:#1a1a1a;--panel-soft:#242424;--line-colour:#3a3a3a;--seat-1:#fff;--seat-2:#8a8a8a;--preset:#5a5a5a;--idle:#3a3a3a;--risk:#8a7a4a;--gain:#cfcfcf;background:#0d0d0d}html[data-theme=sunset] body{background:radial-gradient(circle at 12% 8%,#ffb7031f 0,#0000 42%),radial-gradient(circle at 88% 92%,#ff5c7a1f 0,#0000 42%),#1a0d18}html[data-theme=forest] body{background:radial-gradient(circle at 12% 8%,#6ef2a21f 0,#0000 42%),radial-gradient(circle at 88% 92%,#ffd1661f 0,#0000 42%),#08150f}html[data-theme=mono] body{background:#0d0d0d}html[data-contrast=high]{--panel:#000;--panel-soft:#000;--line-colour:#fff;--muted:#fff;--seat-1:#0ff;--seat-2:#f6c;--preset:#ccc;--idle:#7a7a7a;--risk:#fc0;--gain:#6f6}html[data-interface=large]{font-size:118%}*{box-sizing:border-box}[hidden]{display:none!important}body{background:radial-gradient(circle at 12% 8%,#3df2e01f 0,#0000 42%),radial-gradient(circle at 88% 92%,#ff5fa21f 0,#0000 42%),#070b16;min-height:100svh;margin:0}#runtime{flex-direction:column;align-items:center;gap:.8rem;min-height:100svh;padding:.9rem;display:flex}.title-bar{justify-content:space-between;align-items:center;width:min(34rem,100%);display:flex}h1{letter-spacing:-.01em;margin:0;font-size:1.3rem}.icon-button{border:1px solid var(--line-colour);background:var(--panel);min-height:44px;color:inherit;cursor:pointer;border-radius:.6rem;padding:0 .9rem}.panel{border:1px solid var(--line-colour);background:var(--panel);border-radius:1rem;gap:.6rem;width:min(34rem,100%);padding:1.1rem;display:grid}.panel h2{margin:0;font-size:1.1rem}.stack{gap:.6rem;display:grid}select,button{border:1px solid var(--line-colour);background:var(--panel-soft);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:.6rem;padding:.5rem .8rem}.primary{background:linear-gradient(120deg, var(--seat-1), #7cd6ff);color:#03211f;border-color:#0000;font-weight:800}.hint{color:var(--muted);margin:0;font-size:.85rem}#game-ui{justify-items:center;gap:.7rem;width:min(34rem,100%);display:grid}.scoreboard{grid-template-columns:1fr 1fr;gap:.6rem;width:100%;display:grid}.score{border:1px solid var(--line-colour);background:var(--panel);border-radius:.8rem;grid-template-columns:1fr auto;align-items:baseline;gap:.3rem;padding:.55rem .75rem .8rem;transition:border-color .2s,box-shadow .2s;display:grid;position:relative}.score[data-seat="1"]{--seat:var(--seat-1)}.score[data-seat="2"]{--seat:var(--seat-2)}.score[data-active=true]{border-color:var(--seat);box-shadow:0 0 0 1px var(--seat), 0 0 18px -6px var(--seat)}.score-name{color:var(--seat);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:800}.score-value{font-size:1.5rem;font-weight:900;line-height:1}.score-bar{background:var(--idle);border-radius:999px;grid-column:1/-1;height:4px;overflow:hidden}.score-bar:after{content:"";width:var(--fill,0%);background:var(--seat);border-radius:999px;height:100%;transition:width .26s cubic-bezier(.2,.9,.3,1);display:block}.turn{border:1px solid var(--line-colour);background:var(--panel);text-align:center;border-radius:999px;margin:0;padding:.4rem .9rem;font-size:.9rem;font-weight:700}.board-wrap{place-items:center;display:grid;position:relative}#board{aspect-ratio:1;border:1px solid var(--line-colour);background:radial-gradient(circle at 50% 50%, #ffffff08 0, transparent 70%), var(--panel);touch-action:manipulation;border-radius:1rem;width:min(92vw,58svh,30rem);padding:.4rem;display:grid}.dot{aspect-ratio:1;background:#7f8db4;border-radius:50%;place-self:center;width:60%;box-shadow:0 0 6px -1px #7f8db4}.line{cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:0;padding:0;position:relative}.line:before{content:"";border-radius:999px;position:absolute;inset:-35%}.line:after{content:"";background:var(--idle);border-radius:999px;transition:background .18s,box-shadow .18s;position:absolute}.line-h:after{inset:36% 4%}.line-v:after{inset:4% 36%}.line:disabled{cursor:default}.line[data-owner="1"]:after{background:var(--seat-1);box-shadow:0 0 10px -2px var(--seat-1);animation:.22s cubic-bezier(.2,.9,.3,1) line-in}.line[data-owner="2"]:after{background:var(--seat-2);box-shadow:0 0 10px -2px var(--seat-2);animation:.22s cubic-bezier(.2,.9,.3,1) line-in}.line[data-owner="3"]:after{background:var(--preset)}.line[data-risk=true]:not(:disabled):after{background:var(--risk)}.line[data-gain=true]:not(:disabled):after{background:var(--gain)}.line[data-hinted=true]:not(:disabled):after{background:#fff;box-shadow:0 0 14px -2px #fff}#board[data-turn="1"] .line:not(:disabled):hover:after{background:var(--seat-1);opacity:.65}#board[data-turn="2"] .line:not(:disabled):hover:after{background:var(--seat-2);opacity:.65}@keyframes line-in{0%{opacity:.2;transform:scale(.1)}}.box{background:0 0;border-radius:.3rem;place-items:center;margin:8%;transition:background .24s;display:grid;position:relative}.box[data-owner="1"]{color:var(--seat-1);background:#3df2e033}.box[data-owner="2"]{color:var(--seat-2);background:#ff5fa233}html[data-contrast=high] .box[data-owner="1"]{background:#00ffff73}html[data-contrast=high] .box[data-owner="2"]{background:#ff66cc73}.box-mark{opacity:0;font-size:.7em;line-height:1}html[data-markers=symbols] .box-mark{opacity:1}.box[data-chain=short]{outline:1px dashed color-mix(in srgb, var(--muted) 70%, transparent);outline-offset:-2px}.box[data-chain=long]{outline:1px dashed var(--risk);outline-offset:-2px}.box[data-chain=loop]{outline:2px dotted var(--risk);outline-offset:-2px}.series{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:700}textarea{border:1px solid var(--line-colour);background:var(--panel-soft);width:100%;color:inherit;font:inherit;resize:vertical;border-radius:.6rem;padding:.5rem}#stats-list{grid-template-columns:1fr auto;gap:.35rem 1rem}#stats-list div{display:contents}#stats-list dd{text-align:right}.box.just-won{animation:.38s cubic-bezier(.2,1.4,.4,1) box-pop}@keyframes box-pop{0%{transform:scale(.4)}60%{transform:scale(1.12)}}.spark{pointer-events:none;background:currentColor;border-radius:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;animation:.6s ease-out forwards spark;position:absolute;top:50%;left:50%}@keyframes spark{0%{transform:rotate(var(--angle)) translateY(0);opacity:1}to{transform:rotate(var(--angle)) translateY(-150%);opacity:0}}.combo{color:#071021;letter-spacing:.02em;opacity:0;pointer-events:none;background:#fff;border-radius:999px;margin:0;padding:.4rem 1rem;font-weight:900;transition:opacity .18s,transform .22s cubic-bezier(.2,1.4,.4,1);position:absolute;transform:scale(.7)}.combo[data-visible=true]{opacity:1;transform:scale(1)}.controls{justify-items:center;gap:.35rem;width:100%;display:grid}.control-row{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.controls .hint{text-align:center;min-height:1.2rem}dl{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0;display:grid}dt{color:var(--muted);font-size:.75rem}dd{margin:0;font-weight:700}dialog{border:1px solid var(--line-colour);background:var(--panel);color:inherit;border-radius:1rem;width:min(28rem,92vw)}.dialog-content{gap:.6rem;display:grid}.dialog-head{justify-content:space-between;align-items:center;display:flex}dialog label{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline-offset:2px;outline:3px solid #fff}.line:focus-visible{outline-offset:-1px}html[data-motion=reduced] *,html[data-motion=reduced] :after{transition:none!important;animation:none!important}
