.nv2 .sidebar{padding:16px 12px;padding-top:calc(16px + var(--safe-top));gap:12px}.nv2 .brand{padding:0 4px}.nv2 .nav-desktop{gap:12px}.nv2-group{flex-direction:column;gap:2px;display:flex}.nv2-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 12px 4px;font-size:.72rem;font-weight:600}.nv2 .nav-desktop .nav-link{border-radius:10px;gap:12px;min-height:36px;padding:6px 12px;font-size:.95rem}.nv2 .nav-desktop .nav-link.active{box-shadow:inset 3px 0 0 var(--mana)}.nv2-glyph{width:24px;height:24px;font-family:var(--font-kr);color:var(--muted);background:color-mix(in srgb, var(--bg-hover) 70%, transparent);border-radius:8px;flex:none;place-items:center;font-size:.85rem;line-height:1;display:inline-grid}.nv2 .nav-link.active .nv2-glyph{color:var(--mana);background:color-mix(in srgb, var(--mana) 18%, transparent)}.nv2 .class-mode-toggle-wrap,.nv2 .immersion-timer-pill-wrap{padding:0}.nv2 .class-mode-toggle{border-radius:10px;min-height:40px;padding:8px 12px}.nv2 .sidebar-footer{padding:8px 4px calc(0px + var(--safe-bottom));border-top:1px solid var(--border);flex-direction:row;justify-content:space-between;align-items:center;gap:8px}.nv2 .sidebar-footer .user-chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nv2-sheet-sub{margin:4px 0 0;font-size:.85rem}@media (width<=800px){.nv2 .sidebar{padding:4px 8px;padding-bottom:calc(4px + var(--safe-bottom));gap:0}.nv2 .content-column{padding-bottom:calc(64px + var(--safe-bottom))}.nv2 .nav-dock{gap:4px}.nv2 .nav-dock .nav-link,.nv2 .nav-more-btn{border-radius:12px;gap:4px;min-height:56px;max-height:56px;padding:4px;font-size:.75rem}.nv2 .nav-dock .nav-link.active,.nv2 .nav-more-btn.active{color:var(--text);background:0 0}.nv2 .nav-dock .nav-link.active .nv2-glyph,.nv2 .nav-more-btn.active .nv2-glyph{border-radius:999px;width:48px}.nv2 .nav-dock .nv2-glyph{background:0 0;border-radius:999px;width:32px;height:28px;font-size:.95rem}.nv2-sheet.nav-more-sheet{padding:16px 16px calc(16px + var(--safe-bottom));border-radius:20px 20px 0 0;gap:16px;max-height:min(90dvh,760px)}.nv2-sheet .nav-more-sheet-head{align-items:flex-start}.nv2-sheet .nav-more-list{gap:16px}.nv2-sheet .nav-more-list .nv2-group{gap:8px}.nv2-sheet .nav-more-list .nv2-group-label{padding:0 4px}.nv2-sheet .nav-more-list .nv2-group{grid-template-columns:repeat(3,1fr);display:grid}.nv2-sheet .nav-more-list .nv2-group-label{grid-column:1/-1}.nv2-sheet .nav-more-list .nav-link{white-space:nowrap;text-align:center;border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;justify-content:center;gap:4px;min-height:56px;padding:4px;font-size:.85rem}.nv2-sheet .nav-more-list .nav-link.active{border-color:var(--mana);box-shadow:none}.nv2-sheet .class-mode-toggle{min-height:48px}.nv2-sheet .nav-more-footer{padding-top:8px}.nv2-sheet .nav-more-list .nav-link .nav-label-short{display:inline}.nv2-sheet .nav-more-list .nav-link .nav-label-full{display:none}.nv2-sheet .nav-more-list .nv2-group-label{margin-top:0}}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2)format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2)format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1016;--bg-elevated:#121a24;--bg-hover:#1a2430;--border:#2a3848;--text:#e8eef0;--muted:#8b9aab;--accent:#5eb89a;--accent-hover:#7dceb4;--accent-soft:#5eb89a24;--mana:#6ec4b0;--mana-glow:#6ec4b059;--circle:#7dceb4;--rune:#3d8f7a;--fx-intensity:.72;--glow-strength:.58;--success:#3ecf8e;--danger:#e87a7a;--warn:#d4b06a;--radius:12px;--font:"Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Segoe UI", system-ui, sans-serif;--font-kr:"Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", var(--font);--font-kr-serif:"Noto Serif KR", "Apple SD Gothic Neo", "Malgun Gothic", serif;--font-display:"Fraunces", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", var(--font);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--touch-min:44px;--z-base:1;--z-sticky:15;--z-nav:25;--z-popover:50;--z-modal:60;--z-loading:80;--z-splash:1000;--atmosphere:radial-gradient(980px 720px at 8% -18%, #6ec4b033, transparent 58%), radial-gradient(720px 560px at 108% 12%, #3d8f7a33, transparent 52%), radial-gradient(640px 480px at 62% 118%, #5eb89a1f, transparent 58%), radial-gradient(420px 360px at 78% 42%, #6ec4b00f, transparent 70%), linear-gradient(168deg, #0c141c 0%, var(--bg) 48%, #070b10 100%)}html[data-palette=ink][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1016;--bg-elevated:#121a24;--bg-hover:#1a2430;--border:#2a3848;--text:#e8eef0;--muted:#8b9aab;--accent:#5eb89a;--accent-hover:#7dceb4;--accent-soft:#5eb89a24;--mana:#6ec4b0;--mana-glow:#6ec4b059;--circle:#7dceb4;--rune:#3d8f7a;--fx-intensity:.72;--glow-strength:.58;--success:#3ecf8e;--danger:#e87a7a;--warn:#d4b06a;--atmosphere:radial-gradient(980px 720px at 8% -18%, #6ec4b033, transparent 58%), radial-gradient(720px 560px at 108% 12%, #3d8f7a33, transparent 52%), radial-gradient(640px 480px at 62% 118%, #5eb89a1f, transparent 58%), radial-gradient(420px 360px at 78% 42%, #6ec4b00f, transparent 70%), linear-gradient(168deg, #0c141c 0%, var(--bg) 48%, #070b10 100%)}html[data-palette=ink][data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0f5f3;--bg-elevated:#fff;--bg-hover:#e4ece8;--border:#c0cfc8;--text:#132018;--muted:#55685e;--accent:#2f8f74;--accent-hover:#247a62;--accent-soft:#2f8f741f;--mana:#3aa88a;--mana-glow:#3aa88a47;--circle:#247a62;--rune:#5eb89a;--fx-intensity:.4;--glow-strength:.3;--success:#1f9a63;--danger:#c44a4a;--warn:#b8862e;--atmosphere:radial-gradient(1200px 600px at 12% -10%, #3aa88a1f, transparent 55%), radial-gradient(900px 500px at 100% 0%, #5eb89a1a, transparent 50%), radial-gradient(700px 400px at 70% 110%, #2f8f7414, transparent 55%), linear-gradient(180deg, #eaf2ee 0%, var(--bg) 42%, #e4ece8 100%)}html[data-palette=ocean][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08121a;--bg-elevated:#101c28;--bg-hover:#182836;--border:#284050;--text:#e4eef6;--muted:#8497ab;--accent:#5ba4d6;--accent-hover:#7cb8e0;--accent-soft:#5ba4d624;--mana:#6eb4e0;--mana-glow:#6eb4e059;--circle:#7cb8e0;--rune:#3a7aaa;--fx-intensity:.72;--glow-strength:.58;--success:#3ecf8e;--danger:#e87a7a;--warn:#d4b06a;--atmosphere:radial-gradient(980px 720px at 8% -18%, #6eb4e033, transparent 58%), radial-gradient(720px 560px at 108% 12%, #3a7aaa38, transparent 52%), radial-gradient(640px 480px at 62% 118%, #5ba4d61f, transparent 58%), radial-gradient(420px 360px at 78% 42%, #6eb4e012, transparent 70%), linear-gradient(168deg, #0a1620 0%, var(--bg) 48%, #060e14 100%)}html[data-palette=ocean][data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef4f9;--bg-elevated:#fff;--bg-hover:#e0ebf3;--border:#b8cad8;--text:#122030;--muted:#506678;--accent:#2f7eb0;--accent-hover:#256890;--accent-soft:#2f7eb01f;--mana:#3d8fc4;--mana-glow:#3d8fc447;--circle:#256890;--rune:#5ba4d6;--fx-intensity:.4;--glow-strength:.3;--success:#1f9a63;--danger:#c44a4a;--warn:#b8862e;--atmosphere:radial-gradient(1200px 600px at 12% -10%, #3d8fc41f, transparent 55%), radial-gradient(900px 500px at 100% 0%, #5ba4d61a, transparent 50%), radial-gradient(700px 400px at 70% 110%, #2f7eb014, transparent 55%), linear-gradient(180deg, #e8f0f7 0%, var(--bg) 42%, #e2ebf3 100%)}html[data-palette=ember][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#120e0c;--bg-elevated:#1c1612;--bg-hover:#28201a;--border:#3d3228;--text:#f2eae2;--muted:#a09486;--accent:#d4925a;--accent-hover:#e0a878;--accent-soft:#d4925a24;--mana:#e0a878;--mana-glow:#e0a87859;--circle:#e8b888;--rune:#a86a38;--fx-intensity:.72;--glow-strength:.58;--success:#3ecf8e;--danger:#e87a7a;--warn:#d4b06a;--atmosphere:radial-gradient(980px 720px at 8% -18%, #e0a8782e, transparent 58%), radial-gradient(720px 560px at 108% 12%, #a86a3833, transparent 52%), radial-gradient(640px 480px at 62% 118%, #d4925a1f, transparent 58%), radial-gradient(420px 360px at 78% 42%, #e0a8780f, transparent 70%), linear-gradient(168deg, #16120e 0%, var(--bg) 48%, #0c0a08 100%)}html[data-palette=ember][data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f0ea;--bg-elevated:#fffbf7;--bg-hover:#ebe2d6;--border:#d0c2b0;--text:#2a2018;--muted:#6e6256;--accent:#b86e32;--accent-hover:#9a5a28;--accent-soft:#b86e321f;--mana:#c87e42;--mana-glow:#c87e4247;--circle:#9a5a28;--rune:#d4925a;--fx-intensity:.4;--glow-strength:.3;--success:#1f9a63;--danger:#c44a4a;--warn:#b8862e;--atmosphere:radial-gradient(1200px 600px at 12% -10%, #c87e421f, transparent 55%), radial-gradient(900px 500px at 100% 0%, #d4925a1a, transparent 50%), radial-gradient(700px 400px at 70% 110%, #b86e3214, transparent 55%), linear-gradient(180deg, #f1e9e0 0%, var(--bg) 42%, #ebe2d6 100%)}html[data-palette=slate][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1216;--bg-elevated:#161a20;--bg-hover:#20262e;--border:#323a44;--text:#e8eaec;--muted:#9098a0;--accent:#8fa0b0;--accent-hover:#a8b6c4;--accent-soft:#8fa0b024;--mana:#a0b0c0;--mana-glow:#a0b0c059;--circle:#a8b6c4;--rune:#5a6a7a;--fx-intensity:.65;--glow-strength:.52;--success:#3ecf8e;--danger:#e87a7a;--warn:#d4b06a;--atmosphere:radial-gradient(980px 720px at 8% -18%, #a0b0c029, transparent 58%), radial-gradient(720px 560px at 108% 12%, #5a6e822e, transparent 52%), radial-gradient(640px 480px at 62% 118%, #8fa0b01a, transparent 58%), radial-gradient(420px 360px at 78% 42%, #a0b0c00d, transparent 70%), linear-gradient(168deg, #12161c 0%, var(--bg) 48%, #0a0c10 100%)}html[data-palette=slate][data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f4f6;--bg-elevated:#fff;--bg-hover:#e6e9ec;--border:#c4cad0;--text:#1a1d21;--muted:#5c646c;--accent:#5a6b7a;--accent-hover:#475663;--accent-soft:#5a6b7a1f;--mana:#6a7b8a;--mana-glow:#6a7b8a47;--circle:#475663;--rune:#8fa0b0;--fx-intensity:.35;--glow-strength:.28;--success:#1f9a63;--danger:#c44a4a;--warn:#b8862e;--atmosphere:radial-gradient(1200px 600px at 12% -10%, #6a7b8a1a, transparent 55%), radial-gradient(900px 500px at 100% 0%, #8fa0b01a, transparent 50%), radial-gradient(700px 400px at 70% 110%, #5a6b7a14, transparent 55%), linear-gradient(180deg, #eceef1 0%, var(--bg) 42%, #e6e9ec 100%)}.theme-mode-row,.theme-palette-row{flex-wrap:wrap;gap:.5rem;display:flex}.theme-mode-btn,.theme-palette-btn{min-height:var(--touch-min);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;font:inherit;align-items:center;gap:.5rem;padding:.45rem .75rem;display:inline-flex}.theme-mode-btn:hover,.theme-palette-btn:hover{background:var(--bg-hover)}.theme-mode-btn.active,.theme-palette-btn.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.theme-swatch{border:1px solid var(--border);border-radius:4px;flex-shrink:0;width:1.15rem;height:1.15rem}.theme-accent-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.theme-accent-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:2.75rem;height:2.75rem;padding:0}.theme-color-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem;margin-top:.35rem;display:grid}.theme-color-field{flex-direction:column;gap:.4rem;display:flex}.theme-color-field-label{color:var(--muted);font-size:.85rem}.theme-preview{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);place-items:center;min-height:7.5rem;margin-top:1rem;display:grid;position:relative;overflow:hidden}.theme-preview-label{color:var(--muted);z-index:2;font-size:.75rem;position:absolute;top:.55rem;left:.75rem}.atmosphere-layer{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.atmosphere-circle-wrap{opacity:.22;position:absolute}.atmosphere-hero .atmosphere-circle-wrap{opacity:.35;top:50%;right:-8%;transform:translateY(-50%)}.atmosphere-ambient .atmosphere-circle-wrap{opacity:.12;bottom:-18%;right:-20%}.mana-particles{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.magic-circle{place-items:center;display:grid;position:relative}.magic-circle-svg{width:100%;height:100%;filter:drop-shadow(0 0 calc(12px * var(--glow-strength)) var(--mana-glow));display:block}.magic-circle-glyph{font-family:var(--font-kr);color:var(--accent);text-shadow:0 0 calc(10px * var(--glow-strength)) var(--mana-glow);place-items:center;font-size:28%;font-weight:700;display:grid;position:absolute;inset:0}.magic-circle-rotate .magic-circle-svg{animation:48s linear infinite magic-circle-spin}@keyframes magic-circle-spin{to{transform:rotate(360deg)}}.splash-mark-wrap{place-items:center;display:inline-grid;position:relative}.splash-mark-wrap>*{grid-area:1/1}*{box-sizing:border-box}html,body,#root{background:var(--atmosphere);min-height:100dvh;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;background-attachment:fixed;margin:0;line-height:1.45}a{color:var(--accent)}code{background:var(--bg-hover);border-radius:4px;padding:.1em .35em;font-size:.9em}.muted{color:var(--muted)}.error{color:var(--danger)}.warn{color:var(--warn)}.center-screen{min-height:100dvh;padding:1.5rem;padding-bottom:calc(1.5rem + var(--safe-bottom));place-items:center;display:grid}.card{background:color-mix(in srgb, var(--bg-elevated) 90%, transparent);border:1px solid color-mix(in srgb, var(--circle) 30%, var(--border));border-radius:var(--radius);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--mana) 12%, transparent), 0 0 calc(18px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 8%, transparent);padding:1rem 1.15rem 1.4rem}.card.section{position:relative}.card>.btn:last-child{margin-bottom:.25rem}.card.section:before{content:"";border:1px solid color-mix(in srgb, var(--circle) 55%, transparent);width:.45rem;height:.45rem;box-shadow:0 0 calc(6px * var(--glow-strength)) var(--mana-glow);opacity:.7;pointer-events:none;border-radius:50%;position:absolute;top:1.15rem;left:.85rem}.page{flex-direction:column;gap:1rem;display:flex}.page>.page-header,.page>.section,.page>.stats-row,.page>.dash-hero,.page>.dash-glance,.page>.dash-week-alert,.page>.ritual-hero,.page>.ritual-focus,.page>.kind-tabs,.page>.production-session-bar{margin-bottom:0}.auth-layout{background:var(--bg);min-height:100dvh;padding:calc(1.5rem + var(--safe-top)) 1.25rem calc(1.5rem + var(--safe-bottom));place-items:center;display:grid;position:relative;overflow:hidden}.auth-layout>.atmosphere-layer{z-index:0}.auth-sigil{pointer-events:none;z-index:0;place-items:center;display:grid;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}.magic-circle-hero{width:min(78vmin,680px);height:min(78vmin,680px)}.auth-sigil-circle{opacity:.72;filter:drop-shadow(0 0 calc(28px * var(--glow-strength)) var(--mana-glow))}.auth-sigil-mark{font-family:var(--font-kr);color:var(--accent);text-shadow:0 0 calc(22px * var(--glow-strength)) var(--mana-glow);place-items:center;font-size:clamp(3rem,11vmin,5.25rem);font-weight:700;animation:5.5s ease-in-out infinite auth-sigil-breathe;display:grid;position:absolute;inset:0}.auth-chamber{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:1.15rem;width:min(100%,420px);margin-top:clamp(5.5rem,22vmin,9.5rem);display:flex;position:relative}.auth-brand{flex-direction:column;align-items:center;gap:.35rem;max-width:28rem;display:flex}.auth-brand-title{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:clamp(2.75rem,7vw,4rem);font-weight:700;line-height:1.05}.auth-brand-kr{font-family:var(--font-kr);color:var(--text);margin:0;font-size:clamp(1.15rem,2.8vw,1.45rem)}.auth-brand-sub{max-width:22rem;margin:.35rem 0 0;font-size:.98rem;line-height:1.5}.auth-main{place-items:center;width:100%;display:grid}.auth-card{text-align:left;background:color-mix(in srgb, var(--bg-elevated) 72%, transparent);border:1px solid color-mix(in srgb, var(--mana) 34%, var(--border));-webkit-backdrop-filter:blur(16px);width:min(100%,380px);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--mana) 18%, transparent), 0 12px 40px color-mix(in srgb, var(--bg) 55%, transparent), 0 0 calc(28px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 14%, transparent);flex-direction:column;gap:.75rem;display:flex}.auth-tabs{background:color-mix(in srgb, var(--bg) 78%, transparent);border:1px solid color-mix(in srgb, var(--circle) 28%, var(--border));border-radius:10px;grid-template-columns:1fr 1fr;gap:.35rem;padding:.25rem;display:grid}.auth-tab{font:inherit;color:var(--muted);min-height:var(--touch-min);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem .75rem}.auth-tab.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);font-weight:600}.auth-password-row{align-items:stretch;gap:.35rem;display:flex}.auth-password-row input{flex:1;min-width:0}.auth-password-toggle{flex-shrink:0}.auth-back{text-align:center;margin:.15rem 0 0}.auth-back-link{color:var(--muted);min-height:var(--touch-min);align-items:center;font-size:.9rem;text-decoration:none;display:inline-flex}.auth-back-link:hover{color:var(--accent)}.auth-enter{animation:.7s ease-out both auth-enter}.auth-enter-delay{animation-delay:.12s}@keyframes auth-enter{0%{opacity:0;transform:translateY(.7rem)}to{opacity:1;transform:translateY(0)}}@keyframes auth-sigil-breathe{0%,to{opacity:.88;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.landing-page{background:var(--bg);min-height:100dvh;color:var(--text);padding-bottom:calc(2rem + var(--safe-bottom));position:relative;overflow-x:hidden}.landing-page>.atmosphere-layer{z-index:0}.landing-hero{z-index:1;min-height:100dvh;padding:calc(2rem + var(--safe-top)) 1.25rem 2.5rem;text-align:center;place-items:center;display:grid;position:relative}.landing-hero-sigil{pointer-events:none;z-index:0;place-items:center;display:grid;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.landing-hero-circle{opacity:.72;filter:drop-shadow(0 0 calc(28px * var(--glow-strength)) var(--mana-glow))}.landing-hero-mark{font-family:var(--font-kr);color:var(--accent);text-shadow:0 0 calc(22px * var(--glow-strength)) var(--mana-glow);place-items:center;font-size:clamp(3rem,11vmin,5.25rem);font-weight:700;animation:5.5s ease-in-out infinite auth-sigil-breathe;display:grid;position:absolute;inset:0}.landing-hero-copy{z-index:1;flex-direction:column;align-items:center;gap:.4rem;max-width:28rem;margin-top:clamp(5.5rem,22vmin,9.5rem);display:flex;position:relative}.landing-brand{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:clamp(2.75rem,7vw,4rem);font-weight:700;line-height:1.05}.landing-brand-kr{font-family:var(--font-kr);margin:0;font-size:clamp(1.15rem,2.8vw,1.45rem)}.landing-hero-sub{max-width:22rem;margin:.45rem 0 0;font-size:1rem;line-height:1.5}.landing-hero-cta{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.35rem;display:flex}.landing-hero-cta .btn{justify-content:center;align-items:center;min-width:9.5rem;text-decoration:none;display:inline-flex}.landing-enter{animation:.7s ease-out both auth-enter}.landing-main{z-index:1;flex-direction:column;gap:3.5rem;width:min(100%,42rem);margin:0 auto;padding:0 1.25rem;display:flex;position:relative}.landing-section{flex-direction:column;gap:.75rem;display:flex}.landing-section-title{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:clamp(1.55rem,3.5vw,2rem);font-weight:700}.landing-section-lead{margin:0;font-size:.98rem}.landing-section-body{max-width:36rem;margin:0;font-size:1.05rem;line-height:1.6}.landing-practice-list{flex-direction:column;gap:1.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.landing-practice{align-items:flex-start;gap:.95rem;display:flex}.landing-practice-sigil{opacity:.9;flex-shrink:0;margin-top:.1rem}.landing-practice-copy{flex-direction:column;gap:.25rem;min-width:0;display:flex}.landing-practice-title{font-family:var(--font-display);margin:0;font-size:1.2rem;font-weight:650}.landing-practice-body{margin:0;font-size:.98rem;line-height:1.55}.landing-close{align-items:flex-start;padding-bottom:.5rem}.landing-close .btn{align-items:center;margin-top:.35rem;text-decoration:none;display:inline-flex}.landing-footer{z-index:1;color:var(--muted);justify-content:center;align-items:center;gap:.55rem;margin-top:3.5rem;padding:0 1.25rem;display:flex;position:relative}.landing-footer-mark{width:1.75rem;height:1.75rem;font-family:var(--font-kr);color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:0 0 calc(10px * var(--glow-strength)) var(--mana-glow);border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:inline-flex}.landing-footer-name{font-family:var(--font-display);letter-spacing:.02em;font-size:1rem}.landing-footer-sep{font-size:.9rem}.landing-footer-link{color:var(--muted);font-size:.9rem;text-decoration:none}.landing-footer-link:hover,.landing-footer-link:focus-visible{color:var(--accent);outline:none;text-decoration:underline}.legal-page{min-height:100dvh;color:var(--text);background:var(--atmosphere);position:relative}.legal-shell{z-index:1;max-width:42rem;padding:calc(2rem + var(--safe-top)) 1.25rem calc(2.5rem + var(--safe-bottom));margin:0 auto;position:relative}.legal-brand{align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.legal-sigil{flex-shrink:0;place-items:center;width:3.25rem;height:3.25rem;display:grid;position:relative}.legal-sigil-mark{font-family:var(--font-kr);color:var(--accent);font-size:1.15rem;font-weight:700;position:absolute}.legal-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem;font-size:.78rem}.legal-brand h1{font-family:var(--font-display);margin:0;font-size:clamp(1.6rem,3vw,2rem);font-weight:650}.legal-meta{margin:.35rem 0 0;font-size:.88rem}.legal-body{gap:.85rem;font-size:.98rem;line-height:1.65;display:grid}.legal-body h2{font-family:var(--font-display);margin:1.1rem 0 0;font-size:1.15rem;font-weight:650}.legal-body p,.legal-body ul{color:color-mix(in srgb, var(--text) 92%, var(--muted));margin:0}.legal-body ul{gap:.55rem;padding-left:1.2rem;display:grid}.legal-body code{background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);border:1px solid var(--border);border-radius:6px;padding:.1em .35em;font-size:.86em}.legal-body a{color:var(--accent-hover)}.legal-footer{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:2.25rem;padding-top:1.25rem;font-size:.92rem;display:flex}.legal-footer a{color:var(--accent-hover);text-decoration:none}.legal-footer a:hover{text-decoration:underline}html.page-loading,html.page-loading body{overscroll-behavior:none;overflow:hidden!important}html.page-loading .content-column{overscroll-behavior:none;touch-action:none;overflow:hidden!important}.top-progress-bar{height:3px;z-index:var(--z-splash);opacity:0;pointer-events:none;transition:opacity .15s;position:fixed;top:0;left:0;right:0;overflow:hidden}.top-progress-bar.is-visible{opacity:1}.top-progress-bar-fill{background:var(--accent);border-radius:0 999px 999px 0;width:40%;height:100%;animation:1.1s ease-in-out infinite top-progress-slide;position:absolute;top:0;left:0}@keyframes top-progress-slide{0%{left:-40%}to{left:100%}}.app-splash-inner{flex-direction:column;align-items:center;gap:.65rem;display:flex}.splash-mark-wrap{width:5.75rem;height:5.75rem}.splash-mark-wrap .magic-circle{width:100%!important;height:100%!important}.app-splash-mark{background:color-mix(in srgb, var(--accent) 18%, transparent);width:3.5rem;height:3.5rem;color:var(--accent);font-family:var(--font-kr);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:1.85rem;font-weight:700;animation:2s ease-in-out infinite splash-pulse;display:inline-flex;position:relative}.app-splash-title{font-family:var(--font-display);letter-spacing:.04em;font-size:1.35rem;font-weight:600}.app-splash-spinner{border:2px solid var(--border);border-top-color:var(--mana);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite splash-spin}@keyframes splash-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.88;transform:scale(1.04)}}@keyframes splash-spin{to{transform:rotate(360deg)}}.dash-greeting h1{font-family:var(--font-display);letter-spacing:.02em;margin:0}.ritual-hero{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--circle) 34%, var(--border));background:radial-gradient(ellipse 72% 88% at 90% 16%, color-mix(in srgb, var(--mana) 20%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 84%, transparent);box-shadow:0 0 calc(28px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--mana) 10%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:1rem;padding:1.25rem 1.35rem;display:flex;position:relative;overflow:hidden}.ritual-hero-fx{opacity:.34;pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.ritual-hero-fx .magic-circle{position:absolute;top:50%;right:-1.25rem;transform:translateY(-50%)}.ritual-hero-fx .magic-circle.is-left{left:-1.25rem;right:auto}.ritual-hero>:not(.ritual-hero-fx){z-index:1;position:relative}.ritual-hero-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.ritual-hero-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.ritual-hero-main{flex:12rem}.ritual-hero-pct{font-family:var(--font-display);color:var(--accent);text-shadow:0 0 calc(16px * var(--glow-strength)) var(--mana-glow);font-size:2.5rem;font-weight:700;line-height:1.1}.ritual-hero-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.35rem;font-size:.9rem;display:flex}.ritual-hero-side{flex-wrap:wrap;gap:1.25rem;display:flex}.ritual-hero-stat{flex-direction:column;gap:.15rem;display:flex}.ritual-hero-stat-value{font-size:1.35rem;font-weight:700}.ritual-hero-stat-label{color:var(--muted);font-size:.85rem}.channeling-overlay{z-index:4;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:inherit;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.channeling-overlay.is-viewport-fixed{z-index:var(--z-loading);pointer-events:auto;touch-action:none;overscroll-behavior:none;border-radius:0;position:fixed;inset:0}.channeling-overlay .channeling-circle{opacity:.55}.channeling-overlay .channeling-circle .magic-circle-svg{animation:10s linear infinite magic-circle-spin}.channeling-label{z-index:1;font-family:var(--font-display);letter-spacing:.06em;color:var(--mana);text-transform:uppercase;margin-top:.5rem;font-size:.9rem;position:relative}.magic-well{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--circle) 38%, var(--border));background:radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--mana) 14%, transparent), transparent 58%), color-mix(in srgb, var(--bg-elevated) 88%, transparent);box-shadow:inset 0 0 32px color-mix(in srgb, var(--mana-glow) 12%, transparent), 0 0 calc(20px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 10%, transparent);position:relative;overflow:hidden}.magic-well>*{z-index:1;position:relative}.genie-scroll-well{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-y:auto}.genie-scroll-well::-webkit-scrollbar{display:none}.genie-scroll-well:after{content:"";pointer-events:none;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--bg-elevated) 90%, transparent));height:1.5rem;margin-top:-1.5rem;display:none;position:sticky;bottom:0}.genie-scroll-well.has-scroll-fade:after{display:block}.is-channeling{position:relative}.dash-hero{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--circle) 28%, var(--border));background:radial-gradient(ellipse 70% 80% at 92% 20%, color-mix(in srgb, var(--mana) 14%, transparent), transparent 60%), color-mix(in srgb, var(--bg-elevated) 88%, transparent);min-height:10.5rem;padding:1.25rem 1.35rem;position:relative;overflow:hidden}.dash-status-hero.ritual-hero{border:1px solid color-mix(in srgb, var(--circle) 28%, var(--border));background:radial-gradient(ellipse 70% 80% at 92% 20%, color-mix(in srgb, var(--mana) 14%, transparent), transparent 60%), color-mix(in srgb, var(--bg-elevated) 88%, transparent);min-height:0;box-shadow:0 0 calc(22px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 12%, transparent), inset 0 1px 0 color-mix(in srgb, var(--mana) 10%, transparent);margin-bottom:0;display:block}.dash-status-hero.dash-status-hero--split.ritual-hero{background:radial-gradient(ellipse 58% 78% at 10% 28%, color-mix(in srgb, var(--mana) 16%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 88%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:1.25rem 1.75rem;display:grid;overflow:visible}.dash-status-hero--split .ritual-hero-fx{opacity:.2}.dash-status-hero .ritual-hero-main{flex-direction:column;align-items:flex-start;gap:.45rem;min-width:0;max-width:36rem;display:flex}.dash-hero-calendar{min-width:0;max-width:100%;height:100%;color:inherit;--heat-preview-cell:1rem;--heat-preview-gap:.22rem;opacity:.95;background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-self:stretch;align-items:flex-end;gap:.45rem;margin:0;padding:0;display:flex;position:relative;overflow:visible}.dash-hero-calendar-label{color:var(--muted);letter-spacing:.02em;flex:none;font-size:.75rem;font-weight:500;line-height:1;text-decoration:none}.dash-hero-calendar-label:hover,.dash-hero-calendar-label:focus-visible{color:var(--text);outline:none}.dash-hero-calendar .heat-preview-grid{flex:none;justify-content:flex-end;width:max-content;max-width:100%;height:auto;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 8%);mask-image:linear-gradient(90deg,#0000 0%,#000 8%)}.heat-preview{position:relative;overflow:visible}.heat-preview-grid{gap:var(--heat-preview-gap,.18rem);display:flex}.heat-preview-week{gap:var(--heat-preview-gap,.18rem);flex-direction:column;flex:none;display:flex}.heat-preview-cell{box-sizing:border-box;width:var(--heat-preview-cell,.65rem);height:var(--heat-preview-cell,.65rem);background:var(--heat-0);box-shadow:none;cursor:pointer;border:none;border-radius:2px;flex:none;padding:0;display:block;position:relative}button.heat-preview-cell:hover,button.heat-preview-cell:focus-visible,button.heat-preview-cell.is-hover{outline:1px solid color-mix(in srgb, var(--text) 70%, transparent);outline-offset:1px;filter:brightness(1.15)}.heat-preview-popup{z-index:6;pointer-events:none;white-space:nowrap;border:1px solid color-mix(in srgb, var(--circle) 40%, var(--border));background:color-mix(in srgb, var(--bg-elevated) 96%, transparent);max-width:min(18rem,70vw);box-shadow:0 0 calc(14px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 18%, transparent), 0 6px 18px color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text);border-radius:6px;padding:.35rem .55rem;font-size:.75rem;line-height:1.3;position:absolute;transform:translate(-50%,calc(-100% - .4rem))}.heat-preview-popup strong{color:var(--text);font-weight:600}.heat-preview-0{background:var(--heat-0)}.heat-preview-1{background:var(--heat-1)}.heat-preview-2{background:var(--heat-2)}.heat-preview-3{background:var(--heat-3)}.heat-preview-4{background:var(--heat-4);box-shadow:0 0 0 1px color-mix(in srgb, var(--mana-glow) 55%, transparent)}.heat-preview-cell.is-future,.heat-cell.is-future{visibility:hidden;pointer-events:none;box-shadow:none;background:0 0;border:none}@media (width<=720px){.dash-status-hero.dash-status-hero--split.ritual-hero{grid-template-columns:1fr;gap:1rem}.dash-hero-calendar{--heat-preview-cell:.72rem;--heat-preview-gap:.16rem;align-self:auto;align-items:flex-start;height:auto}.dash-hero-calendar .heat-preview-grid{max-width:calc(8 * var(--heat-preview-cell) + 7 * var(--heat-preview-gap))}}.dash-status-label{color:var(--muted);margin:0;font-size:.95rem;font-weight:500}.dash-status-hero .ritual-hero-meta{margin-top:0}.dash-status-secondary{margin:0;font-size:.9rem}.dash-status-cta{margin-top:.35rem}.dash-status-cta-row{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:.35rem;display:flex}.dash-status-cta-row .dash-status-cta{margin-top:0}.dash-status-secondary-link{text-underline-offset:.15em;font-size:.9rem;text-decoration:underline}.sync-notice{border-radius:var(--radius,8px);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-elevated));margin:0 0 .75rem;padding:.55rem .85rem;font-size:.9rem}.class-mode-banner{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--warn) 14%, var(--bg-elevated));color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.88rem;display:flex}.dash-onboarding{margin-bottom:1rem}.dash-onboarding-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.dash-onboarding-head .subhead{margin:0}.dash-onboarding-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.dash-onboarding-list a{color:inherit;align-items:center;gap:.45rem;text-decoration:none;display:inline-flex}.dash-onboarding-list li.done a{opacity:.65;text-decoration:line-through}.companion-checklist{gap:.35rem;margin:.5rem 0 1rem;padding-left:1.25rem;font-size:.92rem;display:grid}.companion-checklist kbd,.companion-checklist code{font-size:.85em}.grade-shortcut-legend{text-align:center;grid-column:1/-1;margin:.35rem 0 0}.ritual-immersion-help{margin:0 0 .75rem}.skeleton-cta{height:var(--touch-min);width:60%;max-width:11rem;margin-top:.75rem;margin-bottom:0}.dash-hero-fx{opacity:.28;pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.dash-hero-fx .magic-circle{position:absolute;top:50%;right:-1.5rem;transform:translateY(-50%)}.dash-hero>:not(.ritual-hero-fx):not(.dash-hero-fx){z-index:1;position:relative}.dash-hero-pct{font-family:var(--font-display);color:var(--accent);text-shadow:0 0 calc(14px * var(--glow-strength)) var(--mana-glow);font-size:2.5rem;font-weight:700;line-height:1.1}.stat-card{background:color-mix(in srgb, var(--bg) 55%, transparent);border-color:color-mix(in srgb, var(--mana) 18%, var(--border));flex-direction:column;gap:.5rem;padding:1.25rem 1.35rem;display:flex}.stat-card-title{color:var(--muted);margin:0;font-size:.95rem;font-weight:500}.stat-card-value{line-height:1.1}.stat-card-meta{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.stat-card-cta{align-self:flex-start;margin-top:.35rem}.dash-glance{flex-direction:column;gap:.55rem;display:flex}.stat-card-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-card-grid .stat-card{padding:1rem 1.1rem}.dash-glance .subhead{margin:0}.dash-glance-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.dash-glance-metric{min-height:var(--touch-min);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--circle) 22%, var(--border));background:color-mix(in srgb, var(--bg-elevated) 88%, transparent);color:inherit;flex-direction:column;justify-content:center;gap:.2rem;padding:.7rem .8rem;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.dash-glance-metric:hover{background:var(--bg-hover);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--mana) 16%, transparent)}.dash-glance-metric:focus-visible,.dash-week-alert:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-glance-label{color:var(--muted);font-size:.8rem;font-weight:500}.dash-glance-value{font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.2}.dash-week-alert{min-height:var(--touch-min);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--warn) 35%, var(--border));background:color-mix(in srgb, var(--warn) 8%, var(--bg-elevated));color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding:.7rem .95rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.dash-week-alert:hover{border-color:color-mix(in srgb, var(--warn) 55%, var(--border));background:color-mix(in srgb, var(--warn) 12%, var(--bg-elevated))}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem;margin-top:.5rem;display:grid}.dashboard-page .module-card{gap:.25rem;padding:.85rem .95rem}.dashboard-page .module-card-value{font-size:1.1rem}@media (width<=720px){.dash-glance-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.module-card{color:inherit;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.module-card:before{content:"";border:1px solid color-mix(in srgb, var(--circle) 35%, transparent);width:7rem;height:7rem;box-shadow:inset 0 0 0 6px color-mix(in srgb, var(--mana) 8%, transparent);opacity:.35;pointer-events:none;border-radius:50%;position:absolute;inset:auto -20% -55% auto}.module-card:hover{background:var(--bg-hover);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 0 calc(16px * var(--glow-strength)) color-mix(in srgb, var(--mana) 18%, transparent)}.module-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.module-card-title{color:var(--muted);margin:0;font-size:.9rem;font-weight:500}.module-card-value{font-family:var(--font-display);font-size:1.2rem;font-weight:700;line-height:1.25}.module-card-sublabel,.module-card-loading,.module-card-empty{margin:0;font-size:.85rem}@media (prefers-reduced-motion:reduce){.app-splash-mark,.app-splash-spinner,.magic-circle-rotate .magic-circle-svg,.genie-orb-well,.genie-answer,.genie-orb-ripples,.auth-enter,.auth-sigil-mark,.landing-enter,.landing-hero-mark{animation:none}.top-progress-bar-fill{width:100%;animation:none}.module-card{transition:none}.mana-particles{display:none}}label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}input,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}input[type=checkbox]{appearance:none;border:1.5px solid var(--border);background:var(--bg);cursor:pointer;border-radius:5px;flex-shrink:0;place-content:center;width:1.15rem;height:1.15rem;margin:0;padding:0;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-grid}input[type=checkbox]:before{content:"";clip-path:polygon(14% 44%,0% 65%,50% 100%,100% 16%,80% 0%,43% 62%);background:#0a1210;width:.68rem;height:.68rem;transition:transform .12s;transform:scale(0)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 calc(8px * var(--glow-strength,.5)) var(--mana-glow)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover:not(:disabled):not(:checked){border-color:color-mix(in srgb, var(--circle,var(--accent)) 55%, var(--border))}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.btn{font:inherit;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:.55rem .9rem;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:color-mix(in srgb, var(--mana) 12%, var(--bg-hover));border-color:color-mix(in srgb, var(--circle) 35%, var(--border))}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(120deg, color-mix(in srgb, var(--mana) 35%, var(--accent)), var(--accent));color:#0a1210;box-shadow:0 0 calc(14px * var(--glow-strength)) var(--mana-glow);border-color:#0000;font-weight:600}.btn.primary:hover:not(:disabled){background:linear-gradient(120deg, color-mix(in srgb, var(--mana) 25%, var(--accent-hover)), var(--accent-hover))}.btn.ghost{background:0 0}.btn.small{min-height:36px;padding:.25rem .55rem}.app-shell{height:100dvh;max-height:100dvh;padding-left:var(--safe-left);padding-right:var(--safe-right);grid-template-columns:240px 1fr;display:grid;position:relative;overflow:hidden}.app-shell>.atmosphere-layer{z-index:0}.app-shell>.sidebar,.app-shell>.content-column{z-index:1;min-height:0;position:relative}.content-column{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden auto}.sidebar{padding:1rem;padding-top:calc(1rem + var(--safe-top));border-right:1px solid color-mix(in srgb, var(--circle) 22%, var(--border));background:color-mix(in srgb, var(--bg-elevated) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;align-self:stretch;gap:1rem;height:100%;display:flex}.brand{color:inherit;border-radius:10px;outline:none;align-items:center;gap:.75rem;text-decoration:none;display:flex}a.brand:hover .brand-title,a.brand:focus-visible .brand-title{color:var(--accent)}a.brand:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent)}.brand-title{font-family:var(--font-display);font-kerning:normal;font-feature-settings:"kern" 1, "liga" 1;letter-spacing:-.025em;font-size:1.625rem;font-weight:600;line-height:1}.brand-text{flex-direction:column;gap:4px;padding:4px 0;display:flex}.brand-sub{font-size:.8rem}.nav{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:.25rem;display:flex;overflow:hidden auto}.nav::-webkit-scrollbar{width:0;height:0;display:none}.nav-link{color:var(--text);border-radius:8px;align-items:center;min-height:44px;padding:.65rem .75rem;text-decoration:none;display:flex}.nav-link:hover{background:var(--bg-hover);box-shadow:0 0 calc(8px * var(--glow-strength)) color-mix(in srgb, var(--mana) 10%, transparent)}.nav-link.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text);box-shadow:inset 3px 0 0 var(--mana), 0 0 calc(10px * var(--glow-strength)) color-mix(in srgb, var(--mana) 20%, transparent);font-weight:600}.nav-label-short{display:none}.nav-label-full{display:inline}.nav-dock,.nav-more-btn,.nav-more-backdrop,.nav-more-sheet{display:none}.brand-sub{align-items:center;gap:.4rem;display:flex}.status-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem;display:inline-block}.status-dot.up{background:var(--success)}.status-dot.down{background:var(--danger)}.status-dot.unknown{background:var(--warn)}.banner{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.9rem;display:flex}.banner-offline{background:color-mix(in srgb, var(--warn) 18%, var(--bg-elevated));color:var(--warn)}.banner-api{background:color-mix(in srgb, var(--danger) 15%, var(--bg-elevated));color:var(--danger)}.banner-actions{gap:.35rem;display:inline-flex}.sidebar-footer{padding-bottom:var(--safe-bottom);flex-direction:column;gap:.5rem;display:flex}.class-mode-toggle-wrap{padding:.35rem .75rem 0}.class-mode-toggle-sheet{display:none}.class-mode-toggle{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);width:100%;color:var(--text);font:inherit;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.class-mode-toggle:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.class-mode-toggle.active{border-color:color-mix(in srgb, var(--accent) 65%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-elevated));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.class-mode-toggle:disabled{opacity:.6;cursor:not-allowed}.class-mode-toggle-label{font-size:.9rem;font-weight:600}.class-mode-toggle-state{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.class-mode-toggle.active .class-mode-toggle-state,.app-shell.in-class-mode .brand-title{color:var(--accent)}.immersion-timer-pill-wrap{padding:.35rem .75rem 0}.immersion-timer-pill-sheet{display:none}.immersion-timer-pill{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-elevated));width:100%;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);color:var(--text);font:inherit;align-items:center;gap:.45rem;padding:.5rem .75rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.immersion-timer-pill:hover{border-color:color-mix(in srgb, var(--accent) 65%, var(--border))}.immersion-timer-pill-dot{background:var(--accent);width:.55rem;height:.55rem;box-shadow:0 0 calc(8px * var(--glow-strength)) var(--mana-glow);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite immersion-timer-pulse}.immersion-timer-pill-clock{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600}.immersion-timer-pill-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}@keyframes immersion-timer-pulse{0%,to{opacity:1}50%{opacity:.35}}.main{padding:1.25rem;padding-bottom:calc(1.25rem + var(--safe-bottom));flex:1;width:100%;max-width:920px}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex;position:relative}.page-header:after{content:"";background:linear-gradient(90deg, var(--mana), transparent);width:3.5rem;height:2px;box-shadow:0 0 calc(8px * var(--glow-strength)) var(--mana-glow);border-radius:999px;position:absolute;bottom:-.35rem;left:0}.page-header h1{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:1.6rem}.page-sigil{opacity:.28;pointer-events:none;z-index:0;position:absolute;top:50%;right:0;transform:translateY(-50%)}.page-header>:not(.page-sigil){z-index:1;position:relative}.page-header.has-sigil{padding-right:4.5rem}.empty-magic{text-align:center;border:1px solid color-mix(in srgb, var(--circle) 28%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at 50% 20%, color-mix(in srgb, var(--mana) 10%, transparent), transparent 55%), color-mix(in srgb, var(--bg-elevated) 88%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--mana) 10%, transparent);padding:2rem 1.25rem;position:relative;overflow:hidden}.empty-magic .page-sigil{opacity:.18;position:absolute;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}.empty-magic>:not(.page-sigil){z-index:1;position:relative}.empty-magic p{margin:.35rem 0 0}.stats-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-value{font-size:1.35rem;font-weight:700}.stat-label{color:var(--muted);margin-top:.2rem;font-size:.85rem}.section{margin-bottom:1rem}.section h2{font-family:var(--font-display);letter-spacing:.015em;margin:0 0 .75rem;padding-left:1.1rem;font-size:1.1rem}.task-list{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.task.done .task-label{color:var(--muted);text-decoration:line-through}.task.done{animation:.65s task-mana-flash}@keyframes task-mana-flash{0%{box-shadow:0 0 0 color-mix(in srgb, var(--mana) 0%, transparent)}40%{box-shadow:0 0 calc(14px * var(--glow-strength)) var(--mana-glow)}to{box-shadow:none}}.task-check{color:var(--text);flex-direction:row;align-items:center;gap:.6rem;font-size:1rem}.task-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:.5rem;margin:.35rem 0;font-size:.9rem;display:flex}.stepper{gap:.25rem;display:inline-flex}.bar{background:var(--bg);border-radius:999px;height:6px;overflow:hidden}.bar .fill{background:linear-gradient(90deg, var(--mana), var(--accent));border-radius:inherit;height:100%;box-shadow:0 0 calc(8px * var(--glow-strength)) var(--mana-glow)}.hint{margin:.35rem 0 0;font-size:.85rem}.grammar-point{margin-bottom:1rem}.success-pill{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success);border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.ritual-focus{border-left:3px solid var(--accent);margin-bottom:1rem;padding:1.15rem 1.25rem}.ritual-focus-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .5rem;font-size:.85rem}.ritual-focus-grammar{margin:0 0 1rem;font-size:1.05rem;line-height:1.45}.ritual-focus-actions{flex-wrap:wrap;gap:.6rem;display:flex}.ritual-focus-actions .btn{min-height:var(--touch-min)}.ritual-signals,.ritual-ssrs{margin-bottom:1rem}.stat-value-sub{color:var(--muted);font-size:.85em;font-weight:500}.task-meta-actions{align-items:center;gap:.5rem;display:inline-flex}.task-open-link{color:var(--accent);white-space:nowrap;font-size:.85rem;text-decoration:none}.task-open-link:hover{color:var(--accent-hover);text-decoration:underline}.ko,[lang=ko],.prompt-ko,.hanja-char,.entry-word{font-family:var(--font-kr)}.page-header-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex;position:relative}.production-session-bar{margin-bottom:1rem}.production-session-progress{align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.production-session-grammar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.production-source-word{margin:.5rem 0}.production-offline-banner{background:var(--bg-elevated);border-radius:var(--radius);margin-bottom:1rem;padding:.65rem .85rem}.pattern-hint-box{margin:.5rem 0 .75rem}.ritual-week-review .week-review-toggle{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.ritual-week-review .week-review-toggle h2{margin:0}.week-bars{align-items:flex-end;gap:.35rem;height:5rem;margin:.75rem 0;display:flex}.week-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.week-bar-fill{background:linear-gradient(180deg, var(--mana), var(--accent));width:100%;max-width:2rem;min-height:4px;box-shadow:0 0 calc(6px * var(--glow-strength)) var(--mana-glow);border-radius:4px 4px 0 0}.week-bar-label{color:var(--muted);margin-top:.25rem;font-size:.65rem}.week-review-block{margin-top:.75rem}.hanja-link{color:var(--accent);text-decoration:none}.hanja-link:hover{text-decoration:underline}.filter-scroll{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.4rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.filter-scroll .chip{flex-shrink:0}.mobile-back-btn{display:none}.entry-row-btn-grow{flex:1}.struggle-row{align-items:stretch;gap:.5rem;display:flex}.collapse-toggle{width:100%;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:0;display:flex}.collapse-toggle h2{margin:0}.book-cover{object-fit:cover;border-radius:4px;flex-shrink:0;width:3.5rem;height:auto}.book-row{align-items:flex-start;gap:.75rem}.book-row-body{flex:1;min-width:0}.reading-notes-label{margin-top:.5rem}.reading-today-summary{margin-bottom:1rem}.ritual-targets-grid{margin:.75rem 0}.hanja-tile-active{outline:2px solid var(--accent)}.plain{padding-left:1.1rem}.kind-tabs{border-bottom:1px solid color-mix(in srgb, var(--circle) 22%, var(--border));flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;padding-bottom:.35rem;display:flex}.kind-tabs .btn.primary.small{box-shadow:0 0 calc(10px * var(--glow-strength)) var(--mana-glow)}.practice-actions{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.85rem;display:flex}.inline-label{flex-direction:row;align-items:center;gap:.45rem}.inline-label select,.inline-label input[type=number]{min-width:6rem}select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem}.prompt-box{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:.85rem;padding:.75rem .9rem}.prompt-ko{margin:0 0 .25rem;font-size:1.15rem;font-weight:600}.grammar-focus{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:3px;padding:.05em .18em;font-style:normal;font-weight:700}mark.grammar-focus{background:color-mix(in srgb, var(--accent) 16%, transparent)}.prompt-en{margin:0}.small{font-size:.85rem}.entry-list,.point-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.entry-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding-bottom:.75rem;display:flex}.entry-row:last-child{border-bottom:none;padding-bottom:0}.entry-text{margin:.25rem 0 0}.entry-prompt{margin:.2rem 0 0}.badge{background:var(--bg-hover);text-transform:lowercase;border-radius:999px;margin-right:.35rem;padding:.15rem .45rem;font-size:.75rem;display:inline-block}.badge.win{background:color-mix(in srgb, var(--success) 30%, transparent);color:var(--success)}.badge.badge-suggested{background:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent)}.badge.badge-curriculum{background:color-mix(in srgb, var(--circle,var(--accent)) 22%, transparent);color:var(--text);border:1px solid color-mix(in srgb, var(--circle,var(--accent)) 45%, transparent)}.badge.badge-warn{background:color-mix(in srgb, var(--warn,#d4b06a) 25%, transparent);color:var(--warn,#d4b06a)}.badge.badge-enriched{background:color-mix(in srgb, var(--success) 25%, transparent);color:var(--success)}.badge.badge-missing{background:color-mix(in srgb, var(--warn,#d4b06a) 25%, transparent);color:var(--warn,#d4b06a)}.linkish{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;min-height:auto;padding:0}.linkish:hover{color:var(--accent)}.header-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex;position:relative}.page-header.is-channeling .header-actions,.page-header.is-channeling .page-header-actions{min-width:6rem;min-height:2.5rem}.grammar-study-scope{margin-top:-.35rem}.grammar-study-idle{text-align:left;margin-top:.5rem}.grammar-study-idle .page-sigil{opacity:.12}.drill-panel{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.comp-list ol{flex-direction:column;gap:.75rem;margin:.4rem 0 0;padding-left:1.2rem;display:flex}.judgment{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));margin-top:.75rem}.definition{margin-bottom:1rem}.example{border-left:2px solid var(--border);margin:.4rem 0;padding-left:.5rem}.details-pre{white-space:pre-wrap;color:var(--muted);background:var(--bg);border-radius:8px;max-height:240px;padding:.75rem;font-size:.85rem;overflow:auto}.grammar-layout{grid-template-columns:minmax(260px,1fr) minmax(280px,1.35fr);align-items:start;gap:1rem;display:grid}.grammar-layout>.section,.lexicon-layout>.section{margin-bottom:0;position:relative}.grammar-layout .page-header:after,.lexicon-page .page-header:after,.grammar-page .page-header:after,.hanja-page .page-header:after,.reading-page .page-header:after,.production-page .page-header:after,.speech-page .page-header:after,.speech-project-page .page-header:after{opacity:1;width:3.5rem}.grammar-list-pane{max-height:calc(100vh - 10rem);overflow:auto}.grammar-detail-pane{max-height:calc(100vh - 10rem);position:sticky;top:.75rem;overflow:auto}.grammar-list-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.65rem;display:flex}.grammar-list-toolbar input[type=search]{flex:1;min-width:10rem}.grammar-suggest-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.grammar-suggest-form input[type=text]{flex:1;min-width:12rem}.grammar-count{white-space:nowrap}.type-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;min-height:auto;padding:.3rem .55rem;font-size:.8rem;display:inline-flex}.chip:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));color:var(--text)}.chip-active,.chip.active{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:color-mix(in srgb, var(--accent) 55%, var(--border));color:var(--text)}.chip-count{opacity:.75;font-size:.72rem}.interest-pill-picker{flex-direction:column;gap:.9rem;display:flex}.interest-pill-picker-header{flex-direction:column;gap:.2rem;display:flex}.interest-pill-picker-title{margin:0;font-weight:600}.interest-pill-counter{letter-spacing:.02em;background:color-mix(in srgb, var(--accent) 16%, var(--bg-elevated));color:var(--accent);border-radius:999px;align-self:flex-start;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.interest-pill-category{flex-direction:column;gap:.4rem;display:flex}.interest-pill-category-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:600}.interest-pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.interest-pill{font:inherit;border:1.5px solid var(--border);background:var(--bg-elevated);min-height:2.25rem;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .8rem;font-size:.88rem;font-weight:500;transition:transform .12s,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.interest-pill:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--border));transform:translateY(-1px)}.interest-pill:disabled{opacity:.4;cursor:not-allowed}.interest-pill.active{background:color-mix(in srgb, var(--accent) 28%, var(--bg-elevated));border-color:color-mix(in srgb, var(--accent) 80%, var(--border));color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);font-weight:600;animation:.22s interest-pill-pop}.interest-pill-emoji{font-size:1rem;line-height:1}.interest-pill-check{color:var(--accent);font-size:.85rem;font-weight:700;line-height:1}.interest-pill-remove{opacity:.7;margin-left:.15rem;font-weight:600}.interest-pill-cap-note{opacity:.85;font-weight:500}.interest-pill-selected{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-elevated));border-radius:12px;flex-direction:column;gap:.35rem;padding:.55rem .65rem;display:flex}.interest-pill-selected-label{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.72rem;font-weight:700}.interest-pill-category-toggle{width:100%;color:var(--muted);font:inherit;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;margin:0;padding:.35rem .15rem;font-size:.8rem;font-weight:600;display:flex}.interest-pill-category-toggle:hover{color:var(--text)}.interest-pill-cat-count{background:color-mix(in srgb, var(--accent) 22%, var(--bg));min-width:1.25rem;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;margin-left:.35rem;padding:.05rem .35rem;font-size:.72rem;font-weight:700;display:inline-flex}.interest-pill-chevron{opacity:.75;font-size:.85rem}.interest-pill-custom-row{align-items:center;gap:.5rem;display:flex}@keyframes interest-pill-pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.interest-pill{transition:none}.interest-pill.active{animation:none}}.curriculum-filters{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:.85rem;display:flex}.curriculum-filter-field{flex-direction:column;gap:.15rem;font-size:.8rem;display:flex}.curriculum-block{margin-top:.5rem}.curriculum-block .badge-curriculum{margin-bottom:.35rem}.tag-editor{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.tag-editor input[type=text]{width:100%}.link-chip{text-align:left}.grammar-point-list{gap:.35rem;margin-bottom:.75rem}.point-row{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;min-height:auto;padding:.55rem .65rem;display:block}.point-row:hover{background:var(--bg-hover);border-color:var(--border)}.point-row-active{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.point-row-top{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.point-name{font-size:1rem}.point-meaning{margin:.25rem 0 0;line-height:1.35}.point-meta{gap:.6rem;margin-top:.25rem;display:flex}.detail-header{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;display:flex}.detail-title{margin:0 0 .35rem;font-size:1.35rem}.def-name{margin:0 0 .35rem;font-size:1.05rem}.def-meaning{margin:0 0 .5rem;line-height:1.45}.subhead{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .45rem;font-size:.9rem}.example-block{margin-top:.5rem}.related-block{margin:1rem 0}.chip-link-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.details-fold{margin-top:1rem}.details-fold summary{cursor:pointer;color:var(--muted);margin-bottom:.5rem}.inline-chip{vertical-align:baseline;margin:0 .15rem;padding:.1rem .45rem;font-size:.78rem}.dict-ref{color:var(--muted);font-style:italic}.grammar-correct,.grammar-wrong{align-items:center;gap:.3rem;font-size:.92rem;display:inline-flex}.grammar-correct{color:var(--success,#2e7d32)}.grammar-wrong{color:var(--danger,#c62828)}.grammar-alert{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 8%, var(--bg));border-radius:8px;margin:.6rem 0;padding:.6rem .8rem}.grammar-alert--rule{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.grammar-alert p:last-child{margin-bottom:0}.today-callout{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:.75rem 0;padding:.75rem;display:flex}.today-callout p{margin:0}.study-start-row{flex-direction:column;gap:.75rem;margin-bottom:.5rem;display:flex}.grammar-reveal-btn{min-height:var(--touch-min)}.grammar-study-actions{gap:.5rem}.comp-item{padding-bottom:.5rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.grammar-empty-detail h2{margin-top:0}@media (width<=900px){.grammar-layout{grid-template-columns:1fr}.grammar-layout.has-detail .grammar-list-pane{display:none}.grammar-list-pane,.grammar-detail-pane{max-height:none;position:static}}.lexicon-layout{grid-template-columns:minmax(280px,1fr) minmax(280px,1.15fr);align-items:start;gap:1rem;display:grid}.lexicon-layout>.section{margin-bottom:0}.lexicon-list-pane{max-height:calc(100vh - 12rem);overflow:auto}.lexicon-detail-pane{max-height:calc(100vh - 12rem);position:sticky;top:.75rem;overflow:auto}.lexicon-detail-media{margin:.5rem 0}.lexicon-detail-image{max-height:min(30vh,12rem)}.lexicon-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem;display:flex}.lexicon-toolbar input[type=search]{flex:1;min-width:10rem}.lexicon-filters{flex-wrap:wrap;align-items:flex-start;gap:.65rem .85rem;margin-bottom:.65rem;display:flex}.lexicon-filters .deck-picker{flex:14rem;min-width:12rem;max-width:100%}.lexicon-filter-field{flex-direction:column;flex:none;align-self:flex-start;gap:.35rem;min-width:9rem;display:flex}.lexicon-filter-field select{width:100%;min-width:9rem;min-height:var(--touch-min,2.5rem);max-height:none;font:inherit;flex:none;align-self:flex-start;padding:.4rem .55rem}.lexicon-deck-actions{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .65rem;display:flex}.lexicon-bulk-bar{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-elevated));flex-direction:column;gap:.55rem;margin:0 0 .75rem;padding:.65rem .75rem;display:flex}.lexicon-bulk-bar-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lexicon-bulk-bar-fields{flex-wrap:wrap;align-items:flex-end;gap:.5rem .65rem;display:flex}.lexicon-bulk-field{flex-direction:column;flex:8rem;gap:.25rem;min-width:8rem;display:flex}.lexicon-bulk-field input,.lexicon-bulk-field select{min-height:var(--touch-min,2.5rem);font:inherit;padding:.35rem .5rem}.lexicon-checkbox-row>.entry-row-btn{flex:1;min-width:0}.lexicon-checkbox-row>input[type=checkbox]{flex-shrink:0;margin-top:.85rem}.lexicon-decks-tab{flex-direction:column;gap:1rem;display:flex}.lexicon-deck-grid{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;display:grid}.lexicon-deck-card{flex-direction:column;gap:.5rem;display:flex}.lexicon-deck-card-open{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.3rem;padding:0;display:flex}.lexicon-deck-card-name{font-size:1.05rem;font-weight:650}.lexicon-deck-card-bar{width:100%;margin-top:.15rem}.lexicon-deck-card-actions{flex-wrap:wrap;gap:.35rem;display:flex}.lexicon-checkbox-row{align-items:center;gap:.5rem;display:flex}.lexicon-checkbox-row .entry-row-btn{flex:auto}.lexicon-word-form{border-top:1px solid color-mix(in srgb, var(--border) 80%, transparent);border-bottom:1px solid color-mix(in srgb, var(--border) 80%, transparent);gap:.55rem;margin:0 0 .85rem;padding:.75rem 0;display:grid}.lexicon-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .65rem;display:grid}.lexicon-form-grid .field{gap:.2rem;display:grid}.lexicon-form-grid .field-span{grid-column:1/-1}.lexicon-form-grid input,.lexicon-form-grid textarea{width:100%}@media (width<=640px){.lexicon-form-grid{grid-template-columns:1fr}}.lexicon-entry-list{gap:.25rem}.entry-row-btn{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;min-height:auto;padding:.55rem .65rem;display:block}.entry-row-btn:hover{background:var(--bg-hover);border-color:var(--border)}.entry-row-active{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.entry-word{font-size:1.05rem}.hanja{color:var(--muted);font-size:.95rem}.hanja.big{font-size:1.1rem}.entry-meta{flex-wrap:wrap;gap:.55rem;margin-top:.25rem;display:flex}.deck-tag{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.badge.kw-solid{background:color-mix(in srgb, var(--success) 28%, transparent);color:var(--success)}.badge.kw-progress{background:color-mix(in srgb, var(--accent) 25%, transparent)}.badge.kw-attention{color:#e8a838;background:#e8a8384d}.stat-btn{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.stat-btn:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.entry-stats-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.65rem;margin:.85rem 0;display:grid}.stat-value-sm{font-size:1.1rem;font-weight:600}.card-stat-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.card-stat-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem 0;display:flex}.card-preview-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.85rem;margin-top:.5rem;display:grid}.card-preview{border:1px solid var(--border);border-radius:var(--radius-md,8px);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.card-preview-mode{margin:0}.card-preview-face{text-align:center;border-radius:var(--radius-md,8px);justify-content:center;align-items:center;min-height:3.5rem;padding:.85rem .75rem;display:flex}.card-preview-front{font-size:1.15rem;font-weight:600;line-height:1.25}.card-preview-front.ko{font-size:1.4rem}.card-preview-gloss{margin:0;font-size:.95rem;font-weight:600}.card-preview-gloss.ko{font-size:1.05rem}.card-preview-chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.lexicon-insights-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.lexicon-insights-grid>.section{margin-bottom:0}.level-headline{margin:0 0 .75rem;font-size:1.15rem}.level-scores{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem;margin-bottom:.85rem;display:grid}.insight-bullets{flex-direction:column;gap:.45rem;display:flex}.deck-maturity-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.deck-maturity-row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:.15rem .5rem;min-height:auto;padding:.35rem 0;display:grid}.deck-maturity-row:hover .deck-name{color:var(--accent)}.deck-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.maturity-bar{background:var(--bg);border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.maturity-fill{background:var(--accent);border-radius:2px;height:100%}.kw-count-row{margin:.35rem 0}.kw-count-row .linkish{align-items:center;gap:.5rem;display:inline-flex}@media (width<=900px){.lexicon-layout{grid-template-columns:1fr}.lexicon-layout.has-detail .lexicon-list-pane{display:none}.lexicon-list-pane,.lexicon-detail-pane{max-height:none;position:static}}.options-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:.85rem;display:grid}.ritual-target-manager{margin-top:.5rem}.ritual-target-list{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.ritual-target-row{border:1px solid var(--border,#2a3530);background:color-mix(in srgb, var(--bg-elevated,#121a17) 90%, transparent);border-radius:8px;flex-direction:column;gap:.5rem;padding:.65rem .75rem;display:flex}.ritual-target-row-main,.ritual-target-row-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ritual-target-row input[type=text],.ritual-target-row input[type=number],.ritual-target-row select{min-width:0;padding:.35rem .5rem}.ritual-target-label{flex:2 10rem}.ritual-target-section{flex:7rem}.ritual-target-value{width:4.5rem}.ritual-target-unit{width:6rem}.ritual-metric-source{flex-wrap:wrap;flex:auto;gap:.4rem;display:flex}.ritual-metric-advanced-input{flex:12rem}.ritual-target-enabled{white-space:nowrap;flex-direction:row;align-items:center;gap:.35rem}.ritual-target-row-actions{gap:.35rem;margin-left:auto;display:flex}.ritual-add-target{border-top:1px solid var(--border,#2a3530);padding-top:.75rem}.checks{flex-direction:column;gap:.45rem;margin-bottom:.75rem;display:flex}.check{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.job-panel{flex-direction:column;gap:.5rem;margin-top:.85rem;display:flex}.job-log{white-space:pre-wrap;background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:8px;max-height:280px;margin:0;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;overflow:auto}input[type=file]{font:inherit;color:var(--muted)}.hanja-tile{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font:inherit;border-radius:10px;flex-direction:column;align-items:center;gap:.2rem;min-height:88px;padding:.65rem .4rem;display:flex}.book-row{align-items:flex-start}:root{--heat-cell:12px;--heat-0:color-mix(in srgb, var(--border) 55%, var(--bg));--heat-1:color-mix(in srgb, var(--accent) 32%, var(--bg-elevated));--heat-2:color-mix(in srgb, var(--accent) 58%, var(--bg-elevated));--heat-3:color-mix(in srgb, var(--accent) 82%, var(--mana));--heat-4:var(--accent-hover)}.ritual-heat-section h2{margin-bottom:.25rem}#calendar.ritual-heat-section{scroll-margin-top:1.25rem}.ritual-heat-embedded{margin-top:.35rem}.heat-header{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;display:flex}.streak-pills{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.streak-pill{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.35rem .6rem;font-size:.8rem}.streak-pill.primary{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--text)}.streak-pill strong{color:var(--text);margin-left:.2rem}.heat-scroll{-webkit-overflow-scrolling:touch;padding-bottom:.35rem;overflow-x:auto}.heat-months{align-items:end;gap:3px;min-width:max-content;height:1.1rem;margin-bottom:.25rem;display:grid}.heat-month{color:var(--muted);white-space:nowrap;font-size:.7rem;line-height:1;overflow:visible}.heat-month-spacer{visibility:hidden}.heat-grid{grid-auto-rows:var(--heat-cell);align-items:center;gap:3px;min-width:max-content;display:grid}.heat-dow{color:var(--muted);width:1.75rem;font-size:.65rem;line-height:var(--heat-cell);height:var(--heat-cell)}.heat-cell{width:var(--heat-cell);height:var(--heat-cell);min-width:var(--heat-cell);min-height:var(--heat-cell);cursor:default;background:var(--heat-0);border:none;border-radius:2px;padding:0;position:relative}button.heat-cell{cursor:pointer}button.heat-cell:hover,button.heat-cell:focus-visible{outline:1px solid var(--text);outline-offset:1px}.heat-0{background:var(--heat-0)}.heat-1{background:var(--heat-1)}.heat-2{background:var(--heat-2)}.heat-3{background:var(--heat-3)}.heat-4{background:var(--heat-4)}.heat-cell.heat-4{box-shadow:0 0 0 1px color-mix(in srgb, var(--mana-glow) 45%, transparent)}.heat-cell.heat-success,.heat-preview-cell.is-success{background:0 0}.heat-cell.heat-success:after,.heat-preview-cell.is-success:after{content:"";background:var(--accent);pointer-events:none;position:absolute;inset:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cpath d='M7 19l7 7L29 9' fill='none' stroke='black' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cpath d='M7 19l7 7L29 9' fill='none' stroke='black' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.heat-cell.legend{cursor:default;pointer-events:none}.heat-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.heat-legend{align-items:center;gap:.3rem;display:inline-flex}.heat-tooltip{margin:0}@media (width<=800px){:root{--heat-cell:11px}.app-shell{grid-template-rows:1fr;grid-template-columns:1fr;padding-left:0;padding-right:0}.app-shell>.atmosphere-layer,.app-shell>.sidebar,.app-shell>.content-column,.app-shell>.nav-more-backdrop,.app-shell>.nav-more-sheet{grid-area:1/1}.content-column{height:100%;min-height:0;padding-bottom:calc(4.25rem + var(--safe-bottom))}.app-shell.focus-session .content-column{padding-bottom:var(--safe-bottom);flex-direction:column;min-height:0;display:flex;overflow:hidden}.app-shell.focus-session .main{flex-direction:column;flex:auto;min-height:0;max-height:100%;display:flex;overflow:hidden}.app-shell.focus-session .reader-page{height:100%;max-height:100%}.app-shell.focus-session .exam-take{flex:auto;min-height:0;max-height:100%;overflow:hidden}.app-shell.focus-session .exam-take>.page-header{flex-shrink:0}.app-shell.focus-session .exam-take-scroll{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.app-shell>.sidebar{width:auto;height:auto;max-height:none;z-index:var(--z-nav);border-right:none;border-top:1px solid var(--border);padding:.35rem .4rem;padding-bottom:calc(.35rem + var(--safe-bottom));padding-left:calc(.4rem + var(--safe-left));padding-right:calc(.4rem + var(--safe-right));background:color-mix(in srgb, var(--bg-elevated) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:none;align-self:end;gap:0;position:fixed;inset:auto 0 0}.app-shell.focus-session .sidebar,.app-shell.focus-session>.sidebar,.brand,.nav-desktop{display:none}.nav-dock{flex-flow:row;flex:none;justify-content:space-around;align-items:stretch;gap:.15rem;padding-bottom:0;display:flex;overflow:visible}.nav-dock .nav-link,.nav-more-btn{white-space:nowrap;min-height:var(--touch-min);max-height:var(--touch-min);text-align:center;color:var(--text);font-size:.78rem;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;padding:.4rem .25rem;display:flex}.nav-dock .nav-link.active,.nav-more-btn.active{box-shadow:none;background:color-mix(in srgb, var(--mana) 14%, var(--accent-soft));font-weight:600}.nav-label-short{display:inline}.nav-label-full,.sidebar-footer,.class-mode-toggle-desktop{display:none}.class-mode-toggle-sheet{padding:.15rem 0;display:block}.immersion-timer-pill-desktop{display:none}.immersion-timer-pill-sheet{padding:.15rem 0;display:block}.nav-more-backdrop{z-index:var(--z-modal);background:color-mix(in srgb, var(--bg) 55%, transparent);cursor:pointer;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}.nav-more-sheet{z-index:calc(var(--z-modal) + 1);max-height:min(72dvh,32rem);padding:.85rem .85rem calc(.85rem + var(--safe-bottom));padding-left:calc(.85rem + var(--safe-left));padding-right:calc(.85rem + var(--safe-right));border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 -12px 40px color-mix(in srgb, var(--bg) 55%, transparent);border-bottom:none;border-radius:16px 16px 0 0;flex-direction:column;gap:.65rem;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-more-sheet-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.nav-more-sheet-head h2{margin:0;font-size:1.1rem}.nav-more-list{-webkit-overflow-scrolling:touch;flex-direction:column;gap:.2rem;display:flex;overflow:auto}.nav-more-list .nav-link{min-height:var(--touch-min);padding:.7rem .85rem}.nav-more-list .nav-label-short{display:none}.nav-more-list .nav-label-full{display:inline}.nav-more-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.5rem;display:flex}.nav-more-footer .btn{min-height:var(--touch-min)}.main{padding:1rem;padding-top:calc(1rem + var(--safe-top))}.page-header{flex-wrap:wrap}.page-header h1{font-size:1.35rem}.stats-row{grid-template-columns:repeat(2,1fr)}.ritual-hero{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem 1.1rem}.ritual-hero-main{flex:0 auto}.ritual-hero-side{flex:0 auto;justify-content:flex-start;gap:1.5rem;width:100%}.ritual-hero-pct{font-size:2rem}.auth-layout{padding:calc(1.1rem + var(--safe-top)) 1rem calc(1.1rem + var(--safe-bottom))}.auth-chamber{gap:1rem;margin-top:clamp(4rem,20vmin,7rem)}.magic-circle-hero{width:min(92vmin,440px);height:min(92vmin,440px)}.auth-sigil{top:30%}.auth-sigil-mark{font-size:clamp(2.5rem,12vmin,3.75rem)}.auth-brand-title{font-size:clamp(2.35rem,10vw,3rem)}.auth-main{padding:0}.landing-hero{padding:calc(1.25rem + var(--safe-top)) 1rem 2rem}.landing-hero-sigil{top:30%}.landing-hero-mark{font-size:clamp(2.5rem,12vmin,3.75rem)}.landing-hero-copy{margin-top:clamp(4rem,20vmin,7rem)}.landing-brand{font-size:clamp(2.35rem,10vw,3rem)}.landing-main{gap:2.75rem;padding:0 1rem}.landing-hero-cta{width:100%}.landing-hero-cta .btn{flex:calc(50% - .35rem);min-width:0}.dash-hero-pct{font-size:2rem}.ritual-focus-actions .btn{white-space:nowrap;flex:0 auto;justify-content:center}.mobile-back-btn{margin-bottom:.75rem;display:inline-flex}.lexicon-layout .lexicon-detail-pane,.grammar-layout .grammar-detail-pane,.hanja-detail-pane{margin-top:.5rem}.btn,.check,.task-check{min-height:var(--touch-min)}textarea,input,select{font-size:16px}.grammar-page .kind-tabs{grid-template-columns:repeat(3,1fr);gap:.4rem;display:grid}.grammar-page .kind-tabs .btn{width:100%;min-height:var(--touch-min);justify-content:center;padding:.55rem .4rem;font-size:.9rem}.grammar-study-active .prompt-ko{font-size:1.35rem;line-height:1.55}.grammar-study-active .prompt-en{font-size:1.05rem;line-height:1.45}.grammar-reveal-btn,.grammar-study-actions .btn{width:100%;min-height:var(--touch-min);justify-content:center}.grammar-study-actions{bottom:calc(4.25rem + var(--safe-bottom));z-index:6;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid color-mix(in srgb, var(--border) 80%, transparent);grid-template-columns:1fr 1fr;gap:.5rem;margin:.75rem -.25rem 0;padding:.65rem .5rem;display:grid;position:sticky}.grammar-study-actions .btn.primary{grid-column:1/-1}.grammar-study-active .prod-drill{padding-bottom:.5rem}}@media (width>=801px){.nav-label-short{display:none}.nav-label-full{display:inline}.nav-desktop{display:flex}.nav-dock,.nav-more-btn,.nav-more-backdrop,.nav-more-sheet{display:none!important}}@keyframes skeleton-pulse{0%,to{opacity:.45}50%{opacity:.85}}.skeleton-card{pointer-events:none}.skeleton-line{background:var(--border);border-radius:6px;margin-bottom:.65rem;animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-page-title{width:40%;max-width:12rem;height:1.75rem}.skeleton-title{width:35%;height:.9rem}.skeleton-value{width:55%;height:2rem}.skeleton-sub{width:70%;height:.75rem}.skeleton-actions{width:100%;height:2.25rem}.skeleton-row{width:100%;height:1.25rem}.fetching-badge{margin-left:.5rem;font-style:italic;display:inline-block}.modal-root,.speech-create-modal-root{z-index:var(--z-modal);padding:1rem;padding-left:calc(1rem + var(--safe-left));padding-right:calc(1rem + var(--safe-right));padding-bottom:calc(1rem + var(--safe-bottom));place-items:center;display:grid;position:fixed;inset:0}.modal-backdrop,.speech-create-backdrop{background:color-mix(in srgb, var(--bg) 55%, transparent);cursor:pointer;border:none;margin:0;padding:0;position:absolute;inset:0}.modal-backdrop:disabled{cursor:default}.modal-dialog,.speech-create-modal{z-index:1;width:min(40rem,100%);max-height:min(88dvh,44rem);margin:0;position:relative;overflow:auto}.modal-head,.speech-create-modal-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.modal-head .subhead,.speech-create-modal-head .subhead{margin:0}.add-to-deck-modal{width:min(24rem,100%)}.stroke-order-modal{width:min(20rem,100%)}.stroke-order-canvas{width:200px;height:200px;margin:.5rem auto}.stroke-order-controls{justify-content:center}.add-to-deck-gloss{margin:0 0 .75rem}.add-to-deck-form .field,.add-to-deck-form .deck-picker{flex-direction:column;gap:.35rem;margin-bottom:.65rem;display:flex}.deck-picker{flex-direction:column;gap:.35rem;min-width:0;display:flex}.deck-picker-list{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 70%, var(--bg-elevated));border-radius:8px;flex-direction:column;gap:.2rem;max-height:min(14rem,40dvh);margin:0;padding:.25rem;list-style:none;display:flex;overflow:auto}.deck-picker--compact .deck-picker-list{max-height:min(9rem,28dvh)}.deck-picker-option{appearance:none;text-align:left;width:100%;color:var(--text);min-height:var(--touch-min,2.5rem);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .55rem;display:flex}.deck-picker-option:hover:not(:disabled){background:color-mix(in srgb, var(--mana,var(--accent)) 12%, transparent)}.deck-picker-option.selected{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:color-mix(in srgb, var(--accent) 14%, var(--bg-elevated))}.deck-picker-option:disabled{opacity:.6;cursor:default}.deck-picker-option-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.deck-picker-option-count{font-variant-numeric:tabular-nums;flex-shrink:0}.deck-picker-create{flex-direction:column;gap:.35rem;margin:0;display:flex}.deck-picker-create input{width:100%}.options-grid .deck-picker,.form-grid .deck-picker,.lexicon-deck-actions .deck-picker{flex:12rem;min-width:10rem}.lexicon-deck-actions .deck-picker{max-width:18rem}.word-form-fields .deck-picker,.lexicon-word-form .deck-picker{grid-column:1/-1}.add-to-deck-actions{justify-content:flex-end;margin-top:.85rem}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.speech-form label{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.speech-textarea{font-family:var(--font-kr);resize:vertical;min-height:10rem}.speech-project-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.speech-project-card{color:inherit;flex-direction:column;gap:.75rem;transition:background .15s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.speech-project-card:before{content:"";border:1px solid color-mix(in srgb, var(--circle) 35%, transparent);width:7rem;height:7rem;box-shadow:inset 0 0 0 6px color-mix(in srgb, var(--mana) 8%, transparent);opacity:.35;pointer-events:none;border-radius:50%;position:absolute;inset:auto -20% -55% auto}.speech-project-card:hover{border-color:color-mix(in srgb, var(--mana) 35%, var(--border));box-shadow:0 0 calc(16px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 18%, transparent)}.speech-card-title-link,.speech-card-body-link{color:inherit;text-decoration:none}.speech-card-title-link:hover h3{color:var(--mana)}.speech-card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.speech-card-top h3{margin:0}.speech-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.speech-fav-btn.is-favorited{color:var(--mana)}.speech-card-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.speech-phase-badge{background:var(--bg-hover);color:var(--muted);border-radius:999px;padding:.2rem .55rem;font-size:.75rem;display:inline-block}.speech-ready-pill{background:color-mix(in srgb, var(--success) 20%, transparent);color:var(--success);border-radius:999px;align-self:flex-start;padding:.2rem .55rem;font-size:.75rem;display:inline-block}.speech-how-list{margin:0 0 1rem;padding-left:1.2rem}.speech-countdown-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.speech-countdown-main{align-items:center;gap:1rem;display:flex}.speech-countdown-days{font-size:2.5rem;line-height:1}.speech-countdown-value.tone-today{color:var(--accent,#c45c26)}.speech-countdown-value.tone-overdue{color:var(--danger,#b33a3a)}.speech-countdown-banner.tone-overdue{border-color:color-mix(in srgb, var(--danger,#b33a3a) 35%, transparent)}.speech-countdown-side{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.speech-project-actions{flex-wrap:wrap;gap:.5rem;display:flex}.speech-checklist-items{margin:0;padding-left:1.2rem}.speech-checklist-items li.done{color:var(--success)}.speech-chunk-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.speech-chunk-item{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.speech-chunk-item.is-forward-start{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:inset 3px 0 0 var(--accent)}.speech-chunk-head{justify-content:space-between;gap:.5rem;display:flex}.speech-mastery-row{gap:.25rem;margin:.35rem 0;display:flex}.speech-mastery-dot{background:var(--border);border-radius:50%;width:.55rem;height:.55rem}.speech-mastery-dot.on{background:var(--accent)}.speech-practice-shell{flex-direction:column;gap:1rem;max-width:48rem;min-height:calc(100dvh - 4rem);margin:0 auto;padding:1rem;display:flex}.focus-session .speech-practice-shell{min-height:calc(100dvh - 1rem - var(--safe-top) - var(--safe-bottom));padding-bottom:calc(5.5rem + var(--safe-bottom))}.speech-practice-header{align-items:center;gap:.75rem;display:flex;position:relative}.speech-practice-header.has-sigil{padding-left:2.75rem}.speech-practice-sigil{opacity:.22;top:50%;left:0;right:auto;transform:translateY(-50%)}.speech-practice-progress-wrap{background:var(--bg-hover);border-radius:999px;flex:1;height:.35rem;overflow:hidden}.speech-practice-progress-bar{background:var(--accent);height:100%}.speech-practice-card{flex:1}.speech-practice-mode{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .35rem;font-size:.75rem}.speech-practice-chunk{margin:0 0 .5rem}.speech-practice-text{font-family:var(--font-kr);white-space:pre-wrap;margin-top:1rem;font-size:1.15rem;line-height:1.7}.speech-reveal-block{margin-top:1rem}.speech-reveal-btn{width:100%;min-height:var(--touch-min)}.speech-practice-revealed{border:1px solid var(--success);border-radius:var(--radius);background:color-mix(in srgb, var(--success) 8%, transparent);padding:1rem}.speech-reveal-label{text-transform:uppercase;letter-spacing:.04em;color:var(--success);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.speech-practice-blank{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);margin-top:1rem;padding:2rem}.speech-chain-step{margin:.25rem 0 0;font-size:.85rem}.speech-chain-outline{margin:1rem 0 0;padding-left:1.25rem;line-height:1.6}.speech-chain-outline li{margin:.15rem 0}.speech-timer-block{align-items:center;gap:1rem;margin:1rem 0;display:flex}.speech-timer-value{font-variant-numeric:tabular-nums;font-size:2rem}.speech-grade-bar{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.speech-grade-bar.grade-bar-binary{grid-template-columns:1fr 1fr}.speech-grade-bar.grade-bar-binary .grade-shortcut-legend{grid-column:1/-1}.deck-review-list{flex-direction:column;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.deck-review-link{justify-content:space-between;align-items:baseline;gap:1rem;text-decoration:none;display:flex}.speech-grade-btn{min-height:var(--touch-min)}.speech-grade-btn.grade-again{border-color:var(--danger)}.speech-grade-btn.grade-easy{border-color:var(--success)}.speech-delta-up{color:var(--success)}.speech-delta-down{color:var(--danger)}.speech-practice-summary-actions{flex-wrap:wrap;gap:.5rem;display:flex}.speech-edit-card label{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.speech-edit-actions{gap:.5rem;display:flex}.speech-prompter-shell{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;max-width:56rem;margin:0 auto;padding:.75rem 1rem 1.25rem;display:flex}.speech-prompter-mode{background:var(--bg);--fx-intensity:0}.speech-prompter-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.speech-prompter-tabs{flex:1;justify-content:center;gap:.35rem;display:flex}.speech-prompter-tabs button{font:inherit;border:1px solid var(--border);background:var(--bg-elevated);color:var(--muted);cursor:pointer;border-radius:999px;padding:.35rem .85rem}.speech-prompter-tabs button.active{color:var(--text);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent)}.speech-prompter-font-controls{gap:.35rem;display:flex}.speech-prompter-stage{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,4fr) minmax(0,1fr);align-items:center;min-height:50vh;display:grid;position:relative}.speech-prompter-tap-zone{cursor:pointer;background:0 0;border:none;height:100%;min-height:12rem}.speech-prompter-line-wrap{text-align:center;padding:1rem}.speech-prompter-section-break{color:var(--muted);opacity:.6;margin-bottom:.5rem}.speech-prompter-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .75rem;font-size:.8rem}.speech-prompter-line{font-family:var(--font-kr);margin:0;font-weight:600;line-height:1.55}.speech-prompter-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.speech-prompter-footer .btn{min-height:var(--touch-min)}@media (width<=800px){.focus-session .main{padding:.65rem;padding-top:calc(.65rem + var(--safe-top));max-width:none}.speech-practice-shell{min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom));padding:.75rem .65rem calc(5.75rem + var(--safe-bottom));gap:.75rem}.focus-session .speech-practice-shell{min-height:0}.speech-practice-text{font-size:1.35rem;line-height:1.65}.speech-practice-chunk{font-size:1.25rem}.speech-grade-bar{z-index:15;padding:.65rem .75rem calc(.65rem + var(--safe-bottom));padding-left:calc(.75rem + var(--safe-left));padding-right:calc(.75rem + var(--safe-right));background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:.45rem;position:fixed;bottom:0;left:0;right:0}.speech-grade-btn{min-height:calc(var(--touch-min) + 4px);font-size:1rem}.speech-prompter-shell{padding:.65rem .75rem calc(.85rem + var(--safe-bottom));max-width:none}.speech-prompter-header{gap:.5rem}.speech-prompter-tabs button{min-height:var(--touch-min);padding:.45rem .75rem}.speech-prompter-font-controls .btn{min-height:var(--touch-min);min-width:var(--touch-min)}.speech-prompter-stage{grid-template-rows:1fr auto;grid-template-columns:1fr;gap:.5rem;min-height:42vh}.speech-prompter-tap-zone{display:none}.speech-prompter-line-wrap{padding:1.25rem .35rem}.speech-prompter-footer{grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding-top:.85rem;padding-bottom:.15rem;display:grid}.speech-prompter-footer .btn{justify-content:center;width:100%}.speech-prompter-footer .btn:first-child,.speech-prompter-footer .btn.primary{justify-self:stretch}.speech-prompter-footer .muted{text-align:center}}.speech-emergency-list{flex:1;overflow:auto}.speech-emergency-intro{margin:0 0 .75rem;font-size:.9rem}.speech-emergency-rows{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.speech-emergency-row.section-break{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.5rem}.speech-emergency-row-btn{text-align:left;width:100%;font:inherit;color:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:.65rem .75rem}.speech-emergency-meta{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;display:flex}.speech-emergency-section{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex:none;font-size:.72rem}.speech-emergency-cue{font-family:var(--font-kr);font-size:1.05rem;font-weight:600}.speech-emergency-full{font-family:var(--font-kr);color:var(--muted);margin-top:.5rem;font-size:.95rem;line-height:1.5;display:block}@media print{.speech-prompter-header,.speech-emergency-intro{display:none}.speech-prompter-shell{max-width:none;padding:0}.speech-emergency-row-btn{break-inside:avoid;border:none;border-bottom:1px solid #ccc;border-radius:0;padding:.25rem 0}.speech-emergency-full{color:#333;font-size:.85rem;display:block!important}}.immersion-timer{border-radius:calc(var(--radius) - 2px);border:1px solid var(--border);background:#0003;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;margin-top:.65rem;padding:.65rem .75rem;display:flex}.immersion-timer.done-flash{border-color:var(--success);box-shadow:0 0 0 1px #3ecf8e40}.immersion-timer-display{flex-direction:column;gap:.15rem;display:flex}.immersion-timer-clock{font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.35rem;font-weight:600}.immersion-timer-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.dash-week-alert+.dash-modules{margin-top:0}.hanja-drill-prompt{justify-content:center;align-items:center;gap:.75rem;margin:.75rem 0;display:flex}.hanja-drill-prompt.magic-well{min-height:7.5rem;padding:1.5rem 1rem}.hanja-drill-prompt .hanja-char,.hanja-glyph{font-size:clamp(3.25rem,12vw,5.25rem);font-weight:500;line-height:1}.hanja-card-face .hanja-card-mode-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.hanja-mode-badge{letter-spacing:.02em;border:1px solid color-mix(in srgb, var(--border,#444) 70%, transparent);border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.78rem;font-weight:650;display:inline-flex}.hanja-mode-badge.mode-reading{background:color-mix(in srgb, var(--mana,#6ea8ff) 18%, transparent);border-color:color-mix(in srgb, var(--mana,#6ea8ff) 40%, transparent)}.hanja-mode-badge.mode-meaning{background:color-mix(in srgb, var(--accent,#c9a227) 16%, transparent);border-color:color-mix(in srgb, var(--accent,#c9a227) 40%, transparent)}.hanja-card-instruction{margin:0 0 .35rem}.hanja-card-meta-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;margin:.25rem 0 .5rem;display:flex}.hanja-guess-label{margin-top:.85rem;display:block}.hanja-reveal{margin-top:.85rem}.hanja-reveal-primary{margin:.35rem 0;font-size:1.25rem}.hanja-reveal-secondary{margin:.25rem 0}.hanja-reveal-label{text-transform:none;opacity:.85;margin-right:.25rem;font-size:.8rem}.hanja-guess-feedback{margin:0 0 .5rem;font-size:.9rem;font-weight:600}.hanja-guess-feedback.match{color:color-mix(in srgb, #4ade80 85%, var(--text))}.hanja-guess-feedback.mismatch{color:color-mix(in srgb, #f87171 80%, var(--text))}.hanja-study-tab .today-callout{margin-top:.75rem}.hanja-study-options{gap:.75rem;margin:.75rem 0 1rem;padding:1rem;display:grid}.hanja-study-options.nested{background:var(--surface-2,#ffffff08);border:1px solid var(--border-subtle,#ffffff14);border-radius:var(--radius-md,8px)}.hanja-import-fieldmap{gap:.75rem;margin:.75rem 0;display:grid}.hanja-import-fieldmap label,.hanja-import-tab label{display:block}.hanja-dataset-list{margin-top:1.25rem}.hanja-dataset-list ul{margin-top:.5rem}.hanja-study-shell .speech-practice-card label{margin-top:1rem;display:block}.vocab-review-tab .today-callout{margin-top:.75rem}.vocab-review-prompt{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;min-height:7.5rem;padding:1.5rem 1.1rem;display:flex}.vocab-review-front{font-size:2.15rem;font-weight:600;line-height:1.2}.vocab-review-front.ko{font-size:2.75rem}.backlog-progress{flex-direction:column;gap:.35rem;display:flex}.backlog-progress-track{background:var(--bg-hover);border-radius:999px;height:.45rem;overflow:hidden}.backlog-progress-fill{border-radius:inherit;background:var(--accent);height:100%}.backlog-progress-caption{margin:0}.backlog-intro{flex-direction:column;gap:.55rem;margin:0;display:flex}.backlog-intro p{margin:0}.backlog-new-toggle{align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.vocab-review-prefs{flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:-.35rem;display:flex}.vocab-review-prefs label{align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.vocab-review-front-example{border-radius:var(--radius-md,8px);background:color-mix(in srgb, var(--bg-elevated,var(--bg)) 88%, var(--mana,#7aa8a0));text-align:center;margin:.15rem 0 0;padding:.75rem .9rem;font-size:1.05rem;line-height:1.65}.vocab-review-target,mark.vocab-review-target{color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:3px;padding:.05em .18em;font-style:normal;font-weight:700}.vocab-review-audio{width:100%;max-width:20rem;margin:.85rem auto 0;display:block}.vocab-review-card .speech-reveal-btn{margin-top:1rem}.vocab-review-answer{flex-direction:column;gap:.65rem;margin-top:.85rem;display:flex}.vocab-review-gloss{margin:0;font-size:1.35rem;font-weight:600;line-height:1.35}.vocab-review-gloss.ko{font-size:1.75rem}.vocab-review-support{margin:0;font-size:.95rem}.vocab-review-pron{letter-spacing:.01em}.vocab-review-hanja{font-family:Noto Serif KR,Source Han Serif KR,Songti SC,serif}.vocab-review-media{text-align:center;margin:.25rem 0 0}.vocab-review-image{border-radius:var(--radius-md,8px);object-fit:contain;border:1px solid color-mix(in srgb, var(--mana,#7aa8a0) 28%, transparent);width:min(100%,22rem);max-height:min(40vh,16rem);margin:0 auto;display:block}.vocab-review-examples{border-radius:var(--radius-md,8px);background:color-mix(in srgb, var(--bg-elevated,var(--bg)) 88%, var(--mana,#7aa8a0));margin-top:.15rem;padding:.75rem .9rem}.vocab-review-examples p{margin:0}.vocab-review-examples p+p{margin-top:.35rem}.vocab-review-meta{margin:.15rem 0 0}.vocab-import-review{margin-top:.75rem}@keyframes ritual-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.dashboard-page .dash-hero,.dashboard-page .dash-glance,.dashboard-page .dash-week-alert,.ritual-page .ritual-hero{animation:.45s both ritual-fade-in}.dashboard-page .dash-glance{animation-delay:60ms}.dashboard-page .dash-week-alert{animation-delay:.1s}.genie-rite{appearance:none;min-height:var(--touch-min);border:1px solid color-mix(in srgb, var(--circle) 40%, var(--border));background:radial-gradient(circle at 30% 40%, color-mix(in srgb, var(--mana) 12%, transparent), transparent 65%), color-mix(in srgb, var(--bg-elevated) 70%, transparent);color:color-mix(in srgb, var(--text) 78%, var(--mana));font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.72rem;transition:border-color .18s,background .18s,color .18s,box-shadow .18s,transform .15s;display:inline-flex}.genie-rite:disabled{opacity:.55;cursor:default}.genie-rite-sigil{width:1.05rem;height:1.05rem;color:var(--mana);opacity:.9;place-items:center;font-size:.95rem;line-height:1;transition:transform .35s,opacity .18s;display:inline-grid}.genie-rite:hover:not(:disabled){border-color:color-mix(in srgb, var(--mana) 55%, var(--border));background:radial-gradient(circle at 30% 40%, color-mix(in srgb, var(--mana) 18%, transparent), transparent 65%), color-mix(in srgb, var(--bg-elevated) 82%, transparent);color:var(--text);box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 22%, transparent)}.genie-rite:active:not(:disabled){transform:scale(.97)}.genie-rite:focus-visible{border-color:color-mix(in srgb, var(--mana) 70%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--mana) 20%, transparent);outline:none}.genie-release:hover:not(:disabled) .genie-rite-sigil{opacity:1;transform:rotate(-90deg)scale(.92)}.genie-sparks{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:radial-gradient(circle at 70% 35%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 72%, transparent);color:color-mix(in srgb, var(--text) 80%, var(--accent))}.genie-sparks .genie-rite-sigil{color:var(--accent);font-size:.85rem}.genie-sparks:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 65%, var(--border));background:radial-gradient(circle at 70% 35%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 85%, transparent);box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--accent) 22%, transparent)}.genie-sparks:hover:not(:disabled) .genie-rite-sigil{opacity:1;transform:scale(1.12)rotate(18deg)}.genie-sparks:focus-visible{border-color:color-mix(in srgb, var(--accent) 70%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.genie-dive{border-color:color-mix(in srgb, var(--circle) 48%, var(--mana));background:radial-gradient(circle at 50% 80%, color-mix(in srgb, var(--mana) 18%, transparent), transparent 58%), color-mix(in srgb, var(--bg-elevated) 74%, transparent);color:color-mix(in srgb, var(--text) 82%, var(--circle))}.genie-dive .genie-rite-sigil{color:color-mix(in srgb, var(--mana) 70%, var(--circle));font-size:1rem}.genie-dive:hover:not(:disabled){border-color:color-mix(in srgb, var(--mana) 60%, var(--circle));background:radial-gradient(circle at 50% 80%, color-mix(in srgb, var(--mana) 26%, transparent), transparent 58%), color-mix(in srgb, var(--bg-elevated) 86%, transparent);box-shadow:0 0 calc(14px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 28%, transparent)}.genie-dive:hover:not(:disabled) .genie-rite-sigil{opacity:1;transform:scale(1.08)translateY(1px)}.genie-mark .genie-rite-sigil{color:color-mix(in srgb, var(--mana) 55%, var(--success));font-size:.92rem}.genie-mark:hover:not(:disabled){border-color:color-mix(in srgb, var(--success) 45%, var(--mana));background:radial-gradient(circle at 40% 30%, color-mix(in srgb, var(--success) 14%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 82%, transparent);box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 20%, transparent)}.genie-mark:hover:not(:disabled) .genie-rite-sigil{opacity:1;transform:rotate(180deg)}.genie-mark.active{border-color:color-mix(in srgb, var(--mana) 50%, var(--success));background:color-mix(in srgb, var(--mana) 12%, var(--bg-elevated));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mana) 12%, transparent)}.genie-echoes{border-color:color-mix(in srgb, var(--circle) 42%, var(--accent));color:color-mix(in srgb, var(--text) 80%, var(--circle))}.genie-echoes .genie-rite-sigil{color:color-mix(in srgb, var(--mana) 45%, var(--circle));letter-spacing:-.08em;font-size:.95rem}.genie-echoes:hover:not(:disabled){border-color:color-mix(in srgb, var(--circle) 55%, var(--mana));background:radial-gradient(circle at 60% 40%, color-mix(in srgb, var(--circle) 16%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 84%, transparent);box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 22%, transparent)}.genie-echoes:hover:not(:disabled) .genie-rite-sigil{opacity:1;transform:scaleX(1.12)}.genie-echoes.active{border-color:color-mix(in srgb, var(--circle) 55%, var(--mana));background:color-mix(in srgb, var(--circle) 12%, var(--bg-elevated));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mana) 12%, transparent)}a.genie-rite.genie-grammar-link{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));color:color-mix(in srgb, var(--text) 80%, var(--accent));text-decoration:none}a.genie-rite.genie-grammar-link .genie-rite-sigil{color:color-mix(in srgb, var(--mana) 40%, var(--accent));font-size:.9rem}a.genie-rite.genie-grammar-link:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--mana));background:radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 62%), color-mix(in srgb, var(--bg-elevated) 84%, transparent);box-shadow:0 0 calc(12px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 20%, transparent);color:var(--text)}a.genie-rite.genie-grammar-link:hover .genie-rite-sigil{opacity:1;transform:scale(1.08)}.genie-word-mark{border-top:1px solid color-mix(in srgb, var(--mana) 22%, var(--border));flex-direction:column;gap:.65rem;margin-top:1rem;padding-top:.9rem;animation:.3s both ritual-fade-in;display:flex}.genie-word-mark-head{flex-wrap:wrap;align-items:baseline;gap:.45rem .75rem;display:flex}.genie-word-mark-label{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--mana) 70%, var(--muted));margin:0;font-size:.68rem}.genie-word-mark-lemma{font-family:var(--font-kr);color:var(--text);margin:0;font-size:1.05rem}.genie-word-mark-status{flex-wrap:wrap;align-items:center;gap:.45rem .7rem;display:flex}.genie-word-mark-meta{margin:0;font-size:.82rem}.genie-word-mark-actions{flex-wrap:wrap;gap:.4rem;display:flex}.genie-mark-act{appearance:none;min-height:var(--touch-min);border:1px solid color-mix(in srgb, var(--circle) 36%, var(--border));background:color-mix(in srgb, var(--bg-elevated) 78%, transparent);color:color-mix(in srgb, var(--text) 80%, var(--mana));font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .7rem;font-size:.68rem;transition:border-color .18s,background .18s,color .18s,box-shadow .18s,transform .15s;display:inline-flex}.genie-mark-act:hover:not(:disabled){border-color:color-mix(in srgb, var(--mana) 50%, var(--border));background:color-mix(in srgb, var(--mana) 10%, var(--bg-elevated));color:var(--text)}.genie-mark-act:active:not(:disabled){transform:scale(.97)}.genie-mark-act:focus-visible{border-color:color-mix(in srgb, var(--mana) 70%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--mana) 18%, transparent);outline:none}.genie-mark-act:disabled{opacity:.5;cursor:default}.genie-mark-act.active{border-color:color-mix(in srgb, var(--mana) 55%, var(--border));background:color-mix(in srgb, var(--mana) 16%, var(--bg-elevated));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mana) 10%, transparent)}.genie-mark-act-deck{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));color:color-mix(in srgb, var(--text) 82%, var(--accent));text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.genie-mark-act-deck:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-elevated))}.genie-mark-act-deck-choose{border-color:color-mix(in srgb, var(--muted) 40%, var(--border));color:var(--muted);letter-spacing:.08em}.genie-mark-act-deck-choose:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:color-mix(in srgb, var(--text) 75%, var(--accent));background:color-mix(in srgb, var(--accent) 8%, var(--bg-elevated))}.genie-mark-act-clear{border-color:color-mix(in srgb, var(--muted) 35%, var(--border));color:var(--muted)}.genie-mark-act-clear:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 40%, var(--border));color:color-mix(in srgb, var(--text) 70%, var(--danger))}.genie-word-mark-msg{margin:0;font-size:.8rem}.genie-word-mark-error{color:var(--danger);margin:0;font-size:.8rem}.genie-echoes-panel{border-top:1px solid color-mix(in srgb, var(--circle) 24%, var(--border));flex-direction:column;gap:.65rem;margin-top:1rem;padding-top:.9rem;animation:.3s both ritual-fade-in;display:flex}.genie-echoes-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem .75rem;display:flex}.genie-echoes-label{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--circle) 70%, var(--muted));margin:0;font-size:.68rem}.genie-echoes-refresh{appearance:none;min-height:var(--touch-min);border:1px solid color-mix(in srgb, var(--circle) 36%, var(--border));background:color-mix(in srgb, var(--bg-elevated) 78%, transparent);color:color-mix(in srgb, var(--text) 78%, var(--circle));font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:999px;padding:.15rem .7rem;font-size:.66rem}.genie-echoes-refresh:hover:not(:disabled){border-color:color-mix(in srgb, var(--mana) 48%, var(--border));color:var(--text)}.genie-echoes-refresh:disabled{opacity:.55;cursor:default}.genie-echoes-section{flex-direction:column;gap:.35rem;display:flex}.genie-echoes-section+.genie-echoes-section{border-top:1px dashed color-mix(in srgb, var(--border) 80%, transparent);margin-top:.55rem;padding-top:.55rem}.genie-echoes-section-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:600}.genie-echoes-meta{margin:0;font-size:.82rem}.genie-echoes-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.genie-echo-item{appearance:none;width:100%;min-height:var(--touch-min);border-radius:calc(var(--radius) - 2px);border:1px solid color-mix(in srgb, var(--circle) 28%, var(--border));background:linear-gradient(120deg, color-mix(in srgb, var(--mana) 6%, transparent), transparent 55%), color-mix(in srgb, var(--bg-elevated) 72%, transparent);color:var(--text);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.18rem;padding:.55rem .75rem;transition:border-color .18s,background .18s,box-shadow .18s,transform .15s;display:flex}.genie-echo-item:hover:not(:disabled){border-color:color-mix(in srgb, var(--mana) 50%, var(--circle));background:linear-gradient(120deg, color-mix(in srgb, var(--mana) 12%, transparent), transparent 55%), color-mix(in srgb, var(--bg-elevated) 86%, transparent);box-shadow:0 0 calc(10px * var(--glow-strength)) color-mix(in srgb, var(--mana-glow) 16%, transparent)}.genie-echo-item:active:not(:disabled){transform:scale(.99)}.genie-echo-item:focus-visible{border-color:color-mix(in srgb, var(--mana) 70%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--mana) 18%, transparent);outline:none}.genie-echo-item:disabled{opacity:.55;cursor:default}.genie-echo-word{font-family:var(--font-kr);font-size:1.05rem;line-height:1.3}.genie-echo-gloss{font-size:.82rem}.genie-echo-nuance{color:color-mix(in srgb, var(--text) 72%, var(--muted));font-size:.78rem;line-height:1.35}.genie-echoes-error{color:var(--danger);margin:0;font-size:.8rem}.genie-threads .genie-rite-sigil{font-size:.88rem}.genie-threads.active{border-color:color-mix(in srgb, var(--mana) 55%, var(--border));background:color-mix(in srgb, var(--mana) 14%, var(--bg-elevated));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--mana) 12%, transparent)}.genie-extra-examples{flex-direction:column;gap:.55rem;margin-top:.15rem;display:flex}.genie-sparks-label{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.68rem}.genie-example-spark{animation:.35s both ritual-fade-in}.genie-answer-skeleton{padding:.25rem 0}.genie-answer-skeleton .skeleton-title{width:65%;margin-inline:auto}.genie-answer-skeleton .skeleton-sub{width:90%;margin-inline:auto}.genie-orb-ripples{z-index:0;pointer-events:none;position:absolute;inset:0}.genie-ripple{border:1px solid color-mix(in srgb, var(--mana) 45%, transparent);opacity:0;border-radius:50%;animation:2.4s ease-out infinite genie-ripple-expand;position:absolute;inset:4%}.genie-ripple-b{animation-delay:.8s}.genie-ripple-c{animation-delay:1.6s}.genie-orb-fx{opacity:.45;pointer-events:none;z-index:0;border-radius:50%;position:absolute;inset:0;overflow:hidden}.genie-orb-fx .magic-circle{margin:auto;position:absolute;inset:0;width:92%!important;height:92%!important}.genie-orb-well{z-index:1;text-align:center;box-sizing:border-box;place-items:center;width:70%;max-height:70%;padding:.85rem .9rem;animation:.4s both ritual-fade-in;display:grid;position:relative;overflow:hidden}.genie-answer{flex-direction:column;gap:.45rem;animation:.45s both ritual-fade-in;display:flex}.genie-kind{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--rune);border-bottom:1px solid color-mix(in srgb, var(--circle) 45%, transparent);align-self:center;padding-bottom:.25rem;font-size:.7rem}.genie-headline{font-family:var(--font-display);color:var(--text);margin:0;font-size:clamp(1.05rem,3.4vw,1.35rem);font-weight:600;line-height:1.25}.genie-explanation{color:color-mix(in srgb, var(--text) 88%, var(--muted));margin:0;font-size:.9rem;line-height:1.45}.genie-example{border-top:1px solid color-mix(in srgb, var(--circle) 30%, transparent);margin-top:.15rem;padding-top:.45rem}.genie-example p{margin:.15rem 0 0;font-size:.88rem;line-height:1.4}.genie-watch{color:var(--muted);margin:.2rem 0 0;font-size:.82rem;line-height:1.4}.genie-watch-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-right:.4rem;font-size:.68rem;display:inline-block}.genie-inline-link{color:inherit;text-underline-offset:.15em;text-decoration-line:underline;text-decoration-style:dotted}.genie-inline-grammar{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent)}.genie-inline-word.genie-inline-link{-webkit-text-decoration-color:color-mix(in srgb, var(--mana) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--mana) 70%, transparent)}.genie-inline-word-wrap{display:inline-block;position:relative}button.genie-inline-word{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}button.genie-inline-unknown{text-decoration-line:underline;text-decoration-style:dashed;-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 65%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 65%, transparent);text-underline-offset:.15em}.genie-word-popover{z-index:var(--z-popover);border:1px solid color-mix(in srgb, var(--circle) 35%, var(--border));background:var(--bg-elevated);white-space:normal;pointer-events:auto;border-radius:8px;flex-direction:column;gap:.25rem;min-width:12rem;max-width:min(18rem,80vw);padding:.4rem;display:flex;box-shadow:0 8px 28px #0006}.genie-word-popover-act{appearance:none;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:.35rem .5rem;font-size:.82rem}.genie-word-popover-act:hover:not(:disabled){background:color-mix(in srgb, var(--mana) 12%, transparent)}.genie-word-popover-act:disabled{opacity:.6;cursor:default}.genie-word-popover-act-primary{border-color:color-mix(in srgb, var(--accent) 35%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);color:color-mix(in srgb, var(--text) 85%, var(--accent));font-weight:500}.genie-word-popover-act-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.genie-word-popover-status{color:var(--muted);padding:.15rem .5rem .25rem;font-size:.78rem}.genie-word-popover-error{color:var(--danger);padding:0 .5rem;font-size:.78rem}.genie-word-popover-definition{flex-direction:column;gap:.1rem;padding:0 .5rem .15rem;display:flex}.genie-word-popover-meta{color:var(--muted);font-size:.72rem}.genie-word-popover-examples{border-top:1px solid color-mix(in srgb, var(--circle) 20%, transparent);flex-direction:column;gap:.3rem;margin:0;padding:.15rem .5rem .35rem;list-style:none;display:flex}.genie-word-popover-examples li{flex-direction:column;font-size:.78rem;display:flex}.genie-word-popover-example-en{color:var(--muted);font-size:.72rem}@keyframes genie-orb-pulse{0%,to{opacity:.95;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}@keyframes genie-aura-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes genie-halo-pulse{0%,to{opacity:.35;transform:scale(.92)}50%{opacity:.7;transform:scale(1.04)}}@keyframes genie-ripple-expand{0%{opacity:.55;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@keyframes genie-status-shimmer{0%,to{background-position:0%}50%{background-position:100%}}@keyframes genie-status-verb{0%,32%{opacity:1;visibility:visible}33%,to{opacity:0;visibility:hidden}}@keyframes genie-status-dots{to{width:1.15rem}}@keyframes genie-circle-glow{0%,to{opacity:.88}50%{opacity:1}}@media (width<=800px){.genie-orb-well{place-items:center;width:78%;max-height:78%;padding:.75rem .8rem;display:grid}.genie-headline{font-size:1.2rem;line-height:1.35}.genie-explanation{font-size:.95rem;line-height:1.45}.genie-example .ko{font-size:1.05rem;line-height:1.45}.genie-watch{color:color-mix(in srgb, var(--text) 72%, var(--muted))}.genie-watch-label{color:color-mix(in srgb, var(--accent) 85%, var(--text))}}.admin-usage-page .admin-usage-summary{gap:1rem;margin-bottom:1.5rem;display:grid}.admin-usage-meter{gap:.45rem;display:grid}.admin-usage-meter-label{flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.95rem;display:flex}.admin-usage-meter-track{background:color-mix(in srgb, var(--text,#1a1a1a) 12%, transparent);border-radius:999px;height:.55rem;overflow:hidden}.admin-usage-meter-fill{background:var(--accent,#c45c26);border-radius:inherit;height:100%;transition:width .25s}.admin-usage-stats{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;display:grid}.admin-usage-stats>div{gap:.2rem;display:grid}.admin-usage-section{margin-bottom:1.75rem}.admin-usage-section h2{margin:0 0 .75rem;font-size:1.05rem}.admin-usage-page .small{font-size:.8rem}.insights-toolbar{z-index:3;background:linear-gradient(#0f1412 70%,#0000);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.75rem;padding:.6rem 0;display:flex;position:sticky;top:0}.insight-toggle-group{flex-wrap:wrap;gap:.35rem;display:flex}.insights-stack>*{opacity:0;animation:.4s both insight-fade-in}.insights-stack>:first-child{animation-delay:0s}.insights-stack>:nth-child(2){animation-delay:60ms}.insights-stack>:nth-child(3){animation-delay:.12s}.insights-stack>:nth-child(4){animation-delay:.18s}.insights-stack>:nth-child(5){animation-delay:.24s}@keyframes insight-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.insights-stack>*{opacity:1;animation:none}}.insight-card-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.insight-card-header h3,.insight-card-header h4{margin:0}.insight-caption{margin:-.25rem 0 .6rem}.insight-empty{text-align:center;padding:1.5rem 0}.insight-empty-hero{border:1px dashed #2a3530;border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem}.insights-grid{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1rem;display:grid}.insights-grid .insight-card{margin-bottom:0}.token-burn-ring{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.token-burn-ring-svg{flex-shrink:0;width:11rem;height:11rem}.token-burn-ring-fill{transition:stroke-dashoffset .6s,stroke .4s}.token-burn-ring-critical .token-burn-ring-fill{filter:drop-shadow(0 0 6px var(--danger))}.token-burn-ring-pct{fill:var(--text,#e8eeea);font-size:1.6rem;font-weight:650}.token-burn-ring-sub{fill:var(--muted,#9aaba3);font-size:.65rem}.token-burn-ring-details{flex-direction:column;gap:.6rem;display:flex}.token-burn-ring-details>div{flex-direction:column;gap:.15rem;display:flex}.token-burn-ring-details strong{font-size:1.05rem}.chart-tooltip{background:#151c19;border:1px solid #2a3530;border-radius:6px;padding:.5rem .65rem;font-size:.8rem}.chart-tooltip-label{color:var(--muted,#9aaba3);margin-bottom:.25rem}.chart-tooltip-row{align-items:center;gap:.4rem;display:flex}.chart-tooltip-swatch{border-radius:2px;width:.55rem;height:.55rem;display:inline-block}.health-kpi-row{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;display:flex}.health-kpi{flex-direction:column;gap:.2rem;display:flex}.health-kpi strong{font-size:1.3rem}.health-badge{border-radius:999px;width:fit-content;padding:.1rem .4rem;font-size:.68rem;display:inline-block}.health-badge-healthy{color:var(--success,#3ecf8e);background:color-mix(in srgb, var(--success,#3ecf8e) 16%, transparent)}.health-badge-warning{color:var(--warn,#d4b06a);background:color-mix(in srgb, var(--warn,#d4b06a) 16%, transparent)}.health-badge-critical{color:var(--danger,#e87a7a);background:color-mix(in srgb, var(--danger,#e87a7a) 16%, transparent)}.health-stale-warning{color:var(--warn,#d4b06a);margin:0 0 .75rem;font-size:.85rem}.bar-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.bar-list-row{width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.6rem;padding:.4rem .5rem;text-decoration:none;display:flex}.bar-list-row:hover,.bar-list-row:focus-visible{border-color:color-mix(in srgb, var(--accent,#5eb89a) 45%, transparent);background:color-mix(in srgb, var(--accent,#5eb89a) 8%, transparent)}.bar-list-row-active{border-color:color-mix(in srgb, var(--accent,#5eb89a) 60%, transparent);background:color-mix(in srgb, var(--accent,#5eb89a) 12%, transparent)}.bar-list-label{text-overflow:ellipsis;white-space:nowrap;flex:0 0 7rem;font-size:.85rem;overflow:hidden}.bar-list-track{background:color-mix(in srgb, var(--text,#e8eeea) 10%, transparent);border-radius:999px;flex:auto;height:.5rem;overflow:hidden}.bar-list-fill{background:var(--accent,#5eb89a);border-radius:999px;height:100%;transition:width .4s;display:block}.bar-list-value{color:var(--muted,#9aaba3);white-space:nowrap;flex:none;font-size:.75rem}.bar-list-sparkline{flex:none;line-height:0}.insight-filtered-events{border-top:1px solid #2a3530;margin-top:1rem;padding-top:.75rem}.insight-event-list{flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.insight-event-list li{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.insight-table-toggle{margin-top:.5rem}.insight-table-toggle summary{cursor:pointer;color:var(--muted,#9aaba3);font-size:.8rem}.insight-table-toggle table{margin-top:.5rem}.skeleton-ring{border:14px solid var(--border,#2a3530);border-radius:50%;width:11rem;height:11rem;animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-chart{background:var(--border,#2a3530);border-radius:8px;height:160px;animation:1.4s ease-in-out infinite skeleton-pulse}.is-refreshing{opacity:.7}.admin-dashboard{flex-direction:column;gap:1rem;display:flex}.admin-dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1.25rem;display:flex}.health-pulse{border-radius:var(--radius);border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated) 88%, transparent);flex-wrap:wrap;align-items:center;gap:.4rem .55rem;padding:.55rem .75rem;display:flex}.health-pill{font-size:.72rem;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:999px;align-items:center;padding:.2rem .55rem;display:inline-flex}.health-pill.ok{border-color:color-mix(in srgb, var(--success) 45%, var(--border));color:var(--success);background:color-mix(in srgb, var(--success) 12%, var(--bg))}.health-pill.warn{border-color:color-mix(in srgb, var(--warn) 45%, var(--border));color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, var(--bg))}.health-pill.bad{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--bg))}.health-pulse-meta{margin-left:auto}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.65rem;display:grid}.kpi-card{border-radius:var(--radius);border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated) 90%, transparent);color:inherit;flex-direction:column;gap:.2rem;padding:.75rem .85rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.kpi-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-elevated))}.kpi-card-warn{border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.kpi-card-danger{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.kpi-value{font-variant-numeric:tabular-nums;font-size:1.35rem;line-height:1.15}.kpi-sub{line-height:1.3}.dashboard-main-band{grid-template-columns:minmax(0,1.6fr) minmax(14rem,.9fr);align-items:stretch;gap:.85rem;display:grid}.dashboard-budget-col{flex-direction:column;gap:.85rem;display:flex}.dashboard-budget-col .token-burn-ring{flex:1}.ops-mini .admin-row{margin-top:.35rem}.dashboard-secondary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.dashboard-tertiary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem;display:grid}.dashboard-side-stack{flex-direction:column;gap:.85rem;display:flex}.dashboard-jumps{flex-wrap:wrap;gap:.75rem 1.25rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.dashboard-generated{margin:0}.dashboard-loading{gap:.85rem;display:grid}.content-footprint-bar{background:var(--border);border-radius:999px;height:.65rem;margin-bottom:.75rem;display:flex;overflow:hidden}.content-footprint-seg{min-width:2px;height:100%;display:block}.content-footprint-seg.seg-0{background:var(--accent)}.content-footprint-seg.seg-1{background:var(--mana)}.content-footprint-seg.seg-2{background:var(--circle)}.content-footprint-seg.seg-3{background:color-mix(in srgb, var(--accent) 55%, var(--warn))}.content-footprint-seg.seg-4{background:color-mix(in srgb, var(--mana) 60%, var(--text))}.content-footprint-seg.seg-5{background:color-mix(in srgb, var(--warn) 70%, var(--accent))}.content-footprint-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;margin:0;padding:0;list-style:none;display:grid}.content-footprint-row{color:inherit;justify-content:space-between;gap:.5rem;padding:.2rem 0;font-size:.88rem;text-decoration:none;display:flex}a.content-footprint-row:hover{color:var(--accent)}.alert-feed{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.alert-item a{color:inherit;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 70%, transparent);border-radius:8px;flex-direction:column;gap:.15rem;padding:.45rem .55rem;text-decoration:none;display:flex}.alert-item a:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.alert-level{font-size:.65rem;font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.alert-critical .alert-level{color:var(--danger)}.alert-warning .alert-level{color:var(--warn)}.alert-info .alert-level{color:var(--mana)}.audit-mini-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.audit-mini-list li{flex-direction:column;gap:.1rem;font-size:.85rem;display:flex}.bar-list-row.static{cursor:default;pointer-events:none}@media (width<=960px){.dashboard-main-band,.dashboard-secondary,.dashboard-tertiary{grid-template-columns:1fr}.health-pulse-meta{width:100%;margin-left:0}}.admin-page .admin-stats{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem 1.25rem;margin:1rem 0;display:grid}.admin-page .admin-stats>div{flex-direction:column;gap:.2rem;display:flex}.admin-page .admin-stats strong{font-size:1.25rem}.admin-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.admin-form{gap:.65rem;max-width:28rem;margin:1rem 0 1.25rem;display:grid}.admin-form h3{margin:0;font-size:1rem}.admin-table-wrap{margin-top:.75rem;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .65rem}.admin-table th{color:var(--muted,var(--text-muted,#8a9a94));white-space:nowrap;font-weight:600}.admin-actions{flex-wrap:wrap;gap:.35rem;display:flex}.admin-token-panel{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.admin-token-list{gap:.45rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.admin-token-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-fresh-invite{border:1px dashed color-mix(in srgb, var(--accent) 45%, var(--border));border-radius:8px;gap:.65rem;margin:1rem 0;padding:.85rem 1rem;display:grid}.admin-invite-code{word-break:break-all;background:color-mix(in srgb, var(--mana) 8%, var(--bg));border-radius:6px;padding:.5rem .65rem;font-size:.85rem;display:block}.admin-shell{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-kr);flex-direction:column;display:flex}.admin-shell-header{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:.85rem 1.25rem;display:flex}.admin-shell-brand{flex-direction:column;gap:.1rem;min-width:9rem;display:flex}.admin-shell-nav{flex-wrap:wrap;flex:1;gap:.35rem;display:flex}.admin-nav-link{color:var(--muted);border-radius:6px;padding:.4rem .7rem;font-size:.92rem;text-decoration:none}.admin-nav-link:hover{background:var(--bg-hover);color:var(--text)}.admin-nav-link.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text);font-weight:600}.admin-shell-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-shell-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.25rem}@media (width<=800px){.admin-shell-nav{display:none}.admin-shell-main{padding:.85rem;padding-bottom:calc(4.25rem + 24px + var(--safe-bottom))}.admin-shell>.admin-mobile-dock{z-index:var(--z-nav);border-top:1px solid var(--border);padding:.35rem .4rem;padding-bottom:calc(.35rem + var(--safe-bottom));padding-left:calc(.4rem + var(--safe-left));padding-right:calc(.4rem + var(--safe-right));background:color-mix(in srgb, var(--bg-elevated) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:fixed;bottom:0;left:0;right:0}}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:1.25rem;display:flex}.admin-page-header h1{font-size:1.6rem;font-family:var(--font-display);margin:.15rem 0;font-weight:650}.admin-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem 1.1rem}.admin-panel h2,.admin-panel h3{margin:0 0 .75rem;font-size:1.05rem}.admin-panel-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.admin-panel-header h2{margin:0 0 .25rem}.admin-panel-header p{margin:0}.admin-empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;padding:2rem 1rem}.admin-form.wide{max-width:none}.admin-form.inline{flex-wrap:wrap;align-items:end;gap:.75rem;max-width:none;display:flex}.admin-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;display:flex}.admin-tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem .75rem}.admin-tab.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text)}.admin-feature-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.45rem;margin-bottom:1rem;display:grid}.admin-check{align-items:center;gap:.45rem;font-size:.92rem;display:flex}.admin-llm-detail{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.admin-llm-detail pre{background:var(--bg);border:1px solid var(--border);border-radius:6px;max-height:22rem;padding:.75rem;font-size:.8rem;overflow:auto}.admin-shell .admin-table th{color:var(--muted)}.admin-prompt-tabs{flex-wrap:wrap;gap:.35rem;margin:.75rem 0;display:flex}.admin-prompt-tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .75rem;display:inline-flex}.admin-prompt-tab:hover{color:var(--text);border-color:var(--accent)}.admin-prompt-tab.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.admin-prompt-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:.7rem}.admin-prompt-current,.admin-prompt-editor{flex-direction:column;gap:.35rem;margin-top:.5rem;display:flex}.admin-prompt-pre,.admin-prompt-editor textarea{box-sizing:border-box;width:100%;max-height:28rem;color:var(--text);white-space:pre-wrap;word-break:break-word;background:#0c100e;border:1px solid #2a3530;border-radius:6px;margin:0;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.45;overflow:auto}.admin-prompt-editor textarea{resize:vertical;min-height:16rem}.admin-oracle-personalities .admin-personality-list ul{flex-direction:column;gap:.75rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.admin-oracle-personalities .admin-personality-list li{border-bottom:1px solid #2a3530;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.75rem 0;display:flex}.admin-oracle-personalities .admin-personality-list h3{margin:1rem 0 .5rem}.admin-personality-flavor{max-height:8rem;margin-top:.4rem}.exam-admin-page .eyebrow{text-transform:uppercase;letter-spacing:.06em;color:#8fa399;margin:0;font-size:.72rem}.exam-filters{flex-wrap:wrap;align-items:flex-end;gap:.65rem .85rem;margin-bottom:1rem;display:flex}.exam-filters label{color:#9aaba3;flex-direction:column;gap:.25rem;font-size:.82rem;display:flex}.exam-filters select,.exam-filters input[type=text],.exam-filters input:not([type]){color:#e8eeea;background:#16201c;border:1px solid #2a3530;border-radius:6px;min-width:6.5rem;padding:.4rem .55rem}.exam-filter-search{flex:1;min-width:10rem}.exam-filter-check{align-items:center;padding-bottom:.35rem;flex-direction:row!important;gap:.4rem!important}.exam-status{color:#c5d4cb;background:#24302a;border-radius:4px;padding:.15rem .45rem;font-size:.78rem;display:inline-block}.exam-status-approved{color:#9ddec0;background:#1e3a2f}.exam-status-ai_draft,.exam-status-in_review{color:#e6d39a;background:#3a321e}.exam-status-archived{color:#9a9a9a;background:#2a2a2a}.exam-form-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem 1rem;display:grid}.exam-field-wide{grid-column:1/-1}.admin-field{color:#9aaba3;flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.admin-field input,.admin-field select,.admin-field textarea{color:#e8eeea;font:inherit;background:#16201c;border:1px solid #2a3530;border-radius:6px;padding:.45rem .55rem}.exam-sticky-bar{z-index:5;background:linear-gradient(#0f1412 70%,#0000);flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem;padding:.65rem 0;display:flex;position:sticky;top:0}.exam-ok-banner{color:#9ddec0;background:#1e3a2f;border-radius:6px;padding:.55rem .75rem}.exam-warnings{color:#e6d39a;background:#2a2418;border-radius:6px;margin:.75rem 0;padding:.65rem .85rem}.exam-warnings ul{margin:.4rem 0 0;padding-left:1.2rem}.exam-sections-toolbar{justify-content:space-between;align-items:center;gap:.75rem;margin:1.25rem 0 .65rem;display:flex}.exam-sections-toolbar h3,.exam-sections-toolbar h4{margin:0}.exam-admin-section{background:#121a17;border:1px solid #2a3530;border-radius:8px;margin-bottom:.75rem}.exam-admin-section>summary{cursor:pointer;justify-content:space-between;gap:1rem;padding:.75rem 1rem;list-style:none;display:flex}.exam-admin-section-body{border-top:1px solid #2a3530;padding:0 1rem 1rem}.exam-admin-question{background:#0f1412;border-radius:6px;margin-top:.85rem;padding:.75rem}.exam-admin-question-head{justify-content:space-between;align-items:center;margin-bottom:.55rem;display:flex}.exam-cloze-blanks{gap:.6rem}.exam-blank-row{background:#16201c;border:1px solid #2a3530;border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.5rem;margin-top:.4rem;padding:.5rem;display:grid}.btn.danger,.btn.ghost.danger{color:var(--danger)}.exam-file-label{cursor:pointer;align-items:center;display:inline-flex}.exam-tag-split{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.exam-tag-pane{min-width:0}.exam-raw-textarea,.exam-json-textarea{color:#d7e3db;resize:vertical;background:#0c100e;border:1px solid #2a3530;border-radius:8px;width:100%;padding:.75rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;line-height:1.45}.admin-shell-main:has(.exam-admin-page){max-width:1200px}.admin-shell-main:has(.exam-tag-page){max-width:1400px}@media (width<=900px){.exam-tag-split{grid-template-columns:1fr}}.freetalk-shell .freetalk-prompt{font-family:var(--font-display,Fraunces, Georgia, serif);margin:.5rem 0 1rem;font-size:clamp(1.25rem,2.4vw,1.7rem);line-height:1.35}.freetalk-chips{flex-wrap:wrap;gap:.4rem;margin:.75rem 0 1rem;display:flex}.freetalk-all-toggle{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.freetalk-grammar-results,.freetalk-pattern-list,.freetalk-hints{flex-direction:column;gap:.65rem;margin:.5rem 0 1rem;padding:0;list-style:none;display:flex}.freetalk-grammar-results li{border-left:3px solid var(--accent,#7a9e88);background:color-mix(in srgb, var(--accent,#7a9e88) 8%, transparent);padding:.55rem .7rem}.ft-status-used_correct{border-left-color:#6fbf8a!important}.ft-status-used_incorrect,.ft-status-partial{border-left-color:#d0a15c!important}.ft-status-not_used{border-left-color:#a07070!important}.freetalk-model-answer{border:1px solid color-mix(in srgb, var(--mana,#8eb6a0) 35%, transparent);margin:.75rem 0 1rem;padding:.85rem 1rem}.freetalk-term-points{flex-direction:column;gap:.55rem;margin:.75rem 0;display:flex}.freetalk-term-row{grid-template-columns:1.2fr 1fr 1.4fr auto;align-items:center;gap:.4rem;display:grid}@media (width<=800px){.freetalk-term-row{grid-template-columns:1fr}}.freetalk-tab-cta{flex-direction:column;gap:.75rem;margin-top:.75rem;display:flex}.exam-page .exam-paper-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.exam-paper-row{border:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);color:inherit;background:color-mix(in srgb, var(--surface,#141a18) 92%, transparent);border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.85rem 1rem;text-decoration:none;display:flex}.exam-paper-row:hover{border-color:color-mix(in srgb, var(--accent,#7cb89a) 55%, transparent)}.exam-paper-row-link{min-width:0;color:inherit;flex:auto;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;display:flex}.exam-paper-status-badge{margin-left:.5rem}.exam-wizard .exam-form-grid{margin-bottom:1rem}.exam-wizard .field{flex-direction:column;gap:.35rem;display:flex}.exam-wizard select,.exam-wizard input[type=search],.exam-text-input,.exam-writing{width:100%;max-width:40rem}.exam-chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.exam-grammar-pick{flex-direction:column;gap:.35rem;max-height:16rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex;overflow:auto}.exam-grammar-option{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .75rem;display:flex}.exam-grammar-option.on,.exam-grammar-option:hover{border-color:color-mix(in srgb, var(--accent,#7cb89a) 45%, transparent);background:color-mix(in srgb, var(--accent,#7cb89a) 10%, transparent)}.exam-grammar-badges{flex-wrap:wrap;gap:.3rem;margin-top:.2rem;display:flex}.exam-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.exam-section-outline{margin:.75rem 0 0;padding-left:1.1rem}.exam-take-bar{z-index:5;background:color-mix(in srgb, var(--bg,#0d1210) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:.75rem;padding:.75rem 0;display:flex;position:sticky;top:0}.exam-timer-clock{font-variant-numeric:tabular-nums;color:var(--accent,#7cb89a);font-weight:600}.exam-timer-clock.warn-10{color:var(--warn,#e6d39a)}.exam-timer-clock.warn{color:var(--danger,#d27a6a)}.exam-time-warning{border:1px solid color-mix(in srgb, var(--warn,#e6d39a) 45%, transparent);background:color-mix(in srgb, var(--warn,#e6d39a) 12%, transparent);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .75rem;padding:.55rem .85rem;font-size:.9rem;display:flex}.exam-question-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin:0;display:flex}.exam-question-head h3{margin:0}.exam-flag-btn{flex:none}.exam-flag-btn[aria-pressed=true]{border-color:color-mix(in srgb, var(--warn,#e6d39a) 55%, transparent);background:color-mix(in srgb, var(--warn,#e6d39a) 14%, transparent);color:var(--warn,#e6d39a)}.exam-submit-dialog{width:min(28rem,100%)}.exam-take-bar .speech-practice-progress-wrap{min-width:8rem;margin:.3rem 0 0}.exam-stem-block{margin:.35rem 0 .75rem}.exam-section-instructions,.exam-stem-title{letter-spacing:.015em;color:var(--accent,#7cb89a);border:0;margin:0 0 .75rem;padding:0;font-family:inherit;font-weight:700;line-height:1.4}.exam-section-instructions{border-bottom:1px solid color-mix(in srgb, var(--accent,#7cb89a) 35%, transparent);padding-bottom:.55rem;font-size:1.05rem}.exam-stem-title{letter-spacing:.03em;text-transform:uppercase;color:var(--muted,#9aaba3);font-size:.8rem;font-weight:600}.exam-question-type-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#9aaba3);opacity:.85;margin:0 0 .5rem;font-size:.72rem;font-weight:600;display:inline-block}.exam-stem{white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;margin:0;font-family:inherit;line-height:1.55}.exam-stem-body{color:var(--fg,#e8eeea);font-size:1.05rem}.exam-stem-cloze{line-height:2.45}.exam-blank-wrap{vertical-align:baseline;align-items:center;gap:.05rem;margin:0 .12rem;display:inline-flex}.exam-blank-bracket{color:color-mix(in srgb, var(--accent,#7cb89a) 85%, var(--fg,#e8eeea));-webkit-user-select:none;user-select:none;font-size:1.05em;font-weight:600;line-height:1}.exam-blank-input{background:color-mix(in srgb, var(--accent,#7cb89a) 12%, var(--bg-elevated,#121a24));border:2px solid color-mix(in srgb, var(--accent,#7cb89a) 55%, var(--border,#2a3530));border-bottom-width:3px;border-bottom-color:color-mix(in srgb, var(--accent,#7cb89a) 90%, transparent);width:8.5rem;min-width:7.5rem;max-width:14rem;color:var(--fg,#e8eeea);font:inherit;text-align:center;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent,#7cb89a) 18%, transparent);border-radius:6px;margin:0;padding:.28rem .55rem .22rem;font-weight:600;transition:border-color .12s,background .12s,box-shadow .12s;display:inline-block}.exam-blank-input.is-empty{background:color-mix(in srgb, var(--accent,#7cb89a) 18%, var(--bg-elevated,#121a24))}.exam-blank-input.is-filled{field-sizing:content;width:auto;min-width:6.5rem}.exam-blank-input::placeholder{color:color-mix(in srgb, var(--accent,#7cb89a) 55%, var(--muted,#8a9a92));opacity:.95;font-weight:500}.exam-blank-input:focus{border-color:var(--accent,#7cb89a);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent,#7cb89a) 28%, transparent);outline:none}.exam-blank-slot{border:2px dashed color-mix(in srgb, var(--accent,#7cb89a) 70%, transparent);background:color-mix(in srgb, var(--accent,#7cb89a) 14%, transparent);vertical-align:baseline;border-radius:6px;justify-content:center;align-items:center;min-width:5.5rem;margin:0 .2rem;padding:.15rem .55rem;display:inline-flex}.exam-blank-slot-inner{color:color-mix(in srgb, var(--accent,#7cb89a) 75%, var(--muted,#8a9a92));letter-spacing:.02em;white-space:nowrap;font-size:.82em;font-weight:600}.exam-blank-input.correct,.exam-choice.correct,.exam-text-input.correct{background:#6fbf8a24;border-color:#6fbf8ab3}.exam-blank-input.incorrect,.exam-choice.incorrect,.exam-text-input.incorrect{background:#d27a6a24;border-color:#d27a6ab3}.exam-blank-input.locked,.exam-choice.locked,.exam-text-input.locked,.exam-writing.locked{opacity:.75;cursor:not-allowed}.exam-check-panel{border:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);background:color-mix(in srgb, var(--surface,#141a18) 92%, transparent);border-radius:8px;margin-top:.5rem;padding:.6rem .75rem;font-size:.9rem}.exam-check-actions{gap:.5rem;margin-top:.5rem;display:flex}.exam-toggle{color:var(--muted,#9aaba3);align-items:center;gap:.5rem;margin:.5rem 0;font-size:.9rem;display:flex}.exam-failed-sections{margin-top:.5rem}.exam-failed-section-list{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.exam-failed-section-list li{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.exam-choices{flex-direction:column;align-items:stretch;gap:.4rem;max-width:36rem;display:flex}.exam-choice{text-align:left;justify-content:flex-start;gap:.55rem}.exam-choice-marker{font-variant-numeric:tabular-nums;color:var(--muted,#9aaba3);flex:none}.exam-choice.primary .exam-choice-marker{color:inherit}.exam-choice-text{word-break:keep-all;overflow-wrap:break-word;flex:auto;min-width:0}.exam-passage,.exam-passage-inline{word-break:keep-all;overflow-wrap:break-word;margin:.75rem 0 1rem;line-height:1.65}.exam-question{border-top:1px solid color-mix(in srgb, var(--border,#2a3530) 90%, transparent);margin:1.75rem 0;padding-top:1.1rem;scroll-margin-top:5.5rem}.exam-question.is-target{animation:1.2s ease-out exam-question-flash}@keyframes exam-question-flash{0%{background:color-mix(in srgb, var(--accent,#7cb89a) 18%, transparent)}to{background:0 0}}.exam-nav-modal{width:min(36rem,100%)}.exam-nav-legend{flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 1rem;display:flex}.exam-nav-legend-item{align-items:center;gap:.4rem;display:inline-flex}.exam-nav-swatch{border:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);border-radius:.2rem;width:.75rem;height:.75rem;display:inline-block}.exam-nav-swatch.answered{background:color-mix(in srgb, var(--accent,#7cb89a) 55%, transparent)}.exam-nav-swatch.unanswered{background:0 0}.exam-nav-swatch.flagged{border-color:var(--warn,#e6d39a);background:color-mix(in srgb, var(--warn,#e6d39a) 45%, transparent)}.exam-nav-sections{flex-direction:column;gap:1rem;max-height:50vh;display:flex;overflow-y:auto}.exam-nav-section-title{margin:0 0 .4rem}.exam-nav-grid{grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:.4rem;display:grid}.exam-nav-cell{border:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);height:2.5rem;color:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:.4rem;position:relative}.exam-nav-cell.answered{background:color-mix(in srgb, var(--accent,#7cb89a) 22%, transparent);border-color:color-mix(in srgb, var(--accent,#7cb89a) 55%, transparent)}.exam-nav-cell.flagged:after{content:"";background:var(--warn,#e6d39a);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:.2rem;right:.2rem}.exam-nav-cell.locked{opacity:.7}.exam-nav-summary{margin:.85rem 0 0}.exam-score-summary{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.exam-unanswered-warning{color:var(--warn,#e6d39a)}@media (width<=640px){.exam-take-bar{flex-direction:column;align-items:stretch}.exam-take-bar .exam-actions{justify-content:stretch}.exam-take-bar .exam-actions .btn{flex:1}.exam-choices{max-width:none}.exam-score-ring{width:4.5rem;height:4.5rem;font-size:1.05rem}.exam-nav-modal-root{place-items:end stretch;padding:0}.exam-nav-modal{border-radius:1rem 1rem 0 0;width:100%;max-height:80dvh;margin:0}}.exam-score-ring{border:3px solid color-mix(in srgb, var(--accent,#7cb89a) 70%, transparent);border-radius:50%;flex-shrink:0;place-items:center;width:5.5rem;height:5.5rem;font-size:1.25rem;display:grid}.save-chip{font-variant-numeric:tabular-nums;color:var(--muted,#9aaba3);border:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);background:color-mix(in srgb, var(--surface,#141a18) 90%, transparent);border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .55rem;font-size:.8rem;display:inline-flex}.save-chip.save-chip-saving{color:var(--muted,#9aaba3)}.save-chip.save-chip-saved{color:color-mix(in srgb, #6fbf8a 85%, var(--fg,#e8eeea));border-color:#6fbf8a59}.save-chip.save-chip-error{color:color-mix(in srgb, #d27a6a 90%, var(--fg,#e8eeea));border-color:#d27a6a73}.save-chip-retry{margin-left:.15rem}.ritual-journal-teaser p{margin:.25rem 0 .75rem}.ritual-journal-page .journal-entry-form{flex-direction:column;gap:.75rem;display:flex}.ritual-journal-page .journal-entry-form label{color:var(--muted,#9aaba3);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.ritual-journal-page .journal-entry-form textarea{font:inherit;color:var(--fg,#e8eeea)}.journal-date-nav{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.journal-history{flex-direction:column;gap:.75rem;display:flex}.journal-entry{border:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);border-radius:10px;padding:.75rem 1rem}.journal-entry-body{max-height:9em;position:relative;overflow:hidden}.journal-entry-body.expanded{max-height:none}.journal-entry-body:not(.expanded):after{content:"";background:linear-gradient(to bottom, transparent, var(--surface,#141a18));height:2.5em;position:absolute;inset:auto 0 0}.journal-entry-expand{margin-top:.4rem}.journal-entry-wins{margin:.4rem 0 0;padding-left:1.1rem}.exam-submit-error{background:#d27a6a1a;border:1px solid #d27a6a73;border-radius:10px;margin:.5rem 0 1rem;padding:.75rem 1rem}.exam-submit-error .error{margin:0 0 .5rem}.exam-partial-take-note,.exam-resume-note{margin:0 0 .75rem}.exam-partial-card{border-color:color-mix(in srgb, var(--warn,#e6d39a) 40%, var(--border,#2a3530))}.exam-partial-not-ready{border:1px solid color-mix(in srgb, var(--warn,#e6d39a) 50%, transparent);background:color-mix(in srgb, var(--warn,#e6d39a) 12%, transparent);border-radius:8px;margin:0 0 .75rem;padding:.55rem .75rem;line-height:1.45}.exam-partial-columns{grid-template-columns:1fr 1fr;gap:1.25rem;margin:.75rem 0 1rem;display:grid}@media (width<=720px){.exam-partial-columns{grid-template-columns:1fr}}.exam-partial-outline{flex-direction:column;gap:.45rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.exam-partial-ok{color:color-mix(in srgb, #6fbf8a 80%, var(--fg,#e8eeea))}.exam-partial-missing-row{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.exam-partial-error{margin:.2rem 0 0 1.1rem}.exam-partial-steps{margin:.35rem 0 0;padding-left:1.2rem;line-height:1.5}.exam-partial-next{border-top:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);margin-top:.5rem;padding-top:.75rem}.exam-partial-warnings{margin-top:1rem}.exam-print-page{max-width:48rem}.exam-print-toolbar{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.exam-print-sheet{background:color-mix(in srgb, var(--surface,#141a18) 96%, transparent);border:1px solid color-mix(in srgb, var(--border,#2a3530) 80%, transparent);border-radius:12px;padding:1.5rem 1.75rem 2rem}.exam-print-header h1{margin:0 0 .35rem;font-size:1.55rem;line-height:1.3}.exam-print-meta{color:var(--muted,#9aaba3);margin:0}.exam-print-mode{margin:.35rem 0 0}.exam-print-section{page-break-inside:avoid;margin-top:1.75rem}.exam-print-section h2{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);margin:0 0 .5rem;padding-bottom:.35rem;font-size:1.2rem}.exam-print-instructions{margin:0 0 .75rem;font-weight:600;line-height:1.45}.exam-print-passage{border-left:3px solid color-mix(in srgb, var(--accent,#7cb89a) 55%, transparent);background:color-mix(in srgb, var(--bg,#0d1210) 55%, transparent);page-break-inside:avoid;margin:.75rem 0 1rem;padding:.75rem .9rem}.exam-print-passage h3{margin:0 0 .4rem;font-size:.95rem}.exam-print-passage p,.exam-print-passage-text{word-break:keep-all;overflow-wrap:break-word;white-space:pre-wrap;margin:0;line-height:1.7}.exam-print-mode-toggle{flex-wrap:wrap;gap:.35rem;display:inline-flex}.exam-print-key-list{flex-direction:column;gap:.65rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.exam-print-key-row{page-break-inside:avoid;border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 70%, transparent);padding-bottom:.4rem}.exam-print-key-note{margin:.2rem 0 0}.exam-offline-card{margin-bottom:1rem}.exam-score-trend{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;margin:0 0 .85rem;display:flex}.exam-score-trend-text{font-variant-numeric:tabular-nums}.exam-score-mini-bars{align-items:flex-end;gap:.25rem;min-width:4rem;height:2rem;display:flex}.exam-score-mini-bar{background:color-mix(in srgb, var(--accent,#7cb89a) 65%, transparent);border-radius:2px 2px 0 0;width:.45rem;min-height:.25rem}.exam-print-question{page-break-inside:avoid;margin:1.25rem 0}.exam-print-question h3{margin:0 0 .4rem;font-size:1.05rem}.exam-print-stem{white-space:pre-wrap;font-family:var(--font-kr,inherit);word-break:keep-all;overflow-wrap:break-word;color:inherit;background:0 0;border:0;margin:0 0 .5rem;padding:0;font-size:1.05rem;line-height:1.65}.exam-print-choices{font-family:var(--font-kr,inherit);word-break:keep-all;flex-direction:column;gap:.35rem;margin:.4rem 0 0;padding:0;line-height:1.55;list-style:none;display:flex}.exam-print-write-lines{flex-direction:column;gap:.85rem;margin-top:.6rem;display:flex}.exam-print-line{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 90%, #888);height:1.4rem}.exam-print-answer-key{border-top:2px solid color-mix(in srgb, var(--border,#2a3530) 90%, transparent);page-break-before:always;margin-top:2.5rem;padding-top:1.25rem}.exam-print-key-md{white-space:pre-wrap;font-family:var(--font-kr,inherit);word-break:keep-all;overflow-wrap:break-word;color:inherit;background:0 0;border:0;margin:.75rem 0 0;padding:0;font-size:.95rem;line-height:1.55}@media print{.shell-header,.shell-nav,.shell-aside,.shell-dock,.app-nav,.page-header-actions,.no-print,nav,footer,.channeling-overlay{display:none!important}body{margin:0;padding:0;color:#111!important;background:#fff!important}.exam-print-page{width:100%;max-width:none;margin:0;padding:.5rem .75rem;position:static;color:#111!important;background:#fff!important;display:block!important}.exam-print-page .no-print{display:none!important}.exam-print-sheet{box-shadow:none;border:0;border-radius:0;padding:0;color:#111!important;background:#fff!important}.exam-print-page .muted,.exam-print-meta,.exam-print-mode{color:#444!important}.exam-print-stem,.exam-print-choices,.exam-print-passage p,.exam-print-passage-text,.exam-print-instructions,.exam-print-key-md,.exam-print-key-list,.exam-print-page .ko,.exam-print-page [lang=ko]{word-break:keep-all;overflow-wrap:break-word;color:#111!important;font-family:Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,Noto Serif KR,Source Han Serif KR,sans-serif!important}.exam-print-stem{font-size:1.08rem!important;line-height:1.7!important}.exam-print-passage{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f7f7f7!important;border-left-color:#333!important}.exam-print-line{border-bottom-color:#999!important}.exam-print-answer-key{page-break-before:always}.exam-print-question,.exam-print-passage,.exam-print-choices,.exam-print-key-row{page-break-inside:avoid}.exam-print-key-row{border-bottom-color:#ccc!important}}.struggle-page .struggle-next{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));margin-bottom:1rem}.struggle-page .struggle-next h2{margin:.15rem 0 .35rem;font-size:1.45rem}.struggle-review-actions{flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .75rem;display:flex}.struggle-filters{margin:.75rem 0 1rem}.struggle-list{flex-direction:column;gap:.75rem;display:flex}.struggle-item.due{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.struggle-item-head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.struggle-item-title{margin:.35rem 0 0;font-size:1.15rem}.struggle-score{font-variant-numeric:tabular-nums;opacity:.85;text-align:right;min-width:2rem;font-weight:600}.struggle-evidence{flex-direction:column;gap:.3rem;margin:.55rem 0 .65rem;padding:0;font-size:.88rem;list-style:none;display:flex}.struggle-source-chip{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);color:var(--muted);border-radius:4px;margin-right:.35rem;padding:.1rem .35rem;font-size:.7rem;display:inline-block}.struggle-due-badge{background:color-mix(in srgb, var(--accent) 22%, transparent);margin-left:.35rem}.struggle-item-actions{margin-top:.25rem}.dash-struggle-card .struggle-evidence{margin-top:.35rem}.dash-struggle-card .struggle-mini-list{flex-direction:column;gap:.45rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.dash-struggle-card .struggle-mini-list li{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.dash-struggle-card .struggle-mini-meta{font-size:.8rem}.exam-struggle-banner{border-color:color-mix(in srgb, var(--accent,#7cb89a) 45%, var(--border))}.exam-struggle-banner .subhead{margin:0 0 .35rem}.exam-struggle-banner p{margin:.35rem 0}.exam-struggle-items{flex-direction:column;gap:.3rem;margin:.65rem 0 .85rem;padding-left:1.1rem;display:flex}.exam-struggle-items .badge{text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.exam-review-item{border-top:1px solid color-mix(in srgb, var(--border,#2a3530) 70%, transparent);margin:1rem 0;padding:.75rem 0}.exam-review-item.ok{border-left:3px solid #6fbf8acc;padding-left:.75rem}.exam-blank-review{margin:.5rem 0;padding-left:1.1rem}.exam-blank-review li.ok{color:#6fbf8a}.exam-blank-review li.miss{color:#d27a6a}.grammar-kpi-strip{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.75rem;margin:1rem 0 1.25rem;display:grid}.grammar-kpi-card{background:color-mix(in srgb, var(--bg-elevated) 90%, transparent);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.2rem;padding:.75rem .9rem;display:flex}.grammar-kpi-card.tone-warn{border-color:color-mix(in srgb, var(--warn,#fbbf24) 55%, transparent)}.grammar-kpi-value{letter-spacing:-.02em;font-size:1.35rem;font-weight:650}.grammar-charts-grid{margin-bottom:1.25rem}.grammar-chart-card{min-height:16rem}.grammar-chart-body{width:100%;min-height:12rem}.grammar-def-stats{grid-template-columns:1fr 1fr;gap:.85rem;padding:.5rem 0;display:grid}.grammar-def-stats>div{flex-direction:column;gap:.15rem;display:flex}.grammar-def-stats strong{font-size:1.25rem}.ingest-progress-panel{margin:1rem 0}.ingest-progress-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.ingest-progress-bar-track{background:color-mix(in srgb, var(--border,#2a3530) 80%, transparent);border-radius:999px;height:.55rem;overflow:hidden}.ingest-progress-bar-fill{background:linear-gradient(90deg, var(--mana,#5eead4), var(--accent,#a78bfa));border-radius:999px;height:100%;transition:width .35s}.ingest-progress-meta{margin:.35rem 0 .5rem}.ingest-job-log{white-space:pre-wrap;word-break:break-word;background:#00000059;border-radius:8px;max-height:14rem;padding:.65rem .75rem;overflow:auto}.ingest-diff-list{margin-top:.5rem}.ingest-diff-ul{max-height:12rem;margin:.4rem 0 0;padding:0;list-style:none;overflow:auto}.ingest-diff-ul li{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 70%, transparent);flex-wrap:wrap;align-items:baseline;gap:.4rem .65rem;padding:.3rem 0;display:flex}.grammar-label-manage-list{flex-direction:column;gap:.45rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.grammar-label-manage-list li{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.grammar-drawer-backdrop{z-index:80;background:#0000008c;justify-content:flex-end;display:flex;position:fixed;inset:0}.grammar-drawer{border-left:1px solid var(--border,#2a3530);border-radius:0;width:min(28rem,100%);height:100%;margin:0;animation:.2s insight-fade-in;overflow:auto}.grammar-drawer-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.grammar-drawer-header h2{margin:0;font-size:1.25rem}.grammar-drawer-def{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 60%, transparent);margin-bottom:.85rem;padding-bottom:.65rem}.badge.status-staged{background:#fbbf2440}.badge.status-published{background:#34d39940}.badge.status-draft{background:#fbbf2440}.grammar-definition-row{border-bottom:1px solid color-mix(in srgb, var(--border,#2a3530) 60%, transparent);gap:.5rem;padding:.65rem 0;display:grid}.badge.status-running,.badge.status-queued{background:color-mix(in srgb, var(--mana,#5eead4) 25%, transparent)}.badge.status-error,.badge.status-cancelled{background:#f8717140}.offline-study-chip,.rest-card-chip{background:color-mix(in srgb, var(--accent,#c4a1ff) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent,#c4a1ff) 28%, transparent);border-radius:999px;align-self:flex-start;margin:.15rem 0 .35rem;padding:.25rem .55rem;display:inline-flex}.rest-card-chip{background:color-mix(in srgb, var(--danger,#f87171) 14%, transparent);border-color:color-mix(in srgb, var(--danger,#f87171) 35%, transparent);color:var(--text,inherit)}.speech-practice-count{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.speech-practice-remaining{opacity:.75}.swipe-grade-card{-webkit-user-select:none;user-select:none;touch-action:pan-y;position:relative;overflow:hidden visible}.swipe-grade-card.is-swiping{box-shadow:0 8px 28px #00000047}.swipe-grade-card.preview-again{border-color:color-mix(in srgb, var(--danger,#f87171) 55%, var(--border))}.swipe-grade-card.preview-good{border-color:color-mix(in srgb, var(--success,#4ade80) 55%, var(--border))}.swipe-edge{pointer-events:none;z-index:2;justify-content:center;align-items:center;width:42%;max-width:9rem;transition:opacity 80ms linear;display:flex;position:absolute;top:0;bottom:0}.swipe-edge span{letter-spacing:.04em;text-transform:uppercase;border:2px solid;border-radius:999px;padding:.4rem .7rem;font-size:1.05rem;font-weight:700}.swipe-edge-again{color:var(--danger,#f87171);background:linear-gradient(90deg, color-mix(in srgb, var(--danger,#f87171) 28%, transparent), transparent);left:0}.swipe-edge-good{color:var(--success,#4ade80);background:linear-gradient(270deg, color-mix(in srgb, var(--success,#4ade80) 28%, transparent), transparent);right:0}.swipe-grade-hint{letter-spacing:.02em;background:color-mix(in srgb, var(--bg-hover,#1a1524) 80%, transparent);border:1px dashed color-mix(in srgb, var(--border) 80%, transparent);border-radius:999px;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .55rem;padding:.4rem .65rem;font-size:.8rem;font-weight:600;display:flex}.swipe-hint-again{color:var(--danger,#f87171)}.swipe-hint-good{color:var(--success,#4ade80)}.swipe-hint-mid{color:var(--muted);text-transform:lowercase;opacity:.85;font-weight:500}@media (prefers-reduced-motion:reduce){.swipe-grade-card{transition:none!important}}.swipe-card-stack{position:relative}.swipe-card-stack .swipe-grade-card{z-index:1;position:relative}.swipe-card-stack-next{z-index:0;border-radius:var(--radius);background:color-mix(in srgb, var(--bg-elevated) 90%, transparent);border:1px solid color-mix(in srgb, var(--circle) 30%, var(--border));pointer-events:none;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:absolute;inset:0;overflow:hidden}.swipe-card-stack-next-text{text-align:center;max-width:90%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.study-oracle-fab{right:calc(.85rem + var(--safe-right,0px));bottom:calc(8.75rem + var(--safe-bottom,0px));z-index:20;position:fixed}@media (width>=801px){.study-oracle-fab{bottom:calc(1.25rem + var(--safe-bottom,0px))}}.banner-sync{background:color-mix(in srgb, var(--mana,#8eb6a0) 18%, var(--bg-elevated,#121820));border-color:color-mix(in srgb, var(--mana,#8eb6a0) 40%, transparent)}.pwa-install-block{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}@media (width<=800px){.focus-session .speech-grade-bar{padding:.45rem .5rem calc(.45rem + var(--safe-bottom,0px));background:color-mix(in srgb, var(--bg,#0c0a12) 78%, transparent);border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent);grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.focus-session .speech-grade-btn{opacity:.82;min-height:2.4rem;font-size:.85rem;font-weight:600}.focus-session .speech-grade-btn:active{opacity:1}.focus-session .grade-shortcut-legend{text-align:center;grid-column:1/-1;margin:0}.focus-session .speech-practice-header{padding-top:.35rem;padding-bottom:.35rem}.focus-session .speech-practice-instruction{font-size:.9rem}.focus-session .speech-practice-shell{height:100%;min-height:0;max-height:100%;padding-bottom:calc(5.75rem + var(--safe-bottom));flex-direction:column;flex:auto;gap:.55rem;display:flex;overflow:hidden}.focus-session .speech-practice-header,.focus-session .vocab-review-prefs,.focus-session .offline-study-chip,.focus-session .rest-card-chip,.focus-session .swipe-hint-again,.focus-session .grade-shortcut-legend{flex-shrink:0}.focus-session .swipe-card-stack{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.focus-session:has(.study-oracle-fab) .speech-practice-card:after{content:"";flex:none;height:64px;display:block}.focus-session .speech-practice-card,.focus-session .swipe-grade-card.speech-practice-card{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:auto;min-height:0;max-height:none;overflow:hidden auto}.focus-session .speech-practice-summary{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:var(--safe-bottom,0);overflow:hidden auto}.focus-session .freetalk-hub,.focus-session .freetalk-setup,.focus-session .freetalk-answer,.focus-session .freetalk-feedback{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.focus-session .vocab-review-front{font-size:clamp(1.45rem,6.5vw,2rem);line-height:1.35}.focus-session .hanja-drill-prompt .hanja-char{font-size:clamp(3.25rem,18vw,4.75rem)}.focus-session .vocab-review-examples{max-height:none}.focus-session .speech-practice-revealed{padding:.85rem}.focus-session .speech-reveal-btn{min-height:3.1rem;font-size:1.05rem}}@media (display-mode:standalone){.focus-session .speech-practice-header{padding-top:max(.25rem, env(safe-area-inset-top,0px))}}.oracle-sheet-backdrop{z-index:80;background:color-mix(in srgb, var(--bg,#0c0a12) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:fixed;inset:0}.oracle-sheet{z-index:81;border:1px solid color-mix(in srgb, var(--accent,#c4a1ff) 35%, transparent);background:color-mix(in srgb, var(--surface,#16121f) 96%, var(--accent,#c4a1ff) 4%);border-radius:18px 18px 0 0;flex-direction:column;width:min(560px,100%);max-height:min(78vh,640px);padding:.75rem .9rem 1rem;animation:.22s ease-out oracle-sheet-rise;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -12px 40px #00000073}@keyframes oracle-sheet-rise{0%{opacity:0;transform:translate(-50%)translateY(18px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.oracle-sheet-header{align-items:flex-start;gap:.6rem;margin-bottom:.5rem;display:flex}.oracle-sheet-sigil{opacity:.9;flex-shrink:0}.oracle-sheet-titles{flex:1;min-width:0}.oracle-sheet-titles h2{letter-spacing:.04em;margin:0;font-size:1.05rem}.oracle-sheet-query{text-overflow:ellipsis;white-space:nowrap;margin:.15rem 0 0;overflow:hidden}.oracle-sheet-close{flex-shrink:0;min-width:2.25rem;padding-inline:.4rem}.oracle-sheet-body{flex:1;min-height:0;padding-right:.15rem;overflow:auto}.oracle-sheet-error{margin:.4rem 0}.oracle-sheet-answer{margin:0}.oracle-sheet-mark-msg{margin:.45rem 0 0}.oracle-sheet-rites{border-top:1px solid color-mix(in srgb, var(--border,#3a3348) 80%, transparent);flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding-top:.65rem;display:flex}.oracle-sheet-rites .genie-rite{text-decoration:none}.ask-oracle-btn{align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.ask-oracle-sigil{opacity:.85;color:var(--accent,#c4a1ff)}@media (width>=720px){.oracle-sheet{border-radius:18px;max-height:min(70vh,560px);bottom:1.25rem}}.study-oracle-row{flex-wrap:wrap;gap:.4rem;margin-top:.65rem;display:flex}.hanja-browse-scope{margin:0 0 .5rem}.hanja-browse-filter-row{flex-wrap:wrap;gap:.5rem}.hanja-browse-filter-row input[type=search]{flex:12rem;min-width:10rem}.hanja-browse-more{justify-content:center;margin-top:.85rem;display:flex}.hanja-browse-empty{flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem 0;display:flex}.hanja-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.55rem;display:grid}.hanja-tile{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated,var(--bg)) 92%, transparent);color:var(--text);cursor:pointer;font:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;min-height:118px;padding:.7rem .4rem .55rem;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.hanja-tile:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg-hover)}.hanja-tile-active{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 18%, transparent);background:color-mix(in srgb, var(--accent) 10%, var(--bg-elevated,var(--bg)))}.hanja-char{font-size:1.85rem;line-height:1.15}.hanja-tile-reading{letter-spacing:.02em}.hanja-tile-meaning{text-overflow:ellipsis;white-space:nowrap;text-align:center;opacity:.92;max-width:100%;overflow:hidden}.hanja-tile-meta{min-height:1em}.hanja-grade{font-weight:600}.hanja-detail-hero{align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.hanja-detail-char{text-align:center;background:color-mix(in srgb, var(--accent) 8%, var(--bg));border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));border-radius:14px;flex-shrink:0;min-width:3.5rem;padding:.35rem .5rem;font-size:3.25rem;line-height:1}.hanja-detail-title{margin:0 0 .25rem;font-size:1.35rem}.hanja-detail-reading{font-weight:500}.hanja-detail-meaning{margin:0 0 .55rem;font-size:1.05rem}.hanja-detail-meaning-en{margin:-.35rem 0 .55rem;font-size:.92rem}.hanja-detail-actions{flex-wrap:wrap;gap:.4rem;display:flex}.hanja-detail-meta{grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem .85rem;margin:0 0 .85rem;display:grid}.hanja-detail-meta dt{color:var(--muted);margin:0;font-size:.85rem}.hanja-detail-meta dd{margin:0}.hanja-detail-tags{flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;display:flex}.hanja-detail-cards,.hanja-detail-compounds{margin-top:.5rem}.hanja-card-stats{margin:.25rem 0 0}.hanja-compound-row{margin-bottom:.35rem}@media (width<=640px){.hanja-detail-hero{text-align:center;flex-direction:column;align-items:center}.hanja-detail-actions{justify-content:center}.hanja-detail-meta{text-align:left;grid-template-columns:auto 1fr}}.exam-template-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem;margin-top:.35rem;display:grid}.exam-template-card{text-align:left;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated,var(--bg)) 94%, transparent);color:inherit;font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.7rem .75rem;display:flex}.exam-template-card.on{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent) 10%, var(--bg-elevated,var(--bg)))}.exam-preview{margin-top:1rem;padding:.85rem 1rem}.exam-advanced-filters{margin-top:.5rem}.exam-advanced-filters summary{cursor:pointer}.exam-fast-panel{margin-bottom:1rem}.exam-fast-actions{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.exam-fast-sheet{border-top:1px solid var(--border);margin-top:.85rem;padding-top:.85rem}.exam-fast-search-input{width:100%;max-width:100%;margin:.35rem 0 .5rem}.exam-fast-search-list{border:1px solid color-mix(in srgb, var(--border,#2a3530) 85%, transparent);background:color-mix(in srgb, var(--surface,#141a18) 92%, transparent);border-radius:8px;flex-direction:column;gap:.25rem;max-height:10.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex;overflow:auto}.exam-fast-search-list .exam-grammar-option{border-top:0;border-left:0;border-right:0;border-radius:0}.exam-fast-suggested{margin:.35rem 0 .5rem}.exam-loop-summary{margin-bottom:.75rem}.exam-loop-counts{margin:.35rem 0 .65rem}.exam-weak-grammar{margin:.25rem 0 .75rem;padding-left:1.1rem}.exam-miss-actions{flex-wrap:wrap;gap:.4rem;margin-top:.55rem;display:flex}.exam-loop-ctas{margin-top:.65rem}.exam-review-item.miss{border-left:3px solid #f87171a6;padding-left:.65rem}.priorities-onboard-backdrop{z-index:60;padding:1rem;padding-left:calc(1rem + var(--safe-left,0px));padding-right:calc(1rem + var(--safe-right,0px));padding-bottom:calc(1rem + var(--safe-bottom,0px));background:color-mix(in srgb, var(--bg,#0c0a12) 62%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;display:grid;position:fixed;inset:0}.priorities-onboard-card{flex-direction:column;width:min(40rem,100%);max-height:min(92dvh,52rem);padding:0;display:flex;overflow:hidden}.priorities-onboard-head{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);flex:none;padding:1.2rem 1.25rem .75rem}.priorities-onboard-head h2{margin:.15rem 0 .35rem}.priorities-onboard-lead{margin:0 0 .85rem}.priorities-onboard-steps{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.priorities-onboard-step{border:1px solid color-mix(in srgb, var(--border) 80%, transparent);color:var(--muted);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.priorities-onboard-step.is-current{border-color:color-mix(in srgb, var(--accent) 65%, var(--border));background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--text)}.priorities-onboard-step.is-done{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));color:var(--text)}.priorities-onboard-step-num{background:color-mix(in srgb, var(--border) 55%, transparent);border-radius:999px;justify-content:center;align-items:center;width:1.15rem;height:1.15rem;font-size:.7rem;display:inline-flex}.priorities-onboard-step.is-current .priorities-onboard-step-num,.priorities-onboard-step.is-done .priorities-onboard-step-num{background:color-mix(in srgb, var(--accent) 35%, transparent);color:var(--accent)}.priorities-onboard-body{flex:auto;min-height:0;padding:1rem 1.25rem;overflow-y:auto}.priorities-onboard-foot{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--card,var(--bg-elevated)) 96%, transparent);flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.25rem 1.1rem;display:flex}.priorities-onboard-foot-right{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.onboard-option-list{flex-direction:column;gap:.55rem;display:flex}.onboard-option-card,.onboard-mode-tile{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-elevated,var(--bg));border-radius:12px;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.onboard-option-card:hover,.onboard-mode-tile:hover:not(.is-capped){border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.onboard-option-card.is-selected,.onboard-mode-tile.is-selected{border-color:color-mix(in srgb, var(--accent) 80%, var(--border));background:color-mix(in srgb, var(--accent) 16%, var(--bg-elevated,var(--bg)));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.onboard-mode-tile.is-capped{opacity:.45;cursor:not-allowed}.onboard-option-check{border:1.5px solid color-mix(in srgb, var(--border) 90%, transparent);width:1.35rem;height:1.35rem;color:var(--accent);background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;margin-top:.05rem;font-size:.75rem;font-weight:700;display:inline-flex}.onboard-option-card.is-selected .onboard-option-check,.onboard-mode-tile.is-selected .onboard-option-check{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 22%, transparent)}.onboard-option-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.onboard-option-text strong{font-weight:600}.onboard-modes-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.onboard-modes-meta p{margin:0}.onboard-counter{background:color-mix(in srgb, var(--accent) 16%, var(--bg-elevated));color:var(--accent);border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.onboard-hint{color:color-mix(in srgb, var(--accent) 70%, var(--text));margin:0 0 .65rem;font-size:.82rem}.onboard-mode-grid{grid-template-columns:1fr 1fr;gap:.55rem;display:grid}@media (width<=560px){.onboard-mode-grid{grid-template-columns:1fr}.priorities-onboard-card{max-height:min(94dvh,52rem)}}.priority-grid{flex-direction:column;gap:.75rem;margin:.75rem 0 1rem;display:flex}.priority-row{border-bottom:1px solid color-mix(in srgb, var(--border,#333) 55%, transparent);grid-template-columns:1fr auto;align-items:center;gap:.65rem 1rem;padding:.55rem 0;display:grid}.priority-row:last-child{border-bottom:none}.priority-level-chips{flex-wrap:wrap;gap:.35rem;display:flex}.priority-level-chips .chip{border:1px solid color-mix(in srgb, var(--border,#333) 80%, transparent);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .65rem;font-size:.85rem}.priority-level-chips .chip.active{background:color-mix(in srgb, var(--accent,#c9a227) 22%, transparent);border-color:color-mix(in srgb, var(--accent,#c9a227) 55%, transparent);font-weight:600}@media (width<=640px){.priority-row{grid-template-columns:1fr}}.leaderboard-page .leaderboard-me-strip{margin-bottom:1rem}.leaderboard-me-chips{flex-wrap:wrap;gap:.5rem;margin-top:.65rem;display:flex}.leaderboard-me-chip{border:1px solid color-mix(in srgb, var(--border,#333) 80%, transparent);background:color-mix(in srgb, var(--card,#1a1a1a) 92%, transparent);color:inherit;cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.1rem;min-width:5.5rem;padding:.45rem .65rem;display:flex}.leaderboard-me-chip.active{border-color:color-mix(in srgb, var(--accent,#c9a227) 70%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent,#c9a227) 35%, transparent)}.leaderboard-me-chip-rank{font-variant-numeric:tabular-nums;font-weight:700}.leaderboard-toolbar{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.leaderboard-period-chips{flex-wrap:wrap;gap:.4rem;display:flex}.leaderboard-period-chips .chip{border:1px solid color-mix(in srgb, var(--border,#333) 80%, transparent);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .75rem}.leaderboard-period-chips .chip.active{background:color-mix(in srgb, var(--accent,#c9a227) 22%, transparent);border-color:color-mix(in srgb, var(--accent,#c9a227) 55%, transparent)}.leaderboard-period-chips .chip:disabled{opacity:.4;cursor:not-allowed}.leaderboard-layout{grid-template-columns:minmax(9rem,12rem) 1fr;gap:1.25rem;display:grid}@media (width<=720px){.leaderboard-layout{grid-template-columns:1fr}}.leaderboard-boards ul{flex-direction:column;gap:.2rem;margin:0 0 .85rem;padding:0;list-style:none;display:flex}.leaderboard-board-btn{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.4rem .55rem}.leaderboard-board-btn.active,.leaderboard-board-btn:hover{background:color-mix(in srgb, var(--accent,#c9a227) 14%, transparent)}.leaderboard-board-header{margin-bottom:.75rem}.leaderboard-table .leaderboard-row.you{background:color-mix(in srgb, var(--accent,#c9a227) 12%, transparent)}.leaderboard-avatar{background:color-mix(in srgb, var(--border,#444) 55%, transparent);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;margin-right:.35rem;font-size:.75rem;font-weight:700;display:inline-flex}.leaderboard-rank .medal{border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.75rem;font-weight:800;display:inline-flex}.medal-1{background:#eab3088c}.medal-2{background:#94a3b88c}.medal-3{background:#d9770673}.leaderboard-you-footer{border-top:1px solid color-mix(in srgb, var(--border,#333) 70%, transparent);margin-top:.85rem;padding-top:.65rem}:root{--reading-known:#6f9f6a;--reading-learning:#d4a017;--reading-unknown:#c45c4a}.reading-import-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.reading-import-epub{flex-direction:column;align-items:flex-end;gap:.3rem;display:flex}.reading-word-wrap{display:inline;position:relative}button.reading-word{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:0}button.reading-word-known{border-bottom-color:var(--reading-known)}button.reading-word-learning{border-bottom-color:var(--reading-learning)}button.reading-word-unknown{border-bottom-color:var(--reading-unknown)}button.reading-word-ignore,.reader-hide-known button.reading-word-known{border-bottom-color:#0000}.reader-page{max-width:46rem;min-height:0;height:calc(100dvh - 2.5rem - var(--safe-bottom,0px));max-height:calc(100dvh - 2.5rem - var(--safe-bottom,0px));flex-direction:column;gap:1rem;margin:0 auto;display:flex}.reader-header{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.reader-title{flex:1;margin:0}.reader-percent-known{color:var(--muted);white-space:nowrap;font-size:.85rem}.reader-scroll{flex:1;min-height:0;overflow:hidden}.reader-columns{column-fill:auto;column-gap:14px;width:max-content;height:100%}.reader-chapter-trigger{appearance:none;border:1px solid var(--border);color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;padding:.3rem .75rem;font-size:.82rem}@keyframes reader-settings-popover-rise{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.reader-settings-popover-backdrop{z-index:80;background:0 0;position:fixed;inset:0}.reader-settings-popover{z-index:81;top:calc(4.5rem + var(--safe-top));right:calc(1rem + var(--safe-right));border:1px solid var(--border);background:color-mix(in srgb, var(--surface,#16121f) 96%, var(--accent,#c4a1ff) 4%);border-radius:14px;flex-direction:column;gap:.6rem;width:min(280px,100vw - 2rem);padding:.75rem .9rem .9rem;animation:.16s ease-out reader-settings-popover-rise;display:flex;position:fixed;box-shadow:0 12px 40px #00000073}.reader-settings-popover-header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.reader-settings-row{flex-direction:column;gap:.3rem;display:flex}.reader-settings-row-label{color:var(--muted);font-size:.78rem}.reader-settings-row-options{flex-wrap:wrap;gap:.35rem;display:flex}.reader-chapter-drawer-backdrop{z-index:80;background:color-mix(in srgb, var(--bg,#0c0a12) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:fixed;inset:0}.reader-chapter-drawer{z-index:81;border:1px solid var(--border);background:color-mix(in srgb, var(--surface,#16121f) 96%, var(--accent,#c4a1ff) 4%);border-radius:18px 18px 0 0;flex-direction:column;width:min(480px,100%);max-height:min(78vh,640px);padding:.75rem .9rem 1rem;animation:.22s ease-out oracle-sheet-rise;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -12px 40px #00000073}.reader-chapter-drawer-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.reader-chapter-drawer-body{flex-direction:column;flex:1;align-items:flex-start;gap:.3rem;min-height:0;display:flex;overflow:auto}.reader-toc-item{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:.25rem .7rem;font-size:.82rem}.reader-toc-item.active{border-color:color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.reader-chapter-title{margin:0 0 .5rem}.reader-tabs{flex-shrink:0}.reader-vocab-scroll{scroll-behavior:auto;overflow:hidden auto}.reader-vocab-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.reader-vocab-sort{flex-wrap:wrap;gap:.3rem;display:flex}.reader-vocab-error{color:var(--danger,#e5484d);margin-bottom:.5rem}.reader-vocab-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.reader-vocab-row{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;display:flex}.reader-vocab-word{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:.4rem;padding:0;display:flex}.reader-vocab-surface{font-size:1.05rem;font-family:var(--font-kr);border-bottom:2px solid #0000;padding-bottom:1px}.reader-vocab-surface.known{border-bottom-color:var(--reading-known)}.reader-vocab-surface.learning{border-bottom-color:var(--reading-learning)}.reader-vocab-surface.unknown{border-bottom-color:var(--reading-unknown)}.reader-vocab-surface.ignore{border-bottom-color:#0000}.reader-vocab-detail{flex-basis:100%}.reader-vocab-actions{flex-shrink:0;gap:.3rem;display:flex}.reader-vocab-act{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.78rem}.reader-vocab-act:disabled{opacity:.5;cursor:default}.reader-paragraph{line-height:var(--reader-line-height,1.9);font-size:var(--reader-font-size,1.05rem);font-family:var(--reader-font-family,var(--font-kr));margin:0 0 1.1rem}.reader-nav{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.reader-page-dots{align-items:center;gap:.3rem;display:flex}.reader-page-dot{background:var(--border);border-radius:999px;width:6px;height:6px}.reader-page-dot.active{background:var(--accent)}.reader-page-counter{white-space:nowrap}.reading-continue{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.reading-continue .subhead,.reading-continue p{margin:0}.reading-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.1rem;display:grid}.reading-shelf-tile{flex-direction:column;gap:.4rem;display:flex}.reading-shelf-cover-link{display:block}.reading-shelf-cover,.reading-shelf-placeholder{aspect-ratio:2/3;object-fit:cover;border-radius:6px;width:100%;box-shadow:0 6px 16px #00000059}.reading-shelf-placeholder{font-family:var(--font-display,inherit);color:#fff;justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex}.reading-shelf-meta{color:inherit;flex-direction:column;gap:.1rem;text-decoration:none;display:flex}.reading-shelf-meta strong{font-size:.9rem;line-height:1.25}.reading-detail-cover-row{align-items:flex-end;gap:1rem;display:flex}.reading-detail-cover-row .reading-shelf-cover,.reading-detail-cover-row .reading-shelf-placeholder{aspect-ratio:2/3;width:10rem}.infinite-drill-shell{max-width:56rem}.infinite-drill-layout{grid-template-columns:minmax(0,1fr) minmax(12.5rem,16.5rem);align-items:start;gap:.85rem 1rem;display:grid}.infinite-drill-main{min-width:0}.infinite-pool-panel{max-height:min(70vh,32rem);padding:.65rem .75rem .75rem;position:sticky;top:.75rem;overflow:auto}.infinite-pool-panel-head{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.infinite-pool-panel-title{flex-direction:column;gap:.1rem;min-width:0;display:flex}.infinite-pool-heading{margin:0;font-size:.95rem;font-weight:650}.infinite-pool-hints-btn{white-space:nowrap;flex-shrink:0}.infinite-pool-hints-btn.is-on{color:var(--accent,#6cf);border-color:color-mix(in srgb, var(--accent,#6cf) 45%, transparent)}.infinite-pool-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.infinite-pool-row{border:1px solid color-mix(in srgb, var(--border,#444) 70%, transparent);background:color-mix(in srgb, var(--surface-2,#222) 55%, transparent);border-radius:.45rem;padding:.4rem .45rem}.infinite-pool-row.is-cleared{opacity:.85}.infinite-pool-row.is-active-anon .infinite-pool-name{color:var(--muted,#9aaba3);font-weight:500}.infinite-pool-anti-spoil{margin:0 0 .45rem;line-height:1.3}.infinite-pool-row-main{justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.infinite-pool-name{word-break:keep-all;font-size:.88rem;font-weight:600;line-height:1.25}.infinite-pool-meta{font-variant-numeric:tabular-nums;flex-shrink:0}.infinite-pool-meaning{word-break:break-word;margin:.3rem 0 0;line-height:1.35}@media (width<=900px){.infinite-drill-shell{max-width:40rem}.infinite-drill-layout{grid-template-columns:1fr}.infinite-pool-panel{order:2;max-height:min(40vh,18rem);position:static}.infinite-drill-main{order:1}}.infinite-host-badge{border:1px solid color-mix(in srgb, var(--accent,#6cf) 40%, transparent);background:color-mix(in srgb, var(--accent,#6cf) 10%, transparent);border-radius:.5rem;flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;margin:0 0 .65rem;padding:.4rem .65rem;display:flex}.infinite-host-badge strong{font-size:1.05rem;font-weight:700}.infinite-host-hint{width:100%;margin:0}.infinite-session-meta{justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .5rem;display:flex}.infinite-stop-inline{margin-left:auto}.infinite-progress-strip{flex-wrap:wrap;gap:.35rem;margin:0 0 .75rem;display:flex}.infinite-progress-chip{font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--surface-2,#222) 90%, transparent);border:1px solid color-mix(in srgb, var(--border,#444) 80%, transparent);min-width:2.4rem;color:var(--muted,#9aaba3);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:.05rem;padding:.25rem .4rem;font-size:.72rem;display:inline-flex}.infinite-progress-chip.cleared{background:color-mix(in srgb, var(--accent,#6cf) 28%, transparent);border-color:var(--accent,#6cf);color:var(--accent,#6cf);font-weight:600}.infinite-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:3.5rem;font-size:.65rem;overflow:hidden}.infinite-chip-dot{opacity:.55;line-height:1}.infinite-card-stack{flex:1;min-height:0}.infinite-card{flex-direction:column;gap:.35rem;display:flex}.infinite-stem-well{width:100%;margin:.5rem 0 .25rem}.infinite-stem{font-family:var(--font-kr,inherit);white-space:pre-wrap;word-break:keep-all;margin:0;font-size:1.15rem;line-height:1.65}.infinite-error-span{text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:.12em;-webkit-text-decoration-color:color-mix(in srgb, var(--accent,#7cb89a) 75%, #e8a0a0);text-decoration-color:color-mix(in srgb, var(--accent,#7cb89a) 75%, #e8a0a0);color:inherit;font-weight:600}.infinite-choices{flex-direction:column;align-items:stretch;gap:.5rem;max-width:100%;margin-top:.85rem;display:flex}.infinite-choice{text-align:left;width:100%;min-height:var(--touch-min,2.75rem);border-radius:var(--radius,10px);border:2px solid color-mix(in srgb, var(--border,#3a4540) 90%, transparent);background:color-mix(in srgb, var(--surface,#141a18) 96%, transparent);justify-content:flex-start;align-items:center;gap:.6rem;padding:.8rem .95rem;font-size:1.05rem;line-height:1.35;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.infinite-choice:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent,#7cb89a) 55%, var(--border,#3a4540))}.infinite-choice.selected{border-color:var(--accent,#7cb89a);background:color-mix(in srgb, var(--accent,#7cb89a) 18%, var(--surface,#141a18));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent,#7cb89a) 40%, transparent)}.infinite-choice.selected .exam-choice-marker{color:var(--accent,#7cb89a);font-weight:700}.infinite-choice.correct{border-color:color-mix(in srgb, var(--success,#6fbf8a) 80%, transparent);background:color-mix(in srgb, var(--success,#6fbf8a) 16%, var(--surface,#141a18))}.infinite-choice.incorrect{border-color:color-mix(in srgb, var(--danger,#d27a6a) 80%, transparent);background:color-mix(in srgb, var(--danger,#d27a6a) 14%, var(--surface,#141a18))}.infinite-choice-tag{text-transform:uppercase;letter-spacing:.04em;flex:none;margin-left:auto;font-size:.72rem;font-weight:700}.infinite-choice-tag.ok{color:var(--success,#6fbf8a)}.infinite-choice-tag.bad{color:var(--danger,#e09080)}.infinite-reveal{margin-top:1rem}.infinite-reveal.bad{border-color:color-mix(in srgb, var(--danger,#d27a6a) 55%, transparent);background:color-mix(in srgb, var(--danger,#d27a6a) 10%, transparent)}.infinite-reveal.bad .speech-reveal-label{color:var(--danger,#d27a6a)}.infinite-reveal-yours,.infinite-reveal-correct{flex-direction:column;gap:.15rem;margin:.45rem 0 0;display:flex}.infinite-reveal-yours span:last-child,.infinite-reveal-correct strong{font-size:1.2rem;font-weight:700;line-height:1.35}.infinite-reveal-correct strong{color:var(--success,#8fd4a5)}.infinite-reveal-point{margin:.5rem 0 0}.infinite-review-explain{margin:.5rem 0 0;font-size:.95rem;line-height:1.45}@media (width>=801px){.infinite-action-bar{padding-top:.75rem;padding-bottom:var(--safe-bottom,0);background:linear-gradient(to top, color-mix(in srgb, var(--bg,#0e1210) 96%, transparent) 70%, transparent);margin-top:auto;position:sticky;bottom:0}}.infinite-action-bar .speech-grade-btn{grid-column:span 2}.infinite-action-bar .speech-grade-btn:only-child{grid-column:1/-1}.infinite-action-bar:has(.speech-grade-btn:only-child) .speech-grade-btn{grid-column:1/-1}.infinite-short-input{margin-top:.75rem}.infinite-short-input.correct,.input.correct{border-color:color-mix(in srgb, var(--success,#6fbf8a) 70%, transparent)}.infinite-short-input.incorrect,.input.incorrect{border-color:color-mix(in srgb, var(--danger,#d27a6a) 70%, transparent)}.infinite-progress-list{flex-direction:column;gap:.4rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.infinite-progress-list li{border-bottom:1px solid color-mix(in srgb, var(--border,#444) 50%, transparent);justify-content:space-between;gap:.75rem;padding:.35rem 0;display:flex}.infinite-progress-list li.cleared strong{color:var(--accent,#6cf)}.infinite-session-list{flex-direction:column;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.infinite-session-list li{border-bottom:1px solid color-mix(in srgb, var(--border,#444) 45%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.focus-session .infinite-drill-shell{min-height:calc(100dvh - 1rem - var(--safe-top) - var(--safe-bottom));padding-bottom:calc(5.5rem + var(--safe-bottom));flex-direction:column;display:flex}.infinite-reveal-sentence{flex-direction:column;gap:.2rem;margin:.65rem 0 0;display:flex}.infinite-reveal-sentence strong{white-space:pre-wrap;font-size:1.15rem;font-weight:700;line-height:1.55}.infinite-reveal-sentence-en{margin-top:.15rem;font-size:.95rem;font-style:italic;font-weight:500;line-height:1.45;display:block}.infinite-target-lemma{color:color-mix(in srgb, var(--accent,#7cb89a) 85%, var(--muted,#9aaba3));font-weight:600}.infinite-target-lemma .ko{font-weight:700}.numbers-modes{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.numbers-mode{text-align:left;border:1px solid var(--border);background:var(--bg-elevated);color:inherit;cursor:pointer;border-radius:10px;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.numbers-mode.active{border-color:var(--accent);background:var(--accent-soft)}.numbers-mode:disabled{opacity:.5;cursor:not-allowed}.numbers-tiers,.numbers-actions{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.numbers-hud{flex-wrap:wrap;gap:1rem;font-weight:600;display:flex}.numbers-combo.hot{color:var(--accent);text-shadow:0 0 10px var(--accent-soft)}.numbers-tier{margin-left:auto}.numbers-clock{position:relative}.numbers-bonus-pop{color:var(--accent);white-space:nowrap;pointer-events:none;margin-left:.3em;font-weight:700;animation:1.1s ease-out forwards numbers-bonus-pop;position:absolute;top:-.2em;left:100%}@keyframes numbers-bonus-pop{0%{opacity:0;transform:translateY(4px)scale(.8)}20%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-14px)scale(1)}}@media (prefers-reduced-motion:reduce){.numbers-bonus-pop{opacity:.9;animation:none}}.numbers-timer{background:var(--border);border-radius:3px;height:6px;margin:.6rem 0 1rem;overflow:hidden}.numbers-timer>div{background:var(--accent);height:100%;transition:width 1s linear}.numbers-prompt{text-align:center;word-break:keep-all;margin:1rem 0;font-family:Fraunces,Noto Serif KR,serif;font-size:clamp(2rem,7vw,3.6rem)}.numbers-hint{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.numbers-form{gap:.5rem;margin-bottom:.75rem;display:flex}.numbers-form input{flex:1;padding:.6rem .8rem;font-size:1.3rem}.numbers-flash{font-weight:600;animation:.35s ease-out numbers-pop}.numbers-flash.hit{color:var(--accent)}.numbers-flash.miss{color:#e07a7a}.numbers-misses{line-height:1.8}@keyframes numbers-pop{0%{opacity:0;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.numbers-flash{animation:none}.numbers-timer>div{transition:none}}.audio-source-tag{vertical-align:middle;opacity:.8;border:1px solid;border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.72rem;display:inline-block}.audio-source-tag.clip{color:var(--accent,#c0392b)}.audio-source-tag.tts{color:var(--muted,#888)}.sentence-review-audio{justify-content:center;align-items:center;margin:.5rem 0;display:flex}.clamp-text{flex-direction:column;align-items:flex-start;gap:0;display:flex}.clamp-text>.is-clamped{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp-text>:first-child{margin-bottom:0}.clamp-text-toggle{min-height:32px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;margin:0 0 8px -8px;padding:0 8px;font-size:.85rem}.clamp-text-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.grammar-study-shortcuts{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.grammar-study-shortcut-help{margin-bottom:16px}.mini-chart{flex-direction:column;gap:8px;margin:0;display:flex}.mini-chart-readout{min-height:24px;line-height:24px}.mini-chart-plot{gap:8px;display:flex;position:relative}.mini-chart-grid{width:40px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;flex:none;justify-content:space-between;font-size:12px;display:flex}.mini-chart-grid span{line-height:1;transform:translateY(-50%)}.mini-chart-grid span:first-child{transform:none}.mini-chart-grid span:last-child{transform:translateY(0)}.mini-chart-bars{border-bottom:1px solid var(--border);background-image:linear-gradient(to bottom, var(--border) 1px, transparent 1px);background-size:100% 50%;flex:1;align-items:stretch;gap:4px;display:flex}.mini-chart-col{cursor:pointer;background:0 0;border:0;border-radius:4px 4px 0 0;flex:1;align-items:flex-end;min-width:0;padding:0;display:flex}.mini-chart-col:hover,.mini-chart-col.is-active{background:color-mix(in srgb, var(--accent) 8%, transparent)}.mini-chart-col:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mini-chart-bar{border-radius:4px 4px 0 0;width:100%;transition:height .24s;display:block}@media (prefers-reduced-motion:reduce){.mini-chart-bar{transition:none}}.mini-chart-labels{color:var(--muted);gap:4px;margin-left:48px;font-size:12px;display:flex}.mini-chart-labels span{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.campaign-row{border-top:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.campaign-row>.btn:first-child{text-align:left;grid-column:1/-1;justify-self:start}.campaign-beat{margin-bottom:8px}.campaign-pack-plan{gap:8px;margin-top:8px;display:grid}.campaign-pack-plan ul{gap:4px;margin:0;padding-left:16px;display:grid}.lesson-bulk{gap:8px;display:grid}.lesson-bulk select{min-height:40px}.lesson-bulk-confirm{border:1px solid var(--accent);background:var(--accent-soft);scroll-margin-bottom:calc(4.25rem + 24px + var(--safe-bottom));border-radius:8px;gap:8px;padding:16px;display:grid}.lesson-bulk-confirm p{margin:0}.lesson-editor{gap:24px;display:grid}@media (width>=1000px){.lesson-editor{grid-template-columns:minmax(0,1fr) 390px;align-items:start}}.lesson-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-width:390px;padding:16px}.lesson-status{border:1px solid var(--border);border-radius:8px;padding:0 8px;font-size:.75rem;display:inline-block}.lesson-live{color:var(--accent);border-color:var(--accent)}.lesson-missing{color:var(--muted)}.hm2-personalize{border-color:var(--accent-soft,#5eb89a59);flex-direction:column;gap:16px;display:flex}.hm2-personalize h2{margin:0 0 8px;font-size:1.05rem}.hm2-personalize p{margin:0}.hm2-personalize-actions{gap:8px;display:flex}
