:root{--board-raw:min(94vw, max(480px, min(840px, 78vh)));--grid-n:10;--board-px:calc(round(down, var(--board-raw) - 4px, var(--grid-n) * 1px) + 4px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--region-0:#ffb3ba;--region-1:#ffdfba;--region-2:#fff5ba;--region-3:#baffc9;--region-4:#bae1ff;--region-5:#e0bbe4;--region-6:#c7ceea;--region-7:#ffc8dd;--region-8:#d9f2a6;--region-9:#ddd5c7;--region-10:#b5ead7;--region-11:#f6c6a8;--symbol-color:#3a3a4a;--mark-color:#8a8a99;--error-color:#e5484d;--grid-line-color:#ffffff80;--region-border-color:#3a3a4a;--background-color:#faf8f5;--page-bg:var(--background-color);--text:#1c1c26;--muted:#666;--surface:#fff;--surface-2:#f0f0f0;--surface-3:#f7f7f7;--panel-bg:#fffc;--panel-border:#0002;--panel-border-strong:#0003;--warn-bg:#fdeeee;--notice-bg:#fff8e6;--pressed-bg:#d7e8ff;--accent-text:#1a4fd6;--region-mix:100%}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#16161d;--text:#e8e8ee;--muted:#a3a3b2;--surface:#24242d;--surface-2:#34343f;--surface-3:#2c2c36;--panel-bg:#2a2a34cc;--panel-border:#fff2;--panel-border-strong:#fff3;--warn-bg:#3a2224;--notice-bg:#3a3020;--pressed-bg:#1f3358;--accent-text:#8ab4ff;--region-mix:72%;--region-border-color:#d8d8e4!important;--mark-color:#e6e6f0!important;--grid-line-color:#fff5!important}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--page-bg);color:var(--text);margin:0;font-family:system-ui,Apple SD Gothic Neo,Malgun Gothic,sans-serif}#app{flex-direction:column;min-height:100vh;display:flex}.layout{flex-direction:column;flex:1 0 auto;align-items:center;gap:12px;padding:12px;display:flex}.app-header{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.app-header button,.app-header .puzzle-id{white-space:nowrap}.app-logo{align-self:center;width:auto;height:3.2rem}.app-title{margin:0;font-size:1.2rem}.app-logo,.app-title{cursor:pointer}.theme-toggle{all:unset;border:1px solid var(--panel-border);background:var(--panel-bg);cursor:pointer;border-radius:6px;padding:2px 6px;font-size:.9rem}.theme-toggle:focus-visible{outline-offset:2px;outline:2px solid #2b6cff}.sound-ctl{align-items:center;gap:6px;display:flex}.sound-mute{all:unset;border:1px solid var(--panel-border);background:var(--panel-bg);cursor:pointer;border-radius:6px;padding:2px 6px;font-size:.9rem}.sound-volume{width:80px}.storage-warning{color:var(--error-color);background:var(--warn-bg);border-radius:6px;margin:0;padding:4px 10px;font-size:.75rem}.puzzle-id-row{align-items:center;gap:6px;display:flex}.skin-select{border:1px solid var(--panel-border);background:var(--surface);border-radius:6px;padding:3px 6px;font-size:.8rem}.puzzle-id{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.puzzle-id-copy{all:unset;background:var(--surface-2);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:.75rem}.puzzle-select{text-align:center;max-width:420px}.puzzle-select__tiers,.puzzle-select__sizes,.puzzle-select__stars{flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0;display:flex}.puzzle-select__stars[hidden]{display:none}.size-btn[aria-pressed=true],.star-btn[aria-pressed=true]{color:#fff;background:#2b6cff;border-color:#2b6cff}.tier-btn,.star-btn,.size-btn{all:unset;background:var(--panel-bg);border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.9rem}.resume{margin-bottom:14px}.resume__list{flex-direction:column;gap:6px;max-width:420px;max-height:240px;margin:8px auto 0;padding:0;list-style:none;display:flex;overflow-y:auto}.resume__item{gap:6px;display:flex}.resume__open{all:unset;background:var(--panel-bg);border:1px solid var(--panel-border);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;flex:1;gap:2px;padding:8px 12px;display:flex}.resume__title{font-size:.9rem}.resume__meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.resume__delete{all:unset;background:var(--surface-2);text-align:center;cursor:pointer;width:34px;color:var(--muted);border-radius:8px}.resume__open:focus-visible,.resume__delete:focus-visible{outline-offset:2px;outline:2px solid #2b6cff}.puzzle-select__hint{color:var(--muted);margin:8px 0;font-size:.75rem}.puzzle-select__seed{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.seed-input{border:1px solid var(--panel-border);border-radius:8px;min-width:220px;padding:8px 10px;font-size:.85rem}.seed-start{all:unset;color:#fff;cursor:pointer;background:#2b6cff;border-radius:8px;padding:8px 12px;font-size:.85rem}.board-area{width:100%;min-height:var(--board-px);justify-content:center;align-items:center;display:flex}.loading{color:var(--muted);align-items:center;gap:.75rem;font-size:.95rem;display:flex}.loading__text{margin:0}.board-wrap{isolation:isolate;width:var(--board-px);aspect-ratio:1;position:relative}.pause-cover[hidden]{display:none}.pause-cover{z-index:2;background:var(--page-bg);border:2px solid var(--region-border-color);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.pause-cover__title{margin:0;font-size:1.3rem}.pause-cover__resume{all:unset;color:#fff;cursor:pointer;background:#2b6cff;border-radius:8px;padding:10px 18px;font-size:.95rem}.fan-notice{max-width:640px;color:var(--muted);text-align:center;flex:none;margin:8px auto 12px;padding:0 12px;font-size:.75rem;line-height:1.5}.board{grid-template-columns:repeat(var(--board-size), 1fr);grid-template-rows:repeat(var(--board-size), 1fr);touch-action:none;border:2px solid var(--region-border-color);outline:none;width:100%;height:100%;display:grid;position:relative}.cell{all:unset;box-sizing:border-box;border:1.5px solid var(--grid-line-color);cursor:pointer;-webkit-user-select:none;user-select:none;display:block;position:relative}.cell--cursor{outline-offset:-2px;z-index:1;outline:2px solid #2b6cff}.cell--symbol:before,.cell--mark:before{content:"";position:absolute;inset:22%;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.cell--symbol:before{background-color:var(--symbol-color);-webkit-mask-image:var(--symbol-url);mask-image:var(--symbol-url);-webkit-mask-image:var(--symbol-url)}.cell--mark:before{background-color:var(--mark-color);-webkit-mask-image:var(--mark-url);mask-image:var(--mark-url);-webkit-mask-image:var(--mark-url);inset:30%}[data-symbol-mode=image] .cell--symbol:before,[data-symbol-mode=image] .cell--hint-star:not(.cell--symbol):before{background:var(--symbol-url) center / contain no-repeat;filter:drop-shadow(1.5px 0 #fff)drop-shadow(-1.5px 0 #fff)drop-shadow(0 1.5px #fff)drop-shadow(0 -1.5px #fff)drop-shadow(0 1px 2px #00000059);inset:3%;-webkit-mask:none;mask:none}.cell--locked{cursor:default}.cell--locked:before{background-color:var(--error-color)!important}.hint-layer{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hint-line{stroke-width:3px;stroke-linecap:square}.hint-line--focus{stroke:#e5484d}.hint-line--result{stroke:#2b6cff}.hint-line--warn{stroke:#e5484d}.cell--hint-star:not(.cell--symbol):before,.cell--hint-x:not(.cell--mark):before{content:"";opacity:.35;background-color:var(--symbol-color);-webkit-mask:var(--symbol-url) center / contain no-repeat;mask:var(--symbol-url) center / contain no-repeat;-webkit-mask:var(--symbol-url) center / contain no-repeat;position:absolute;inset:22%}.cell--hint-x:not(.cell--mark):before{background-color:var(--mark-color);-webkit-mask-image:var(--mark-url);mask-image:var(--mark-url);-webkit-mask-image:var(--mark-url);inset:30%}.cell--error{animation:.25s shake}.cell--error:after{content:"";pointer-events:none;background-image:repeating-linear-gradient(45deg,#e5484d59 0 4px,#0000 4px 8px);position:absolute;inset:0}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.toolbar{flex-flow:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.toolbar__status{font-variant-numeric:tabular-nums;gap:12px;font-size:.95rem;display:flex}.toolbar__buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tool-select-area{width:var(--board-px);margin:10px auto 0}.tool-select{display:flex}.tool-select__btn{all:unset;text-align:center;background:var(--panel-bg);border:1px solid var(--panel-border);cursor:pointer;white-space:nowrap;flex:1;padding:12px 4px;font-size:1.05rem}.tool-select__btn+.tool-select__btn{border-left:none}.tool-select__btn:first-child{border-radius:10px 0 0 10px}.tool-select__btn:last-child{border-radius:0 10px 10px 0}.tool-select__btn[aria-pressed=true]{color:#fff;background:#2b6cff;border-color:#2b6cff}.tool-select__btn:disabled{opacity:.4;cursor:default}.tool-select__btn:focus-visible{outline-offset:2px;outline:2px solid #2b6cff}.toolbar__btn{all:unset;background:var(--panel-bg);border:1px solid var(--panel-border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 12px;font-size:.9rem}.toolbar__btn:disabled{opacity:.4;cursor:default}.toolbar__btn[aria-pressed=true]{background:var(--pressed-bg);border-color:#2b6cff88}.toolbar__hint-text{background:var(--notice-bg);border:1px solid #ffb84d55;border-radius:8px;margin:4px 0 0;padding:8px 10px;font-size:.85rem;line-height:1.4}.complete-overlay[hidden]{display:none}.complete-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.complete-card{background:var(--surface);text-align:center;border-radius:12px;padding:24px 32px}.complete-title{margin:0 0 8px;font-size:1.4rem}.complete-time{color:var(--muted);margin:0 0 16px}.help-open{all:unset;border:1px solid var(--panel-border);background:var(--panel-bg);cursor:pointer;border-radius:6px;padding:3px 8px;font-size:.8rem}.help-overlay{z-index:110;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.help-card{background:var(--surface);color:var(--text);border-radius:12px;width:min(640px,100%);max-height:100%;padding:20px 24px;font-size:.92rem;line-height:1.55;position:relative;overflow-y:auto}.help-close{all:unset;float:right;text-align:center;background:var(--surface-2);cursor:pointer;border-radius:50%;width:32px;height:32px;line-height:32px;position:sticky;top:0}.help-body h2{margin:18px 0 6px;font-size:1.1rem}.help-body h2:first-child{margin-top:0}.help-body h3{margin:12px 0 4px;font-size:.95rem}.help-body h3 small{color:var(--muted);font-weight:400}.help-body p{margin:4px 0 8px}.help-body ul{margin:4px 0 8px;padding-left:20px}.help-body li{margin:2px 0}.help-body kbd{border:1px solid var(--panel-border-strong);background:var(--surface-3);border-bottom-width:2px;border-radius:4px;margin:0 1px;padding:1px 5px;font-family:inherit;font-size:.8rem}.tutorial-overlay{z-index:120;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tutorial-card{background:var(--surface);color:var(--text);border-radius:12px;width:min(420px,100%);max-height:100%;padding:20px 24px;font-size:.92rem;line-height:1.55;position:relative;overflow-y:auto}.tutorial-text{white-space:pre-line;margin:0 0 12px;line-height:1.7}.tutorial-text b{color:var(--accent-text)}.tutorial-board-host{justify-content:center;margin-bottom:8px;display:flex}.tutorial-board{aspect-ratio:1;width:min(300px,100%)}.tutorial-board-host--shake{animation:.3s ease-in-out board-shake}.tutorial-note{min-height:1.4em;color:var(--error-color);margin:0 0 8px;font-size:.9rem;font-weight:600}.tutorial-buttons{justify-content:flex-end;gap:8px;display:flex}.tutorial-next,.tutorial-retry{all:unset;cursor:pointer;color:#fff;background:#2b6cff;border-radius:8px;padding:8px 16px;font-size:.9rem}.tutorial-retry{background:var(--surface-2);color:var(--text)}.tutorial-next[hidden],.tutorial-retry[hidden]{display:none}.board-wrap--flash{animation:.45s ease-out board-flash}@keyframes board-flash{0%{opacity:.2;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.board-wrap--shake{animation:.3s ease-in-out board-shake}@keyframes board-shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.cell--wrong-pop{z-index:2;animation:.5s ease-out wrong-pop}@keyframes wrong-pop{0%{transform:scale(1);box-shadow:inset 0 0 0 999px #e5484d8c}30%{transform:scale(1.08);box-shadow:inset 0 0 0 999px #e5484d8c}to{transform:scale(1);box-shadow:inset 0 0 0 999px #e5484d00}}.toolbar__lives{display:inline-block}.toolbar__lives--hit{animation:.4s ease-out lives-hit}@keyframes lives-hit{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.board-wrap--shake,.toolbar__lives--hit{animation:none}.cell--wrong-pop{animation-name:wrong-pop-still}@keyframes wrong-pop-still{0%{box-shadow:inset 0 0 0 999px #e5484d8c}to{box-shadow:inset 0 0 0 999px #e5484d00}}}.toast{z-index:130;color:#fff;pointer-events:none;background:#1c1c26e6;border-radius:999px;padding:10px 18px;font-size:.95rem;animation:.2s ease-out toast-in;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.toast--out{animation:.25s ease-in forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}.confirm-overlay{z-index:120;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.confirm-card{background:var(--surface);color:var(--text);text-align:center;border-radius:12px;width:min(360px,100%);padding:20px 22px 16px}.confirm-message{white-space:pre-line;margin:0 0 16px;line-height:1.5}.confirm-buttons{justify-content:center;gap:10px;display:flex}.confirm-buttons button{all:unset;cursor:pointer;text-align:center;border-radius:8px;min-width:88px;padding:9px 16px;font-size:.95rem}.confirm-no{background:var(--surface-2)}.confirm-yes{color:#fff;background:#2b6cff}.confirm-buttons button:focus-visible{outline-offset:2px;outline:2px solid #2b6cff}.gameover-overlay[hidden]{display:none}.gameover-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gameover-overlay .complete-title{color:var(--error-color)}.gameover-desc{color:var(--muted);margin:0 0 16px}.gameover-buttons{justify-content:center;gap:10px;display:flex}.gameover-buttons button{all:unset;background:var(--surface-2);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.9rem}.gameover-retry,.complete-new{color:#fff;background:#2b6cff!important}.mode-select[hidden]{display:none}.mode-select{text-align:center}.mode-select__buttons{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;display:flex}.mode-block{border:1px solid var(--panel-border-strong);background:var(--panel-bg);border-radius:12px;max-width:420px;margin:14px auto 0;padding:14px 16px 16px}.mode-block__title{margin:0;font-size:1rem}.mode-block__desc{color:var(--muted);margin:6px 0 0;font-size:.8rem;line-height:1.45}.mode-block .mode-select__buttons{margin-top:10px}.mode-btn{all:unset;background:var(--panel-bg);border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;padding:10px 16px;font-size:.9rem}.mode-btn[data-mode=lives]{border-color:#e5484d55}.toolbar__lives{font-size:.9rem}@media (width<=600px){.toolbar-area{background:var(--page-bg);width:100%;padding-top:8px;position:sticky;bottom:0}}@media (width>=601px){.layout{flex-direction:row;justify-content:center;align-items:flex-start;gap:24px}.main-col{flex-direction:column;align-items:center;display:flex}.toolbar-area{width:200px}.toolbar{flex-direction:column;align-items:stretch}.toolbar__buttons{flex-direction:column}}@media (height<=615px){.toolbar>:not(.toolbar__status){display:none}}
