:root{color-scheme:dark;--bg: #08080c;--bg-strong: #030306;--surface: rgba(16, 17, 22, .88);--surface-2: rgba(27, 28, 35, .92);--surface-3: rgba(44, 37, 42, .92);--text: #f7f4ee;--muted: #b8b2aa;--line: rgba(255, 255, 255, .14);--line-strong: rgba(255, 255, 255, .25);--accent: #ff385c;--accent-2: #ffe15a;--accent-3: #39d98a;--accent-4: #43d6ff;--danger: #ff6b5f;--shadow: rgba(0, 0, 0, .45);--kanji-font: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;--ui-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--app-room-bg: url(../assets/brand/study-room.webp);--writing-paper: var(--surface);--writing-paper-border: var(--line);--writing-grid: var(--line);--writing-grid-strong: var(--line-strong);--writing-ink: var(--text);--writing-guide: var(--muted);--writing-template-opacity: .16;--kanji-panel: color-mix(in srgb, var(--surface-2), var(--bg) 12%);--kanji-panel-strong: color-mix(in srgb, var(--surface-3), var(--bg) 12%);--logo-filter: drop-shadow(0 8px 12px var(--shadow));--control-surface: var(--surface-2);--control-surface-hover: color-mix(in srgb, var(--surface-2), var(--text) 4%);--control-border: var(--line);--control-border-hover: var(--line-strong);--control-soft-surface: color-mix(in srgb, var(--surface-2), var(--accent) 6%);--control-soft-border: color-mix(in srgb, var(--accent), transparent 58%);--control-accent-surface: color-mix(in srgb, var(--accent-2), transparent 82%);--control-accent-surface-strong: color-mix(in srgb, var(--accent-2), transparent 72%);--control-shadow: 0 14px 28px color-mix(in srgb, var(--shadow), transparent 12%);--icon-tone: var(--text);--icon-boost: none;--sidebar-width: 252px;--content-max: 1540px;--topbar-height: 70px;--mobile-nav-height: 84px;--shell-gutter: clamp(16px, 2vw, 28px)}[data-theme=light]{color-scheme:light;--bg: #f8f7f2;--bg-strong: #ece8dd;--surface: rgba(255, 255, 255, .9);--surface-2: rgba(244, 247, 247, .94);--surface-3: rgba(255, 242, 236, .94);--text: #19191f;--muted: #5f6670;--line: rgba(20, 20, 25, .14);--line-strong: rgba(20, 20, 25, .24);--accent: #d91544;--accent-2: #8a6a00;--accent-3: #087b4d;--accent-4: #006b8f;--danger: #b3261e;--shadow: rgba(32, 34, 42, .16);--writing-paper: rgba(254, 253, 249, .98);--writing-paper-border: rgba(24, 27, 34, .18);--writing-grid: rgba(24, 27, 34, .22);--writing-grid-strong: rgba(24, 27, 34, .34);--writing-ink: #15161c;--writing-guide: rgba(35, 39, 47, .74);--writing-template-opacity: .26;--kanji-panel: rgba(246, 248, 251, .98);--kanji-panel-strong: rgba(238, 242, 247, .98);--logo-filter: brightness(.28) saturate(.82) contrast(1.12) drop-shadow(0 6px 10px rgba(32, 34, 42, .12));--control-surface: rgba(252, 251, 248, .99);--control-surface-hover: color-mix(in srgb, rgba(252, 251, 248, .99), var(--accent) 6%);--control-border: rgba(27, 31, 39, .2);--control-border-hover: rgba(27, 31, 39, .34);--control-soft-surface: color-mix(in srgb, rgba(255, 250, 251, .99), var(--accent) 8%);--control-soft-border: color-mix(in srgb, var(--accent), transparent 36%);--control-accent-surface: color-mix(in srgb, var(--accent-2), transparent 70%);--control-accent-surface-strong: color-mix(in srgb, var(--accent-2), transparent 58%);--control-shadow: 0 14px 28px rgba(32, 34, 42, .1);--icon-tone: #15161c;--icon-boost: brightness(.78) contrast(1.2) saturate(.85)}:root[data-custom-theme=theme_moon_gold]{--accent: #d99522;--accent-2: #ffe680;--accent-3: #f6c64f;--accent-4: #f4efd2}:root[data-custom-theme=theme_sakura_night]{--accent: #ff4f83;--accent-2: #ffd1df;--accent-3: #ff8fb2;--accent-4: #a48cff}:root[data-custom-theme=theme_forest_green]{--accent: #28b66f;--accent-2: #b8f0a8;--accent-3: #58d899;--accent-4: #8eddd5}:root[data-custom-theme=theme_deep_blue]{--accent: #4f7dff;--accent-2: #9fd5ff;--accent-3: #6bc5ff;--accent-4: #ffe15a}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg-strong);color:var(--text);font-family:var(--ui-font);font-size:16px;line-height:1.45;overflow-x:hidden}body.modal-open,body.onboarding-open{overflow:hidden}.app-shell{position:relative;min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:24;display:flex;flex-direction:column;gap:12px;width:var(--sidebar-width);padding:calc(env(safe-area-inset-top) + 16px) 14px calc(env(safe-area-inset-bottom) + 16px);border-right:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--surface),transparent 4%),color-mix(in srgb,var(--bg),transparent 1%)),color-mix(in srgb,var(--bg),transparent 4%);box-shadow:14px 0 42px color-mix(in srgb,var(--shadow),transparent 26%);backdrop-filter:blur(22px);overflow:auto}.sidebar-brand{width:min(100%,164px);height:60px;margin:0 auto 4px}.sidebar-nav{display:grid;gap:10px}.sidebar-nav-caption{margin:8px 10px 0;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.sidebar-nav-list{display:grid;gap:6px}.app-sidebar .nav-btn{width:100%;min-height:48px;grid-template-columns:34px minmax(0,1fr);justify-items:start;align-items:center;padding:8px 12px;border-radius:14px;text-align:left}.app-sidebar .nav-btn span{font-size:1.1rem}.app-sidebar .nav-btn small{align-self:center;overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.app-sidebar .nav-btn.has-menu:after{top:7px;right:8px}.sidebar-progress,.sidebar-user{border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2),transparent 1%),color-mix(in srgb,var(--bg),transparent 10%)),color-mix(in srgb,var(--surface),transparent 8%);box-shadow:var(--control-shadow);backdrop-filter:blur(18px)}.sidebar-progress{display:grid;gap:10px;margin-top:auto;padding:14px}.sidebar-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.75rem;font-weight:900;letter-spacing:.04em}.sidebar-progress-head span{color:var(--muted)}.sidebar-progress-head b{color:var(--accent-2)}.sidebar-progress p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}.sidebar-user{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;gap:10px;align-items:center;padding:10px 12px}.sidebar-user .avatar{width:44px;height:44px;border-radius:14px}.sidebar-user-copy{display:grid;gap:2px;min-width:0}.sidebar-user-copy strong,.sidebar-user-copy span{display:block}.sidebar-user-copy strong{overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-copy span{overflow:hidden;color:var(--muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-open{width:36px;height:36px;border-radius:12px}.modal-layer{position:fixed;inset:0;z-index:80;pointer-events:none}.modal-layer>*{pointer-events:auto}.flash-kanji-onboarding-root{position:fixed;inset:0;z-index:1400;pointer-events:auto;overflow:hidden;background:#06080e47}.flash-kanji-onboarding-root:not(.has-target){background:#06080e85}.flash-kanji-onboarding-root.is-final{background:#06080ec7}.flash-kanji-onboarding-root .flash-kanji-onboarding-scrim{display:none}.flash-kanji-onboarding-spotlight{position:fixed;box-sizing:border-box;pointer-events:none;background:transparent;border:2px solid color-mix(in srgb,var(--accent-1),white 20%);box-shadow:0 0 0 9999px #06080eb8,0 0 0 1px #ffffff14,0 0 28px #ffffff1f;transition:left .16s ease,top .16s ease,width .16s ease,height .16s ease,border-radius .16s ease,opacity .16s ease}.flash-kanji-onboarding-spotlight.is-hidden,.flash-kanji-onboarding-spotlight[hidden]{opacity:0}.flash-kanji-onboarding-dialog{position:fixed;z-index:1401;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 24px));max-width:min(420px,calc(100vw - 24px));max-height:min(calc(100dvh - 24px),760px);overflow:auto;overscroll-behavior:contain;pointer-events:auto;display:grid;gap:12px;padding:14px;background:color-mix(in srgb,var(--panel),black 6%);border:1px solid color-mix(in srgb,var(--stroke),transparent 18%);border-radius:12px;box-shadow:var(--shadow-lg);backdrop-filter:blur(18px)}.flash-kanji-onboarding-dialog.is-final{background:color-mix(in srgb,var(--panel),black 4%)}.flash-kanji-onboarding-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.flash-kanji-onboarding-body{display:grid;grid-template-columns:minmax(72px,110px) minmax(0,1fr);gap:14px;align-items:center}.flash-kanji-onboarding-eva{width:100%;max-width:110px;justify-self:center;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.36))}.flash-kanji-onboarding-copy h2{margin:0;font-size:1.1rem;line-height:1.2}.flash-kanji-onboarding-copy p{margin:8px 0 0;color:var(--muted)}.flash-kanji-onboarding-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.flash-kanji-onboarding-dialog .btn{min-width:0}.is-onboarding-target{position:relative;z-index:2;outline:2px solid color-mix(in srgb,var(--accent-1),white 24%);outline-offset:3px;box-shadow:0 0 0 4px #ffffff14,0 0 28px #ff497747;animation:onboarding-target-pulse 1.8s ease-in-out infinite}@keyframes onboarding-target-pulse{0%,to{box-shadow:0 0 0 4px #ffffff14,0 0 28px #ff497747}50%{box-shadow:0 0 0 6px #ffffff1f,0 0 40px #ff497761}}@media (max-width: 767px){.flash-kanji-onboarding-dialog{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px);padding:12px}.flash-kanji-onboarding-body{grid-template-columns:72px minmax(0,1fr);gap:10px}.flash-kanji-onboarding-eva{max-width:72px}.flash-kanji-onboarding-actions{justify-content:flex-start}.flash-kanji-onboarding-actions .btn{flex:1 1 0}}@media (max-width: 960px){.flash-kanji-onboarding-body{grid-template-columns:1fr;justify-items:center;text-align:left}.flash-kanji-onboarding-eva{max-width:92px}.flash-kanji-onboarding-copy{width:100%}.flash-kanji-onboarding-actions{justify-content:flex-start}.flash-kanji-onboarding-actions .btn{flex:1 1 0}}@media (prefers-reduced-motion: reduce){.is-onboarding-target{animation:none}}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-4),transparent 35%);outline-offset:2px}.app-shell{position:relative;min-height:100svh;isolation:isolate;background:linear-gradient(140deg,rgba(255,56,92,.14),transparent 36%),linear-gradient(25deg,rgba(57,217,138,.08),transparent 52%),color-mix(in srgb,var(--bg),transparent 8%)}.scene-bg{position:fixed;inset:0;z-index:-2;overflow:hidden;background:var(--app-room-bg) center / cover no-repeat,url(../assets/bg_1.webp) center / cover no-repeat;opacity:.5;filter:saturate(1.08) contrast(1.04);transform:scale(1.02)}.scene-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 52% 20%,rgba(255,225,90,.1),transparent 28%),linear-gradient(180deg,#03030680,#030306eb),linear-gradient(90deg,rgba(3,3,6,.58),transparent 28%,transparent 70%,rgba(3,3,6,.58)),repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 1px,transparent 1px 17px)}.scene-bg:before{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;mix-blend-mode:screen;will-change:opacity,transform}.scene-effects{position:fixed;inset:0;z-index:65;overflow:hidden;pointer-events:none;opacity:0;mix-blend-mode:screen;contain:layout paint style}.scene-effects span{position:absolute;display:block;opacity:0;pointer-events:none;will-change:transform,opacity}:root[data-custom-effect^=effect_] .scene-effects{opacity:1}:root[data-custom-effect^=effect_] .scene-effects:before,:root[data-custom-effect^=effect_] .scene-effects:after{content:"";position:absolute;inset:0;pointer-events:none}:root[data-custom-effect$=_particles] .scene-effects span{width:var(--particle-size, 10px);height:var(--particle-size, 10px);border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.92) 0 24%,rgba(255,255,255,.34) 36%,transparent 68%);box-shadow:0 0 16px #ffffff1f;filter:blur(var(--particle-blur, .12px));transform:translateZ(0) scale(.82);animation:sakura-petal-fly var(--particle-duration, 18s) linear infinite;animation-delay:var(--particle-delay, 0s)}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(1){top:12%;left:-8%;--particle-size: 12px;--particle-duration: 20s;--particle-delay: -4s;--particle-blur: .18px;--drift-x: 112vw;--drift-y: 34vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(2){top:24%;left:6%;--particle-size: 9px;--particle-duration: 24s;--particle-delay: -15s;--particle-blur: .1px;--drift-x: 94vw;--drift-y: 22vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(3){top:8%;left:38%;--particle-size: 7px;--particle-duration: 17s;--particle-delay: -9s;--particle-blur: .12px;--drift-x: -36vw;--drift-y: 48vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(4){top:18%;left:78%;--particle-size: 11px;--particle-duration: 22s;--particle-delay: -12s;--particle-blur: .16px;--drift-x: -118vw;--drift-y: 28vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(5){top:34%;left:88%;--particle-size: 8px;--particle-duration: 19s;--particle-delay: -7s;--particle-blur: .12px;--drift-x: -84vw;--drift-y: 54vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(6){top:46%;left:-4%;--particle-size: 10px;--particle-duration: 23s;--particle-delay: -18s;--particle-blur: .15px;--drift-x: 104vw;--drift-y: -18vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(7){top:58%;left:14%;--particle-size: 6px;--particle-duration: 16s;--particle-delay: -6s;--particle-blur: .08px;--drift-x: 88vw;--drift-y: -28vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(8){top:64%;left:62%;--particle-size: 12px;--particle-duration: 26s;--particle-delay: -21s;--particle-blur: .2px;--drift-x: -68vw;--drift-y: -34vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(9){top:76%;left:80%;--particle-size: 8px;--particle-duration: 21s;--particle-delay: -10s;--particle-blur: .12px;--drift-x: 74vw;--drift-y: -44vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(10){top:84%;left:28%;--particle-size: 7px;--particle-duration: 18s;--particle-delay: -3s;--particle-blur: .1px;--drift-x: -52vw;--drift-y: -22vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(11){top:42%;left:48%;--particle-size: 10px;--particle-duration: 25s;--particle-delay: -20s;--particle-blur: .14px;--drift-x: 56vw;--drift-y: 40vh}:root[data-custom-effect$=_particles] .scene-effects span:nth-child(12){top:92%;left:58%;--particle-size: 6px;--particle-duration: 15s;--particle-delay: -8s;--particle-blur: .08px;--drift-x: -96vw;--drift-y: 18vh}:root[data-custom-effect=effect_soft_glow] .scene-bg:before,:root[data-custom-effect=effect_lesson_shine] .scene-bg:before,:root[data-custom-effect=effect_level_frame] .scene-bg:before{opacity:.42;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--accent-2),transparent 55%),transparent 46%)}:root[data-custom-effect=effect_moon_particles] .scene-bg:before{opacity:.45;background:radial-gradient(circle at 18% 24%,color-mix(in srgb,var(--accent-2),transparent 25%) 0 2px,transparent 3px),radial-gradient(circle at 72% 18%,color-mix(in srgb,var(--accent-2),transparent 35%) 0 2px,transparent 3px),radial-gradient(circle at 46% 76%,color-mix(in srgb,var(--accent-2),transparent 35%) 0 2px,transparent 3px)}:root[data-custom-effect=effect_sakura_particles] .scene-bg:before{opacity:.2;background:radial-gradient(circle at 20% 28%,color-mix(in srgb,var(--accent),white 18%) 0 2px,transparent 3px),radial-gradient(circle at 76% 36%,color-mix(in srgb,var(--accent),white 18%) 0 2px,transparent 3px),radial-gradient(circle at 52% 72%,color-mix(in srgb,var(--accent),white 18%) 0 2px,transparent 3px),radial-gradient(circle at 58% 14%,rgba(255,191,222,.16),transparent 28%)}:root[data-custom-effect=effect_sakura_particles] .scene-effects{opacity:1}:root[data-custom-effect=effect_sakura_particles] .scene-effects span{opacity:0;width:var(--particle-size, 10px);height:calc(var(--particle-size, 10px) * .72);border-radius:64% 36%/58% 34% 66% 42%;background:radial-gradient(circle at 36% 34%,#fffffff5 0 15%,#fff5f8f0 15% 35%,#ffadd6e6 35% 68%,#ff67ab42 68% 100%);box-shadow:0 0 18px #ffa0cd38;filter:blur(var(--particle-blur, .15px));transform:translateZ(0) rotate(0) scale(.82);animation:sakura-petal-fly var(--particle-duration, 18s) linear infinite;animation-delay:var(--particle-delay, 0s)}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:before{content:"";position:absolute;inset:18% 42%;border-radius:inherit;background:#ffffffd1;filter:blur(.3px);opacity:.7}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(1){top:12%;left:-8%;--particle-size: 12px;--particle-duration: 20s;--particle-delay: -4s;--particle-blur: .18px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(2){top:24%;left:6%;--particle-size: 9px;--particle-duration: 24s;--particle-delay: -15s;--particle-blur: .1px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(3){top:8%;left:38%;--particle-size: 7px;--particle-duration: 17s;--particle-delay: -9s;--particle-blur: .12px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(4){top:18%;left:78%;--particle-size: 11px;--particle-duration: 22s;--particle-delay: -12s;--particle-blur: .16px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(5){top:34%;left:88%;--particle-size: 8px;--particle-duration: 19s;--particle-delay: -7s;--particle-blur: .12px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(6){top:46%;left:-4%;--particle-size: 10px;--particle-duration: 23s;--particle-delay: -18s;--particle-blur: .15px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(7){top:58%;left:14%;--particle-size: 6px;--particle-duration: 16s;--particle-delay: -6s;--particle-blur: .08px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(8){top:64%;left:62%;--particle-size: 12px;--particle-duration: 26s;--particle-delay: -21s;--particle-blur: .2px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(9){top:76%;left:80%;--particle-size: 8px;--particle-duration: 21s;--particle-delay: -10s;--particle-blur: .12px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(10){top:84%;left:28%;--particle-size: 7px;--particle-duration: 18s;--particle-delay: -3s;--particle-blur: .1px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(11){top:42%;left:48%;--particle-size: 10px;--particle-duration: 25s;--particle-delay: -20s;--particle-blur: .14px}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(12){top:92%;left:58%;--particle-size: 6px;--particle-duration: 15s;--particle-delay: -8s;--particle-blur: .08px}@keyframes sakura-petal-fly{0%{opacity:0;transform:translateZ(0) rotate(0) scale(.82)}8%{opacity:.18}16%{opacity:.78}60%{opacity:.78;transform:translate3d(calc(var(--drift-x, 0vw) * .45),calc(var(--drift-y, 0vh) * .45),0) rotate(110deg) scale(.96)}to{opacity:0;transform:translate3d(var(--drift-x, 0vw),var(--drift-y, 0vh),0) rotate(220deg) scale(1.08)}}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(1){--drift-x: 112vw;--drift-y: 34vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(2){--drift-x: 94vw;--drift-y: 22vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(3){--drift-x: -36vw;--drift-y: 48vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(4){--drift-x: -118vw;--drift-y: 28vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(5){--drift-x: -84vw;--drift-y: 54vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(6){--drift-x: 104vw;--drift-y: -18vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(7){--drift-x: 88vw;--drift-y: -28vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(8){--drift-x: -68vw;--drift-y: -34vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(9){--drift-x: 74vw;--drift-y: -44vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(10){--drift-x: -52vw;--drift-y: -22vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(11){--drift-x: 56vw;--drift-y: 40vh}:root[data-custom-effect=effect_sakura_particles] .scene-effects span:nth-child(12){--drift-x: -96vw;--drift-y: 18vh}:root[data-custom-effect=effect_snow_particles] .scene-bg:before{opacity:.46;background:radial-gradient(circle at 16% 18%,#dbeafe 0 2px,transparent 3px),radial-gradient(circle at 32% 42%,#dbeafe 0 2px,transparent 3px),radial-gradient(circle at 62% 24%,#dbeafe 0 2px,transparent 3px),radial-gradient(circle at 80% 68%,#dbeafe 0 2px,transparent 3px)}:root[data-custom-effect=effect_golden_glow] .scene-bg:before{opacity:.32;background:radial-gradient(circle at 50% 18%,rgba(246,198,79,.22),transparent 42%),radial-gradient(circle at 18% 72%,rgba(246,198,79,.1),transparent 28%)}:root[data-custom-effect=effect_cyber_hud] .scene-bg:before{opacity:.44;background:radial-gradient(circle at 78% 14%,rgba(67,214,255,.2),transparent 28%),radial-gradient(circle at 12% 82%,rgba(255,79,131,.1),transparent 32%),linear-gradient(180deg,rgba(67,214,255,.06),transparent 48%);animation:cyber-hud-bg-pulse 6.5s ease-in-out infinite}:root[data-custom-effect=effect_cyber_hud] .scene-bg:after{background:radial-gradient(circle at 52% 20%,rgba(67,214,255,.08),transparent 28%),linear-gradient(180deg,#03030661,#030306c7),linear-gradient(90deg,rgba(3,3,6,.42),transparent 28%,transparent 70%,rgba(3,3,6,.42)),repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 1px,transparent 1px 17px)}.scene-cyber-hud{position:fixed;inset:0;z-index:75;overflow:hidden;pointer-events:none;opacity:0;mix-blend-mode:screen}:root[data-custom-effect=effect_cyber_hud] .scene-cyber-hud{opacity:.58}:root[data-custom-effect=effect_dust_particles] .scene-bg:before{opacity:.42;background:radial-gradient(circle at 14% 74%,rgba(196,154,108,.45) 0 2px,transparent 3px),radial-gradient(circle at 40% 62%,rgba(196,154,108,.35) 0 2px,transparent 3px),radial-gradient(circle at 72% 68%,rgba(196,154,108,.3) 0 2px,transparent 3px),linear-gradient(18deg,transparent 0 58%,rgba(196,154,108,.12) 58% 61%,transparent 61% 100%)}:root[data-custom-effect=effect_moon_particles] .scene-effects:before{opacity:.28;background:radial-gradient(circle at 50% 18%,rgba(255,225,90,.14),transparent 36%),radial-gradient(circle at 18% 28%,rgba(255,225,90,.08),transparent 18%),radial-gradient(circle at 76% 26%,rgba(255,225,90,.06),transparent 18%);animation:halo-pulse 7.5s ease-in-out infinite}:root[data-custom-effect=effect_moon_particles] .scene-effects span{opacity:0;background:radial-gradient(circle at 46% 46%,#fff6cff5 0 22%,#ffe07df0 34%,#ffc03e8a,#ffc03e05 78%);box-shadow:0 0 18px #ffe15a1a;border-radius:50%;filter:blur(.06px)}:root[data-custom-effect=effect_snow_particles] .scene-effects:before{opacity:.22;background:radial-gradient(circle at 24% 22%,rgba(235,244,255,.12),transparent 18%),radial-gradient(circle at 72% 28%,rgba(235,244,255,.08),transparent 18%);animation:halo-pulse 8.5s ease-in-out infinite}:root[data-custom-effect=effect_snow_particles] .scene-effects span{opacity:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.98) 0 28%,rgba(237,246,255,.9) 38%,rgba(214,230,255,.3) 68%,transparent 78%);box-shadow:0 0 14px #e4f1ff14;border-radius:50%;filter:blur(.14px)}:root[data-custom-effect=effect_dust_particles] .scene-effects:before{opacity:.3;background:radial-gradient(circle at 18% 74%,rgba(196,154,108,.14),transparent 14%),radial-gradient(circle at 72% 62%,rgba(196,154,108,.1),transparent 16%)}:root[data-custom-effect=effect_dust_particles] .scene-effects span{opacity:0;background:radial-gradient(circle at 48% 48%,#c49a6cd6 0 18%,#c49a6c61 44%,#c49a6c0a 72%);box-shadow:0 0 12px #c49a6c14;border-radius:48% 52% 56% 44%/54% 48% 52% 46%;filter:blur(.22px)}:root[data-custom-effect=effect_soft_glow] .scene-effects:before{opacity:.38;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--accent-2),transparent 72%),transparent 44%),radial-gradient(circle at 50% 52%,rgba(255,225,90,.05),transparent 68%);animation:halo-pulse 9s ease-in-out infinite}:root[data-custom-effect=effect_golden_glow] .scene-effects:before{opacity:.48;background:radial-gradient(circle at 50% 20%,rgba(246,198,79,.18),transparent 40%),radial-gradient(circle at 50% 52%,rgba(255,225,90,.08),transparent 66%);animation:halo-pulse 8s ease-in-out infinite}:root[data-custom-effect=effect_lesson_shine] .scene-effects:before{opacity:.28;background:linear-gradient(118deg,transparent 30%,rgba(255,255,255,.04) 42%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.05) 58%,transparent 70%);animation:lesson-shine-sweep 9s ease-in-out infinite}:root[data-custom-effect=effect_lesson_shine] .scene-effects:after{opacity:.1;background:radial-gradient(circle at 50% 48%,rgba(255,225,90,.05),transparent 56%)}:root[data-custom-effect=effect_level_frame] .scene-effects:before{inset:12px;opacity:.52;border:1px solid color-mix(in srgb,var(--accent-2),transparent 28%);border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff0d,inset 0 0 24px #ffe15a0a,0 0 0 1px #ffe15a12}:root[data-custom-effect=effect_level_frame] .scene-effects:after{inset:24px 18px;opacity:.2;border:1px solid rgba(255,225,90,.12);border-radius:14px;box-shadow:inset 0 0 0 1px #ffffff08,0 0 12px #ffe15a0a;animation:halo-pulse 7.8s ease-in-out infinite}:root[data-custom-effect=effect_cyber_hud] .scene-effects:before,:root[data-custom-effect=effect_cyber_hud] .scene-effects:after{opacity:0}:root[data-custom-effect=effect_cyber_hud] .scene-effects{opacity:0;pointer-events:none}@keyframes halo-pulse{0%,to{transform:scale(1);opacity:.58}50%{transform:scale(1.008);opacity:.76}}@keyframes lesson-shine-sweep{0%,62%{transform:translate3d(-18%,0,0);opacity:0}74%{opacity:.38}to{transform:translate3d(18%,0,0);opacity:0}}@keyframes cyber-hud-bg-pulse{0%,to{opacity:.5}50%{opacity:.66}}@keyframes cyber-hud-scan{0%{transform:translate3d(0,-120%,0);opacity:0}8%{opacity:.42}92%{opacity:.42}to{transform:translate3d(0,120%,0);opacity:0}}@keyframes cyber-hud-scan-trail{0%{transform:translate3d(0,-130%,0);opacity:0}10%{opacity:.22}to{transform:translate3d(0,130%,0);opacity:0}}@keyframes cyber-hud-grid-drift{0%{background-position:0 0,0 0}to{background-position:0 28px,28px 0}}@keyframes cyber-hud-flicker{0%,to{opacity:.38}4%{opacity:.18}8%{opacity:.42}9%{opacity:.12}10%{opacity:.34}}.study-layout.is-shadow-rebooting [data-study-card-host]>*{animation:shadow-reboot-card .34s ease both}@keyframes shadow-reboot-card{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}.cyber-hud-effect{--cyber-cyan: #43d6ff;--cyber-magenta: #ff4f83;--cyber-hud-glow: rgba(67, 214, 255, .35);position:absolute;inset:0;overflow:hidden;pointer-events:none;isolation:isolate;mix-blend-mode:screen;opacity:.88}.scene-cyber-hud>.cyber-hud-effect{z-index:1;opacity:.5;mix-blend-mode:screen;filter:saturate(1.08) contrast(1.02)}.scene-cyber-hud>.cyber-hud-effect.is-overlay{opacity:.54}.scene-bg>.cyber-hud-effect{z-index:1;opacity:.82;mix-blend-mode:screen;filter:saturate(1.22) contrast(1.04);-webkit-mask-image:radial-gradient(ellipse 92% 84% at 50% 46%,transparent 10%,#000 58%);mask-image:radial-gradient(ellipse 92% 84% at 50% 46%,transparent 10%,#000 58%)}.scene-bg>.cyber-hud-effect.is-background{opacity:.86}.custom-shop-preview>.cyber-hud-effect{z-index:1;border-radius:inherit;mix-blend-mode:screen;opacity:.55}.cyber-hud-effect>*{position:absolute;inset:0;pointer-events:none}.cyber-hud-bloom{background:radial-gradient(circle at 50% 42%,rgba(67,214,255,.1),transparent 48%),radial-gradient(circle at 18% 78%,rgba(255,79,131,.06),transparent 34%),linear-gradient(180deg,#03030614,#03030605 42%,#0303060f);filter:blur(12px);opacity:.85}.cyber-hud-noise{inset:0;width:100%;height:100%;opacity:.22;image-rendering:pixelated}.cyber-hud-grid{background-image:linear-gradient(rgba(67,214,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(67,214,255,.045) 1px,transparent 1px);background-size:30px 30px;opacity:.55;animation:cyber-hud-grid-drift 9s linear infinite;mask-image:radial-gradient(circle at 50% 50%,#000 34%,transparent 90%)}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-grid{background-image:linear-gradient(rgba(67,214,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(67,214,255,.055) 1px,transparent 1px);opacity:.58;mask-image:radial-gradient(ellipse 90% 82% at 50% 48%,transparent 18%,#000 60%)}.scene-bg>.cyber-hud-effect .cyber-hud-grid{background-image:linear-gradient(rgba(67,214,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(67,214,255,.11) 1px,transparent 1px);opacity:.92;mask-image:radial-gradient(ellipse 94% 86% at 50% 48%,transparent 8%,#000 54%)}.cyber-hud-frame{inset:12px;border:1px solid rgba(67,214,255,.16);box-shadow:inset 0 0 20px #43d6ff0d,0 0 12px #43d6ff0f;opacity:.7}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-bloom{background:radial-gradient(circle at 50% 42%,rgba(67,214,255,.1),transparent 50%),radial-gradient(circle at 18% 78%,rgba(255,79,131,.05),transparent 36%),linear-gradient(180deg,#0303060f,#03030605 42%,#0303060d);opacity:.68}.scene-bg>.cyber-hud-effect .cyber-hud-bloom{background:radial-gradient(circle at 50% 42%,rgba(67,214,255,.16),transparent 50%),radial-gradient(circle at 18% 78%,rgba(255,79,131,.1),transparent 36%),linear-gradient(180deg,#0303061a,#03030608 42%,#03030614);opacity:.95}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-noise{opacity:.18}.scene-bg>.cyber-hud-effect .cyber-hud-noise{opacity:.34}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-frame{border-color:#43d6ff38;box-shadow:inset 0 0 18px #43d6ff0f,0 0 12px #43d6ff14;opacity:.72}.scene-bg>.cyber-hud-effect .cyber-hud-frame{border-color:#43d6ff61;box-shadow:inset 0 0 28px #43d6ff1f,0 0 22px #43d6ff29;opacity:1}.cyber-hud-corner{position:absolute;width:18px;height:18px;border-color:#43d6ffb8;border-style:solid;filter:drop-shadow(0 0 4px var(--cyber-hud-glow));opacity:.62}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-corner{width:20px;height:20px;border-color:#43d6ffb8;filter:drop-shadow(0 0 5px rgba(67,214,255,.32));opacity:.68}.scene-bg>.cyber-hud-effect .cyber-hud-corner{width:24px;height:24px;border-color:#43d6fff5;filter:drop-shadow(0 0 8px rgba(67,214,255,.55));opacity:1}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-hlines span,.scene-cyber-hud>.cyber-hud-effect .cyber-hud-vlines span{opacity:.18}.scene-bg>.cyber-hud-effect .cyber-hud-hlines span,.scene-bg>.cyber-hud-effect .cyber-hud-vlines span{opacity:.32}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-hlines span:nth-child(3n),.scene-cyber-hud>.cyber-hud-effect .cyber-hud-vlines span:nth-child(4n){opacity:.28}.scene-bg>.cyber-hud-effect .cyber-hud-hlines span:nth-child(3n),.scene-bg>.cyber-hud-effect .cyber-hud-vlines span:nth-child(4n){opacity:.48}.cyber-hud-corner-tl{top:-1px;left:-1px;border-width:2px 0 0 2px}.cyber-hud-corner-tr{top:-1px;right:-1px;border-width:2px 2px 0 0}.cyber-hud-corner-bl{bottom:-1px;left:-1px;border-width:0 0 2px 2px}.cyber-hud-corner-br{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.cyber-hud-hlines span,.cyber-hud-vlines span{position:absolute;display:block;background:linear-gradient(90deg,transparent,rgba(67,214,255,.72),transparent);box-shadow:0 0 6px #43d6ff2e;opacity:.18;transition:opacity .05s linear,transform .05s linear}.cyber-hud-hlines span{left:4%;right:4%;height:1px;top:calc(8% + (var(--i) * 5.6%))}.cyber-hud-vlines span{top:6%;bottom:6%;width:1px;left:calc(6% + (var(--i) * 7.2%));background:linear-gradient(180deg,transparent,rgba(67,214,255,.45),transparent)}.cyber-hud-hlines span:nth-child(3n),.cyber-hud-vlines span:nth-child(4n){opacity:.28;box-shadow:0 0 8px #43d6ff3d,0 0 1px #ff4f8329}.cyber-hud-hlines span.is-off,.cyber-hud-vlines span.is-off{opacity:.04}.cyber-hud-hlines span.is-jitter{transform:translate3d(2px,0,0);opacity:.12}.cyber-hud-vlines span.is-jitter{transform:translate3d(0,2px,0);opacity:.12}.cyber-hud-scan{left:0;right:0;height:16%;background:linear-gradient(180deg,transparent 0%,rgba(67,214,255,.04) 35%,rgba(67,214,255,.22) 50%,rgba(255,255,255,.1) 52%,rgba(67,214,255,.08) 68%,transparent 100%);box-shadow:0 0 18px #43d6ff29,0 0 1px #ffffff38;animation:cyber-hud-scan 5.2s linear infinite;filter:blur(.4px)}.cyber-hud-scan-trail{left:0;right:0;height:28%;background:linear-gradient(180deg,transparent,rgba(67,214,255,.05) 48%,transparent 100%);animation:cyber-hud-scan-trail 5.2s linear infinite;animation-delay:-.18s;opacity:.38;filter:blur(.5px)}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-scan{background:linear-gradient(180deg,transparent 0%,rgba(67,214,255,.03) 35%,rgba(67,214,255,.18) 50%,rgba(255,255,255,.08) 52%,rgba(67,214,255,.06) 68%,transparent 100%);box-shadow:0 0 14px #43d6ff1f,0 0 1px #ffffff29;opacity:.42}.scene-bg>.cyber-hud-effect .cyber-hud-scan{background:linear-gradient(180deg,transparent 0%,rgba(67,214,255,.06) 35%,rgba(67,214,255,.34) 50%,rgba(255,255,255,.14) 52%,rgba(67,214,255,.12) 68%,transparent 100%);box-shadow:0 0 24px #43d6ff3d,0 0 2px #ffffff47;opacity:.82}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-scan-trail{opacity:.34}.scene-bg>.cyber-hud-effect .cyber-hud-scan-trail{opacity:.62}.cyber-hud-interference{opacity:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px),linear-gradient(90deg,#ff4f8314,#43d6ff14);mix-blend-mode:overlay}.cyber-hud-glitch{opacity:0;background:transparent}.cyber-hud-data{inset:auto 12px 10px;display:flex;flex-wrap:wrap;gap:6px 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:#43d6ffb8;text-shadow:0 0 8px rgba(67,214,255,.45)}.cyber-hud-data span:nth-child(2){color:#ff4f83b8}.cyber-hud-data span:nth-child(3){opacity:.55}.scene-cyber-hud>.cyber-hud-effect .cyber-hud-data{display:flex;opacity:.34;font-size:.58rem;text-shadow:0 0 6px rgba(67,214,255,.28)}.scene-bg>.cyber-hud-effect .cyber-hud-data{display:flex;opacity:.62;font-size:.62rem;text-shadow:0 0 10px rgba(67,214,255,.55)}.cyber-hud-effect.is-interference .cyber-hud-interference{opacity:.42;animation:cyber-hud-flicker .16s steps(2) 2}.cyber-hud-effect.is-glitching{animation:cyber-hud-glitch-shift .12s steps(2) 2}.cyber-hud-effect.is-glitching .cyber-hud-glitch{opacity:.45;background:linear-gradient(90deg,rgba(255,79,131,.14) 0 32%,transparent 32% 66%,rgba(67,214,255,.16) 66% 100%);clip-path:inset(0 0 0 0);mix-blend-mode:screen}.cyber-hud-effect.is-glitch-hard{animation:cyber-hud-glitch-shift .08s steps(3) 3}.cyber-hud-effect.is-glitch-hard .cyber-hud-frame,.cyber-hud-effect.is-glitch-hard .cyber-hud-grid{filter:hue-rotate(12deg) saturate(1.4)}.cyber-hud-effect.is-glitch-hard .cyber-hud-scan{box-shadow:0 0 18px #ff4f832e,0 0 6px #43d6ff38}.cyber-hud-effect.is-static .cyber-hud-scan,.cyber-hud-effect.is-static .cyber-hud-scan-trail,.cyber-hud-effect.is-static .cyber-hud-grid{animation:none}.cyber-hud-effect.is-static .cyber-hud-noise{opacity:.14}@keyframes cyber-hud-glitch-shift{0%{transform:translateZ(0);filter:none}25%{transform:translate3d(-3px,1px,0) skew(-.6deg);filter:hue-rotate(8deg)}50%{transform:translate3d(3px,-1px,0) skew(.5deg)}75%{transform:translate3d(-2px,0,0);clip-path:inset(0 0 0 0)}to{transform:translateZ(0);filter:none}}.custom-shop-card[data-item-id=effect_cyber_hud] .custom-shop-preview{overflow:hidden}.custom-shop-card[data-item-id=effect_cyber_hud] .custom-shop-preview img{filter:saturate(1.08) contrast(1.05)}[data-theme=light] .scene-bg{opacity:.2}[data-theme=light] .scene-bg:after{background:linear-gradient(180deg,#f8f7f2a8,#f8f7f2f0),repeating-linear-gradient(135deg,rgba(0,0,0,.035) 0 1px,transparent 1px 17px)}:root[data-low-power="1"] .scene-bg{opacity:.28;filter:none;transform:none}:root[data-low-power="1"] .scene-bg:after{background:linear-gradient(180deg,#03030657,#030306d6),repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 1px,transparent 1px 20px)}:root[data-low-power="1"] .scene-effects,:root[data-low-power="1"] .scene-effects:before,:root[data-low-power="1"] .scene-effects:after,:root[data-low-power="1"] .scene-effects span{display:none;animation:none}:root[data-low-power="1"] .app-header,:root[data-low-power="1"] .home-eva-vn,:root[data-low-power="1"] .jlpt-eva-open-btn{backdrop-filter:none}:root[data-low-power="1"] .page,:root[data-low-power="1"] .icon-btn,:root[data-low-power="1"] .home-eva-avatar img,:root[data-low-power="1"] .jlpt-eva-open-btn{animation:none;transition:none}.app-header{position:sticky;top:0;z-index:22;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 12px;min-height:64px;margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));padding:calc(env(safe-area-inset-top) + 10px) var(--shell-gutter) 10px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--bg),transparent 8%),color-mix(in srgb,var(--bg-strong),transparent 12%)),color-mix(in srgb,var(--bg),transparent 9%);backdrop-filter:blur(20px)}.brand-mark{display:inline-flex;align-items:center;width:min(42vw,178px);height:42px;padding:0;border:0;background:transparent;cursor:pointer}.brand-mark img{display:block;width:100%;max-height:42px;object-fit:contain;object-position:left center;filter:var(--logo-filter)}.header-social-toggle{flex:0 0 auto}.header-notification-toggle{position:relative;flex:0 0 auto}.header-notification-toggle.has-prompt{border-color:color-mix(in srgb,var(--accent-2),transparent 28%)}.header-notification-toggle.is-active{border-color:color-mix(in srgb,var(--accent),transparent 12%);background:var(--control-accent-surface-strong);color:var(--text)}.header-notification-toggle.has-prompt:after{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 10px color-mix(in srgb,var(--accent-2),transparent 35%);content:""}.header-social-actions{display:none;gap:7px;flex:0 0 auto}.app-header.is-social-open .header-social-actions{display:flex}.header-social-toggle.is-active{border-color:var(--line-strong)}.header-actions{display:flex;gap:7px;flex:0 0 auto;margin-left:auto}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 10px 22px var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.icon-btn svg{width:18px;height:18px;display:block}.icon-btn,.social-link,.nav-btn>span,.nav-popover-item>span,.lesson-glyph,.achievement-icon,.scroll-position-toggle-icon,.contact-modal-icon,.reward-achievement-icon{color:var(--icon-tone)}[data-theme=light] :is(.icon-btn svg,.social-link svg,.btn-icon svg,.contact-modal-icon svg){filter:var(--icon-boost)}.icon-btn:hover{transform:translateY(-1px);border-color:var(--line-strong)}.icon-btn.is-muted{color:var(--muted)}.app-main{width:calc(100% - var(--sidebar-width));min-height:calc(100svh - var(--topbar-height));margin-left:var(--sidebar-width);padding:14px var(--shell-gutter) calc(var(--mobile-nav-height) + 18px + env(safe-area-inset-bottom))}.app-shell[data-booting=true] :is(button,a,input,select,textarea){pointer-events:none;cursor:wait}.app-shell[data-booting=true] :is(.btn,.icon-btn,.nav-btn){opacity:.72}.boot-screen{display:grid;align-items:start;min-height:min(76svh,760px);padding-top:clamp(22px,5svh,64px)}.boot-panel{position:relative;width:min(100%,560px);display:grid;gap:14px;padding:clamp(20px,4vw,34px);border:1px solid color-mix(in srgb,var(--accent),transparent 48%);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface),transparent 4%),color-mix(in srgb,var(--surface-2),transparent 12%));box-shadow:0 22px 64px color-mix(in srgb,var(--shadow),transparent 8%);backdrop-filter:blur(16px);overflow:hidden}.boot-panel-brand{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.boot-brand-logo{width:min(210px,42vw);max-width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.32))}.boot-panel .hero-title,.boot-panel .hero-subtitle{margin:0}.boot-panel .hero-actions{display:flex;flex-wrap:wrap;gap:10px;pointer-events:none}.boot-panel .hero-actions .btn{min-width:0}.boot-status{color:var(--muted);font-weight:800}.page{animation:page-in .28s ease both}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-grid{display:grid;gap:14px}.hero-panel{position:relative;display:flex;flex-direction:column;gap:12px;min-height:390px;padding:18px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(155deg,rgba(255,56,92,.21),transparent 38%),linear-gradient(25deg,rgba(57,217,138,.16),transparent 54%),var(--surface);box-shadow:0 24px 60px var(--shadow)}.hero-panel>.eyebrow,.hero-panel>.hero-title,.hero-panel>.hero-subtitle,.hero-panel>.hero-actions,.hero-panel>.home-eva-vn{position:relative;z-index:4}.hero-panel>.home-eva-vn{margin-top:auto}.hero-panel:before{content:"";position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--accent),transparent 58%);clip-path:polygon(0 0,82% 0,100% 18%,100% 100%,16% 100%,0 84%);pointer-events:none}.eyebrow{margin:0 0 8px;color:var(--accent-2);font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.hero-title{max-width:10ch;margin:0;font-family:var(--kanji-font);font-size:clamp(3.1rem,22vw,7rem);line-height:.88;letter-spacing:0;text-transform:uppercase;text-shadow:5px 5px 0 color-mix(in srgb,var(--accent),transparent 8%)}.hero-subtitle{max-width:34ch;margin:14px 0 0;color:var(--muted)}.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.hero-actions{margin-top:18px}.home-eva-vn{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(220px,.92fr);gap:14px;align-items:end;padding:14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent-2),transparent 44%);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 86%),transparent 44%),linear-gradient(315deg,color-mix(in srgb,var(--accent-3),transparent 90%),transparent 60%),color-mix(in srgb,var(--surface),transparent 8%);box-shadow:0 18px 42px var(--shadow);backdrop-filter:blur(14px)}.home-eva-copy{display:grid;gap:8px;min-width:0}.home-eva-meta{display:flex;gap:8px;align-items:center;justify-content:space-between;min-width:0}.home-eva-meta strong{color:var(--accent-2);font-size:1.02rem}.home-eva-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-height:42px}.home-eva-actions .btn{width:42px;min-width:42px;padding:0}.home-eva-avatar{display:grid;place-items:end;align-self:end;justify-self:end;width:100%;padding:0;border:0;background:transparent;cursor:pointer}.home-eva-avatar img{display:block;width:min(100%,360px);max-height:340px;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 22px 26px rgba(0,0,0,.66));user-select:none;-webkit-user-drag:none}.home-eva-avatar:hover img{filter:drop-shadow(0 24px 28px rgba(0,0,0,.7)) brightness(1.04)}.home-eva-avatar:focus-visible{outline:2px solid var(--accent-2);outline-offset:6px;border-radius:8px}.home-eva-vn .eva-dialogue-text{margin:0;max-width:58ch;color:var(--text);font-size:clamp(.98rem,2.2vw,1.15rem);font-weight:800;line-height:1.45;cursor:pointer}.home-eva-question{margin-top:2px}.home-eva-question .btn{min-height:50px}.n5-panel-head{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px}.n5-panel-head>div{min-width:0}.jlpt-eva-tab{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:4px 12px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 28%);border-radius:999px;background:color-mix(in srgb,var(--accent-2),transparent 90%);color:var(--accent-2);font-size:.68rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}.jlpt-eva-tab:hover{border-color:color-mix(in srgb,var(--accent-2),transparent 8%);background:color-mix(in srgb,var(--accent-2),transparent 82%)}.jlpt-eva-tab.is-active{border-color:color-mix(in srgb,var(--accent),transparent 18%);background:color-mix(in srgb,var(--accent),transparent 84%);color:var(--text)}.jlpt-eva-tab-inline{min-height:26px;padding:2px 8px;font-size:.58rem;letter-spacing:.12em}.n5-lesson-tile,.n1-lesson-tile{position:relative}.jlpt-eva-vn{margin-top:18px}.jlpt-eva-open-btn{position:fixed;z-index:80;left:14px;bottom:calc(92px + env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 32%);border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 82%),transparent 42%),color-mix(in srgb,var(--surface-2),transparent 2%);box-shadow:0 14px 32px var(--shadow);color:var(--text);font-weight:900;letter-spacing:.04em;cursor:pointer;backdrop-filter:blur(18px);animation:jlpt-eva-dock-in .28s cubic-bezier(.22,1,.36,1) both}.jlpt-eva-open-btn:hover{border-color:color-mix(in srgb,var(--accent-2),transparent 12%);transform:translateY(-1px)}.jlpt-eva-open-btn-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent-2),transparent 84%);color:var(--accent-2);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}.jlpt-eva-open-btn-level{font-size:.78rem;color:var(--muted)}.jlpt-eva-dock{position:fixed;z-index:35;right:10px;left:10px;bottom:calc(86px + env(safe-area-inset-bottom));display:grid;gap:6px;width:min(calc(100% - 20px),720px);margin:0 auto;pointer-events:none}.jlpt-eva-dock>*{pointer-events:auto}.jlpt-eva-dock-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.jlpt-eva-dock-badge{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 35%);border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 88%);box-shadow:0 0 18px color-mix(in srgb,var(--accent-2),transparent 78%);color:var(--accent-2);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.jlpt-eva-room-link{min-height:32px;padding:6px 10px;font-size:.72rem}.jlpt-eva-dock .jlpt-eva-vn,.jlpt-eva-dock .home-eva-vn{margin-top:0;border-radius:12px;border-color:color-mix(in srgb,var(--accent-2),transparent 28%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent),transparent 55%),0 22px 46px var(--shadow),0 0 36px color-mix(in srgb,var(--accent-2),transparent 84%);animation:jlpt-eva-dock-in .34s cubic-bezier(.22,1,.36,1) both;overflow:visible}@keyframes jlpt-eva-dock-in{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes jlpt-eva-avatar-in{0%{opacity:0;transform:scale(.82) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.jlpt-eva-dock.is-collapsed .jlpt-eva-vn{padding:10px 12px 8px}.jlpt-eva-dock.is-expanded .jlpt-eva-vn-expanded{grid-template-columns:minmax(0,1fr) clamp(188px,34vw,268px);gap:10px 16px;align-items:end;max-height:min(52svh,430px);overflow:auto;padding:14px 12px 10px 14px}.jlpt-eva-dock .home-eva-copy,.jlpt-eva-dock .jlpt-eva-collapsed-copy,.jlpt-eva-dock .jlpt-eva-question,.jlpt-eva-dock .jlpt-eva-reaction{position:relative;z-index:2;min-width:0}.jlpt-eva-dock .home-eva-avatar,.jlpt-eva-dock .jlpt-eva-avatar{position:relative;z-index:1;align-self:end;justify-self:end;width:100%;max-width:268px;overflow:visible}.jlpt-eva-dock .home-eva-avatar img,.jlpt-eva-dock .jlpt-eva-avatar img{display:block;width:100%;max-width:268px;max-height:min(44svh,286px);object-fit:contain;object-position:right bottom;filter:drop-shadow(0 22px 28px rgba(0,0,0,.62));transform-origin:right bottom;animation:jlpt-eva-avatar-in .42s cubic-bezier(.22,1,.36,1) .08s both}.jlpt-eva-dock .jlpt-eva-collapsed-avatar{display:block;width:100%;max-width:168px;max-height:220px;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 20px 26px rgba(0,0,0,.58));transform-origin:left bottom;animation:jlpt-eva-avatar-in .42s cubic-bezier(.22,1,.36,1) .06s both}.jlpt-eva-open-pill{border-color:color-mix(in srgb,var(--accent-2),transparent 35%);background:color-mix(in srgb,var(--accent-2),transparent 88%);color:var(--accent-2);font-weight:900}.jlpt-eva-dock.is-collapsed .jlpt-eva-collapsed{grid-template-columns:clamp(124px,24vw,176px) minmax(0,1fr) auto;align-items:end;gap:10px 14px;min-height:132px;padding:6px 8px 4px;border-radius:10px}body.jlpt-eva-dock-expanded .app-main{padding-bottom:calc(410px + env(safe-area-inset-bottom))}body.jlpt-eva-dock-expanded .scroll-position-toggle{bottom:calc(410px + env(safe-area-inset-bottom))}.jlpt-eva-vn.is-collapsed{align-items:stretch}.jlpt-eva-collapsed{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:100px;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.jlpt-eva-collapsed-avatar{display:block;width:min(18vw,78px);max-height:112px;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 18px 22px rgba(0,0,0,.55))}.jlpt-eva-collapsed-copy{display:grid;gap:5px;min-width:0}.jlpt-eva-collapsed-copy strong,.jlpt-eva-collapsed-copy small,.jlpt-eva-question strong,.jlpt-eva-reaction{min-width:0;overflow-wrap:anywhere}.jlpt-eva-collapsed-copy strong{color:var(--accent-2);line-height:1.2}.jlpt-eva-collapsed-copy small{color:var(--muted);font-size:.9rem}.jlpt-eva-collapsed .pill{justify-self:start}.jlpt-eva-meta{flex-wrap:wrap;justify-content:flex-start}.jlpt-eva-toggle{margin-left:auto;width:40px;min-width:40px;padding:0}.jlpt-eva-question{gap:10px}.jlpt-eva-question strong{display:block;color:var(--text);font-size:1rem;line-height:1.45}.jlpt-eva-question .btn{min-height:48px;align-items:flex-start;justify-content:flex-start;padding:11px 12px;text-align:left;white-space:normal}.jlpt-eva-reaction{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 5%)}.success-pill{color:var(--accent-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 13px;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface);color:var(--text);font-weight:800;text-decoration:none;cursor:pointer;box-shadow:var(--control-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px);border-color:var(--control-border-hover);background:var(--control-surface-hover)}.btn.primary{border-color:color-mix(in srgb,var(--accent),transparent 4%);background:linear-gradient(135deg,color-mix(in srgb,var(--accent),white 2%),#9d0a2d);color:#fff;box-shadow:0 14px 28px color-mix(in srgb,var(--accent),transparent 58%)}.btn.success{border-color:color-mix(in srgb,var(--accent-3),transparent 12%);background:color-mix(in srgb,var(--accent-3),transparent 72%)}.btn.warning{border-color:color-mix(in srgb,var(--accent-2),transparent 8%);background:var(--control-accent-surface)}.btn.danger{border-color:color-mix(in srgb,var(--danger),transparent 10%);background:color-mix(in srgb,var(--danger),transparent 72%)}.btn.ghost{border-color:var(--control-soft-border);background:var(--control-soft-surface)}.btn small{display:block;color:color-mix(in srgb,currentColor,transparent 28%);font-size:.68rem;font-weight:800;line-height:1.1}.settings-list{display:grid;gap:10px;margin:10px 0 12px}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.settings-row span{display:grid;gap:3px;min-width:0}.settings-row small{color:var(--muted);line-height:1.35}.settings-row-range{grid-template-columns:minmax(0,1fr) minmax(110px,160px) auto}.social-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.social-link svg{width:18px;height:18px}.ux-volume-slider{width:100%;accent-color:var(--accent)}.volume-value{min-width:42px;text-align:right;color:var(--accent-2)}.hero-mascot{position:absolute;z-index:25;right:-18px;bottom:-8px;width:min(58vw,300px);height:330px;pointer-events:auto;cursor:pointer}.hero-mascot img{position:absolute;right:0;bottom:0;width:min(48vw,245px);max-height:330px;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 22px 26px rgba(0,0,0,.66));z-index:2}.speech{position:absolute;right:134px;bottom:118px;width:min(48vw,205px);padding:12px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);box-shadow:0 16px 34px var(--shadow);color:var(--text);font-weight:700;pointer-events:none;z-index:5}.speech.speech-dismissible{padding:12px 35px 12px 13px;overflow:hidden}.speech-text{display:block}.speech-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--surface-3),transparent 8%);color:var(--text);display:grid;place-items:center;font-size:14px;line-height:1;cursor:pointer;pointer-events:auto;z-index:1}.speech-close:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent),transparent 76%)}.speech:after{content:"";position:absolute;right:-8px;bottom:18px;width:14px;height:14px;background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(-45deg)}.hero-mascot .speech{right:134px;bottom:118px;z-index:6}.hero-decoration{position:absolute;right:clamp(12px,4vw,36px);bottom:clamp(8px,2vw,18px);z-index:1;width:clamp(46px,10vw,92px);pointer-events:none;opacity:.7}.hero-decoration img{display:block;width:100%;height:auto;object-fit:contain;object-position:bottom center;mix-blend-mode:lighten;filter:drop-shadow(0 16px 18px rgba(0,0,0,.52))}.hero-decoration.deco-deco_bookshelf,.hero-decoration.deco-deco_kanji_board,.hero-decoration.deco-deco_scroll,.hero-decoration.deco-deco_moon_frame,.hero-decoration.deco-deco_golden_accent{right:clamp(16px,5vw,48px);bottom:clamp(16px,4vw,44px);width:clamp(54px,11vw,108px)}.hero-decoration.deco-deco_lantern{right:clamp(92px,17vw,178px);bottom:clamp(110px,19vw,160px);width:clamp(38px,7vw,74px)}.hero-decoration.deco-deco_tea_table{right:clamp(10px,4vw,40px);bottom:0;width:clamp(66px,13vw,126px)}.hero-decoration.deco-deco_plant{right:clamp(20px,5vw,56px);bottom:clamp(4px,1.2vw,16px);width:clamp(42px,8vw,82px);opacity:.84}.reward-mascot{position:relative;display:grid;place-items:center;min-height:220px}.reward-mascot img{max-width:min(72vw,280px);max-height:min(42svh,300px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 20px 26px var(--shadow));transform-origin:center bottom;animation:jlpt-eva-avatar-in .42s cubic-bezier(.22,1,.36,1) .1s both}.reward-mascot .speech{position:relative;right:auto;bottom:auto;width:min(100%,240px);margin-top:-18px}.mascot-eva.mood-happy img,.mascot-leya.mood-happy img,.mascot-leya.mood-proud img{filter:drop-shadow(0 18px 22px var(--shadow)) saturate(1.18) brightness(1.08)}.mascot-eva.mood-sad img{filter:drop-shadow(0 18px 22px var(--shadow)) saturate(.78) brightness(.92)}.mascot-eva.mood-thinking img,.mascot-leya.mood-focus img{filter:drop-shadow(0 18px 22px var(--shadow)) hue-rotate(12deg) saturate(1.05)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-height:110px;padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.metric span,.label,.pill{color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.metric strong{display:block;margin-top:8px;font-size:clamp(1.65rem,9vw,2.45rem);line-height:1}.meter{display:block;height:8px;margin-top:12px;overflow:hidden;border-radius:8px;background:color-mix(in srgb,var(--text),transparent 88%)}.meter i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));transition:width .28s ease}.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:20px 0 12px}.section-head h1,.section-head h2{margin:0;font-size:clamp(1.65rem,8vw,3rem);line-height:1;letter-spacing:0}.section-head p{margin:6px 0 0;color:var(--muted)}.lesson-grid,.dictionary-grid,.stats-grid,.writing-layout{display:grid;gap:10px}.lesson-tile,.kanji-tile,.tool-panel,.chart-panel,.empty-state,.study-card,.sentence-practice,.daily-lesson-card,.writing-card,.audio-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.daily-lesson-card{display:grid;gap:12px;align-items:center;margin:12px 0 4px;padding:14px}.eva-room-entry{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;margin:12px 0 4px;padding:12px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent-2),transparent 48%);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),transparent 84%),transparent 48%),var(--surface);box-shadow:0 18px 42px var(--shadow)}.eva-room-entry:after{position:absolute;inset:auto -18px -34px auto;width:170px;height:170px;border-radius:999px;background:radial-gradient(circle,color-mix(in srgb,var(--accent-2),transparent 58%),transparent 68%);content:"";pointer-events:none}.eva-room-entry-bg{position:relative;z-index:1;width:96px;aspect-ratio:9 / 14;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.eva-room-entry-bg img{width:100%;height:100%;object-fit:cover}.eva-room-entry>div:not(.eva-room-entry-bg),.eva-room-entry .btn{position:relative;z-index:1}.eva-room-entry h2,.eva-room-entry p{margin:4px 0}.sentence-practice{margin-top:14px;padding:14px;overflow:hidden}.sentence-practice.is-success{border-color:color-mix(in srgb,var(--success),transparent 28%);background:linear-gradient(135deg,color-mix(in srgb,var(--success),transparent 84%),transparent 50%),var(--surface)}.sentence-practice.is-error{border-color:color-mix(in srgb,var(--danger),transparent 30%);background:linear-gradient(135deg,color-mix(in srgb,var(--danger),transparent 86%),transparent 50%),var(--surface)}.sentence-head{margin-top:0}.sentence-builder{margin:10px 0 12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 38%)}.sentence-builder summary{display:flex;gap:8px;align-items:center;justify-content:space-between;color:var(--text);font-weight:900;cursor:pointer}.sentence-builder summary small{color:var(--accent-2);font-size:.78rem}.sentence-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.sentence-builder-wide{grid-column:1 / -1}.sentence-builder textarea{min-height:72px;resize:vertical}.sentence-builder-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.sentence-builder-message{color:var(--muted);font-weight:800}.sentence-builder-message.is-success{color:var(--success)}.sentence-builder-message.is-error{color:var(--danger)}.sentence-custom-empty{margin:10px 0 0;color:var(--muted);font-weight:800}.sentence-custom-list{display:grid;gap:8px;max-height:320px;margin-top:12px;overflow:auto}.sentence-custom-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-2),transparent 22%)}.sentence-custom-copy{display:grid;gap:5px;min-width:0}.sentence-custom-copy strong,.sentence-custom-copy small{overflow-wrap:anywhere}.sentence-custom-copy small{color:var(--muted);font-weight:800}.sentence-custom-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.sentence-card{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(45deg,transparent 0 48%,color-mix(in srgb,var(--accent),transparent 82%) 48% 52%,transparent 52%),color-mix(in srgb,var(--text),transparent 95%)}.sentence-line{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-family:var(--kanji-font);font-size:clamp(1.45rem,7vw,2.5rem);line-height:1.35}.sentence-blank{display:inline-flex;flex-wrap:wrap;gap:5px;min-height:50px;padding:5px;border:1px dashed color-mix(in srgb,var(--accent-2),transparent 24%);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 91%);vertical-align:middle}.sentence-slot{display:grid;place-items:center;width:clamp(42px,11vw,54px);height:clamp(42px,11vw,54px);border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 30%);color:transparent}.sentence-slot.is-filled{color:var(--text);background:var(--surface-2);box-shadow:inset 0 -3px color-mix(in srgb,var(--accent),transparent 20%)}.sentence-slot.is-wrong{border-color:color-mix(in srgb,var(--danger),white 8%);background:color-mix(in srgb,var(--danger),transparent 78%)}.sentence-reading,.sentence-translation{margin:0;color:var(--muted);font-weight:800}.sentence-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.sentence-tile{display:grid;place-items:center;min-height:92px;padding:10px;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 30% 18%,color-mix(in srgb,var(--accent-2),transparent 70%),transparent 34%),color-mix(in srgb,var(--surface-2),var(--accent) 7%);color:var(--text);cursor:pointer;transition:transform .18s ease,border-color .18s ease,opacity .18s ease}.sentence-tile span{color:var(--accent-2);font-weight:900}.sentence-tile strong{font-family:var(--kanji-font);font-size:clamp(2.2rem,13vw,4.1rem);line-height:1;text-shadow:3px 3px 0 color-mix(in srgb,var(--accent),transparent 24%)}.sentence-tile:not(:disabled):hover{transform:translateY(-2px);border-color:var(--accent-2)}.sentence-tile.is-used{opacity:.46}.sentence-tile.is-wrong{border-color:color-mix(in srgb,var(--danger),white 10%);background:color-mix(in srgb,var(--danger),transparent 78%);opacity:1}.sentence-feedback{display:grid;gap:4px;min-height:44px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 95%);color:var(--muted);font-weight:800}.sentence-feedback small{color:var(--accent-2)}.reading-review-card{display:grid;gap:12px}.reading-translation-wrap{display:grid;gap:8px;width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-4),transparent 88%),transparent 44%),color-mix(in srgb,var(--surface-2),transparent 4%)}.reading-translation-wrap>summary{list-style:none}.reading-translation-wrap>summary::-webkit-details-marker{display:none}.reading-translation-toggle{justify-self:start}.reading-translation-panel{display:grid;gap:8px;min-width:0}.reading-translation-row{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 96%)}.reading-translation-row span{color:var(--muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.reading-translation-row strong{color:var(--text);font-weight:800;overflow-wrap:anywhere}.reading-passage-block,.reading-question-block,.reading-review-card .sentence-card,.reading-review-card .sentence-tiles{margin-top:0}.reading-review-card .sentence-feedback{margin-top:8px}.sentence-actions{margin-top:10px}.daily-lesson-card h2{margin:6px 0}.lesson-tile{display:grid;grid-template-columns:74px 1fr;gap:12px;min-height:136px;padding:13px;text-align:left;cursor:pointer}.lesson-tile.is-locked{opacity:.62}.lesson-glyph{display:grid;place-items:center;width:74px;min-height:108px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent),transparent 84%);font-family:var(--kanji-font);font-size:3.2rem}.lesson-tile h3,.kanji-tile h3,.tool-panel h3,.chart-panel h3,.study-card h2{margin:0}.lesson-tile p,.kanji-tile p,.tool-panel p,.empty-state p{margin:7px 0;color:var(--muted)}.lesson-meta,.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pill{display:inline-flex;align-items:center;min-height:24px;padding:4px 7px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 94%)}.pill.new{color:var(--accent-4)}.pill.learning{color:var(--accent-2)}.pill.review{color:var(--accent-3)}.pill.mastered{color:#ff91d8}.danger-pill{color:var(--danger)}.goal-strip{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 6px}.lesson-tabs{margin-bottom:12px}.lesson-tabs .btn{position:relative;min-width:54px}.lesson-status-dot{position:absolute;right:7px;top:7px;width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 2px color-mix(in srgb,var(--bg),transparent 25%)}.lesson-tabs .btn.is-completed .lesson-status-dot{background:var(--accent-3);box-shadow:0 0 0 2px color-mix(in srgb,var(--bg),transparent 25%),0 0 18px color-mix(in srgb,var(--accent-3),transparent 35%)}.lesson-tabs .btn.is-started .lesson-status-dot{background:var(--accent-2);box-shadow:0 0 0 2px color-mix(in srgb,var(--bg),transparent 25%),0 0 18px color-mix(in srgb,var(--accent-2),transparent 35%)}.lesson-tile.is-completed,.lesson-status-pill.is-completed{border-color:color-mix(in srgb,var(--accent-3),transparent 20%)}.lesson-tile.is-completed{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-3),transparent 84%),transparent 42%),var(--surface)}:root[data-custom-effect=effect_lesson_shine] .lesson-tile.is-completed,:root[data-custom-effect=effect_lesson_shine] .n5-lesson-tile.completed{position:relative;overflow:hidden}:root[data-custom-effect=effect_lesson_shine] .lesson-tile.is-completed:after,:root[data-custom-effect=effect_lesson_shine] .n5-lesson-tile.completed:after{content:"";position:absolute;inset:-18% -42%;background:linear-gradient(118deg,transparent 40%,rgba(255,255,255,.08) 46%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.08) 54%,transparent 60%);mix-blend-mode:screen;opacity:.72;pointer-events:none;animation:lesson-shine-sweep 8.5s ease-in-out infinite}.lesson-tile.is-started,.lesson-status-pill.is-started{border-color:color-mix(in srgb,var(--accent-2),transparent 18%)}.lesson-tile.is-started{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),transparent 84%),transparent 42%),var(--surface)}.lesson-status-pill.is-completed{color:var(--accent-3)}.lesson-status-pill.is-started{color:var(--accent-2)}.is-disabled{opacity:.48}.study-layout{display:grid;gap:12px}.study-card{min-height:470px;padding:16px;overflow:hidden;background:linear-gradient(145deg,rgba(255,56,92,.14),transparent 36%),var(--surface)}.study-topline{display:flex;justify-content:space-between;gap:12px;align-items:center}.compact-tags{margin-top:0}.audio-trigger{display:inline-grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:50%;background:radial-gradient(circle at 32% 24%,rgba(255,225,90,.34),transparent 40%),color-mix(in srgb,var(--surface-2),var(--accent) 12%);color:var(--text);box-shadow:0 12px 28px var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.audio-trigger:hover{transform:translateY(-1px);border-color:var(--accent-2);background:radial-gradient(circle at 32% 24%,rgba(255,225,90,.48),transparent 42%),color-mix(in srgb,var(--surface-2),var(--accent-2) 18%)}.kanji-focus{display:grid;place-items:center;min-height:184px;margin:16px 0;border:1px solid var(--line);border-radius:8px;background:linear-gradient(45deg,transparent 0 48%,color-mix(in srgb,var(--accent),transparent 72%) 48% 52%,transparent 52%),color-mix(in srgb,var(--text),transparent 94%);font-family:var(--kanji-font);font-size:clamp(6rem,34vw,12rem);line-height:1;text-shadow:5px 5px 0 color-mix(in srgb,var(--accent),transparent 18%)}.reading-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.reading-box,.answer-section{padding:11px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 94%)}.reading-box strong,.answer-section strong{display:block;margin-top:3px}.reading-box-head,.reading-def-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.reading-tts-button{display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--surface-2),var(--accent) 10%);color:var(--text);cursor:pointer;font-size:.82rem;line-height:1}.reading-tts-button:hover{border-color:var(--accent-2);background:color-mix(in srgb,var(--surface-2),var(--accent-2) 16%)}.reading-box small{display:block;margin-top:5px;color:var(--muted);font-weight:800}.reading-split{align-items:stretch}.reading-tts-list{display:flex;flex-wrap:wrap;gap:8px}.reading-tts-choice{min-height:38px;gap:6px}.reading-tts-choice span{color:var(--muted);font-size:.74rem;font-weight:900}.reading-check{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-4),transparent 90%),transparent 46%),color-mix(in srgb,var(--text),transparent 95%)}.reading-check-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:7px}.reading-check input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),var(--surface-2) 42%);color:var(--text);padding:10px 12px}.reading-check p{margin:8px 0 0;color:var(--muted);font-weight:800}.reading-check.is-correct{border-color:color-mix(in srgb,var(--success),white 10%);background:linear-gradient(135deg,color-mix(in srgb,var(--success),transparent 82%),transparent 52%),color-mix(in srgb,var(--text),transparent 95%)}.reading-check.is-correct p{color:var(--success)}.reading-check.is-wrong{border-color:color-mix(in srgb,var(--danger),white 8%);background:linear-gradient(135deg,color-mix(in srgb,var(--danger),transparent 82%),transparent 52%),color-mix(in srgb,var(--text),transparent 95%)}.reading-check.is-wrong p{color:color-mix(in srgb,var(--danger),white 12%)}.answer-section{animation:answer-in .2s ease both}@keyframes answer-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.example-list,.stroke-list,.app-list{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.example-list li,.stroke-list li{padding:9px;border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 52%)}.example-list b{font-family:var(--kanji-font);font-size:1.25rem}.example-item{display:grid;gap:5px}.example-main{display:flex;flex-wrap:wrap;gap:6px 9px;align-items:baseline}.example-main span{color:var(--muted);font-weight:800}.example-romaji:before{content:"·";margin-right:9px;color:color-mix(in srgb,var(--muted),transparent 28%)}.example-translation{display:block;color:var(--text);font-size:.86rem;font-weight:800;opacity:.9}.app-list{display:flex;flex-wrap:wrap}.app-list li{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent-4),transparent 88%);font-weight:800}.rating-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.compact-actions{margin-top:12px}.srs-binary-grid .btn{min-height:74px}.rating-grid .btn{min-height:66px;flex-direction:column;align-items:flex-start;text-align:left}.jlpt-switcher{margin:0 0 12px}.jlpt-lesson-hero,.jlpt-section-card{padding:16px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 44%),var(--surface);box-shadow:0 18px 42px var(--shadow)}.jlpt-lesson-hero{display:grid;gap:14px;margin-bottom:12px}.jlpt-lesson-hero h2{margin:8px 0 6px;font-size:clamp(1.5rem,6vw,2.8rem)}.jlpt-section-grid{display:grid;gap:12px}.jlpt-section-card h3{margin-bottom:8px}.jlpt-section-card ul{display:grid;gap:7px;margin-top:10px;padding-left:18px;color:var(--muted)}.jlpt-practice-grid{display:grid;gap:12px;margin-bottom:12px}.jlpt-filter-bar,.learn-level-strip,.textbook-meta,.textbook-actions,.learn-level-lock-meta{display:flex;flex-wrap:wrap;gap:8px}.jlpt-filter-bar{margin:10px 0 12px}.jlpt-filter-chip{min-width:88px;min-height:56px;align-items:flex-start;justify-content:space-between;flex-direction:column;padding:10px 12px}.jlpt-filter-chip small{color:var(--accent-2);font-size:.78rem;font-weight:900}.learn-level-strip{align-items:center;margin-bottom:12px}.learn-textbook-link{margin-left:auto}.learn-level-panel,.lesson-locked-panel,.jlpt-textbook-hero,.textbook-card{border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 44%),var(--surface);box-shadow:0 18px 42px var(--shadow)}.textbook-card.is-locked{opacity:.94}.textbook-card.is-locked .textbook-cover{filter:saturate(.86) brightness(.78)}.textbook-lock-note{margin:-2px 0 0;color:var(--warning);font-size:.92rem;font-weight:700}.textbook-locked-panel{align-items:start}.textbook-locked-panel .jlpt-textbook-cover{border-radius:8px}.learn-level-panel{display:grid;gap:14px;margin-bottom:12px;padding:14px}.learn-level-cover,.textbook-cover-wrap{position:relative;overflow:hidden;border-radius:8px}.learn-level-cover{min-height:180px}.learn-level-cover img,.textbook-cover,.jlpt-textbook-cover{display:block;width:100%;height:100%;object-fit:cover}.learn-level-cover .pill,.textbook-level{position:absolute;top:12px;left:12px;z-index:1}.learn-level-copy,.textbook-body,.jlpt-textbook-body,.lesson-locked-panel{display:grid;gap:10px}.lesson-locked-panel,.jlpt-textbook-hero{padding:16px;margin-bottom:12px}.learn-level-lock-meta{align-items:center}.lesson-locked-panel h2,.textbook-body h2,.jlpt-textbook-body h2{margin:0}.jlpt-textbook-hero{display:grid;gap:14px;margin-bottom:12px;padding:14px}.jlpt-textbook-cover{min-height:220px;border-radius:8px}.textbook-grid{display:grid;gap:12px}.textbook-card{overflow:hidden}.textbook-cover-wrap{min-height:220px}.textbook-body{padding:14px}.textbook-actions{align-items:center}.jlpt-practice-card{padding:14px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 90%),transparent 46%),var(--surface);box-shadow:0 18px 42px var(--shadow)}.n5-course-page{display:grid;gap:12px;width:100%;max-width:100%;min-width:0;overflow-x:clip}.n5-course-head .actions,.n5-final-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.n5-hero,.n5-panel,.n5-lesson-summary,.n5-result-panel,.n5-lesson-tile,.n5-kanji-card,.n5-exercise-card{border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-4),transparent 90%),transparent 48%),color-mix(in srgb,var(--surface),transparent 5%);box-shadow:0 18px 42px var(--shadow)}.n5-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-height:260px;padding:18px}.n5-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,color-mix(in srgb,var(--accent),transparent 80%),transparent 54%),linear-gradient(40deg,color-mix(in srgb,var(--accent-3),transparent 86%),transparent 62%);pointer-events:none}.n5-hero-copy{position:relative;z-index:1;display:grid;align-content:center;gap:10px;max-width:720px}.n5-hero-copy h2{margin:0;font-size:2rem;line-height:1.08}.n5-hero-copy p{max-width:680px;color:var(--muted)}.n5-hero-mascot{position:relative;z-index:1;justify-self:end;align-self:end;width:min(18vw,104px);max-width:104px;max-height:176px}.n5-hero-mascot img{max-height:176px}.n5-hero-mascot .speech{right:calc(100% + 18px);bottom:18px;width:min(24vw,188px);font-size:.84rem}.n5-panel,.n5-lesson-summary,.n5-result-panel{display:grid;gap:12px;padding:14px}.n5-panel h2,.n5-lesson-summary h2,.n5-result-panel h2,.n5-kanji-card h3,.n5-exercise-card h3{margin:0}.n5-panel p,.n5-lesson-summary p,.n5-result-panel p,.n5-kanji-card p,.n5-exercise-card p{color:var(--muted)}.n5-lesson-grid,.n5-kanji-grid,.n5-exercise-list{display:grid;gap:10px;width:100%;min-width:0}.n5-lesson-grid{grid-template-columns:minmax(0,1fr);align-items:start;grid-auto-rows:auto}.jlpt-reading-panel{gap:14px}.jlpt-reading-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}.jlpt-reading-head>div{min-width:0}.jlpt-reading-grid{display:grid;gap:12px}.jlpt-reading-card{display:grid;gap:12px;min-width:0;padding:14px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 78%);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-4),transparent 88%),transparent 52%),color-mix(in srgb,var(--surface-2),transparent 4%);box-shadow:0 14px 30px var(--shadow)}.jlpt-reading-translation{margin-top:2px}.jlpt-reading-card-head{display:grid;gap:8px}.jlpt-reading-card h3{margin:0;font-size:1.14rem;line-height:1.35}.jlpt-reading-meta{margin:0;color:var(--muted)}.jlpt-reading-text{padding:14px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 4%);color:var(--text);white-space:pre-wrap;line-height:1.8}.jlpt-reading-questions{padding:12px 14px;border:1px dashed color-mix(in srgb,var(--accent-2),transparent 60%);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 2%)}.jlpt-reading-questions summary{cursor:pointer;font-weight:900;color:var(--text);list-style:none}.jlpt-reading-questions summary::-webkit-details-marker{display:none}.jlpt-reading-questions ol,.jlpt-reading-questions p{margin:10px 0 0;color:var(--muted)}.jlpt-reading-questions ol{padding-left:20px;display:grid;gap:8px}.n5-lesson-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;min-height:0;min-width:0;width:100%;padding:12px;color:var(--text);text-decoration:none;box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overflow:hidden}.n5-lesson-tile>*{min-width:0}.n5-lesson-tile>.pill{grid-column:1;grid-row:1;align-self:start;justify-self:start;max-width:100%}.n5-lesson-tile>.jlpt-eva-tab-inline{position:static;grid-column:2;grid-row:1;align-self:start;justify-self:end;flex-shrink:0}.n5-lesson-tile>h3{grid-column:1 / -1;grid-row:2}.n5-lesson-tile>p{grid-column:1 / -1;grid-row:3}.n5-lesson-tile>.n5-kanji-strip{grid-column:1 / -1;grid-row:4}.n5-lesson-tile>.achievement-progress{grid-column:1 / -1;grid-row:5;width:100%}.n5-lesson-tile>small{grid-column:1 / -1;grid-row:6;display:block;line-height:1.35}.n5-lesson-tile.started{border-color:color-mix(in srgb,var(--accent-2),transparent 35%);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 86%),transparent 52%),var(--surface)}.n5-lesson-tile.completed{border-color:color-mix(in srgb,var(--accent-3),transparent 30%);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-3),transparent 86%),transparent 52%),var(--surface)}:root[data-custom-effect=effect_lesson_shine] .n5-lesson-tile.completed:after{content:"";position:absolute;inset:-18% -42%;background:linear-gradient(118deg,transparent 40%,rgba(255,255,255,.08) 46%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.08) 54%,transparent 60%);mix-blend-mode:screen;opacity:.72;pointer-events:none;animation:lesson-shine-sweep 8.5s ease-in-out infinite}.n5-lesson-tile h3{margin:0;font-size:clamp(.92rem,3.4vw,1.08rem);line-height:1.35;overflow-wrap:break-word;word-break:break-word;hyphens:auto}.n5-lesson-tile p,.n5-lesson-tile small{color:var(--muted)}.n5-lesson-tile p{margin:0;font-size:clamp(.8rem,3vw,.88rem);line-height:1.45;overflow-wrap:break-word;word-break:break-word}.n5-lesson-tile small{font-size:clamp(.74rem,2.8vw,.8rem)}.n5-kanji-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%;min-width:0}.n5-kanji-strip b{display:grid;place-items:center;aspect-ratio:1;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--kanji-panel);font-family:var(--kanji-font);font-size:clamp(1.15rem,4.8vw,1.85rem);line-height:1}.n5-plan-row,.n5-input-row,.n5-option-grid{display:flex;flex-wrap:wrap;gap:8px}.n5-kanji-card,.n5-exercise-card{display:grid;gap:11px;padding:14px}.n5-exercise-list>.n5-exercise-card:nth-child(4n){border-color:color-mix(in srgb,var(--accent-2),transparent 26%);box-shadow:0 22px 54px color-mix(in srgb,var(--accent-2),transparent 88%);min-height:170px;padding:18px}.n5-kanji-card.is-difficult,.n5-exercise-card.is-wrong{border-color:color-mix(in srgb,var(--danger),transparent 35%)}.n5-exercise-card.is-missing{border-color:color-mix(in srgb,var(--warning),transparent 35%);box-shadow:0 0 0 1px color-mix(in srgb,var(--warning),transparent 55%)}.n5-exercise-card.is-correct{border-color:color-mix(in srgb,var(--accent-3),transparent 32%)}.n5-kanji-topline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.n5-big-kanji{display:grid;place-items:center;min-height:150px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(45deg,transparent 0 48%,color-mix(in srgb,var(--accent),transparent 74%) 48% 52%,transparent 52%),var(--kanji-panel-strong);font-family:var(--kanji-font);font-size:5rem;line-height:1}.n5-readings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.n5-readings div,.n5-card-sentence,.n5-sentence-list article,.n5-word-list p{border:1px solid var(--line);border-radius:8px;background:var(--kanji-panel)}.n5-readings div{padding:10px}.n5-readings dt{color:var(--muted);font-size:.78rem;font-weight:900}.n5-readings dd{margin:3px 0 0;overflow-wrap:anywhere;font-weight:900}.n5-word-list,.n5-sentence-list{display:grid;gap:8px}.n5-word-list p{display:grid;gap:3px;margin:0;padding:9px 10px}.n5-word-list b,.n5-card-sentence strong,.n5-sentence-list strong{font-family:var(--kanji-font);font-size:1.35rem}.n5-word-list span,.n5-card-sentence span,.n5-card-sentence small,.n5-sentence-list span,.n5-sentence-list small{color:var(--muted);overflow-wrap:anywhere}.n5-hint,.n5-feedback{margin:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 38%);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 90%)}.n5-card-sentence,.n5-sentence-list article{display:grid;gap:4px;padding:11px}.n5-input-row{align-items:stretch}.n5-input-row input{min-width:min(100%,180px);min-height:44px;flex:1 1 180px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg),transparent 36%);color:var(--text);font-family:var(--kanji-font);font-size:1.35rem}.n5-option-grid .btn{flex:1 1 170px;min-height:48px;justify-content:flex-start;text-align:left;white-space:normal}.n5-result-panel{border-color:color-mix(in srgb,var(--accent-2),transparent 42%);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 88%),transparent 54%),var(--surface)}.n5-result-panel.is-complete{border-color:color-mix(in srgb,var(--accent-3),transparent 28%)}.n5-final-actions{justify-content:flex-end;padding:4px 0 18px}.n4-course-page .n5-hero,.n4-course-page .n5-panel,.n4-course-page .n5-lesson-summary,.n4-course-page .n5-result-panel,.n4-course-page .n5-lesson-tile,.n4-course-page .n5-kanji-card,.n4-course-page .n5-exercise-card,.n4-grammar-card,.n4-reading-card{background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 91%),transparent 46%),linear-gradient(24deg,color-mix(in srgb,var(--accent-3),transparent 94%),transparent 64%),color-mix(in srgb,var(--surface),transparent 5%)}.n4-hero:before{background:linear-gradient(120deg,color-mix(in srgb,var(--accent-2),transparent 78%),transparent 54%),linear-gradient(40deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 62%)}.n4-bridge-grid,.n4-section-grid{display:grid;gap:10px}.n4-bridge-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.n4-section-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.n4-grammar-card,.n4-reading-card{display:grid;gap:11px;border:1px solid var(--line);border-radius:8px;padding:14px;box-shadow:0 18px 42px var(--shadow)}.n4-grammar-card h3,.n4-grammar-card h4,.n4-reading-card h3{margin:0}.n4-grammar-card p,.n4-reading-card p{color:var(--muted)}.n4-grammar-card code{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;border:1px solid color-mix(in srgb,var(--accent-2),transparent 42%);border-radius:8px;padding:7px 9px;background:color-mix(in srgb,var(--accent-2),transparent 90%);color:var(--text);font-weight:900}.n4-grammar-card.is-correct,.n4-reading-card.is-correct{border-color:color-mix(in srgb,var(--accent-3),transparent 30%)}.n4-grammar-card.is-wrong{border-color:color-mix(in srgb,var(--danger),transparent 34%)}.n4-kanji-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.n4-kanji-catalog .n5-big-kanji{min-height:124px;font-size:4rem}.n4-jp-text{font-family:var(--kanji-font);font-size:1.18rem;line-height:1.8}.n4-question-block{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}@media (max-width: 640px){.n5-course-page,.n4-course-page,.n3-course-page,.n2-course-page,.n1-course-page{max-width:100%;overflow-x:clip;width:100%}.n5-panel{padding:12px}.n5-lesson-grid{gap:8px}.n5-lesson-tile{padding:11px;gap:7px 8px}.n4-course-page{max-width:calc(100vw - 28px);overflow-x:clip;width:100%}.n4-course-page .section-head{align-items:stretch;flex-direction:column}.n4-course-page .section-head .actions,.n4-course-page .textbook-actions{width:100%}.n4-course-page .section-head .btn,.n4-course-page .textbook-actions .btn{flex:1 1 150px;min-width:0;white-space:normal}}.compact-head{margin-bottom:10px}.jlpt-app-grid,.kana-columns,.jlpt-focus-grid{display:grid;gap:9px;margin-top:10px}.jlpt-app-chip,.kana-chip,.jlpt-focus-item{border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 95%)}.jlpt-app-chip,.kana-chip{display:grid;gap:3px;padding:10px}.jlpt-app-chip span,.kana-chip small,.jlpt-focus-item small,.jlpt-focus-item p{color:var(--muted);font-weight:800}.kana-column{display:grid;gap:8px}.kana-chip b{font-size:1.35rem}.jlpt-focus-item{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center;padding:10px}.kanji-mini{display:grid;place-items:center;min-height:72px;border-radius:8px;background:linear-gradient(45deg,transparent 0 48%,color-mix(in srgb,var(--accent),transparent 68%) 48% 52%,transparent 52%),color-mix(in srgb,var(--text),transparent 94%);font-family:var(--kanji-font);font-size:2.4rem;text-shadow:2px 2px 0 color-mix(in srgb,var(--accent),transparent 18%)}.jlpt-focus-item ruby{ruby-position:over;font-size:1.1rem}.jlpt-focus-item rt{color:var(--accent-2);font-size:.66rem;font-weight:900}.jlpt-sentence-line{min-height:82px;margin:10px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 84%),transparent 50%),color-mix(in srgb,var(--text),transparent 96%);font-family:var(--kanji-font);font-size:clamp(1.65rem,7vw,2.8rem);line-height:1.5}.sentence-blank{display:inline-grid;grid-auto-flow:column;gap:2px;min-width:1.8em;margin:0 5px;padding:0 5px;border-bottom:2px solid var(--accent-2);color:var(--accent-2)}.sentence-blank.is-wrong{border-color:var(--danger);color:var(--danger)}.jlpt-tiles{margin-top:10px}.sidekick{display:grid;grid-template-columns:minmax(74px,92px) minmax(0,1fr);gap:12px;align-items:center;min-height:118px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-3);box-shadow:0 18px 42px var(--shadow);cursor:pointer}.metric-grid>.sidekick{grid-column:1 / -1}.sidekick img{width:92px;max-height:112px;object-fit:contain;filter:drop-shadow(0 14px 18px var(--shadow))}.sidekick>div{min-width:0}.profile-panel{margin-top:10px}.sidekick strong{display:block;margin-bottom:5px}.sidekick p{margin:0;max-width:100%;line-height:1.35;overflow-wrap:normal;word-break:normal;hyphens:none}.filters{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.dictionary-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:6px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 8%);box-shadow:0 18px 42px var(--shadow)}.dictionary-tabs .btn{min-height:38px}.dictionary-tabs .btn.is-active{border-color:color-mix(in srgb,var(--accent),white 10%);background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 60%),color-mix(in srgb,var(--accent-2),transparent 82%)),var(--surface-2);box-shadow:0 0 24px color-mix(in srgb,var(--accent),transparent 72%)}.dictionary-tab-count{display:inline-grid;place-items:center;min-width:26px;min-height:22px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--text),transparent 88%);color:var(--accent-2);font-size:.76rem}.dictionary-load-more{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:14px 0 28px;padding:12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 10%);box-shadow:0 18px 42px var(--shadow)}.dictionary-load-more span{color:var(--muted);font-weight:900}.audio-panel{margin:12px 0;padding:12px}.field{display:grid;gap:5px}.field label,.field>span{color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 36%);color:var(--text)}.kanji-tile{min-height:150px;padding:13px;text-align:left;cursor:pointer}.kanji-line{display:grid;grid-template-columns:74px 1fr;gap:12px}.kanji-char{display:grid;place-items:center;width:74px;height:82px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),transparent 86%),transparent 58%),var(--kanji-panel);font-family:var(--kanji-font);font-size:3.6rem;line-height:1}.detail-backdrop{position:fixed;inset:0;z-index:1;display:grid;place-items:center;min-height:100dvh;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));background:#0000009e;overscroll-behavior:contain;animation:modal-fade .16s ease both}.detail-sheet{width:min(100%,760px);max-height:min(88dvh,860px);overflow:auto;overscroll-behavior:contain;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);box-shadow:0 30px 80px #0009;animation:modal-pop .18s ease both}.kanji-page-head{align-items:start}.kanji-page-head .actions{justify-content:flex-end}.kanji-page h1{margin-top:10px;font-family:var(--kanji-font);font-size:clamp(4rem,21vw,9rem);text-shadow:6px 6px 0 color-mix(in srgb,var(--accent),transparent 32%)}.kanji-profile-card{padding:15px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 44%),var(--surface);box-shadow:0 18px 42px var(--shadow)}.kanji-profile-hero{display:grid;gap:14px}.kanji-profile-char{display:grid;place-items:center;min-height:240px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),transparent 78%),transparent 48%),var(--kanji-panel-strong);font-family:var(--kanji-font);font-size:clamp(7rem,37vw,14rem);line-height:1;text-shadow:8px 8px 0 color-mix(in srgb,var(--accent),transparent 28%)}.kanji-profile-summary{display:grid;gap:12px;min-width:0}.kanji-profile-summary h2,.kanji-profile-card h2{margin:0}.kanji-profile-grid{display:grid;gap:12px;margin-top:12px}.kanji-sentence-list{display:grid;gap:9px;margin:10px 0 0;padding:0;list-style:none}.kanji-sentence-list li{display:grid;gap:5px;padding:10px;border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 52%)}.kanji-sentence-list strong{font-size:clamp(1.2rem,5vw,1.8rem);font-weight:900;line-height:1.45}.kanji-sentence-list mark{padding:0 4px;border-radius:6px;background:color-mix(in srgb,var(--accent-2),transparent 58%);color:var(--text)}.kanji-sentence-list span,.kanji-sentence-list small{color:var(--muted);font-weight:800}.kanji-hit{padding:0 .08em;border-radius:5px;background:color-mix(in srgb,var(--accent-2),transparent 62%);color:var(--text);box-shadow:inset 0 -.12em color-mix(in srgb,var(--accent),transparent 35%)}.kanji-fact-grid{display:grid;gap:8px;margin:10px 0 0}.kanji-fact-grid div{display:grid;gap:4px;padding:9px;border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 52%)}.kanji-fact-grid dt{color:var(--accent-2);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.kanji-fact-grid dd{margin:0;color:var(--text);font-weight:850}.kanji-fact-grid small,.source-note{display:block;color:var(--muted);font-size:.78rem;font-weight:800}.kanji-word-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.kanji-word-list a{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 52%);color:var(--text);text-decoration:none}.kanji-word-list b{font-family:var(--kanji-font);font-size:1.35rem}.kanji-word-list span,.kanji-word-list small{color:var(--muted);font-weight:800}.interface-mock-grid{display:grid;gap:8px;margin:10px 0}.interface-mock-card{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),transparent 90%),transparent 52%),color-mix(in srgb,var(--surface-2),var(--bg) 32%)}.interface-mock-card span{color:var(--accent-2);font-size:.72rem;font-weight:900;text-transform:uppercase}.interface-mock-card strong{font-size:1.08rem}.interface-mock-card small{color:var(--muted);font-weight:800}.editorial-card{display:grid;gap:12px}.editorial-card section{padding:10px;border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 52%)}.editorial-card h3{margin:0 0 6px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.detail-title{display:grid;grid-template-columns:118px 1fr;gap:14px;align-items:center}.detail-title .kanji-char{width:118px;height:126px;font-size:5.7rem}.chart-panel,.tool-panel,.empty-state,.writing-card{padding:13px}.writing-card{overflow:hidden}.writing-focus{min-height:140px;margin-top:0;font-size:clamp(5rem,28vw,9rem)}.stroke-demo,.writing-practice{min-width:0}.stroke-demo canvas,.writing-practice canvas{display:block;width:100%;max-width:100%;border:1px solid var(--writing-paper-border);border-radius:8px;background:var(--writing-paper);touch-action:none}.writing-step-panel{display:grid;gap:10px;margin-top:10px;padding:10px;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface)}.writing-step-head{display:grid;gap:6px}.writing-step-head .label{white-space:normal}.writing-mode-note{color:var(--muted);font-size:.78rem;font-weight:800}.writing-step-actions,.writing-practice-actions{display:grid;gap:8px}.writing-step-actions{grid-template-columns:auto 1fr auto}.writing-practice-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.writing-guide-list{display:grid;gap:7px;padding-left:0;list-style:none}.writing-guide-list li{margin:0}.writing-guide-list button{display:grid;grid-template-columns:30px 1fr;gap:8px;width:100%;padding:9px;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface);color:var(--text);text-align:left;cursor:pointer;box-shadow:var(--control-shadow)}.writing-guide-list b{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 80%);color:var(--text)}.writing-guide-list .is-active button{border-color:color-mix(in srgb,var(--accent-2),transparent 8%);background:var(--control-accent-surface)}.writing-guide-list .is-active b{background:var(--accent-2);color:#111014}.writing-practice-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.writing-score{position:relative;height:34px;margin-bottom:10px;overflow:hidden;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface)}.writing-score i{position:absolute;inset:0 auto 0 0;display:block;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));transition:width .22s ease}.writing-score span{position:relative;z-index:1;display:grid;place-items:center;height:100%;color:var(--text);font-weight:900;text-shadow:0 1px 10px rgba(0,0,0,.45)}.writing-feedback{min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 92%);color:var(--muted);font-weight:800}.writing-feedback.is-warning{border-color:color-mix(in srgb,var(--accent-2),transparent 42%);color:var(--text)}.writing-feedback.is-good{border-color:color-mix(in srgb,var(--accent-3),transparent 28%);background:color-mix(in srgb,var(--accent-3),transparent 84%);color:var(--text)}.transaction-list{display:grid;gap:7px;margin-top:10px}.transaction-row{display:flex;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 94%)}.transaction-row span{color:var(--accent-2);font-weight:900;white-space:nowrap}.transaction-row small{display:block;margin-top:2px;color:var(--muted);font-size:.74rem}@media (min-width: 900px){.custom-shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.achievement-grid,.shop-grid{display:grid;gap:8px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid.expanded,.achievement-grid.compact{grid-template-columns:1fr}.achievement,.shop-item{display:grid;gap:4px;min-height:78px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 94%);text-align:left}.achievement{position:relative;overflow:hidden;grid-template-columns:auto minmax(0,1fr);align-items:start;opacity:.72}.achievement:after{content:"";position:absolute;inset:auto -20% -45% 25%;height:80%;background:linear-gradient(135deg,transparent,color-mix(in srgb,var(--accent),transparent 78%));transform:rotate(-18deg);pointer-events:none}.achievement strong,.achievement small,.achievement .achievement-progress{position:relative;z-index:1}.achievement strong,.achievement small,.achievement .achievement-progress,.achievement .achievement-reward{grid-column:2}.achievement-icon{position:relative;z-index:1;display:grid;grid-row:1 / span 4;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--accent-2),transparent 88%);color:var(--accent-2);font-family:var(--kanji-font);font-size:1.35rem}.achievement small,.shop-item small{color:var(--muted)}.achievement.is-unlocked{opacity:1;border-color:color-mix(in srgb,var(--accent-2),transparent 20%);background:color-mix(in srgb,var(--accent-2),transparent 86%)}.achievement.is-secret:not(.is-unlocked){border-style:dashed}.achievement-progress{height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--text),transparent 88%)}.achievement-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.achievement-reward{color:var(--accent-2);font-weight:900}.achievement-category-list{display:grid;gap:14px;margin-top:14px}.achievement-category{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.compact-head{margin-top:0}.compact-head h2{font-size:clamp(1.25rem,5vw,2rem)}.shop-item{color:var(--text);cursor:pointer}.shop-item.is-owned{border-color:color-mix(in srgb,var(--accent-3),transparent 24%);background:color-mix(in srgb,var(--accent-3),transparent 86%)}.streak-card{overflow:hidden}.streak-dots{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}.streak-dots span{display:grid;place-items:center;min-height:28px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 94%);color:var(--muted);font-size:.72rem;font-weight:900}.streak-dots span.is-hit{background:color-mix(in srgb,var(--accent-2),transparent 76%);color:var(--text)}.reward-backdrop{position:fixed;inset:0;z-index:2;display:grid;place-items:center;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:#000000a8;overscroll-behavior:contain;animation:modal-fade .16s ease both}.reward-modal{width:min(100%,420px);max-height:calc(100dvh - 32px);overflow:auto;padding:18px;border:1px solid var(--line-strong);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 82%),transparent 55%),var(--surface-2);box-shadow:0 28px 90px #0000009e;text-align:center}.reward-modal-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 10px}.reward-backdrop.is-level{background:radial-gradient(circle at 50% 18%,rgba(255,225,90,.1),transparent 28%),#000000ad}.reward-modal.is-level{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--accent-2),transparent 22%);background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 78%),transparent 48%),linear-gradient(35deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 60%),var(--surface-2);box-shadow:0 0 0 1px #ffe15a2e,0 0 0 10px #ffe15a0a,0 28px 90px #0000009e}.reward-modal.is-level:before,.reward-modal.is-level:after{content:"";position:absolute;pointer-events:none}.reward-modal.is-level:before{inset:10px;border:1px solid rgba(255,225,90,.42);border-radius:6px;box-shadow:inset 0 0 0 1px #ffffff0f,inset 0 0 30px #ffe15a0f}.reward-modal.is-level:after{inset:-20%;background:linear-gradient(116deg,transparent 38%,rgba(255,255,255,.18) 48%,rgba(255,225,90,.2) 50%,rgba(255,255,255,.12) 52%,transparent 62%);animation:lesson-shine-sweep 8.5s ease-in-out infinite;mix-blend-mode:screen}.reward-logo{display:block;width:min(220px,72%);max-height:78px;object-fit:contain;margin:0 auto 10px;filter:var(--logo-filter)}.reward-modal h2{margin:10px 0 6px}.reward-values{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0}.reward-values span{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 82%);font-weight:900}.reward-modal.is-achievement{background:linear-gradient(145deg,color-mix(in srgb,var(--accent-2),transparent 78%),transparent 52%),linear-gradient(35deg,color-mix(in srgb,var(--accent),transparent 84%),transparent 62%),var(--surface-2)}.reward-modal.is-final-test{width:min(100%,520px);text-align:center}.final-test-modal-actions{justify-content:center}.reward-achievement-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 6px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 30%);border-radius:50%;background:color-mix(in srgb,var(--accent-2),transparent 82%);color:var(--accent-2);font-family:var(--kanji-font);font-size:2.1rem;box-shadow:0 0 34px color-mix(in srgb,var(--accent-2),transparent 74%)}.btn-icon{display:inline-grid;place-items:center;width:1.05em;height:1.05em;flex:0 0 auto}.btn-icon svg{display:block;width:100%;height:100%}.reward-modal .share-btn{min-width:138px;margin:0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2),#ffffff 10%),var(--accent));color:#111014}.contact-backdrop{z-index:4}.contact-modal{width:min(100%,500px);text-align:left}.contact-modal-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 8px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 34%);border-radius:50%;background:color-mix(in srgb,var(--accent-2),transparent 84%);color:var(--accent-2)}.contact-modal-icon svg{width:32px;height:32px}.contact-modal h2,.contact-modal p{text-align:left}.contact-email-block{display:grid;gap:4px;margin:14px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--text),transparent 95%)}.contact-email-block strong{overflow-wrap:anywhere;color:var(--text)}.contact-email-block small{color:var(--muted);line-height:1.4}.contact-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.contact-modal-actions .btn,.contact-modal-actions a.btn{min-width:138px}.pwa-install-banner{position:fixed;right:12px;bottom:calc(92px + env(safe-area-inset-bottom));left:12px;z-index:3;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:min(calc(100% - 24px),760px);margin:0 auto;padding:12px;border:1px solid var(--line-strong);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 82%),transparent 58%),color-mix(in srgb,var(--bg),transparent 5%);box-shadow:0 18px 54px var(--shadow);backdrop-filter:blur(18px);animation:modal-pop .18s ease both}.pwa-install-logo{display:grid;place-items:center;width:78px;min-width:78px;min-height:70px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 88%)}.pwa-install-logo img{width:64px;max-height:48px;object-fit:contain;filter:var(--logo-filter)}.notification-bell{color:var(--accent-2);font-family:var(--kanji-font);font-size:2rem;font-weight:900}.notification-permission-banner{border-color:color-mix(in srgb,var(--accent-2),transparent 35%)}.pwa-install-copy{min-width:0}.pwa-install-copy h2{margin:5px 0 2px;font-size:clamp(1rem,2.4vw,1.25rem);line-height:1.15}.pwa-install-copy p{margin:0;color:var(--muted);font-size:.92rem}.pwa-install-copy .pwa-install-instruction{margin-top:6px;color:var(--accent-2);font-weight:800}.pwa-install-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.pwa-install-actions .btn{min-height:42px;white-space:nowrap}.confetti{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;left:var(--x);width:9px;height:16px;border-radius:2px;background:var(--accent);transform:rotate(var(--r));animation:confetti-fall var(--d) ease-in forwards}.confetti i:nth-child(4n+1){background:var(--accent-2)}.confetti i:nth-child(4n+2){background:var(--accent-3)}.confetti i:nth-child(4n+3){background:var(--accent-4)}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(calc(var(--r) + 220deg))}}.chart-box{position:relative;height:240px;margin-top:10px}.mini-stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.empty-state{text-align:center}.empty-state .kanji-char{margin:0 auto 12px}.bottom-nav{display:none;position:fixed;z-index:30;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;right:auto;grid-auto-flow:column;grid-auto-columns:max-content;gap:5px;width:max-content;max-width:calc(100% - 20px);min-height:70px;margin:0;padding:7px;border:1px solid var(--control-border-hover);border-radius:8px;background:color-mix(in srgb,var(--control-surface),transparent 4%);box-shadow:0 16px 36px color-mix(in srgb,var(--shadow),transparent 10%);backdrop-filter:blur(18px);transform:translate(-50%)}.nav-btn{position:relative;display:grid;place-items:center;gap:2px;min-width:0;min-height:54px;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface);color:var(--muted);box-shadow:var(--control-shadow);cursor:pointer}.nav-btn span{font-size:1.18rem;line-height:1}.nav-btn small{max-width:100%;overflow:hidden;font-size:.68rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.nav-btn.is-active{border-color:color-mix(in srgb,var(--accent),transparent 10%);background:var(--control-accent-surface);color:var(--text)}.nav-btn:hover{border-color:var(--control-border-hover);background:var(--control-surface-hover)}.nav-btn.has-menu:after{position:absolute;top:6px;right:7px;width:5px;height:5px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 10px color-mix(in srgb,var(--accent-2),transparent 35%);content:""}.nav-popover{position:fixed;z-index:86;right:14px;bottom:calc(92px + env(safe-area-inset-bottom));left:14px;width:min(calc(100% - 28px),460px);margin:0 auto;padding:10px;border:1px solid var(--control-border-hover);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 76%),transparent 52%),color-mix(in srgb,var(--control-surface),transparent 2%);box-shadow:0 24px 56px color-mix(in srgb,var(--shadow),transparent 6%);backdrop-filter:blur(20px);animation:pop .16s ease both}.nav-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 8px}.nav-popover-close{width:34px;min-width:34px;height:34px}.nav-popover-list{display:grid;gap:8px}.nav-popover-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:2px 10px;align-items:center;min-height:62px;padding:10px;border:1px solid var(--control-border);border-radius:8px;background:var(--control-surface);color:var(--text);text-align:left;cursor:pointer;box-shadow:inset 0 1px #ffffff2e;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.nav-popover-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent),transparent 18%);background:var(--control-surface-hover);box-shadow:inset 0 1px #ffffff38,0 10px 20px color-mix(in srgb,var(--accent),transparent 88%)}.nav-popover-item>span{grid-row:span 2;display:grid;place-items:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 26%);border-radius:8px;background:var(--control-accent-surface);color:var(--accent-2);font-weight:900}.nav-popover-item b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-popover-item small{min-width:0;color:var(--muted);font-weight:700}.scroll-position-toggle{position:fixed;z-index:70;right:14px;bottom:calc(92px + env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 42%);border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 82%),transparent 38%),color-mix(in srgb,var(--surface-2),transparent 2%);box-shadow:0 18px 34px var(--shadow);color:var(--text);font-weight:900;letter-spacing:.04em;cursor:pointer;backdrop-filter:blur(18px)}.scroll-position-toggle:hover{border-color:color-mix(in srgb,var(--accent-2),transparent 18%)}.scroll-position-toggle-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:color-mix(in srgb,var(--accent-2),transparent 74%);color:var(--accent-2);font-size:1rem;line-height:1}.scroll-position-toggle-label{font-size:.72rem;text-transform:uppercase}.scroll-position-toggle-down{border-color:color-mix(in srgb,var(--accent-4),transparent 40%)}.scroll-position-toggle-down .scroll-position-toggle-icon{background:color-mix(in srgb,var(--accent-4),transparent 78%);color:var(--accent-4)}[data-theme=light] .achievement-icon,[data-theme=light] .scroll-position-toggle-icon,[data-theme=light] .nav-popover-item>span,[data-theme=light] .contact-modal-icon,[data-theme=light] .reward-achievement-icon{color:var(--icon-tone)}[data-theme=light] .achievement-icon,[data-theme=light] .scroll-position-toggle-icon,[data-theme=light] .contact-modal-icon,[data-theme=light] .reward-achievement-icon{border-color:color-mix(in srgb,var(--icon-tone),transparent 82%)}[data-theme=light] .nav-popover-item>span{border-color:color-mix(in srgb,var(--icon-tone),transparent 76%)}.is-focus-pulse{animation:focusPulse .9s ease}@keyframes focusPulse{0%,to{outline:0 solid transparent}35%{outline:2px solid color-mix(in srgb,var(--accent-2),transparent 15%);outline-offset:4px}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toast{position:fixed;z-index:60;right:14px;bottom:calc(94px + env(safe-area-inset-bottom));left:14px;width:min(calc(100% - 28px),520px);margin:0 auto;padding:12px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-2);box-shadow:0 18px 46px var(--shadow);text-align:center;font-weight:800}.loading{display:grid;place-items:center;min-height:60svh;text-align:center}.loading strong{display:block;font-size:1.5rem}.eva-room-page{display:grid;gap:12px;padding-bottom:calc(98px + env(safe-area-inset-bottom))}.eva-room-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center}.eva-room-toolbar .btn{min-height:42px}.eva-room-currency{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 46%);border-radius:8px;background:color-mix(in srgb,var(--accent-2),transparent 88%)}.eva-room-currency strong{color:var(--accent-2);font-size:1.2rem}.eva-room-currency small{color:var(--muted);font-weight:800}.eva-room-live-pill{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 34%);border-radius:8px;color:var(--accent-2);background:radial-gradient(circle at 20% 20%,color-mix(in srgb,var(--accent-2),transparent 60%),transparent 44%),color-mix(in srgb,var(--surface),transparent 12%);font-weight:900;text-align:center;white-space:nowrap}.eva-vn-scene{position:relative;min-height:min(72svh,760px);overflow:hidden;border:1px solid var(--line-strong);border-radius:8px;background:#09090d;box-shadow:0 24px 70px var(--shadow);isolation:isolate}.eva-vn-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#0000000a,#00000075),var(--eva-bg) center / cover no-repeat,linear-gradient(135deg,var(--surface-2),var(--bg))}.eva-vn-bg:after{position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.14),transparent 30%),linear-gradient(90deg,rgba(0,0,0,.35),transparent 22%,transparent 72%,rgba(0,0,0,.32));content:""}.eva-sprite-button{position:absolute;z-index:1;left:50%;bottom:clamp(128px,19svh,188px);width:min(56vw,420px);max-height:70%;padding:0;border:0;background:transparent;transform:translate(-50%);object-fit:contain;object-position:bottom center;cursor:pointer}.eva-vn-sprite{display:block;width:100%;max-height:70svh;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 24px 28px rgba(0,0,0,.58));animation:eva-presence-idle 9.4s ease-in-out infinite;transform-origin:50% 100%;transition:filter .24s ease,opacity .24s ease;user-select:none;-webkit-user-drag:none}.eva-sprite-button:hover .eva-vn-sprite{filter:drop-shadow(0 28px 32px rgba(0,0,0,.62)) brightness(1.04)}.eva-sprite-button:focus-visible{outline:2px solid var(--accent-2);outline-offset:7px;border-radius:8px}.eva-vn-scene[data-eva-emotion=proud] .eva-vn-sprite,.eva-vn-scene[data-eva-emotion=approve] .eva-vn-sprite{filter:drop-shadow(0 24px 28px rgba(0,0,0,.58)) saturate(1.08) brightness(1.04)}.eva-vn-scene[data-eva-emotion=serious] .eva-vn-sprite{filter:drop-shadow(0 24px 28px rgba(0,0,0,.58)) saturate(.92) contrast(1.06)}.eva-vn-sprite.is-speaking{animation:eva-presence-speaking 7.4s ease-in-out infinite,eva-speaking-focus 2.8s ease-in-out infinite}.eva-vn-sprite.is-reacting{animation:eva-react .26s ease-out 1}.eva-vn-sprite.is-quiet{opacity:.96;filter:drop-shadow(0 24px 28px rgba(0,0,0,.58)) saturate(.9)}.eva-vn-scene[data-eva-mood=curious] .eva-vn-bg:after{background:radial-gradient(circle at 68% 16%,color-mix(in srgb,var(--accent-2),transparent 72%),transparent 28%),linear-gradient(90deg,rgba(0,0,0,.35),transparent 22%,transparent 72%,rgba(0,0,0,.32))}@keyframes eva-presence-idle{0%,to{transform:translateZ(0) rotate(0) scale(1)}35%{transform:translate3d(-2px,-3px,0) rotate(-.24deg) scale(1.008)}68%{transform:translate3d(1px,-1px,0) rotate(.18deg) scale(1.004)}}@keyframes eva-presence-speaking{0%,to{transform:translateZ(0) rotate(0) scale(1)}46%{transform:translate3d(-1px,-4px,0) rotate(-.18deg) scale(1.01)}}@keyframes eva-speaking-focus{0%,to{opacity:1}50%{opacity:.975}}@keyframes eva-react{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-5px) scale(1.006)}to{transform:translateY(0) scale(1)}}.eva-relationship-panel{position:relative;z-index:3;display:grid;gap:9px;width:100%;padding:12px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 46%);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 18%);box-shadow:0 18px 42px #00000059;backdrop-filter:blur(16px)}.eva-autonomy-panel{display:grid;gap:10px;padding:12px;border:1px solid color-mix(in srgb,var(--accent-3),transparent 48%);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 88%),transparent),color-mix(in srgb,var(--surface),transparent 8%);box-shadow:0 18px 42px #00000047}.eva-autonomy-panel>div:first-child{display:grid;gap:4px}.eva-autonomy-panel strong{color:var(--text)}.eva-autonomy-panel small,.eva-autonomy-meta{color:var(--muted);font-weight:800}.eva-autonomy-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.8rem}.eva-autonomy-meta span{padding:5px 7px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg),transparent 42%)}.eva-active-effect-chip{display:inline-flex;align-items:center;gap:6px}.eva-active-effect-clear{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid color-mix(in srgb,var(--accent-2),transparent 20%);border-radius:999px;background:color-mix(in srgb,var(--bg),transparent 10%);color:var(--accent-2);cursor:pointer;line-height:1;transition:transform .18s ease,border-color .18s ease,background .18s ease}.eva-active-effect-clear:hover{transform:translateY(-1px);border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2),transparent 88%)}.eva-autonomy-actions{display:flex;flex-wrap:wrap;gap:8px}.eva-live-status .eva-autonomy-meta{gap:7px}.eva-question-box{display:grid;gap:9px;padding:10px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 48%);border-radius:8px;background:color-mix(in srgb,var(--surface),transparent 10%)}.eva-question-box>strong{color:var(--text);font-size:1rem;line-height:1.25}.eva-question-box .btn{min-height:54px;white-space:normal;line-height:1.2;text-align:center;overflow-wrap:anywhere}.eva-vn-scene.is-autonomous,.eva-vn-scene.is-autonomous .eva-dialogue-box{border-color:color-mix(in srgb,var(--accent-2),transparent 18%)}.eva-relationship-head{display:flex;gap:8px;align-items:center;justify-content:space-between}.eva-relationship-head span,.eva-relationship-stat span{color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.eva-relationship-head strong{color:var(--accent-2);font-size:.88rem}.eva-relationship-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.eva-relationship-stat{display:grid;gap:4px}.eva-relationship-stat div{display:flex;justify-content:space-between;gap:8px}.eva-relationship-stat strong{color:var(--text);font-size:.82rem}.eva-relationship-stat i{display:block;height:6px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--line),transparent 12%)}.eva-relationship-stat b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.eva-dialogue-box{position:absolute;z-index:2;right:clamp(10px,3vw,28px);bottom:clamp(10px,3vw,28px);left:clamp(10px,3vw,28px);display:grid;gap:10px;max-height:min(42svh,330px);padding:14px;overflow:auto;border:1px solid color-mix(in srgb,var(--accent-2),transparent 34%);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 12%);box-shadow:0 20px 58px #0000006b;backdrop-filter:blur(18px)}.eva-dialogue-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.eva-dialogue-meta strong{color:var(--accent-2);font-size:1.08rem}.eva-dialogue-meta span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.eva-dialogue-box p{margin:0;max-width:62ch;color:var(--text);font-size:clamp(1rem,2.6vw,1.25rem);font-weight:800}.eva-dialogue-text{cursor:pointer}.eva-line-piece{display:inline;opacity:0;animation:eva-line-appear .24s ease forwards;animation-delay:calc(.12s + (var(--i, 0) * .19s))}.eva-dialogue-text.is-skipped .eva-line-piece{opacity:1;animation:none}@keyframes eva-line-appear{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur(0)}}.eva-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.eva-room-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.eva-shop-panel{display:grid;gap:12px;padding:13px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.eva-shop-head{display:flex;gap:10px;align-items:start;justify-content:space-between}.eva-shop-head h2,.eva-shop-head p{margin:4px 0}.eva-bg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.eva-bg-card{display:grid;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.eva-bg-card.is-selected{border-color:color-mix(in srgb,var(--accent-3),transparent 22%);background:color-mix(in srgb,var(--accent-3),transparent 88%)}.eva-bg-card.is-missing{border-color:color-mix(in srgb,var(--danger),transparent 30%)}.eva-bg-card img{width:100%;aspect-ratio:9 / 14;overflow:hidden;border-radius:8px;object-fit:cover;background:var(--surface)}.eva-sprite-card img{object-fit:contain;object-position:bottom center;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--accent-2),transparent 78%),transparent 54%),var(--surface)}.customization-shop-panel{padding:0;overflow:hidden}.custom-shop{display:grid;gap:12px}.custom-shop-hero{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 46%);border-radius:8px;background:radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--accent-2),transparent 72%),transparent 42%),linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 78%),transparent 54%),var(--surface-2)}.custom-shop-hero h2,.custom-shop-hero p{margin:5px 0}.custom-shop-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.custom-shop-stats span{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg),transparent 14%);color:var(--muted);font-size:.82rem;font-weight:800}.custom-shop-stats b{color:var(--accent-2)}.custom-shop-tabs,.custom-shop-controls{display:flex;gap:8px;overflow-x:auto;padding:1px 2px 7px;scrollbar-width:none}.custom-shop-tabs::-webkit-scrollbar,.custom-shop-controls::-webkit-scrollbar{display:none}.custom-shop-tabs button,.custom-shop-controls button{flex:0 0 auto;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font:inherit;font-size:.84rem;font-weight:900;cursor:pointer}.custom-shop-tabs button.is-active,.custom-shop-controls button.is-active{border-color:color-mix(in srgb,var(--accent-2),transparent 24%);background:color-mix(in srgb,var(--accent),transparent 76%);color:var(--text);box-shadow:0 0 18px color-mix(in srgb,var(--accent),transparent 72%)}.custom-shop-sort{opacity:.92}.custom-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.custom-shop-card{position:relative;display:grid;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 90%),transparent 48%),var(--surface-2)}.custom-shop-card.is-selected{border-color:color-mix(in srgb,var(--accent-2),transparent 12%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-2),transparent 50%),0 18px 40px color-mix(in srgb,var(--accent),transparent 82%)}.custom-shop-card.is-locked{opacity:.62;filter:grayscale(.28)}.custom-shop-preview{position:relative;min-height:146px;background:var(--surface)}.custom-shop-preview img{display:block;width:100%;height:100%;min-height:146px;aspect-ratio:1 / 1;object-fit:cover}.custom-shop-card.type-background .custom-shop-preview{min-height:clamp(220px,38vw,360px)}.custom-shop-card.type-background .custom-shop-preview img{min-height:clamp(220px,38vw,360px);aspect-ratio:4 / 5;object-position:center}.custom-shop-card:is(.type-theme,.type-effect,.type-decoration) .custom-shop-preview{min-height:clamp(180px,28vw,260px)}.custom-shop-card:is(.type-theme,.type-effect,.type-decoration) .custom-shop-preview img{min-height:clamp(180px,28vw,260px);aspect-ratio:16 / 10;object-position:center}.custom-shop-card:is(.rarity-epic,.rarity-legendary,.rarity-mythic) .custom-shop-preview img{aspect-ratio:4 / 5}.custom-shop-card:is(.type-theme,.type-effect,.type-decoration):is(.rarity-epic,.rarity-legendary,.rarity-mythic) .custom-shop-preview img{aspect-ratio:16 / 10}.custom-shop-card.type-outfit .custom-shop-preview{min-height:236px}.custom-shop-card.type-outfit .custom-shop-preview img{min-height:236px;aspect-ratio:2 / 3;object-position:center}.custom-shop-card-body{display:grid;gap:8px;padding:10px}.custom-shop-card .btn{width:100%;min-height:40px;padding-inline:8px;font-size:.86rem}.custom-shop-title-row{display:grid;gap:6px}.custom-shop-title-row strong{line-height:1.12}.custom-shop-card p{min-height:42px;margin:0;color:var(--muted);font-size:.82rem}.custom-shop-stars{color:var(--accent-2);font-size:.82rem;font-weight:900;letter-spacing:0;line-height:1}.custom-shop-phrase{margin:0;padding:8px 9px;border-left:3px solid color-mix(in srgb,var(--accent-2),transparent 18%);border-radius:6px;background:color-mix(in srgb,var(--surface),transparent 38%);color:color-mix(in srgb,var(--text),var(--muted) 18%);font-size:.78rem;font-weight:700}.custom-shop-unlock{display:block;padding:8px 9px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 46%);border-radius:6px;background:color-mix(in srgb,var(--accent-2),transparent 90%);color:var(--accent-2);font-size:.76rem;font-weight:900;line-height:1.25}.custom-shop-card.is-locked .custom-shop-unlock{background:color-mix(in srgb,var(--surface),transparent 22%)}.custom-shop-price{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--accent-2);font-weight:900}.custom-shop-price small{color:var(--muted)}.rarity-badge,.status-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg),transparent 20%);color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase}.rarity-badge{position:absolute;top:8px;left:8px}.rarity-rare .rarity-badge{border-color:color-mix(in srgb,var(--accent-4),transparent 22%);color:var(--accent-4)}.rarity-epic .rarity-badge{border-color:color-mix(in srgb,var(--accent),transparent 22%);color:color-mix(in srgb,var(--accent),white 24%)}.rarity-legendary .rarity-badge{border-color:color-mix(in srgb,var(--accent-2),transparent 12%);color:var(--accent-2)}.rarity-mythic .rarity-badge{border-color:color-mix(in srgb,#ff385c,transparent 6%);color:#ff6b86;box-shadow:0 0 18px #ff385c57}.custom-shop-card.rarity-mythic{border-color:color-mix(in srgb,#ff385c,transparent 42%);box-shadow:0 24px 52px #ff385c1f}.custom-shop-history h3{margin-top:0}.eva-room-props{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.eva-room-prop{position:absolute;left:var(--prop-x, 50%);bottom:var(--prop-y, 18%);width:min(var(--prop-w, 14%),28vw);max-width:240px;opacity:var(--prop-opacity, .96);transform:translate(-50%);transform-origin:50% 100%;pointer-events:none}@media (max-width: 640px){.eva-room-prop{left:var(--prop-x-narrow, var(--prop-x, 50%));bottom:var(--prop-y-narrow, var(--prop-y, 18%));width:min(var(--prop-w-narrow, var(--prop-w, 14%)),24vw);max-width:132px}.eva-room-prop.is-mid{width:min(var(--prop-w-narrow, var(--prop-w, 14%)),22vw);max-width:118px}.eva-vn-scene{min-height:min(64svh,680px)}.eva-room-toolbar{flex-wrap:wrap;gap:8px}.eva-room-toolbar .btn{min-height:40px;padding-inline:10px;font-size:.82rem}}.eva-room-prop.is-back{z-index:0}.eva-room-prop.is-mid{z-index:1}.eva-room-prop.is-front{z-index:2}.eva-room-prop img,.hero-decoration img,.custom-shop-card.type-decoration .custom-shop-preview img{display:block;width:100%;height:auto;object-fit:contain;object-position:bottom center;mix-blend-mode:lighten;filter:drop-shadow(0 14px 20px rgba(0,0,0,.42));image-rendering:auto;user-select:none;-webkit-user-drag:none}.eva-room-prop.is-flipped img{transform:scaleX(-1)}.eva-room-prop.deco-deco_golden_accent img{mix-blend-mode:screen;filter:drop-shadow(0 10px 18px rgba(255,214,120,.18))}.eva-room-prop.deco-deco_moon_frame img{mix-blend-mode:screen;filter:drop-shadow(0 12px 22px rgba(170,214,255,.16))}.eva-room-prop.deco-deco_lantern img{filter:drop-shadow(0 10px 18px rgba(255,196,96,.22)) drop-shadow(0 14px 20px rgba(0,0,0,.34))}.eva-room-decor-panel{margin-top:10px;padding:12px;border:1px solid var(--line-strong);border-radius:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 90%),transparent 48%),color-mix(in srgb,var(--surface),transparent 2%);box-shadow:0 18px 40px var(--shadow)}.eva-room-decor-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.eva-room-decor-panel-head p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.eva-room-decor-panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.eva-room-decor-toggle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px}.eva-room-decor-toggle{display:grid;gap:6px;align-content:start;min-height:132px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-2),transparent 4%);color:var(--text);text-align:left;cursor:pointer}.eva-room-decor-toggle.is-on{border-color:color-mix(in srgb,var(--accent-2),transparent 24%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-2),transparent 58%)}.eva-room-decor-toggle.is-off{opacity:.62}.eva-room-decor-thumb{display:grid;place-items:center;min-height:72px;border-radius:6px;background:#09090d}.eva-room-decor-thumb img{width:min(100%,88px);max-height:68px;object-fit:contain;mix-blend-mode:lighten}.eva-room-decor-label{font-weight:800;font-size:.84rem;line-height:1.15}.eva-room-decor-toggle small{color:var(--muted);font-weight:700}.eva-bg-card strong,.eva-bg-card small{display:block}.eva-bg-card small{color:var(--muted);font-weight:800}@media (min-width: 1040px){.jlpt-eva-dock.is-expanded .jlpt-eva-vn-expanded{grid-template-columns:minmax(0,1fr) clamp(220px,26vw,300px)}.jlpt-eva-dock .home-eva-avatar,.jlpt-eva-dock .jlpt-eva-avatar{max-width:300px}.jlpt-eva-dock .home-eva-avatar img,.jlpt-eva-dock .jlpt-eva-avatar img{max-width:300px;max-height:300px}.jlpt-eva-dock .jlpt-eva-collapsed-avatar{max-width:188px;max-height:236px}.jlpt-eva-dock.is-collapsed .jlpt-eva-collapsed{grid-template-columns:clamp(148px,18vw,188px) minmax(0,1fr) auto;min-height:148px}}@media (max-width: 620px){:root[data-custom-effect$=_particles] .scene-effects span{width:calc(var(--particle-size, 10px) * 1.28);height:calc(var(--particle-size, 10px) * .92);box-shadow:0 0 22px #ffa0cd2e}.hero-panel{min-height:0}.hero-actions{margin-top:18px;margin-bottom:0}.home-eva-vn{grid-template-columns:minmax(0,1fr) minmax(108px,.52fr);gap:10px;align-items:center}.home-eva-actions{justify-content:flex-end}.home-eva-avatar{width:min(42vw,200px);justify-self:end}.home-eva-avatar img{width:100%;max-height:240px}.home-eva-vn .eva-dialogue-text{font-size:clamp(.94rem,3vw,1.08rem)}.home-eva-actions .btn{width:40px;min-width:40px}.home-eva-question .btn{min-height:46px}.jlpt-eva-vn{margin-top:14px}.jlpt-eva-dock{right:8px;left:8px;width:min(calc(100% - 16px),720px)}.jlpt-eva-dock.is-expanded .jlpt-eva-vn-expanded{grid-template-columns:minmax(0,1fr);gap:12px;max-height:min(56svh,460px);padding-bottom:12px}.jlpt-eva-dock.is-expanded .home-eva-avatar,.jlpt-eva-dock.is-expanded .jlpt-eva-avatar{justify-self:center;max-width:min(74vw,248px)}.jlpt-eva-dock.is-expanded .home-eva-avatar img,.jlpt-eva-dock.is-expanded .jlpt-eva-avatar img{max-width:min(74vw,248px);max-height:min(40svh,252px);object-position:center bottom;transform-origin:center bottom}.jlpt-eva-dock .jlpt-eva-collapsed-avatar{max-width:min(34vw,148px);max-height:196px}.jlpt-eva-dock.is-collapsed .jlpt-eva-collapsed{grid-template-columns:clamp(108px,30vw,148px) minmax(0,1fr);min-height:124px}body.jlpt-eva-dock-expanded .app-main{padding-bottom:calc(430px + env(safe-area-inset-bottom))}body.jlpt-eva-dock-expanded .scroll-position-toggle{bottom:calc(430px + env(safe-area-inset-bottom))}.jlpt-eva-open-btn{left:10px;bottom:calc(96px + env(safe-area-inset-bottom))}.jlpt-eva-collapsed{grid-template-columns:auto minmax(0,1fr);gap:10px}.jlpt-eva-collapsed-avatar{width:min(22vw,70px);max-height:96px}.jlpt-eva-collapsed .pill{grid-column:1 / -1}.jlpt-eva-toggle{width:36px;min-width:36px}.hero-decoration{right:8px;bottom:8px;width:52px;opacity:.46}.hero-decoration.deco-deco_bookshelf,.hero-decoration.deco-deco_kanji_board,.hero-decoration.deco-deco_scroll,.hero-decoration.deco-deco_moon_frame,.hero-decoration.deco-deco_golden_accent{right:8px;bottom:34px;width:58px}.hero-decoration.deco-deco_lantern{right:104px;bottom:120px;width:34px}.hero-decoration.deco-deco_tea_table{right:4px;bottom:4px;width:64px}.hero-decoration.deco-deco_plant{right:10px;bottom:8px;width:38px;opacity:.56}.n5-hero-mascot{width:min(42vw,132px);max-width:132px;max-height:200px}.n5-hero-mascot img{max-height:200px}.n5-hero-mascot .speech{right:calc(100% + 14px);bottom:18px;width:min(56vw,204px);font-size:.9rem}.eva-room-entry{grid-template-columns:76px minmax(0,1fr)}.eva-room-entry .btn{grid-column:1 / -1;width:100%}.eva-room-entry-bg{width:76px}.eva-room-toolbar{grid-template-columns:1fr}.eva-room-toolbar .btn,.eva-room-currency{width:100%}.eva-vn-scene{min-height:0;padding-top:min(66svh,500px);overflow:visible}.eva-vn-bg{bottom:auto;height:min(66svh,500px);border-radius:inherit}.eva-sprite-button{top:6px;bottom:auto;width:min(96vw,460px);height:min(62svh,460px);max-height:none}.eva-vn-sprite{max-height:100%}.eva-relationship-panel{padding:10px}.eva-relationship-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.eva-dialogue-box{position:relative;right:auto;bottom:auto;left:auto;max-height:none;margin:-18px 8px 10px;padding:14px}.eva-dialogue-box p{font-size:clamp(1.03rem,3.4vw,1.16rem)}.eva-choice-grid,.sentence-builder-grid,.sentence-custom-item{grid-template-columns:1fr}.sentence-custom-actions{justify-content:stretch}.sentence-custom-actions .btn{flex:1 1 130px}.pwa-install-banner{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;bottom:calc(88px + env(safe-area-inset-bottom));padding:10px}.pwa-install-logo{width:62px;min-width:62px;min-height:62px}.pwa-install-logo img{width:52px}.pwa-install-copy h2{margin-top:4px;font-size:1rem}.pwa-install-copy p{font-size:.84rem}.pwa-install-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;width:100%}.pwa-install-actions .btn{width:100%;min-width:0;padding-right:10px;padding-left:10px}.scroll-position-toggle{right:10px;bottom:calc(100px + env(safe-area-inset-bottom));padding:10px 11px}.scroll-position-toggle-label{display:none}.settings-row,.settings-row-range{grid-template-columns:1fr}.volume-value{text-align:left}}@media (max-height: 540px) and (orientation: landscape){.pwa-install-banner,.notification-permission-banner{right:8px;bottom:8px;left:8px;width:min(calc(100% - 16px),720px);gap:10px;padding:8px 10px}.pwa-install-logo{width:58px;min-width:58px;min-height:58px}.pwa-install-logo img{width:48px}.pwa-install-copy h2{margin-top:2px;font-size:.95rem}.pwa-install-copy p,.pwa-install-copy .pwa-install-instruction{font-size:.78rem}.pwa-install-copy .pwa-install-instruction{display:none}.pwa-install-actions{gap:6px}.pwa-install-actions .btn{min-height:38px}}@media (min-width: 621px){.eva-room-toolbar{grid-template-columns:auto minmax(0,1fr) auto auto}}@media (min-width: 621px) and (max-width: 1039px){.hero-panel{min-height:0;padding-bottom:18px}.hero-actions{margin-top:18px;margin-bottom:0}.home-eva-vn{grid-template-columns:minmax(0,1fr) minmax(200px,.88fr)}.home-eva-avatar{width:min(34vw,280px)}.home-eva-avatar img{max-height:300px}.jlpt-eva-collapsed-avatar{width:min(24vw,84px)}}@media (max-width: 370px){.app-main{padding-right:10px;padding-left:10px}.hero-panel{min-height:420px}.home-eva-avatar{width:min(72vw,220px)}.jlpt-eva-collapsed{grid-template-columns:auto minmax(0,1fr);gap:8px}.jlpt-eva-collapsed-avatar{width:64px;max-height:88px}.jlpt-eva-dock .jlpt-eva-collapsed-avatar{width:100%;max-width:min(38vw,132px);max-height:176px}.jlpt-eva-dock.is-collapsed .jlpt-eva-collapsed{grid-template-columns:clamp(96px,34vw,132px) minmax(0,1fr);min-height:116px}.jlpt-eva-dock.is-expanded .home-eva-avatar img,.jlpt-eva-dock.is-expanded .jlpt-eva-avatar img{max-width:min(82vw,220px);max-height:min(36svh,220px)}body.jlpt-eva-dock-expanded .app-main{padding-bottom:calc(400px + env(safe-area-inset-bottom))}.jlpt-eva-open-btn{left:8px;min-height:40px;padding:7px 12px}.n5-hero-mascot{width:min(48vw,126px);max-width:126px;max-height:190px}.n5-hero-mascot img{max-height:190px}.n5-hero-mascot .speech{right:calc(100% + 12px);bottom:16px;width:min(60vw,184px);font-size:.84rem}.reward-mascot .speech{right:auto;bottom:auto;width:min(100%,240px)}.metric-grid,.reading-row,.reading-check-row,.rating-grid,.sentence-tiles,.writing-step-actions,.writing-practice-actions,.mini-stat-row,.achievement-grid{grid-template-columns:1fr}}@media (min-width: 480px) and (max-width: 719px){.n5-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (min-width: 900px) and (max-width: 1039px){.n5-lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}@media (min-width: 720px){.app-main{padding:22px 22px 112px}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:stretch}.metric-grid,.lesson-grid,.dictionary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kanji-profile-hero{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);align-items:stretch}.kanji-profile-grid,.kanji-fact-grid,.interface-mock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sentence-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.filters{grid-template-columns:2fr repeat(4,minmax(120px,1fr));align-items:end}.study-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jlpt-lesson-hero{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center}.jlpt-section-grid,.jlpt-practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.n5-hero{grid-template-columns:minmax(0,1fr) minmax(160px,.34fr);align-items:end}.n5-panel-head{flex-direction:row;align-items:flex-start;justify-content:space-between}.n5-lesson-tile{min-height:188px;padding:13px}.n5-lesson-grid,.n5-kanji-grid,.n5-exercise-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.n5-exercise-list>.n5-exercise-card:nth-child(4n){grid-column:1 / -1;min-height:clamp(190px,24vw,250px);padding:18px}.jlpt-drill-card,.jlpt-kanji-focus{grid-column:1 / -1}.learn-level-panel,.jlpt-textbook-hero{grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);align-items:stretch}.textbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jlpt-app-grid,.kana-columns,.jlpt-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.achievement-grid.expanded{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-layout{grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);align-items:start}.writing-practice{grid-column:1 / -1}.daily-lesson-card{grid-template-columns:1fr auto}}@media (min-width: 1040px){.app-header{padding-right:max(22px,calc((100vw - 1160px)/2));padding-left:max(22px,calc((100vw - 1160px)/2))}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dictionary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.textbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.n5-lesson-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.n5-lesson-tile{min-height:212px}.n5-kanji-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.kanji-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.eva-vn-sprite,.eva-vn-sprite.is-speaking,.eva-vn-sprite.is-reacting{animation:none!important;transform:none!important}.eva-line-piece{opacity:1;filter:none;animation:none!important}.flash-kanji-onboarding-spotlight,.flash-kanji-onboarding-dialog{transition:none}}.seo-textbook-body{min-height:100vh;color:var(--text);background:linear-gradient(180deg,rgba(8,8,12,.3),var(--bg) 74%),var(--active-room-bg, url(../assets/bg/bg_winter_city.webp)) center / cover fixed,var(--bg)}.seo-textbook-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:24px 0 88px}.seo-topbar,.seo-breadcrumb,.seo-card,.seo-hero,.seo-download,.seo-footer{border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 90%),transparent 48%),color-mix(in srgb,var(--surface),transparent 8%);box-shadow:0 18px 42px var(--shadow);backdrop-filter:blur(16px)}.seo-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;border-radius:8px}.seo-logo{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:900}.seo-logo img{width:88px;height:auto;filter:var(--logo-filter)}.seo-topbar nav,.seo-actions,.seo-tags,.seo-grid,.seo-level-links{display:flex;flex-wrap:wrap;gap:8px}.seo-topbar nav a,.seo-breadcrumb a,.seo-actions a,.seo-footer a{color:var(--text)}.seo-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:10px 12px;border-radius:8px;color:var(--muted)}.seo-breadcrumb span{color:var(--accent-2)}.seo-hero{display:grid;gap:18px;margin-bottom:14px;padding:clamp(18px,4vw,34px);border-radius:8px}.seo-hero h1{margin:0;font-size:clamp(2.4rem,9vw,6rem);line-height:.92;letter-spacing:0;text-shadow:0 4px 0 var(--accent)}.seo-hero p{max-width:760px;color:var(--muted);font-size:1.05rem}.seo-cover{overflow:hidden;min-height:260px;border:1px solid var(--line);border-radius:8px}.seo-cover img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover}.seo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-bottom:14px}.seo-card,.seo-download,.seo-footer{padding:16px;border-radius:8px}.seo-card h2,.seo-card h3,.seo-download h2{margin-top:0}.seo-card ul,.seo-card ol{display:grid;gap:8px;margin:10px 0 0;padding-left:18px;color:var(--muted)}.seo-card p,.seo-card dd,.seo-footer p{color:var(--muted)}.seo-facts{display:grid;gap:8px}.seo-facts div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.seo-facts dt{color:var(--muted)}.seo-facts dd{margin:0;text-align:right;font-weight:900}.seo-sample-kanji{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.seo-sample-kanji a{display:grid;place-items:center;width:56px;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;color:var(--text);background:color-mix(in srgb,var(--accent),transparent 84%);font-family:"Noto Serif JP",Yu Mincho,serif;font-size:2rem;text-decoration:none}.seo-app-chip,.seo-tag{display:inline-flex;align-items:center;min-height:32px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:color-mix(in srgb,var(--text),transparent 94%);color:var(--text);font-size:.9rem;font-weight:900}.seo-tag{color:var(--accent-2)}.seo-actions a,.seo-download a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:var(--text);background:color-mix(in srgb,var(--surface),transparent 8%);text-decoration:none;font-weight:900}.seo-actions .primary,.seo-download .primary{border-color:color-mix(in srgb,var(--accent),white 10%);background:linear-gradient(135deg,var(--accent),var(--accent-3));box-shadow:0 18px 40px color-mix(in srgb,var(--accent),transparent 72%)}.seo-download{display:grid;gap:12px;margin-bottom:14px}.seo-footer{margin-top:14px}.site-footer,.site-footer-top{display:grid;gap:14px}.site-footer-copy-block{display:grid;gap:8px}.site-footer-copy-block p{margin:0}.site-footer-nav,.site-footer-socials{display:grid;gap:8px}.site-footer-nav{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.site-footer-socials{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.footer-nav-btn,.footer-social-link{width:100%}.footer-social-link{justify-content:flex-start;gap:10px}.about-page{display:grid;gap:14px}.about-head{align-items:end}.about-head .actions{justify-content:flex-end}.about-hero{grid-template-columns:minmax(0,1.08fr) minmax(240px,.92fr);align-items:stretch}.about-hero-copy{display:grid;gap:12px}.about-hero-copy h2{margin:0;font-size:clamp(1.8rem,4vw,3.1rem);line-height:.94}.about-hero-copy p{margin:0}.about-hero-art{overflow:hidden;min-height:260px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 44%),color-mix(in srgb,var(--surface-2),transparent 18%)}.about-hero-art img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;object-position:center;opacity:.96}.about-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.about-card{display:grid;gap:12px}.about-card p,.about-card li{color:var(--muted)}.about-card ul{margin:0;padding-left:18px;display:grid;gap:10px}.about-card li::marker{color:var(--accent-2)}.about-actions{margin-top:2px}.about-claim{text-align:center}.about-claim p{margin:0}.site-footer{display:grid;gap:18px}.site-footer-grid{display:grid;gap:18px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}.site-footer-brand{display:grid;gap:10px;max-width:560px}.site-footer-blurb{margin:0;color:var(--muted);line-height:1.65}.site-footer-columns{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.site-footer-section{display:grid;gap:10px}.site-footer-section h2{margin:0;color:var(--text);font-size:.8rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.site-footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.site-footer-link-item{display:block}.site-footer-link{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-2),transparent 6%);color:var(--text);text-align:left;box-shadow:var(--control-shadow);cursor:pointer}.site-footer-link:hover{border-color:var(--control-border-hover);background:var(--control-surface-hover)}.site-footer-link-icon{display:inline-grid;place-items:center;flex:0 0 auto;min-width:18px;color:var(--accent-2);font-size:.92rem;line-height:1}.site-footer-link--nav span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:800}.site-footer-socials{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.footer-social-link{justify-content:flex-start;gap:10px;width:100%}.site-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.site-footer-copy{margin:0;color:var(--muted);font-size:.92rem}@media (min-width: 760px){.seo-hero{grid-template-columns:1.15fr .85fr;align-items:stretch}}@media (max-width: 640px){.seo-textbook-shell{width:min(100% - 18px,1180px);padding-top:12px}.seo-topbar{align-items:flex-start;flex-direction:column}.seo-hero h1{font-size:clamp(2.4rem,16vw,4.6rem)}}@media (max-width: 767px){.app-sidebar{display:none}.app-header,.app-main{margin-left:0;width:100%}.app-header{flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;padding-right:10px;padding-left:10px}.app-header::-webkit-scrollbar{display:none}.app-main{padding-bottom:calc(var(--mobile-nav-height) + 18px + env(safe-area-inset-bottom))}.brand-mark{width:min(28vw,112px);flex:0 0 auto}.header-social-toggle,.header-social-actions,.header-actions{flex:0 0 auto}.bottom-nav{display:inline-grid;left:50%}}@media (min-width: 768px){.app-header .brand-mark{display:none}}@media (max-width: 760px){.about-head{gap:14px}.about-head .actions{justify-content:flex-start}.about-hero{grid-template-columns:1fr}.about-hero-art{min-height:200px}.site-footer-grid{grid-template-columns:1fr;gap:16px}.site-footer-columns,.site-footer-nav,.site-footer-socials{grid-template-columns:1fr}}@media (max-width: 640px){.app-header{gap:5px;padding-top:calc(env(safe-area-inset-top) + 8px);padding-right:8px;padding-left:8px}.brand-mark{width:min(26vw,92px);height:36px}.brand-mark img{max-height:36px}.icon-btn{width:34px;height:34px}.icon-btn svg{width:16px;height:16px}.header-actions,.header-social-actions{gap:5px}.bottom-nav{display:inline-grid;width:min(calc(100% - 12px),max-content);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.bottom-nav::-webkit-scrollbar{display:none}}.n1-course-page{--n1-line: color-mix(in srgb, var(--accent-2), transparent 55%)}.n1-hero{border-color:var(--n1-line);background:radial-gradient(circle at 18% 12%,color-mix(in srgb,var(--accent-2),transparent 68%),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--surface),transparent 2%),color-mix(in srgb,var(--bg),transparent 10%))}.n1-serious-panel{border-color:var(--n1-line)}.n1-cycle{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px}.n1-cycle span{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--surface-2),transparent 6%);color:var(--text);font-size:.8rem;font-weight:900;text-align:center;text-transform:uppercase}.n1-lesson-summary{align-items:stretch}.n1-self-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.n1-self-check-card{display:grid;gap:8px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--surface),transparent 4%)}.n1-self-check-card strong{font-family:"Noto Serif JP",Yu Mincho,serif;font-size:clamp(2rem,9vw,3.4rem);line-height:1}.n1-self-check-card span{color:var(--muted);font-size:.82rem;font-weight:800}.n1-self-check-card.is-know{border-color:color-mix(in srgb,var(--success),transparent 30%)}.n1-self-check-card.is-difficult{border-color:color-mix(in srgb,var(--danger),transparent 22%)}.n1-self-check-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.n1-self-check-actions button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:color-mix(in srgb,var(--surface-2),transparent 8%);color:var(--text);font-size:.72rem;font-weight:900}.n1-vocab-panel .n2-grammar-card h3{font-family:"Noto Serif JP",Yu Mincho,serif;font-size:clamp(1.35rem,5vw,2.1rem)}.n1-furigana-line{color:var(--muted);font-size:.95rem;line-height:1.7}.n1-diagnostic-page .n5-exercise-card h3{line-height:1.45}.n1-lesson-tile.started,.n1-lesson-tile.in-progress{border-color:color-mix(in srgb,var(--accent-2),transparent 32%)}.n1-lesson-tile.completed{border-color:color-mix(in srgb,var(--success),transparent 34%)}@media (max-width: 640px){.n1-course-page .textbook-actions{grid-template-columns:1fr}.n1-cycle{grid-template-columns:repeat(2,minmax(0,1fr))}}.home-shell{display:grid;gap:18px}.home-hero-card{position:relative;display:grid;align-content:start;gap:14px;min-height:420px;padding:clamp(20px,3vw,42px);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,#07080cf5,#07080ce0 42%,#07080c6b),url(../assets/brand/study-room.webp) center right / cover no-repeat;box-shadow:0 24px 60px var(--shadow)}.home-hero-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 84% 18%,rgba(255,225,90,.12),transparent 20%),linear-gradient(180deg,#07080c0f,#07080c61);pointer-events:none}.home-hero-card:after{content:"";position:absolute;inset:14px;border:1px solid color-mix(in srgb,var(--accent-2),transparent 80%);border-radius:7px;pointer-events:none}.home-hero-copy{position:relative;z-index:1;display:grid;gap:14px;max-width:720px}.home-hero-card .hero-title{max-width:12ch;margin:0;font-family:var(--kanji-font);font-size:clamp(3.2rem,6.5vw,6.4rem);font-weight:400;line-height:.92;letter-spacing:0;text-transform:none;text-shadow:4px 4px 0 color-mix(in srgb,var(--accent),transparent 8%)}.home-hero-card .hero-title em{color:var(--accent-2);font-style:italic}.home-hero-card .hero-subtitle{max-width:56ch;margin-top:0;font-size:1rem;line-height:1.65}.home-hero-note{margin:0;max-width:50ch;color:color-mix(in srgb,var(--text),transparent 10%);font-size:1rem;line-height:1.6}.home-hero-moon{position:absolute;top:18px;right:clamp(12px,4vw,56px);width:min(30vw,186px);opacity:.88;pointer-events:none;filter:drop-shadow(0 18px 34px rgba(0,0,0,.34))}.home-hero-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;max-width:460px}.home-hero-progress .progress-line{margin:0}.home-hero-progress b{color:var(--accent-2);font-size:.95rem;font-weight:900}.home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.home-metrics .metric{min-height:96px}.home-dashboard{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.76fr);gap:18px;align-items:start}.home-dashboard-main,.home-dashboard-side{display:grid;gap:18px}.home-dashboard-side{align-self:start}.home-route-card,.home-task-card,.home-install-card{padding:18px}.home-route-card .section-head,.home-task-card .section-head{margin:0 0 14px}.home-route-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.home-route-step{display:grid;width:100%;justify-items:start;gap:8px;align-content:start;min-height:146px;padding:12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-2),transparent 2%);box-shadow:0 14px 30px var(--shadow);color:inherit;font:inherit;text-align:left;cursor:pointer;appearance:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.home-route-step:hover{transform:translateY(-1px)}.home-route-step:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-route-step-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--line);border-radius:8px;color:var(--accent-2);font-family:var(--kanji-font);font-size:2rem;background:color-mix(in srgb,var(--accent),transparent 88%)}.home-route-step-icon--level{font-family:var(--ui-font);font-size:1.1rem;font-weight:800;letter-spacing:.04em}.home-route-step strong{font-size:.95rem}.home-route-step small{color:var(--muted);font-size:.82rem}.home-route-step.is-done{border-color:color-mix(in srgb,var(--accent-3),transparent 42%);background:color-mix(in srgb,var(--surface),var(--accent-3) 7%)}.home-route-step.is-current{border-color:color-mix(in srgb,var(--accent),transparent 22%);background:color-mix(in srgb,var(--surface),var(--accent) 8%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent),transparent 68%),0 18px 36px color-mix(in srgb,var(--accent),transparent 82%)}.home-route-step.is-current .home-route-step-icon{color:var(--text);background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent-2),transparent 18%));box-shadow:0 12px 24px color-mix(in srgb,var(--accent),transparent 72%)}.home-task-list{display:grid;gap:10px}.home-task-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:74px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);box-shadow:0 16px 36px var(--shadow);text-align:left;cursor:pointer}.home-task-item:hover{border-color:var(--line-strong);background:var(--control-surface-hover)}.home-task-item-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;color:var(--accent-2);background:color-mix(in srgb,var(--accent),transparent 88%);font-family:var(--kanji-font);font-size:1.6rem}.home-task-item-copy{display:grid;gap:2px;min-width:0}.home-task-item-copy strong{font-size:.98rem}.home-task-item-copy p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}.home-task-item-count{color:var(--accent-2);font-size:1.35rem;font-weight:900}.home-dashboard-side .home-eva-vn{min-height:100%}.home-dashboard-side .home-eva-vn .home-eva-avatar img{max-height:420px}.home-install-card{display:grid;gap:8px}.home-install-card .btn{width:fit-content}.home-primary-card{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(150deg,color-mix(in srgb,var(--accent),transparent 82%),transparent 44%),linear-gradient(24deg,color-mix(in srgb,var(--accent-3),transparent 84%),transparent 56%),var(--surface);box-shadow:0 24px 60px var(--shadow)}.home-primary-copy{display:grid;gap:14px}.home-next-lesson{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.home-next-lesson strong{font-size:clamp(1.25rem,3vw,2rem);line-height:1.04}.home-next-lesson p{margin:0;color:var(--muted)}.home-summary-strip,.lesson-result-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-summary-card{min-height:92px;padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);box-shadow:0 16px 36px var(--shadow)}.home-summary-card strong{display:block;margin-top:8px;font-size:1.55rem;line-height:1}.home-primary-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.home-primary-cta{width:100%;max-width:none}.home-install-cta{display:grid;gap:8px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.home-install-cta .btn{width:fit-content}.home-install-hint{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}.home-eva-stage{display:flex}.home-eva-compact{width:100%;min-height:280px;display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-3),transparent 88%),transparent 56%),var(--surface-2);overflow:hidden}.home-eva-compact-copy{display:grid;gap:12px;align-self:stretch}.home-eva-compact .home-eva-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.home-eva-compact .eva-dialogue-text{margin:0;font-size:1rem}.home-eva-compact-avatar{align-self:end;justify-self:end;padding:0;border:0;background:none;box-shadow:none}.home-eva-compact-avatar img{width:min(100%,180px);max-height:280px;object-fit:contain}@media (max-width: 1100px){.home-dashboard{grid-template-columns:1fr}.home-route-track{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 760px){.home-hero-card{min-height:0;padding:20px}.home-hero-card .hero-title{font-size:clamp(2.8rem,14vw,4.8rem)}.home-hero-moon{width:132px;right:10px;top:12px;opacity:.66}.home-metrics,.home-route-track{grid-template-columns:repeat(2,minmax(0,1fr))}.home-dashboard-side .home-eva-vn{min-height:0}}@media (max-width: 520px){.home-route-track{grid-template-columns:1fr}.home-task-item{grid-template-columns:44px minmax(0,1fr)}.home-task-item-count{grid-column:2;justify-self:end}}.learning-path-page{display:grid;gap:14px}.learning-path-hero{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 42px var(--shadow)}.learning-path-hero h2,.learning-path-node-copy h2,.lesson-player-card h2{margin:0}.learning-path-hero p,.learning-path-node-copy p,.lesson-player-card p,.lesson-player-card small{margin:0;color:var(--muted)}.learning-path-timeline{display:grid;gap:12px}.learning-path-node{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;width:100%;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);text-align:left;box-shadow:0 16px 38px var(--shadow)}.learning-path-node:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2)}.learning-path-node:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}.learning-path-node.is-current{border-color:color-mix(in srgb,var(--accent),transparent 24%);background:color-mix(in srgb,var(--surface),var(--accent) 9%)}.learning-path-node.is-completed{border-color:color-mix(in srgb,var(--accent-3),transparent 24%);background:color-mix(in srgb,var(--surface),var(--accent-3) 9%)}.learning-path-node.is-review{border-color:color-mix(in srgb,var(--accent-2),transparent 18%);background:color-mix(in srgb,var(--surface),var(--accent-2) 12%)}.learning-path-node.is-checkpoint{border-color:color-mix(in srgb,var(--accent-4),transparent 20%)}.learning-path-node-index{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-weight:800}.learning-path-node-copy{min-width:0;display:grid;gap:8px}.learning-path-node-meta,.lesson-player-actions{display:flex;flex-wrap:wrap;gap:10px}.learning-path-node-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.learning-path-node-foot small{color:var(--muted)}.lesson-player{min-height:auto;display:grid;gap:16px}.lesson-player-progress{display:grid;gap:8px}.lesson-player-progress strong{font-size:1.1rem}.lesson-player-card{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.lesson-player-kanji{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:16px;align-items:start}.lesson-player-glyph{display:flex;align-items:center;justify-content:center;min-height:180px;border:1px solid var(--line);border-radius:8px;background:var(--kanji-panel);font-family:var(--kanji-font);font-size:clamp(4rem,9vw,5.5rem);line-height:1}.lesson-player-kanji-copy{display:grid;gap:12px}.lesson-player-sentence{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.lesson-player-sentence strong,.lesson-player-sentence p,.lesson-player-sentence small{margin:0}.lesson-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lesson-choice-grid .btn{width:100%;min-height:54px;justify-content:flex-start;text-align:left}.lesson-study-actions .btn{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:62px;white-space:normal}.lesson-study-actions .btn small{color:color-mix(in srgb,currentColor,transparent 32%)}.pwa-install-help-list{display:grid;gap:8px;margin:14px 0 12px;padding-left:20px;color:var(--text)}.pwa-install-help-list li{line-height:1.45}.lesson-player-feedback{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}@media (min-width: 920px){.home-primary-card{grid-template-columns:minmax(0,1.15fr) 340px;align-items:stretch}}@media (max-width: 860px){.home-summary-strip,.lesson-result-panel,.lesson-choice-grid{grid-template-columns:1fr}.home-primary-cta{max-width:none}.home-eva-compact,.lesson-player-kanji{grid-template-columns:1fr}.home-eva-compact-avatar{justify-self:center}}
