@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.board-grid{display:grid;grid-template-columns:repeat(var(--cols),var(--tile-px, 24px));grid-template-rows:repeat(var(--rows),var(--tile-px, 24px));gap:1px;flex:none;border-radius:var(--radius);overflow:hidden;border:1px solid transparent;background:linear-gradient(#0e1017,#0e1017) padding-box,linear-gradient(-45deg,#46c8bd,#9b7ce8) border-box;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font:600 calc(var(--tile-px, 32px) * .62)/1 ui-monospace,"SF Mono",Menlo,Consolas,monospace}.tile{position:relative;display:flex;align-items:center;justify-content:center;background:var(--tile-hidden);outline:2px solid transparent;outline-offset:-2px;transition:outline-color .18s ease}.tile-open{background:var(--tile-revealed)}.tile-open.anim-cascade:before{content:"";position:absolute;inset:0;background:var(--tile-hidden);opacity:0;pointer-events:none;animation:cover-lift .24s ease-in backwards;animation-delay:calc(var(--d, 0) * 45ms)}@keyframes cover-lift{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.5)}}.tile-open.anim-cascade .glyph{animation:glyph-in .22s ease-out backwards;animation-delay:calc(var(--d, 0) * 45ms + .1s)}@keyframes glyph-in{0%{opacity:0}}.tile-flag{color:var(--tile-flag)}.anim-flag .glyph{animation:flag-in .18s ease-out backwards}@keyframes flag-in{0%{opacity:0;transform:translateY(-3px)}}.anim-autoflag .glyph{animation:flag-auto .24s ease-out backwards;animation-delay:calc(var(--d, 0) * 40ms)}@keyframes flag-auto{0%{opacity:0;transform:scale(.6)}}.anim-unflag:after{content:"⚑";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--tile-flag);opacity:0;pointer-events:none;animation:flag-out .18s ease-in}@keyframes flag-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.6)}}.board-loading .tile{animation:tile-wave 2.4s ease-in-out infinite;animation-delay:calc(var(--d, 0) * 60ms)}@keyframes tile-wave{0%,26%,to{opacity:1}13%{opacity:.4}}.tile-mine{background:var(--tile-mine);color:#fff}.tile-shown-mine{color:var(--tile-mine)}.tile-shown.anim-cascade .glyph{animation:glyph-in .22s ease-out backwards;animation-delay:calc(var(--d, 0) * 45ms)}.tile-hit{box-shadow:inset 0 0 0 2px #ffffffb3}.tile-n1{color:var(--n1)}.tile-n2{color:var(--n2)}.tile-n3{color:var(--n3)}.tile-n4{color:var(--n4)}.tile-n5{color:var(--n5)}.tile-n6{color:var(--n6)}.tile-n7{color:var(--n7)}.tile-n8{color:var(--n8)}.tile-hint-clue{outline-color:var(--hl-clue);outline-style:dashed}.tile-hint-clear{outline-color:var(--hl-clear)}.tile-hint-flag{outline-color:var(--hl-flag)}@media (prefers-reduced-motion: reduce){.tile{transition:none}.board-loading .tile,.tile-open.anim-cascade:before,.tile-open.anim-cascade .glyph,.tile-shown.anim-cascade .glyph,.anim-flag .glyph,.anim-autoflag .glyph,.anim-unflag:after{animation:none}}:root{--bg: #000000;--panel: #171922;--panel-raised: #1e2130;--text: #e8eaf0;--text-dim: #8a90a3;--accent: #5aa9e6;--accent-text: #ffffff;--button-border: rgb(65, 116, 158);--info-border: rgb(70 200 189);--stat-border: rgb(76, 154, 218);--surface: #4c8295;--surface-panel: #1f2230;--surface-panel-border: #ff0000;--radius-surface: 16px;--tile-hidden: #2b2f3f;--tile-hidden-edge: #383d52;--tile-revealed: #0e1017;--tile-flag: #e0654f;--tile-mine: #c2384a;--hl-clue: #f0c04a;--hl-clear: #5fce8f;--hl-flag: #e0654f;--logo-start: #46c8bd;--logo-mid: #4f9fe0;--logo-end: #9b7ce8;--logo-accent: #e2453f;--field-tile: #13161f;--field-bg: var(--bg);--n1: #5aa9e6;--n2: #5fce8f;--n3: #e6805a;--n4: #a98ce6;--n5: #e6cf5a;--n6: #5fd6ce;--n7: #e68cc4;--n8: #9aa3b8;--radius: 9px;--shadow: 0 12px 32px rgba(0, 0, 0, .45);--font-ui: "Nunito Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f4f5f8;--panel: #ffffff;--panel-raised: #ffffff;--text: #1a1c24;--text-dim: #666d80;--surface: #ffffff;--surface-panel: #eef1f7;--tile-hidden: #c9cedd;--tile-hidden-edge: #dfe3ee;--tile-revealed: #eef0f6;--tile-flag: #d1442c;--tile-mine: #c2384a;--hl-clue: #b8860b;--hl-clear: #1f8a4d;--hl-flag: #d1442c;--field-tile: #dfe3ee;--n1: #1f6fb2;--n2: #1f8a4d;--n3: #c2551f;--n4: #6b47b8;--n5: #a8871a;--n6: #17867e;--n7: #b3448c;--n8: #5a6173;--shadow: 0 12px 32px rgba(20, 24, 40, .16);color-scheme:light}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);overscroll-behavior:none}#app{position:fixed;inset:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.page{flex:1 1 auto;width:100%;max-width:760px;margin:0 auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.tabular{font-variant-numeric:tabular-nums}.button{padding:10px 16px;font:inherit;font-size:.9rem;font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--button-border);border-radius:var(--radius);cursor:pointer;transition:border-color .12s,transform 80ms}.button:hover{border-color:var(--accent)}.button:active{transform:translateY(1px)}.button:disabled{color:var(--text-dim);cursor:default;opacity:.6}.button:disabled:hover{border-color:var(--button-border)}.button-primary{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}.button-quiet{color:var(--text-dim);background:transparent;border-color:transparent;font-weight:500}.button-quiet:hover{color:var(--text);border-color:var(--button-border)}.button-large{padding:15px 44px;font-size:1.05rem;letter-spacing:.01em}.cascade-host{position:absolute;inset:0}.cascade-field{position:absolute;inset:0;width:100%;height:100%;display:block}.landing{position:relative;max-width:1400px;justify-content:center;align-items:center;text-align:center;overflow:hidden}.landing-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none}.landing-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px}.landing-date{margin:6px 0 2px;font-size:1.05rem;font-weight:600}.logo-lockup{margin:0;display:flex;flex-direction:column;align-items:center}.logo{font-size:clamp(2.6rem,13vw,4.2rem);font-weight:700;letter-spacing:-.035em;line-height:1;display:flex}.logo-sub{display:flex;font-size:clamp(1.35rem,6.4vw,2.15rem);font-weight:700;line-height:1;letter-spacing:.14em;margin:.2em 0 0 .14em}.logo-letter{display:inline-block;animation:letter-drop .52s cubic-bezier(.22,1.2,.36,1) backwards}@keyframes letter-drop{0%{opacity:0;transform:translateY(-.35em)}to{opacity:1;transform:none}}.tile-mark{display:grid;grid-template-columns:repeat(3,15px);gap:3px}.mark-cell{width:15px;height:15px;border-radius:3px;background:var(--tile-hidden);animation:mark-open .62s ease-out backwards}@keyframes mark-open{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.logo-letter,.mark-cell{animation:none}}.hud{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;background:var(--panel);border:1px solid var(--stat-border);border-radius:12px}.stat-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim)}.stat-value{font-size:1.5rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}.stat-lives{display:flex;gap:5px;align-items:center;height:1.8rem}.life{width:12px;height:12px;border-radius:50%;background:var(--tile-flag)}.life-spent{background:transparent;box-shadow:inset 0 0 0 1.5px var(--stat-border)}.hud>.chip{align-self:center}@media (max-width: 899px){.stat{padding:6px 8px}.stat-value{font-size:1.25rem}.stat-lives{height:1.5rem}.hud{grid-template-columns:repeat(4,1fr);gap:4px}}.chip{display:inline-flex;align-items:center;gap:9px;padding:6px 8px 6px 11px;background:var(--panel);border:1px solid var(--stat-border);border-radius:999px}.chip-label{display:flex;align-items:baseline;gap:6px}.chip-band{font-size:.82rem;font-weight:600}.chip-score{font-size:.72rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.chip-meter{width:46px;height:4px;border-radius:2px;background:var(--stat-border);overflow:hidden}.chip-meter-fill{display:block;height:100%;background:var(--accent)}.chip-info{width:20px;height:20px;padding:0;font:inherit;font-size:.68rem;font-weight:700;font-style:italic;color:var(--text-dim);background:transparent;border:1px solid var(--stat-border);border-radius:50%;cursor:pointer}.chip-info:hover{color:var(--text);border-color:var(--accent)}.popover{position:relative;display:inline-flex}.popover-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(320px,calc(100vw - 32px));padding:13px 15px;background:var(--panel-raised);border:1px solid var(--info-border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left}.popover-title{margin:0 0 7px;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim)}.popover-panel p{margin:0 0 9px;font-size:.82rem;line-height:1.5}.popover-note{color:var(--text-dim);font-size:.78rem!important;margin-bottom:0!important}.detail-list{display:grid;gap:3px;margin:0 0 10px;font-size:.8rem}.detail-row{display:flex;justify-content:space-between;gap:12px}.detail-row dt{color:var(--text-dim)}.detail-row dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.modal-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#06070b9e;animation:fade-in .15s ease-out}.modal-panel{width:min(400px,100%);padding:22px;background:var(--panel-raised);border:1px solid var(--stat-border);border-radius:14px;box-shadow:var(--shadow);animation:modal-rise .18s cubic-bezier(.22,1.1,.36,1)}.modal-title{margin:0 0 10px;font-size:1.2rem;letter-spacing:-.01em}.modal-body p{margin:0 0 9px;font-size:.88rem;line-height:1.5;color:var(--text-dim)}.modal-detail{font-size:.8rem!important}.result-time{color:var(--text)!important;font-size:2.2rem!important;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-bottom:4px!important}.modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.modal-backdrop,.modal-panel{animation:none}}.game{max-width:none;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface-panel);flex:1 1 0;min-height:0}.game-surface,.game-panel{display:contents}.game-header{order:-2}.game-hud{order:-1}.game-header{margin-bottom:10px}.game-title{margin:0;padding:0;border:none;font:inherit;font-size:56px;font-weight:700;width:100%;text-align:left;cursor:pointer;background:-webkit-linear-gradient(-45deg,rgb(70,200,189),rgb(155,124,232));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:flex}.game-title-secondary{font-size:25px;font-weight:700;letter-spacing:2.7px;color:var(--text-dim);margin:auto 0 11px auto}.game-date{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;text-align:center}@media (max-width: 899px){.game-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:0}.game-title{font-size:24px;width:auto}.game-title-secondary{font-size:13px;letter-spacing:1.6px;margin:auto 0 1px 6px}.game-date{font-size:.85rem}}.board-area{position:relative;display:flex;flex:1 1 0;min-height:240px;min-width:0;justify-content:center;align-items:flex-start;overflow:hidden;max-height:calc(var(--rows, 20) * var(--tile-px, 24px) + (var(--rows, 20) - 1) * 1px + 2px)}.board-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border-radius:var(--radius);overflow:hidden}.board-overlay .cascade-host{mask-image:radial-gradient(ellipse 55% 34% at 50% 50%,transparent 30%,black 100%);-webkit-mask-image:radial-gradient(ellipse 55% 34% at 50% 50%,transparent 30%,black 100%)}.board-overlay-text{position:relative;margin:0;color:var(--text-dim);font-size:.9rem}.game-caption{margin:0;min-height:1.4em;font-size:.95rem;line-height:1.5;color:var(--text)}.game-actions{display:flex;gap:8px;flex-wrap:wrap}.game-actions>.button{flex:1 1 auto}.howto{padding:14px 16px;background:var(--panel);border:1px solid var(--info-border);border-radius:14px;display:flex;flex-direction:column;gap:12px}.howto-title{margin:0;font-size:1rem;font-weight:800}.howto-panel{display:none}.sheet-backdrop{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:flex-end;background:#06070b80;animation:fade-in .15s ease-out}.howto-sheet{max-height:calc(100% - 72px);overflow-y:auto;border-radius:14px 14px 0 0;border-bottom:none;background:var(--panel-raised);box-shadow:var(--shadow);padding-bottom:calc(16px + env(safe-area-inset-bottom));animation:sheet-rise .26s cubic-bezier(.22,1.1,.36,1)}.howto-sheet-head{display:flex;align-items:center;justify-content:space-between}@keyframes sheet-rise{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion: reduce){.sheet-backdrop,.howto-sheet{animation:none}}.howto-rows{display:flex;flex-direction:column;gap:10px}.howto-row{display:flex;align-items:center;gap:12px;font-size:.95rem;line-height:1.35}.demo-tile{flex:0 0 auto;width:26px;height:26px;border-radius:6px;background:var(--tile-hidden);display:flex;align-items:center;justify-content:center;font:700 .85rem/1 ui-monospace,SF Mono,Menlo,Consolas,monospace}.demo-flag{color:var(--tile-flag)}.demo-open{background:var(--tile-revealed);color:var(--n3)}.howto-divider{height:1px;background:var(--info-border)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem;font-weight:600;cursor:pointer}.switch{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:40px;height:23px;margin:0;border:none;border-radius:999px;background:gray;position:relative;cursor:pointer;transition:background .16s ease}.switch:before{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:var(--text);opacity:.85;transition:transform .16s ease}.switch:checked{background:var(--info-border)}.switch:checked:before{transform:translate(17px);background:#fff;opacity:1}@media (min-width: 900px) and (min-height: 480px){.game{flex-direction:row;justify-content:center;padding:26px 16px calc(26px + env(safe-area-inset-bottom));background:none}.game-surface{display:flex;gap:20px;padding:20px;background:var(--surface);border-radius:var(--radius-surface);min-width:0;width:100%;max-width:1100px}.game-panel{display:flex;flex-direction:column;gap:10px;flex:0 0 340px;padding:16px;background:var(--surface-panel);border:var(--surface-panel-border);border-radius:var(--radius-surface)}.board-area{justify-content:flex-start}.howto-panel{display:flex}.howto-open{display:none}.game-actions{flex-direction:column;align-items:stretch;margin-top:auto}.game-actions>.button{flex:0 0 auto}}
