:root{--game-max-width: 480px;--shell-min-width: 380px}html,body{min-height:100dvh}body{margin:0;display:flex;justify-content:center;background:var(--game-shell-backdrop, var(--bg, #0c141c))}.game-shell{position:relative;width:clamp(min(var(--shell-min-width),100%),var(--shell-computed-width, 100%),min(var(--game-max-width),100%));max-width:var(--game-max-width);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media (min-width: 481px){.game-shell{box-shadow:0 0 0 1px var(--border-strong, rgba(255, 255, 255, .15))}}@media (orientation: landscape){:root{--game-max-width: 1400px;--puzz-sidebar-landscape-width: 300px;--puzz-row-gap: 16px;--puzz-row-padding-x: 20px}.puzz-main-row{flex-direction:row!important;align-items:stretch;justify-content:center!important;padding:0 var(--puzz-row-padding-x)!important;box-sizing:border-box;gap:var(--puzz-row-gap)!important}.puzz-sidebar{order:2;flex:0 1 auto;width:fit-content;min-width:120px;max-width:var(--puzz-sidebar-landscape-width)!important;height:var(--puzz-sidebar-computed-height, auto)!important;max-height:100%!important;overflow-y:auto}.puzz-board-area{order:1;flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}}.puzz-min-hit-area{position:relative}.puzz-min-hit-area:after{content:"";position:absolute;top:50%;right:50%;bottom:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}#completionOverlay,#dailyIntroOverlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:200;padding:20px}#completionOverlay.open,#completionOverlay.show,#dailyIntroOverlay.open,#dailyIntroOverlay.show{display:flex}.puzz-modal-card{position:relative;overflow:hidden;outline:none;background:#111c26;border:1px solid #243b4d;border-radius:16px;padding:32px 28px 26px;max-width:420px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 16px 50px #00000080;text-align:center;animation:puzz-modal-pop-in .28s cubic-bezier(.34,1.56,.64,1)}@keyframes puzz-modal-pop-in{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}.puzz-confetti-layer{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;overflow:hidden}.puzz-confetti-layer .confetti-piece{position:absolute;top:0;width:8px;height:8px;border-radius:2px;animation:puzz-confetti-fall 2s ease-in forwards}@keyframes puzz-confetti-fall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(260px) rotate(360deg);opacity:0}}.puzz-close-btn{position:absolute;top:14px;right:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;box-shadow:none;border-radius:0;color:#7594a6;font-size:.9rem;line-height:1;cursor:pointer;padding:0;z-index:1}.puzz-close-btn:hover{color:#e9f1f6}.puzz-close-btn:focus-visible{outline:2px solid #5eb8e8;outline-offset:2px}.puzz-modal-title{margin:0 0 4px;color:#4caf6f;font-size:1.4rem}#dailyIntroTitle{color:#e9f1f6}.puzz-modal-subtitle{color:#7594a6;font-size:.9rem;margin-bottom:14px}.puzz-modal-caption{margin:0 0 16px;padding:0 0 12px;color:#7594a6;font-weight:700;font-size:.85rem;text-align:center;border-bottom:1px solid #243b4d}#dailyIntroDate{font-size:1.05rem}.puzz-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.puzz-modal-stats{font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.4rem;font-weight:700;color:#5eb8e8;margin-bottom:18px}.puzz-rank-box{margin-bottom:14px}.puzz-streak-box{display:inline-flex;justify-content:center;width:100%;align-items:center;gap:4px;margin-bottom:14px;font-size:1.1rem;font-weight:700;color:#e9f1f6}.puzz-rank-line{font-size:.9rem;font-weight:700;color:#e9f1f6}.puzz-rank-top{margin-bottom:8px;font-size:1.1rem;font-weight:700;color:#e9f1f6}.puzz-rank-bar{width:140px;margin:0 auto;height:6px;border-radius:3px;background:#243b4d;overflow:hidden}.puzz-rank-bar-fill{height:100%;border-radius:3px;background:#5eb8e8;transition:width .4s ease}.puzz-rank-sub{margin-top:6px;font-size:.78rem;color:#7594a6}.puzz-leaderboard-box{text-align:left;margin-bottom:14px}.puzz-leaderboard-title{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7594a6;margin-bottom:6px}.puzz-leaderboard-list{display:flex;flex-direction:column;gap:4px}.puzz-leaderboard-row{display:flex;align-items:center;gap:10px;background:#1b2c3a;border:1px solid #243b4d;border-radius:8px;padding:6px 10px;font-size:.82rem}.puzz-leaderboard-row.puzz-leaderboard-you{border-color:#5eb8e8;background:color-mix(in srgb,#5eb8e8 12%,#1b2c3a)}.puzz-leaderboard-pos{flex:0 0 auto;width:1.4em;color:#7594a6;font-weight:700;text-align:right}.puzz-leaderboard-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e9f1f6;font-weight:600}.puzz-leaderboard-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#5eb8e8;font-weight:700}.puzz-leaderboard-empty{font-size:.78rem;color:#7594a6;padding:6px 2px}.puzz-leaderboard-row-loading{border-color:#1b2c3a}.puzz-skeleton-line{border-radius:4px;background:linear-gradient(90deg,#1b2c3a 25%,#243b4d 37%,#1b2c3a 63%);background-size:400% 100%;animation:puzz-skeleton-shimmer 1.4s ease infinite}@keyframes puzz-skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.puzz-share-preview{margin-top:4px;display:block;width:100%;box-sizing:border-box;background:#1b2c3a;border:1px solid #243b4d;border-radius:8px;padding:10px 12px;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.78rem;text-align:left;white-space:pre-wrap;word-break:break-all;color:#e9f1f6;margin-bottom:16px;resize:vertical}.puzz-share-preview:focus{outline:2px solid #5eb8e8}.puzz-share-note{font-size:.75rem;color:#7594a6;text-align:left;margin:-10px 0 16px}.puzz-modal-actions{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px;margin-top:0}.puzz-btn{font-family:inherit;padding:9px 16px;border-radius:8px;font-size:.85rem;cursor:pointer;background:#1b2c3a;border:1px solid #243b4d;color:#e9f1f6;min-width:0;white-space:nowrap;text-align:center;justify-content:center}.puzz-btn:hover{filter:brightness(1.15)}.puzz-btn-primary{background:#5eb8e8;border-color:#5eb8e8;color:#fff}.puzz-btn-primary:hover{filter:brightness(1.08)}.puzz-modal-body{color:#7594a6;font-size:1.05rem;line-height:1.5;margin:0 0 16px}.puzz-daily-page{display:flex;flex-direction:column;justify-content:center}.puzz-toggle-row{position:relative;display:grid;grid-template-columns:repeat(var(--puzz-toggle-count, 2),1fr);width:fit-content;margin:0 auto 16px;border:2px solid #243b4d;border-radius:999px;padding:4px;touch-action:none}.puzz-toggle-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--puzz-toggle-count, 2));background:#5eb8e8;border-radius:999px;transform:translate(calc(100% * var(--puzz-toggle-index, 0)));transition:transform .18s ease;pointer-events:none}.puzz-toggle-row.puzz-toggle-dragging .puzz-toggle-thumb{transition:none}.puzz-toggle-opt{position:relative;z-index:1;font-family:inherit;font-weight:700;background:transparent;border:none;color:#7594a6;padding:calc(12px * var(--puzz-toggle-scale, 1));border-radius:999px;font-size:calc(1.3rem * var(--puzz-toggle-scale, 1));letter-spacing:.02em;cursor:pointer;justify-content:center;transition:color .15s ease;-webkit-tap-highlight-color:transparent}.puzz-toggle-opt:hover,.puzz-toggle-opt:active,.puzz-toggle-opt:focus,.puzz-toggle-opt:focus-visible{background:transparent}@media (hover: hover) and (pointer: fine){.puzz-toggle-opt:hover{color:#e9f1f6}}.puzz-toggle-opt.active{color:#fff}#dailyModeToggle .puzz-toggle-opt{min-width:5.5em}.puzz-nav-wrap{position:relative}.puzz-nav-toggle{font-size:1.2rem;line-height:1;padding:8px 14px}.puzz-nav-menu{position:fixed;min-width:168px;background:#111c26;border:1px solid #243b4d;border-radius:12px;box-shadow:0 12px 32px #00000073;padding:6px;display:none;flex-direction:column;gap:2px;z-index:60}.puzz-nav-menu.show{display:flex}.puzz-nav-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:8px;background:transparent;border:none;color:#e9f1f6;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap}.puzz-nav-menu button:hover,.puzz-nav-menu button:focus-visible{background:#1b2c3a}:root{--color-background: #0c141c;--color-surface: #111c26;--color-surface-raised: #1b2c3a;--color-primary: #5eb8e8;--color-secondary: #00cec9;--color-accent: #fdcb6e;--color-success: #4caf6f;--color-danger: #d9534f;--color-warning: #f39c12;--color-text: #e9f1f6;--color-text-muted: #7594a6;--color-border: #243b4d}:root{--bg: var(--color-background);--panel: var(--color-surface);--panel-raised: var(--color-surface-raised);--ink: var(--color-text);--dim: var(--color-text-muted);--accent: var(--color-primary);--good: var(--color-success);--bad: var(--color-danger);--border: var(--color-border);--c-gray: #5b6b7c;--c-red: #B2332A;--c-green: #297022;--c-blue: #3840AC;--c-yellow: #CAB228;--c-orange: #C76E1F}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Space Grotesk,system-ui,-apple-system,sans-serif}#app{width:100%}#pageContainer{display:flex;flex-direction:column;height:100dvh;gap:10px}#header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:calc(14px * var(--topbar-scale, 1));padding-block:calc(10px * var(--topbar-scale, 1));padding-inline:16px;border-bottom:1px solid var(--border);overflow:hidden}.brand{display:flex;align-items:baseline;gap:10px;min-width:0;text-decoration:none;color:inherit;touch-action:manipulation}.brand:hover h1{color:var(--accent)}#header h1{font-family:Space Grotesk,system-ui,-apple-system,sans-serif;font-weight:700;font-size:calc(1.4rem * var(--topbar-scale, 1));margin:0;letter-spacing:-.01em}#topbar{display:flex;align-items:center;gap:4px;flex-shrink:0}#topbar .puzz-nav-toggle{font-size:calc(1.2rem * var(--topbar-scale, 1));padding-block:calc(8px * var(--topbar-scale, 1));padding-inline:calc(14px * var(--topbar-scale, 1));border-radius:999px;border:1px solid transparent;background:transparent;color:var(--dim);cursor:pointer;transition:color .15s,border-color .15s}#topbar .puzz-nav-toggle:hover{background:transparent;color:var(--ink)}#footer{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:10px 16px;border-top:1px solid var(--border)}.footer-brand{display:flex;flex-direction:column;align-items:center;line-height:1.2;text-decoration:none}.footer-line1{font-weight:700;font-size:.75rem;letter-spacing:-.01em;color:var(--ink)}.footer-brand:hover .footer-line1{color:var(--accent)}.box-title{font-size:20px;font-weight:700;letter-spacing:.02em}.puzzle-meta{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}#main{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;gap:10px;padding:10px 12px 0}#board-area{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}#boardWrap{position:relative;display:flex}#board{touch-action:none;-webkit-user-select:none;user-select:none;overflow:visible}.sig-plain-edge{stroke:var(--border);stroke-width:4}.sig-corner-fill{fill:var(--border)}.sig-blocker-tick{stroke-width:4;stroke-linecap:round}.sig-path-line{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.95}.sig-path-line.won{stroke:var(--good)}.sig-path-endpoint{fill:var(--accent)}.sig-path-endpoint.mismatch{fill:var(--bad)}.sig-node-dot{stroke:#00000059;stroke-width:2}.sig-light-bar{position:absolute;display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--sig-bulb-size, 26px) * .4);box-shadow:0 2px 8px #00000059}.sig-light-bar-target{border-style:dashed;background:transparent}.light-bulb{width:var(--sig-bulb-size, 26px);height:var(--sig-bulb-size, 26px);flex-shrink:0;border-radius:50%;border:calc(var(--sig-bulb-size, 26px) * .0833) solid var(--border);background:#0c141c;opacity:.4;transition:opacity .15s,box-shadow .15s,transform .1s}.light-bulb.on{opacity:1;box-shadow:0 0 4px 1px currentColor}.light-bulb:not(.on){background:#0c141c!important}.light-red{background:var(--c-red);color:var(--c-red);border-color:var(--c-red)}.light-green{background:var(--c-green);color:var(--c-green);border-color:var(--c-green)}.light-blue{background:var(--c-blue);color:var(--c-blue);border-color:var(--c-blue)}.light-yellow{background:var(--c-yellow);color:var(--c-yellow);border-color:var(--c-yellow)}.light-orange{background:var(--c-orange);color:var(--c-orange);border-color:var(--c-orange)}.fill-red,.stroke-red{fill:var(--c-red);stroke:var(--c-red)}.fill-green,.stroke-green{fill:var(--c-green);stroke:var(--c-green)}.fill-blue,.stroke-blue{fill:var(--c-blue);stroke:var(--c-blue)}.fill-yellow,.stroke-yellow{fill:var(--c-yellow);stroke:var(--c-yellow)}.fill-orange,.stroke-orange{fill:var(--c-orange);stroke:var(--c-orange)}.fill-black{fill:#0d0d0d}.fill-white{fill:#f5f5f2}#controlBar{flex:0 0 auto;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.control-row{display:flex;align-items:center;justify-content:space-between;gap:10px}#controlBarHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border);padding-bottom:10px}.control-total{margin-top:8px}#movesDisplay{font-size:14px;color:var(--dim)}#movesDisplay b{color:var(--ink)}.box-header-buttons{display:flex;align-items:center;gap:6px;flex-shrink:0}.tool-btn{background:var(--panel-raised);color:var(--ink);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}.tool-btn:hover{border-color:var(--accent)}.tool-btn:active{transform:translateY(1px)}#controlBar .tool-btn.control-header-btn{font-size:.68rem;padding:3px 8px;min-width:0;flex-shrink:0;line-height:normal}.control-reset-btn{color:var(--bad)}.settings-group{margin-bottom:18px}.settings-label{font-size:.85rem;font-weight:700;margin-bottom:8px}#freePlayPage .puzz-toggle-row{margin:0 auto;display:grid;flex-wrap:nowrap}#freePlayPage .puzz-toggle-opt{padding:calc(8px * var(--puzz-toggle-scale, 1)) calc(16px * var(--puzz-toggle-scale, 1));font-size:calc(.85rem * var(--puzz-toggle-scale, 1))}
