:root{--app-resolution: 1;--bg: #1a1b26;--surface: #24283b;--panel: #1f2335;--text: #d7defa;--text-muted: #8994bd;--accent: #7aa2f7;--accent-coin: #e0af68;--accent-banana: #ff9e64;--accent-page: #9d7cd8;--accent-book: #7dcfff;--success: #9ece6a;--error: #f7768e;--border: rgba(255,255,255,.08);--radius: 8px;--shadow: 0 4px 12px rgba(0,0,0,.3);--transition: .15s ease;--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "Cascadia Mono", "Consolas", "SFMono-Regular", monospace;--serif: Georgia, "Book Antiqua", Palatino, "Palatino Linotype", serif}body.theme-sunset{--bg: #2e203b;--surface: #4b365a;--panel: #3b2a4a;--text: #f0e6f9;--text-muted: #9480aa;--accent: #ff8e4d;--accent-coin: #f9c275;--accent-banana: #ffa56a;--accent-page: #e39ffc;--accent-book: #82e2ff;--success: #b4e082;--error: #ff8b8b}body.theme-ocean{--bg: #0f1c2d;--surface: #1a2f4a;--panel: #14253a;--text: #e0f0ff;--text-muted: #5c7a9a;--accent: #38bdf8;--accent-coin: #f5d38c;--accent-banana: #f5b072;--accent-page: #c6a7ff;--accent-book: #67e8f9;--success: #a7f3d0;--error: #fda4af}body.theme-light{--bg: #fafaf5;--surface: #ffffff;--panel: #f0f0ea;--text: #111827;--text-muted: #374151;--accent: #3b6de8;--accent-coin: #b07800;--accent-banana: #c05c00;--accent-page: #7c3aed;--accent-book: #0e7490;--success: #15803d;--error: #b91c1c;--border: rgba(0,0,0,.15)}body.theme-light .collapsible-section,body.theme-light .typing-area,body.theme-light .goal-ribbon,body.theme-light .mk-card,body.theme-light .store-card,body.theme-light .modal-box,body.theme-light .notif-dropdown{border-color:#0000002e}body.theme-light .sidebar{border-right:1px solid rgba(0,0,0,.15)}body.theme-light .goal-bar-track{background:#0000001a}body.high-contrast{--text: #ffffff;--text-muted: #cccccc;--border: rgba(255,255,255,.4);--panel: #0d0f1a;--surface: #151823;--bg: #08090f}body.high-contrast .word-input,body.high-contrast .collapsible-section,body.high-contrast .typing-area{border-width:2px}body.high-contrast .goal-bar-track{background:#ffffff26}body.high-contrast .key{border:1px solid rgba(255,255,255,.3)}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:0ms!important}body.reduce-motion .goal-bar--ready,body.reduce-motion .goal-bar--ready .goal-bar-fill{animation:none!important}body.reduce-motion .goal-bar--ready .goal-bar-fill{box-shadow:none!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;overscroll-behavior:none}button{font-family:inherit;cursor:pointer;border:none}input{font-family:inherit}a{color:var(--accent)}h1 a,h2 a,h3 a,h4 a{color:inherit}h1,h2,h3,h4{font-weight:700}.view-header h2,.viewer-title-row h2,.babel-kind-badge,.babel-theme-badge{font-family:var(--serif)}.muted{color:var(--text-muted);font-size:.875rem}.app-container{display:flex;min-height:calc(100vh / var(--app-resolution));width:min(100%,calc(100% / var(--app-resolution)));max-width:1400px;margin:0 auto;transform:scale(var(--app-resolution));transform-origin:top center}.main-content{flex:1;overflow-y:auto;min-width:0}.view-container{padding:1.5rem;max-width:960px;margin:0 auto;position:relative}.sidebar{width:180px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:1rem 0;display:flex;flex-direction:column}.sidebar-logo{font-size:1.8rem;text-align:center;padding:.5rem 0;display:flex;flex-direction:column;align-items:center;gap:.25rem}.sidebar-level{margin:0 .75rem 1rem;padding:.5rem .6rem;background:var(--bg, rgba(0,0,0,.2));border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.sidebar-level-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-level-label{font-size:.78rem;font-weight:700;color:var(--text)}.sidebar-xp-values{font-size:.7rem;color:var(--text-muted)}.sidebar-xp-details{display:flex;align-items:center;gap:.5rem}.sidebar-xp-bar{flex:1;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.sidebar-xp-fill{height:100%;background:linear-gradient(90deg,#f5c518,#ff8a00);transition:width .3s ease}.sidebar-xp-text{font-size:.85rem;font-weight:700;color:var(--accent-coin);min-width:2rem;text-align:right}.nav-list{list-style:none}.nav-item{display:block;width:100%;padding:.65rem 1.25rem;text-align:left;background:none;color:var(--text-muted);font-size:.9rem;font-weight:600;border-left:3px solid transparent;transition:background var(--transition),color var(--transition),border-color var(--transition)}.nav-item:hover{background:#ffffff0a;color:var(--text)}.nav-item--active{background:#7aa2f71a;color:var(--accent);border-left-color:var(--accent)}.nav-item--dev{color:var(--accent-banana)}@keyframes navTutorialFlash{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 22%,transparent)}}.nav-item--tutorial-highlight{color:var(--accent);border-left-color:var(--accent);animation:navTutorialFlash 1s ease-in-out infinite}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:var(--radius);font-weight:700;font-size:.9rem;transition:opacity var(--transition),transform var(--transition)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#1a1b26}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{color:var(--text)}.btn-danger{background:var(--error);color:#fff}.btn-warning{background:var(--accent-banana);color:#1a1b26}.btn-disabled{background:var(--surface);color:var(--text-muted);cursor:not-allowed;opacity:.5}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.btn-active-goal{color:var(--accent-coin)!important}body.show-click-shortcuts [data-shortcut-label]:after{content:" [" attr(data-shortcut-label) "]";font-size:.85em;color:var(--accent-coin);opacity:.95}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.view-header h2{font-size:1.4rem}.play-view{display:flex;flex-direction:column;gap:1.25rem}.stats-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 1rem;background:var(--panel);border-radius:var(--radius);border:1px solid var(--border)}.stat-chip{font-size:.85rem;font-weight:700;padding:.2rem .6rem;background:#ffffff0d;border-radius:99px;font-variant-numeric:tabular-nums}.stat-coin{color:var(--accent-coin)}.stat-banana{color:var(--accent-banana)}.stat-page{color:var(--accent-page)}.stat-book{color:var(--accent-book)}@keyframes streakRing1{0%,to{box-shadow:0 0 #d4a85a80}60%{box-shadow:0 0 0 5px #d4a85a00}}@keyframes streakRing2{0%,to{box-shadow:0 0 #4fc3f780}60%{box-shadow:0 0 0 5px #4fc3f700}}@keyframes streakRing3{0%,to{box-shadow:0 0 #ffd70080}60%{box-shadow:0 0 0 5px #ffd70000}}@keyframes streakRing4{0%,to{box-shadow:0 0 #ff6b9d80}60%{box-shadow:0 0 0 5px #ff6b9d00}}.streak-t1{color:#d4a85a;animation:streakRing1 2.5s ease-out infinite}.streak-t2{color:#4fc3f7;animation:streakRing2 2.5s ease-out infinite}.streak-t3{color:gold;animation:streakRing3 2s ease-out infinite}.streak-t4{color:#ff6b9d;animation:streakRing4 1.5s ease-out infinite}@keyframes statTick{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}.stat-tick{animation:statTick .22s ease-out}.acc-high{color:#4ade80}.acc-mid{color:#facc15}.acc-low{color:#fb923c}.acc-crit{color:#f87171}.sentences-loading{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.sentences-loading-label{color:var(--text-muted);font-size:.9rem;margin:0}.sentences-loading-track{width:100%;max-width:320px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.sentences-loading-fill{height:100%;width:40%;background:var(--accent);border-radius:3px;animation:sentences-loading-sweep 1.4s ease-in-out infinite}@keyframes sentences-loading-sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}.typing-area{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.65rem;position:relative;overflow:visible}.word-display-wrapper{text-align:center;position:relative}.word-display-wrapper--with-badges{padding-top:2.25rem}.word-bonus-badges{position:absolute;top:0;left:0;right:0;display:flex;gap:.5rem;justify-content:center;height:2.25rem;align-items:center}.bonus-badge{font-size:1.1rem;padding:.1rem .4rem;background:#ffffff0f;border-radius:var(--radius);cursor:default}.current-word{display:flex;flex-wrap:wrap;justify-content:center;gap:1px;font-family:var(--mono);font-size:2.2rem;font-weight:600;letter-spacing:0;min-height:2.6rem;align-items:center;position:relative}.current-word.word-error{animation:wordShake .35s ease}.current-word.word-error .letter{color:var(--error)!important;text-decoration:line-through;text-decoration-color:var(--error);text-decoration-thickness:2px}@keyframes wordShake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}35%{transform:translate(8px)}55%{transform:translate(-6px)}75%{transform:translate(6px)}90%{transform:translate(-2px)}}.letter{transition:color var(--transition)}@keyframes coinFloat{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1.6rem)}}.word-display-row{display:grid;grid-template-columns:7.5rem auto 7.5rem;align-items:center;justify-content:center;column-gap:.75rem;width:100%}.word-display-spacer{width:7.5rem}.coin-popup-rail{position:relative;width:7.5rem;height:2.4rem}.coin-popup{position:absolute;top:50%;left:0;transform:translateY(0);pointer-events:none;white-space:nowrap;font-family:var(--mono);font-weight:700;font-size:1rem;color:var(--success);text-shadow:0 1px 4px rgba(0,0,0,.5);z-index:20;animation:coinFloat 1.1s cubic-bezier(.22,.61,.36,1) forwards}@media(max-width:640px){.word-display-row{grid-template-columns:1fr}.word-display-spacer{display:none}.coin-popup-rail{position:absolute;right:.5rem;top:50%;width:auto;height:auto}}.letter-typed{color:var(--success)}.letter-current{color:var(--text);text-decoration:underline;text-underline-offset:4px}.letter-pending{color:var(--text-muted)}.word-input{width:100%;max-width:480px;padding:.75rem 1.25rem;font-size:1.1rem;font-family:var(--mono);background:var(--surface);color:var(--text);border:2px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color var(--transition);text-align:center}.word-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent),0 0 12px color-mix(in srgb,var(--accent) 15%,transparent);transition:border-color var(--transition),box-shadow var(--transition)}.word-input.input-error{border-color:var(--error);background:color-mix(in srgb,var(--error) 8%,var(--surface))}.word-input.input-locked{border-color:var(--error);background:color-mix(in srgb,var(--error) 12%,var(--surface));color:var(--error);cursor:not-allowed}.word-input-hidden{position:absolute;opacity:0;pointer-events:none;width:0;height:0;padding:0;border:none}@keyframes inputShake{0%,to{transform:translate(0)}33%{transform:translate(-5px)}66%{transform:translate(5px)}}.keyboard{background:linear-gradient(135deg,var(--surface),var(--panel));padding:1rem;border-radius:var(--radius);border:1px solid var(--border);margin:0 auto;max-width:900px;width:100%}.kb-row{display:flex;justify-content:center;gap:.35rem;margin-bottom:.35rem}.kb-row:nth-child(3){padding-left:1rem}.kb-row:nth-child(4){padding-left:2rem}.kb-row:nth-child(5){padding-left:3rem}.key{flex:1 1 0;min-width:38px;height:40px;background:linear-gradient(135deg,#ffffff14,#ffffff05);color:var(--text);border:1px solid rgba(255,255,255,.12);border-radius:6px;font-size:.78rem;font-weight:600;font-family:var(--mono);text-transform:uppercase;cursor:default;transition:background var(--transition),transform .1s;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.key.key-1-25x{flex-grow:1.25}.key.key-1-5x{flex-grow:1.5}.key.key-2x{flex-grow:2}.key.key-2-5x{flex-grow:2.5}.key.key-space{flex-grow:8;text-transform:none}.key.key-special{font-size:.7rem;text-transform:capitalize}.key.key-locked{background:#0006;color:#ffffff26;border-color:#ffffff0d;cursor:not-allowed}.key.vk-color-red{background:linear-gradient(135deg,#ef4444,#b91c1c)!important;color:#fff!important}.key.vk-color-orange{background:linear-gradient(135deg,#f97316,#c2410c)!important;color:#fff!important}.key.vk-color-yellow{background:linear-gradient(135deg,#eab308,#a16207)!important;color:#1a1a1a!important}.key.vk-color-green{background:linear-gradient(135deg,#22c55e,#15803d)!important;color:#fff!important}.key.vk-color-light-blue{background:linear-gradient(135deg,#38bdf8,#0369a1)!important;color:#fff!important}.key.vk-color-dark-blue{background:linear-gradient(135deg,#3b82f6,#1e40af)!important;color:#fff!important}.key.vk-color-purple{background:linear-gradient(135deg,#a855f7,#6b21a8)!important;color:#fff!important}.key.vk-color-pink{background:linear-gradient(135deg,#ec4899,#9d2463)!important;color:#fff!important}.key.vk-current{border-color:var(--accent)!important;transform:translateY(-2px);animation:keyPulse .9s ease-in-out infinite;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 40%,transparent)}.key[class*=vk-color-].vk-current{filter:brightness(1.35) saturate(1.15);transform:translateY(-2px);animation:keyPulseColored .9s ease-in-out infinite}@keyframes keyPulse{0%,to{box-shadow:0 4px 10px color-mix(in srgb,var(--accent) 30%,transparent)}50%{box-shadow:0 4px 18px color-mix(in srgb,var(--accent) 60%,transparent)}}@keyframes keyPulseColored{0%,to{filter:brightness(1.25) saturate(1.1);box-shadow:0 4px 10px #ffffff26}50%{filter:brightness(1.45) saturate(1.25);box-shadow:0 4px 20px #ffffff4d}}@keyframes unlockStamp{0%{transform:scale(.6);box-shadow:0 0 0 transparent}60%{transform:scale(1.1);box-shadow:0 0 14px color-mix(in srgb,var(--accent) 70%,transparent)}to{transform:scale(1);box-shadow:0 0 0 transparent}}.key.key-unlock-flash{animation:unlockStamp .4s cubic-bezier(.34,1.56,.64,1)!important}.key.vk-wrong{background:linear-gradient(135deg,#ef4444,#991b1b)!important;color:#fff!important;animation:wrongFlash .25s ease}@keyframes wrongFlash{0%{transform:scale(1.1)}to{transform:scale(1)}}.letter.vk-color-red{color:#f87171}.letter.vk-color-orange{color:#fb923c}.letter.vk-color-yellow{color:#facc15}.letter.vk-color-green{color:#4ade80}.letter.vk-color-light-blue{color:#38bdf8}.letter.vk-color-dark-blue{color:#60a5fa}.letter.vk-color-purple{color:#c084fc}.letter.vk-color-pink{color:#f472b6}.monkey-strip{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.monkey-strip-row{display:flex;flex-wrap:wrap;gap:.75rem}.monkey-card{display:flex;align-items:center;gap:.6rem;background:#ffffff0a;border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem;min-width:160px;max-width:220px;flex:1;transition:box-shadow .18s ease,border-color .18s ease,background .18s ease}.monkey-card--correct{border-color:#22c55e;background:#22c55e1f;box-shadow:0 0 14px #22c55e8c}@keyframes monkeyBobIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes monkeyBobTyping{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.monkey-avatar-container{position:relative;display:inline-block}.monkey-avatar{font-size:1.6rem;line-height:1;display:inline-block}.monkey-avatar--idle{animation:monkeyBobIdle 3s ease-in-out infinite}.monkey-avatar--typing{animation:monkeyBobTyping 1.2s ease-in-out infinite}@keyframes emojiPopup{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1}to{opacity:0;transform:translateY(-30px) scale(1.2)}}.emoji-popup{position:absolute;top:-30px;left:50%;transform:translate(-50%);font-size:1.8rem;pointer-events:none;animation:emojiPopup 1.5s ease-out forwards}.monkey-idle:after{content:"...";overflow:hidden;display:inline-block;width:0;vertical-align:bottom;animation:idleEllipsis 1.4s steps(3,end) infinite}@keyframes idleEllipsis{to{width:.9em}}.monkey-info{flex:1;min-width:0}.monkey-name-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.3rem}.monkey-name-row strong{font-size:.85rem}.monkey-title{font-size:.7rem;background:var(--accent-banana);color:#1a1b26;border-radius:99px;padding:.1rem .4rem}.monkey-level{font-size:.75rem;color:var(--text-muted)}.monkey-target-word{font-family:var(--mono);font-size:.78rem;color:var(--text-muted);margin-bottom:.25rem;display:flex;align-items:center;gap:.3rem}.monkey-target-text{color:var(--accent-banana);font-weight:700;letter-spacing:.05em}.monkey-hangman{display:flex;gap:3px}.hangman-slot{width:18px;height:22px;border-bottom:2px solid var(--text-muted);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.75rem;font-weight:700}.guess-char.correct{color:var(--success);animation:guessFlash .3s ease}.guess-char.incorrect{color:var(--error);animation:guessFlash .3s ease}.done-char{color:var(--success)}.monkey-idle{font-size:.75rem;color:var(--text-muted);font-style:italic;margin-top:.2rem}@keyframes guessFlash{0%{transform:scale(1.5)}to{transform:scale(1)}}.babel-widget{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;overflow:hidden}.babel-widget--empty{color:var(--text-muted);text-align:center;padding:2rem}.babel-widget--locked .babel-text-window{animation:wordShake .35s ease}.babel-widget--locked .babel-char--error{color:var(--error)!important;text-decoration:line-through;text-decoration-color:var(--error);text-decoration-thickness:2px;animation:none!important;opacity:1}.babel-widget-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.babel-kind-badge{font-size:.75rem;font-weight:700;background:#7aa2f726;color:var(--accent);padding:.2rem .6rem;border-radius:99px}.babel-theme-badge{font-size:.75rem;background:#9d7cd826;color:var(--accent-page);padding:.2rem .6rem;border-radius:99px}.babel-pct{margin-left:auto;font-weight:600;color:var(--text-muted);font-size:.78rem;font-variant-numeric:tabular-nums;cursor:default}.babel-auto-badge{font-size:.7rem;font-weight:600;color:var(--accent);opacity:.75;font-variant-numeric:tabular-nums;cursor:default}.babel-rc-hint{font-size:.7rem;color:var(--text-muted);cursor:help}.babel-progress-bar{height:6px;background:#ffffff0f;border-radius:99px;margin-bottom:.75rem;overflow:hidden}.babel-progress-fill{height:100%;background-color:var(--accent);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0px,rgba(255,255,255,.12) 1px,transparent 1px,transparent 3px);border-radius:99px;transition:width .3s ease}.babel-text-window{font-family:var(--mono);font-size:.95rem;letter-spacing:.05em;line-height:1.6;background:#0003;padding:.5rem .75rem;border-radius:6px;margin-bottom:.6rem;overflow:hidden;white-space:pre-wrap;word-break:break-all}.babel-char--done{color:var(--accent-coin);opacity:.85}.babel-char--current{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:3px;animation:charPulse 1s ease-in-out infinite}.babel-char--pending{color:var(--text);opacity:.6;animation:charJitter 60ms ease-in-out infinite}.babel-char--pending:nth-child(2n){animation-delay:-20ms}.babel-char--pending:nth-child(3n){animation-delay:-40ms}.babel-char--pending:nth-child(5n){animation-delay:-10ms}.babel-char--pending:nth-child(7n){animation-delay:-50ms}.babel-char--monkey-done{color:#ffa050;opacity:.95;font-weight:700}.babel-char--monkey-active{color:#ffb26b;opacity:1;font-weight:700}@keyframes charJitter{0%,to{transform:translate(0)}25%{transform:translate(.4px,-.3px)}75%{transform:translate(-.4px,.3px)}}@keyframes charPulse{0%,to{opacity:1;text-shadow:0 0 4px color-mix(in srgb,var(--accent) 50%,transparent)}50%{opacity:.7;text-shadow:0 0 10px color-mix(in srgb,var(--accent) 80%,transparent)}}.babel-addr-section{margin-bottom:.6rem}.babel-addr-header{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.2rem 0;cursor:pointer;text-align:left;color:var(--text-muted)}.babel-addr-header:hover{color:var(--text)}.babel-addr-title{font-size:.72rem;font-weight:700;white-space:nowrap}.babel-addr-preview{font-family:var(--mono);font-size:.72rem;color:var(--accent);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.babel-addr-chevron{font-size:.72rem;flex-shrink:0}.babel-addr-full{display:flex;flex-direction:column;gap:.18rem;padding:.4rem .6rem .5rem;background:#00000026;border-radius:6px;margin-top:.2rem}.babel-addr-row{display:flex;align-items:baseline;gap:.5rem}.babel-addr-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;width:7rem;flex-shrink:0}.babel-addr-val{font-family:var(--mono);font-size:.72rem;color:var(--text);word-break:break-all}.babel-addr-group-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:.45rem;padding-bottom:.15rem;border-bottom:1px solid var(--border)}.babel-addr-group-label:first-child{margin-top:0}.babel-addr-multiverse-ta{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:.65rem;color:var(--text-muted);background:#0003;border:1px solid var(--border);border-radius:4px;padding:.35rem .45rem;height:3.6rem;resize:vertical;overflow-y:auto;line-height:1.4;word-break:break-all;margin-top:.2rem}.babel-addr-copy-row{display:flex;justify-content:flex-end;margin-top:.5rem}.babel-addr-copy-btn{font-size:.72rem}.babel-book-progress{font-size:.8rem;color:var(--text-muted)}.babel-book-bar{height:4px;background:#ffffff0f;border-radius:99px;margin-top:.3rem;overflow:hidden}.babel-book-fill{height:100%;background-color:var(--accent-book);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0px,rgba(255,255,255,.12) 1px,transparent 1px,transparent 3px);border-radius:99px;transition:width .3s ease}.babel-completion-sigil{display:none;text-align:center;font-family:var(--serif);font-size:1.35rem;letter-spacing:.18em;color:var(--accent-coin);padding:.5rem 0 .15rem;text-shadow:0 0 14px color-mix(in srgb,var(--accent-coin) 45%,transparent);transform-origin:center}.babel-confetti{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden}.babel-confetti span{position:absolute;top:16%;left:50%;width:7px;height:12px;border-radius:2px;background:var(--accent-coin);opacity:0;transform:translate(-50%,-50%);animation:babelConfettiPop 1.05s ease-out forwards}.babel-confetti span:nth-child(3n){background:var(--accent-banana)}.babel-confetti span:nth-child(4n){background:var(--accent)}.babel-confetti span:nth-child(5n){background:var(--success)}.babel-confetti span:nth-child(1){--x: -180px;--y: 18px;--r: -120deg;animation-delay:.02s}.babel-confetti span:nth-child(2){--x: -145px;--y: 72px;--r: 80deg;animation-delay:.06s}.babel-confetti span:nth-child(3){--x: -110px;--y: 24px;--r: 145deg;animation-delay:.01s}.babel-confetti span:nth-child(4){--x: -78px;--y: 92px;--r: -70deg;animation-delay:.08s}.babel-confetti span:nth-child(5){--x: -42px;--y: 44px;--r: 210deg;animation-delay:.03s}.babel-confetti span:nth-child(6){--x: -12px;--y: 110px;--r: -160deg;animation-delay:.07s}.babel-confetti span:nth-child(7){--x: 24px;--y: 36px;--r: 95deg;animation-delay:.04s}.babel-confetti span:nth-child(8){--x: 58px;--y: 96px;--r: -45deg;animation-delay:.09s}.babel-confetti span:nth-child(9){--x: 92px;--y: 28px;--r: 170deg;animation-delay:.02s}.babel-confetti span:nth-child(10){--x: 126px;--y: 84px;--r: -110deg;animation-delay:.06s}.babel-confetti span:nth-child(11){--x: 158px;--y: 38px;--r: 60deg;animation-delay:.01s}.babel-confetti span:nth-child(12){--x: 190px;--y: 102px;--r: -210deg;animation-delay:.08s}.babel-confetti span:nth-child(13){--x: -210px;--y: 122px;--r: 120deg;animation-delay:.1s}.babel-confetti span:nth-child(14){--x: -66px;--y: 136px;--r: -95deg;animation-delay:.12s}.babel-confetti span:nth-child(15){--x: 72px;--y: 132px;--r: 130deg;animation-delay:.1s}.babel-confetti span:nth-child(16){--x: 212px;--y: 124px;--r: -80deg;animation-delay:.12s}@keyframes babelConfettiPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1) rotate(var(--r))}}@keyframes completionFlicker{0%{color:var(--accent-coin);text-shadow:0 0 6px color-mix(in srgb,var(--accent-coin) 70%,transparent);opacity:1}25%{color:var(--accent-coin);text-shadow:0 0 10px color-mix(in srgb,var(--accent-coin) 50%,transparent)}to{color:#c9aa71;text-shadow:none;opacity:.65}}@keyframes sigilStamp{0%{opacity:0;transform:scale(.45) rotate(-8deg);filter:blur(1px)}58%{opacity:1;transform:scale(1.18) rotate(2deg);filter:blur(0)}to{opacity:1;transform:scale(1) rotate(-1deg);filter:blur(0)}}.babel-widget--just-completed .babel-char{animation:completionFlicker .7s ease-out forwards!important}.babel-widget--just-completed .babel-completion-sigil{display:block;animation:sigilStamp .42s cubic-bezier(.34,1.56,.64,1) .14s both}@media(prefers-reduced-motion:reduce){.babel-confetti{display:none}.babel-widget--just-completed .babel-char,.babel-widget--just-completed .babel-completion-sigil{animation:none!important}.babel-widget--just-completed .babel-completion-sigil{display:block;opacity:1}}.goal-ribbon{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem .6rem;contain:layout style}.goal-ribbon-slot{min-height:0;transition:min-height .15s ease}.goal-ribbon-title{display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;color:var(--text-muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.04em;background:none;border:none;padding:0;cursor:pointer;text-align:left;width:100%}.goal-ribbon-title:hover{color:var(--text)}.goal-ribbon-clear{margin-left:auto;font-size:.7rem}.goal-ribbon-list{margin-bottom:.5rem;padding:.5rem;background:#ffffff08;border-radius:4px}.goal-ribbon-list-tabs{display:flex;gap:.3rem;margin-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.3rem}.goal-ribbon-list-tab{background:none;border:none;padding:.2rem .6rem;cursor:pointer;font-size:1rem;opacity:.6;transition:opacity .15s ease}.goal-ribbon-list-tab:hover{opacity:.8}.goal-ribbon-list-tab--active{opacity:1;border-bottom:2px solid var(--accent);padding-bottom:calc(.3rem - 2px)}.goal-ribbon-list-header{font-size:.7rem;color:var(--text-muted);margin-bottom:.4rem;font-weight:600}.goal-ribbon-list-item{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;font-size:.75rem;color:var(--text);padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.goal-ribbon-list-item:last-child{border-bottom:none}.goal-ribbon-list-item--active{color:var(--accent);font-weight:600}.goal-ribbon-list-item--active .goal-ribbon-list-order{color:var(--accent)}.goal-ribbon-list-order{color:var(--text-muted);font-weight:600;min-width:1.5rem}.goal-ribbon-list-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-ribbon-list-cost{color:var(--accent-coin);font-weight:600;text-align:right}.goal-ribbon-list-empty{font-size:.7rem;color:var(--text-muted);padding:.3rem 0;font-style:italic}.goal-ribbon-bars{display:flex;flex-direction:column;gap:.35rem}.goal-ribbon-bars--2col{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .6rem}.goal-bar{display:flex;flex-direction:column;gap:.2rem}.goal-bar--compact{gap:.15rem}.goal-bar-header{display:flex;align-items:baseline;gap:.3rem;font-size:.82rem;line-height:1.2;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums}.goal-bar--compact .goal-bar-header{font-size:.75rem}.goal-bar-label{overflow:hidden;text-overflow:ellipsis;min-width:0}.goal-bar-cost-inline{color:var(--text-muted);font-size:.72rem;flex-shrink:0}.goal-bar-track{height:6px;background:#ffffff0f;border-radius:99px;position:relative;overflow:hidden;display:flex;align-items:center}.goal-bar--compact .goal-bar-track{height:5px}.goal-bar-fill{height:100%;background-color:var(--accent-coin);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0px,rgba(255,255,255,.12) 1px,transparent 1px,transparent 3px);border-radius:99px;transition:width .3s ease}.goal-bar-footer{display:flex;justify-content:flex-end}.goal-bar-pct{font-size:.75rem;font-weight:700;color:var(--accent-coin)}.goal-bar--ready .goal-bar-track{background:#ffffff1a}.goal-bar--ready{animation:goalBarReadyPulse 1.1s ease-in-out infinite}.goal-bar--ready .goal-bar-fill{box-shadow:0 0 14px #22c55ecc;animation:goalBarPulse 1.1s ease-in-out infinite}@keyframes goalBarReadyPulse{0%,to{box-shadow:0 0 #22c55e00,0 0 12px #22c55e4d}50%{box-shadow:0 0 0 5px #22c55e33,0 0 28px #22c55eb3}}.goal-bar--near-full .goal-bar-fill{box-shadow:0 0 10px #22c55e80}.goal-bar-fill{transition:width .3s ease,background .3s ease,box-shadow .3s ease}@keyframes goalBarPulse{0%,to{box-shadow:0 0 8px #22c55e8c}50%{box-shadow:0 0 22px #22c55ef2}}.goal-bar .btn-xs{margin-top:.1rem;align-self:flex-start;font-size:.7rem;padding:.15rem .45rem}.goal-ribbon:not(.goal-ribbon--multi) .goal-bar-track{height:8px}.goal-ribbon:not(.goal-ribbon--multi) .goal-bar-header{font-size:.85rem}.goal-ribbon:not(.goal-ribbon--multi) .goal-bar-cost-inline{font-size:.78rem}.goal-ribbon:not(.goal-ribbon--multi) .goal-bar-pct{font-size:.85rem}.goal-ribbon:not(.goal-ribbon--multi) .goal-bar .btn-xs{font-size:.78rem;padding:.2rem .6rem}.store-view{display:flex;flex-direction:column;gap:.5rem;margin-top:1.25rem}.store-tabs{display:flex;gap:.5rem}.tab-btn{flex:1;padding:.6rem .75rem;border-radius:var(--radius);background:var(--surface);color:var(--text-muted);border:1px solid var(--border);font-weight:700;font-size:.85rem;transition:all var(--transition)}.tab-btn--active{background:#7aa2f71f;color:var(--accent);border-color:var(--accent)}.store-content{min-height:400px}.store-intro{color:var(--text-muted);font-size:.85rem;margin:0}.store-intro-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.store-toolbar{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;background:var(--panel);border-radius:var(--radius);margin-bottom:.25rem;position:sticky;top:0;z-index:5;border:1px solid var(--border)}.weak-keys-empty{padding:.6rem .75rem;color:var(--text-muted);font-size:.85rem;font-style:italic;background:#ffffff08;border-radius:6px}.babel-tools-view{display:flex;flex-direction:column;gap:1rem;margin-top:1.25rem}.babel-tools-tabs{display:flex;gap:.4rem}.babel-tools-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.6rem}.babel-tools-grid{display:grid;grid-template-columns:1fr repeat(4,90px);gap:.5rem;align-items:end}.babel-tools-grid label{display:flex;flex-direction:column;font-size:.75rem;color:var(--text-muted);gap:.2rem}.babel-tools-grid input{background:var(--bg, rgba(0,0,0,.25));color:var(--text);border:1px solid var(--border);padding:.35rem .5rem;border-radius:4px;font-size:.85rem}.babel-tools-actions{display:flex;gap:.5rem}.babel-tools-content{background:#0000004d;border:1px solid var(--border);padding:.6rem;border-radius:6px;max-height:200px;overflow:auto;font-family:ui-monospace,monospace;font-size:.8rem;white-space:pre-wrap;word-break:break-word}.babel-tools-save{display:flex;gap:.5rem;align-items:center}.babel-tools-save input[type=text]{flex:1;background:var(--bg, rgba(0,0,0,.25));color:var(--text);border:1px solid var(--border);padding:.35rem .5rem;border-radius:4px;font-size:.85rem}.babel-tools-textarea{width:100%;background:var(--bg, rgba(0,0,0,.25));color:var(--text);border:1px solid var(--border);padding:.5rem;border-radius:6px;font-family:ui-monospace,monospace;font-size:.85rem;resize:vertical}.babel-tools-address{font-family:ui-monospace,monospace;font-size:.85rem;padding:.5rem;background:#0003;border-radius:4px;word-break:break-all}.babel-tools-full-address{background:#0003;border-radius:6px;overflow:hidden;font-size:.8rem}.btfa-section-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.3rem .6rem .15rem;background:#ffffff0a;border-top:1px solid var(--border)}.btfa-row{display:grid;grid-template-columns:130px 1fr;gap:.5rem;padding:.2rem .6rem;border-top:1px solid rgba(255,255,255,.04);align-items:baseline}.btfa-head{background:#ffffff0d;font-weight:600}.btfa-tier{color:var(--text-muted);font-size:.72rem;white-space:nowrap}.btfa-val{font-family:ui-monospace,monospace;word-break:break-all;color:var(--text)}.btfa-empty{color:var(--text-muted);font-style:italic}.babel-tools-file{display:inline-flex;gap:.5rem;align-items:center;font-size:.85rem;color:var(--text-muted);cursor:pointer}.babel-tools-library{display:flex;flex-direction:column;gap:.3rem}.babel-tools-library-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.5rem;align-items:center;padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:#ffffff05}.babel-tools-library-row.active{border-color:var(--accent-coin)}.babel-tools-library-row .cp-name{font-weight:600;font-size:.85rem}.babel-tools-library-row .cp-addr{font-family:ui-monospace,monospace;font-size:.75rem}.cp-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);max-height:60vh}.cp-table{width:100%;border-collapse:collapse;font-size:.78rem;white-space:nowrap;font-variant-numeric:tabular-nums}.cp-table thead{position:sticky;top:0;z-index:2}.cp-th{padding:.4rem .6rem;background:var(--panel, var(--surface));border-bottom:2px solid var(--border);text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);-webkit-user-select:none;user-select:none}.cp-th-sortable{cursor:pointer;transition:color var(--transition)}.cp-th-sortable:hover{color:var(--text)}.cp-th-active{color:var(--accent)!important;border-bottom-color:var(--accent)}.cp-sort-icon{margin-left:.25rem;font-style:normal}.cp-sort-inactive{opacity:.35}.cp-row:nth-child(2n){background:#ffffff05}.cp-row:hover{background:#7aa2f70f}.cp-row--expanded{background:#7aa2f70d!important}.cp-kind-btn{background:transparent;border:none;padding:0;cursor:pointer}.cp-kind-btn .page-kind-badge{pointer-events:none}.completed-review-top{margin-bottom:.75rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.completed-pages-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.completed-pages-hint{font-size:.8rem}.completed-pages-actions{display:flex;gap:.5rem;flex-shrink:0}.completed-pages-clear-btn{color:var(--error)!important}.completed-pages-clear-btn:hover{background:#f7768e1a!important}.clear-confirm-dialog{background:var(--panel);border:1px solid var(--error);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:.75rem}.clear-confirm-text{margin:0 0 .6rem;font-size:.85rem}.clear-confirm-actions{display:flex;gap:.5rem}.cp-pagination{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;margin-bottom:.25rem}.cp-pagination-label{font-size:.78rem;color:var(--text-muted)}.review-panel{padding:1rem 1.25rem;background:var(--panel)}.review-tab-bar{display:flex;gap:.5rem;margin-bottom:.75rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}.review-tab{background:none;border:none;color:var(--text-muted);font-size:.8rem;padding:.25rem .5rem;cursor:pointer;border-radius:var(--radius)}.review-tab:hover{color:var(--text);background:#ffffff0a}.review-tab--active{color:var(--accent);background:#7aa2f71a;font-weight:600}.review-page-text{font-family:var(--mono);font-size:.78rem;line-height:1.7;max-height:260px;overflow-y:auto;color:var(--success);white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere}.review-address{font-size:.82rem}.review-addr-section{display:grid;grid-template-columns:110px 1fr;gap:.2rem .75rem}.review-addr-row{display:contents}.review-addr-label{color:var(--text-muted);font-size:.75rem;align-self:center}.review-addr-value{color:var(--text);font-family:var(--mono);font-size:.75rem;word-break:break-all}.review-copy-btn{margin-top:.75rem}.review-progress{font-size:.82rem}.review-contrib-bar{height:10px;border-radius:99px;background:#ffffff0f;overflow:hidden;display:flex;margin-bottom:.5rem}.review-contrib-player{background:var(--accent);transition:width .3s}.review-contrib-monkey{background:var(--accent-banana);transition:width .3s}.review-contrib-labels{display:flex;gap:1rem;font-size:.75rem;margin-bottom:.75rem}.review-stat-row{display:flex;justify-content:space-between;color:var(--text-muted);font-size:.78rem;padding:.2rem 0;border-bottom:1px solid var(--border)}.cp-cell{padding:.32rem .6rem;color:var(--text);border-bottom:1px solid var(--border)}.cp-cell-date{color:var(--text-muted);font-size:.72rem}.cp-table th:first-child,.cp-table td:first-child{position:sticky;left:0;z-index:1;background:var(--surface)}.cp-table thead th:first-child{z-index:3;background:var(--panel, var(--surface))}.cp-row:nth-child(2n) td:first-child{background:var(--surface)}.page-cosmic-crumb{font-size:.72rem!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent-page)}.viewer-addr-modal-grid{display:grid;grid-template-columns:110px 1fr;gap:.25rem .75rem;font-size:.82rem}.cn-root{display:flex;flex-direction:column;gap:1rem}.cn-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.45rem}.cn-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.1rem}.cn-section-title{margin:0;font-size:.95rem}.cn-section-btns{display:flex;gap:.4rem;flex-wrap:wrap}.cn-desc{margin:0 0 .3rem;font-size:.8rem}.cn-layer-row{display:grid;grid-template-columns:110px 1fr 1.8rem 140px 140px;gap:.35rem;align-items:center;row-gap:.1rem}.cn-resolved-hint{grid-column:2 / -1;font-size:.7rem;color:var(--text-muted);margin-top:-.1rem;padding-bottom:.2rem}.cn-layer-label{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cn-layer-text{background:#0003;color:var(--text);border:1px solid var(--border);padding:.28rem .45rem;border-radius:4px;font-size:.8rem;min-width:0}.cn-layer-text:focus{outline:none;border-color:var(--accent)}.cn-dice{padding:.2rem .35rem!important;font-size:.7rem!important;line-height:1!important;min-width:0!important}.cn-select{background:var(--panel, var(--surface));color:var(--text);border:1px solid var(--border);padding:.28rem .35rem;border-radius:4px;font-size:.72rem;min-width:0;cursor:pointer}.cn-select:disabled{opacity:.35;cursor:default}.cn-precision-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.4rem;padding-top:.6rem;border-top:1px solid var(--border)}.cn-precision-grid label{display:flex;flex-direction:column;gap:.2rem}.cn-precision-grid label span{font-size:.72rem;color:var(--text-muted)}.cn-precision-grid input{background:#0003;color:var(--text);border:1px solid var(--border);padding:.28rem .45rem;border-radius:4px;font-size:.82rem}.cn-multiverse-row{display:grid;grid-template-columns:110px 1fr 1.8rem;gap:.35rem;align-items:center}.cn-multiverse-direct{display:block;width:100%;box-sizing:border-box;font-family:ui-monospace,monospace;font-size:.72rem;word-break:break-all;white-space:pre-wrap;padding:.4rem .5rem;background:#00000040;border:1px solid var(--border);border-radius:4px;color:var(--text);outline:none;resize:vertical}.cn-multiverse-direct:focus{border-color:var(--accent)}.cn-complexity{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.2rem}.cn-complexity-header{display:flex;align-items:center;justify-content:space-between}.cn-complexity-label{font-size:.76rem;color:var(--text-muted);font-style:italic}.cn-complexity-pct{font-size:.76rem;color:var(--text-muted);font-weight:600}.cn-complexity-track{height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.cn-complexity-fill{height:100%;border-radius:999px;transition:width .2s ease,background .4s ease}.cn-generate-btn{align-self:flex-start}.cn-result{background:var(--surface);border:1px solid var(--accent-page);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.6rem}.cn-result-address{font-family:ui-monospace,monospace;font-size:.8rem;padding:.45rem .6rem;background:#00000040;border-radius:4px;word-break:break-all;color:var(--accent-page)}.cn-result-address-tech{color:var(--text-muted);font-size:.74rem}@media(max-width:700px){.cn-layer-row{grid-template-columns:80px 1fr 1.8rem}.cn-layer-row .cn-select{display:none}.cn-precision-grid{grid-template-columns:repeat(2,1fr)}}.store-rec-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.store-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.store-section-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;background:var(--panel);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition)}.store-section-header:hover{background:#7aa2f70f}.store-section-title{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.store-section-body{padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.btn-xs{padding:.15rem .45rem;font-size:.7rem}.upgrade-locked--nameonly{padding:.5rem .75rem;opacity:.55;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.upgrade-locked--nameonly .upgrade-name{font-size:.8rem}.upgrade-lock-hint{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.upgrade-category{margin-bottom:1.5rem}.category-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.75rem}.upgrade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.upgrade-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.4rem;transition:border-color var(--transition)}.upgrade-item:hover:not(.upgrade-locked):not(.upgrade-maxed){border-color:#7aa2f766}.upgrade-locked{opacity:.5}.upgrade-maxed{border-color:var(--success)}.upgrade-is-goal{border-color:var(--accent-coin);box-shadow:0 0 0 1px var(--accent-coin) inset}.upgrade-goal-badge{margin-left:.4rem;font-size:.85rem}.upgrade-header{display:flex;align-items:center;justify-content:space-between}.upgrade-name{font-weight:700;font-size:.9rem}.upgrade-level{font-size:.75rem;color:var(--text-muted)}.upgrade-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}.upgrade-stat-line{font-size:.75rem;color:var(--accent-coin);font-weight:600;margin:.15rem 0 0}.upgrade-lock-reason{font-size:.75rem;color:var(--accent-banana)}.upgrade-maxed-label{font-size:.8rem;color:var(--success)}.upgrade-actions{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.monkeys-view{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.25rem}.mk-view-header-title{display:inline-flex;align-items:center;gap:.35rem}.mk-view-header-title .btn-info{margin-right:0}.mk-troupe-help{background:#ffffff14;border:1px solid var(--border);border-radius:4px;padding:.75rem;margin-top:-.55rem;font-size:.92rem;line-height:1.45;color:var(--text)}.mk-hire-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem;transition:border-color .2s ease,box-shadow .2s ease}.mk-hire-card--ready{border-color:var(--accent-banana);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-banana) 20%,transparent),0 0 14px color-mix(in srgb,var(--accent-banana) 20%,transparent);animation:mk-hire-pulse 2s ease-in-out infinite}@keyframes mk-hire-pulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-banana) 15%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-banana) 30%,transparent),0 0 18px color-mix(in srgb,var(--accent-banana) 25%,transparent)}}.mk-hire-card--goal{border-color:var(--accent-coin)!important;box-shadow:0 0 0 1px var(--accent-coin) inset!important}.mk-hire-card-text{display:flex;align-items:flex-start;gap:.75rem}.mk-hire-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.mk-hire-card-icon{font-size:2rem;flex-shrink:0;line-height:1.1}.mk-click-hint{font-size:.75rem;margin-bottom:.5rem}.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem}.mk-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:.6rem .4rem .65rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition),background var(--transition);text-align:center}.mk-card:hover{border-color:var(--accent-banana);background:color-mix(in srgb,var(--accent-banana) 8%,var(--panel))}.mk-card--selected{border-color:var(--accent-banana);background:color-mix(in srgb,var(--accent-banana) 15%,var(--panel))}.mk-card-avatar{font-size:1.5rem;line-height:1}.mk-card-name{font-size:.72rem;font-weight:600;color:var(--text)}.mk-card-title{font-size:.62rem;color:var(--accent-banana);font-style:italic}.mk-card-level{font-size:.65rem;color:var(--text-muted)}.mk-card-xpbar{width:100%;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.mk-card-xpfill{height:100%;background:var(--accent-banana);border-radius:2px;transition:width .3s}.mk-card-working{font-size:.6rem;color:var(--accent-banana);font-style:italic}.mk-detail{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.7rem}.mk-detail-header{display:flex;align-items:center;gap:.75rem}.mk-detail-avatar{font-size:2rem;line-height:1}.mk-detail-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.mk-detail-name{font-size:1rem;font-weight:700}.mk-detail-title{font-size:.78rem;color:var(--accent-banana);font-style:italic;font-weight:400}.mk-detail-level-row{display:flex;align-items:center;gap:.5rem}.mk-detail-level{font-size:.82rem;font-weight:600;min-width:3.5rem}.mk-detail-xpbar{flex:1;height:7px;background:var(--border);border-radius:4px;overflow:hidden}.mk-detail-xpfill{height:100%;background:var(--accent-banana);border-radius:4px;transition:width .3s}.mk-detail-xptext{font-size:.72rem;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.mk-stats-row{display:flex;flex-wrap:wrap;gap:.5rem;background:var(--panel);border-radius:var(--radius);padding:.5rem .6rem}.mk-stat{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1 1 auto}.mk-stat-label{font-size:.62rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.mk-stat-value{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mk-hangman{display:flex;flex-wrap:wrap;gap:3px}.mk-hangman-slot{width:1.6rem;height:1.8rem;border-bottom:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.85rem}.mk-hg-done,.mk-hg-correct{color:var(--success)}.mk-hg-wrong{color:var(--error);text-decoration:line-through}.mk-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.35rem}.mk-section-label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;flex-wrap:wrap}.mk-section-label-row .mk-section-label{margin-bottom:0}.mk-section-label-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.mk-currency-bar{font-size:1rem;padding:.3rem .65rem;border-radius:.4rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.mk-currency-bar strong{color:var(--accent-banana, #fbbf24)}.mk-upgrades{display:flex;flex-direction:column;gap:0}.mk-page-section{display:flex;flex-direction:column;gap:.3rem}.mk-promotion{display:flex;flex-direction:column;gap:0}.mk-promotion-options{display:flex;flex-wrap:wrap;gap:.4rem}.monkey-page-select{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.25rem .5rem;font-size:.85rem;width:100%}.reassign-warning{background:#f7768e1a;border:1px solid var(--error);border-radius:var(--radius);padding:.6rem .75rem;font-size:.85rem}.reassign-warning-actions{display:flex;gap:.5rem;margin-top:.4rem}.monkey-assignments-section{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.collapsible-header{width:100%;text-align:left;background:var(--surface);color:var(--text);border:none;padding:.65rem .9rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background var(--transition);-webkit-user-select:none;user-select:none}.collapsible-header:hover{background:#7aa2f70f}.monkey-assignments-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border)}.monkey-assignments-info{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .75rem .5rem;border-bottom:1px solid var(--border)}.monkey-assignments-info-title{font-size:.8rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.04em}.monkey-assignments-info-desc{font-size:.78rem;color:var(--text-muted);line-height:1.4}.monkey-assign-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.monkey-assign-row:last-child{border-bottom:none}.monkey-assign-avatar{font-size:1.1rem;flex-shrink:0}.monkey-assign-name{font-size:.85rem;font-weight:600;min-width:80px;color:var(--text)}.monkey-assign-row .monkey-page-select{flex:1;min-width:120px}.monkey-assign-row .reassign-warning{flex-basis:100%;margin-top:.3rem}.empty-state{color:var(--text-muted);text-align:center;padding:3rem 1rem}.xp-bar{height:6px;background:#ffffff0f;border-radius:99px;margin-top:.4rem;position:relative;overflow:hidden}.xp-fill{height:100%;background:var(--accent-banana);border-radius:99px;transition:width .3s ease}.xp-label{position:absolute;right:4px;top:-14px;font-size:.65rem;color:var(--text-muted)}.library-view{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.25rem}.new-page-row{display:flex;flex-wrap:wrap;gap:.5rem}.locked-teasers{display:flex;flex-direction:column;gap:.5rem}.locked-teaser{font-size:.85rem;color:var(--text-muted);background:var(--panel);border-radius:var(--radius);padding:.5rem .75rem}.pages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.library-page-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.page-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem;transition:border-color var(--transition)}.page-card--active{border-color:var(--accent);background:#7aa2f70f}.page-card--done{border-color:var(--success)}.page-card-header{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}.page-kind-badge{font-size:.7rem;font-weight:700;background:#7aa2f71a;color:var(--accent);padding:.15rem .5rem;border-radius:99px}.page-theme{font-size:.7rem;color:var(--accent-page)}.page-done-badge{color:var(--success)}.page-active-badge{margin-left:auto;font-size:.7rem;color:var(--accent);font-weight:700}.page-set-active-btn{margin-left:auto;font-size:.7rem}.page-address{font-family:var(--mono);font-size:.65rem;color:var(--text-muted);margin-bottom:.5rem;word-break:break-all}.page-progress-bar{height:6px;background:#ffffff0f;border-radius:99px;position:relative;overflow:hidden}.page-progress-fill{height:100%;background-color:var(--accent);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0px,rgba(255,255,255,.12) 1px,transparent 1px,transparent 3px);border-radius:99px;transition:width .3s ease}.page-pct{position:absolute;right:4px;top:-14px;font-size:.65rem;color:var(--text-muted)}.stats-view{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.25rem}.stats-view h2{margin-bottom:.25rem}.stats-section h3{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.stat-row{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;font-size:.875rem}.stat-label{color:var(--text-muted)}.stat-value{font-weight:700}.key-acc-grid{display:flex;flex-wrap:wrap;gap:.4rem}.key-acc-cell{width:50px;height:50px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:default}.key-acc-key{font-family:var(--mono);font-size:.9rem;font-weight:700}.key-acc-pct{font-size:.65rem;opacity:.8}.stat-note{font-size:.75rem;opacity:.6}.achievement-list{display:flex;flex-direction:column;gap:.5rem}.achievement-card{display:flex;flex-direction:column;gap:.3rem;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.achievement-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.achievement-card-name{font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:.4rem}.achievement-tier-badge{font-size:.65rem;font-weight:700;padding:.1rem .35rem;background:var(--accent);color:#000;border-radius:99px;opacity:.85}.achievement-card-progress{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.achievement-card-desc{font-size:.78rem;color:var(--text-muted);margin:0;line-height:1.35}.achievement-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.achievement-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.upgrade-history-list{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.upgrade-history-row{display:grid;grid-template-columns:60px 1fr 45px 80px;gap:.5rem;align-items:center;padding:.3rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:4px}.uh-store{color:var(--accent-coin);font-size:.7rem;font-weight:600;text-transform:uppercase}.uh-id{font-family:var(--mono);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uh-level{color:var(--success);font-weight:700}.uh-context{color:var(--text-muted);font-size:.7rem;text-align:right}.dev-report{margin-top:1.5rem}.dev-report-toggle{font-size:.8rem}.dev-report-body{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.dev-report-section{font-size:.85rem;margin:.75rem 0 .3rem;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:.2rem}.score-breakdown{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.breakdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.breakdown-header h3{margin:0}.breakdown-toggle{display:flex;gap:.4rem}.breakdown-word-display{display:flex;flex-wrap:wrap;gap:.15rem;margin-bottom:1rem;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius);font-family:var(--mono);font-size:1.4rem;font-weight:700;letter-spacing:.05em}.bd-char{padding:0 .05em;cursor:default}.bd-char-vowel{color:var(--accent)}.bd-char-consonant{color:var(--accent-banana)}.bd-char-other{color:var(--text-muted)}.breakdown-table{display:flex;flex-direction:column;gap:.15rem}.bd-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-top:.6rem;margin-bottom:.1rem;padding-left:.25rem}.bd-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem .5rem;border-radius:4px;font-size:.875rem;background:var(--surface);border:1px solid var(--border)}.bd-row.bd-inactive{opacity:.45}.bd-row.bd-subtotal{border-color:var(--accent);background:#7aa2f714;font-weight:700}.bd-row.bd-final{border-color:var(--accent-coin);background:#e0af681a;font-size:1rem;font-weight:700;margin-top:.3rem}.bd-label{color:var(--text)}.bd-value{font-family:var(--mono);font-weight:600;color:var(--text)}.bd-value.bd-mult{color:var(--success)}.settings-view{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.25rem}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.settings-section h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.25rem}.settings-section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.4rem}.settings-section-toggle:hover{color:var(--text)}.settings-caret{font-size:.75rem;color:var(--text-muted)}.setting-row{display:flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer}.setting-row select{margin-left:auto;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .5rem;font-size:.85rem}.setting-row--slider{cursor:default;gap:.6rem}.setting-label{min-width:6rem;font-size:.9rem}.setting-slider{flex:1;accent-color:var(--accent, #7c6fff);cursor:pointer}.setting-value{min-width:3rem;text-align:right;font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.settings-actions{display:flex;gap:.75rem;flex-wrap:wrap}.settings-error{color:var(--error);font-size:.85rem;margin-top:.5rem}.letter-mastery-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.lm-panel{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.lm-sp-alert{background:color-mix(in srgb,var(--accent, #7c6fff) 15%,transparent);border:1px solid color-mix(in srgb,var(--accent, #7c6fff) 40%,transparent);border-radius:var(--radius);padding:.4rem .75rem;font-size:.85rem;text-align:center}.lm-keyboard{display:flex;flex-direction:column;gap:4px}.lm-row{display:flex;gap:4px;justify-content:center}.lm-row-1{padding-left:1.2rem}.lm-row-2{padding-left:2.4rem}.lm-key{position:relative;display:flex;flex-direction:column;align-items:center;width:2.8rem;min-height:3.5rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:4px 2px 6px;cursor:pointer;transition:border-color .15s,background .15s;gap:2px}.lm-key:hover{border-color:var(--accent, #7c6fff);background:color-mix(in srgb,var(--accent, #7c6fff) 8%,var(--panel))}.lm-key--selected{border-color:var(--accent, #7c6fff);background:color-mix(in srgb,var(--accent, #7c6fff) 15%,var(--panel))}.lm-key--vowel{border-color:color-mix(in srgb,#f5a623 40%,var(--border))}.lm-key--vowel.lm-key--selected{border-color:#f5a623;background:color-mix(in srgb,#f5a623 15%,var(--panel))}.lm-key--hassp{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, #7c6fff) 60%,transparent)}.lm-key-char{font-size:1rem;font-weight:700;line-height:1}.lm-key-level{font-size:.6rem;color:var(--text-muted);line-height:1}.lm-key-xpbar{width:100%;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.lm-key-xpfill{height:100%;background:var(--accent, #7c6fff);border-radius:2px;transition:width .3s}.lm-key--vowel .lm-key-xpfill{background:#f5a623}.lm-key-sp-dot{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:#f5a623}.lm-detail{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.6rem}.lm-detail-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.lm-detail-letter{font-size:2rem;font-weight:800;line-height:1;min-width:2rem}.lm-detail-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:4px;font-weight:600}.lm-vowel{background:color-mix(in srgb,#f5a623 20%,transparent);color:#c97e00}.lm-consonant{background:color-mix(in srgb,var(--accent, #7c6fff) 20%,transparent);color:var(--accent, #7c6fff)}.lm-detail-times{font-size:.82rem;color:var(--text-muted);margin-left:auto}.lm-detail-level-row{display:flex;align-items:center;gap:.5rem}.lm-detail-level{font-size:.85rem;font-weight:600;min-width:4rem}.lm-detail-xpbar{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.lm-detail-xpfill{height:100%;background:var(--accent, #7c6fff);border-radius:4px;transition:width .3s}.lm-detail-xptext{font-size:.75rem;color:var(--text-muted);min-width:7rem;text-align:right;font-variant-numeric:tabular-nums}.lm-detail-sp-badge{font-size:.82rem;font-weight:600;color:#f5a623;background:color-mix(in srgb,#f5a623 12%,transparent);border-radius:4px;padding:3px 8px;display:inline-block;align-self:flex-start}.lm-detail-upgrades{display:flex;flex-direction:column;gap:.4rem;margin-top:.2rem}.lm-upgrade-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--panel);border-radius:4px;border:1px solid var(--border)}.lm-upgrade-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.lm-upgrade-name{font-size:.82rem;font-weight:600}.lm-upgrade-desc{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-upgrade-level{font-size:.72rem;color:var(--text-muted);min-width:3.5rem;text-align:right;font-variant-numeric:tabular-nums}.store-tab-bar{display:flex;align-items:stretch;gap:0;border-bottom:2px solid var(--border);margin-bottom:1rem}.store-tab-strip{display:flex;gap:0;flex:1;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.store-tab-strip::-webkit-scrollbar{display:none}.store-tab-scroller{display:flex;align-items:center;justify-content:center;padding:0 .55rem;font-size:1.1rem;font-weight:700;color:var(--text-muted);background:transparent;border:none;cursor:pointer;margin-bottom:-2px}.store-tab-scroller:hover:not(:disabled){color:var(--text);background:#ffffff0a}.store-tab-scroller:disabled{opacity:.25;cursor:default}.store-tab{display:flex;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.88rem;font-weight:600;color:var(--text-muted);background:transparent;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;white-space:nowrap;transition:color var(--transition),background var(--transition),border-color var(--transition);margin-bottom:-2px}.store-tab:hover{color:var(--text);background:#ffffff0a}.store-tab--active{color:var(--text);background:var(--surface);border-color:var(--border);border-bottom-color:var(--surface)}.store-tab-amount{font-size:.72rem;padding:1px 5px;border-radius:3px;background:#ffffff14;font-variant-numeric:tabular-nums}.store-tab-content{display:flex;flex-direction:column;gap:.75rem}.store-buy-max-bar{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;margin-top:.4rem}.mastery-section{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.mastery-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding-bottom:.35rem;border-bottom:1px solid var(--border)}.tm-panel{display:flex;flex-direction:column;gap:.75rem}.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.tm-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:.55rem .4rem .6rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition),background var(--transition);text-align:center}.tm-card:hover{border-color:var(--accent-page);background:color-mix(in srgb,var(--accent-page) 8%,var(--panel))}.tm-card--selected{border-color:var(--accent-page);background:color-mix(in srgb,var(--accent-page) 15%,var(--panel))}.tm-card--hassp{box-shadow:0 0 0 2px color-mix(in srgb,#f5a623 60%,transparent)}.tm-card-icon{font-size:1.4rem;line-height:1}.tm-card-name{font-size:.7rem;font-weight:600;color:var(--text);line-height:1.2;word-break:break-word}.tm-card-level{font-size:.65rem;color:var(--text-muted)}.tm-card-xpbar{width:100%;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.tm-card-xpfill{height:100%;background:var(--accent-page);border-radius:2px;transition:width .3s}.tm-card-typed{font-size:.62rem;color:var(--text-muted)}.tm-card-sp-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#f5a623}.tm-detail{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.6rem}.tm-detail-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.tm-detail-icon{font-size:1.6rem;line-height:1}.tm-detail-name{font-size:1.05rem;font-weight:700}.tm-detail-count{font-size:.75rem;color:var(--text-muted)}.tm-detail-times{font-size:.82rem;color:var(--text-muted);margin-left:auto}.tm-detail-level-row{display:flex;align-items:center;gap:.5rem}.tm-detail-level{font-size:.85rem;font-weight:600;min-width:4rem}.tm-detail-xpbar{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.tm-detail-xpfill{height:100%;background:var(--accent-page);border-radius:4px;transition:width .3s}.tm-detail-xptext{font-size:.75rem;color:var(--text-muted);min-width:7rem;text-align:right;font-variant-numeric:tabular-nums}.tm-detail-sp-badge{font-size:.82rem;font-weight:600;color:#f5a623;background:color-mix(in srgb,#f5a623 12%,transparent);border-radius:4px;padding:3px 8px;display:inline-block;align-self:flex-start}.tm-detail-upgrades{display:flex;flex-direction:column;gap:.4rem;margin-top:.2rem}.tm-word-list{margin-top:.5rem}.tm-word-list-toggle{background:none;border:none;padding:0;font-size:.75rem;color:var(--text-muted);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:color .2s ease}.tm-word-list-toggle:hover{color:var(--text)}.tm-word-list-textarea{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:.65rem;color:var(--text-muted);background:#0003;border:1px solid var(--border);border-radius:4px;padding:.35rem .45rem;height:4.8rem;resize:vertical;overflow-y:auto;line-height:1.4;word-break:break-all;margin-top:.4rem;font-weight:500}.dev-store-view{display:flex;flex-direction:column;gap:1rem;margin-top:1.25rem}.dev-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.dev-tweak-toggle-block{border:1px dashed var(--border);background:var(--surface-2, var(--surface));padding:.75rem 1rem;border-radius:6px}.dev-tweak-toggle-label{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;cursor:pointer}.dev-tweak-panel{margin-top:1.5rem;padding:.75rem 1rem 1rem;border:1px dashed var(--accent, #888);border-radius:8px;background:#ffc8000a}.dev-tweak-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.dev-tweak-header h3{margin:0;font-size:.95rem;color:var(--accent, #d2a64a)}.dev-tweak-grid{display:flex;flex-direction:column;gap:.35rem}.dev-tweak-row{display:grid;grid-template-columns:minmax(140px,1fr) repeat(3,110px) 32px;align-items:center;gap:.5rem;padding:.3rem .5rem;border-radius:4px;background:#00000026;font-size:.82rem}.dev-tweak-row--overridden{background:#ffc8001f;outline:1px solid rgba(255,200,0,.35)}.dev-tweak-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.dev-tweak-field{display:flex;flex-direction:column;gap:2px;font-size:.7rem;color:var(--muted, #888)}.dev-tweak-field input{width:100%;padding:.2rem .35rem;background:var(--surface, #1a1a1a);border:1px solid var(--border, #444);color:var(--text, #eee);border-radius:3px;font-size:.82rem;font-family:ui-monospace,monospace}.dev-tweak-field input:focus{outline:1px solid var(--accent, #d2a64a);outline-offset:0}@media(max-width:600px){.dev-tweak-row{grid-template-columns:1fr 1fr 1fr;grid-template-areas:"name name name" "base unlock mult" "reset reset reset"}.dev-tweak-name{grid-area:name}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;max-width:480px;width:90%;display:flex;flex-direction:column;gap:1rem}.modal-box h2{font-size:1.2rem}.modal-box p{font-size:.9rem;line-height:1.6;color:var(--text-muted)}.modal-actions{display:flex;gap:.75rem;margin-top:.5rem}.modal-footnote{margin-top:.9rem;font-size:.8rem;opacity:.7;font-style:italic}.modal-overlay--near-settings{justify-content:flex-start;align-items:flex-start;padding-left:210px;padding-top:112px}.modal-box--near-settings{max-width:520px}.theme-picker-modal{max-width:640px}.theme-picker-subtitle{font-size:.9rem;color:var(--text-muted);margin-bottom:.25rem}.theme-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-top:.25rem}.theme-picker-card{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .75rem;background:var(--surface-alt, var(--surface));border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;text-align:center}.theme-picker-card:hover{border-color:var(--accent);background:var(--surface-hover, var(--surface))}.theme-picker-icon{font-size:2rem}.theme-picker-name{font-size:1rem;font-weight:600}.theme-picker-desc{font-size:.78rem;color:var(--text-muted);line-height:1.4}.theme-picker-count{font-size:.72rem;color:var(--text-muted);opacity:.7}.theme-picker-empty{text-align:center;color:var(--text-muted);font-style:italic}.theme-picker-confirm{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid var(--accent);border-radius:8px;padding:1rem 1.25rem;margin-bottom:.75rem}.theme-picker-confirm p{margin-bottom:.75rem;line-height:1.5}.theme-picker-confirm-actions{display:flex;gap:.75rem}.book-picker-pack{margin-top:.75rem}.book-picker-pack-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--text-muted);margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.04em}.book-picker-pack-icon{font-size:1.1rem}.theme-library-panel{display:flex;flex-direction:column;gap:.75rem}.theme-library-panel h3{font-size:1.05rem;margin:0}.theme-library-subtitle{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin:0}.theme-library-list{display:flex;flex-direction:column;gap:.4rem}.theme-library-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;background:var(--surface-alt, var(--surface));border:1px solid var(--border);border-radius:6px}.theme-library-row--active{border-color:var(--accent);background:var(--surface-hover, var(--surface))}.theme-library-icon{font-size:1.4rem}.theme-library-name{font-weight:600;flex:1}.theme-library-badge{font-size:.7rem;padding:.15rem .5rem;background:var(--accent);color:var(--accent-fg, #fff);border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.theme-library-actions{display:flex;gap:.4rem}.notif-bell-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;overflow:visible;z-index:1500}.notif-inline{flex:1;min-width:0;overflow:visible;text-align:left;background:transparent;border:none;border-left:2px solid transparent;padding:.2rem .5rem;font-size:.8rem;font-weight:600;color:var(--text-muted);border-radius:var(--radius);transition:background .12s,box-shadow .12s,border-color .12s}.notif-inline-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-inline--filled{color:var(--text);cursor:pointer;border-left-color:var(--border)}.notif-inline--filled:hover{background:#ffffff0d}.notif-bell-btn{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.1rem .25rem;background:transparent;border:none;font-size:1.1rem;line-height:1;cursor:pointer;color:var(--text-muted);transition:color .15s}.notif-bell-btn:hover{color:var(--text)}.notif-bell-btn--active,.notif-bell-btn--active:hover{color:var(--accent-banana)}.notif-badge{position:absolute;top:-3px;right:-3px;display:inline-flex;align-items:center;justify-content:center;background:var(--error);color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;min-width:1.1em;height:1.1em;padding:0 .2em;line-height:1;border:2px solid var(--bg)}.notif-dropdown{position:absolute;top:calc(100% + .4rem);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000073;z-index:3000;max-height:360px;display:flex;flex-direction:column;animation:notifDropIn .15s ease}@keyframes notifDropIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .75rem .4rem;border-bottom:1px solid var(--border);flex-shrink:0}.notif-dropdown-title{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.notif-clear-all{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:.7rem;font-weight:600;padding:.15rem .5rem;cursor:pointer;transition:color .1s,background .1s}.notif-clear-all:hover{color:var(--text);background:#ffffff0f}.notif-empty{padding:.75rem;font-size:.8rem;color:var(--text-muted);text-align:center;margin:0}.notif-list{list-style:none;margin:0;padding:.3rem 0;overflow-y:auto;flex:1}.notif-item{display:flex;align-items:flex-start;gap:.5rem;padding:.45rem .75rem;border-left:3px solid var(--border);font-size:.8rem;font-weight:600;transition:background .1s}.notif-item:hover{background:#ffffff0a}.notif-item-msg{flex:1;line-height:1.35}.notif--tier-levelup{border-left-color:var(--accent)}.notif--tier-achievement{border-left-color:var(--success)}.notif--tier-unlock{border-left-color:#a855f7}.notif--tier-gold{border-left-color:#fbbf24}.notif-inline--filled.notif--tier-levelup{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent),0 0 14px color-mix(in srgb,var(--accent) 30%,transparent)}.notif-inline--filled.notif--tier-achievement{box-shadow:0 0 0 1px color-mix(in srgb,var(--success) 28%,transparent),0 0 14px color-mix(in srgb,var(--success) 30%,transparent)}.notif-inline--filled.notif--tier-unlock{box-shadow:0 0 0 1px color-mix(in srgb,#a855f7 28%,transparent),0 0 14px color-mix(in srgb,#a855f7 30%,transparent)}.notif-inline--filled.notif--tier-gold{box-shadow:0 0 0 1px color-mix(in srgb,#fbbf24 38%,transparent),0 0 16px color-mix(in srgb,#f59e0b 40%,transparent)}.bg-progress-help{background:#ffffff14;border:1px solid var(--border);border-radius:4px;padding:.75rem;margin-bottom:.75rem;font-size:.95rem;line-height:1.4;color:var(--text)}.bg-progress-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;padding:.75rem}.babel-widget--background{padding:.55rem .7rem}.babel-widget--background.babel-widget--pulse{animation:bgPulse 1.5s ease-in-out}@keyframes bgPulse{0%{border-color:var(--border);background:transparent;box-shadow:none}10%{border-color:#22c55e;background:#22c55e1f;box-shadow:0 0 14px #22c55e8c}50%{border-color:#22c55e;background:#22c55e1f;box-shadow:0 0 14px #22c55e8c}90%{border-color:#22c55e;background:#22c55e1f;box-shadow:0 0 14px #22c55e8c}to{border-color:var(--border);background:transparent;box-shadow:none}}.babel-widget--background .babel-widget-header{margin-bottom:.4rem;font-size:.72rem}.babel-widget--background .babel-progress-bar{margin-bottom:.4rem}.babel-text-window--background{font-size:.78rem;line-height:1.45;padding:.35rem .55rem;margin-bottom:0;max-height:3.2em;overflow:hidden}.nav-item--soon{display:flex;align-items:center;gap:.4rem;padding:.6rem 1rem;color:var(--text-muted);font-size:.85rem;cursor:default;opacity:.65}.nav-soon-badge{font-size:.65rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1px 5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.viewer-view{display:flex;flex-direction:column;height:100%;gap:0;overflow:hidden;margin-top:1.25rem}.viewer-header{padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.viewer-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.viewer-title-row h2{margin:0;font-size:1.2rem;color:var(--text)}.viewer-address-pill{background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:.2rem .75rem;font-family:var(--mono);font-size:.72rem;color:var(--text-muted);cursor:pointer;transition:color var(--transition)}.viewer-address-pill:hover{color:var(--accent)}.viewer-info-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;transition:transform var(--transition),opacity var(--transition);opacity:.7;padding:.2rem .5rem}.viewer-info-btn:hover{opacity:1;transform:scale(1.1)}.viewer-progress-row{display:flex;align-items:center;gap:.75rem}.viewer-progress-track{flex:1;height:8px;background:var(--panel);border-radius:4px;position:relative;overflow:hidden;display:flex}.viewer-progress-player{height:100%;background:var(--accent);transition:width .3s ease}.viewer-progress-monkey{height:100%;background:var(--accent-banana);transition:width .3s ease;margin-left:auto}.viewer-progress-label{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.viewer-current-pages{display:flex;gap:.5rem;flex-wrap:wrap;padding:.5rem 0}.viewer-page-pill{display:flex;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .65rem;font-size:.8rem;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),background var(--transition);min-width:0}.viewer-page-pill:hover{border-color:var(--accent);color:var(--text)}.viewer-page-pill--viewing{border-color:var(--accent-page);background:#9d7cd814;color:var(--text)}.viewer-page-pill--active{border-color:var(--accent);background:#7aa2f714;color:var(--text)}.viewer-pill-kind{white-space:nowrap}.viewer-pill-bar{width:48px;height:4px;background:#ffffff14;border-radius:99px;overflow:hidden;flex-shrink:0}.viewer-pill-fill{height:100%;background:var(--accent);border-radius:99px}.viewer-pill-pct{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.viewer-pill-playing{color:var(--accent);font-size:.7rem;margin-left:2px}.viewer-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.viewer-tab{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.82rem;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--transition),border-color var(--transition)}.viewer-tab:hover{color:var(--text)}.viewer-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.viewer-tab-playing{font-size:.7rem;color:var(--success)}.viewer-tab-setactive{font-size:.7rem;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:3px;padding:1px 5px;cursor:pointer;transition:color var(--transition)}.viewer-tab-setactive:hover{color:var(--accent)}.viewer-body{display:grid;grid-template-columns:1fr 260px;gap:0;flex:1;overflow:hidden}.viewer-page-text{padding:1rem 1.25rem;overflow-y:auto;font-family:var(--mono);font-size:.9rem;line-height:1.9;letter-spacing:.04em;word-break:break-all;border-right:1px solid var(--border)}.vpc-complete{color:var(--success)}.vpc-correct{color:var(--success);font-weight:700}.vpc-monkey-done{color:var(--accent-banana)}.vpc-monkey-active{background:#ff8c286b;color:#ffa050;font-weight:700;border-radius:2px;padding:0 1px;box-shadow:0 0 0 1px #ff8c288c}.vpc-player-cursor{background:var(--accent);color:#fff;border-radius:2px;animation:cursorPulse 1s ease infinite}.vpc-pending{color:var(--text-muted)}@keyframes cursorPulse{0%,to{opacity:1}50%{opacity:.5}}.viewer-rail{display:flex;flex-direction:column;gap:0;overflow-y:auto;padding:.75rem}.viewer-rail-section{border-bottom:1px solid var(--border);padding-bottom:.75rem;margin-bottom:.75rem}.viewer-rail-section h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 .4rem}.viewer-stat{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);padding:.15rem 0}.viewer-stat span:last-child{color:var(--text);font-weight:600;font-family:var(--mono);font-size:.78rem}.contribution-bar{height:8px;background:var(--panel);border-radius:4px;display:flex;overflow:hidden;margin:.4rem 0 .2rem}.contribution-player{background:var(--accent)}.contribution-monkey{background:var(--accent-banana)}.viewer-contrib-labels{display:flex;justify-content:space-between;font-size:.72rem}.viewer-book-bar{height:6px;background:var(--panel);border-radius:3px;overflow:hidden;margin-top:.4rem}.viewer-book-bar>div{height:100%;background:var(--accent-book);transition:width .3s ease}.viewer-monkey-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;padding:.15rem 0;color:var(--text-muted)}.viewer-monkey-word{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em}.viewer-share-btn{width:100%;margin-top:auto}.viewer-empty{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem}.viewer-hex-full{display:block;word-break:break-all;font-size:.75rem;background:var(--panel);padding:.5rem;border-radius:var(--radius);margin:.3rem 0 .75rem;color:var(--accent)}.term-coin{color:var(--success);font-weight:700}.term-banana{color:var(--accent-coin);font-weight:700}.term-monkey{color:#ffa050;font-weight:700}.term-player-blue{color:var(--accent);font-weight:700}.term-babel{color:var(--accent-page);font-weight:700}.term-upgrade{color:var(--accent-book);font-weight:700}.term-page-type{color:#e8d5b7;font-weight:700}body.theme-light .term-page-type{color:#8b6914}.term-setting-virtual-keyboard{color:var(--accent);font-weight:700}.term-setting-typing-area{color:var(--success);font-weight:700}.term-setting-page-layout{color:var(--accent-page);font-weight:700}.term-setting-number-shortcuts{color:var(--accent-coin);font-weight:700}.mode-select-hook{font-size:1.25rem;font-weight:700;color:var(--accent);text-align:center;margin:1.1rem auto!important;font-style:italic;letter-spacing:.02em}.tutorial-bullets{margin:.1rem 0 .1rem 1.1rem;padding:0;font-size:.9rem;line-height:1.8;color:var(--text-muted);list-style:disc}.tutorial-bullets li{margin:.15rem 0}.modal-box .tutorial-escalation{color:var(--text);font-weight:600;font-style:italic;border-top:1px solid var(--border);padding-top:.65rem;margin-top:0}.error-boundary-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg);color:var(--text)}.error-boundary-box{max-width:640px;width:100%;background:var(--panel);border:1px solid var(--error);border-radius:var(--radius);padding:1.5rem 1.75rem}.error-boundary-box h2{margin:0 0 .75rem;color:var(--error)}.error-boundary-box p{line-height:1.5;margin:0 0 .75rem}.error-boundary-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.error-boundary-details-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:.25rem 0}.error-boundary-details{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;font-size:.75rem;max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-word}.save-error-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--error);color:#fff;padding:.6rem 1rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:.9rem;font-weight:600;box-shadow:0 2px 8px #0000004d}.save-error-banner button{background:#00000040;border:1px solid rgba(255,255,255,.35);color:#fff;padding:.2rem .6rem;border-radius:var(--radius);font-size:.8rem;cursor:pointer}.save-error-banner button:hover{background:#0006}.mode-select-screen{display:flex;align-items:flex-start;justify-content:center;min-height:100vh;background:var(--bg);padding:3rem 2rem}.mode-select-inner{max-width:860px;width:100%;text-align:center}.mode-select-logo{max-width:600px;margin:0 auto 2.1rem;padding:.8rem 1rem;border:2px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--panel) 88%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-page) 30%,transparent),0 8px 18px #00000047;font-family:Courier New,Courier,monospace;font-size:1.24rem;line-height:1.35;letter-spacing:.04em;text-transform:lowercase;text-align:left;overflow:hidden}.mode-select-logo-line{white-space:nowrap;color:var(--text-muted)}.mode-select-logo-hit{border-radius:2px;padding:0 2px;font-weight:700;font-size:1.34em;line-height:1;text-transform:none}.mode-select-logo-hit--babel{background:#ff8c286b;color:var(--accent-page);box-shadow:0 0 0 1px #ff8c288c}.mode-select-logo-hit--monkeys{background:#ff8c286b;color:#ffa050;box-shadow:0 0 0 1px #ff8c288c}.mode-select-title{font-size:2.8rem;font-weight:800;color:var(--accent);margin:0 0 .5rem}.mode-select-intro{color:var(--text-muted);font-size:1rem;max-width:600px;margin:0 auto 1.75rem;line-height:1.7;text-align:left}.mode-select-intro p{margin:0 0 .75rem}.mode-select-intro p:last-child{margin-bottom:0}.mode-select-prompt{color:var(--text);font-size:1.15rem;font-weight:600;margin-bottom:1.25rem}.mode-select-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem}.mode-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.5rem;text-align:left;cursor:pointer;transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;gap:.6rem}.mode-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.mode-card--learning:hover{border-color:var(--accent-page)}.mode-card--full:hover{border-color:var(--accent)}.mode-card-icon{font-size:2.2rem;line-height:1}.mode-card-title{font-size:1.3rem;font-weight:700;color:var(--text);margin:0}.mode-card-desc{color:var(--text-muted);font-size:.92rem;line-height:1.55;margin:0}.mode-card-desc strong{color:var(--text)}.mode-card-bullets{list-style:none;padding:0;margin:.25rem 0 0;display:flex;flex-direction:column;gap:.3rem}.mode-card-bullets li{font-size:.85rem;color:var(--text-muted);padding-left:1.1rem;position:relative}.mode-card-bullets li:before{content:"✓";position:absolute;left:0;color:var(--success);font-size:.75rem}.mode-card-cta{display:inline-block;margin-top:.5rem;font-size:.9rem;font-weight:700;color:var(--accent)}.mode-card--learning .mode-card-cta{color:var(--accent-page)}.mode-select-note{font-size:.82rem;color:var(--text-muted)}.mode-select-note strong{color:var(--text)}@media(max-width:600px){.mode-select-cards{grid-template-columns:1fr}.mode-select-logo{font-size:1rem;padding:.65rem .75rem;margin-bottom:1.55rem}.mode-select-title{font-size:2rem}}.content-policy-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:2rem}.content-policy-card{width:100%;max-width:720px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow)}.content-policy-title{font-size:1.9rem;color:var(--text)}.content-policy-body{font-size:1rem;line-height:1.6;color:var(--text-muted)}.weak-keys-section{border-left:3px solid hsl(35,80%,55%)}.targeted-practice-callout{background:#5c410a;border:1px solid hsl(40,80%,45%);color:#fbe4b6;border-radius:6px;padding:.5rem .8rem;margin-bottom:.75rem;font-size:.9rem;font-weight:600}.weak-keys-tiles{display:flex;gap:.6rem;flex-wrap:wrap}.weak-key-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:80px;border-radius:8px;border:2px solid rgba(255,255,255,.15);cursor:default;transition:transform .15s}.weak-key-tile:hover{transform:scale(1.08)}.wkt-letter{font-size:1.6rem;font-weight:700;line-height:1;color:#fff}.wkt-acc{font-size:.8rem;font-weight:600;color:#ffffffe6;margin-top:2px}.wkt-total{font-size:.65rem;color:#ffffff8c}.settings-hint{font-size:.82rem;color:var(--text-muted);margin:0 0 .5rem}.notif-log-bar{margin-top:.75rem}.notif-log-panel{margin-top:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;overflow:hidden}.notif-log-header{padding:.4rem .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border)}.notif-log-empty{padding:.75rem;font-size:.85rem;color:var(--text-muted);text-align:center}.notif-log-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.82rem;border-bottom:1px solid var(--border)}.notif-log-row:last-child{border-bottom:none}.notif-log-type{background:var(--accent);color:#000;font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:3px;white-space:nowrap;flex-shrink:0}.notif-log-title{flex:1;color:var(--text)}.notif-log-time{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.tutorial-archive{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.tutorial-archive-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary)}.tutorial-status-locked{opacity:.5}.tutorial-status-muted{border-color:var(--text-muted)}.tutorial-status-seen{border-color:var(--accent)}.tutorial-archive-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.tutorial-archive-title{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutorial-archive-badge{font-size:.72rem;color:var(--text-muted)}.tutorial-archive-actions{display:flex;gap:.35rem;flex-shrink:0}.btn-xs{font-size:.72rem;padding:2px 8px;border-radius:4px}.dungeon-minigame{background:var(--surface, #1e1e2e);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:10px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.dungeon-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dungeon-title{font-weight:700;font-size:1rem}.dungeon-floor-badge{background:#ffffff14;border-radius:20px;padding:2px 10px;font-size:.8rem;opacity:.7}.dungeon-mult-badge{margin-left:auto;font-weight:700;font-size:.95rem;color:var(--accent, #a78bfa)}.dungeon-no-bonus{font-weight:400;font-size:.8rem;opacity:.6;margin-left:4px}.dungeon-max{color:gold;margin-left:4px}.dungeon-doors{display:flex;flex-wrap:wrap;gap:.5rem}.dungeon-door{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:64px;border-radius:8px;border:2px solid transparent;-webkit-user-select:none;user-select:none}.dungeon-door--correct{background:#86efac26;border-color:#86efac80}.dungeon-door--wrong{background:#f871711a;border-color:#f871714d}.dungeon-door-letter{font-size:1.4rem;font-weight:700;line-height:1}.dungeon-door-icon{font-size:.75rem;margin-top:4px;opacity:.7}.dungeon-door--correct .dungeon-door-icon{color:#86efac}.dungeon-door--wrong .dungeon-door-icon{color:#f87171}.dungeon-hint{font-size:.75rem;opacity:.55;margin:0;line-height:1.4}.dungeon-scores{display:flex;gap:.5rem;flex-wrap:wrap}.dungeon-score-chip{font-size:.78rem;padding:2px 10px;border-radius:20px;font-weight:600}.dungeon-score-last{background:#ffffff12;color:var(--text-muted, rgba(255,255,255,.55));border:1px solid rgba(255,255,255,.12)}.dungeon-score-best{background:#facc151f;color:#facc15;border:1px solid rgba(250,204,21,.3)}.layout-section{display:flex;flex-direction:column;gap:.5rem}.collapsible-section{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#ffffff08}.section-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ffffff0f;border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem}.section-header span{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.5rem}.section-header .btn-info{flex-shrink:0}.section-header .btn-minimize{margin-left:auto}.page-viewer-replace{cursor:text;transition:border-color .2s ease,box-shadow .2s ease}.play-view .typing-area{position:relative;z-index:3}.page-viewer-replace.viewer-focused{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent),0 0 12px color-mix(in srgb,var(--accent) 15%,transparent)}.page-viewer-replace.viewer-unfocused{border-color:color-mix(in srgb,var(--text-muted) 40%,transparent);box-shadow:none}@keyframes viewer-unfocused-pulse{0%,to{border-color:color-mix(in srgb,var(--text-muted) 40%,transparent)}50%{border-color:color-mix(in srgb,var(--text-muted) 70%,transparent)}}.page-viewer-replace.viewer-unfocused{animation:viewer-unfocused-pulse 2s ease-in-out infinite}.viewer-focus-hint{font-size:.85rem;font-weight:700;color:var(--text);background:color-mix(in srgb,var(--accent) 25%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:4px;padding:.1rem .45rem;letter-spacing:.03em;animation:viewer-unfocused-pulse 2s ease-in-out infinite;flex-shrink:0}.btn-minimize{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.25rem .5rem;font-size:.9rem;cursor:pointer;border-radius:3px;transition:all .2s ease}.btn-minimize:hover{background:#ffffff14;color:var(--text);border-color:var(--accent)}.btn-info{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.25rem .5rem;font-size:.9rem;cursor:pointer;border-radius:3px;transition:all .2s ease;margin-right:.5rem}.btn-info:hover{background:#ffffff14;color:var(--text);border-color:var(--accent)}.minimized-sections-bar{position:sticky;bottom:0;left:0;right:0;display:flex;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(to top,#1a1b26f2,#1a1b26d9);border-top:1px solid var(--border);z-index:90;flex-wrap:wrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.minimized-tab{background:#7aa2f726;border:1px solid var(--accent);color:var(--accent);padding:.4rem .75rem;font-size:.85rem;border-radius:4px;cursor:pointer;transition:all .2s ease;font-weight:500}.minimized-tab:hover{background:#7aa2f740;box-shadow:0 0 8px #7aa2f74d}.library-tab-bar{display:flex;gap:.25rem;border-bottom:2px solid var(--border);margin-bottom:1rem;flex-shrink:0}.library-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.5rem 1rem;font-size:.9rem;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;font-weight:500;white-space:nowrap}.library-tab:hover{color:var(--text)}.library-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.theme-library-dropdown-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.theme-library-select{flex:1;min-width:160px;font-size:.9rem}.upgrade-purchased{opacity:.65}.upgrade-category-tag{font-size:.65rem;color:var(--text-muted);background:var(--border);padding:1px 5px;border-radius:3px;font-weight:400}.upgrade-extra{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem}.upgrade-toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.88rem;cursor:pointer;-webkit-user-select:none;user-select:none}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.4rem;width:100%;min-width:0}.shortcut-row{display:flex;gap:.5rem;align-items:center;min-width:0}.shortcut-row select{flex:1 1 0;min-width:0;max-width:100%}.shortcut-key-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--border);border:1px solid rgba(255,255,255,.15);border-radius:4px;font-size:.82rem;font-weight:700;color:var(--text);flex-shrink:0;font-family:var(--mono)}@media(max-width:768px){.app-container{flex-direction:column}.sidebar{width:100%;flex-direction:row;padding:.5rem;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.sidebar-logo{display:none}.nav-list{display:flex}.nav-item{padding:.5rem .75rem;border-left:none;border-bottom:2px solid transparent;white-space:nowrap}.nav-item--active{border-bottom-color:var(--accent);border-left:none}.keyboard{font-size:.65rem;padding:.5rem}.key{min-width:26px;height:30px;font-size:.65rem}.current-word{font-size:1.6rem}.modal-overlay--near-settings{justify-content:center;align-items:center;padding-left:0;padding-top:0}}@media(min-width:769px)and (max-width:1050px){.app-container{max-width:100%}.sidebar{width:150px}.nav-item{padding:.55rem .85rem;font-size:.82rem}.view-container{padding:1rem;max-width:900px}.typing-area{padding:1.35rem 1.5rem}.keyboard{padding:.75rem}.key{min-width:30px;height:34px;font-size:.68rem}.current-word{font-size:1.9rem}}@media(max-width:600px){.dungeon-door{width:42px;height:54px}.dungeon-door-letter{font-size:1.1rem}}
