body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{background-color:#d7dff1;margin:auto}.board-row:after{clear:both;content:"";display:table}.square,.coordinate,.counter,.undo,.menu,.checkpoint,.checkpoint-overflow,.invisible{color:#323232;width:var(--cell-size,12vw);aspect-ratio:1;background:#f4f4f4;border:0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin:min(1vw,2px);font-size:clamp(10px,2vw,18px);display:flex}.coordinate,.counter,.undo,.menu,.checkpoint{color:#8e8e8e;background:#ffffffe6;font-weight:700}.square{float:left;text-align:center;cursor:pointer;padding:0}.square-0{background:#add8e6}@keyframes invalid-pulse{0%,to{opacity:1}50%{opacity:.88}}.square-0-invalid{color:#fff;background:#d73c32;border:none;animation:.4s checkpoint-shake,2.4s ease-in-out .4s infinite invalid-pulse}.square-1{background:#f0a0a0}.square-1-invalid{color:#fff;background:#d73c32;border:none;animation:.4s checkpoint-shake,2.4s ease-in-out .4s infinite invalid-pulse}.counter-green{color:#4b4}.counter-red{color:#b44}.square-preset{color:#000;cursor:default;border:1px solid #000;position:relative;overflow:hidden}.square-preset:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff8c 50%,#0000 65%) 160% 160%/250% 250%;border-radius:4px;position:absolute;inset:0}.square-preset:hover:after{animation:.5s ease-out forwards square-shine}.square-preset-invalid{color:#fff;background:#d25f55;animation:2.4s ease-in-out infinite invalid-pulse}.invisible{opacity:0;pointer-events:none}.checkpoint-overflow{color:#b4b4b4;pointer-events:none;font-size:clamp(10px,1.5vw,13px);font-weight:700}@keyframes checkpoint-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.checkpoint.checkpoint-shake{color:#b44;background:#ffd2d2;animation:.4s checkpoint-shake}.board-row{justify-content:center;align-items:center}.board-row,.checkpoint-row{width:95vw;display:flex}.checkpoint-row{justify-content:center;align-items:center;min-height:40px;display:flex}.checkpoint svg,.menu svg,.undo svg,.hint-face svg{max-width:80%;max-height:80%}.hint-wrap{flex-shrink:0;position:relative}.hint-flipper{width:var(--cell-size,12vw);height:var(--cell-size,12vw);cursor:pointer;transform-style:preserve-3d;border-radius:5px;flex-shrink:0;margin:min(1vw,2px);font-size:clamp(10px,2vw,18px);transition:transform .35s ease-in-out;position:relative}.hint-flipper.hint-menu-open{transform:perspective(500px)rotateY(180deg)}.hint-face{backface-visibility:hidden;color:#8e8e8e;background:#ffffffe6;border-radius:5px;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.hint-back{flex-direction:column;gap:1px;transform:rotateY(180deg)}.hint-timer-time{letter-spacing:.3px;font-size:clamp(7px,1.4vw,11px);font-weight:700;line-height:1.1}.hint-timer-pause{opacity:.55;font-size:.75em!important}.hint-bulb-wrap{justify-content:center;align-items:center;display:inline-flex;position:relative}.hint-count-inner{color:inherit;pointer-events:none;font-size:7px;font-weight:700;line-height:1;position:absolute;top:38.5%;left:51%;transform:translate(-50%,-50%)}@keyframes hint-bulb-glow{0%{color:#8e8e8e;filter:none}25%{color:#f0c040;filter:drop-shadow(0 0 5px #f0c04099)}to{color:#8e8e8e;filter:none}}.hint-front.hint-glow{animation:.6s ease-out hint-bulb-glow}.hint-front.hint-exhausted{color:#ccc}.hint-flipper.hint-shake{animation:.4s checkpoint-shake}.hint-flipper.hint-shake .hint-front{color:#b44;background:#ffd2d2}@keyframes hint-error-pulse{0%,to{opacity:1}50%{opacity:.72}}.hint-back-error{color:#fff;animation:1.4s ease-in-out infinite hint-error-pulse;background:#d73c32!important}.hint-error-mark{justify-content:center;align-items:center;display:flex}@keyframes bubble-pop{0%{opacity:0;transform:scale(.04)}55%{opacity:1;transform:scale(1.07)}75%{transform:scale(.96)}90%{transform:scale(1.02)}to{transform:scale(1)}}.error-bubble{z-index:50;width:max-content;min-width:220px;transform-origin:calc(var(--cell-size,12vw) / 2) 100%;pointer-events:none;background:#fff;border-radius:12px;padding:10px 14px;animation:.45s cubic-bezier(.22,1,.36,1) bubble-pop;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 4px 18px #0000002e}.error-bubble:after{content:"";top:100%;left:calc(var(--cell-size,12vw) / 2);border:8px solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;transform:translate(-50%)}.error-bubble-rule{flex-direction:column;gap:6px;display:flex}.error-bubble-text{color:#333;margin:0;font-size:clamp(9px,1.5vw,12px);line-height:1.4}@keyframes board-enter{0%{opacity:0;transform:translateY(28px)scale(.96)}to{opacity:1;transform:none}}@keyframes square-card-flip{0%{opacity:0;transform:rotateY(90deg)}80%{opacity:1;transform:rotateY(-4deg)}to{transform:rotateY(0)}}@keyframes square-shine{0%{opacity:0;background-position:160% 160%}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:-60% -60%}}.square-appear{animation:.42s cubic-bezier(.25,.46,.45,.94) both square-card-flip;animation-delay:var(--delay,0s);position:relative;overflow:hidden}.square-appear:after{content:"";animation:.55s ease-out forwards square-shine;animation-delay:calc(var(--delay,0s) + .28s);pointer-events:none;background:linear-gradient(115deg,#0000 35%,#fff9 50%,#0000 65%) 0 0/250% 250%;position:absolute;inset:0}@keyframes hint-color-0{0%{color:#0000;background:#f4f4f4}to{color:#0000;background:#add8e6}}@keyframes hint-color-1{0%{color:#0000;background:#f4f4f4}to{color:#0000;background:#f0a0a0}}@keyframes hint-flip-in{0%{color:#0000;transform:rotateY(0)}44%{color:#0000;transform:rotateY(90deg)}45%{color:#323232;transform:rotateY(-90deg)}85%{transform:rotateY(4deg)}to{color:#323232;transform:rotateY(0)}}.square-hint-reveal.square-0{animation:1.3s ease-in-out forwards hint-color-0,.6s cubic-bezier(.22,1,.36,1) 1.2s forwards hint-flip-in}.square-hint-reveal.square-1{animation:1.3s ease-in-out forwards hint-color-1,.6s cubic-bezier(.22,1,.36,1) 1.2s forwards hint-flip-in}@keyframes square-menu-fold{0%{transform:scale(1)rotateY(0)}25%{transform:scale(1.08)rotateY(0)}to{transform:scale(1.08)rotateY(90deg)}}@keyframes square-menu-unfold{0%{transform:scale(1.08)rotateY(90deg)}75%{transform:scale(1.08)rotateY(0)}to{transform:scale(1)rotateY(0)}}.square-menu-fold{animation:.32s ease-in both square-menu-fold;animation-delay:var(--menu-delay,0s)}.square-menu-unfold{animation:.38s ease-out both square-menu-unfold;animation-delay:var(--menu-delay,0s)}.game-board{flex-direction:column;width:max-content;animation:.45s cubic-bezier(.22,1,.36,1) both board-enter;display:flex;position:relative}.game{flex-direction:column;justify-content:center;align-items:center;height:100dvh;display:flex}.version-label{bottom:max(10px, env(safe-area-inset-bottom,10px));color:#999;opacity:.7;z-index:100;pointer-events:none;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.modal-backdrop{z-index:1000;width:100vw;height:100dvh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.modal-content{text-align:center;box-sizing:border-box;background:#fff;border-radius:8px;min-width:300px;padding:32px;box-shadow:0 2px 8px #0003}.modal-button{color:#fff;cursor:pointer;background:#1976d2;border:1px solid #ccc;border-radius:6px;margin-top:16px;padding:12px 24px;font-size:18px;transition:background .2s}.modal-button:hover{background:#1565c0}.rules-modal{text-align:left;max-width:380px}.start-modal{max-height:90vh;padding-top:20px;overflow-y:auto}.start-modal-divider{margin:16px 0 12px}.start-modal-btn{width:100%;margin-top:12px}.rules-modal h2{text-align:center;margin-top:0;margin-bottom:12px}.rules-modal p{margin:0 0 12px;line-height:1.5}.rules-list{margin:0 0 16px;padding-left:20px}.rules-list li{margin-bottom:12px;line-height:1.5}.rule-example{align-items:center;gap:12px;margin-top:6px;display:flex}.example-case{flex-direction:row;align-items:center;gap:6px;display:flex}.mini-grid{flex-direction:column;gap:2px;display:flex}.mini-row{gap:2px;display:flex}.mini-cell{color:#333;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75em;font-weight:700;display:flex}.mini-0{background:#add8e6}.mini-1{background:#f0a0a0}.mini-empty{background:#e8e8e8}.example-arrow{color:#bbb}.verdict-bad{color:#b44;font-weight:700}.verdict-good{color:#4b4;font-weight:700}.rules-hint{color:#888;font-size:.9em}.rules-checkbox{cursor:pointer;color:#555;align-items:center;gap:8px;margin:16px 0 4px;font-size:.95em;display:flex}.rules-checkbox input{cursor:pointer;accent-color:#1976d2;width:16px;height:16px}.rules-modal .modal-button{width:100%;margin-top:12px}.toggle-group{width:100%;margin:6px 0 18px;display:flex}.toggle-btn{color:#333;cursor:pointer;background:#f0f0f0;border:1px solid #ccc;border-radius:0;flex:1;min-width:0;height:38px;padding:0 12px;font-size:1em;transition:background .2s,color .2s;position:relative}.toggle-btn+.toggle-btn{margin-left:-1px}.toggle-btn:first-child{border-radius:20px 0 0 20px}.toggle-btn:last-child{border-radius:0 20px 20px 0}.toggle-btn.active,.toggle-btn:hover{color:#fff;z-index:1;background:#1976d2;border-color:#1976d2}.toggle-btn-symbol{font-size:1.4em}.toggle-btn-icon{justify-content:center;align-items:center;display:flex}@keyframes extreme-pulse{0%,to{box-shadow:0 0 4px 1px #f5e10055,0 0 10px 2px #f5e10022}50%{box-shadow:0 0 12px 4px #f5e100bb,0 0 24px 8px #f5e10055}}.toggle-btn-extreme.active,.toggle-btn-extreme:hover{color:#2a2600;background:#f5e100;border-color:#cb0;animation:1.8s ease-in-out infinite extreme-pulse}@keyframes diff-desc-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.difficulty-desc{color:#aaa;text-align:center;min-height:2.4em;margin:2px 0 8px;font-size:.78rem;animation:.2s both diff-desc-in}.difficulty-desc-text{display:block}.difficulty-desc-percent{opacity:.7;margin-top:1px;font-size:.72rem;display:block}.difficulty-desc-extreme{color:#b39800;font-weight:500}.win-selector-value-extreme{color:#b39800}@keyframes letter-creep{0%{transform:translate(0)rotate(0)}12%{transform:translate(.6px,-1px)rotate(.5deg)}25%{transform:translate(-1px,.5px)rotate(-.7deg)}37%{transform:translate(.8px,1px)rotate(.4deg)}50%{transform:translate(-.5px,-.8px)rotate(-.5deg)}62%{transform:translate(1px,.3px)rotate(.8deg)}75%{transform:translate(-.8px,1px)rotate(-.4deg)}87%{transform:translate(.5px,-.5px)rotate(.6deg)}to{transform:translate(0)rotate(0)}}.creepy-letter{animation:1.2s ease-in-out infinite letter-creep;display:inline-block}.toggle-label{margin-bottom:16px;font-size:1.1em}.game-background{background-position:50%;background-repeat:no-repeat;background-size:cover;min-width:100vw;min-height:100dvh;overflow:hidden}.board-middle{justify-content:center;align-items:flex-start;width:95vw;display:flex}.board-col{flex-direction:column;display:flex}.square-row{display:flex}.grid-inner{perspective:800px;position:relative}@keyframes icon-spin-in{0%{opacity:0;transform:rotate(-90deg)scale(.5)}to{opacity:1;transform:rotate(0)scale(1)}}.menu-anim-icon{animation:.2s ease-out icon-spin-in}@keyframes menu-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes menu-out{0%{opacity:1}to{opacity:0}}.board-menu-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;background:#f4f4f4eb;border-radius:5px;justify-content:center;align-items:center;animation:.15s ease-out menu-in;display:flex;position:absolute;inset:min(1vw,2px)}.board-menu-overlay.menu-closing{pointer-events:none;animation:.15s ease-out forwards menu-out}.board-menu-content{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:clamp(5px,1.2vw,12px);width:100%;padding:clamp(8px,2vw,16px);display:flex}.menu-item{cursor:pointer;color:#333;-webkit-user-select:none;user-select:none;white-space:nowrap;box-sizing:border-box;background:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:clamp(7px,1.3vw,11px) clamp(8px,1.5vw,14px);font-size:clamp(10px,1.8vw,14px);font-weight:600;transition:background .12s,transform .1s;display:flex;box-shadow:0 2px 6px #0000001a}.menu-item:hover{background:#f0f0f0;transform:scale(1.04)}.menu-item:active{transform:scale(.96)}.menu-item-danger{color:#c0392b}.confirm-modal{max-width:320px}.confirm-modal-icon{color:#c0392b;margin-bottom:4px;font-size:2.5rem!important}.confirm-modal h2{margin:0 0 8px;font-size:1.25rem}.confirm-modal p{color:#555;margin:0;font-size:.95rem}.confirm-modal-buttons{justify-content:center;gap:12px;margin-top:20px;display:flex}.modal-button-secondary{color:#333;background:0 0;border-color:#bbb}.modal-button-secondary:hover{background:#f0f0f0}.modal-button-danger{background:#c0392b;border-color:#c0392b}.modal-button-danger:hover{background:#a93226}.tips-modal{text-align:left;max-width:400px;max-height:90vh;overflow-y:auto}.tips-modal h2{text-align:center;margin-bottom:16px}.tips-list{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}.tip-item{background:#f8f8f8;border-radius:8px;padding:10px 12px}.tip-title{color:#1976d2;margin-bottom:6px;font-size:.95em;font-weight:700}.tip-desc{color:#666;margin-top:6px;font-size:.87em;line-height:1.4}.tip-unknown{color:#888}@keyframes win-modal-appear{0%{opacity:0;transform:scale(.8)translateY(24px)}65%{transform:scale(1.04)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes trophy-drop{0%{opacity:0;transform:translateY(-30px)scale(.4)rotate(-15deg)}55%{opacity:1;transform:translateY(6px)scale(1.15)rotate(4deg)}75%{transform:translateY(-4px)scale(.95)rotate(-2deg)}to{transform:translateY(0)scale(1)rotate(0)}}.win-modal{width:390px;max-width:390px;animation:.5s cubic-bezier(.34,1.56,.64,1) both win-modal-appear}.win-trophy-icon{color:#f0b429;filter:drop-shadow(0 3px 10px #f0b42966);animation:.7s cubic-bezier(.22,1,.36,1) .1s both trophy-drop;font-size:3.5rem!important}.win-heading{margin:6px 0 4px;font-size:1.7rem}.win-time{letter-spacing:3px;color:#1976d2;margin:4px 0 10px;font-size:2.6rem;font-weight:700}.win-info-badge{color:#777;background:#f0f0f0;border-radius:20px;margin-bottom:20px;padding:4px 14px;font-size:.83rem;display:inline-block}.win-divider{text-transform:uppercase;letter-spacing:2px;color:#bbb;margin:0 0 12px;font-size:.7rem;font-weight:700}.win-selector-group{width:100%;margin-bottom:10px}.win-selector-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;padding:0 2px;display:flex}.win-selector-label{text-transform:uppercase;letter-spacing:1.5px;color:#aaa;font-size:.7rem;font-weight:700}.win-selector-value{color:#1976d2;font-size:.85rem;font-weight:600}.win-selector-group .toggle-group{margin:0}@media (width<=480px){.modal-content{width:min(100vw - 32px,400px);min-width:0;padding:20px 16px}.rules-modal,.tips-modal{max-width:none}.toggle-btn{padding:6px 10px;font-size:.95em}.modal-button{padding:10px 20px;font-size:16px}}@media (height<=650px){.modal-backdrop{padding-top:max(12px, env(safe-area-inset-top,12px));padding-bottom:max(12px, env(safe-area-inset-bottom,12px));align-items:flex-start;overflow-y:auto}.rules-modal,.tips-modal{max-height:none}}
