:root{--bg: #0e1116;--panel: #171c26;--panel-2: #212940;--text: #e8ecf4;--muted: #93a0b4;--accent: #38bdf8;--accent-ink: #06283a;--paper: #1a2133;--paper-edge: rgba(255, 255, 255, .06);--ink-a: #38bdf8;--ink-a-soft: rgba(56, 189, 248, .22);--ink-b: #fb923c;--ink-b-soft: rgba(251, 146, 60, .2);--dot: #aab6ca;--ghost: rgba(170, 182, 202, .13);--warn: #fbbf24;color-scheme:dark}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game{height:100%;max-width:640px;margin-inline:auto;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:10px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.panel{display:flex;flex-direction:column;gap:8px}.hud{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.chips{grid-column:1;grid-row:1;display:flex;gap:6px;min-width:0;overflow:hidden}.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding-inline:10px;border-radius:10px;background:var(--panel);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.chip.is-turn{box-shadow:inset 0 0 0 1.5px #38bdf88c}.chip-who{display:inline-flex;flex:none;color:var(--muted)}.chip-who[hidden]{display:none}.icon{display:block;width:18px;height:18px;flex:none}.chip .icon{width:16px;height:16px}.btn .icon{width:20px;height:20px}.mini-box{width:14px;height:14px;border-radius:4px;flex:none}.mini-box.is-a{background:var(--ink-a-soft);box-shadow:inset 0 0 0 2px var(--ink-a)}.mini-box.is-b{background:var(--ink-b-soft);box-shadow:inset 0 0 0 2px var(--ink-b)}.mini-box.is-draw{box-shadow:inset 0 0 0 2px var(--muted)}.actions{grid-column:2;grid-row:1;display:flex;gap:6px;justify-self:end}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding-inline:14px;border:0;border-radius:10px;background:var(--panel-2);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.btn:active{transform:translateY(1px)}.btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-primary{background:var(--accent);color:var(--accent-ink)}.switch{grid-column:1 / -1;display:flex;gap:6px}.switch[hidden]{display:none}#modes{grid-row:2}#levels{grid-row:3}.seg{flex:1;min-height:40px;padding-inline:6px;border:0;border-radius:10px;background:var(--panel);color:var(--muted);font:inherit;font-size:14px;font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg.is-on{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1.5px #38bdf88c}.status{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;min-height:24px;font-size:15px;font-weight:700}.status .mini-box{width:16px;height:16px}.status.is-over{font-size:17px}.status.is-flash{color:var(--warn)}.board-wrap{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center}.board{position:relative;border-radius:calc(var(--cell, 64px) * .14);background:var(--paper);box-shadow:0 10px 26px #00000073,inset 0 0 0 1px var(--paper-edge);touch-action:none;--stroke: max(3px, calc(var(--cell, 64px) * .085))}.board>div{position:absolute;inset:0}.boxes,.lines,.dots{pointer-events:none}.box{position:absolute;left:calc((var(--x) + .32) * var(--cell));top:calc((var(--y) + .32) * var(--cell));width:calc(var(--cell) * .86);height:calc(var(--cell) * .86);border-radius:calc(var(--cell) * .08);opacity:0}.box.is-a,.box.is-b{opacity:1;animation:box-in .26s cubic-bezier(.2,.9,.3,1.2)}.box.is-a{background:var(--ink-a-soft)}.box.is-b{background:var(--ink-b-soft)}.box:after{content:"";position:absolute;left:50%;top:50%;width:26%;height:26%;border-radius:26%;transform:translate(-50%,-50%)}.box.is-a:after{background:var(--ink-a);opacity:.9}.box.is-b:after{background:var(--ink-b);opacity:.9}@keyframes box-in{0%{scale:.55;opacity:0}}.line{position:absolute;border-radius:99px}.line.h{left:calc((var(--x) + .25) * var(--cell));top:calc((var(--y) + .25) * var(--cell));width:var(--cell);height:var(--stroke);transform:translateY(-50%)}.line.v{left:calc((var(--x) + .25) * var(--cell));top:calc((var(--y) + .25) * var(--cell));width:var(--stroke);height:var(--cell);transform:translate(-50%)}.line:not(.is-a):not(.is-b){background:var(--ghost)}.line.is-a{background:var(--ink-a)}.line.is-b{background:var(--ink-b)}.line.h.is-a,.line.h.is-b{animation:line-in-h .17s ease-out}.line.v.is-a,.line.v.is-b{animation:line-in-v .17s ease-out}@keyframes line-in-h{0%{transform:translateY(-50%) scaleX(.2)}}@keyframes line-in-v{0%{transform:translate(-50%) scaleY(.2)}}.line.is-last.is-a{box-shadow:0 0 calc(var(--stroke) * 2.5) #38bdf8bf}.line.is-last.is-b{box-shadow:0 0 calc(var(--stroke) * 2.5) #fb923cbf}.dot{position:absolute;left:calc((var(--x) + .25) * var(--cell));top:calc((var(--y) + .25) * var(--cell));width:max(6px,calc(var(--cell) * .13));height:max(6px,calc(var(--cell) * .13));border-radius:50%;background:var(--dot);transform:translate(-50%,-50%);box-shadow:0 1px 2px #0006}.hit{position:absolute;left:calc((var(--cx) + .25) * var(--cell));top:calc((var(--cy) + .25) * var(--cell));width:calc(var(--cell) * .7071);height:calc(var(--cell) * .7071);margin-left:calc(var(--cell) * -.35355);margin-top:calc(var(--cell) * -.35355);transform:rotate(45deg);padding:0;border:0;appearance:none;background:transparent;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.hit:disabled{cursor:default}.board.is-waiting .hit{cursor:progress}.hit:after{content:"";position:absolute;left:50%;top:50%;opacity:0;border-radius:99px;background:var(--dot)}.hit.h:after{width:calc(var(--cell) * .92);height:var(--stroke);transform:translate(-50%,-50%) rotate(-45deg)}.hit.v:after{width:var(--stroke);height:calc(var(--cell) * .92);transform:translate(-50%,-50%) rotate(-45deg)}.board.is-turn-a .hit:after{background:var(--ink-a)}.board.is-turn-b .hit:after{background:var(--ink-b)}@media(hover:hover){.hit:not(:disabled):hover:after{opacity:.4}}.hit:not(:disabled):focus-visible:after{opacity:.4}.board.is-over .hits{pointer-events:none}.board.is-over{cursor:pointer}.hint{margin:0;text-align:center;color:var(--muted);font-size:13px;line-height:1.45}@media(max-width:470px){.btn-label{display:none}#again-btn{padding-inline:0}.game{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}}@media(max-height:470px){.game{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:6px}.panel{gap:6px}.chip{min-height:32px;padding-inline:8px;font-size:14px}.seg{min-height:32px;font-size:13px}.status{min-height:20px;font-size:14px}.status.is-over{font-size:15px}.hint{font-size:12px}}@media(max-height:330px){.game,.panel{gap:4px}.chip,.seg{min-height:30px}.status{min-height:16px;font-size:12px}.hint,#levels{display:none}}@media(max-width:380px)and (max-height:470px){.hint{display:none}.board-wrap{padding-block-end:60px}}@media(max-width:380px)and (max-height:430px){#modes{display:none}}@media(max-width:260px){.seg{padding-inline:3px;font-size:12px}}@media(max-height:470px)and (min-aspect-ratio:13 / 10){.game{flex-direction:row;align-items:stretch;gap:10px;max-width:none}.panel{flex:0 0 auto;width:min(42vw,240px);justify-content:center;min-height:0;overflow-y:auto}#modes,#levels:not([hidden]){display:flex}.hud{display:flex;flex-direction:column;align-items:stretch;gap:6px}.chips{justify-content:space-between}.chip{flex:1;justify-content:center;padding-inline:6px}.actions{justify-self:auto}#again-btn{flex:1}.board-wrap{padding-block-end:72px}.hint{display:none}}@media(prefers-reduced-motion:reduce){.box.is-a,.box.is-b,.line.is-a,.line.is-b{animation-duration:1ms}}
