*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:20px;font-family:Arial,Microsoft YaHei,sans-serif;display:flex;overflow-x:hidden}body:has(dialog[open]){overflow:hidden}:root{--content-max-width:600px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fffef7;--surface:#fffffff2;--surface-solid:#fff;--surface-muted:#f7f4ef;--border:#e5e0d8;--border-muted:#ece8e0;--text:#2c2c2c;--text-secondary:#666;--text-muted:#999;--primary:#87ceeb;--primary-hover:#6bb6ff;--primary-dark:#2f4f4f;--rose:#c5536b;--rose-bg:#fff5f1;--rose-border:#ffb6c159;--score-high:#3aaa85;--score-current:#4a9eda;--stage-bg:#7fa8c0;--status-bg:#f0f7ff;--status-border:#87ceeb;--status-text:#2a6da8;--grid-bg:#eae5dd;--cell-bg:#fff;--cell-border:#ddd8cf;--cell-selected-bg:#ffeaa7;--cell-hint-bg:#a8e6cf;--cell-elim-bg:#f5f2ec}[data-theme=dark]{--bg:#16161e;--surface:#1c1c2cf7;--surface-solid:#1e1e2e;--surface-muted:#252538;--border:#38384e;--border-muted:#2e2e42;--text:#e4e4f0;--text-secondary:#9898b0;--text-muted:#5a5a78;--primary:#6ab6d8;--primary-hover:#87ceeb;--primary-dark:#a8d4e8;--rose:#e8809a;--rose-bg:#2a1820;--rose-border:#e8809a38;--score-high:#4ecaa8;--score-current:#70b8e8;--stage-bg:#36364e;--status-bg:#1a2232;--status-border:#4a86b0;--status-text:#80b4d8;--grid-bg:#1a1a2c;--cell-bg:#24243a;--cell-border:#36364e;--cell-selected-bg:#3e3418;--cell-hint-bg:#1a3028;--cell-elim-bg:#1e1e32;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface-muted);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--surface-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.site-header{width:100%;max-width:var(--content-max-width);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;border-radius:15px;margin-bottom:20px;position:sticky;top:20px;box-shadow:0 4px 20px #0000001a}.header-content{justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.site-title{color:var(--primary-dark);margin:0;font-size:1.2em;font-weight:700}.header-nav .lang-switch{align-items:center;gap:0;display:flex}.header-nav .lang-link{color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:.9em;text-decoration:none;transition:all .2s}.header-nav .lang-link:hover{color:var(--primary-dark);background:#dda0dd1a}.header-nav .sep{color:var(--border);font-size:.8em}.site-footer{width:100%;max-width:var(--content-max-width);background:var(--surface);border-radius:15px;margin-top:40px;overflow:hidden;box-shadow:0 4px 20px #0000001a}.footer-content{grid-template-columns:1fr 1fr 1fr;gap:20px;padding:30px 20px;display:grid}.footer-section h3{color:var(--text);margin-bottom:10px;font-size:1.1em}.footer-section h4{color:var(--text-secondary);margin-bottom:8px;font-size:.95em;font-weight:600}.footer-section p{color:var(--text-secondary);margin-bottom:5px;font-size:.85em;line-height:1.4}.footer-section ul{padding:0;list-style:none}.footer-section ul li{margin-bottom:4px}.footer-section a{color:var(--text-secondary);font-size:.85em;text-decoration:none;transition:color .2s}.footer-section a:hover{color:var(--primary-dark)}.copyright{margin-top:10px;color:var(--text-muted)!important;font-size:.8em!important}.footer-bottom{background:var(--primary);text-align:center;color:#fff;padding:12px 20px}.back-to-top{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:.9em;transition:opacity .2s}.back-to-top:hover{opacity:.8}.game-container{background:var(--surface);max-width:var(--content-max-width);-webkit-user-select:none;user-select:none;border-radius:20px;width:100%;padding:30px;position:relative;box-shadow:0 20px 40px #0000001a}.challenge-bar{background:var(--rose-bg);border:1px solid var(--rose-border);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;padding:18px 20px;display:flex}.challenge-info{flex:auto;min-width:200px}.challenge-title{color:var(--rose);margin-bottom:6px;font-size:20px;font-weight:700}.challenge-status{color:var(--text-secondary);font-size:14px}.challenge-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.challenge-btn{background:var(--surface-solid);color:var(--rose);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:flex;box-shadow:0 6px 14px #a64b6326}.challenge-btn:hover{background:var(--surface-solid);opacity:.92;transform:translateY(-2px);box-shadow:0 10px 20px #a64b6340}.challenge-btn:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.game-header{text-align:center;margin-bottom:20px}.score-display{background:var(--surface-muted);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:15px 20px;font-size:16px;font-weight:700;display:flex}.score-display span{white-space:nowrap}.high-score{color:var(--score-high)}.current-score{color:var(--score-current)}.stage-display{background:var(--stage-bg);color:#fff;border-radius:20px;justify-content:space-between;align-items:center;padding:8px 20px;font-size:14px;font-weight:700;display:flex;position:relative}.sound-toggle{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:24px;height:24px;margin-left:12px;padding:4px 6px;font-size:16px;transition:all .2s;display:flex}.sound-toggle:hover{background-color:#ffffff1a;transform:scale(1.1)}.sound-toggle:active{transform:scale(.95)}.theme-toggle{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:24px;height:24px;margin-left:4px;padding:4px 6px;font-size:16px;transition:all .2s;display:flex}.theme-toggle:hover{background-color:#ffffff1a;transform:scale(1.1)}.theme-toggle:active{transform:scale(.95)}.sound-icon{transition:all .3s;display:inline-block}.sound-toggle.muted .sound-icon{opacity:.4;position:relative}.sound-toggle.muted .sound-icon:after{content:"";background-color:currentColor;width:120%;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.game-grid{background:var(--grid-bg);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:10px;grid-template-rows:repeat(20,auto);grid-template-columns:repeat(9,1fr);gap:3px;max-height:600px;margin-bottom:20px;padding:10px;display:grid;overflow-y:auto}.grid-cell{aspect-ratio:1;background:var(--cell-bg);color:var(--text);cursor:default;-webkit-user-select:none;user-select:none;touch-action:manipulation;will-change:transform;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:100%;font-size:20px;font-weight:400;transition:all .2s;display:flex}.grid-cell.active{color:var(--text);background:var(--cell-bg);border-color:var(--cell-border);cursor:pointer}.grid-cell.eliminated{color:var(--text-muted);background:var(--cell-elim-bg);border-color:var(--border-muted);cursor:default}.grid-cell.eliminated:hover{box-shadow:none;transform:none}.grid-cell.selected{background:var(--cell-selected-bg);border-color:#fdcb6e;transform:scale(1.1);box-shadow:0 4px 12px #fdcb6e66}.grid-cell.hint{background:var(--cell-hint-bg);border-color:#4ecdc4;animation:1s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.grid-cell.shake{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.game-controls{justify-content:center;gap:20px;margin-bottom:20px;display:flex}.control-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:25px;justify-content:center;align-items:center;gap:4px;padding:12px 24px;font-size:16px;font-weight:700;transition:all .2s;display:flex}.control-btn:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #87ceeb4d}.control-btn:active{transform:translateY(0)}.control-btn:disabled{background:var(--stage-bg);cursor:not-allowed;box-shadow:none;transform:none}.copy-btn{background:var(--primary);color:#fff;font-size:18px}.copy-btn:hover{background:var(--primary-hover);box-shadow:0 4px 12px #87ceeb4d}.btn-text{margin:0 4px;font-size:14px}.copy-count,.hint-count{background:#ffffff40;border-radius:10px;padding:2px 8px;font-size:14px;font-weight:600}.hint-btn{color:#fff;background:#fd7e14;font-size:18px}.hint-btn:hover{background:#e8610e;box-shadow:0 4px 12px #fd7e144d}.tutorial-btn{background:var(--primary);color:#fff;font-size:16px;display:inline-flex}.tutorial-btn:hover{background:var(--primary-hover);box-shadow:0 4px 12px #87ceeb4d}.tutorial-text{margin-left:4px;font-size:14px}.game-status{text-align:center;background:var(--status-bg);border-left:4px solid var(--status-border);border-radius:10px;padding:15px}.game-status p{color:var(--status-text);margin:0;font-size:14px;font-weight:500}.section-card h1,.section-card h2,.section-card h3{color:var(--text);margin-bottom:10px}.section-card h3{margin-top:20px;font-size:15px}.section-card p{margin:8px 0}.section-card ul,.section-card ol{margin:8px 0;padding-left:20px}.section-card li{margin:5px 0;line-height:1.6}.section-card a{color:var(--score-current);text-decoration:none}.section-card a:hover{text-decoration:underline}.section-card details{border:1px solid #0000001a;border-radius:8px;margin:12px 0;overflow:hidden}.section-card summary{background:var(--primary);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 16px;font-size:15px;font-weight:600;transition:all .3s;display:flex}.section-card summary:hover{background:var(--primary-hover);transform:translateY(-1px)}.section-card summary::-webkit-details-marker{display:none}.section-card summary:after{content:"▼";font-size:12px;transition:transform .3s}.section-card details[open] summary:after{transform:rotate(180deg)}.section-card details .content{background:var(--surface-solid);border-top:1px solid #0000000d;padding:16px}.section-card details .content h3{color:var(--text);margin-top:20px;margin-bottom:12px;font-size:16px;font-weight:600}.section-card details .content h3:first-child{margin-top:0}.section-card details .content p{color:var(--text-secondary);margin:8px 0;line-height:1.6}.section-card details .content strong{color:var(--text)}.section-card details .content ul{margin:8px 0 16px;padding-left:20px}.section-card details .content li{margin:4px 0;line-height:1.5}.privacy-container{width:100%;max-width:800px;color:var(--text);margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.privacy-header{text-align:center;border-bottom:2px solid var(--status-border);margin-bottom:40px;padding-bottom:20px}.privacy-header h1{color:var(--text);margin-bottom:10px;font-size:2.5em}.last-updated{color:var(--text-muted);margin-bottom:20px;font-style:italic}.privacy-nav .back-link{background:var(--primary);color:var(--on-primary);border-radius:8px;padding:10px 20px;text-decoration:none;transition:transform .2s;display:inline-block}.privacy-nav .back-link:hover{text-decoration:none;transform:translateY(-2px)}.privacy-content{margin-bottom:40px}.privacy-section{background:var(--surface);border-radius:12px;margin-bottom:40px;padding:25px;box-shadow:0 4px 12px #0000000d}.privacy-section h2{color:var(--text);border-bottom:1px solid var(--border);margin-bottom:15px;padding-bottom:8px;font-size:1.8em}.privacy-section h3{color:var(--text);margin:20px 0 10px;font-size:1.3em}.privacy-section p{text-align:left;margin-bottom:15px}.privacy-section ul{margin:15px 0;padding-left:25px}.privacy-section li{margin-bottom:8px}.privacy-section a{color:var(--score-current);text-underline-offset:3px;text-decoration-thickness:1px}.privacy-section code{background:var(--surface-muted);color:var(--text);border-radius:4px;padding:2px 5px}.highlight-box,.summary-box{background:var(--status-bg);border-left:4px solid var(--status-border);border-radius:8px;margin:20px 0;padding:20px}.highlight-box h3,.summary-box h3{color:var(--text);margin-top:0}.contact-info{background:var(--surface-muted);border-radius:8px;margin:15px 0;padding:20px}.contact-info a{color:var(--primary-dark);text-decoration:none}.contact-info a:hover{text-decoration:underline}.privacy-footer{text-align:center;border-top:1px solid var(--border);color:var(--text-muted);padding-top:20px}.footer-nav a{color:var(--primary-dark);font-weight:600;text-decoration:none}.footer-nav a:hover{text-decoration:underline}.footer-text{margin-top:10px;font-size:.9em}@media (width<=768px){.privacy-container{padding:15px}.privacy-header h1{font-size:2em}.privacy-section{padding:20px}.privacy-section h2{font-size:1.5em}}.page-sections{width:100%;max-width:var(--content-max-width);grid-template-columns:1fr;gap:16px;margin-top:16px;display:grid}.section-card{background:var(--surface);border-radius:16px;padding:16px 20px;box-shadow:0 10px 24px #0000000f}@keyframes eliminate{0%{opacity:1;background:var(--cell-bg);transform:scale(1)}30%{opacity:.9;background:var(--cell-selected-bg);transform:scale(1.3)}70%{opacity:.6;background:#fab1a0;transform:scale(1.1)}to{opacity:1;background:var(--cell-elim-bg);color:var(--text-muted);transform:scale(1)}}.eliminating{animation:eliminate .5s var(--ease-out) forwards}@keyframes row-delete{0%{opacity:1;background:var(--cell-bg);transform:scaleY(1)}50%{opacity:.8;background:var(--cell-hint-bg);transform:scaleY(.8)}to{opacity:0;background:var(--cell-hint-bg);transform:scaleY(0)}}.row-deleting{animation:row-delete .3s var(--ease-out) forwards}@keyframes score-popup{0%{opacity:0;transform:translateY(0)scale(.8)}50%{opacity:1;transform:translateY(-20px)scale(1.2)}to{opacity:0;transform:translateY(-40px)scale(1)}}.score-popup{color:var(--score-high);pointer-events:none;z-index:1000;font-size:14px;font-weight:700;animation:1.5s ease-out forwards score-popup;position:absolute}@media (width>=481px){.result-overlay{border-radius:20px;width:100%;height:100%;position:absolute;top:0;left:0}.start-overlay{background:#000c;border-radius:20px;width:100%;height:100%;position:absolute;top:0;left:0}}@media (width<=768px){body{padding:10px}.game-container{width:calc(100% - 10px);margin:5px;padding:15px}.score-display{gap:8px;padding:10px 12px;font-size:14px}.game-grid{gap:2px;max-height:500px;padding:8px}.grid-cell{font-size:18px}.control-btn{padding:10px 16px;font-size:14px}.page-sections{margin-top:14px;padding:12px 15px}}@media (width<=480px){.header-content{flex-direction:column;gap:8px;padding:12px 16px}.site-title{font-size:1.1em}.header-nav .lang-link{font-size:.85em}.footer-content{grid-template-columns:1fr;gap:25px;padding:20px 16px}.footer-section{text-align:center}body{padding:5px}.game-container{width:100%;margin:0;padding:10px}.game-grid{gap:1px;max-height:450px;margin-bottom:15px;padding:5px}.grid-cell{border-radius:4px;min-width:30px;min-height:30px;max-height:40px;font-size:16px}.game-controls{gap:10px}.tutorial-btn{font-size:13px}.tutorial-text{font-size:11px}.control-btn{flex:1;min-width:0;max-width:100px;min-height:40px;padding:10px 12px;font-size:13px}.page-sections{margin-top:10px;padding:10px 12px}}:root{--on-primary:#15313c;--stage-text:#142d38;--focus-ring:#9f3854;--text-muted:#706c65;--score-high:#1d6b54;--score-current:#1f628d;--toast-success:#1f6f55;--toast-error:#a5363b;--toast-warning:#76520b;--toast-info:#24658b;--ease-out:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--on-primary:#102932;--stage-text:#f0f0f8;--focus-ring:#ff9db5;--text-muted:#9d9db5}html{scroll-behavior:smooth}body{padding-right:max(20px, env(safe-area-inset-right));padding-bottom:max(20px, env(safe-area-inset-bottom));padding-left:max(20px, env(safe-area-inset-left));font-kerning:normal;font-family:Avenir Next,Segoe UI,Noto Sans,Microsoft YaHei,sans-serif;font-size:1rem;line-height:1.5}main{flex-direction:column;align-items:center;width:100%;display:flex}.skip-link{z-index:12000;background:var(--surface-solid);color:var(--text);transition:transform .15s var(--ease-out);border-radius:8px;padding:10px 14px;position:fixed;top:8px;left:12px;transform:translateY(-160%);box-shadow:0 4px 18px #181f262e}.skip-link:focus{transform:translateY(0)}:where(button,a,summary):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.footer-bottom,.control-btn,.copy-btn,.section-card summary,.language-option.current,.result-btn.primary,.start-btn.primary{color:var(--on-primary)}.stage-display{color:var(--stage-text);min-height:44px}.sound-toggle,.theme-toggle{min-width:44px;height:44px;color:var(--stage-text);transition:transform .15s var(--ease-out), background-color .15s var(--ease-out)}.back-to-top{min-height:44px;color:var(--on-primary);padding:8px 16px}.game-grid{contain:layout paint;grid-template-rows:none}.grid-cell{appearance:none;font:inherit;transition:transform .15s var(--ease-out), border-color .15s var(--ease-out), background-color .15s var(--ease-out), opacity .15s var(--ease-out);will-change:auto;margin:0;padding:0;font-size:1.25rem;line-height:1}.grid-cell[hidden]{display:none}.grid-cell:disabled{opacity:1}@media (hover:hover) and (pointer:fine){.grid-cell.active:not(:disabled):hover{transform:scale(1.05);box-shadow:0 4px 8px #0000001a}}.control-btn,.challenge-btn,.result-btn,.start-btn,.calendar-close,.calendar-nav-btn{min-height:44px}.tutorial-btn{margin-bottom:16px}.result-overlay,.start-overlay,.calendar-overlay{width:100%;max-width:none;height:100%;max-height:none;color:var(--text);border:0;border-radius:0;margin:0;padding:20px;position:fixed;inset:0}.result-title,.start-title{line-height:1.15}.toast{-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .25s var(--ease-out), opacity .2s var(--ease-out)}.toast-content,.toast-close{color:#fffdf8}@media (width<=768px){body{padding-top:max(12px, env(safe-area-inset-top));padding-right:max(12px, env(safe-area-inset-right));padding-bottom:max(16px, env(safe-area-inset-bottom));padding-left:max(12px, env(safe-area-inset-left))}.site-header{top:max(8px, env(safe-area-inset-top))}.challenge-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.challenge-btn{justify-content:center}.challenge-btn:last-child{grid-column:1/-1}}@media (width<=480px){.challenge-btn{flex:initial;min-width:0;padding-inline:10px;font-size:.8125rem}.result-modal,.start-modal{width:min(100%,420px);max-width:100%;padding:24px 18px}.result-title,.start-title{font-size:1.5rem}.result-subtitle,.result-stat,.result-btn,.result-btn.secondary,.start-btn,.start-btn.secondary{font-size:.875rem}.result-btn,.result-btn.secondary,.start-btn,.start-btn.secondary{min-height:44px;padding:10px 14px}.game-grid{gap:2px;padding:7px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=360px){body{padding:2px}.result-overlay{border-radius:0;width:100vw;height:100vh;position:fixed;top:0;left:0}.start-overlay{background:#000c;border-radius:0;width:100vw;height:100vh;position:fixed;top:0;left:0}.game-container{width:100%;margin:0;padding:8px}.game-grid{gap:1px;max-height:400px;padding:3px}.grid-cell{border-radius:3px;min-width:26px;min-height:26px;max-height:32px;font-size:14px}.score-display{gap:5px;padding:8px 10px;font-size:12px}.sound-toggle{min-width:20px;height:20px;margin-left:8px;padding:2px 4px;font-size:14px}.control-btn{max-width:120px;padding:8px 10px;font-size:12px}@media (width<=320px){.btn-text{display:none}.control-btn{max-width:80px}}.result-modal{width:90%;max-width:90%;padding:15px 12px}.result-title{margin-bottom:4px;font-size:18px}.result-subtitle{margin-bottom:12px;font-size:12px}.result-stats{margin-bottom:12px}.result-stat{margin:4px 0;font-size:12px}.result-stat.highlight{font-size:14px}.result-stat.new-record{font-size:15px}.result-btn{border-radius:6px;padding:8px 12px;font-size:12px}.result-btn.secondary{padding:4px 6px;font-size:11px}.result-actions{gap:8px}.start-modal{width:90%;max-width:90%;padding:15px 12px}.start-logo{margin-bottom:3px;font-size:36px}.start-title{margin-bottom:1px;font-size:22px}.start-subtitle{margin-bottom:6px;font-size:14px}.start-welcome{margin-bottom:4px;font-size:16px}.start-description{margin-bottom:6px;font-size:13px}.start-features{margin-bottom:8px;padding:10px;font-size:12px}.start-btn{border-radius:6px;padding:10px 16px;font-size:14px}.start-btn.secondary{padding:4px 6px;font-size:11px}.start-actions{gap:8px}}.result-overlay{z-index:2000;opacity:0;background:#000c;border-radius:20px;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s ease-out forwards fadeIn;display:flex;position:absolute;top:0;left:0}@keyframes fadeIn{to{opacity:1}}.result-modal{background:var(--surface-solid);text-align:center;border-radius:20px;width:90%;max-width:400px;margin:0 auto;padding:40px 30px;animation:.4s ease-out .1s forwards modalSlideIn;position:relative;transform:scale(.8)translateY(50px);box-shadow:0 20px 40px #0000004d}@keyframes modalSlideIn{to{transform:scale(1)translateY(0)}}.result-title{color:var(--text);margin-bottom:10px;font-size:28px;font-weight:700}.result-subtitle{color:var(--text-secondary);margin-bottom:30px;font-size:16px}.result-stats{margin-bottom:30px}.result-stat{color:var(--text);margin:12px 0;font-size:16px}.result-stat.highlight{color:var(--score-current);font-size:18px;font-weight:700}.result-stat.new-record{color:var(--score-high);font-size:20px;font-weight:700;animation:1s ease-in-out infinite recordPulse}@keyframes recordPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.result-actions{flex-direction:column;gap:15px;display:flex}.result-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:15px 25px;font-size:16px;font-weight:700;transition:all .2s;display:flex}.result-btn.primary{background:var(--primary);color:#fff}.result-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #87ceeb66}.result-btn.secondary{color:var(--primary-dark);background:0 0;border:none;align-self:center;width:auto;padding:8px 12px;font-size:14px;font-weight:400;text-decoration:underline;display:inline-block}.result-btn.secondary:hover{color:var(--rose);box-shadow:none;background:#dda0dd1a;text-decoration:none;transform:none}.calendar-overlay{z-index:3500;opacity:0;pointer-events:none;background:#0000008c;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.calendar-overlay[hidden]{display:none}.calendar-overlay.calendar-open{opacity:1;pointer-events:auto}.calendar-container{background:var(--surface-solid);border-radius:20px;width:min(420px,90vw);padding:28px 24px;transition:transform .25s;transform:translateY(18px);box-shadow:0 25px 50px #00000040}.calendar-overlay.calendar-open .calendar-container{transform:translateY(0)}.calendar-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.calendar-nav{align-items:center;gap:10px;display:flex}.calendar-close,.calendar-nav-btn{background:var(--rose-bg);color:var(--rose);cursor:pointer;border:none;border-radius:999px;padding:6px 12px;font-weight:600;transition:background .2s,transform .2s}.calendar-close:hover,.calendar-nav-btn:hover{background:var(--rose-bg);opacity:.85;transform:translateY(-1px)}.calendar-nav-btn:disabled,.calendar-nav-btn[disabled]{cursor:not-allowed;opacity:.4;pointer-events:none;transform:none}.calendar-month{color:var(--rose);font-size:18px;font-weight:700}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekdays{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:13px}.calendar-weekday{text-align:center;font-weight:600}.calendar-grid{margin-bottom:18px}.calendar-day{background:var(--rose-bg);color:var(--rose);border:1px solid var(--rose-border);cursor:pointer;text-align:center;border-radius:10px;padding:12px 0;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s}.calendar-day:disabled,.calendar-day[disabled],.calendar-day--disabled{cursor:not-allowed;pointer-events:none;opacity:.45}.calendar-day:hover{opacity:.85;transform:translateY(-2px);box-shadow:0 10px 18px #bf748a26}.calendar-day--outside{opacity:.4}.calendar-day--locked,.calendar-day--future{cursor:not-allowed;opacity:.3;box-shadow:none;transform:none}.calendar-day--completed{background:var(--cell-hint-bg);color:var(--score-high);border-color:#54956773}.calendar-day--today{box-shadow:0 0 0 2px #ff9b6659}.calendar-day--active{box-shadow:0 0 0 3px #7b4a7073}.calendar-legend{color:var(--text-secondary);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.legend-item:before{content:"●";margin-right:6px;font-size:12px}.legend-item.legend-available:before{color:var(--rose)}.legend-item.legend-completed:before{color:var(--score-high)}.legend-item.legend-locked:before{color:var(--text-muted)}.confetti{z-index:4000;background:gold;width:10px;height:10px;animation:2.8s cubic-bezier(.25,.46,.45,.94) forwards confettiFall;position:absolute;top:-20px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)}20%{opacity:1;transform:translateY(100px) translateX(var(--drift,0px)) rotate(144deg)}50%{opacity:1;transform:translateY(300px) translateX(var(--drift,0px)) rotate(360deg)}80%{opacity:1;transform:translateY(600px) translateX(var(--drift,0px)) rotate(576deg)}95%{opacity:1}to{opacity:0;transform:translateY(800px) translateX(var(--drift,0px)) rotate(720deg)}}.confetti:nth-child(2n){--drift:-30px;background:#ff6b6b;animation-duration:2.6s;animation-delay:.1s}.confetti:nth-child(3n){--drift:25px;background:#4ecdc4;animation-duration:3s;animation-delay:.2s}.confetti:nth-child(4n){--drift:-15px;background:#45b7d1;animation-duration:2.9s;animation-delay:.3s}.confetti:nth-child(5n){--drift:40px}.confetti:nth-child(6n){--drift:-25px}@media (width<=480px){.result-overlay{border-radius:0;width:100vw;height:100vh;position:fixed;top:0;left:0}.start-overlay{background:#000c;border-radius:0;width:100vw;height:100vh;position:fixed;top:0;left:0}.result-modal{width:85%;max-width:85%;padding:18px 15px}.result-title{margin-bottom:6px;font-size:20px}.result-subtitle{margin-bottom:15px;font-size:13px}.result-stats{margin-bottom:15px}.result-stat{margin:6px 0;font-size:13px}.result-stat.highlight{font-size:15px}.result-stat.new-record{font-size:16px}.result-btn{border-radius:8px;margin:0;padding:10px 15px;font-size:13px}.result-btn.secondary{padding:6px 8px;font-size:12px}.result-actions{gap:10px}.start-modal{width:85%;max-width:85%;padding:20px 15px}.start-logo{margin-bottom:6px;font-size:40px}.start-title{margin-bottom:2px;font-size:24px}.start-subtitle{margin-bottom:8px;font-size:15px}.start-welcome{margin-bottom:6px;font-size:18px}.start-description{margin-bottom:8px;font-size:14px}.start-features{margin-bottom:12px;padding:12px;font-size:13px}.start-btn{border-radius:8px;padding:12px 20px;font-size:15px}.start-btn.secondary{padding:6px 8px;font-size:12px}.start-actions{gap:10px}}.start-overlay{z-index:3000;opacity:0;background:#000c;border-radius:20px;justify-content:center;align-items:center;width:100%;height:100%;animation:.5s ease-out forwards fadeIn;display:flex;position:absolute;top:0;left:0}.start-modal{background:var(--surface-solid);text-align:center;border-radius:24px;width:90%;max-width:480px;margin:0 auto;padding:50px 40px;animation:.6s ease-out .2s forwards startModalSlideIn;position:relative;transform:scale(.9)translateY(30px);box-shadow:0 25px 50px #0003}@keyframes startModalSlideIn{to{transform:scale(1)translateY(0)}}.start-title{color:var(--primary-dark);margin-bottom:8px;font-size:36px;font-weight:700}.start-subtitle{color:var(--text-secondary);margin-bottom:25px;font-size:18px}.start-welcome{color:var(--text);margin-bottom:20px;font-size:22px;font-weight:600}.start-description{color:var(--text-secondary);margin-bottom:25px;font-size:16px;line-height:1.6}.start-description.secondary{color:var(--rose);margin-bottom:20px}.start-features{color:var(--text-secondary);text-align:left;background:var(--surface-muted);white-space:pre-line;border-radius:12px;margin-bottom:35px;padding:20px;font-size:15px;line-height:1.8}.start-actions{flex-direction:column;gap:15px;display:flex}.start-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:16px 30px;font-size:18px;font-weight:700;transition:all .3s;display:flex;position:relative;overflow:hidden}.start-btn.primary{background:var(--primary);color:#fff;box-shadow:0 8px 20px #87ceeb4d}.start-btn.primary:hover{transform:translateY(-3px);box-shadow:0 12px 30px #87ceeb80}.start-btn.secondary{color:var(--primary-dark);box-shadow:none;background:0 0;border:none;align-self:center;width:auto;padding:8px 12px;font-size:14px;font-weight:400;text-decoration:underline;display:inline-block}.start-btn.secondary:hover{color:peru;box-shadow:none;background:#dda0dd1a;text-decoration:none;transform:none}.start-btn.secondary:before{display:none}.start-btn.tertiary{background:var(--rose-bg);color:var(--rose);border:1px solid var(--rose-border);font-weight:600}.start-btn.tertiary:hover{opacity:.92;transform:translateY(-2px);box-shadow:0 12px 24px #bb556d40}.start-btn.ghost{border:1px dashed var(--rose-border);color:var(--rose);background:0 0;font-weight:600}.start-btn.ghost:hover{background:var(--rose-bg);transform:none}.start-logo{margin-bottom:15px;font-size:48px;animation:3s ease-in-out infinite logoFloat}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.toast{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;border-radius:8px;min-width:280px;max-width:350px;transition:all .3s cubic-bezier(.4,0,.2,1);position:fixed;top:20px;right:20px;transform:translate(400px);box-shadow:0 8px 32px #0000001f}.toast-show{opacity:1;transform:translate(0)}.toast-content{color:#fff;align-items:center;gap:12px;padding:16px 20px;font-size:14px;font-weight:500;display:flex}.toast-icon{flex-shrink:0;font-size:18px}.toast-message{flex:1;line-height:1.4}.toast-close{color:#fffc;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:18px;transition:color .2s,background-color .2s;display:flex}.toast-close:hover{color:#fff;background-color:#ffffff1a}@media (width<=480px){.toast{min-width:auto;max-width:none;top:10px;left:10px;right:10px;transform:translateY(-100px)}.toast-show{transform:translateY(0)}.toast-content{padding:14px 16px;font-size:13px}}.language-selector{margin-top:16px}.language-options{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.language-option{background:var(--surface-muted);border:2px solid var(--border-muted);color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:120px;padding:16px 24px;font-size:16px;font-weight:500;text-decoration:none;transition:all .3s;display:flex;position:relative;overflow:hidden}.language-option:hover{border-color:var(--primary);background:var(--surface-solid);transform:translateY(-2px);box-shadow:0 8px 20px #87ceeb33}.language-option.current{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px #87ceeb4d}.language-option.current:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.language-native{margin-bottom:4px;font-size:18px;font-weight:600}@media (width<=768px){.challenge-bar{flex-direction:column;align-items:flex-start;gap:16px}.challenge-actions{justify-content:flex-start;gap:8px;width:100%}.challenge-info{width:100%;min-width:auto}.challenge-btn{padding:9px 14px;font-size:13px}.language-options{gap:10px}.language-option{min-width:100px;padding:14px 20px;font-size:15px}.language-native{font-size:16px}}@media (width<=480px){.challenge-bar{padding:16px}.challenge-title{font-size:18px}.challenge-btn{flex:100%;justify-content:center}.calendar-container{width:92vw;padding:22px 18px}.calendar-weekdays{font-size:12px}.calendar-day{padding:10px 0;font-size:13px}.language-options{gap:8px}.language-option{min-width:85px;padding:12px 16px;font-size:14px}.language-native{margin-bottom:2px;font-size:15px}}.result-overlay,.start-overlay,.calendar-overlay{border:0;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:20px;position:fixed;inset:0}.result-overlay::backdrop,.start-overlay::backdrop,.calendar-overlay::backdrop{background:0 0}.sound-toggle,.theme-toggle,.control-btn,.challenge-btn,.result-btn,.start-btn,.calendar-close,.calendar-nav-btn{min-height:44px}.sound-toggle,.theme-toggle{min-width:44px;height:44px;color:var(--stage-text)}.grid-cell{transition:transform .15s var(--ease-out), border-color .15s var(--ease-out), background-color .15s var(--ease-out), opacity .15s var(--ease-out);will-change:auto}.toast-success{background:var(--toast-success)}.toast-error{background:var(--toast-error)}.toast-warning{background:var(--toast-warning)}.toast-info{background:var(--toast-info)}@media (width<=768px){.challenge-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.challenge-btn{flex:initial;justify-content:center;min-width:0}.challenge-btn:last-child{grid-column:1/-1}}@media (width<=480px){.result-modal,.start-modal{width:min(100%,420px);max-width:100%;padding:24px 18px}.result-title,.start-title{font-size:1.5rem}.result-subtitle,.result-stat,.result-btn,.result-btn.secondary,.start-btn,.start-btn.secondary{font-size:.875rem}.result-btn,.result-btn.secondary,.start-btn,.start-btn.secondary{min-height:44px;padding:10px 14px}}
