:root{--ad-slot-width:160px}@media (width<=1200px){aside.ad{display:none}}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8fafc;--panel:#fff;--line:#e2e8f0;--text:#1e293b;--muted:#64748b;--accent:#1e293b;--accent-strong:#0f172a;--radius:8px;--radius-lg:12px;--shadow-card:0 12px 32px #0f172a1f;--column-max:900px;--board-max:min(100vw - 24px, 100dvh - 180px)}body{background-color:var(--bg);color:var(--text);overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:system-ui,-apple-system,Segoe UI,sans-serif}a,button,select,[role=button]{touch-action:manipulation}.board-wrap{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.hidden{display:none!important}header{padding:12px 20px;padding:calc(12px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) 12px calc(20px + env(safe-area-inset-left));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.header-brand{align-items:center;gap:10px;display:flex}.header-logo{width:32px;height:32px}.header-title{font-size:1.2rem;font-weight:700}.header-home{color:var(--muted);font-size:.9rem;text-decoration:none}@media (hover:hover){.header-home:hover{color:var(--text)}}.header-actions{align-items:center;gap:12px;display:flex}.header-sound{background-color:var(--panel);width:36px;height:36px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:1.05rem;display:inline-flex}@media (hover:hover){.header-sound:hover{border-color:var(--accent)}}main{grid-template-columns:var(--ad-slot-width) minmax(0, var(--column-max)) var(--ad-slot-width);padding:24px 16px 48px;padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right));justify-content:center;gap:24px;display:grid}main .game-column{flex-direction:column;align-items:center;gap:16px;display:flex}@media (width<=1200px){main{grid-template-columns:minmax(0, var(--column-max))}}.controls,.toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.controls select,.controls button,.toolbar button{background-color:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:8px 14px;font-family:inherit;font-size:.9rem}@media (hover:hover){.controls select:hover,.controls button:hover:not(:disabled),.toolbar button:hover:not(:disabled){border-color:var(--accent)}}.controls button:disabled,.toolbar button:disabled{color:var(--muted);cursor:default;opacity:.55}.controls button[aria-pressed=true],.toolbar button.active,.mode-tabs button[aria-selected=true]{border-color:var(--text);background-color:#f1f5f9}.controls button.primary,.toolbar button.primary{background-color:var(--text);border-color:var(--text);color:var(--panel);font-weight:600}@media (hover:hover){.controls button.primary:hover:not(:disabled),.toolbar button.primary:hover:not(:disabled){background-color:var(--accent-strong);border-color:var(--accent-strong)}}.icon{vertical-align:-.15em;width:1em;height:1em}.controls .check-label{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.9rem;display:flex}.controls .check-label input{accent-color:var(--accent)}.hud{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:18px;font-size:.9rem;display:flex}.hud strong{color:var(--text);font-variant-numeric:tabular-nums}.result{width:min(100%,520px);padding:18px 20px;padding-bottom:calc(18px + env(safe-area-inset-bottom));text-align:center;background-color:var(--panel);border:1px solid var(--line);z-index:20;border-bottom:none;border-radius:16px 16px 0 0;flex-direction:column;align-items:center;gap:10px;line-height:1.5;animation:.2s ease-out result-rise;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -12px 32px #0f172a24}@keyframes result-rise{0%{opacity:0;transform:translate(-50%,24px)}}.result h2{color:var(--text);font-size:1.5rem}.result p{color:var(--muted);font-variant-numeric:tabular-nums}.result .stat-grid{justify-content:center;gap:18px;display:flex}.result .stat-grid div{flex-direction:column;display:flex}.result .stat-grid strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.2rem}.result .stat-grid span{color:var(--muted);font-size:.72rem}.overlay-actions,.overlay-buttons{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px;display:flex}.result button{background-color:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;cursor:pointer;padding:9px 18px;font-family:inherit;font-size:.95rem}@media (hover:hover){.result button:hover{border-color:var(--text)}}.result button.primary{background-color:var(--text);border-color:var(--text);color:var(--panel);font-weight:600}@media (hover:hover){.result button.primary:hover{background-color:var(--accent-strong)}}article{width:100%;max-width:680px;color:var(--muted);flex-direction:column;gap:20px;margin-top:24px;font-size:.95rem;line-height:1.7;display:flex}article h2{color:var(--text);border-bottom:1px solid var(--line);padding-bottom:6px;font-size:1.2rem}article ul{padding-left:20px}article table{border-collapse:collapse;width:100%;max-width:440px}article td,article th{border:1px solid var(--line);text-align:left;padding:6px 12px}article kbd{background-color:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:1px 6px;font-size:.85em}article a{color:var(--accent-strong)}footer{text-align:center;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom));color:var(--muted);border-top:1px solid var(--line);font-size:.85rem}footer a{color:var(--accent-strong)}@media (pointer:coarse){.controls select,.controls button,.toolbar button,.result button{min-height:44px;font-size:1rem}.controls .check-label{min-height:44px}.header-home{align-items:center;min-height:44px;display:inline-flex}.header-sound{width:44px;height:44px}}@media (width<=640px){header{padding-top:calc(6px + env(safe-area-inset-top));padding-bottom:6px;padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}main{padding:12px 12px 40px;padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}main .game-column{gap:12px}main .game-column>.hud{order:-3;gap:8px 16px}main .game-column>.board-wrap{order:-2}main .game-column>.controls{order:1}main .game-column>article{order:2}.footer-more{display:none}.controls{gap:8px}.controls select,.controls button{padding:8px 12px}}:root{--cursor:#3b82f6;--grid-line:#e2e8f0;--grid-box:#475569;--pipe-0:#dc2626;--pipe-1:#2563eb;--pipe-2:#16a34a;--pipe-3:#d97706;--pipe-4:#9333ea;--pipe-5:#0891b2;--pipe-6:#ea580c;--pipe-7:#db2777;--pipe-8:#65a30d;--pipe-9:#4f46e5;--pipe-10:#0d9488;--pipe-11:#57534e}.board-wrap{position:relative}#board{--cell:clamp(28px, calc(var(--board-max) / (var(--size) + .5)), 60px);--size:5;grid-template-columns:repeat(var(--size), var(--cell));border:2px solid var(--grid-box);background-color:var(--panel);-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;border-radius:6px;display:grid;overflow:hidden}.cell{--up:none;--down:none;--left:none;--right:none;--pipe:36%;width:var(--cell);height:var(--cell);border-top:1px solid var(--grid-line);border-left:1px solid var(--grid-line);background-color:var(--panel);background-image:var(--up), var(--down), var(--left), var(--right);background-repeat:no-repeat;background-size:var(--pipe) 50%, var(--pipe) 50%, 50% var(--pipe), 50% var(--pipe);background-position:top,bottom,0,100%;justify-content:center;align-items:center;display:flex;position:relative}.cell.edge-top{border-top:none}.cell.edge-left{border-left:none}.cell.on{background-color:color-mix(in srgb, var(--c) 10%, var(--panel))}.cell.on:before{content:"";width:var(--pipe);height:var(--pipe);background-color:var(--c);border-radius:50%;position:absolute}.cell.up{--up:linear-gradient(var(--c), var(--c))}.cell.down{--down:linear-gradient(var(--c), var(--c))}.cell.left{--left:linear-gradient(var(--c), var(--c))}.cell.right{--right:linear-gradient(var(--c), var(--c))}.cell .dot{background-color:var(--c);color:#fff;width:64%;height:64%;font-size:calc(var(--cell) * .34);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:relative}.cell.end{cursor:pointer}.cell.drawing.on:before,.cell.drawing .dot{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--c)}.cell.cursor{box-shadow:inset 0 0 0 2px var(--cursor)}#board.solved{cursor:default}#board.solved .cell{border-color:#0000}#board.solved .cell.cursor{box-shadow:none}
