:root{--color-neutral-50: #F8F8F8;--color-neutral-100: #F3F4F6;--color-neutral-200: #E8E8E8;--color-neutral-300: #E0E0E0;--color-neutral-400: #C0C0C0;--color-neutral-500: #7F8C8D;--color-neutral-600: #6B7280;--color-neutral-700: #34495E;--color-neutral-800: #1F2937;--color-neutral-900: #000000;--color-blue-50: #EFF6FF;--color-blue-100: #DBEAFE;--color-blue-400: #4A90E2;--color-blue-500: #357ABD;--color-blue-600: #2563EB;--color-blue-700: #1D4ED8;--color-green-50: #F0FDF4;--color-green-100: #D1FAE5;--color-green-400: #ACF39D;--color-green-500: #10B981;--color-green-600: #059669;--color-red-50: #FEF2F2;--color-red-100: #FEE2E2;--color-red-500: #EF4444;--color-red-600: #DC2626;--color-red-700: #B91C1C;--color-amber-50: #FFFBEB;--color-amber-100: #FEF3C7;--color-amber-500: #F59E0B;--color-amber-600: #D97706;--color-hint-1: #FFB04A;--color-hint-2: #FF8C42;--color-hint-3: #FF6347;--color-hint-4: #FF4169;--color-hint-5: #F03A7C;--color-hint-6: #D4357F;--color-hint-7: #B02D8A;--color-hint-8: #8C1F7D;--color-hint-9: #661565;--color-primary: var(--color-blue-400);--color-primary-hover: var(--color-blue-500);--color-primary-active: var(--color-blue-600);--color-bg-base: var(--color-neutral-100);--color-bg-surface: var(--color-neutral-50);--color-bg-elevated: #FFFFFF;--color-bg-secondary: var(--color-neutral-100);--color-bg-hover: var(--color-neutral-200);--color-bg-active: var(--color-neutral-200);--color-text-primary: var(--color-neutral-700);--color-text-secondary: var(--color-neutral-500);--color-text-muted: var(--color-neutral-600);--color-text-disabled: var(--color-neutral-400);--color-text-on-primary: #FFFFFF;--color-text-emphasis: var(--color-neutral-800);--color-border: var(--color-neutral-300);--color-border-light: var(--color-neutral-200);--color-border-strong: var(--color-neutral-400);--color-canvas-bg: var(--color-neutral-100);--color-grid-line: var(--color-neutral-300);--color-solution-path: var(--color-blue-400);--color-player-path: var(--color-neutral-900);--color-player-path-win: var(--color-green-400);--color-hint-validated: var(--color-green-400);--color-hint-extra: var(--color-neutral-400);--color-success: var(--color-green-400);--color-success-bg: var(--color-amber-100);--color-success-icon: var(--color-amber-500);--color-streak: var(--color-amber-500);--color-error: var(--color-red-500);--color-error-bg: var(--color-red-100);--color-warning: var(--color-amber-500);--color-warning-bg: var(--color-amber-100);--color-info: var(--color-blue-400);--color-info-bg: var(--color-blue-100);--color-neutral: var(--color-neutral-600);--color-neutral-bg: var(--color-neutral-100);--color-overlay-hover: rgba(52, 73, 94, .08);--color-overlay-active: rgba(52, 73, 94, .12);--color-overlay-subtle: rgba(0, 0, 0, .04);--color-shadow-sm: rgba(0, 0, 0, .1);--color-shadow-md: rgba(0, 0, 0, .15);--color-shadow-lg: rgba(0, 0, 0, .2);--color-backdrop: rgba(0, 0, 0, .5);--color-theme: var(--color-neutral-100)}@media (prefers-color-scheme: dark){:root{--color-neutral-50: #1A1A1A;--color-neutral-100: #242424;--color-neutral-200: #2E2E2E;--color-neutral-300: #3A3A3A;--color-neutral-400: #525252;--color-neutral-500: #9CA3AF;--color-neutral-600: #D1D5DB;--color-neutral-700: #E5E7EB;--color-neutral-800: #F3F4F6;--color-neutral-900: #FFFFFF;--color-blue-50: #1E3A5F;--color-blue-100: #1E4A7A;--color-blue-400: #60A5FA;--color-blue-500: #3B82F6;--color-blue-600: #2563EB;--color-blue-700: #1D4ED8;--color-green-50: #1A3A2E;--color-green-100: #234D3E;--color-green-400: #86EFAC;--color-green-500: #22C55E;--color-green-600: #16A34A;--color-red-50: #3A1A1A;--color-red-100: #4A2020;--color-red-500: #F87171;--color-red-600: #EF4444;--color-red-700: #DC2626;--color-amber-50: #3A2E1A;--color-amber-100: #4A3A20;--color-amber-500: #FCD34D;--color-amber-600: #F59E0B;--color-hint-1: #FFD580;--color-hint-2: #FFAD66;--color-hint-3: #FF8A6B;--color-hint-4: #FF6B8A;--color-hint-5: #FF5E9D;--color-hint-6: #E857A6;--color-hint-7: #D14DB3;--color-hint-8: #B845A0;--color-hint-9: #8A3A86;--color-bg-elevated: #2E2E2E;--color-theme: var(--color-neutral-100)}}@font-face{font-family:Inter;font-style:normal;font-display:block;font-weight:400;src:url(/nl/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/nl/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");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:Inter;font-style:normal;font-display:block;font-weight:400;src:url(/nl/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/nl/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:block;font-weight:500;src:url(/nl/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/nl/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");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:Inter;font-style:normal;font-display:block;font-weight:500;src:url(/nl/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/nl/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:block;font-weight:600;src:url(/nl/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/nl/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");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:Inter;font-style:normal;font-display:block;font-weight:600;src:url(/nl/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/nl/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:block;font-weight:700;src:url(/nl/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/nl/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");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:Inter;font-style:normal;font-display:block;font-weight:700;src:url(/nl/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/nl/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");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}@font-face{font-family:Monoton;font-style:normal;font-display:block;font-weight:400;src:url(/nl/assets/monoton-latin-ext-400-normal-CgkMCLzF.woff2) format("woff2"),url(/nl/assets/monoton-latin-ext-400-normal-D9FcGIS5.woff) format("woff");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:Monoton;font-style:normal;font-display:block;font-weight:400;src:url(/nl/assets/monoton-latin-400-normal--Xn4BnFH.woff2) format("woff2"),url(/nl/assets/monoton-latin-400-normal-CgrPpToo.woff) format("woff");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}*{box-sizing:border-box;margin:0;padding:0}html{touch-action:none;-webkit-text-size-adjust:100%}:root{--font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}html[lang=ja]{--font-ui: "Inter", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", Meiryo, system-ui, sans-serif}html[lang=ko]{--font-ui: "Inter", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Nanum Gothic", system-ui, sans-serif}html[lang=zh-Hans]{--font-ui: "Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}html[lang=zh-Hant]{--font-ui: "Inter", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif}html[lang=ja] .tutorial-section-message,html[lang=ko] .tutorial-section-message,html[lang=zh-Hans] .tutorial-section-message,html[lang=zh-Hant] .tutorial-section-message,html[lang=ja] .bottom-sheet-message,html[lang=ko] .bottom-sheet-message,html[lang=zh-Hans] .bottom-sheet-message,html[lang=zh-Hant] .bottom-sheet-message{line-height:1.7}html[lang=ja] .tutorial-section-message,html[lang=zh-Hans] .tutorial-section-message,html[lang=zh-Hant] .tutorial-section-message{line-break:strict}html[lang=ko] .tutorial-section-message,html[lang=ko] .bottom-sheet-message{word-break:keep-all;overflow-wrap:break-word}body{font-family:var(--font-ui);background-color:var(--color-bg-base);min-height:100vh;min-height:100dvh;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}button{font-family:inherit}#app{display:flex;flex-direction:column;height:100vh;height:100dvh}.top-bar{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 4px;background-color:var(--color-bg-base);position:relative}.top-bar-title{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:22px;font-weight:500;color:var(--color-text-primary);letter-spacing:0;line-height:28px;text-align:center;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-actions{display:flex;align-items:center;gap:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:12px;background:none;border:none;cursor:pointer;color:var(--color-text-primary);border-radius:50%;transition:background-color .1s ease;flex-shrink:0}.icon-btn:hover{background-color:var(--color-overlay-hover)}.icon-btn:active{background-color:var(--color-overlay-active)}.icon-btn svg{display:block;width:24px;height:24px}.icon-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.btn{padding:12px 20px;font-size:16px;font-weight:500;color:var(--color-text-primary);background-color:var(--color-bg-elevated);border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 4px var(--color-shadow-sm);transition:transform .1s ease,box-shadow .1s ease;min-width:48px;min-height:48px;flex-shrink:0}.btn:hover{box-shadow:0 4px 8px var(--color-shadow-md)}.btn:active{transform:scale(.98);box-shadow:0 1px 2px var(--color-shadow-sm)}.btn-secondary{color:var(--color-text-emphasis);background-color:var(--color-bg-secondary)}.btn-secondary:hover{background-color:var(--color-border-light)}.btn-secondary:active{transform:scale(.98);box-shadow:0 1px 2px var(--color-shadow-sm)}.game-controls{display:flex;gap:8px;width:100%;max-width:400px}.game-controls button{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;background-color:var(--color-bg-elevated);box-shadow:0 2px 4px var(--color-shadow-sm);transition:all .1s ease-in-out}.game-controls #restart-btn,.game-controls #undo-btn{flex:1}.game-controls button:hover{background-color:var(--color-bg-elevated);box-shadow:0 2px 4px var(--color-shadow-sm)}.game-controls button:active{background-color:var(--color-bg-elevated);box-shadow:0 1px 2px var(--color-shadow-sm);transform:scale(.95)}.game-controls button:focus{outline:none;background-color:var(--color-bg-elevated);box-shadow:0 2px 4px var(--color-shadow-sm)}.game-controls button:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.game-controls button:disabled:active{transform:none;box-shadow:none}.game-controls button svg{display:block}.grid-size-select{padding:12px 36px 12px 16px;font-size:16px;font-weight:500;color:var(--color-text-primary);background-color:var(--color-bg-elevated);border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 4px var(--color-shadow-sm);min-height:48px;flex-shrink:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2334495E' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.grid-size-select:hover{box-shadow:0 4px 8px var(--color-shadow-md)}.grid-size-select:focus{outline:2px solid var(--color-primary);outline-offset:2px}.toggle-label{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:16px;font-weight:500;color:var(--color-text-primary);background-color:var(--color-bg-elevated);border-radius:8px;cursor:pointer;box-shadow:0 2px 4px var(--color-shadow-sm);-webkit-user-select:none;user-select:none;flex-shrink:0}.toggle-label:hover{box-shadow:0 4px 8px var(--color-shadow-md)}.toggle-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.game-container{flex:1;display:flex;justify-content:center;align-items:center;padding:20px}.game-container canvas{background-color:var(--color-bg-elevated);border-radius:8px;box-shadow:0 4px 12px var(--color-shadow-sm);touch-action:none;-webkit-tap-highlight-color:transparent}.canvas-container{position:relative;display:flex;justify-content:center;align-items:center;--available-width: calc(100vw - var(--layout-horizontal-padding));--available-height: calc(100vh - var(--layout-top-bar-height));--cell-size-from-width: calc(var(--available-width) / 4);--cell-size-from-height: calc(var(--available-height) / 4);--cell-size-unclamped: min(var(--cell-size-from-width), var(--cell-size-from-height));--cell-size: clamp(var(--cell-size-min), var(--cell-size-unclamped), var(--cell-size-max));--total-size: calc(var(--cell-size) * 4);width:var(--total-size);height:var(--total-size)}.canvas-skeleton{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-bg-elevated);border-radius:8px;box-shadow:0 4px 12px var(--color-shadow-sm);animation:canvas-skeleton-pulse 1.5s ease-in-out infinite;z-index:1}@keyframes canvas-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}#play-view .game-container .canvas-container canvas{position:relative;z-index:2;opacity:0;transition:opacity .3s ease-in-out}#play-view .game-container .canvas-container.canvas-ready canvas{opacity:1}#play-view .game-container .canvas-container.canvas-ready .canvas-skeleton{display:none}.view{display:none;flex-direction:column;height:100vh;height:100dvh;opacity:0}.view.active{display:flex;animation:fadeIn .2s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.home-container{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;gap:0}.home-title-section{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;margin-top:48px}.home-actions{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;padding:16px;gap:8px}.game-title{font-family:Monoton,Impact,Arial Black,cursive,sans-serif;font-size:clamp(60px,20.5vw,72px);font-weight:400;color:var(--color-text-primary);margin:0;letter-spacing:0;line-height:1;font-kerning:none}.game-tagline{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0}.home-menu-toggle,.home-menu-scrim,.home-menu-sheet{--menu-ease: cubic-bezier(.83, 0, .17, 1);--menu-duration: .35s}.home-menu-toggle{position:fixed;top:16px;left:16px;width:44px;height:44px;display:grid;place-items:center;padding:0;background:none;border:none;color:var(--color-text-primary);cursor:pointer;z-index:920;-webkit-tap-highlight-color:transparent}.home-menu-icon-stack{display:grid;place-items:center;transition:transform var(--menu-duration) var(--menu-ease)}#home-view.menu-open .home-menu-icon-stack{transform:rotate(180deg)}.home-menu-icon{grid-area:1 / 1;display:flex;transition:opacity var(--menu-duration) var(--menu-ease)}.home-menu-icon-close,#home-view.menu-open .home-menu-icon-open{opacity:0}#home-view.menu-open .home-menu-icon-close{opacity:1}.home-menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--color-backdrop);z-index:900;opacity:0;visibility:hidden;transition:opacity var(--menu-duration) var(--menu-ease),visibility 0s linear var(--menu-duration)}#home-view.menu-open .home-menu-scrim{opacity:1;visibility:visible;transition:opacity var(--menu-duration) var(--menu-ease),visibility 0s}.home-menu-sheet{position:fixed;top:0;left:0;bottom:0;width:min(280px,80%);padding:72px 16px 16px;background-color:var(--color-bg-elevated);border-right:1px solid var(--color-border-light);overflow-y:auto;z-index:910;display:flex;flex-direction:column;transform:translate(-100%);visibility:hidden;transition:transform var(--menu-duration) var(--menu-ease),visibility 0s linear var(--menu-duration)}#home-view.menu-open .home-menu-sheet{transform:translate(0);visibility:visible;transition:transform var(--menu-duration) var(--menu-ease),visibility 0s}.home-menu-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;flex:1}.home-menu-item{display:block;width:100%;padding:16px;border:none;border-radius:16px;background:none;color:var(--color-text-primary);font-family:inherit;font-size:18px;font-weight:700;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .2s ease;-webkit-tap-highlight-color:transparent}.home-menu-item:hover{background-color:var(--color-bg-secondary)}.home-menu-item:active{background-color:var(--color-border-light)}.home-menu-language{margin-top:auto}.home-menu-language-row{display:flex;align-items:center;gap:10px;position:relative}.home-menu-language-icon{flex-shrink:0}.home-menu-language-name{font:inherit;color:inherit}.home-menu-language-chevron{margin-left:auto;color:var(--color-text-secondary)}.home-menu-language-row select{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.home-menu-toggle,.home-menu-scrim,.home-menu-sheet{--menu-duration: .01ms}}.home-slot{display:flex;flex-direction:column;justify-content:center;width:100%;max-width:400px;min-height:72px}.home-slot .btn-large{display:none}.home-slot .btn-large.visible{display:flex}.home-streak{display:none;align-items:center;justify-content:center;gap:6px;margin:0;padding:4px 24px 4px 8px;font-size:20px;font-weight:600;line-height:1;color:var(--color-text-primary)}.home-streak.visible{display:flex}.home-streak svg{color:var(--color-streak);flex-shrink:0}.home-streak .streak-flame{transform:translateY(-2px)}.streak-flame{display:block;flex-shrink:0}.home-buttons{display:flex;flex-direction:column;gap:8px;width:100%;max-width:400px}.btn-large{padding:0 2em;font-size:20px;font-weight:700;min-height:72px;border-radius:24px;box-shadow:none;display:flex;align-items:center;justify-content:center;position:relative;transition:opacity .2s ease,transform .2s ease}.btn-large:hover{opacity:.85;box-shadow:none;transform:translateY(-2px)}.btn-large:active{opacity:.7;box-shadow:none;transform:translateY(0)}.btn-complete-icon{display:none;position:absolute;left:24px}.btn-large.completed .btn-complete-icon{display:inline-flex}.btn-large.completed{color:var(--color-text-muted)}.btn-complete-icon svg{stroke:currentColor;fill:none}#play-view .game-container{flex-direction:column;gap:16px;padding:20px}#play-view .game-container p{font-size:16px;line-height:1.5em;color:var(--color-text-secondary);margin:0;max-width:500px;white-space:pre-line;text-align:center}#game-timer{font-variant-numeric:tabular-nums}#new-btn{display:none}#play-view.unlimited-mode #new-btn{display:flex}.bottom-sheet-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;pointer-events:none;display:none}.bottom-sheet-overlay.visible{pointer-events:auto}.bottom-sheet{position:fixed;bottom:-40px;left:0;right:0;background-color:var(--color-bg-elevated);border-radius:16px 16px 0 0;transform:translateY(100%);padding-bottom:40px;transition:transform .3s cubic-bezier(.6,0,.9,1),box-shadow .3s cubic-bezier(.6,0,.9,1);overflow:visible;box-shadow:0 0 80px #0000;z-index:1001}.bottom-sheet-overlay.visible .bottom-sheet{transform:translateY(0);box-shadow:0 0 80px #0000001a;transition:transform .3s cubic-bezier(.34,1.3,.64,1),box-shadow .3s cubic-bezier(.34,1.3,.64,1)}.bottom-sheet-icon-container{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;margin:-40px auto 16px}.bottom-sheet-icon-container svg{display:block}.bottom-sheet-close-icon{position:absolute;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:50%;background-color:transparent;color:var(--color-text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease;z-index:1}.bottom-sheet-close-icon:hover{background-color:var(--color-neutral-200);color:var(--color-text-secondary)}.bottom-sheet-close-icon:focus{outline:none;background-color:var(--color-neutral-200)}.bottom-sheet-close-icon:active{background-color:var(--color-neutral-300)}.bottom-sheet-close-icon svg{display:block}.bottom-sheet-header{display:flex;align-items:center;justify-content:center;padding:8px 20px}.bottom-sheet-header:first-child{padding-top:4px}.bottom-sheet-header h2{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;text-align:center}.bottom-sheet-message{padding:0 20px 16px;text-align:center;font-size:16px;color:var(--color-text-secondary);line-height:1.5;text-wrap:balance}.bottom-sheet-message p{margin:0 0 12px}.bottom-sheet-message p:last-child{margin-bottom:0}.win-streak-line{display:flex;justify-content:center;padding:0 20px 16px}.win-streak-line-window{height:24px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.win-streak-line-track{display:flex;flex-direction:column;transform:translateY(0);transition:transform .3s cubic-bezier(.83,0,.17,1)}.win-streak-line-track.showing-streak{transform:translateY(-50%)}.win-streak-line-item{display:flex;align-items:center;justify-content:center;gap:6px;height:24px;font-size:16px;line-height:24px;color:var(--color-text-secondary);white-space:nowrap}.win-streak-line-streak{color:var(--color-text-primary)}.win-streak-line-streak svg{color:var(--color-streak);flex-shrink:0}.tutorial-content{display:flex;flex-direction:column;min-height:0}.bottom-sheet-video-container{position:relative;width:min(calc(100% - 40px),calc(88vh - 300px),400px);aspect-ratio:1 / 1;margin:16px auto;border-radius:12px;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);overflow:hidden}.tutorial-video{display:block;width:100%;height:100%;object-fit:cover}.tutorial-replay-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:none;color:var(--color-text-secondary);opacity:.7;cursor:pointer;transition:opacity .15s ease}.tutorial-replay-btn:hover{opacity:1}.tutorial-progress-track{position:absolute;bottom:0;left:0;width:100%;height:3px;background-color:var(--color-neutral-200)}.tutorial-progress-bar{width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background-color:var(--color-primary)}.tutorial-scroll-container{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.tutorial-scroll-container::-webkit-scrollbar{display:none}.tutorial-section{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-direction:column}.tutorial-section-message{padding:8px 20px;text-align:center;font-size:16px;line-height:1.5;color:var(--color-text-primary);text-wrap:balance}.tutorial-section-message p{margin:0}.tutorial-paging-dots{position:relative;display:flex;justify-content:center;align-items:center;gap:8px;padding:0 20px}.tutorial-paging-dot{width:8px;height:8px;padding:18px 0;box-sizing:content-box;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:width .2s ease}.tutorial-paging-dot:after{content:"";display:block;width:100%;height:8px;border-radius:4px;background-color:var(--color-neutral-300);transition:background-color .2s ease}.tutorial-paging-dot.active{width:24px}.tutorial-paging-dot.active:after{background-color:var(--color-primary)}.tutorial-nav{display:flex;gap:12px;align-items:center;width:calc(100% - 40px);margin:16px 20px 20px}.tutorial-nav .bottom-sheet-btn{flex:1}.bottom-sheet-buttons{display:flex;flex-direction:column;gap:8px;margin:24px 20px 20px}.bottom-sheet-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;font-size:17px;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.bottom-sheet-btn svg{width:20px;height:20px;flex-shrink:0}.bottom-sheet-btn-primary{color:var(--color-text-on-primary);background-color:var(--color-primary)}.bottom-sheet-btn-primary:hover{background-color:var(--color-primary-hover)}.bottom-sheet-btn-primary:active{transform:scale(.98)}.bottom-sheet-btn-secondary{color:var(--color-text-emphasis);background-color:var(--color-bg-secondary)}.bottom-sheet-btn-secondary:hover{background-color:var(--color-border-light)}.bottom-sheet-btn-secondary:active{transform:scale(.98)}.bottom-sheet-btn-destructive{color:var(--color-error);background-color:var(--color-bg-secondary)}.bottom-sheet-btn-destructive:hover{background-color:var(--color-error-bg)}.bottom-sheet-btn-destructive:active{transform:scale(.98)}.bottom-sheet-dismiss-btn{display:flex;align-items:center;justify-content:center;width:calc(100% - 40px);margin:24px 20px 20px;padding:14px 24px;font-size:17px;font-weight:600;color:var(--color-text-emphasis);background-color:var(--color-bg-secondary);border:none;border-radius:12px;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.bottom-sheet-dismiss-btn:hover{background-color:var(--color-border-light)}.bottom-sheet-dismiss-btn:active{transform:scale(.98)}@media (min-width: 768px){.bottom-sheet-overlay{background-color:var(--color-backdrop);opacity:0;transition:opacity .3s cubic-bezier(.6,0,.9,1)}.bottom-sheet-overlay.visible{opacity:1;transition:opacity .3s cubic-bezier(.34,1.3,.64,1)}.bottom-sheet{top:50%;left:50%;right:auto;bottom:auto;width:400px;border-radius:16px;padding-bottom:0;transform:translate(-50%,calc(-50% + 1rem));opacity:0;transition:transform .3s cubic-bezier(.6,0,.9,1),box-shadow .3s cubic-bezier(.6,0,.9,1),opacity .3s cubic-bezier(.6,0,.9,1)}.bottom-sheet-overlay.visible .bottom-sheet{transform:translate(-50%,-50%);opacity:1;transition:transform .3s cubic-bezier(.34,1.3,.64,1),box-shadow .3s cubic-bezier(.34,1.3,.64,1),opacity .3s cubic-bezier(.34,1.3,.64,1)}}.settings-list{padding:0}.settings-item{border-bottom:1px solid var(--color-border)}.settings-item:last-child{border-bottom:none}.settings-toggle-label{display:flex;align-items:center;gap:12px;padding:20px 20px 16px;font-size:16px;font-weight:500;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;background-color:var(--color-bg-elevated);transition:background-color .1s ease}.settings-toggle-label:hover{background-color:var(--color-bg-surface)}.settings-toggle-label:active{background-color:var(--color-neutral-200)}.settings-toggle-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.settings-toggle-label span{flex:1}.settings-select-row{position:relative;display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;font-size:16px;font-weight:500;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;background-color:var(--color-bg-elevated);transition:background-color .1s ease}.settings-select-row:hover{background-color:var(--color-bg-surface)}.settings-select-row:active{background-color:var(--color-neutral-200)}.settings-label{flex:1}.settings-value-container{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary)}.settings-value{font-weight:500}.settings-select-row select{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.settings-control{display:flex;flex-direction:column;padding:20px 20px 16px;width:100%}.segmented-control{display:flex;background-color:var(--color-neutral-200);border-radius:9px;padding:2px;gap:0}.segment-btn{flex:1;padding:8px 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background-color:transparent;border:none;border-radius:7px;cursor:pointer;transition:background-color .2s ease,color .1s ease;min-height:32px;white-space:nowrap}.segment-btn:hover{background-color:var(--color-overlay-subtle)}.segment-btn.active{background-color:var(--color-bg-elevated);color:var(--color-text-primary);box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.segment-btn.active:hover{background-color:var(--color-bg-elevated)}#difficulty-settings-item{display:none}#difficulty-settings-item.visible{display:block}
