:root,:root[data-theme=earth]{--color-bg:#faf6ee;--color-bg-soft:#f2ead6;--color-surface:#fbf3e4;--color-surface-alt:#f3e8ce;--color-border:#dcc9a2;--color-ink:#2b1e10;--color-ink-soft:#6b5a47;--color-ink-mute:#9c8b77;--color-primary:#8b6f47;--color-primary-ink:#5b4528;--color-primary-soft:#e8d9b8;--color-accent:#b8860b;--color-accent-ink:#6b4500;--color-accent-soft:#f1e0a8;--color-success:#4caf7a;--color-success-ink:#2e6b47;--color-success-soft:#d4ecdd;--color-danger:#c0392b;--color-danger-ink:#802318;--color-danger-soft:#f4d5d0;--logo-o:#4caf7a;--logo-e:#5c6bc0;--logo-ink:#2b1e10;--glyph-a:#c0392b;--glyph-u:#a56a3c;--glyph-o:#4caf7a;--glyph-e:#5c6bc0;--glyph-c:#2b1e10;--hero-gradient:linear-gradient(155deg, #c4a876 0%, #b8860b 55%, #4caf7a 100%);--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 0 var(--color-border);--shadow-md:0 4px 12px -6px #2b1e102e;--shadow-game:0 4px 0 var(--color-primary-ink);--font-ui:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Fraunces", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--font-body:var(--font-ui);--bg:var(--color-bg);--surface:var(--color-surface);--surface-alt:var(--color-surface-alt);--ink:var(--color-ink);--ink-soft:var(--color-ink-soft);--ink-mute:var(--color-ink-mute);--border:var(--color-border);--primary:var(--color-primary);--primary-ink:var(--color-primary-ink);--primary-soft:var(--color-primary-soft);--accent:var(--color-accent);--accent-soft:var(--color-accent-soft);--success:var(--color-success);--danger:var(--color-danger);--hero-grad:var(--hero-gradient);--bg-primary:var(--color-bg);--bg-surface:var(--color-surface);--bg-elevated:var(--color-surface-alt);--bg-display:color-mix(in srgb, var(--color-surface) 72%, white);--text-primary:var(--color-ink);--text-secondary:var(--color-ink-soft);--text-muted:var(--color-ink-mute);--accent-orp:var(--color-accent);--accent-progress:var(--color-success);--accent-button:var(--color-primary);--border-focus:color-mix(in srgb, var(--color-primary) 70%, white);--warning:#c97c00;--error:var(--color-danger);--bg-main:var(--color-bg);--bg-box:var(--color-surface);--bg-app:var(--color-surface-alt);--text-main:var(--color-ink);--text-dim:var(--color-ink-soft);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=aurora]{--color-bg:#f6f3ff;--color-bg-soft:#efeafd;--color-surface:#fff;--color-surface-alt:#efeafd;--color-border:#e4dcf7;--color-ink:#1d1736;--color-ink-soft:#5b5378;--color-ink-mute:#8c85a7;--color-primary:#6b4eff;--color-primary-ink:#3d2bb3;--color-primary-soft:#e7dfff;--color-accent:#ffb020;--color-accent-ink:#8b5a00;--color-accent-soft:#ffe9c2;--color-success:#12b886;--color-success-ink:#0a8663;--color-success-soft:#c9f2e3;--color-danger:#ff5e7c;--color-danger-ink:#c2384f;--color-danger-soft:#ffd9e0;--logo-o:#0e9f6e;--logo-e:#4f7fff;--logo-ink:#1d1736;--glyph-a:#e5484d;--glyph-u:#a56a3c;--glyph-o:#0e9f6e;--glyph-e:#4f7fff;--glyph-c:#1d1736;--hero-gradient:linear-gradient(155deg, #8a6bff 0%, #4f7fff 60%, #00c2a8 100%);--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 0 var(--color-border);--shadow-md:0 4px 12px -6px #1d173626;--shadow-game:0 4px 0 var(--color-primary-ink);--font-ui:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Fraunces", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--font-body:var(--font-ui);--bg:var(--color-bg);--surface:var(--color-surface);--surface-alt:var(--color-surface-alt);--ink:var(--color-ink);--ink-soft:var(--color-ink-soft);--ink-mute:var(--color-ink-mute);--border:var(--color-border);--primary:var(--color-primary);--primary-ink:var(--color-primary-ink);--primary-soft:var(--color-primary-soft);--accent:var(--color-accent);--accent-soft:var(--color-accent-soft);--success:var(--color-success);--danger:var(--color-danger);--hero-grad:var(--hero-gradient);--bg-primary:var(--color-bg);--bg-surface:var(--color-surface);--bg-elevated:var(--color-surface-alt);--bg-display:color-mix(in srgb, var(--color-surface) 72%, white);--text-primary:var(--color-ink);--text-secondary:var(--color-ink-soft);--text-muted:var(--color-ink-mute);--accent-orp:var(--color-accent);--accent-progress:var(--color-success);--accent-button:var(--color-primary);--border-focus:color-mix(in srgb, var(--color-primary) 70%, white);--warning:#cc7c00;--error:var(--color-danger);--bg-main:var(--color-bg);--bg-box:var(--color-surface);--bg-app:var(--color-surface-alt);--text-main:var(--color-ink);--text-dim:var(--color-ink-soft);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=mint]{--color-bg:#f0faf6;--color-bg-soft:#e2f4ec;--color-surface:#fff;--color-surface-alt:#e2f4ec;--color-border:#d4eadf;--color-ink:#0e2a24;--color-ink-soft:#486057;--color-ink-mute:#7f978f;--color-primary:#0fb67a;--color-primary-ink:#086b47;--color-primary-soft:#d4f1e3;--color-accent:#ff8f4d;--color-accent-ink:#b34e1e;--color-accent-soft:#ffdcc4;--color-success:#0fb67a;--color-success-ink:#086b47;--color-success-soft:#d4f1e3;--color-danger:#ff5e7c;--color-danger-ink:#c2384f;--color-danger-soft:#ffd9e0;--logo-o:#0fb67a;--logo-e:#2f7fe5;--logo-ink:#0e2a24;--glyph-a:#e5484d;--glyph-u:#a56a3c;--glyph-o:#0fb67a;--glyph-e:#2f7fe5;--glyph-c:#0e2a24;--hero-gradient:linear-gradient(155deg, #0fb67a 0%, #2fb5b5 60%, #2f7fe5 100%);--shadow-game:0 4px 0 var(--color-primary-ink)}:root[data-theme=sunset]{--color-bg:#fff4ee;--color-bg-soft:#fce6da;--color-surface:#fff;--color-surface-alt:#fce6da;--color-border:#f3dccc;--color-ink:#2b1410;--color-ink-soft:#6b463f;--color-ink-mute:#a07e76;--color-primary:#f25c3b;--color-primary-ink:#b3321c;--color-primary-soft:#ffd9cb;--color-accent:#ffb020;--color-accent-ink:#8b5a00;--color-accent-soft:#ffe9c2;--color-success:#12b886;--color-success-ink:#0a8663;--color-success-soft:#c9f2e3;--color-danger:#e5484d;--color-danger-ink:#b3323b;--color-danger-soft:#ffd5d7;--logo-o:#0e9f6e;--logo-e:#4f7fff;--logo-ink:#2b1410;--glyph-a:#e5484d;--glyph-u:#a56a3c;--glyph-o:#0e9f6e;--glyph-e:#4f7fff;--glyph-c:#2b1410;--hero-gradient:linear-gradient(155deg, #ff8a4c 0%, #f25c3b 55%, #e03a72 100%);--shadow-game:0 4px 0 var(--color-primary-ink)}:root[data-theme=midnight]{--color-bg:#0f1021;--color-bg-soft:#1a1b35;--color-surface:#1a1b35;--color-surface-alt:#24254a;--color-border:#2e2f5c;--color-ink:#f1eeff;--color-ink-soft:#b4acd8;--color-ink-mute:#7e78a3;--color-primary:#9b87ff;--color-primary-ink:#6b4eff;--color-primary-soft:#2e2a5a;--color-accent:#ffcb47;--color-accent-ink:#d19a00;--color-accent-soft:#524426;--color-success:#3edca5;--color-success-ink:#1c9d74;--color-success-soft:#153f33;--color-danger:#ff6b85;--color-danger-ink:#c24456;--color-danger-soft:#4a1f2c;--logo-o:#3edca5;--logo-e:#7fa6ff;--logo-ink:#f1eeff;--glyph-a:#ff6b85;--glyph-u:#d19260;--glyph-o:#3edca5;--glyph-e:#7fa6ff;--glyph-c:#f1eeff;--hero-gradient:linear-gradient(155deg, #6047ff 0%, #9b87ff 50%, #3edca5 100%);--shadow-game:0 4px 0 var(--color-primary-ink)}.campaign-root{--campaign-bg:#faf6ee;--campaign-surface:#fbf3e4;--campaign-ink:#2b1e10;--campaign-ink-soft:#6b5a47;--campaign-border:#8b6f47;--campaign-gold:#b8860b;--campaign-section-fade:.4s ease}.campaign-root[data-part=foundations]{--section-accent:#4caf7a;--section-accent-soft:#4caf7a2e;--section-accent-ink:#2e6b47}.campaign-root[data-part=customizing]{--section-accent:#6c7b8b;--section-accent-soft:#6c7b8b2e;--section-accent-ink:#3a4654}.campaign-root[data-part=steno-order]{--section-accent:#b8860b;--section-accent-soft:#b8860b2e;--section-accent-ink:#6b4500}.campaign-root[data-part=clusters]{--section-accent:#00897b;--section-accent-soft:#00897b2e;--section-accent-ink:#00514a}.campaign-root[data-part=vowels]{--section-accent:#d81b60;--section-accent-soft:#d81b602e;--section-accent-ink:#7e1239}.campaign-root[data-part=briefs]{--section-accent:#e67e22;--section-accent-soft:#e67e222e;--section-accent-ink:#884614}.campaign-root[data-part=pronunciation]{--section-accent:#5c6bc0;--section-accent-soft:#5c6bc02e;--section-accent-ink:#353f75}.campaign-root[data-part=practice]{--section-accent:#1f8f4a;--section-accent-soft:#1f8f4a2e;--section-accent-ink:#145c2f}.campaign-root{--tile-T:#d7c9a8;--tile-T-fg:#2b1e10;--tile-M:#c0392b;--tile-M-fg:#fff;--tile-R:#1f4fff;--tile-R-fg:#fff;--tile-W:#27ae60;--tile-W-fg:#fff;--tile-S:#b8860b;--tile-S-fg:#fff;--tile-E:#6b5b95;--tile-E-fg:#fff;--tile-Sp:#00897b;--tile-Sp-fg:#fff;--tile-Re:#e67e22;--tile-Re-fg:#2b1e10;--tile-C:#6c7b8b;--tile-C-fg:#fff;--tile-L:#d81b60;--tile-L-fg:#fff}:root{--container:1280px;--desktop-sidebar-width:72px;--radius-sm:14px;--radius-md:18px;--radius-lg:22px;--radius-xl:28px;--shadow-card:0 2px 0 #1c104c17, 0 18px 38px #26135c1f;--shadow-soft:0 10px 26px #19123a1a;--game-shadow:0 4px 0 var(--primary-ink)}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-ui);color:var(--ink);background:radial-gradient(circle at 12% 14%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 36%), radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 32%), var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}.app-shell{background:var(--bg);grid-template-columns:1fr;width:100%;min-height:100dvh;display:grid;overflow:hidden}.app-sidebar-nav{display:none;container-type:inline-size}.app-sidebar-bottom{border-top:1px solid var(--border);background:0 0;margin-top:auto;padding-top:12px;padding-bottom:8px}.app-body{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.app-topbar{background:color-mix(in srgb, var(--surface) 88%, transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:12;justify-content:space-between;align-items:center;height:76px;padding:14px 14px 10px;display:flex}.app-topbar-brand{align-items:center;gap:12px;min-width:0;display:inline-flex}.app-topbar-meta{gap:2px;display:grid}.app-topbar-title{font-family:var(--font-display);font-size:1.05rem;line-height:1}.app-topbar-subtitle{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);white-space:normal;font-size:.72rem;line-height:1.05}.app-brand-text{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-transform:lowercase;font-size:1.1rem;font-weight:700}.app-main{flex:1;min-height:0;padding:14px 12px 32px;overflow:auto}.app-main>*{width:100%;margin:0 auto}.app-main[data-mode=campaign]{padding:0;overflow:hidden}.app-main[data-mode=campaign]>*{height:100%}.app-settings-backdrop,.settings-modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:39;background:#14141e66;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.app-settings-drawer,.settings-modal{background:var(--bg-card,var(--surface));border:1px solid var(--border);z-index:40;border-radius:14px;flex-direction:column;width:calc(100% - 32px);max-width:720px;max-height:90vh;display:flex;position:fixed;top:5vh;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 64px -8px #0000004d}.settings-modal__inner{background:0 0;border:0;border-radius:0;flex-direction:column;flex:auto;width:100%;min-height:0;padding:0;display:flex;position:relative}.settings-modal__tabs{border-bottom:1px solid var(--border);padding:12px 16px 0}.settings-modal__body{flex:auto;gap:12px;min-height:0;padding:16px;display:grid;overflow-y:auto}.settings-modal__close{z-index:1;position:absolute;top:8px;right:8px}.app-tabbar-mobile{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-soft);z-index:30;border-radius:20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:7px;display:grid;position:fixed;bottom:8px;left:10px;right:10px}.app-settings-dock{z-index:31;display:none;position:fixed;bottom:66px;left:50%;transform:translate(-50%)}.mode-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:44px;padding:8px 6px;font-weight:700;display:inline-flex}.mode-icon{font-size:.92rem;line-height:1}.mode-btn .mode-label{letter-spacing:.02em;font-size:.7rem}.mode-btn-active{background:color-mix(in srgb, var(--primary) 20%, transparent);color:var(--ink)}.settings-toggle{border-radius:14px;width:44px;height:44px}.settings-toggle-btn{justify-content:center;align-items:center;gap:0;width:44px;min-width:44px;min-height:44px;padding:0;display:inline-flex}.settings-toggle-icon{font-size:.95rem}.settings-mobile-btn{padding-inline-start:0;padding-inline-end:0}.settings-mobile-btn .mode-label{display:none}.control-btn{border:1px solid color-mix(in srgb, var(--border) 85%, transparent);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);cursor:pointer;min-height:44px;padding:10px 16px;font-size:.9rem;font-weight:700;transition:transform .12s,box-shadow .12s,border-color .12s}.control-btn:hover{border-color:color-mix(in srgb, var(--primary) 36%, var(--border));box-shadow:0 8px 14px color-mix(in srgb, var(--primary) 14%, transparent);transform:translateY(-1px)}.control-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.control-btn.primary-btn{background:var(--primary);color:#fff;box-shadow:var(--game-shadow);border:0}.control-btn.primary-btn:hover{box-shadow:0 5px 0 var(--primary-ink)}.control-btn.icon-btn{min-width:44px;padding:0}.theme-picker{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.theme-tile{border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;min-height:86px;box-shadow:var(--shadow-sm);border-radius:16px;align-content:start;gap:10px;padding:12px;display:grid}.theme-tile-active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent)}.theme-tile-preview{background:var(--surface-alt);border-radius:12px;align-items:center;height:32px;padding:8px;display:flex;overflow:hidden}.theme-tile-dot{border-radius:999px;width:16px;height:16px;box-shadow:inset 0 0 0 2px #ffffff80}.theme-tile-label{color:var(--ink);font-size:.92rem;font-weight:700}.theme-tile[data-theme-option=aurora] .theme-tile-preview{background:linear-gradient(135deg,#ece3ff 0%,#d9f0ff 100%)}.theme-tile[data-theme-option=aurora] .theme-tile-dot{background:linear-gradient(135deg,#6b4eff 0%,#0e9f6e 100%)}.theme-tile[data-theme-option=mint] .theme-tile-preview{background:linear-gradient(135deg,#dbf7ea 0%,#dcf0ff 100%)}.theme-tile[data-theme-option=mint] .theme-tile-dot{background:linear-gradient(135deg,#0fb67a 0%,#2f7fe5 100%)}.theme-tile[data-theme-option=sunset] .theme-tile-preview{background:linear-gradient(135deg,#ffe3d5 0%,#ffd8ea 100%)}.theme-tile[data-theme-option=sunset] .theme-tile-dot{background:linear-gradient(135deg,#f25c3b 0%,#e03a72 100%)}.theme-tile[data-theme-option=midnight] .theme-tile-preview{background:linear-gradient(135deg,#25264f 0%,#153f33 100%)}.theme-tile[data-theme-option=midnight] .theme-tile-dot{background:linear-gradient(135deg,#9b87ff 0%,#3edca5 100%)}.correct-btn,.control-btn.success-btn{background:var(--success);color:#fff;box-shadow:0 4px 0 color-mix(in srgb, var(--success) 64%, black);border:0}.control-btn.success-btn:hover{box-shadow:0 5px 0 color-mix(in srgb, var(--success) 72%, black)}.control-btn-shortcut{text-align:left;justify-content:flex-start;padding-bottom:16px;padding-right:48px;position:relative}.control-btn-shortcut-key{color:color-mix(in srgb, currentColor 72%, transparent);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:800;line-height:1;position:absolute;bottom:7px;right:10px}.incorrect-btn{background:var(--danger);color:#fff;box-shadow:0 4px 0 color-mix(in srgb, var(--danger) 64%, black);border:0}.glyph-stage{width:min(100%, var(--glyph-stage-size));aspect-ratio:1;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.glyph-stage-lg{--glyph-stage-size:520px}.glyph-stage-md{--glyph-stage-size:420px}.glyph-canvas{display:block;width:100%!important;height:100%!important}.splash-screen{text-align:center;background:var(--bg);place-items:center;gap:10px;height:100dvh;display:grid}.splash-title{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:max(2rem,min(3.4vw,3.1rem))}.splash-dots{gap:8px;display:flex}.splash-dots .dot{background:var(--primary);border-radius:999px;width:8px;height:8px;animation:1.2s ease-in-out infinite splash-bounce}.splash-dots .dot:nth-child(2){animation-delay:.1s}.splash-dots .dot:nth-child(3){animation-delay:.2s}@keyframes splash-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.splash-text{color:var(--ink-soft)}.show-mode{gap:14px;width:100%;max-width:720px;margin:0 auto;display:grid}.show-layout{grid-template-columns:1fr;gap:16px;display:grid}.show-input-panel,.show-glyph-panel{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:16px}.show-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin-bottom:12px;display:inline-grid}.show-tab{border:1px solid var(--border);background:var(--surface-alt);border-radius:14px;min-height:44px;font-weight:700}.show-tab-active{background:var(--primary);border-color:var(--primary);color:#fff}.chord-input{gap:8px;display:grid}.chord-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);font-size:.72rem;font-weight:700}.chord-field,.text-area,.settings-row input[type=number],.settings-row select,.settings-row input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;color:var(--ink)}.chord-field{text-align:center;font-family:var(--font-mono);padding:10px 14px;font-size:1.25rem}.show-translation,.parsed-keys-panel,.quick-examples,.learn-show-callout,.catalog-section,.catalog-subsection,.read-playback-controls-col,.playback-controls,.lesson-card-display,.credit-modal,.story-browser,.read-input-view,.settings-panel,.sprint-result,.sprint-shell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.show-translation,.parsed-keys-panel,.quick-examples{margin-top:10px;padding:12px}.translation-label{color:var(--ink-soft);font-size:.82rem}.translation-word{font-family:var(--font-display);font-size:1.2rem}.key-chips,.example-chips{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.key-chip,.example-chip{border:1px solid var(--border);background:var(--surface-alt);font-family:var(--font-mono);border-radius:999px;padding:5px 10px;font-size:.75rem}.key-chip-left,.key-chip-right,.key-chip-vowel,.key-chip-special{color:var(--ink)}.show-glyph-panel{place-items:center;gap:12px;display:grid}.read-mode{width:100%;max-width:720px;margin:0 auto;display:grid}.read-shell{gap:14px}.read-shell-header{padding:16px;display:grid}.read-shell-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.read-shell-title,.read-section-title{font-family:var(--font-display);margin:0}.read-shell-title{font-size:1.3rem}.read-muted-text{color:var(--ink-soft);margin:6px 0 0}.read-shell-content,.read-shell-stack,.read-workspace{gap:14px;display:grid}.read-shell-card,.read-workspace-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-sizing:border-box;min-width:0;max-width:100%;padding:14px}.read-section-tab{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);min-height:42px;color:var(--ink);font-weight:700}.read-section-tab.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.read-status-note{color:color-mix(in srgb, var(--accent) 55%, var(--ink));opacity:0;grid-template-rows:0fr;margin:0;padding-top:0;font-size:.84rem;transition:grid-template-rows .25s,opacity .2s,padding-top .25s;display:grid}.read-status-note[data-visible]{opacity:1;grid-template-rows:1fr;padding-top:8px}.read-status-note>span{overflow:hidden}.read-shell-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.read-home-layout{gap:14px;display:grid}.read-home-preview-strip{justify-content:flex-start}.read-home-summary-tile-status{gap:10px;display:grid}.read-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.read-home-summary{gap:10px;padding:10px 12px;display:grid}.read-home-summary-grid{gap:12px;display:flex}.read-home-summary-tile{border-radius:var(--radius-sm);background:var(--surface-alt);border:1px solid var(--border);flex:1;gap:6px;padding:10px 12px;display:grid}.library-progress-pill{background:color-mix(in srgb, var(--accent-soft,var(--surface-alt)) 70%, transparent);color:var(--ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.read-home-summary-tile-status{background:color-mix(in srgb, var(--accent-soft) 55%, var(--surface-alt))}.read-home-summary-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:.72rem}.read-home-summary-value{font-size:.98rem;line-height:1.2}.read-home-panel{gap:12px;display:grid}.read-home-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.read-home-cover-strip,.read-cover-strip{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.read-cover-card{border:1px solid var(--border);background:var(--surface-alt);border-radius:10px;flex:none;justify-content:stretch;align-items:stretch;width:68px;height:98px;padding:0;display:inline-flex;overflow:hidden}.read-cover-card-small{width:64px;height:92px}.read-cover-image,.read-cover-fallback{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.read-cover-image{object-fit:cover}.read-cover-fallback{background:linear-gradient(145deg, color-mix(in srgb, var(--primary) 35%, var(--surface-alt)), color-mix(in srgb, var(--accent) 22%, var(--surface-alt)));color:var(--ink);font-family:var(--font-display);font-size:1.05rem;font-weight:700}.read-home-quickopen{gap:12px;display:grid}.read-home-divider{border-top:1px solid var(--border);width:100%;margin:6px 0}.read-card-corner-btn{border-radius:999px;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;padding:0;font-size:1rem}.player-strip{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 1px 0 var(--color-border);align-items:center;gap:10px;margin-bottom:12px;padding:8px 14px;display:flex}.player-strip--compact{margin-bottom:8px;padding:6px 10px}.player-strip__avatar{background:var(--color-surface);cursor:pointer;border:2px solid;border-radius:50%;flex:0 0 40px;place-items:center;padding:0;display:grid}.player-strip__main{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.player-strip__line{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.player-strip__name{white-space:nowrap;text-overflow:ellipsis;color:var(--color-ink);font-size:14px;font-weight:700;overflow:hidden}.player-strip__chips{flex-wrap:wrap;gap:6px;display:inline-flex}.player-strip__chip{background:var(--color-accent-soft);color:var(--color-accent-ink);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.player-strip__xp-col{flex-direction:column;flex:0 0 140px;gap:4px;min-width:0;display:flex}.player-strip__xp{background:color-mix(in srgb, var(--color-border) 70%, transparent);border-radius:999px;max-width:140px;height:6px;position:relative;overflow:hidden}.player-strip__xp-fill{background:linear-gradient(90deg, var(--color-success,#4caf7a) 0%, var(--color-accent,#b8860b) 100%);border-radius:999px;transition:width .6s;position:absolute;top:0;bottom:0;left:0;right:auto}.player-strip__context{color:var(--color-ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-style:italic;overflow:hidden}@media (max-width:480px){.player-strip__name{font-size:13px}.player-strip__chip{font-size:11px}.player-strip__xp-col{flex:0 0 96px}.player-strip__xp{max-width:96px}.player-strip__context{display:none}}.home-mode{gap:14px;width:100%;max-width:720px;margin:0 auto;padding:6px 0 24px;display:grid}.home-mode__strip-row{flex-direction:column;gap:8px;display:flex}.home-mode__strip-row .player-strip{margin-bottom:0}.home-show-panel{background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);gap:12px;padding:14px 16px;display:grid;position:relative}.home-show-panel__expand{color:var(--primary);cursor:pointer;z-index:1;background:0 0;border:0;border-radius:8px;padding:4px 8px;font-size:.82rem;font-weight:700;position:absolute;top:8px;right:8px}.home-show-panel__expand:hover{background:color-mix(in srgb, var(--primary) 10%, transparent)}.home-show-panel__body{grid-template-columns:1fr;align-items:center;gap:14px;display:grid}.home-show-panel__input-col{gap:10px;display:grid}.home-show-panel__translation{background:var(--surface-alt);border-radius:var(--radius-sm);align-items:baseline;gap:8px;padding:8px 12px;display:flex}.home-show-panel__presets{flex-wrap:wrap;gap:6px;display:flex}.home-show-panel__glyph-col{place-items:center;display:grid}.home-show-panel__stage{--glyph-stage-size:244px;padding:6px}@media (min-width:560px){.home-show-panel__body{grid-template-columns:minmax(0,1fr) auto}}.home-mode__entries{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:560px){.home-mode__entries{grid-template-columns:1fr 1fr}}.home-mode__entry{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;box-shadow:var(--shadow-soft);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;transition:transform .12s,box-shadow .16s,border-color .16s;display:grid;position:relative}.home-mode__entry:hover{border-color:color-mix(in srgb, var(--primary) 38%, var(--border));box-shadow:0 12px 24px color-mix(in srgb, var(--primary) 18%, transparent);transform:translateY(-1px)}.home-mode__entry-icon{background:var(--surface-alt);width:44px;height:44px;color:var(--primary);border-radius:14px;justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.home-mode__entry--game .home-mode__entry-icon{background:color-mix(in srgb, var(--primary) 14%, var(--surface-alt));color:var(--primary)}.home-mode__entry--read .home-mode__entry-icon{background:color-mix(in srgb, var(--accent) 14%, var(--surface-alt));color:var(--accent)}.home-mode__entry-body{gap:2px;min-width:0;display:grid}.home-mode__entry-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;line-height:1.1}.home-mode__entry-sub{color:var(--ink-soft);font-size:.8rem;line-height:1.25}.home-mode__entry-arrow{color:var(--ink-soft);font-size:1.2rem;transition:transform .16s}.home-mode__entry:hover .home-mode__entry-arrow{color:var(--primary);transform:translate(4px)}.home-mode .home-leaderboard{max-width:100%;margin:0}.library-drive-banner{border-left:4px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--color-ink);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.library-drive-banner__body{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.library-drive-banner__icon{color:var(--color-accent-ink);font-size:18px;line-height:1}.library-drive-banner__title{font-size:14px;font-weight:700;line-height:1.2}.library-drive-banner__hint{color:var(--color-ink-soft);margin-top:2px;font-size:13px}.library-drive-banner__cta{border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;flex:none;padding:8px 16px;font-size:13px;font-weight:700}.library-drive-banner__cta:hover{background:var(--color-primary-ink)}.read-library-setup{padding:0;overflow:hidden}.read-library-setup-summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 12px;font-weight:700;list-style:none;display:inline-flex}.read-library-setup-summary::-webkit-details-marker{display:none}.read-library-setup-dot{width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb, currentColor 12%, transparent);background:currentColor;border-radius:999px}.read-library-setup-ready{color:#198754}.read-library-setup-missing{color:#c0392b}.read-library-setup-body{padding:0 14px 14px}.read-library-shelf{gap:12px;display:grid}.read-library-full-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.read-store-grid{grid-template-columns:repeat(auto-fill,minmax(150px,170px));justify-content:start;gap:10px;min-width:0;display:grid}.read-store-item.selected{outline:2px solid color-mix(in srgb, var(--primary) 40%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 12%, transparent), var(--shadow-card)}.read-store-detail{border-radius:var(--radius-md);border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, transparent), var(--surface));grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:14px;padding:14px;display:grid}.read-store-detail-cover{border:1px solid var(--border);background:var(--surface-alt);border-radius:16px;min-height:260px;overflow:hidden}.read-store-detail-image{object-fit:cover;width:100%;height:100%}.read-store-detail-body{gap:12px;min-width:0;display:grid}.read-store-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.read-store-detail-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 6px;font-size:.72rem}.read-store-detail-title{font-family:var(--font-display);margin:0;font-size:max(1.5rem,min(2.4vw,2.2rem));line-height:1.04}.read-store-detail-meta,.read-store-detail-description,.read-store-detail-preview{color:var(--ink-soft);margin:0}.read-store-detail-description{color:var(--ink);font-size:1rem}.read-store-detail-preview{background:var(--surface-alt);border:1px solid var(--border);white-space:pre-wrap;border-radius:14px;max-height:min(38dvh,24rem);padding:12px;line-height:1.6;overflow:auto}.read-store-detail-badges{flex-wrap:wrap;gap:8px;display:flex}.read-store-detail-badge{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:.74rem;font-weight:700;display:inline-flex}.read-store-detail-badge.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.read-store-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.read-store-detail-actions .control-btn{flex:180px}.read-store-imported-btn{background:color-mix(in srgb, #198754 22%, var(--surface));border-color:color-mix(in srgb, #198754 45%, var(--border));color:color-mix(in srgb, #198754 82%, var(--ink))}.read-store-imported-btn:disabled{opacity:1;cursor:not-allowed}.read-store-actions,.read-library-actions,.read-quick-actions,.read-reader-badge-row,.read-mode-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.text-input-header-actions{align-items:center;gap:6px;display:inline-flex}.text-input-header-actions .control-btn{height:36px;min-height:36px}.read-source-drive-icon{display:inline-flex}.read-source-drive-icon button{height:36px;min-height:36px}.read-story-master-toggle>summary{font-weight:700}.read-picker-stack{gap:8px;display:grid}.read-store-filters{gap:10px;margin-top:12px;display:grid}.read-store-page-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.read-store-page-actions{flex-wrap:wrap;gap:8px;display:inline-flex}.read-store-filters select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:8px 10px}.read-store-cover-wrap{border:1px solid var(--border);background:var(--surface-alt);cursor:pointer;border-radius:10px;width:110px;height:160px;margin-bottom:10px;padding:0;overflow:hidden}.read-store-cover{object-fit:cover;width:100%;height:100%}.read-store-view-toggle{gap:6px;margin:8px 0 12px;display:inline-flex}.read-store-view-toggle .read-mode-switch-btn{justify-content:center;align-items:center;min-width:34px;height:30px;padding:0 8px;font-size:.95rem;display:inline-flex}.read-store-item{flex-direction:column;gap:8px;padding:10px;display:flex}.read-store-main{flex-direction:column;gap:4px;min-width:0;display:flex}.read-store-title-btn{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.read-store-title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.9rem;line-height:1.25;overflow:hidden}.read-store-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.72rem;overflow:hidden}.read-store-actions-icons{justify-content:flex-end;margin-top:auto}.icon-btn{justify-content:center;align-items:center;width:30px;min-width:30px;height:30px;padding:0;font-size:.95rem;display:inline-flex}.read-store-grid-list{flex-direction:column;gap:8px;display:flex}.read-store-item-list{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.read-store-item-list .read-store-main{gap:2px}.read-store-item-list .read-store-actions-icons{margin-top:0}.read-store-metadata-list{gap:8px;margin:0;display:grid}.read-store-metadata-row{gap:4px;display:grid}.read-store-metadata-row dt{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:700}.read-store-metadata-row dd{color:var(--ink);margin:0}.read-library-actions{align-items:stretch}.read-reader-meta{gap:8px;display:grid}.read-reader-title{font-size:1.1rem;font-weight:700}.read-source-badge,.read-engine-badge{border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.74rem;font-weight:700}.read-source-badge{background:var(--surface-alt)}.read-engine-badge{background:var(--accent-soft)}.read-reader-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.read-rsvp-stage{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt);align-content:center;justify-items:center;gap:8px;min-height:180px;padding:18px;display:grid}.read-rsvp-word{font-size:max(1.8rem,min(4.8vw,3rem));font-family:var(--font-display);text-align:center;font-weight:700}.read-rsvp-word-fixed{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;width:min(100%,20ch);display:grid}.rsvp-before,.rsvp-after{color:var(--ink-main)}.read-rsvp-word-fixed .rsvp-before{text-align:right}.read-rsvp-word-fixed .rsvp-after{text-align:left}.rsvp-pivot{color:var(--accent,#6366f1);justify-self:center;font-weight:900}.read-rsvp-context{color:var(--ink-soft);min-height:1.2rem}.read-page-view{border:1px solid var(--border);border-radius:var(--radius-md);background:radial-gradient(circle at top, color-mix(in srgb, var(--accent-soft) 35%, var(--surface)) 0%, var(--surface-alt) 38%, var(--surface) 100%);gap:16px;min-width:0;padding:18px;display:grid}.read-page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.read-page-toolbar-meta{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.read-page-sheet{border-radius:calc(var(--radius-md) + 2px);border:1px solid color-mix(in srgb, var(--border) 75%, var(--surface));background:linear-gradient(#fffcf5f5 0%,#fcf8eff5 100%);height:min(72dvh,46rem);min-height:max(20rem,min(56dvh,38rem));max-height:none;padding:24px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffa6,0 18px 38px #0f172a14}.read-page-sheet-inner{color:#2b2116;white-space:pre-wrap;max-width:72ch;margin:0 auto;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,serif;font-size:max(1.02rem,min(1.1vw + .82rem,1.18rem));line-height:1.9;overflow:hidden}.read-page-highlight{border-radius:.18em;padding:0 .08em;box-shadow:inset 0 -1px #00000014}.read-mode-switch-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);min-height:38px;color:var(--ink);padding:0 12px}.read-mode-switch-btn.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.read-auxiliary-panel{border-style:dashed}.read-input-view{width:100%;max-width:none;margin-inline-start:auto;margin-inline-end:auto;padding:14px}.story-browser{gap:18px;padding:18px;display:grid}.story-browser-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.story-browser-list{gap:14px;display:grid}.story-browser .catalog-section{padding:0}.story-browser .catalog-section>summary{padding:16px 18px}.story-browser .catalog-lesson-list{gap:12px;padding:14px 16px 16px}.story-browser .catalog-lesson-card{padding:16px}.story-browser .catalog-lesson-title{margin-bottom:6px}.story-browser .catalog-lesson-count{margin-top:6px}.read-source-buttons{grid-template-columns:1fr;gap:10px;width:100%;display:grid}.read-source-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);width:100%;min-height:48px;font-weight:700}.read-btn{justify-self:start;width:auto;min-width:140px}.quick-open-import-actions{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;margin-top:10px;display:flex}.text-input-container{gap:10px;display:grid}.text-area{resize:vertical;min-height:180px;padding:14px;line-height:1.5}.read-playback-view,.read-playback-grid{gap:14px;display:grid}.read-playback-glyph-col{place-items:center;gap:12px;display:grid}.read-playback-controls-col{gap:12px;padding:14px;display:grid}.read-wpm-pill{background:var(--accent-soft);color:color-mix(in srgb, var(--accent) 60%, black);letter-spacing:.07em;border-radius:999px;justify-self:start;padding:6px 12px;font-size:.78rem;font-weight:800}.playback-controls{padding:12px}.controls-top,.progress-row,.transport-buttons,.speed-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress-bar-container{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;flex:1;height:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--primary));height:100%}.speed-slider{width:min(220px,42vw)}.subtitle-bar{text-align:center;gap:6px;display:grid}.subtitle-context{color:var(--ink-soft);white-space:nowrap;max-width:100%;font-size:max(.95rem,min(2.3vw,1.2rem));overflow:hidden}.subtitle-word-active{color:var(--ink);font-weight:700}.orp-char{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1.5px}.subtitle-solo{font-size:max(1.2rem,min(3vw,1.9rem));font-weight:700;font-family:var(--font-display)}.subtitle-outline{font-family:var(--font-mono);color:var(--ink-soft);font-size:.84rem}.learn-mode{gap:14px;display:grid}.home-profile-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);gap:12px;padding:14px;display:grid}.home-profile-main{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.home-avatar-ring{border:2px solid var(--primary);background:color-mix(in srgb, var(--primary-soft) 68%, var(--surface));cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:999px;flex:none;place-items:center;width:66px;height:66px;padding:0;display:grid;overflow:hidden}.home-avatar{color:#fff;border-radius:999px;place-items:center;width:52px;height:52px;font-weight:700;display:grid;position:relative}.home-avatar-hat{background:#000000bf;border-radius:999px;width:26px;height:9px;position:absolute;top:-2px}.home-avatar-eyes{letter-spacing:2px;font-size:9px}.home-avatar-mustache{font-size:10px;position:absolute;bottom:8px}.home-profile-meta{gap:4px;min-width:0;display:grid}.home-profile-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.18rem}.home-profile-stats,.home-xp-caption,.home-stats-panel span,.home-stats-panel strong{color:var(--ink-soft)}.home-xp-track{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;width:min(440px,100%);height:10px;overflow:hidden}.home-xp-fill{background:linear-gradient(90deg, var(--accent), var(--primary));height:100%}.home-xp-caption{font-size:.82rem}.home-stat-row{flex-wrap:wrap;gap:8px;display:flex}.home-stat-chip{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;padding:6px 10px;font-size:.78rem}.curriculum-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.curriculum-switcher-pill{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;min-height:38px;padding:8px 14px;font-weight:700}.curriculum-switcher-pill-content{align-items:center;gap:8px;display:inline-flex}.curriculum-switcher-lock{font-size:.82rem;line-height:1}.curriculum-switcher-pill[aria-disabled=true]{opacity:.55}.curriculum-switcher-pill-active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--surface));color:var(--ink)}.curriculum-panel{gap:12px;display:grid}.curriculum-grid{grid-template-columns:repeat(auto-fit,minmax(max(118px,min(24vw,168px)),1fr));gap:8px}.curriculum-grid .lesson-card{padding:10px}.curriculum-grid .catalog-lesson-title{font-size:.92rem}.curriculum-grid .catalog-lesson-desc,.curriculum-grid .catalog-lesson-count{font-size:.72rem}.curriculum-section-stack{gap:10px;padding-top:14px;display:grid}.curriculum-lock-banner{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--ink-soft);border-radius:16px;padding:12px 14px;font-size:.88rem}.learn-lock-toast{left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px) + 78px);z-index:80;border:1px solid color-mix(in srgb, var(--primary) 24%, var(--border));background:color-mix(in srgb, var(--surface) 94%, white);max-width:460px;box-shadow:var(--shadow-soft);border-radius:18px;gap:10px;margin-left:auto;padding:12px;display:grid;position:fixed}.learn-lock-toast-copy{color:var(--ink);font-size:.92rem;line-height:1.45}.learn-lock-toast-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.learn-lock-toast-dismiss{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;text-decoration:underline}.home-dashboard,.home-main-column,.home-side-column{gap:14px;display:grid}.home-main-column{order:2}.home-side-column{order:1}.home-path-track-window{gap:10px}.home-path-column,.home-main-column,.home-stats-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:14px}.home-main-column{background:0 0;border:0;padding:0}.home-stats-panel{gap:14px;display:grid}.learn-show-callout{gap:12px;margin-top:16px;margin-bottom:10px;padding:16px;display:grid}.learn-show-callout .lesson-list-title{font-size:max(1.1rem,min(2.2vw,1.5rem))}.learn-show-callout .control-btn{text-align:center;justify-content:center;justify-self:start;width:auto;padding:12px 14px;line-height:1.35}.catalog-lesson-title{font-weight:700;line-height:1.3}.catalog-lesson-desc{color:var(--ink-soft);margin-top:4px;font-size:.84rem;font-style:italic;line-height:1.35}.catalog-lesson-count{color:var(--ink-soft);margin-top:4px;font-size:.78rem}.home-dashboard-head{margin-bottom:12px}.lesson-list-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:max(1.3rem,min(2.8vw,2rem))}.level-desc{color:var(--ink-soft);margin:6px 0 0;line-height:1.5}.home-path-track{gap:16px;display:grid}.current-campaign-card{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:100%;box-shadow:0 4px 14px -8px color-mix(in srgb, var(--color-ink) 20%, transparent);cursor:pointer;font:inherit;color:inherit;padding:16px 18px;transition:transform .16s,box-shadow .16s;display:block}.current-campaign-card:hover{box-shadow:0 8px 22px -10px color-mix(in srgb, var(--color-ink) 30%, transparent);transform:translateY(-1px)}.current-campaign-card__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.current-campaign-card__chip{letter-spacing:.08em;text-transform:uppercase;color:var(--color-success-ink);background:var(--color-success-soft);border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700}.current-campaign-card__stars{color:var(--color-accent-ink);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.current-campaign-card__title{margin:8px 0 2px;font-size:1.1rem;font-weight:700;line-height:1.2}.current-campaign-card__subtitle{color:var(--color-ink-soft);margin:0;font-size:.86rem}.current-campaign-card__cta{color:var(--color-primary);margin-top:10px;font-size:.86rem;font-weight:600}.home-path-node{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt);text-align:left;cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.home-path-node-dot{background:var(--primary);color:#fff;width:34px;height:34px;box-shadow:var(--game-shadow);border-radius:12px;place-items:center;font-weight:800;display:grid}.home-path-node-copy{gap:2px;display:grid}.home-path-node-copy strong{font-size:.95rem}.sprint-detail-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);gap:12px;padding:14px;display:grid}.sprint-detail-back{justify-self:start}.sprint-detail-title-row{align-items:center;gap:12px;display:flex}.sprint-detail-icon{border:1px solid var(--border);background:var(--surface-alt);width:62px;height:62px;box-shadow:var(--shadow-sm);border-radius:18px;place-items:center;display:grid}.sprint-detail-icon svg{width:44px;height:44px}.sprint-avatar-mark{width:52px;height:52px}.sprint-avatar-mark svg{width:28px;height:28px}.sprint-rail-shell{gap:16px;display:grid}.sprint-rail-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.sprint-rail-eyebrow{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.74rem}.sprint-rail-title{font-family:var(--font-display);letter-spacing:-.02em;margin:4px 0 0;font-size:max(1.1rem,min(2vw,1.6rem))}.sprint-category-rail{gap:10px;display:grid}.sprint-category-window{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.sprint-category-window>summary{cursor:pointer;border-bottom:1px solid #0000;padding:12px;list-style:none}.sprint-category-window[open]>summary{border-bottom-color:var(--border)}.sprint-category-summary{gap:8px;display:grid}.sprint-category-heading{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.84rem;font-weight:700}.sprint-category-stats{margin-top:2px}.sprint-category-lock{font-size:.8rem}.sprint-category-window-locked .sprint-lesson-rail{opacity:.7}.sprint-category-bars{gap:8px;display:grid}.sprint-category-bar-row{grid-template-columns:minmax(0,96px) auto;justify-content:start;align-items:center;gap:8px;display:grid}.sprint-category-bar-label{color:var(--ink-soft);white-space:nowrap;font-size:.78rem}.sprint-lesson-rail{grid-template-columns:repeat(auto-fit,minmax(170px,188px));justify-content:start;gap:10px;padding:10px;display:grid}.sprint-lesson-tile{border:1px solid var(--border);background:var(--surface);text-align:left;box-shadow:var(--shadow-sm);cursor:pointer;aspect-ratio:1;border-radius:18px;align-content:start;gap:8px;width:100%;min-width:0;min-height:156px;padding:12px;display:grid}.sprint-lesson-tile-locked{opacity:.6}.sprint-lesson-tile-title{overflow-wrap:anywhere;font-size:.98rem;font-weight:700}.sprint-lesson-tile-desc,.sprint-lesson-tile-meta{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.82rem;line-height:1.4}.sprint-lesson-tile-bars{gap:8px;margin-top:auto;display:grid}.sprint-lesson-tile-bar-row{grid-template-columns:minmax(0,72px) auto;justify-content:start;align-items:center;gap:8px;display:grid}.sprint-lesson-tile-bar{background:var(--border);border-radius:999px;width:min(72px,20vw);height:5px;overflow:hidden}.sprint-lesson-tile-bar-stages .sprint-lesson-tile-bar-fill{background:var(--primary)}.sprint-lesson-tile-bar-fill{background:var(--accent,#6366f1);border-radius:999px;height:100%;transition:width .3s}.sprint-lesson-tile-bar-fill-stages{background:var(--primary)}.sprint-lesson-tile-bar-fill-stars,.sprint-category-progress-bar-stars .sprint-category-progress-fill,.sprint-lesson-tile-bar-stars .sprint-lesson-tile-bar-fill,.sprint-category-progress-bar-stars .sprint-category-progress-fill{background:color-mix(in srgb, #f59e0b 72%, var(--accent))}.sprint-lesson-tile-bar-label{color:var(--ink-soft);white-space:nowrap;font-size:.76rem}.sprint-category-progress-bar{background:var(--border);border-radius:999px;width:min(96px,24vw);height:6px;overflow:hidden}.sprint-category-progress-bar-lessons .sprint-category-progress-fill,.sprint-lesson-tile-bar-stages .sprint-lesson-tile-bar-fill{background:var(--primary)}.sprint-category-progress-bar-stages .sprint-category-progress-fill{background:color-mix(in srgb, var(--success) 78%, var(--primary))}.sprint-category-progress-fill{background:var(--accent,#6366f1);border-radius:999px;height:100%;transition:width .3s}.sprint-category-progress-fill-lessons{background:var(--primary)}.sprint-category-progress-fill-stages{background:color-mix(in srgb, var(--success) 78%, var(--primary))}.sprint-category-progress-label{color:var(--ink-soft);font-size:.78rem}.home-path-node-copy small{color:var(--ink-soft);font-style:italic;line-height:1.3}.home-path-status{background:color-mix(in srgb, var(--success) 14%, var(--surface));color:var(--success);border:1px solid color-mix(in srgb, var(--success) 35%, var(--border));letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 10px;font-size:.74rem;font-weight:800}.home-path-node-locked{opacity:.7}.home-path-node-active{border-color:color-mix(in srgb, var(--primary) 46%, var(--border))}.home-path-node-complete .home-path-node-dot{background:var(--success);box-shadow:0 4px 0 color-mix(in srgb, var(--success) 58%, black)}.home-stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.home-stat-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);gap:4px;padding:10px 12px;display:grid}.home-stat-card span{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.73rem}.home-stat-card strong{font-size:1.2rem}.home-weekly-bar{align-items:end;gap:6px;height:74px;margin-top:10px;display:flex}.home-weekly-bar span{background:linear-gradient(180deg, var(--primary), color-mix(in srgb, var(--primary) 55%, white));border-radius:7px 7px 4px 4px;flex:1}.learn-lessons-header{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.learn-credit-link{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;min-width:34px;height:34px;font-weight:700}.catalog-section,.catalog-subsection{overflow:hidden}.catalog-section>summary,.catalog-subsection>summary{cursor:pointer;border-bottom:1px solid #0000;padding:12px;font-weight:700;list-style:none}.catalog-section[open]>summary,.catalog-subsection[open]>summary{border-bottom-color:var(--border)}.catalog-lesson-list{gap:8px;padding:10px;display:grid}.lesson-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);text-align:left;cursor:pointer;padding:12px}.catalog-lesson-badges{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.catalog-lesson-badge{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.catalog-lesson-badge-ok,.learn-deck-ok-tag{border-color:color-mix(in srgb, var(--success) 35%, var(--border));background:color-mix(in srgb, var(--success) 14%, var(--surface));color:var(--success)}.catalog-lesson-badge-clear{border-color:color-mix(in srgb, var(--primary) 34%, var(--border));background:color-mix(in srgb, var(--primary) 12%, var(--surface));color:var(--primary)}.lesson-card-active{border-color:color-mix(in srgb, var(--primary) 50%, var(--border))}.lesson-card-completed{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.lesson-card-locked{opacity:.55}.learn-practice-view{gap:14px;display:grid}.learn-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.learn-back-btn{min-width:0;padding-inline-start:16px;padding-inline-end:16px}.learn-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.learn-title{font-family:var(--font-display);margin:0;font-size:max(1.2rem,min(2.3vw,1.7rem))}.learn-deck-ok-tag{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.learn-deck-panel{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.learn-deck-stat{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);gap:4px;padding:12px 14px;display:grid}.learn-deck-stat span{letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;font-weight:800}.learn-deck-stat strong{font-size:max(1.35rem,min(2.6vw,1.8rem))}.learn-deck-stat-ok span,.learn-deck-stat-ok strong{color:var(--success)}.learn-deck-stat-repeat span,.learn-deck-stat-repeat strong{color:var(--danger)}.learn-reset-deck-btn{width:100%}.learn-deck-empty{border:1px dashed color-mix(in srgb, var(--success) 34%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--success) 10%, var(--surface));color:color-mix(in srgb, var(--success) 78%, var(--ink));padding:14px 16px;font-weight:700;line-height:1.5}.lesson-card-display{justify-items:center;gap:14px;padding:16px;display:grid}.card-meta-row{justify-content:space-between;align-items:center;width:100%;display:flex}.card-counter{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem}.card-hearts{color:var(--danger);letter-spacing:.2em}.card-word{font-family:var(--font-display);font-size:max(1.6rem,min(3.2vw,2.2rem))}.card-answer{justify-items:center;gap:10px;width:100%;display:grid}.card-outline{font-family:var(--font-mono);color:var(--primary);font-size:max(1rem,min(2.6vw,1.5rem))}.card-answer-inline{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.card-answer-key{font-family:var(--font-mono);color:var(--ink-soft);font-size:.78rem}.card-answer-label{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;padding:4px 10px;font-size:.78rem}.lesson-choice-grid{grid-template-columns:1fr;gap:8px;width:100%;display:grid}.lesson-choice-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);min-height:44px;font-weight:700}.lesson-choice-btn-active{border-color:color-mix(in srgb, var(--primary) 42%, var(--border));background:color-mix(in srgb, var(--primary) 14%, var(--surface-alt))}.card-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.card-buttons .control-btn{min-width:160px}.card-nav{justify-content:center;gap:10px;display:flex}.settings-panel{box-sizing:border-box;gap:12px;width:100%;min-width:0;padding:16px;display:grid}.settings-panel-topbar{justify-content:flex-end;display:flex}.settings-tabbar{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.settings-tabbar>button{min-width:0}.settings-close-btn{min-width:36px;min-height:36px}.settings-section{border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;width:100%;min-width:0;overflow:hidden}.settings-section-nested{background:color-mix(in srgb, var(--surface) 92%, transparent)}.settings-section-title{cursor:pointer;background:var(--surface-alt);letter-spacing:.08em;text-transform:uppercase;padding:9px 12px;font-size:.76rem;font-weight:700;list-style:none}.settings-section-title::-webkit-details-marker{display:none}.settings-section-body{box-sizing:border-box;gap:8px;width:100%;min-width:0;padding:10px 12px;display:grid}.settings-locked-section{border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-bg) 60%, transparent);opacity:.85;margin:6px 12px;padding:10px 12px}.settings-locked-section__head{color:var(--color-ink-soft);align-items:center;gap:8px;font-size:.86rem;display:flex}.settings-locked-section__icon{font-size:14px;line-height:1}.settings-locked-section__hint{color:var(--color-ink-mute);margin:4px 0 0;font-size:.78rem}.settings-row{gap:6px;min-width:0;display:grid}.settings-knob-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.settings-color-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.settings-color-grid .settings-row label{font-size:.7rem}.settings-input-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.settings-control-group{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.settings-reset-btn{border:1px solid var(--border);background:var(--surface-alt);width:30px;min-width:30px;height:30px;color:var(--ink-soft);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;margin-left:auto;padding:0;font-weight:700;line-height:1;display:grid}.settings-reset-btn:hover{color:var(--ink);border-color:color-mix(in srgb, var(--primary) 36%, var(--border))}.settings-row label{color:var(--ink-soft);overflow-wrap:anywhere;min-width:0;font-size:.78rem}.settings-row input[type=range]{width:100%}.settings-control-group input[type=range]{flex:180px;min-width:120px}.settings-unit{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.78rem}.profile-bg{border-radius:24px;position:relative;overflow:hidden}.profile-bg:before{content:"";pointer-events:none;opacity:var(--profile-bg-opacity,.08);z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.profile-bg>*{z-index:1;position:relative}.profile-bg-none:before{display:none}.profile-bg-squares:before{background-image:linear-gradient(var(--profile-bg-color) 1px, transparent 1px), linear-gradient(90deg, var(--profile-bg-color) 1px, transparent 1px);background-size:calc(28px * var(--profile-bg-scale,1)) calc(28px * var(--profile-bg-scale,1))}.profile-bg-diagonal:before{background-image:repeating-linear-gradient(45deg, var(--profile-bg-color) 0, var(--profile-bg-color) 2px, transparent 2px, transparent calc(18px * var(--profile-bg-scale,1)))}.profile-bg-glyph-dots:before{background-image:radial-gradient(circle, var(--profile-bg-color) 2px, transparent 3px), radial-gradient(circle, var(--profile-bg-color) 1px, transparent 2px);background-size:calc(34px * var(--profile-bg-scale,1)) calc(34px * var(--profile-bg-scale,1));background-position:0 0, calc(17px * var(--profile-bg-scale,1)) calc(17px * var(--profile-bg-scale,1))}.profile-bg-triangles:before{background-image:linear-gradient(60deg, var(--profile-bg-color) 25%, transparent 25%), linear-gradient(120deg, var(--profile-bg-color) 25%, transparent 25%), linear-gradient(60deg, transparent 75%, var(--profile-bg-color) 75%), linear-gradient(120deg, transparent 75%, var(--profile-bg-color) 75%);background-size:calc(36px * var(--profile-bg-scale,1)) calc(62px * var(--profile-bg-scale,1));background-position:0 0, 0 0, calc(18px * var(--profile-bg-scale,1)) calc(31px * var(--profile-bg-scale,1)), calc(18px * var(--profile-bg-scale,1)) calc(31px * var(--profile-bg-scale,1))}.profile-bg-mosaic:before{background-image:linear-gradient(45deg, var(--profile-bg-color) 12%, transparent 12%), linear-gradient(135deg, var(--profile-bg-color) 12%, transparent 12%), linear-gradient(45deg, transparent 88%, var(--profile-bg-color) 88%), linear-gradient(135deg, transparent 88%, var(--profile-bg-color) 88%);background-size:calc(42px * var(--profile-bg-scale,1)) calc(42px * var(--profile-bg-scale,1));background-position:0 0, 0 0, calc(21px * var(--profile-bg-scale,1)) calc(21px * var(--profile-bg-scale,1)), calc(21px * var(--profile-bg-scale,1)) calc(21px * var(--profile-bg-scale,1))}.dict-loading,.dict-error{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);color:var(--ink-soft);padding:10px}.credit-modal-backdrop{z-index:100;background:#0f0a2673;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.credit-modal{gap:10px;width:min(560px,100%);padding:16px;display:grid}.credit-modal-actions{justify-content:flex-end;display:flex}.login-shell{background:var(--bg);background-image:radial-gradient(circle at 15% 12%, color-mix(in srgb, var(--color-success) 18%, transparent), transparent 45%), radial-gradient(circle at 85% 80%, color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 50%);background-attachment:fixed;place-items:center;width:100%;min-height:100dvh;padding:max(12px,min(4vh,32px)) 18px;display:grid}.login-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(420px,100%);max-height:calc(100dvh - 36px);box-shadow:0 12px 30px -12px color-mix(in srgb, var(--color-ink) 22%, transparent), 0 2px 0 var(--border);text-align:center;flex-direction:column;gap:14px;padding:max(16px,min(3.5vw,26px));display:flex;overflow-y:auto}.login-card>*{margin:0}.login-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:max(1.4rem,min(3.5vw,1.9rem));line-height:1.1}.login-subtitle{color:var(--ink-soft);font-size:.95rem;line-height:1.5}.login-note{color:var(--ink-soft);font-size:.84rem}.login-google-btn{border-radius:var(--radius-sm);border:1px solid var(--border);color:#111827;cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:8px;width:100%;max-width:280px;min-height:46px;margin-inline-start:auto;margin-inline-end:auto;padding:10px 18px;font-weight:700;display:inline-flex}.login-google-btn:hover{background:#f4f4f6}@media (max-height:600px){.login-card{gap:10px;padding:14px 16px}.login-title{font-size:1.25rem}}@media (min-width:768px){.app-shell{grid-template-columns:1fr}.app-body{grid-column:1;min-height:100dvh}.app-main{padding:20px 20px 40px}.app-settings-drawer,.settings-modal{width:calc(100% - 32px);max-width:720px;max-height:90vh;top:5vh;bottom:auto;right:auto}.show-layout{grid-template-columns:minmax(320px,.95fr) minmax(420px,1.2fr);align-items:start}.read-source-buttons{grid-template-columns:1fr 1fr}.read-section-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.read-home-grid,.read-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.read-store-detail{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}.read-playback-grid{grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);align-items:start}.home-dashboard{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start}.home-main-column{order:1}.home-side-column{order:2}.lesson-choice-grid{grid-template-columns:1fr 1fr}}@media (min-width:761px){.learn-lock-toast{bottom:24px;left:auto;right:24px}}@media (max-width:767px){.learn-header{align-items:stretch}.learn-back-btn,.card-buttons .control-btn,.learn-reset-deck-btn{width:100%}.control-btn-shortcut{padding-right:46px}.learn-deck-panel{grid-template-columns:1fr}.home-path-node{grid-template-columns:auto minmax(0,1fr)}.home-path-status{grid-column:2;justify-self:start;margin-top:2px}.story-browser{gap:14px;padding:14px}.story-browser-header{flex-wrap:wrap;align-items:flex-start}.story-browser .catalog-section>summary{padding:14px 16px}.story-browser .catalog-lesson-list{gap:10px;padding:12px 12px 14px}.sprint-shell,.sprint-hub,.sprint-rail-shell,.sprint-category-window,.sprint-category-summary,.sprint-category-stats,.sprint-lesson-rail,.sprint-stage-grid,.sprint-lesson-card,.sprint-topbar,.sprint-detail-hero{width:100%;min-width:0;max-width:100%}.sprint-shell,.sprint-hub,.sprint-rail-shell{overflow-x:clip}.sprint-category-window{border-radius:var(--radius-md);margin:0}.sprint-category-window>summary{padding:12px}.sprint-category-stats{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.sprint-category-stats .sprint-stat-chip{justify-self:stretch;width:100%;min-width:0;max-width:100%}.sprint-lesson-rail{grid-template-columns:minmax(0,1fr);justify-items:stretch;padding:12px}.sprint-category-bar-row{grid-template-columns:minmax(0,84px) auto}.sprint-category-progress-bar{width:min(84px,22vw)}.sprint-lesson-tile-bar-row{grid-template-columns:minmax(0,64px) auto}.sprint-lesson-tile-bar{width:min(64px,18vw)}.sprint-category-heading{overflow-wrap:anywhere}.read-home-summary-grid{flex-direction:column}.read-home-preview-strip{gap:8px}.curriculum-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px}.curriculum-grid .lesson-card{padding:8px}.curriculum-grid .catalog-lesson-title{font-size:.88rem}.curriculum-grid .catalog-lesson-desc,.curriculum-grid .catalog-lesson-count{font-size:.68rem}.read-page-view{gap:12px;padding:14px}.read-store-detail{grid-template-columns:minmax(0,1fr)}.read-store-detail-cover{min-height:min(46dvh,22rem)}.read-store-detail-preview{max-height:calc(100dvh - 24rem)}.read-store-detail-actions .control-btn{flex-basis:100%;width:100%}.read-page-toolbar{grid-template-columns:minmax(0,1fr);justify-items:stretch;display:grid}.read-page-toolbar .control-btn{width:100%}.read-page-toolbar-meta{justify-content:flex-start}.read-page-sheet{min-height:min(54dvh,30rem);max-height:calc(100dvh - 20rem);padding:16px}.read-page-sheet-inner{max-width:none;font-size:max(.98rem,min(2vw + .78rem,1.08rem));line-height:1.78}.read-reader-footer{justify-content:stretch}.read-reader-footer .control-btn{width:100%}.app-settings-drawer,.settings-modal{border-left:1px solid var(--border);border-radius:14px;width:auto;max-width:none;max-height:none;top:12px;bottom:72px;left:12px;right:12px;transform:none}.sprint-lesson-tile{justify-self:stretch;width:100%;min-width:0;max-width:100%}.sprint-stage-grid{grid-template-columns:minmax(0,1fr);justify-items:stretch;padding:0 12px 12px;display:grid;overflow:visible}.sprint-stage-card{aspect-ratio:auto;border-radius:16px;width:100%;min-width:0;max-width:100%;min-height:132px;overflow:hidden}.sprint-stage-topline{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px;display:grid}.sprint-stage-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.sprint-stage-title,.sprint-lock,.sprint-lesson-tile-title,.sprint-lesson-tile-desc,.sprint-lesson-tile-meta{overflow-wrap:anywhere;min-width:0}}@media (max-height:820px) and (min-width:1024px){.app-sidebar-bottom .mode-label{display:none}.app-sidebar-bottom .settings-toggle-btn{justify-content:center;width:100%;padding-inline-start:0;padding-inline-end:0}}@media (min-width:768px) and (max-width:1023px){.app-sidebar-bottom .mode-label{display:none}.app-sidebar-bottom .settings-toggle-btn{justify-content:center;width:100%;padding-inline-start:0;padding-inline-end:0}}@media (max-height:760px) and (min-width:768px){.app-sidebar-bottom .mode-label{display:none}.app-sidebar-bottom .settings-toggle-btn{justify-content:center;width:100%;padding-inline-start:0;padding-inline-end:0}}@media (min-width:1024px){.app-main{padding:28px}.home-path-track{gap:18px}.home-path-node{padding:12px 14px}}@media (max-width:767px){.read-library-manager{min-height:auto}.read-library-manager-header{flex-direction:column;align-items:stretch}.read-library-manager-header .control-btn{width:100%}.read-library-manager-grid{grid-template-columns:1fr;min-height:auto}.read-library-sidebar,.read-library-item-list,.read-library-details{min-height:0;overflow:visible}.read-library-toolbar{flex-direction:column}.read-library-toolbar .chord-field,.read-library-toolbar select{width:100%}.read-library-table-header{display:none}.read-library-table-row{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.4rem .75rem;padding:.8rem}.read-library-table-row span:first-child{word-break:break-word;grid-column:1/-1;font-weight:600}.read-library-table-row span:nth-child(2),.read-library-table-row span:nth-child(3),.read-library-table-row span:nth-child(4),.read-library-table-row span:nth-child(5){opacity:.92;word-break:break-word;font-size:.85rem}.read-library-details{padding-bottom:1rem}.read-library-metadata{grid-template-columns:1fr}.read-library-metadata dt{margin-top:.35rem}}@container (width<=220px){.app-sidebar-brand .logo-wordmark{display:none}}.read-library-manager{min-height:70vh}.read-library-manager-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.read-library-manager-grid{grid-template-columns:260px minmax(0,1fr) 300px;gap:1rem;min-height:620px;display:grid}.read-library-sidebar,.read-library-item-list,.read-library-details{background:#ffffffc2;border:1px solid #6c52ff24;border-radius:16px;min-height:100%;padding:.85rem;overflow:auto}.read-library-sidebar{flex-direction:column;gap:.5rem;display:flex}.read-library-sidebar-section{margin-top:1rem}.read-library-sidebar-heading{color:var(--muted-text,#6b5f86);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;margin-bottom:.35rem;font-size:.78rem;font-weight:600;display:flex}.read-library-sidebar-row{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:.35rem;padding:.45rem .55rem;font-size:.9rem;display:flex}.read-library-sidebar-row:hover,.read-library-sidebar-row.selected{background:#6c52ff1f}.read-library-sidebar-main{text-align:left;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:0;flex:1}.read-library-sidebar-mini{cursor:pointer;color:#6b5f86;background:#6c52ff14;border:0;border-radius:6px;padding:.15rem .35rem;font-size:.85rem;font-weight:700;transition:background .2s}.read-library-sidebar-mini:hover{background:#6c52ff33}.read-library-toolbar{gap:.75rem;margin-bottom:.75rem;display:flex}.read-library-toolbar .chord-field{flex:1}.read-library-toolbar select{border:1px solid #6c52ff33;border-radius:8px;padding:.5rem .75rem;font-size:.9rem}.read-library-table{flex-direction:column;gap:.25rem;display:flex}.read-library-table-header,.read-library-table-row{grid-template-columns:2fr 1.2fr .7fr .8fr .9fr;align-items:center;gap:.75rem;padding:.5rem;display:grid}.read-library-table-header{color:var(--muted-text,#6b5f86);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #6c52ff1a;font-size:.78rem;font-weight:600}.read-library-table-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:.9rem;transition:background .15s}.read-library-table-row:hover,.read-library-table-row.selected{background:#6c52ff1f}.read-library-empty{text-align:center;padding:2rem 1rem}.read-library-detail-cover{color:#6b5f86;background:#6c52ff1f;border-radius:12px;place-items:center;width:96px;height:132px;margin-bottom:1rem;font-size:2rem;font-weight:700;display:grid;overflow:hidden}.read-library-detail-cover img{object-fit:cover;width:100%;height:100%}.read-library-metadata{grid-template-columns:90px 1fr;gap:.35rem .75rem;margin:1rem 0;font-size:.9rem;display:grid}.read-library-metadata dt{color:var(--muted-text,#6b5f86);font-weight:600}.read-library-metadata dd{margin:0}.read-library-actions{flex-direction:column;gap:.5rem;margin:1rem 0;display:flex}.read-library-actions .control-btn{width:100%}.read-library-details-section{margin-top:1.5rem}.read-library-details-section h4{color:#3c2a4b;margin-bottom:.75rem;font-size:.9rem}.read-library-checkbox-row{cursor:pointer;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.9rem;display:flex}.read-library-checkbox-row input{cursor:pointer}.read-library-sync-badge{color:var(--text-dim,#6b5f86);align-items:center;gap:.45rem;margin-top:.35rem;font-size:.86rem;display:inline-flex}.read-library-sync-badge-button{cursor:pointer;background:0 0;border:0;padding:0}.read-sync-dot{border-radius:999px;width:.65rem;height:.65rem;display:inline-block;box-shadow:0 0 0 3px #0000000a}.read-sync-dot-ok{background:#12a66a}.read-sync-dot-error{background:#d64545}.read-sync-dot-off{background:#9a8fae}.read-sync-dot-warning{background:#d99a21}.read-library-sync-status{align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.6rem 0;display:flex}.settings-subsection{border:1px solid var(--border,#7864b42e);background:var(--bg-card,#ffffffb3);box-sizing:border-box;border-radius:12px;gap:.65rem;min-width:0;max-width:100%;margin-top:1rem;padding:.75rem;display:grid}.settings-subsection h4{color:#3c2a4b;margin:0 0 .5rem;font-size:.95rem}.settings-subsection .control-btn{width:100%;margin-top:.5rem}.library-provider-header{flex-wrap:wrap;justify-content:space-between;gap:.75rem;min-width:0;display:flex}.library-connected-card,.library-selected-folder-card{border:1px solid var(--border,#7864b42e);background:color-mix(in srgb, var(--bg-card,#fff) 88%, transparent);box-sizing:border-box;border-radius:12px;gap:.75rem;min-width:0;max-width:100%;padding:.9rem;display:grid}.library-connected-card,.library-selected-folder-card,.settings-subsection{overflow:hidden}.library-selected-folder-card h5{margin:0;font-size:.9rem}.library-connection-details{grid-template-columns:minmax(110px,150px) minmax(0,1fr);gap:.45rem .8rem;min-width:0;margin:0;display:grid}.library-connection-details dt{color:var(--text-dim,#6b5f86);font-size:.82rem}.library-connection-details dd{overflow-wrap:anywhere;min-width:0;margin:0}.library-storage-actions,.library-setup-mode-toggle{flex-wrap:wrap;gap:.65rem;min-width:0;display:flex}.library-storage-actions .control-btn,.library-setup-mode-toggle .control-btn{width:auto;margin-top:0}.library-storage-actions a.control-btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.library-manual-folder{gap:.65rem;min-width:0;display:grid}.library-manual-folder summary{cursor:pointer;font-weight:700}.library-monospace{word-break:break-all;overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}@media (max-width:460px){.library-connection-details{grid-template-columns:minmax(0,1fr)}}.read-sync-warning,.read-sync-error{border-radius:12px;padding:.75rem .9rem;font-size:.85rem}.read-sync-warning{color:#8b5f0a;background:#d99a211a;border:1px solid #d99a2147}.read-sync-error{color:#9e2e2e;background:#d6454514;border:1px solid #d6454547}.drive-setup-backdrop{z-index:9999;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.drive-setup-modal{background:var(--bg-card);width:min(460px,100%);color:var(--text-main);border:1px solid var(--border);border-radius:var(--radius-lg,16px);padding:1.25rem;box-shadow:0 20px 60px #00000040}.top-bar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;max-width:min(720px,100%);min-height:36px;margin:0 auto;padding:4px 6px;display:grid}.top-bar__left{justify-self:start;align-items:center;gap:10px;min-width:0;display:inline-flex}.top-bar__brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.top-bar__back{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);min-height:28px;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:.82rem;font-weight:600;transition:background .12s,border-color .12s,transform .12s;display:inline-flex;position:relative}.top-bar__back:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface));border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translate(-1px)}.top-bar__back-label{font-weight:700}.top-bar__centre{justify-self:center;min-width:0;max-width:100%;overflow:hidden}.top-bar__context{color:var(--ink-soft,color-mix(in srgb, var(--ink) 65%, transparent));white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.84rem;font-style:italic;display:inline-block;overflow:hidden}.top-bar__right{justify-self:end;align-items:center;gap:6px;display:inline-flex}.top-bar__cog{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);min-width:36px;min-height:36px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:4px 8px;font-size:1rem;transition:transform .12s,box-shadow .12s,border-color .12s,background .12s;display:inline-flex;position:relative}.top-bar__cog:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));box-shadow:0 6px 12px color-mix(in srgb, var(--primary) 14%, transparent);transform:rotate(20deg)}.top-bar__cog.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (max-width:480px){.top-bar{gap:8px;min-height:46px}.top-bar__back-label{display:none}.top-bar__context{font-size:.78rem}}.key-hint{opacity:.4;font-size:.5rem;font-style:italic;font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--ink-soft,color-mix(in srgb, var(--ink) 70%, transparent));white-space:nowrap;pointer-events:none;background:0 0;border:none;padding:0;font-weight:600;line-height:1;position:absolute;bottom:2px;right:4px}.key-hint--primary{border-color:color-mix(in srgb, var(--primary) 45%, var(--border));background:color-mix(in srgb, var(--primary) 12%, var(--surface));color:var(--primary)}.top-bar__cog.is-active .key-hint{color:#fff;opacity:.6}@keyframes glitter{0%,to{filter:brightness()}50%{filter:brightness(1.15)}}.steno-keyboard-explainer{width:100%;min-height:180px;position:relative}.steno-keyboard-explainer__layer{width:100%}.steno-keyboard-explainer__layer--overlay{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.outline-help-modal__backdrop{z-index:9999;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.outline-help-modal{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-lg,14px);box-shadow:var(--shadow-soft,0 18px 36px #00000040);width:100%;max-width:560px;max-height:90vh;padding:20px 22px;overflow:auto}.outline-help-modal__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.outline-help-modal__title{margin:0;font-size:1.05rem;font-weight:700}.outline-help-modal__close{border:1px solid var(--border);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;line-height:1;display:inline-flex}.outline-help-modal__body{color:var(--ink-soft,color-mix(in srgb, var(--ink) 80%, transparent));margin:8px 0 14px;font-size:.92rem;line-height:1.5}.outline-help-btn{border:1px solid var(--border);width:18px;height:18px;color:var(--ink);cursor:pointer;vertical-align:middle;background:0 0;border-radius:999px;justify-content:center;align-items:center;margin-left:6px;padding:0;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.outline-help-btn:hover{background:color-mix(in srgb, var(--primary) 12%, transparent);border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.campaign-cell__status-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;z-index:2;pointer-events:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:800;display:inline-flex;position:absolute;top:6px;left:6px}.campaign-cell__status-badge--ok{color:#1f7a3a;opacity:.55;transform-origin:100% 0;background:#1f7a3a29;border:1px solid #1f7a3a80;transform:rotate(-12deg)}.campaign-cell__status-badge--master{color:#7a4d00;opacity:.55;transform-origin:100% 0;background:linear-gradient(90deg,#f7b73338,#fc4a1a38);border:1px solid #f7b73399;animation:3s ease-in-out infinite glitter;transform:rotate(-12deg)}.player-strip__flame-chip{color:var(--color-ink,var(--ink));font-variant-numeric:tabular-nums;background:#ff6b3529;border:1px solid #ff6b3559;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.player-strip__flame-chip.is-dim{opacity:.55}.player-strip__flame-chip-emoji{font-size:13px;line-height:1}.player-strip__flame-chip-count{font-variant-numeric:tabular-nums}@media (max-width:480px){.player-strip__flame-chip{font-size:11px}}.sprint-shell{border-radius:22px;gap:14px;padding:14px;display:grid}.sprint-topbar{border:1px solid var(--border);background:var(--surface);border-radius:18px;gap:12px;padding:14px;display:grid}.sprint-player{align-items:center;gap:12px;display:flex}.sprint-avatar-ring{border:2px solid var(--primary);background:color-mix(in srgb, var(--primary-soft) 68%, var(--surface));cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:999px;place-items:center;width:66px;height:66px;padding:0;display:grid;overflow:hidden}.sprint-avatar{color:#fff;border-radius:999px;place-items:center;width:52px;height:52px;font-weight:700;display:grid;position:relative}.sprint-avatar-hat{background:#000000bf;border-radius:999px;width:26px;height:9px;position:absolute;top:-2px}.sprint-avatar-eyes{letter-spacing:2px;font-size:9px}.sprint-avatar-mustache{font-size:10px;position:absolute;bottom:8px}.sprint-player-meta{gap:4px;min-width:0;display:grid}.sprint-player-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.18rem}.sprint-player-stats,.sprint-xp-caption,.sprint-lock,.sprint-choice-hint{color:var(--ink-soft);font-size:.83rem}.sprint-xp-track{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;width:min(280px,100%);max-width:100%;height:10px;overflow:hidden}.sprint-xp-fill{background:linear-gradient(90deg, var(--accent), var(--primary));height:100%}.sprint-stat-row{flex-wrap:wrap;gap:8px;display:flex}.sprint-stat-chip{border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;padding:6px 10px;font-size:.78rem}.sprint-hub{gap:10px;display:grid}.sprint-category,.sprint-subcategory,.sprint-lesson-card,.sprint-result,.sprint-run,.sprint-stage-card{border:1px solid var(--border);background:var(--surface);border-radius:16px}.sprint-category,.sprint-subcategory{padding:10px}.sprint-category>summary,.sprint-subcategory>summary{cursor:pointer;font-weight:700;list-style:none}.sprint-subcategory>summary{color:var(--ink-soft);font-size:.92rem}.sprint-subcategory-list{gap:10px;margin-top:10px;display:grid}.sprint-lesson-card{overflow:hidden}.sprint-lesson-head{justify-content:space-between;gap:10px;padding:12px;display:flex}.sprint-lesson-title{gap:4px;display:grid}.sprint-lesson-title h4{margin:0;font-size:1rem}.sprint-lesson-desc,.sprint-lesson-summary{color:var(--ink-soft);font-size:.84rem}.sprint-stage-grid{gap:8px;padding:0 12px 12px;display:flex;overflow-x:auto}.sprint-stage-card{aspect-ratio:1;text-align:left;align-content:start;gap:6px;width:140px;min-width:140px;padding:10px;display:grid}.sprint-stage-card:hover{border-color:color-mix(in srgb, var(--primary) 44%, var(--border))}.sprint-stage-card-locked,.sprint-lesson-card-locked{opacity:.58}.sprint-stage-topline,.sprint-stage-meta,.sprint-action-row,.sprint-answer-row,.sprint-question-panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.sprint-round-counter{font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--accent,#b8860b) 14%, transparent);color:var(--accent,#b8860b);border:1px solid color-mix(in srgb, var(--accent,#b8860b) 35%, transparent);border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}.sprint-stage-title{font-size:.88rem;font-weight:700}.sprint-stage-meta{color:var(--ink-soft);font-size:.74rem}.sprint-star-row{color:var(--accent);letter-spacing:.06em;font-size:.92rem}.sprint-run{gap:12px;padding:12px;display:grid}.sprint-run-stage{grid-template-columns:1fr;gap:12px;display:grid}.sprint-glyph-stage{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-alt);border-radius:20px;width:min(100%,500px);overflow:hidden}.sprint-answer-panel{border:1px solid var(--border);background:var(--surface-alt);border-radius:16px;gap:10px;padding:12px;display:grid}.sprint-answer-row{justify-content:stretch}.sprint-answer-input{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex:1;min-width:200px;min-height:44px;padding:10px 12px}.sprint-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.sprint-choice-btn{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;min-height:44px;padding:8px 6px;font-size:.92rem;display:inline-flex}.sprint-choice-label{word-break:break-word;font-weight:600}.sprint-choice-btn-correct{border-color:color-mix(in srgb, var(--success) 50%, var(--border));background:color-mix(in srgb, var(--success) 14%, var(--surface))}.sprint-choice-btn-wrong{border-color:color-mix(in srgb, var(--danger) 54%, var(--border));background:color-mix(in srgb, var(--danger) 14%, var(--surface))}.sprint-result{gap:10px;padding:14px;display:grid}.sprint-result-stars{color:var(--accent);font-size:1.18rem}.sprint-result h3{font-family:var(--font-display);margin:0;font-size:1.5rem}.sprint-result-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;display:grid}.sprint-result-box{border:1px solid var(--border);background:var(--surface-alt);border-radius:14px;padding:10px}.sprint-result-box label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px;font-size:.72rem;display:block}.sprint-result-box strong{font-size:1.04rem}.sprint-action-row{justify-content:flex-end}@media (min-width:768px){.sprint-topbar{grid-template-columns:1fr auto;align-items:center}.sprint-run-stage{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start}.sprint-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.campaign-shell{flex-direction:column;width:100%;max-width:720px;height:100%;min-height:0;margin:0 auto;display:flex;overflow:hidden}.campaign-shell>*{flex:auto;min-height:0}.campaign-shell__back-row{flex:none;padding:10px 12px 4px;display:flex}.campaign-shell__back-btn{border-radius:999px;min-height:36px;padding:6px 12px;font-size:.8rem}.campaign-shell__top{background:var(--color-bg);border-bottom:1px solid color-mix(in srgb, var(--color-border) 60%, transparent);flex:none;padding:10px 12px 0}.campaign-map{--campaign-cell-radius:14px;--campaign-tile-size:22px;width:100%;height:100%;min-height:0;color:var(--campaign-ink,#2b1e10);font-family:"Inter", var(--font-ui,sans-serif);background-color:#0000;flex-direction:column;display:flex;position:relative;overflow:hidden}.campaign-decor{z-index:0;pointer-events:none;color:var(--section-accent,var(--campaign-gold,#b8860b));transition:color .4s;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.campaign-decor__grid,.campaign-decor__blob,.campaign-decor__constellation{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.campaign-decor__grid{color:var(--campaign-border,#8b6f47);opacity:.08}.campaign-decor__blob{opacity:.16}.campaign-decor__constellation{opacity:.14}.campaign-map__scroll{z-index:1;scrollbar-gutter:stable;flex:auto;min-height:0;padding:12px 14px 28px;position:relative;overflow-x:hidden;overflow-y:auto}.campaign-map__region{border:1px solid color-mix(in srgb, var(--campaign-border,#8b6f47) 22%, transparent);border-radius:18px;width:100%;max-width:760px;margin:0 auto 18px;padding:14px 16px 18px;position:relative}.campaign-map__region.is-locked{opacity:.85}.campaign-map__region-head{margin:0 4px 10px}.campaign-map__region-label{font-family:var(--font-display,"Fraunces", Georgia, serif);letter-spacing:-.01em;color:var(--campaign-ink,#2b1e10);margin:0;font-size:1.15rem;font-weight:700}.campaign-map__region-hint{color:var(--campaign-ink-soft,#6b5a47);margin:2px 0 0;font-size:.78rem;font-style:italic}.campaign-map__region-locked{border:1px dashed var(--campaign-border,#8b6f47);color:var(--campaign-ink-soft,#6b5a47);background:#fff6;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;font-size:.86rem;display:flex}.campaign-map__region-locked span[aria-hidden]{font-size:22px;line-height:1}.campaign-map__region-locked p{margin:0}.campaign-map__grid-cells{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(120px,max-content);align-content:start;gap:28px 18px;width:100%;margin:0 auto;display:grid;position:relative}.campaign-map__grid-cells:before{content:"";background:repeating-linear-gradient(to bottom, var(--section-accent,var(--campaign-border,#8b6f47)) 0 8px, transparent 8px 18px);opacity:.18;pointer-events:none;z-index:0;width:3px;transition:background var(--campaign-section-fade,.4s ease);border-radius:999px;position:absolute;top:4px;bottom:4px;left:50%;transform:translate(-50%)}.campaign-cell{border-radius:var(--campaign-cell-radius);background:linear-gradient(155deg, color-mix(in srgb, var(--section-accent-soft,transparent) 40%, var(--campaign-surface,#fbf3e4)) 0%, var(--campaign-surface,#fbf3e4) 60%);border:1.5px solid color-mix(in srgb, var(--section-accent,#8b6f47) 55%, transparent);width:100%;min-height:108px;box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 25%, transparent) inset, 0 4px 14px -4px #8b6f472e;cursor:pointer;text-align:left;font:inherit;color:inherit;z-index:1;transition:transform .2s ease, box-shadow .2s ease, border-color var(--campaign-section-fade,.4s ease), background var(--campaign-section-fade,.4s ease), opacity .2s ease;grid-template-rows:auto auto;gap:8px;padding:14px 14px 12px;display:grid;position:relative}.campaign-cell:before{content:"";background:var(--section-accent,var(--campaign-border,#8b6f47));height:4px;transition:background var(--campaign-section-fade,.4s ease);border-radius:0 0 6px 6px;position:absolute;top:-1px;left:12px;right:12px}.campaign-cell:hover{box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 35%, transparent) inset, 0 12px 28px -6px #8b6f4747;outline:none;transform:translateY(-3px)rotate(-.4deg)}.campaign-cell:focus-visible{box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 35%, transparent) inset, 0 12px 28px -6px #8b6f4747;outline:none;transform:translateY(-3px)rotate(-.4deg)}.campaign-cell:focus-visible{border-color:var(--section-accent-ink,var(--campaign-border,#8b6f47))}.campaign-cell.variant-side-quest{background:repeating-linear-gradient(45deg, var(--campaign-surface,#fbf3e4) 0 8px, color-mix(in srgb, var(--campaign-surface,#fbf3e4) 80%, #ddd7c7) 8px 16px);border-style:dashed}.campaign-cell.variant-milestone{background:linear-gradient(155deg, #dff3e0 0%, var(--campaign-surface,#fbf3e4) 70%);border-width:2px;border-color:#1f7a3a;box-shadow:inset 0 1px #1f7a3a59,0 8px 22px -8px #1f7a3a66}.campaign-cell.variant-milestone:before{background:#1f7a3a}.campaign-cell.variant-endgame{border-width:2px;border-color:var(--campaign-gold,#b8860b);background:linear-gradient(155deg, #fbe9b2 0%, var(--campaign-surface,#fbf3e4) 70%);box-shadow:inset 0 1px #b8860b66,0 10px 26px -8px #b8860b73}.campaign-cell.variant-endgame:before{background:var(--campaign-gold,#b8860b);height:6px}.campaign-cell.locked{cursor:not-allowed;opacity:.55;filter:grayscale(.4);box-shadow:none}@keyframes now-playing-pulse{0%,to{box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 35%, transparent) inset, 0 8px 22px -8px color-mix(in srgb, var(--section-accent,#8b6f47) 60%, transparent), 0 0 0 0 color-mix(in srgb, var(--section-accent,#8b6f47) 0%, transparent)}50%{box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 40%, transparent) inset, 0 12px 28px -8px color-mix(in srgb, var(--section-accent,#8b6f47) 70%, transparent), 0 0 0 6px color-mix(in srgb, var(--section-accent,#8b6f47) 18%, transparent)}}.campaign-cell.is-now-playing{animation:2.4s ease-in-out infinite now-playing-pulse}@media (prefers-reduced-motion:reduce){.campaign-cell.is-now-playing{box-shadow:0 1px 0 color-mix(in srgb, var(--section-accent,#8b6f47) 35%, transparent) inset, 0 0 0 3px color-mix(in srgb, var(--section-accent,#8b6f47) 25%, transparent);animation:none}}.campaign-cell.locked:hover{box-shadow:none;transform:none}.campaign-cell__head{align-items:flex-start;gap:8px;min-width:0;display:flex}.campaign-cell .campaign-cell__stars,.campaign-cell .campaign-cell__lock{position:absolute;top:8px;right:8px}.campaign-cell__dot{background:linear-gradient(135deg, var(--section-accent,var(--campaign-border,#8b6f47)) 0%, var(--section-accent-ink,var(--campaign-border,#8b6f47)) 100%);color:#fff;width:30px;height:30px;font-size:14px;font-weight:800;font-family:"Inter", var(--font-ui,sans-serif);letter-spacing:.02em;transition:background var(--campaign-section-fade,.4s ease);border-radius:10px;flex:none;place-items:center;display:grid;box-shadow:0 2px 6px -2px #0000004d}.campaign-cell.variant-milestone .campaign-cell__dot{background:#1f7a3a}.campaign-cell.variant-endgame .campaign-cell__dot{background:var(--campaign-gold,#b8860b)}.campaign-cell.locked .campaign-cell__dot{background:#b8aa92}.campaign-cell__heading{flex:auto;min-width:0;padding-right:42px}@media (max-width:560px){.campaign-map__grid-cells{grid-template-columns:minmax(0,1fr);grid-auto-flow:row}.campaign-cell{grid-area:auto/1/auto/-1!important}.campaign-cell__heading{padding-right:0}.campaign-cell .campaign-cell__stars,.campaign-cell .campaign-cell__lock{position:absolute;top:10px;right:10px}}@media (max-width:380px){.campaign-map__grid-cells{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}.campaign-map{--campaign-cell-radius:8px;--campaign-tile-size:20px}.campaign-cell{gap:4px;min-width:60px;min-height:0;padding:4px;grid-area:auto!important}.campaign-cell__head{gap:4px}.campaign-cell__dot{border-radius:7px;width:22px;height:22px;font-size:11px}.campaign-cell__heading{padding-right:0}.campaign-cell__title,.campaign-cell__subtitle,.campaign-cell__tag{display:none}.campaign-cell .campaign-cell__stars{padding:1px 4px;font-size:9px;position:absolute;top:4px;right:4px}.campaign-cell .campaign-cell__lock{width:16px;height:16px;font-size:9px;position:absolute;top:4px;right:4px}.campaign-cell__tiles{gap:3px;padding-top:0}}.campaign-cell__title{letter-spacing:-.01em;color:var(--campaign-ink,#2b1e10);-webkit-line-clamp:2;word-break:keep-all;-webkit-hyphens:none;hyphens:none;-webkit-box-orient:vertical;margin:0;font-size:12px;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.campaign-cell__tag{background:color-mix(in srgb, var(--section-accent,#8b6f47) 18%, transparent);color:var(--section-accent-ink,var(--campaign-border,#8b6f47));text-transform:lowercase;letter-spacing:.04em;border-radius:5px;margin-top:2px;padding:1px 5px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:9px;display:inline-block}.campaign-cell__stars{background:color-mix(in srgb, var(--campaign-gold,#b8860b) 14%, transparent);color:var(--campaign-gold,#b8860b);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;align-items:center;gap:2px;padding:2px 5px;font-size:10px;font-weight:700;display:inline-flex}.campaign-cell.locked .campaign-cell__stars{color:var(--campaign-ink-soft,#6b5a47);background:#0000000f}.campaign-cell__star-glyph{font-size:13px;line-height:1}.campaign-cell__tiles{grid-template-columns:repeat(auto-fill, var(--campaign-tile-size,32px));justify-content:start;gap:6px;padding-top:4px;display:grid}.campaign-cell__lock{width:22px;height:22px;color:var(--campaign-ink-soft,#6b5a47);background:#2b1e101f;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;font-size:12px;display:inline-flex;position:relative}.campaign-tile{width:var(--campaign-tile-size,32px);height:var(--campaign-tile-size,32px);background:linear-gradient(155deg, color-mix(in srgb, var(--tile-bg,#888) 80%, white) 0%, var(--tile-bg,#888) 100%);color:var(--tile-fg,#fff);-webkit-user-select:none;user-select:none;border-radius:8px;flex-shrink:0;place-items:center;display:grid;position:relative;box-shadow:inset 0 1px #ffffff4d,inset 0 -2px #00000038,0 1px 2px #00000026}.campaign-tile.locked{opacity:.42;filter:saturate(.6);box-shadow:none}.campaign-tile__letter{letter-spacing:.02em;font-size:11px;font-weight:700;line-height:1}.campaign-cell__tiles .campaign-tile.locked{opacity:.45;filter:grayscale()}.campaign-cell__tiles .campaign-tile.locked .campaign-tile__lock{display:none}.campaign-tile__stars{display:none!important}.campaign-tile__lock{color:#ffffffd9;pointer-events:none;place-items:center;font-size:14px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.campaign-tile__stars{align-items:center;gap:3px;display:flex}.campaign-tile__star{box-sizing:border-box;background:#ffffff4d;border:1px solid #ffffff8c;border-radius:50%;width:7px;height:7px}.campaign-tile__star.lit{background:var(--campaign-gold,#b8860b);border-color:#0000;box-shadow:0 0 4px #b8860b8c}.campaign-modal__backdrop{-webkit-backdrop-filter:blur(4px);z-index:200;background:#2b1e106b;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.campaign-modal{background:var(--campaign-surface,#fbf3e4);border:2px solid var(--section-accent,var(--campaign-border,#8b6f47));width:100%;max-width:460px;color:var(--campaign-ink,#2b1e10);font-family:"Inter", var(--font-ui,sans-serif);border-radius:20px;gap:16px;padding:22px 22px 18px;display:grid;box-shadow:0 20px 60px #2b1e1038}.campaign-modal__head{align-items:flex-start;gap:12px;display:flex}.campaign-modal__chapter{letter-spacing:.1em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:11px;font-weight:700}.campaign-modal__title{color:var(--campaign-ink,#2b1e10);margin:2px 0 0;font-size:20px;font-weight:700;line-height:1.2}.campaign-modal__total{background:color-mix(in srgb, var(--campaign-gold,#b8860b) 14%, transparent);color:var(--campaign-gold,#b8860b);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;margin-top:8px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.campaign-modal__head-actions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.campaign-modal__help,.campaign-modal__close{width:32px;height:32px;color:var(--campaign-ink-soft,#6b5a47);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;font-size:18px;font-weight:700;line-height:1;transition:background .16s;display:grid}.campaign-modal__help{font-size:16px}.campaign-modal__help:hover,.campaign-modal__close:hover{background:#2b1e100f}.theory-deck__overlay{z-index:60;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.theory-deck__panel{background:var(--surface,#fffef8);color:var(--campaign-ink,#2b1e10);border:1px solid var(--border,#00000014);box-shadow:var(--shadow-strong,0 24px 48px -12px #00000040);border-radius:18px;grid-template-rows:auto 1fr auto auto;width:min(560px,100%);max-height:calc(100vh - 32px);display:grid;overflow:hidden}.theory-deck__head{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 18px 10px;display:grid}.theory-deck__counter{letter-spacing:.06em;color:var(--campaign-ink-soft,#6b5a47);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.theory-deck__title{text-align:center;margin:0;font-size:17px;font-weight:700;line-height:1.25}.theory-deck__close{cursor:pointer;width:32px;height:32px;color:var(--campaign-ink-soft,#6b5a47);background:0 0;border:none;border-radius:8px;font-size:18px}.theory-deck__close:hover{background:#2b1e100f}.theory-deck__visual{place-items:center;min-height:220px;padding:12px 18px;display:grid;overflow:hidden}.theory-deck__body{gap:8px;padding:8px 22px 14px;display:grid;overflow:auto}.theory-deck__body p{margin:0;font-size:14px;line-height:1.55}.theory-deck__foot{border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 14px 14px;display:grid}.theory-deck__nav{border:1px solid var(--border,#0000001f);cursor:pointer;color:var(--campaign-ink,#2b1e10);background:0 0;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}.theory-deck__nav:disabled{opacity:.4;cursor:default}.theory-deck__nav--primary{background:var(--accent,#b8860b);color:#fff;border-color:#0000}.theory-deck__nav-key{color:#fff;background:#0000002e;border-radius:4px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:700;display:inline-grid}.theory-deck__nav:not(.theory-deck__nav--primary) .theory-deck__nav-key{color:var(--campaign-ink,#2b1e10);background:#00000014}.theory-deck__hint{text-align:center;color:var(--campaign-ink-soft,#6b5a47);font-size:11px}.stage-runner .stage-runner__pane,.stage-runner__body>.stage-runner__pane{max-width:720px;margin:0 auto}.quiz-runner__counter{letter-spacing:.06em;color:var(--campaign-ink-soft,#6b5a47);font-variant-numeric:tabular-nums;align-self:flex-end;margin-bottom:6px;font-size:11px;font-weight:700}.quiz-runner__word{letter-spacing:.02em;height:200px;color:var(--campaign-ink,#2b1e10);place-items:center;font-size:56px;font-weight:600;display:grid}.quiz-runner__caption{text-align:center;color:var(--campaign-ink-soft,#6b5a47);margin:8px 0 0;font-family:ui-monospace,Menlo,monospace}.quiz-runner__rule{text-align:center;color:var(--campaign-ink-soft,#6b5a47);margin:14px 0 0;font-size:12px}.stream-runner__head{grid-template-columns:1fr auto;align-items:baseline;gap:6px;margin-bottom:8px;display:grid}.stream-runner__meta{color:var(--campaign-ink-soft,#6b5a47);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.stream-runner__targets{justify-content:center;gap:12px;margin:8px 0;display:flex}.stream-runner__target{background:color-mix(in srgb, var(--accent,#b8860b) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent,#b8860b) 50%, transparent);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 24px;display:flex}.stream-runner__target-label{letter-spacing:.08em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);font-family:ui-monospace,Menlo,monospace;font-size:11px}.stream-runner__target-keys{letter-spacing:.04em;color:var(--campaign-ink,#2b1e10);font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,monospace;font-size:32px;font-weight:700}.stream-runner__stage{aspect-ratio:1;background:var(--campaign-bg,#faf6ee);border:1px solid color-mix(in srgb, var(--border) 60%, transparent);border-radius:14px;align-self:center;place-items:center;width:100%;max-width:280px;margin:8px auto;transition:background .18s,border-color .18s;display:grid}.stream-runner__stage.is-correct{background:#2ecc7138;border-color:#2ecc7199}.stream-runner__stage.is-wrong{background:#c0392b38;border-color:#c0392b99}.streak-flame{color:var(--campaign-ink,#2b1e10);background:#ff6b3524;border:1px solid #ff6b3559;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.streak-flame.is-dim{opacity:.55}.streak-flame.is-cold{border-color:var(--border,#0000001f);color:var(--campaign-ink-soft,#6b5a47);background:0 0}.streak-flame__emoji{font-size:16px}.streak-flame__count{font-variant-numeric:tabular-nums}.streak-flame__label{opacity:.75;font-weight:500}.streak-flame.is-compact{padding:3px 8px;font-size:12px}.home-leaderboard{background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid var(--border,#00000014);max-width:min(720px,100%);box-shadow:var(--shadow-soft,0 8px 16px -8px #00000014);border-radius:14px;margin:16px auto;padding:14px 16px}.home-leaderboard__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.home-leaderboard__title{letter-spacing:.04em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:14px;font-weight:700}.home-leaderboard__tabs{gap:4px;display:inline-flex}.home-leaderboard__tab{border:1px solid var(--border);cursor:pointer;color:var(--campaign-ink-soft,#6b5a47);background:0 0;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.home-leaderboard__tab.is-active{background:var(--accent,#b8860b);color:#fff;border-color:#0000}.home-leaderboard__rows{gap:4px;margin:0;padding:0;list-style:none;display:grid}.home-leaderboard__row{border-radius:8px;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:6px 10px;font-size:13px;display:grid}.home-leaderboard__row.is-me{background:color-mix(in srgb, var(--accent,#b8860b) 14%, transparent);font-weight:600}.home-leaderboard__rank{font-variant-numeric:tabular-nums;opacity:.7}.home-leaderboard__name{align-items:baseline;gap:6px;display:inline-flex}.home-leaderboard__level{opacity:.55;font-size:11px}.home-leaderboard__score{font-variant-numeric:tabular-nums}.home-leaderboard__empty{color:var(--campaign-ink-soft,#6b5a47);margin:8px 0 0;font-size:13px}.campaign-modal__list{gap:8px;display:grid}.campaign-modal__phases{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.campaign-modal__phases-full{grid-column:1/-1}.campaign-modal__tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.campaign-modal__group{background:color-mix(in srgb, var(--section-accent-soft,transparent) 50%, transparent);border:1px solid color-mix(in srgb, var(--section-accent,#8b6f47) 25%, transparent);border-radius:14px;gap:6px;padding:10px;display:grid}.campaign-modal__group--final{border-color:var(--campaign-gold,#b8860b);background:color-mix(in srgb, var(--campaign-gold,#b8860b) 14%, transparent)}.campaign-modal__group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--section-accent-ink,var(--campaign-border,#8b6f47));margin:2px 4px 6px;font-size:11px;font-weight:700}.campaign-modal__group--final .campaign-modal__group-label{color:var(--campaign-gold,#b8860b)}@keyframes phase-just-unlocked{0%{opacity:0;transform:translateY(-6px)scale(.98)}60%{opacity:1;transform:translateY(0)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.campaign-modal__group.just-unlocked,.campaign-modal__row.just-unlocked{animation:.7s phase-just-unlocked}.campaign-modal__lock-hint{color:var(--campaign-ink-soft,#6b5a47);text-align:center;background:#2b1e100a;border-radius:10px;margin:4px 0 0;padding:8px 12px;font-size:12px;font-style:italic}.campaign-modal__stage-chips{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:2px;display:flex}.campaign-modal__stage-chip{border:1px solid color-mix(in srgb, var(--campaign-border,#8b6f47) 28%, transparent);min-width:32px;color:var(--campaign-ink,#2b1e10);cursor:pointer;font:inherit;background:#ffffff80;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;display:inline-flex}.campaign-modal__stage-chip:hover{border-color:var(--section-accent,var(--campaign-border,#8b6f47));background:#ffffffc7}.campaign-modal__stage-chip.is-next{border-color:var(--section-accent-ink,var(--campaign-border,#8b6f47));box-shadow:0 0 0 1px color-mix(in srgb, var(--section-accent,#8b6f47) 30%, transparent)}.campaign-modal__stage-chip-num{font-variant-numeric:tabular-nums;color:var(--campaign-ink-soft,#6b5a47);font-size:10px;font-weight:700;line-height:1}.campaign-modal__stage-chip-stars{gap:1px;display:inline-flex}.campaign-modal__stage-chip-stars span{background:#2b1e102e;border-radius:50%;width:5px;height:5px}.campaign-modal__stage-chip-stars span.lit{background:var(--campaign-gold,#b8860b);box-shadow:0 0 3px #b8860b80}.campaign-modal__stage-chip.stars-3{background:color-mix(in srgb, var(--campaign-gold,#b8860b) 16%, white);border-color:var(--campaign-gold,#b8860b)}.campaign-modal__stage-chip.is-cleared{border-color:#1f7a3a8c}.campaign-modal__stage-chip-check{color:#1f7a3a;margin-top:1px;font-size:9px;font-weight:800;line-height:1}.campaign-modal__row{aspect-ratio:1.05;border:1px solid color-mix(in srgb, var(--campaign-border,#8b6f47) 35%, transparent);text-align:center;width:100%;min-height:132px;font:inherit;color:inherit;cursor:pointer;background:#ffffff8c;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 10px;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s;display:flex;position:relative}.campaign-modal__phases-full>.campaign-modal__row,.campaign-modal__group--final .campaign-modal__row{aspect-ratio:auto;min-height:96px}.campaign-modal__row:hover{border-color:var(--section-accent,var(--campaign-border,#8b6f47));background:#ffffffc7;transform:translateY(-1px);box-shadow:0 6px 14px -8px #2b1e1038}.campaign-modal__row:focus-visible{outline:2px solid var(--section-accent,var(--campaign-border,#8b6f47));outline-offset:2px}.campaign-modal__row.is-cleared{background:#e9f2ecb8;border-color:#1f7a3a99}.campaign-modal__row.is-cleared:hover{background:#e0ede4de;border-color:#1f7a3a}.campaign-modal__row.locked{opacity:.55}.campaign-modal__tile-overlay{pointer-events:none;opacity:.55;transform-origin:100% 0;border-radius:14px;justify-content:center;align-items:center;font-size:56px;font-weight:800;line-height:1;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;transform:rotate(-12deg)}.campaign-modal__tile-overlay--done{color:#1f7a3a;opacity:.65}.campaign-modal__done-pill{color:#1f7a3a;letter-spacing:.04em;white-space:nowrap;opacity:.55;transform-origin:100% 0;background:#1f7a3a29;border:1px solid #1f7a3a80;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:6px;right:6px;transform:rotate(-12deg)}.campaign-modal__row .campaign-tile{gap:0;width:40px;min-height:40px;padding:4px}.campaign-modal__row .campaign-tile__stars{display:none}.campaign-modal__row-label{color:var(--campaign-ink,#2b1e10);font-size:14px;font-weight:700;line-height:1.2}.campaign-modal__row-progress{color:var(--campaign-ink-soft,#6b5a47);font-size:11px;line-height:1.2}.campaign-modal__row-stars{color:var(--campaign-gold,#b8860b);letter-spacing:1px;gap:2px;font-size:13px;line-height:1;display:inline-flex}.campaign-modal__row-stars .empty{color:#0000002e}@media (max-width:480px){.campaign-modal__phases,.campaign-modal__tile-grid{grid-template-columns:minmax(0,1fr)}.campaign-modal__row{aspect-ratio:auto;min-height:110px}}.campaign-modal__btn{cursor:pointer;background:var(--section-accent-ink,var(--campaign-border,#8b6f47));color:#fff;box-shadow:0 2px 0 color-mix(in srgb, var(--section-accent-ink,var(--campaign-border,#8b6f47)) 60%, transparent);border:none;border-radius:10px;flex:none;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:transform .14s,box-shadow .14s}.campaign-modal__btn:hover{transform:translateY(-1px)}.campaign-modal__btn:active{box-shadow:0 0 0 color-mix(in srgb, var(--section-accent-ink,var(--campaign-border,#8b6f47)) 60%, transparent);transform:translateY(1px)}.campaign-modal__btn.continue{color:var(--section-accent-ink,var(--campaign-border,#8b6f47));border:1.5px solid var(--section-accent,var(--campaign-border,#8b6f47));box-shadow:none;background:0 0}.campaign-modal__btn.continue:hover{background:var(--section-accent-soft,#b8860b29)}.campaign-modal__btn[disabled]{cursor:not-allowed;opacity:.5;box-shadow:none}.stage-picker__backdrop{-webkit-backdrop-filter:blur(4px);z-index:210;background:#2b1e106b;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.stage-picker{background:var(--campaign-surface,#fbf3e4);border:2px solid var(--section-accent,var(--campaign-border,#8b6f47));width:100%;max-width:460px;color:var(--campaign-ink,#2b1e10);font-family:"Inter", var(--font-ui,sans-serif);border-radius:20px;gap:12px;padding:18px 18px 14px;display:grid;box-shadow:0 20px 60px #2b1e1038}.stage-picker__head{align-items:flex-start;gap:12px;display:flex}.stage-picker__chapter{letter-spacing:.1em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:11px;font-weight:700}.stage-picker__title{margin:2px 0 0;font-size:17px;font-weight:700;line-height:1.2}.stage-picker__sub{color:var(--campaign-ink-soft,#6b5a47);margin:4px 0 0;font-size:12px}.stage-picker__close{width:32px;height:32px;color:var(--campaign-ink-soft,#6b5a47);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;margin-left:auto;font-size:18px;font-weight:700;line-height:1;transition:background .16s;display:grid}.stage-picker__close:hover{background:#2b1e100f}.stage-picker__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.stage-picker__row{display:contents}.stage-picker__item{border:1px solid color-mix(in srgb, var(--campaign-border,#8b6f47) 35%, transparent);cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:#ffffff8c;border-radius:12px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 12px;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s;display:grid;position:relative}.stage-picker__item:hover{border-color:var(--section-accent,var(--campaign-border,#8b6f47));background:#ffffffd9;transform:translateY(-1px);box-shadow:0 6px 14px -8px #2b1e1038}.stage-picker__item:focus-visible{outline:2px solid var(--section-accent,var(--campaign-border,#8b6f47));outline-offset:2px}.stage-picker__item.is-cleared{background:#e6f0e9b9;border-color:#1f7a3a80}.stage-picker__index{letter-spacing:.06em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.stage-picker__name{color:var(--campaign-ink,#2b1e10);min-width:0;font-size:14px;font-weight:700}.stage-picker__stars{color:var(--campaign-gold,#b8860b);letter-spacing:1px;gap:2px;font-size:13px;display:inline-flex}.stage-picker__stars span:not(.lit){color:#0000002e}.stage-picker__count{color:var(--campaign-ink-soft,#6b5a47);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.stage-picker__check{color:#fff;background:#1f7a3a;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 4px #1f7a3a66}@media (min-width:720px){.campaign-map{max-width:520px}.campaign-part__header{z-index:2;background:0 0;margin-left:-90px;padding:0;position:sticky;top:6px}.campaign-part__name{font-size:14px}}.stage-runner{z-index:60;background:var(--campaign-bg,#faf6ee);color:var(--campaign-ink,#2b1e10);font-family:"Inter", var(--font-ui,sans-serif);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.stage-runner__header{background:var(--campaign-bg,#faf6ee);border-bottom:1px solid #8b6f472e;align-items:center;gap:12px;padding:12px 16px;display:flex}.stage-runner__badge{background:var(--section-accent-soft,#b8860b2e);width:32px;height:32px;color:var(--section-accent,#b8860b);letter-spacing:.02em;border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.stage-runner__titles{flex:auto;min-width:0}.stage-runner__title{color:var(--campaign-ink,#2b1e10);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:700;line-height:1.2;overflow:hidden}.stage-runner__counter{color:var(--campaign-ink-soft,#6b5a47);margin:2px 0 0;font-size:12px}.stage-runner__close{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);color:var(--campaign-ink,#2b1e10);cursor:pointer;border:1px solid #8b6f4766;border-radius:10px;flex:none;width:36px;height:36px;font-size:18px;line-height:1}.stage-runner__close:hover{background:#f1e5c8}.stage-runner__restart{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);color:var(--campaign-ink-soft,#6b5a47);cursor:pointer;border:1px solid #8b6f4766;border-radius:999px;flex:none;height:32px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;transition:background .14s,color .14s}.stage-runner__restart:hover{color:var(--campaign-ink,#2b1e10);background:#f1e5c8}.stage-runner__body{flex-direction:column;flex:auto;align-items:center;padding:16px;display:flex;overflow-y:auto}.stage-runner__pane{flex-direction:column;gap:14px;width:100%;max-width:520px;margin:0 auto;display:flex}.stage-runner__progress{color:var(--campaign-ink-soft,#6b5a47);align-items:center;gap:8px;font-size:12px;display:flex}.stage-runner__progress-bar{background:#8b6f472e;border-radius:999px;flex:auto;height:6px;position:relative;overflow:hidden}.stage-runner__progress-fill{background:var(--section-accent,#b8860b);border-radius:999px;transition:width .2s;position:absolute;top:0;bottom:0;left:0;right:auto}.stage-runner__heading{color:var(--campaign-ink-soft,#6b5a47);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px}.stage-runner__lede{color:var(--campaign-ink,#2b1e10);margin:0;font-size:15px;line-height:1.45}.stage-runner__card{background:var(--campaign-card,#fbf3e4);border:1px solid #8b6f4752;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.stage-runner__glyph-stage{aspect-ratio:1;background:var(--campaign-bg,#faf6ee);border-radius:12px;align-self:center;width:100%;max-width:360px}.stage-runner__button{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);color:var(--campaign-ink,#2b1e10);cursor:pointer;border:1px solid #8b6f4766;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:transform .12s,background .12s}.stage-runner__button:hover{background:#f1e5c8}.stage-runner__button:active{transform:translateY(1px)}.stage-runner__button--primary{background:var(--section-accent,#b8860b);border-color:var(--section-accent,#b8860b);color:#faf6ee}.stage-runner__button--primary:hover{background:var(--section-accent-strong,#a07309)}.stage-runner__button--danger{color:#faf6ee;background:#c66a4f;border-color:#c66a4f}.stage-runner__button-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.stage-runner__input{color:var(--campaign-ink,#2b1e10);box-sizing:border-box;background:#fffcf5;border:1px solid #8b6f4766;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:15px}.stage-runner__input:focus{border-color:var(--section-accent,#b8860b);box-shadow:0 0 0 3px var(--section-accent-soft,#b8860b38);outline:none}.stage-runner__note{color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:12px}.stage-runner__error{color:#b23a2a;margin:0;font-size:13px}.stage-runner__divider{background:#8b6f4738;height:1px;margin:4px 0}.theory-card{max-width:560px;margin:0 auto}.theory-card__counter-pill{background:var(--section-accent-soft,color-mix(in srgb, var(--color-accent,#b8860b) 14%, transparent));color:var(--section-accent-ink,var(--color-accent-ink,#6b4500));letter-spacing:.04em;border-radius:999px;align-items:baseline;gap:4px;margin:0 auto 6px;padding:4px 12px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;font-weight:700;display:inline-flex}.theory-card__counter-divider{opacity:.5;margin:0 1px}.theory-card__glyph-replay{-webkit-appearance:none;appearance:none;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;width:100%;margin:0;padding:0;transition:transform .2s;display:block}.theory-card__glyph-replay:hover{transform:scale(1.02)}.theory-card__glyph-replay:after{content:"Tap to replay";text-align:center;color:var(--campaign-ink-soft,#6b5a47);margin-top:2px;font-size:11px;font-style:italic;display:block}.theory-card__body{flex-direction:column;gap:10px;margin-top:12px;display:flex}.theory-card__body p{color:var(--campaign-ink,#2b1e10);margin:0;font-size:15px;line-height:1.55}.theory-card__note{text-align:center;color:var(--campaign-ink-soft,#6b5a47);margin:8px 0 0;font-size:13px;font-style:italic}.theory-quiz__options{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.theory-quiz__option{border-radius:var(--radius-md,12px);border:2px solid var(--color-border,#dcc9a2);background:var(--color-surface,#fbf3e4);color:var(--color-ink,#2b1e10);font:inherit;cursor:pointer;text-align:center;padding:12px 14px;font-size:15px;font-weight:700;transition:transform .14s,border-color .2s,background .2s}.theory-quiz__option:hover:not(:disabled){border-color:var(--color-primary,#8b6f47);transform:translateY(-1px)}.theory-quiz__option:disabled{cursor:default}.theory-quiz__option--correct{background:var(--color-success-soft,#d4ecdd);border-color:var(--color-success,#4caf7a);color:var(--color-success-ink,#2e6b47)}.theory-quiz__option--wrong{background:var(--color-danger-soft,#f4d5d0);border-color:var(--color-danger,#c0392b);color:var(--color-danger-ink,#802318)}.theory-quiz__option--reveal{border-color:var(--color-success,#4caf7a);border-style:dashed}.theory-runner__chapter{letter-spacing:.08em;text-transform:uppercase;color:var(--section-accent,#b8860b);font-size:12px;font-weight:700}.theory-runner__chapter-title{margin:4px 0 0;font-size:22px;font-weight:700;line-height:1.2}.theory-runner__book-link{background:var(--section-accent-soft,#b8860b2e);color:var(--section-accent,#b8860b);border-radius:10px;align-self:flex-start;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.memorize-runner__card{position:relative}.memorize-runner__face{text-align:center;flex-direction:column;gap:8px;display:flex}.memorize-runner__answer{letter-spacing:-.01em;font-size:28px;font-weight:700}.memorize-runner__outline{color:var(--campaign-ink-soft,#6b5a47);font-family:Iosevka,Menlo,monospace;font-size:14px}.memorize-runner__rate{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}@media (min-width:480px){.memorize-runner__rate{grid-template-columns:repeat(4,1fr)}}.memorize-runner__rate-btn{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);color:var(--campaign-ink,#2b1e10);cursor:pointer;border:1px solid #8b6f4766;border-radius:10px;padding:10px;font-size:14px;font-weight:600}.memorize-runner__rate-btn[data-tone=again]{color:#b23a2a}.memorize-runner__rate-btn[data-tone=hard]{color:#c28200}.memorize-runner__rate-btn[data-tone=good]{color:#2e7a4e}.memorize-runner__rate-btn[data-tone=easy]{color:#2962c4}.repair-runner__intent{text-align:center;color:var(--campaign-ink-soft,#6b5a47);font-size:14px}.repair-runner__intent-word{color:var(--campaign-ink,#2b1e10);font-size:18px;font-style:italic}.repair-runner__intent-chord{margin-left:8px;font-family:Iosevka,Menlo,monospace;font-size:13px}.repair-runner__tiles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.repair-runner__tile{text-align:left;padding:12px;font-size:13px}.repair-runner__tile[data-state=wrong]{border-color:#b23a2a;animation:.28s ease-in-out shake}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}to{transform:translate(0)}}.customise-runner__pair{grid-template-columns:1fr 1fr;align-items:stretch;gap:10px;display:grid}.customise-runner__choice{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);cursor:pointer;border:2px solid #8b6f4752;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px;display:flex}.customise-runner__choice[data-picked=true]{border-color:var(--section-accent,#b8860b);box-shadow:0 0 0 3px var(--section-accent-soft,#b8860b38)}.customise-runner__choice-label{color:var(--campaign-ink-soft,#6b5a47);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.customise-runner__description{text-align:center;color:var(--campaign-ink-soft,#6b5a47);font-size:14px}.customise-runner__leaf-head{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.customise-runner__word{text-align:center;letter-spacing:.06em;color:var(--campaign-ink,#2b1e10);font-family:JetBrains Mono,ui-monospace,monospace;font-size:22px;font-weight:700}.customise-tree__settings{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.customise-tree__setting{background:var(--campaign-card,#fbf3e4);border:1px solid #8b6f4752;border-radius:12px;overflow:hidden}.customise-tree__setting-head{-webkit-appearance:none;appearance:none;cursor:pointer;width:100%;font:inherit;color:var(--campaign-ink,#2b1e10);background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.customise-tree__setting-head:hover{background:#8b6f4714}.customise-tree__setting-title{font-size:15px;font-weight:700}.customise-tree__setting-progress{letter-spacing:.06em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);background:#8b6f4729;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.customise-tree__setting-progress[data-cleared=true]{background:var(--section-accent-soft,#b8860b38);color:var(--section-accent-ink,#6b4500)}.customise-tree__leaves{flex-direction:column;gap:8px;padding:4px 14px 14px;display:flex}.customise-tree__leaf-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.customise-tree__leaf{-webkit-appearance:none;appearance:none;font:inherit;background:var(--campaign-bg,#faf6ee);color:var(--campaign-ink,#2b1e10);cursor:pointer;border:1px solid #8b6f4752;border-radius:10px;justify-content:space-between;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:600;transition:transform .12s,border-color .12s;display:flex}.customise-tree__leaf:hover{border-color:var(--section-accent,#b8860b);transform:translateY(-1px)}.customise-tree__leaf[data-cleared=true]{border-color:var(--section-accent,#b8860b);box-shadow:0 0 0 2px var(--section-accent-soft,#b8860b38)}.customise-tree__leaf-title{text-align:left;flex:auto}.customise-tree__leaf-star{color:var(--section-accent,#b8860b);font-size:14px}.listen-runner__speaker{background:var(--section-accent-soft,#b8860b38);border:3px solid var(--section-accent,#b8860b);cursor:pointer;width:120px;height:120px;color:var(--section-accent,#b8860b);border-radius:50%;justify-content:center;align-self:center;align-items:center;font-size:48px;line-height:1;display:inline-flex}.listen-runner__speaker:hover{background:var(--section-accent,#b8860b);color:var(--campaign-bg,#faf6ee)}.listen-runner__replays{text-align:center;color:var(--campaign-ink-soft,#6b5a47);font-size:12px}.listen-runner__feedback{text-align:center;font-size:13px;font-weight:600}.listen-runner__feedback[data-tone=correct]{color:#2e7a4e}.listen-runner__feedback[data-tone=wrong]{color:#b23a2a}.stage-runner__backdrop{z-index:80;background:#2b1e1073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.stage-runner__modal{background:var(--campaign-bg,#faf6ee);text-align:center;border:1px solid #8b6f4766;border-radius:18px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:22px;display:flex}.stage-runner__modal-title{margin:0;font-size:18px;font-weight:700}.stage-runner__modal-sub{color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:13px}.stage-runner__stars{justify-content:center;gap:10px;font-size:32px;line-height:1;display:flex}.stage-runner__star{color:#8b6f4752}.stage-runner__star[data-earned=true]{color:var(--section-accent,#b8860b)}.stage-runner__star[data-earned=true]:first-child{animation-delay:0s}.stage-runner__star[data-earned=true]:nth-child(2){animation-delay:.12s}.stage-runner__star[data-earned=true]:nth-child(3){animation-delay:.24s}@keyframes xp-floater{0%{opacity:0;transform:translateY(8px)scale(.95)}20%{opacity:1;transform:translateY(0)scale(1.05)}60%{opacity:1;transform:translateY(-8px)scale(1)}to{opacity:0;transform:translateY(-28px)scale(.95)}}.stage-runner__xp-floater{background:var(--color-accent-soft,#f1e0a8);width:max-content;color:var(--color-accent-ink,#6b4500);letter-spacing:.04em;border-radius:999px;margin:8px auto 0;padding:4px 14px;font-size:14px;font-weight:800;animation:1.6s .36s both xp-floater;display:block}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-40px)rotate(0)}10%{opacity:1}to{opacity:0;transform:translateY(360px)rotate(540deg)}}.stage-runner__confetti{pointer-events:none;border-radius:inherit;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.stage-runner__confetti-piece{border-radius:2px;width:8px;height:12px;animation:1.8s ease-in both confetti-fall;position:absolute;top:-20px}.stage-runner__confetti-piece:nth-child(3n){background:var(--color-success,#4caf7a)}.stage-runner__confetti-piece:nth-child(3n+1){background:var(--color-accent,#b8860b)}.stage-runner__confetti-piece:nth-child(3n+2){background:var(--color-danger,#c0392b)}.stage-runner__modal{position:relative}@media (prefers-reduced-motion:reduce){.stage-runner__xp-floater,.stage-runner__confetti-piece{animation:none}}.stage-runner__modal-actions{flex-direction:column;gap:8px;display:flex}@media (min-width:720px){.stage-runner__body{padding:24px 16px}}@media (prefers-reduced-motion:reduce){.repair-runner__tile[data-state=wrong]{animation:none}}.stage-runner .runner-pane{flex-direction:column;align-items:stretch;gap:14px;width:100%;max-width:520px;margin:0 auto;display:flex}.stage-runner .runner-progress{font-variant-numeric:tabular-nums;color:var(--campaign-ink-soft,#6b5a47);text-align:center;font-size:12px}.stage-runner .runner-progress-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.stage-runner .runner-glyph-stage{aspect-ratio:1;background:var(--campaign-card,#fbf3e4);border:1px solid #8b6f4752;border-radius:18px;width:100%;max-width:420px;margin:0 auto;transition:border-color .22s,box-shadow .22s;overflow:hidden}.stage-runner .runner-glyph-stage.compact{aspect-ratio:1;max-width:280px}.stage-runner .runner-glyph-stage.is-wrong{border-color:#b23a2a;box-shadow:0 0 0 3px #b23a2a38}.stage-runner .runner-stat-panel{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.stage-runner .runner-stat{background:var(--campaign-card,#fbf3e4);border:1px solid #8b6f4747;border-radius:999px;flex-direction:column;align-items:center;min-width:72px;padding:6px 12px;font-size:12px;display:inline-flex}.stage-runner .runner-stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--campaign-ink-soft,#6b5a47);font-size:11px}.stage-runner .runner-stat-value{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.stage-runner .runner-input-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-runner .runner-input{min-height:44px;color:var(--campaign-ink,#2b1e10);background:#fffcf5;border:1px solid #8b6f4766;border-radius:12px;flex:200px;padding:10px 12px;font-family:inherit;font-size:16px;transition:border-color .18s,box-shadow .18s}.stage-runner .runner-input:focus{border-color:var(--section-accent,#b8860b);box-shadow:0 0 0 3px var(--section-accent-soft,#b8860b38);outline:none}.stage-runner .runner-input.is-wrong{border-color:#b23a2a;box-shadow:0 0 0 3px #b23a2a38}.stage-runner .runner-submit,.stage-runner .runner-skip{-webkit-appearance:none;appearance:none;background:var(--campaign-card,#fbf3e4);color:var(--campaign-ink,#2b1e10);cursor:pointer;border:1px solid #8b6f4766;border-radius:12px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:transform .12s,background .12s}.stage-runner .runner-submit{background:var(--section-accent,#b8860b);border-color:var(--section-accent,#b8860b);color:var(--campaign-bg,#faf6ee)}.stage-runner .runner-submit:hover{background:var(--section-accent-strong,#a07309)}.stage-runner .runner-skip:hover{background:#f1e5c8}.stage-runner .runner-submit:disabled,.stage-runner .runner-skip:disabled{opacity:.55;cursor:not-allowed}.stage-runner .runner-empty{text-align:center;color:var(--campaign-ink-soft,#6b5a47);padding:32px 16px;font-size:14px}.stage-runner .runner-result,.stage-runner .runner-pane-done{text-align:center;background:var(--campaign-card,#fbf3e4);border:1px solid #8b6f4766;border-radius:16px;flex-direction:column;gap:8px;margin-top:12px;padding:16px;display:flex}.stage-runner .runner-result-title{font-size:16px;font-weight:700}.stage-runner .runner-result-line{color:var(--campaign-ink-soft,#6b5a47);font-size:13px}.stage-runner .runner-stars{color:var(--section-accent,#b8860b);justify-content:center;gap:10px;font-size:28px;line-height:1;display:flex}.stage-runner .runner-wpm-dial{border:1px solid var(--section-accent,#b8860b);background:var(--section-accent-soft,#b8860b2e);color:var(--section-accent,#b8860b);border-radius:14px;flex-direction:column;align-items:center;padding:6px 12px;transition:border-color .22s,color .22s,background .22s;display:inline-flex}.stage-runner .runner-wpm-dial.is-strained{color:#b23a2a;background:#b23a2a24;border-color:#b23a2a}.stage-runner .runner-wpm-num{font-size:18px;font-weight:700;line-height:1}.stage-runner .runner-wpm-label{letter-spacing:.08em;text-transform:uppercase;font-size:10px}.stage-runner .runner-pane.write-runner .runner-target-word{text-align:center;letter-spacing:-.01em;padding:6px 12px;font-size:28px;font-weight:700}.stage-runner .runner-keyboard{grid-template-rows:28px 56px 56px 56px;grid-template-columns:repeat(10,minmax(36px,1fr));gap:6px;width:100%;max-width:560px;margin:0 auto;display:grid}.stage-runner .runner-key{-webkit-appearance:none;appearance:none;background:var(--color-surface,#fbf3e4);cursor:pointer;border:1px solid #8b6f4752;border-radius:10px;place-items:center;min-width:0;padding:0;transition:transform .12s,border-color .12s,background .12s;display:grid;position:relative;overflow:hidden}.stage-runner .runner-key.is-special{background:color-mix(in srgb, var(--color-accent-soft,#f1e0a8) 50%, var(--color-surface,#fbf3e4));border-color:#b8860b73}.stage-runner .runner-key:hover{background:#f1e5c8}.stage-runner .runner-key.is-on{background:var(--section-accent-soft,#b8860b47);border-color:var(--section-accent,#b8860b);transform:translateY(1px)}.stage-runner .runner-key.is-vowel{border-color:#b23a2a66}.stage-runner .runner-key.is-vowel.is-on{background:#b23a2a2e;border-color:#b23a2a}.stage-runner .runner-key-fragment{pointer-events:none;opacity:1;place-items:center;display:grid;position:absolute;top:4px;bottom:4px;left:4px;right:4px}.stage-runner .runner-key-fragment .glyph-canvas-wrap{aspect-ratio:1!important;width:auto!important;max-width:100%!important;height:auto!important;max-height:100%!important}.stage-runner .runner-key-fragment canvas{width:100%!important;max-width:none!important;height:100%!important;max-height:none!important}.stage-runner .runner-key-letter{z-index:1;font-family:var(--font-display,"Fraunces", Georgia, serif);color:var(--color-ink,#2b1e10);letter-spacing:-.02em;pointer-events:none;font-size:16px;font-weight:700;line-height:1;position:relative}.stage-runner .runner-key.is-on .runner-key-letter{color:#fff;text-shadow:0 1px 2px #00000059}.stage-runner .runner-key.is-vowel .runner-key-letter{color:var(--color-danger-ink,#802318)}.stage-runner .runner-key.is-vowel.is-on .runner-key-letter{color:#fff}.stage-runner .runner-key.is-special .runner-key-letter{color:var(--color-accent-ink,#6b4500)}@keyframes label-tween{0%,to{opacity:1}50%{opacity:0}}.runner-keyboard[data-label-tween] .runner-key-letter{animation:2.4s ease-in-out infinite label-tween}@media (prefers-reduced-motion:reduce){.runner-keyboard[data-label-tween] .runner-key-letter{animation:none}}.stage-runner .read-runner__stream{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-height:360px;display:grid;position:relative}.stage-runner .read-runner__current{z-index:1;flex-direction:column;align-items:center;display:flex}.stage-runner .read-runner__ghost{opacity:.28;pointer-events:none;filter:blur(.4px);flex-direction:column;align-items:center;transition:opacity .22s;display:flex}.stage-runner .read-runner__ghost--prev{justify-self:end}.stage-runner .read-runner__ghost--next{opacity:.45;justify-self:start}.stage-runner .read-runner__ghost-word{font-family:var(--font-display,"Fraunces", Georgia, serif);color:var(--color-ink-soft,#6b5a47);margin-top:4px;font-size:13px}.stage-runner .read-runner__word{text-align:center;font-family:var(--font-display,"Fraunces", Georgia, serif);letter-spacing:-.01em;color:var(--color-ink,#2b1e10);margin-top:16px;font-size:28px;font-weight:700}@media (max-width:600px){.stage-runner .read-runner__stream{grid-template-columns:1fr;min-height:auto}.stage-runner .read-runner__ghost{display:none}}.stage-runner .read-runner__controls{flex-direction:column;align-items:stretch;gap:14px;width:100%;max-width:480px;margin:16px auto 0;display:flex}.stage-runner .read-runner__speed{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.stage-runner .read-runner__speed-btn{border:1px solid var(--color-border,#dcc9a2);background:var(--color-surface,#fbf3e4);color:var(--color-ink,#2b1e10);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.stage-runner .read-runner__speed-btn.is-active{background:var(--color-primary-soft,#e8d9b8);border-color:var(--color-primary,#8b6f47);color:var(--color-primary-ink,#5b4528)}.stage-runner .endurance-controls{flex-direction:column;align-items:center;gap:8px;display:flex}.stage-runner .endurance-meta{color:var(--campaign-ink-soft,#6b5a47);font-size:12px}.stage-runner .endurance-divider{margin:0 4px}.stage-runner .endurance-progress-bar{background:#8b6f472e;border-radius:999px;width:100%;height:6px;overflow:hidden}.stage-runner .endurance-progress-fill{background:var(--section-accent,#b8860b);height:100%;transition:width .2s}.stage-runner .endurance-summary{flex-direction:column;gap:10px;width:100%;max-width:520px;margin:0 auto;display:flex}.stage-runner .endurance-summary-title{margin:0;font-size:18px;font-weight:700}.stage-runner .endurance-summary-prompt{color:var(--campaign-ink-soft,#6b5a47);margin:0;font-size:13px}.stage-runner .endurance-summary-input{color:var(--campaign-ink,#2b1e10);resize:vertical;background:#fffcf5;border:1px solid #8b6f4766;border-radius:12px;min-height:100px;padding:12px;font-family:inherit;font-size:15px}.stage-runner .endurance-summary-input:focus{border-color:var(--section-accent,#b8860b);box-shadow:0 0 0 3px var(--section-accent-soft,#b8860b38);outline:none}@media (min-width:720px){.stage-runner .runner-pane{max-width:640px}.stage-runner .runner-pane.read-runner,.stage-runner .runner-pane.speed-runner{grid-template-columns:minmax(0,1fr) 180px;grid-template-areas:"progress progress""glyph stats""input input";gap:14px 16px;display:grid}.stage-runner .runner-pane.read-runner>.runner-progress,.stage-runner .runner-pane.speed-runner>.runner-progress{grid-area:progress}.stage-runner .runner-pane.read-runner>.runner-glyph-stage,.stage-runner .runner-pane.speed-runner>.runner-glyph-stage{grid-area:glyph;margin:0}.stage-runner .runner-pane.read-runner>.runner-stat-panel,.stage-runner .runner-pane.speed-runner>.runner-stat-panel{flex-direction:column;grid-area:stats;justify-content:flex-start;align-items:stretch}.stage-runner .runner-pane.read-runner>.runner-input-row,.stage-runner .runner-pane.speed-runner>.runner-input-row{grid-area:input}}@media (prefers-reduced-motion:reduce){.stage-runner .runner-glyph-stage,.stage-runner .runner-input,.stage-runner .runner-key,.stage-runner .runner-wpm-dial,.stage-runner .endurance-progress-fill{transition:none}}@keyframes cell-zoom-in{0%{opacity:0;transform:scale(.92)}60%{opacity:1;transform:scale(1.04)}to{transform:scale(1)}}@keyframes tile-unlock{0%{opacity:0;transform:scale(.78)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes star-reveal{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.18)}to{transform:scale(1)}}@keyframes cell-complete-pulse{0%{box-shadow:0 0 0 0 var(--section-accent-soft,#b8860b66)}to{box-shadow:0 0 0 24px #0000}}@keyframes section-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes lock-fade{0%{opacity:1}to{opacity:0}}@keyframes modal-rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}@keyframes cell-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.cell-zoom-in{animation:.35s cubic-bezier(.34,1.56,.64,1) both cell-zoom-in}.tile-unlock{animation:.35s cubic-bezier(.34,1.56,.64,1) both tile-unlock}.star-reveal{animation:.4s cubic-bezier(.34,1.56,.64,1) both star-reveal}.cell-complete-pulse{animation:1.2s ease-out cell-complete-pulse}.section-fade-in{animation:.4s ease-out both section-fade-in}.modal-rise{animation:.28s cubic-bezier(.16,1,.3,1) both modal-rise}.backdrop-fade{animation:.22s ease-out both backdrop-fade}.cell-bob{animation:2.4s ease-in-out infinite cell-bob}.section-accent-target{transition:border-color .4s,box-shadow .4s}@media (prefers-reduced-motion:reduce){.cell-zoom-in,.tile-unlock,.star-reveal,.cell-complete-pulse,.section-fade-in,.modal-rise,.backdrop-fade,.cell-bob{animation:none!important}}.avatar-editor-page{gap:1rem;display:grid}.avatar-editor-header{align-items:flex-start;gap:.8rem;display:flex}.avatar-editor-layout{grid-template-columns:260px minmax(0,1fr);gap:1rem;display:grid}.avatar-editor-preview-panel{border:1px solid var(--border,#7864b42e);background:var(--bg-card,#ffffffb8);border-radius:18px;align-content:start;justify-items:center;gap:.75rem;padding:1rem;display:grid}.avatar-editor-profile-preview{background:var(--bg-card,#fff);border:1px solid var(--border,#7864b42e);place-items:center;width:min(100%,240px);min-height:260px;display:grid}.avatar-editor-controls{gap:1rem;min-width:0;display:grid}.avatar-editor-tabs{border-bottom:1px solid var(--border,#7864b42e);flex-wrap:wrap;gap:.4rem;padding-bottom:.5rem;display:flex}.avatar-editor-tabs button{border:1px solid var(--border,#7864b42e);background:var(--bg-card,#fff);cursor:pointer;border-radius:999px;padding:.45rem .75rem}.avatar-editor-tabs button.active{background:var(--accent,#6c52ff);color:#fff;border-color:var(--accent,#6c52ff)}.avatar-option-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.75rem;display:grid}.avatar-option-card{border:1px solid var(--border,#7864b42e);background:var(--bg-card,#fff);cursor:pointer;border-radius:16px;justify-items:center;gap:.4rem;padding:.75rem;display:grid}.avatar-option-card:hover{transform:translateY(-1px)}.avatar-option-card.selected{border-color:var(--accent,#6c52ff);box-shadow:0 0 0 3px #6c52ff24}.avatar-option-card span{color:var(--text-main);font-size:.8rem}.avatar-color-panel{gap:1rem;display:grid}.avatar-color-panel h4{margin:0 0 .5rem}.avatar-color-swatches{flex-wrap:wrap;gap:.45rem;margin-bottom:.5rem;display:flex}.avatar-color-swatch{cursor:pointer;border:2px solid #00000024;border-radius:999px;width:28px;height:28px}.avatar-color-swatch.selected{outline-offset:2px;outline:3px solid #6c52ff59}.avatar-range-row{grid-template-columns:110px 1fr 48px;align-items:center;gap:.75rem;display:grid}.avatar-background-toggle{align-items:center;gap:.5rem;display:flex}.avatar-editor-actions{justify-content:flex-end;gap:.75rem;display:flex}.account-avatar-row{align-items:flex-start;gap:1rem;min-width:0;display:flex}.account-avatar-preview{border:1px solid var(--border,#7864b42e);background:var(--bg-card,#ffffffb8);border-radius:22px;flex:none;place-items:center;width:76px;height:76px;display:grid;overflow:hidden}.account-avatar-edit-btn{align-items:center;gap:.55rem;max-width:100%;margin-top:.5rem;display:inline-flex}.profile-bg-picker{gap:1rem;display:grid}.profile-bg-option-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.75rem;display:grid}.profile-bg-option{border:1px solid var(--border,#7864b42e);cursor:pointer;background:0 0;border-radius:16px;padding:0;overflow:hidden}.profile-bg-option.selected{border-color:var(--accent,#6c52ff);box-shadow:0 0 0 3px #6c52ff24}.profile-bg-option .profile-bg{background:var(--bg-card,#fff);border-radius:14px;place-items:center;min-height:88px;display:grid}.profile-bg-option span{color:var(--text-main);background:#ffffffb8;border-radius:999px;padding:.2rem .5rem;font-size:.8rem;font-weight:600}.profile-bg-control-group{gap:.5rem;display:grid}.profile-bg-color-row{flex-wrap:wrap;gap:.45rem;display:flex}.profile-bg-color-swatch{cursor:pointer;border:2px solid #00000024;border-radius:999px;width:28px;height:28px}.profile-bg-color-swatch.selected{outline-offset:2px;outline:3px solid #6c52ff59}.profile-bg-range-row{grid-template-columns:90px 1fr 52px;align-items:center;gap:.75rem;display:grid}@media (max-width:760px){.avatar-editor-layout{grid-template-columns:1fr}.avatar-editor-preview-panel{justify-items:start}.avatar-editor-page{gap:.8rem}.avatar-editor-profile-preview{width:100%;max-width:240px}.avatar-option-grid{grid-template-columns:repeat(auto-fill,minmax(94px,1fr))}.avatar-option-card{padding:.6rem}.account-avatar-row{gap:.75rem}.account-avatar-preview{border-radius:18px;width:72px;height:72px}.profile-bg-range-row{grid-template-columns:minmax(0,1fr)}}.profile-mode{background:var(--bg-app);flex-direction:column;height:100%;display:flex;overflow-y:auto}.profile-hero{background:linear-gradient(135deg, var(--bg-card,#ffffff0d) 0%, transparent 100%);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:20px;padding:24px 24px 16px;display:flex}.profile-avatar{border:3px solid var(--accent,#6366f1);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:2.2rem;display:flex;position:relative;overflow:hidden}.profile-avatar-sm{border:2px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;display:flex}.avatar-circle-pattern{-webkit-user-select:none;user-select:none;border:2px solid var(--border);background:var(--bg-card,#ffffffe0);flex-shrink:0;place-items:center;display:grid;position:relative}.avatar-circle-pattern-circle{border-radius:999px}.profile-hero-info{flex:1;min-width:0}.profile-username{text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:1.4rem;font-weight:700;overflow:hidden}.profile-bio{color:var(--text-dim);margin:0 0 8px;font-size:.85rem}.profile-level-badge{background:var(--accent-soft,#6366f126);color:var(--accent,#6366f1);border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.profile-stats-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;padding:16px 24px;display:grid}.profile-stat-card{background:var(--bg-card);text-align:center;border:1px solid var(--border);border-radius:8px;padding:12px 8px}.profile-stat-value{color:var(--text-main);font-size:1.3rem;font-weight:700}.profile-stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:.65rem}.profile-section{padding:0 24px 16px}.profile-section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;border-top:1px solid var(--border);margin:0 0 10px;padding-top:12px;font-size:.72rem;font-weight:600}.profile-favorites-row{flex-wrap:wrap;gap:8px;display:flex}.profile-fav-book{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex:1;min-width:120px;max-width:100%;padding:10px 12px;transition:border-color .15s}.profile-fav-book:hover{border-color:var(--accent,#6366f1)}.profile-fav-book-title{overflow-wrap:anywhere;font-size:.8rem;font-weight:600}.profile-fav-book-author{color:var(--text-dim);overflow-wrap:anywhere;font-size:.7rem}.profile-fav-preset{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex:1;align-items:center;gap:8px;min-width:120px;max-width:100%;padding:10px 12px;display:flex}.profile-fav-preset-name{overflow-wrap:anywhere;font-size:.8rem;font-weight:600}.friends-list{flex-direction:column;gap:6px;display:flex}.friend-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:border-color .15s;display:flex}.friend-card:hover{border-color:var(--accent,#6366f1)}.friend-info{flex:1;min-width:0}.friend-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.friend-meta{color:var(--text-dim);font-size:.7rem}.friend-actions{gap:4px;display:flex}.friend-request-card{background:var(--accent-soft,#6366f11a);border:1px solid var(--accent,#6366f1);border-radius:8px;align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px;display:flex}.profile-search-results{flex-direction:column;gap:4px;max-height:200px;margin-top:8px;display:flex;overflow-y:auto}.profile-search-result-row{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.profile-search-result-row:hover{border-color:var(--accent,#6366f1)}.visitable-profile-overlay{z-index:300;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.visitable-profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0006}.profile-edit-bio{background:var(--bg-app);border:1px solid var(--border);width:100%;color:var(--text-main);resize:vertical;border-radius:6px;min-height:60px;padding:6px 10px;font-family:inherit;font-size:.85rem}.preset-grid{flex-direction:column;gap:4px;display:flex}.preset-row{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.preset-row.is-favorite{border-color:var(--accent,#6366f1);background:var(--accent-soft,#6366f114)}.preset-fav-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:0 2px;font-size:1rem;transition:opacity .15s}.preset-fav-btn.active{opacity:1}@media (max-width:600px){.profile-hero{padding:16px}.profile-stats-grid{grid-template-columns:repeat(3,1fr);padding:12px 16px}.profile-section{padding:0 16px 12px}.profile-username{font-size:1.1rem}}.auth-setup-screen{background:radial-gradient(circle at top left, #2962c424, transparent 38%), radial-gradient(circle at bottom right, #27744f26, transparent 36%), var(--bg-primary);place-items:center;width:100vw;min-height:100vh;padding:24px;display:grid}.auth-setup-panel{border:1px solid var(--border);width:min(760px,100%);color:var(--text-main);background:linear-gradient(#fffffffa,#f7fafffa);border-radius:24px;padding:max(20px,min(4vw,36px));box-shadow:0 30px 80px #08101e38}.auth-setup-header{align-items:center;gap:16px;margin-bottom:16px;display:flex}.auth-setup-logo{flex:none;width:68px;height:68px}.auth-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:4px;font-size:12px}.auth-setup-title{margin:0;font-size:max(24px,min(3.3vw,36px));line-height:1.1}.auth-account-line{color:var(--text-dim);margin:6px 0 0;font-size:.9rem}.auth-consent-copy{gap:10px;margin-bottom:18px;display:grid}.auth-consent-copy p,.auth-copy{color:var(--text-dim);margin:0;line-height:1.55}.auth-copy-soft{color:var(--text-dim);font-size:.94rem}.auth-step-meter{background:var(--bg-app);color:var(--text-dim);border-radius:999px;margin-bottom:18px;padding:5px 10px;font-size:12px;display:inline-flex}.auth-stack{gap:16px;display:grid}.field-block{gap:8px;display:grid}.field-block span{color:var(--text-main);font-size:.8rem;font-weight:600}.field-block input,.field-block select{border:1px solid var(--border);background:var(--bg-app);width:100%;min-height:44px;color:var(--text-main);border-radius:12px;padding:0 14px;font-size:.98rem}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-block-span-2{grid-column:1/-1}.extras-details{border:1px solid var(--border);background:#ffffffb3;border-radius:16px;padding:14px 16px}.extras-details>summary{cursor:pointer;color:var(--text-main);font-weight:600}.extras-details>summary::marker{color:var(--accent-orp)}.checkbox-row{align-items:flex-start;gap:10px;margin:16px 0;display:flex}.checkbox-row input{margin-top:3px}.checkbox-row span{color:var(--text-main);gap:4px;font-size:.95rem;display:grid}.checkbox-row small{color:var(--text-dim);line-height:1.45}.research-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.research-option-card{text-align:left;border:1px solid var(--border);background:var(--bg-app);color:var(--text-main);cursor:pointer;border-radius:18px;gap:10px;padding:18px;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.research-option-card:hover{border-color:#2962c45c;transform:translateY(-1px);box-shadow:0 14px 26px #0712231f}.research-option-card:focus-visible{border-color:#2962c45c;transform:translateY(-1px);box-shadow:0 14px 26px #0712231f}.research-option-card-accent{background:linear-gradient(#2962c414,#27744f14)}.research-option-pill{text-transform:uppercase;letter-spacing:.08em;width:-moz-fit-content;width:fit-content;color:var(--text-dim);background:#17243d14;border-radius:999px;padding:4px 10px;font-size:11px;display:inline-flex}.research-option-pill-accent{color:var(--accent-orp);background:#2962c41f}.research-option-card h3{margin:0;font-size:1.18rem}.research-option-card p{color:var(--text-dim);margin:0;line-height:1.5}.research-option-footnote{font-size:.9rem}.auth-note-row,.auth-footer-note{color:var(--text-dim);background:#17243d0d;border-radius:14px;padding:12px 14px;font-size:.93rem;line-height:1.5}.auth-footer-note{margin-top:18px}.account-card,.account-section{border:1px solid var(--border);box-sizing:border-box;background:#ffffffb8;border-radius:18px;min-width:0;max-width:100%;padding:16px}.account-card-compact,.account-profile-panel{padding:14px}.account-card-header{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;margin-bottom:12px;display:flex}.account-name{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.2rem}.account-meta{color:var(--text-dim);overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:.9rem}.account-note{color:var(--text-dim);overflow-wrap:anywhere;margin-top:12px;line-height:1.5}.account-section-title{margin:0 0 12px;font-size:1rem}.account-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;margin-bottom:12px;display:flex}.account-mode-pill{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;display:inline-flex}.account-mode-anonymous{color:var(--accent-orp);background:#27744f1f}.account-mode-participant{color:#1d4b9e;background:#2962c41f}.auth-actions{align-items:center;gap:12px;display:flex}.auth-actions-right{justify-content:flex-end}.auth-actions-spread{justify-content:space-between}.auth-primary-btn,.auth-secondary-btn{min-width:140px}.auth-secondary-btn{color:var(--text-main)!important;background:0 0!important}.auth-error{color:#a61b1b;background:#b91c1c1a;border:1px solid #b91c1c2e;border-radius:12px;padding:10px 12px}.account-inline-toggle{color:var(--text-dim);white-space:normal;align-items:center;gap:8px;max-width:100%;font-size:.85rem;display:inline-flex}.account-detail-section{border:1px solid var(--border);background:#ffffff8c;border-radius:14px;margin-top:10px}.account-detail-section>summary{cursor:pointer;padding:10px 12px;font-size:.9rem;font-weight:600;list-style:none}.account-detail-section>summary::-webkit-details-marker{display:none}.account-detail-body{gap:12px;min-width:0;padding:0 12px 12px;display:grid}.account-profile-stats{padding:0}.account-compact-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.account-compact-stat{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;gap:4px;padding:10px;display:grid}.account-compact-stat strong{font-size:.95rem}.account-compact-stat span{color:var(--text-dim);font-size:.72rem}.account-inline-form{gap:8px;min-width:0;display:flex}.account-inline-form input{border:1px solid var(--border);background:var(--bg-app);min-width:0;min-height:40px;color:var(--text-main);border-radius:10px;flex:1;padding:0 12px}.account-list-stack{gap:8px;min-width:0;display:grid}.account-history-row{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.account-history-title{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.account-history-meta{color:var(--text-dim);font-size:.74rem}.account-history-bar{background:var(--border);border-radius:999px;height:4px;margin-top:6px;overflow:hidden}.account-history-bar>div{background:var(--accent,#6366f1);border-radius:999px;height:100%}.account-inline-link{color:var(--accent,#6366f1);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem}.account-empty-copy{color:var(--text-dim);overflow-wrap:anywhere;margin:0;font-size:.8rem}.demographic-form{gap:16px;display:grid}@media (max-width:720px){.profile-grid,.research-choice-grid{grid-template-columns:1fr}.auth-actions,.auth-actions-spread{flex-direction:column;align-items:stretch}.auth-actions-spread>*{width:100%}.auth-setup-header{align-items:flex-start}.account-card-header,.account-section-heading,.account-avatar-row,.account-history-row,.account-inline-form{flex-direction:column;align-items:stretch}.account-inline-toggle{white-space:normal}}.walkthrough-overlay{z-index:1100;background:radial-gradient(circle at 14% 10%, color-mix(in srgb, var(--color-success,#4caf7a) 24%, transparent), transparent 45%), radial-gradient(circle at 84% 80%, color-mix(in srgb, var(--color-accent,#b8860b) 22%, transparent), transparent 42%), color-mix(in srgb, var(--color-ink,#2b1e10) 82%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:max(12px,min(3vw,28px));display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.walkthrough-shell{border:1px solid color-mix(in srgb, var(--color-border,#dcc9a2) 80%, transparent);background:linear-gradient(180deg, var(--color-surface,#fbf3e4) 0%, color-mix(in srgb, var(--color-surface,#fbf3e4) 92%, var(--color-bg-soft,#f2ead6)) 100%);width:min(1160px,100%);min-height:min(760px,100dvh - 34px);max-height:calc(100dvh - 34px);box-shadow:0 28px 72px color-mix(in srgb, var(--color-ink,#2b1e10) 36%, transparent);color:var(--color-ink,#2b1e10);border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.walkthrough-head-row{justify-content:space-between;align-items:center;padding:14px 20px 0;display:flex}.walkthrough-progress{letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-soft,#6b5a47);font-size:12px}.walkthrough-content{flex:1;grid-template-columns:minmax(280px,420px) minmax(0,1fr);align-items:center;gap:max(20px,min(4vw,48px));padding:max(18px,min(4vw,42px));display:grid;overflow-y:auto}.walkthrough-copy{max-width:42ch}.walkthrough-title{letter-spacing:-.02em;margin:0 0 12px;font-size:max(28px,min(4.2vw,44px));line-height:1.1}.walkthrough-title-animated{animation:3.2s cubic-bezier(.2,.7,.2,1) both walkthrough-title-rise}.walkthrough-paragraph{color:#101c30e6;margin:0 0 14px;font-size:max(15px,min(1.6vw,18px));line-height:1.55}.walkthrough-visual-wrap{justify-content:center;align-items:center;min-height:420px;display:flex}.walkthrough-visual{flex-direction:column;align-items:center;gap:14px;width:min(100%,620px);display:flex}.walkthrough-visual-welcome{gap:18px}.walkthrough-logo{opacity:0;width:max(74px,min(10vw,124px));height:auto;animation:2.8s forwards walkthrough-logo-reveal;transform:translateY(10px)scale(.97)}.walkthrough-glyph-stage{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-border,#dcc9a2) 80%, transparent);background:radial-gradient(circle at 25% 15%, color-mix(in srgb, var(--color-surface,#fbf3e4) 92%, white), var(--color-bg-soft,#f2ead6));width:min(100%,520px);box-shadow:0 18px 34px color-mix(in srgb, var(--color-ink,#2b1e10) 16%, transparent);border-radius:18px;overflow:hidden}.walkthrough-glyph-stage-small{width:min(100%,250px)}.walkthrough-visual-caption{align-items:baseline;gap:10px;font-size:16px;display:flex}.walkthrough-word{text-transform:lowercase;font-weight:700}.walkthrough-chord{letter-spacing:.04em;color:var(--color-ink-soft,#6b5a47);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:14px}.walkthrough-mini-label,.walkthrough-note{color:var(--color-ink-soft,#6b5a47);font-size:13px}.walkthrough-span-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;display:grid}.walkthrough-span-item{flex-direction:column;align-items:center;gap:10px;display:flex}.walkthrough-examples-list{flex-wrap:wrap;justify-content:center;gap:8px;max-width:580px;display:flex}.walkthrough-example-chip{border:1px solid color-mix(in srgb, var(--color-border,#dcc9a2) 70%, transparent);background:color-mix(in srgb, var(--color-surface,#fbf3e4) 88%, transparent);border-radius:999px;padding:5px 10px;font-size:12px}.walkthrough-actions{background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--color-surface,#fbf3e4) 92%, transparent) 30%);flex-direction:column;align-items:center;gap:10px;padding:0 20px 24px;display:flex}.walkthrough-primary{min-width:max(160px,min(28vw,280px));min-height:48px;font-size:17px}.walkthrough-skip{color:#101c318f;cursor:pointer;background:0 0;border:0;font-size:13px;text-decoration:underline}.walkthrough-skip:hover{color:#101c31d6}.walkthrough-skip:focus-visible{color:#101c31d6}.walkthrough-skip-head{z-index:2;padding:4px 8px;position:relative}@keyframes walkthrough-logo-reveal{0%{opacity:0;transform:translateY(10px)scale(.97)}45%{opacity:.5}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes walkthrough-title-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:960px){.walkthrough-overlay{padding:8px}.walkthrough-shell{border-radius:18px;min-height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.walkthrough-content{grid-template-columns:1fr;align-content:start;gap:18px;padding:12px 16px 8px}.walkthrough-copy{text-align:center;max-width:none}.walkthrough-title{margin-bottom:10px;font-size:max(24px,min(8vw,34px))}.walkthrough-paragraph{margin-bottom:10px;font-size:14px;line-height:1.45}.walkthrough-visual-wrap{min-height:0}.walkthrough-glyph-stage{width:min(100%,320px)}.walkthrough-span-grid{grid-template-columns:1fr}.walkthrough-actions{gap:8px;padding:10px 16px 16px}.walkthrough-primary{width:100%;min-width:0;min-height:46px;font-size:16px}}@media (max-width:480px){.walkthrough-overlay{padding:0}.walkthrough-shell{border-inline-start:0;border-inline-end:0;border-radius:0;width:100%;min-height:100dvh;max-height:100dvh}.walkthrough-head-row{padding:10px 14px 0}.walkthrough-skip-head{font-size:12px}.walkthrough-content{gap:14px;padding:10px 14px 6px}.walkthrough-visual{gap:10px}.walkthrough-glyph-stage{border-radius:14px;width:min(100%,260px)}.walkthrough-glyph-stage-small{width:min(100%,210px)}.walkthrough-visual-caption{flex-wrap:wrap;justify-content:center;gap:6px 10px;font-size:14px}.walkthrough-examples-list{gap:6px}.walkthrough-example-chip{padding:4px 8px;font-size:11px}.walkthrough-actions{padding:8px 14px 14px}}
