*{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);margin:0}.skeleton{background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-border) 50%,var(--color-surface-2) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite skeletonShimmer;display:block}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.site-header{padding:var(--space-3) var(--space-5);background:var(--color-surface);box-shadow:0 1px 0 var(--color-border);justify-content:space-between;align-items:center;display:flex}.logo{color:var(--color-brand);font-weight:700}.top-nav a{color:var(--color-text-muted);margin-left:14px;text-decoration:none}.top-nav a.active{color:var(--color-brand-strong);font-weight:600}.hero{text-align:center;padding:36px 20px}.five-col{grid-template-columns:56px repeat(4,1fr);gap:12px;padding:12px;display:grid}.five-col>.col{min-height:0}.col{background:var(--color-surface);border-radius:8px;min-height:120px;padding:10px}.col h2{margin:0 0 8px;font-size:15px}.card h3{margin:6px 0;font-size:15px}.card .example{color:var(--color-text-muted);font-size:var(--font-size-sm)}.en{border-top:4px solid var(--en)}.ko{border-top:4px solid var(--ko)}.zh{border-top:4px solid var(--zh)}.ja{border-top:4px solid var(--ja)}.quiz{padding:20px}.hidden{display:none}@media (max-width:900px){.five-col{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.five-col{grid-template-columns:1fr}.site-header{flex-direction:column;align-items:flex-start}}.card{margin-bottom:10px}.app-shell{min-height:100vh;display:flex}.left-pane{background:var(--color-surface);width:220px;padding:var(--space-5);border-right:1px solid var(--color-border);height:100vh;position:relative;top:0}.left-pane .logo{margin-bottom:12px;font-size:18px}.side-nav{flex-direction:column;gap:2px;display:flex}.nav-link{min-height:var(--tap-min);color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:background var(--transition-fast);align-items:center;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-surface-2)}.nav-link.active{background:color-mix(in srgb,var(--color-brand) 12%,transparent);color:var(--color-brand-soft-text);box-shadow:inset 3px 0 0 var(--color-brand);font-weight:600}.left-pane.open{z-index:60;position:fixed;left:0;box-shadow:6px 0 24px #0000001f}.side-nav.open{display:flex}.content{flex-direction:column;flex:1;display:flex}.site-header-compact{background:0 0;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}main{flex:1;padding:0}.site-footer{background:var(--color-surface);border-top:1px solid var(--color-border);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);padding:18px 20px}.site-footer .nav-link{color:var(--color-text-muted);margin-left:8px}.site-header,.site-header .header-left{align-items:center;gap:12px;display:flex}.site-header .header-center{flex:1;justify-content:center;display:flex}.header-search{width:60%;max-width:520px;min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.header-actions{align-items:center;gap:8px;display:flex}.icon-btn{min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);background:0 0;border:none;font-size:20px;position:relative}.icon-btn:hover{background:var(--color-surface-2)}.icon-btn .badge{background:var(--color-danger);color:#fff;font-size:var(--font-size-xs);border-radius:999px;padding:2px 6px;position:absolute;top:4px;right:4px}.avatar-btn{min-width:var(--tap-min);min-height:var(--tap-min);background:0 0;border:none;padding:0}.avatar{background:var(--color-brand-strong);width:40px;height:40px;color:var(--color-on-brand);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}@media (max-width:900px){.header-search{width:80%}.header-center{justify-content:flex-start;padding-left:16px}}.dropdown{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-2);border-radius:var(--radius-md);padding:var(--space-2);z-index:120;min-width:200px;position:absolute}.dropdown.hidden{display:none}.dropdown-wrap{position:relative}.notif-dropdown,.avatar-menu{top:44px;right:0}.notif-dropdown ul,.avatar-menu ul{margin:0;padding:0;list-style:none}.notif-dropdown li,.avatar-menu li{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.notif-dropdown li:last-child,.avatar-menu li:last-child{border-bottom:none}.notif-dropdown li:hover,.avatar-menu li:hover{background:var(--color-surface-2)}.search-hit{background:#ff0;border-radius:2px;padding:0 2px}.search-hit::selection{background:orange}.short-story-vocab{color:#342900;font:inherit;text-underline-offset:3px;cursor:pointer;background:#fff0a8;border:0;border-radius:3px;padding:0 2px;font-weight:700;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline}.short-story-vocab:hover,.short-story-vocab[aria-pressed=true]{background:#ffdc63}.short-story-vocab:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.short-story-vocabulary-panel{border-radius:var(--radius-sm);background:var(--color-surface-2);padding:10px 12px}.short-story-reading-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.short-story-language-ko{--story-language-accent:var(--ko)}.short-story-language-en{--story-language-accent:var(--en)}.short-story-language-zh{--story-language-accent:var(--zh)}.short-story-language-ja{--story-language-accent:var(--ja)}.short-story-single-reading{border-top:3px solid var(--story-language-accent);padding:16px 0 4px}.short-story-language-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.short-story-language-panel{border:1px solid var(--color-border);border-top:3px solid var(--story-language-accent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--story-language-accent) 7%,var(--color-surface));min-width:0;padding:12px}.short-story-language-label{font-size:var(--font-size-sm);color:var(--color-text);align-items:center;gap:7px;margin-bottom:8px;font-weight:700;display:inline-flex}.short-story-language-label>span:first-child,.short-story-vocabulary-translation>span:first-child{border:1px solid var(--story-language-accent);border-radius:999px;place-items:center;min-width:2.1em;padding:2px 5px;font-size:.72em;line-height:1.35;display:inline-grid}.short-story-language-text{overflow-wrap:anywhere;margin:0;line-height:1.75}.short-story-pronunciation{border-top:1px solid var(--color-border);color:var(--color-text-muted);overflow-wrap:anywhere;padding-top:8px;font-size:.9em;line-height:1.55;margin-top:8px!important}.short-story-pronunciation-label{color:var(--color-text);margin-bottom:2px;font-size:.8em;font-weight:700;display:block}.short-story-word-breakdown,.short-story-analysis-details{border-top:1px solid var(--color-border);margin-top:10px;padding-top:8px}.short-story-word-breakdown summary,.short-story-analysis-details summary{width:fit-content;color:var(--color-text);cursor:pointer;text-underline-offset:3px;font-weight:600}.short-story-word-breakdown summary:focus-visible,.short-story-analysis-details summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:2px}.short-story-word-breakdown p{margin-top:8px}.short-story-analysis-details ul{padding-left:1.25rem}.short-story-vocabulary-panel .short-story-vocab{vertical-align:top;flex-wrap:wrap;gap:5px 9px;display:inline-flex}.short-story-vocabulary-translation{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.short-story-vocabulary-translation>span:first-child{font-size:.72em}.short-story-audio-controls{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.short-story-audio-language{font-size:var(--font-size-sm);align-items:center;gap:8px;font-weight:600;display:inline-flex}.short-story-audio-language .form-select{width:auto;min-width:120px}.short-story-language-panel-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.short-story-language-panel-heading .short-story-language-label{margin-bottom:0}.short-story-listen-button{flex:none;justify-content:center;align-items:center;gap:5px;display:inline-flex}.short-story-audio-controls button:focus-visible,.short-story-listen-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.short-story-audio-controls [role=status],.short-story-audio-controls [role=alert]{flex:100%;min-width:0}:root[data-theme=dark] .short-story-vocab{color:#fff4c2;background:#66520b}:root[data-theme=dark] .short-story-vocab:hover,:root[data-theme=dark] .short-story-vocab[aria-pressed=true]{background:#856b11}.short-story-reader-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.short-story-reader-nav .btn-link{text-underline-offset:3px}.short-story-reader-nav .btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.short-story-position{font-variant-numeric:tabular-nums;color:var(--color-text);font-weight:600}.list-group-item.short-story-list-item-active{z-index:1;background:color-mix(in srgb,var(--primary) 12%,var(--color-surface));border-color:color-mix(in srgb,var(--primary) 55%,var(--color-border));box-shadow:0 2px 10px color-mix(in srgb,var(--primary) 18%,transparent);scroll-margin-block:96px}.list-group-item.short-story-list-item-active:before{color:var(--primary);font-weight:700}.list-group-item.short-story-list-item-active::marker{color:var(--primary);font-weight:700}.short-story-now-reading{border:1px solid var(--primary);background:color-mix(in srgb,var(--primary) 22%,var(--color-surface));color:var(--color-text);font-size:var(--font-size-sm);vertical-align:1px;border-radius:999px;padding:1px 8px;font-weight:600;display:inline-block}@media (max-width:700px){.short-story-reading-toolbar{flex-direction:column;align-items:flex-start}.short-story-language-grid{grid-template-columns:minmax(0,1fr)}.short-story-language-panel{padding:10px}.short-story-audio-language{justify-content:space-between;width:100%}.short-story-audio-controls>.btn{flex:auto}.short-story-reader-nav .btn-outline-secondary{flex:40%}.short-story-reader-nav .btn-link{flex:100%;order:3}}@media (max-width:900px){.left-pane{background:var(--color-surface);width:280px;height:100vh;padding:var(--space-5);border-right:1px solid var(--color-border);transition:left .28s;position:fixed;top:0;left:-280px}.app-shell{display:block}}.hamburger{min-width:var(--tap-min);min-height:var(--tap-min);cursor:pointer;color:var(--color-text);background:0 0;border:none;padding:6px 10px;font-size:22px;display:none}.mobile-overlay{z-index:40;pointer-events:none;opacity:0;background:0 0;transition:opacity .24s,background .24s;position:fixed;inset:0}body.menu-open .mobile-overlay{pointer-events:auto;opacity:1;background:#00000059}body.menu-open .left-pane{z-index:50;transition:left .28s,box-shadow .28s;position:fixed;left:0;box-shadow:6px 0 24px #0000001f}body.menu-open .content{pointer-events:none}@media (max-width:900px){.hamburger{display:inline-block}body.menu-open .left-pane{left:0}.content{min-height:100vh}.hamburger{z-index:60;background:var(--color-surface);border-radius:var(--radius-sm);position:fixed;top:12px;left:12px}.left-pane .hamburger{z-index:60;background:var(--color-surface);border-radius:var(--radius-sm);position:fixed;top:12px;left:12px;right:auto;box-shadow:0 1px 4px #0000001f}body.menu-open .left-pane .hamburger{box-shadow:none;background:0 0;left:224px}}.bg-gradient{background:linear-gradient(180deg,var(--color-surface),var(--color-surface-2))}.progress-track{background:var(--color-brand-soft);border-radius:8px;position:relative;overflow:hidden}.progress-fill{background:var(--color-brand);height:100%;width:var(--overall-pct,0%);transition:width .3s cubic-bezier(.2,.8,.2,1)}.progress-track-small{background:var(--color-surface-2);border-radius:8px;position:relative;overflow:hidden}.progress-fill-small{background:var(--color-brand);opacity:.7;height:100%;width:var(--playback-pct,0%);transition:width .16s linear}.surface-card{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1)}.surface-muted{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.text-body-strong{color:var(--color-text)}.thumb-placeholder{color:var(--color-text-subtle)}.caption-text{overflow-wrap:anywhere;word-break:break-word;white-space:normal;line-height:1.5}.side-card{background:var(--color-surface-2);border-radius:var(--radius-md);width:360px;padding:18px}.flashcard{background:var(--color-surface);border-radius:var(--radius-md);width:400px;height:220px;padding:16px;box-shadow:0 6px 18px #00000014}.left-logo-img{width:auto;height:56px;display:block}.frame-image{max-width:960px}.responsive-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px;display:grid}.caption-grid{opacity:.95;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:10px;display:grid}.caption-row{border-radius:8px;grid-template-columns:repeat(4,1fr);align-items:start;gap:16px;padding:10px 8px;display:grid}.thumb-img{object-fit:contain;background:var(--color-surface-2);height:var(--thumb-h,72px);max-width:var(--thumb-w,120px);border-radius:6px;width:auto;padding:2px;display:block}.thumb-active{border:2px solid #2b6cff24;box-shadow:0 8px 24px #0003}.thumb-inactive{border:1px solid #0000000f}.story-page .thumb-strip{scrollbar-width:thin;scrollbar-color:#3b82f680 transparent;scrollbar-gutter:stable both-edges;-webkit-overflow-scrolling:touch;overflow:auto hidden}.story-page .thumb-strip::-webkit-scrollbar{height:10px}.story-page .thumb-strip::-webkit-scrollbar-track{background:#0000000d;border-radius:999px}.story-page .thumb-strip::-webkit-scrollbar-thumb{background:#3b82f659;border-radius:999px}.story-page .thumb-strip::-webkit-scrollbar-thumb:hover{background:#3b82f68c}.help-cursor{cursor:help;opacity:.8}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.thumb-btn:focus{outline-offset:3px;border-radius:8px;outline:3px solid #2b6cff3d}.thumb-btn:focus-visible .thumb-img,.thumb-btn[aria-pressed=true] .thumb-img{box-shadow:var(--shadow-2);border:3px solid var(--color-brand)}.caption-row .btn:focus{outline-offset:2px;outline:3px solid #2b6cff29}@media (prefers-reduced-motion:reduce){.progress-fill,.progress-fill-small{transition:none!important}}.voice-panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-1);border-radius:8px;padding:8px}.voice-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.voice-row label{min-width:48px}.row-active{background:var(--color-brand-soft);border:1px solid var(--color-brand)}.row-alt{background:var(--color-surface-2)}.pct-label{width:46px}.progress-container{max-width:760px;padding:0 6px}.progress-height{height:12px}.progress-height-small{height:10px}@media (prefers-color-scheme:dark){.responsive-grid article .thumb-img{object-fit:cover;background:0 0;border-radius:8px;width:100%;height:180px;max-height:220px;padding:0}@media (max-width:900px){.responsive-grid article .thumb-img{height:140px}}.responsive-grid article .story-thumb-wrapper{border-radius:8px;transition:transform .18s;display:block;overflow:hidden}.responsive-grid article .story-thumb-wrapper .thumb-img{will-change:transform,box-shadow;width:100%;height:100%;transition:transform .22s cubic-bezier(.2,.9,.2,1),box-shadow .18s;display:block}.responsive-grid article .story-thumb-wrapper:hover .thumb-img,.responsive-grid article .story-thumb-wrapper:focus .thumb-img,.responsive-grid article .story-thumb-wrapper:focus-visible .thumb-img{transform:scale(1.04);box-shadow:0 18px 40px #02061752}.responsive-grid article .story-thumb-wrapper:active .thumb-img{transform:scale(.995);box-shadow:0 8px 18px #02061733}.responsive-grid article .story-thumb-wrapper:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}}:root[data-theme=dark] .text-dark{color:var(--text)!important}:root[data-theme=dark] .bg-white,:root[data-theme=dark] .card,:root[data-theme=dark] .dropdown,:root[data-theme=dark] .left-pane{background-color:var(--bg-card)!important}:root[data-theme=dark] a,:root[data-theme=dark] a.nav-link{color:var(--bs-link-color)!important}:root[data-theme=dark] a:hover,:root[data-theme=dark] a.nav-link:hover{color:var(--bs-link-hover-color)!important}:root[data-theme=dark] .nav-link.active{background:color-mix(in srgb,var(--color-brand) 28%,transparent);color:#fff!important}:root[data-theme=dark] .btn-primary{background-color:var(--lp-btn-bg)!important;border-color:color-mix(in srgb, var(--lp-btn-bg) 80%, black)!important;color:var(--lp-btn-color)!important;box-shadow:0 6px 18px color-mix(in srgb, var(--lp-btn-bg) 18%, black)!important}:root[data-theme=dark] .btn-primary:hover{background-color:var(--lp-btn-primary-bg-hover)!important;color:var(--lp-btn-primary-color)!important}:root[data-theme=dark] .btn-outline-primary{border-color:var(--lp-btn-bg)!important;color:var(--lp-btn-bg)!important}:root[data-theme=dark] .btn-outline-primary:hover{background-color:var(--lp-btn-primary-bg-hover)!important;color:var(--lp-btn-primary-color)!important}:root[data-theme=dark] .btn-secondary{background-color:var(--lp-btn-secondary-bg)!important;color:var(--lp-btn-secondary-color)!important;border-color:color-mix(in srgb, var(--lp-btn-secondary-bg) 80%, black)!important}:root[data-theme=dark] .btn-secondary:hover{background-color:var(--lp-btn-secondary-bg-hover)!important;color:var(--lp-btn-secondary-color)!important}:root[data-theme=dark] .btn-outline-secondary{border-color:var(--lp-btn-secondary-bg)!important;color:var(--lp-btn-secondary-bg)!important}:root[data-theme=dark] .btn-outline-secondary:hover{background-color:var(--lp-btn-secondary-bg-hover)!important;color:var(--lp-btn-secondary-color)!important}:root[data-theme=dark] .btn-success{background-color:var(--lp-btn-success-bg)!important;color:var(--lp-btn-success-color)!important;border-color:color-mix(in srgb, var(--lp-btn-success-bg) 80%, black)!important}:root[data-theme=dark] .btn-success:hover{background-color:var(--lp-btn-success-bg-hover)!important;color:var(--lp-btn-success-color)!important}:root[data-theme=dark] .btn-outline-success{border-color:var(--lp-btn-success-bg)!important;color:var(--lp-btn-success-bg)!important}:root[data-theme=dark] .btn-outline-success:hover{background-color:var(--lp-btn-success-bg-hover)!important;color:var(--lp-btn-success-color)!important}:root[data-theme=dark] .btn-danger{background-color:var(--lp-btn-danger-bg)!important;color:var(--lp-btn-danger-color)!important;border-color:color-mix(in srgb, var(--lp-btn-danger-bg) 80%, black)!important}:root[data-theme=dark] .btn-danger:hover{background-color:var(--lp-btn-danger-bg-hover)!important;color:var(--lp-btn-danger-color)!important}:root[data-theme=dark] .btn-outline-danger{border-color:var(--lp-btn-danger-bg)!important;color:var(--lp-btn-danger-bg)!important}:root[data-theme=dark] .btn-outline-danger:hover{background-color:var(--lp-btn-danger-bg-hover)!important;color:var(--lp-btn-danger-color)!important}:root[data-theme=dark] .btn-warning{background-color:var(--lp-btn-warning-bg)!important;color:var(--lp-btn-warning-color)!important;border-color:color-mix(in srgb, var(--lp-btn-warning-bg) 80%, black)!important}:root[data-theme=dark] .btn-warning:hover{background-color:var(--lp-btn-warning-bg-hover)!important;color:var(--lp-btn-warning-color)!important}:root[data-theme=dark] .btn-outline-warning{border-color:var(--lp-btn-warning-bg)!important;color:var(--lp-btn-warning-bg)!important}:root[data-theme=dark] .btn-outline-warning:hover{background-color:var(--lp-btn-warning-bg-hover)!important;color:var(--lp-btn-warning-color)!important}:root[data-theme=dark] .btn-info{background-color:var(--lp-btn-info-bg)!important;color:var(--lp-btn-info-color)!important;border-color:color-mix(in srgb, var(--lp-btn-info-bg) 80%, black)!important}:root[data-theme=dark] .btn-info:hover{background-color:var(--lp-btn-info-bg-hover)!important;color:var(--lp-btn-info-color)!important}:root[data-theme=dark] .btn-outline-info{border-color:var(--lp-btn-info-bg)!important;color:var(--lp-btn-info-bg)!important}:root[data-theme=dark] .btn-outline-info:hover{background-color:var(--lp-btn-info-bg-hover)!important;color:var(--lp-btn-info-color)!important}:root[data-theme=dark] .btn-light{background-color:var(--lp-btn-light-bg)!important;color:var(--lp-btn-light-color)!important;border-color:color-mix(in srgb, var(--lp-btn-light-bg) 80%, black)!important}:root[data-theme=dark] .btn-light:hover{background-color:var(--lp-btn-light-bg-hover)!important;color:var(--lp-btn-light-color)!important}:root[data-theme=dark] .btn-outline-light{border-color:var(--lp-btn-light-bg)!important;color:var(--lp-btn-light-bg)!important}:root[data-theme=dark] .btn-outline-light:hover{background-color:var(--lp-btn-light-bg-hover)!important;color:var(--lp-btn-light-color)!important}:root[data-theme=dark] .btn-dark{background-color:var(--lp-btn-dark-bg)!important;color:var(--lp-btn-dark-color)!important;border-color:color-mix(in srgb, var(--lp-btn-dark-bg) 80%, black)!important}:root[data-theme=dark] .btn-dark:hover{background-color:var(--lp-btn-dark-bg-hover)!important;color:var(--lp-btn-dark-color)!important}:root[data-theme=dark] .btn-outline-dark{border-color:var(--lp-btn-dark-bg)!important;color:var(--lp-btn-dark-bg)!important}:root[data-theme=dark] .btn-outline-dark:hover{background-color:var(--lp-btn-dark-bg-hover)!important;color:var(--lp-btn-dark-color)!important}:root[data-theme=dark] .btn:focus,:root[data-theme=dark] .btn:focus-visible{outline:3px solid var(--lp-focus-ring,#60a5fa2e);outline-offset:2px}.story-page .story-play-toggle{pointer-events:auto;z-index:60;position:relative}.story-page .story-play-toggle:focus{outline-offset:3px;outline:3px solid #60a5fa29}.story-page .story-play-toggle[data-playing=true]{opacity:.6;cursor:not-allowed;transform:none}.fc-container{flex-direction:column;align-items:center;margin-top:24px;display:flex}.fc-card{cursor:pointer;perspective:1200px;border-radius:12px;width:420px;max-width:calc(100vw - 32px);height:220px;transition:box-shadow .2s}.fc-card:hover{box-shadow:var(--shadow-2)}.fc-inner{width:100%;height:100%;box-shadow:var(--shadow-2);transform-style:preserve-3d;border-radius:12px;transition:transform .6s cubic-bezier(.2,.9,.3,1);position:relative}.fc-card.fc-flipped .fc-inner{transform:rotateY(180deg)scale(1.02)}.fc-face{backface-visibility:hidden;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:18px;display:flex;position:absolute;inset:0}.fc-front{background:var(--color-surface);color:var(--color-text);font-size:22px}.fc-back{background:var(--color-info-soft);color:var(--color-info-text);justify-content:center;align-items:flex-start;gap:6px;padding:18px 20px;transform:rotateY(180deg)}.fc-word{font-size:26px;font-weight:700}.fc-sound{cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);background:0 0;border:0;margin-left:10px;font-size:20px}.fc-sound:hover{background:var(--color-surface-2)}.fc-play-all{cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-md);background:0 0;border:0;font-size:20px;position:absolute;top:6px;right:6px}.fc-play-all:hover{background:var(--color-surface-2)}.fc-back-row{justify-content:space-between;align-items:center;width:100%;font-size:15px;display:flex}.fc-lang{flex:1}.fc-tooltip{cursor:help;position:relative}.fc-tooltip:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;z-index:40;opacity:0;pointer-events:none;background:#0a0a0ae6;border-radius:6px;padding:4px 8px;font-size:12px;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:0}.fc-tooltip:hover:after{opacity:1}.fc-hint{color:var(--color-text-subtle);font-size:var(--font-size-sm);margin-top:10px}.fc-controls{justify-content:center;align-items:center;gap:12px;display:flex}.fc-counter{text-align:center;min-width:64px;color:var(--color-text-muted);font-weight:600}.hub-page{max-width:720px;padding:var(--space-4) 0 var(--space-7)}.hub-more>summary{cursor:pointer;min-height:var(--tap-min);padding:0 var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);align-items:center;font-weight:600;display:flex}.hub-more[open]>summary{margin-bottom:var(--space-3)}.hub-more-body{gap:var(--space-4);flex-direction:column;display:flex}.skip-link{z-index:1000;background:var(--color-brand-strong);color:var(--color-on-brand);border-radius:var(--radius-md);padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.timeup-overlay{z-index:900;background:var(--color-surface);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.timeup-card{text-align:center;max-width:380px}.timeup-form{gap:var(--space-2);margin:var(--space-3) 0;display:flex}.timeup-form .parent-pin-input{max-width:140px}.parent-select{min-height:var(--tap-min);max-width:200px}.parent-pin{max-width:360px}.parent-field{margin-bottom:var(--space-3);font-weight:600;display:block}.parent-pin-input{min-height:var(--tap-min);letter-spacing:.5em;text-align:center;font-size:var(--font-size-xl)}.parent-error{color:var(--color-danger);font-weight:600}.parent-stats{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(110px,1fr));display:grid}.parent-stat{background:var(--color-surface-2);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.parent-stat b{font-size:var(--font-size-xl);display:block}.parent-stat span{font-size:var(--font-size-sm);color:var(--color-text-muted)}.parent-weak{margin:0;padding:0;list-style:none}.parent-weak li{gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);align-items:baseline;display:flex}.parent-weak li span{color:var(--color-text-muted)}.parent-weak li em{color:var(--color-danger);font-style:normal;font-size:var(--font-size-sm);margin-left:auto}.parent-check{align-items:center;gap:var(--space-2);min-height:var(--tap-min);font-weight:600;display:flex}.parent-check input{width:22px;height:22px}.hub-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-1)}.hub-section-hd{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.hub-section-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 var(--space-2);font-weight:700}.hub-goal-desc{font-size:var(--font-size-sm)}.hub-bar-wrap{background:var(--color-border);border-radius:var(--radius-pill);height:8px;overflow:hidden}.hub-bar-fill{background:var(--color-brand);border-radius:var(--radius-pill);height:100%;transition:width .5s}.hub-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.hub-chip{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-sm);color:var(--color-text-muted);padding:4px 12px;font-weight:600}.hub-chip.done{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success-text)}.hub-streak{font-size:var(--font-size-sm);color:var(--color-warning);background:var(--color-warning-soft);border:1px solid var(--color-warning);border-radius:var(--radius-pill);padding:2px 10px;font-weight:700}.hub-streak.off{color:var(--color-text-muted);background:var(--color-surface-2);border-color:var(--color-border)}.hub-goal-rows{flex-direction:column;gap:10px;display:flex}.hub-goal-row-hd{font-size:var(--font-size-base);margin-bottom:var(--space-1);justify-content:space-between;font-weight:600;display:flex}.hub-goal-row .hub-bar-wrap{height:12px}.hub-goal-row.done .hub-bar-fill{background:var(--color-success)}.hub-goal-row.done b{color:var(--color-success)}.hub-goal{position:relative;overflow:hidden}.hub-mascot{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.hub-mascot-bubble{padding:var(--space-2) var(--space-3);background:var(--color-brand-soft);color:var(--color-brand-soft-text);border-radius:var(--radius-lg);font-size:var(--font-size-base);margin:0;font-weight:600;position:relative}.mascot{flex:none;animation:2.4s ease-in-out infinite mascotBob}.mascot-cheer{animation-duration:.9s}.quiz-finish-mascot{margin:0 auto var(--space-2);display:block}.quiz-mascot-msg{font-size:var(--font-size-lg);margin:0 0 var(--space-2);font-weight:700}@keyframes mascotBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.confetti{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.confetti-piece{opacity:.9;border-radius:2px;width:8px;height:14px;animation:2s ease-in forwards confettiFall;position:absolute;top:-12px}@keyframes confettiFall{to{opacity:0;transform:translateY(420px)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.mascot{animation:none}}body.focus-mode .bottom-nav,body.focus-mode .fab-wrap{display:none}.hub-cta{min-height:var(--tap-min);background:var(--color-cta);color:var(--color-on-cta);font-weight:700;font-size:var(--font-size-base);border-radius:var(--radius-pill);box-shadow:var(--shadow-cta);transition:background var(--transition-fast),transform var(--transition-fast);border:0;justify-content:center;align-items:center;padding:.55rem 1.6rem;display:inline-flex}.hub-cta:hover{background:var(--color-cta-hover);color:var(--color-on-cta);transform:translateY(-1px)}.hub-word-item{align-items:stretch;display:inline-flex}.hub-word-item .hub-word-chip{border-radius:var(--radius-md) 0 0 var(--radius-md)}.hub-speak-btn{min-width:var(--tap-min);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:0 var(--space-3);cursor:pointer;font-size:var(--font-size-lg);border-left:0}.hub-speak-btn:hover{background:var(--color-brand-soft)}.hub-section{padding:0 2px}.hub-inprog-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:10px;padding:10px 12px;display:flex}.hub-inprog-thumb{flex-shrink:0}.hub-inprog-body{flex:1;min-width:0}.hub-scroll{scrollbar-width:thin;gap:12px;padding-bottom:6px;display:flex;overflow-x:auto}.hub-scroll::-webkit-scrollbar{height:4px}.hub-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}.hub-rec-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;box-shadow:var(--shadow-1);flex-direction:column;display:flex;overflow:hidden}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.hub-scroll .hub-rec-card{flex:0 0 160px;min-width:160px}.hub-rec-thumb{background:linear-gradient(135deg,var(--color-hero-from),var(--color-hero-to));justify-content:center;align-items:center;height:110px;display:flex;position:relative}.hub-rec-icon{font-size:44px}.hub-rec-badge{font-size:var(--font-size-xs);position:absolute;top:6px;left:6px}.hub-rec-body{padding:var(--space-3);flex-direction:column;flex:1;display:flex}.hub-rec-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600;line-height:1.35}.hub-rec-meta{font-size:var(--font-size-xs);margin-top:2px}.hub-word-chip{min-height:var(--tap-min);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-fast);padding:6px 14px;font-weight:600}.hub-word-chip:hover{background:var(--color-border)}.hub-word-chip.active{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand-soft-text)}.hub-word-popup{background:var(--color-surface);border:1px solid var(--color-brand);border-radius:var(--radius-lg);padding:14px 16px}.hub-word-en{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--space-2);font-weight:800}.hub-word-langs{gap:var(--space-1);flex-direction:column;display:flex}.hub-word-lang{font-size:var(--font-size-base);color:var(--color-text)}.hub-word-lang b{color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;margin-right:6px}.hub-word-example{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-2);margin-bottom:0;font-style:italic}.quiz-finish{max-width:480px;margin:0 auto;position:relative}.quiz-finish-top{text-align:center;padding:20px 0 12px}.quiz-score-big{color:var(--color-brand);font-size:72px;font-weight:900;line-height:1}.quiz-score-big span{color:var(--color-text-subtle);font-size:28px;font-weight:400}.quiz-xp{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.quiz-xp-badge{background:var(--color-success);color:var(--color-on-success);border-radius:var(--radius-pill);font-size:var(--font-size-base);padding:4px 14px;font-weight:700}.quiz-streak-badge{background:var(--color-cta);color:var(--color-on-cta);border-radius:var(--radius-pill);font-size:var(--font-size-base);padding:4px 14px;font-weight:700}.quiz-well-done{font-size:var(--font-size-base);color:var(--color-text-muted)}.quiz-hist-row{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:4px 0;display:flex}.quiz-hist-score{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.quiz-hdr{margin-bottom:16px}.quiz-hdr-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.quiz-type-badge{background:var(--color-info-soft);color:var(--color-info-text);border-radius:var(--radius-pill);font-size:var(--font-size-sm);padding:4px 12px;font-weight:700}.quiz-hdr-progress{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.quiz-play .quiz-type-badge{margin:var(--space-4) 0 var(--space-3);display:inline-block}.quiz-next-row{margin-top:var(--space-4);justify-content:flex-end;display:flex}.quiz-next-row .btn{min-height:var(--tap-min);min-width:8rem}.quiz-q-text{margin-bottom:4px;font-size:1.75rem;font-weight:700}.quiz-choices{gap:var(--space-3);flex-wrap:wrap;display:flex}.quiz-choice-btn{min-width:120px;min-height:var(--tap-min);text-align:left}.quiz-feedback{font-size:var(--font-size-base)}.quiz-feedback-multilang{font-size:var(--font-size-base);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.quiz-ml-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}@media (max-width:480px){.quiz-ml-grid{grid-template-columns:1fr}}.quiz-ml-btn{text-align:left;cursor:pointer;width:100%;color:var(--color-text);background:0 0;border:none;padding:0}.quiz-ml-btn:disabled{cursor:default}.quiz-ml-choice,.quiz-ml-choice-correct,.quiz-ml-choice-wrong{border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);min-height:var(--tap-min);border:2px solid var(--color-border);background:var(--color-surface-2);transition:border-color var(--transition-fast),background var(--transition-fast);flex-direction:column;gap:3px;display:flex}.quiz-ml-btn:not(:disabled):hover .quiz-ml-choice{border-color:var(--color-brand);background:var(--color-brand-soft)}.quiz-ml-choice-correct{border-color:var(--color-success)!important;background:var(--color-success-soft)!important}.quiz-ml-choice-wrong{border-color:var(--color-danger)!important;background:var(--color-danger-soft)!important}.quiz-ml-row{font-size:var(--font-size-base);align-items:center;gap:6px;line-height:1.4;display:flex}.quiz-ml-row b{font-size:var(--font-size-xs);color:var(--color-text-subtle);min-width:22px}.quiz-order-hint{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quiz-order-placed{background:var(--color-surface-2);border:2px dashed var(--color-border);border-radius:var(--radius-md);min-height:56px;padding:var(--space-2) 10px;gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.quiz-order-placed.quiz-order-correct{border-color:var(--color-success);background:var(--color-success-soft)}.quiz-order-placed.quiz-order-wrong{border-color:var(--color-danger);background:var(--color-danger-soft)}.quiz-order-pool{gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.quiz-tile{min-height:var(--tap-min);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-lg);transition:background var(--transition-fast);padding:6px 14px;font-weight:500}.quiz-tile:hover:not(:disabled){background:var(--color-border)}.quiz-tile:disabled{opacity:.5;cursor:default}.quiz-tile.quiz-tile-placed{background:var(--color-brand-soft);border-color:var(--color-brand)}.quiz-order-fb-correct{background:var(--color-success-soft);border-color:var(--color-success)}.quiz-order-fb-wrong{background:var(--color-danger-soft);border-color:var(--color-danger)}.word-review-list{flex-direction:column;gap:12px;max-width:640px;display:flex}.word-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px}.word-item-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.word-item-en{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.word-item-actions{align-items:center;gap:6px;display:flex}.word-bookmark-btn{min-width:var(--tap-min);min-height:var(--tap-min);font-size:18px;line-height:1}.word-item-langs{font-size:var(--font-size-base);flex-direction:column;gap:4px;display:flex}.word-lang-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.word-lang-row b{color:var(--color-text-muted);min-width:24px}.word-pinyin{font-size:var(--font-size-xs)}.word-example-toggle{font-size:var(--font-size-sm);color:var(--color-brand);text-decoration:none}.word-example-box{background:var(--color-surface-2);border-radius:var(--radius-md);margin-top:8px;padding:8px 10px}.word-example-text{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:4px}.word-example-lang-tag{font-size:var(--font-size-xs);color:var(--color-text-subtle);min-width:20px;display:inline-block}.pos-badge{font-size:var(--font-size-xs);letter-spacing:.03em;vertical-align:middle;text-transform:uppercase;border-radius:99px;margin-left:6px;padding:1px 8px;font-weight:600;display:inline-block}.pos-noun{background:var(--color-info-soft);color:var(--color-info-text)}.pos-verb{background:var(--color-success-soft);color:var(--color-success-text)}.pos-adjective{background:var(--color-caution-soft);color:var(--color-caution-text)}.pos-adverb{background:var(--color-brand-soft);color:var(--color-brand)}.pos-phrase{background:var(--color-danger-soft);color:var(--color-danger)}.weekly-challenge-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:0 0 12px;padding:14px 16px}.wc-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.wc-title{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.wc-badge{font-size:var(--font-size-sm);background:var(--color-brand-strong);color:var(--color-on-brand);border-radius:99px;padding:2px 9px;font-weight:700}.wc-rows{flex-direction:column;gap:8px;display:flex}.wc-row-top{font-size:var(--font-size-sm);justify-content:space-between;margin-bottom:3px;display:flex}.wc-row-label{color:var(--color-text-muted)}.wc-row-count{color:var(--color-text-muted);font-weight:600}.wc-row-count.wc-done{color:var(--color-success-text)}.wc-bar-track{background:var(--color-border);border-radius:99px;height:8px;overflow:hidden}.wc-bar-fill{background:var(--color-brand);border-radius:99px;height:100%;transition:width .4s}.wc-bar-fill.wc-bar-complete{background:var(--color-success)}.wc-complete-banner{background:var(--color-success-soft);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-success-text);text-align:center;margin-top:10px;padding:8px 12px;font-weight:700}.wc-all-done{border-color:var(--color-success)}.fab-wrap{z-index:100;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:80px;right:20px}.fab-main{background:var(--color-brand-strong);width:56px;height:56px;color:var(--color-on-brand);box-shadow:var(--shadow-2);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:22px;transition:transform .2s,background .2s;display:flex}.fab-main:hover{background:var(--color-brand);transform:scale(1.05)}.fab-main-open{background:var(--color-danger);transform:rotate(90deg)}.fab-menu{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.fab-sub{min-height:var(--tap-min);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);box-shadow:var(--shadow-1);border-radius:22px;align-items:center;gap:8px;padding:8px 14px;font-weight:600;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.fab-sub:hover{box-shadow:var(--shadow-2);color:var(--color-brand);transform:translate(-2px)}.fab-sub-icon{font-size:18px}@media (min-width:769px){.fab-wrap{display:none}}.review-queue-widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;display:flex}.rqw-left{flex:1;align-items:center;gap:14px;display:flex}.rqw-ring{flex-shrink:0}.rqw-ring-track{fill:none;stroke:var(--color-border);stroke-width:5px}.rqw-ring-fill{fill:none;stroke:var(--color-brand);stroke-width:5px;stroke-linecap:round;transition:stroke-dasharray .5s}.rqw-ring-text{fill:var(--color-brand);font-size:11px;font-weight:700}.rqw-text{flex-direction:column;gap:2px;display:flex}.rqw-msg{font-weight:600;font-size:var(--font-size-base);margin:0;line-height:1.4}.rqw-sub{font-size:var(--font-size-sm);margin:0}.rqw-btn{min-height:var(--tap-min);background:var(--color-brand-strong);color:var(--color-on-brand);font-size:var(--font-size-sm);white-space:nowrap;border-radius:22px;align-items:center;padding:6px 18px;text-decoration:none;display:inline-flex}.rqw-btn:hover{background:var(--color-brand);color:var(--color-on-brand)}.header-xp-wrap{cursor:default;flex-direction:column;gap:2px;min-width:100px;display:flex}.header-xp-label{font-size:var(--font-size-xs);align-items:center;gap:6px;font-weight:700;display:flex}.header-xp-lv{color:var(--color-brand-strong)}.header-xp-streak{color:var(--color-cta)}.header-xp-bar-track{background:var(--color-border);border-radius:99px;width:100%;height:6px;overflow:hidden}.header-xp-bar-fill{background:var(--color-brand);border-radius:99px;height:100%;transition:width .5s}@media (max-width:600px){.header-xp-wrap{display:none}}.story-complete-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.story-complete-card{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl,16px);text-align:center;width:90%;max-width:340px;box-shadow:var(--shadow-2);padding:32px}.story-complete-icon{margin-bottom:8px;font-size:48px}.story-complete-title{font-size:1.4rem;font-weight:700}.story-complete-xp{color:var(--color-brand);margin:8px 0;font-size:1.1rem;font-weight:600}.streak-badge{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.streak-badge-active{background:var(--color-caution-soft);color:var(--color-caution-text);border:1px solid var(--color-caution-border)}.streak-badge-inactive{background:var(--color-surface-2);color:var(--color-text-subtle);border:1px solid var(--color-border)}.badge-grid{flex-wrap:wrap;gap:12px;display:flex}.badge-item{text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:80px;padding:12px;display:flex}.badge-item-earned{background:var(--color-caution-soft);border:2px solid var(--color-caution-border)}.badge-item-locked{background:var(--color-surface-2);border:2px solid var(--color-border);opacity:.6}.badge-icon{font-size:28px}.badge-label{font-size:var(--font-size-xs);font-weight:600}.weak-words-list{flex-direction:column;gap:6px;display:flex}.weak-word-item{background:var(--color-surface-2);border-radius:var(--radius-md);align-items:center;gap:12px;padding:8px 12px;display:flex}.weak-word-en{min-width:100px;font-weight:600}.weak-word-ko,.weak-word-lang{font-size:var(--font-size-sm);color:var(--color-text-muted)}.weak-word-bar{background:var(--color-border);border-radius:99px;flex:1;min-width:40px;height:6px;overflow:hidden}.weak-word-bar>span{background:var(--color-danger);border-radius:99px;height:100%;display:block}.report-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.report-stat{background:var(--color-surface-2);border-radius:var(--radius-md);text-align:center;padding:10px 12px}.report-stat-val{font-size:var(--font-size-xl);font-weight:700}.report-stat-lbl{font-size:var(--font-size-sm);color:var(--color-text-muted)}.wrong-notes{flex-direction:column;gap:6px;display:flex}.wrong-note{background:var(--color-danger-soft);border-left:4px solid var(--color-danger);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.wrong-note-main{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.settings-analytics{font-size:var(--font-size-sm);flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}@media print{.no-print,.left-pane,.site-header,.site-footer,.hamburger{display:none!important}}.rp-page-head{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.rp-share{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.rp-share-status{font-size:var(--font-size-sm);color:var(--color-success-text);min-width:1px}.rp-tabs{z-index:5;gap:var(--space-1);padding:var(--space-1);margin-bottom:var(--space-5);background:var(--color-surface-2);border-radius:var(--radius-pill);scrollbar-width:none;display:flex;position:sticky;top:0;overflow-x:auto}.rp-tabs::-webkit-scrollbar{display:none}.rp-tab{min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:600;font-size:var(--font-size-base);white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:0;flex:1 0 auto}.rp-tab:hover{color:var(--color-text)}.rp-tab[aria-selected=true]{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:var(--shadow-1)}.rp-tab:focus-visible,.rp-seg-btn:focus-visible,.rp-panel:focus-visible,.rp-details>summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.rp-panel:focus{outline:none}.rp-empty{color:var(--color-text-muted)}.rp-hero{margin-bottom:var(--space-5);padding:var(--space-6);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-hero-from),var(--color-hero-to));color:var(--color-text)}.rp-hero-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.rp-hero-title{font-size:var(--font-size-2xl);text-wrap:balance;margin:0;font-weight:800}.rp-hero-range{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.rp-hero-cheer{margin:var(--space-2) 0 var(--space-5);font-size:var(--font-size-lg)}.rp-hero-stats{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.rp-hero-stat dt{font-size:var(--font-size-sm);font-weight:600}.rp-hero-stat dd{margin:var(--space-1) 0 0;flex-direction:column;gap:2px;display:flex}.rp-hero-val{font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.15}.rp-delta{font-size:var(--font-size-xs);font-weight:600}.rp-delta-up{color:var(--color-success-text)}.rp-delta-down{color:var(--color-caution-text)}.rp-delta-same{color:var(--color-text)}@media (max-width:575.98px){.rp-hero{padding:var(--space-5)}.rp-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.rp-actions{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rp-action{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border-radius:var(--radius-md);display:flex}.rp-action-text{flex-direction:column;gap:2px;min-width:0;display:flex}.rp-action-text span{font-size:var(--font-size-sm);color:var(--color-text-muted)}.rp-action-go{flex:none}.rp-month-nav{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.rp-month-nav h3{text-align:center;font-variant-numeric:tabular-nums;flex:1}.rp-month-current{margin-left:auto}.rp-month{table-layout:fixed;border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums;width:100%}.rp-month th{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted);padding-bottom:var(--space-2);font-weight:500}.rp-month td{vertical-align:top;padding:0}.rp-month-day{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:54px;font:inherit;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 0;display:flex}.rp-month-day:disabled{color:var(--color-text-muted);cursor:default;background:0 0;border-color:#0000}.rp-month-day:not(:disabled):hover{outline:1px solid var(--color-text);outline-offset:-1px}.rp-month-day[aria-pressed=true]{outline:2px solid var(--color-text);outline-offset:-2px}.rp-month-day.is-today>span:first-child{text-underline-offset:3px;font-weight:700;text-decoration:underline}.rp-month-day:focus-visible{outline:3px solid var(--color-brand);outline-offset:2px}.rp-month-mark{justify-content:center;align-items:center;height:14px;display:flex}@media (max-width:480px){.rp-month-day{min-height:48px}.rp-month-current{flex-basis:100%}}.rp-cal-cell{width:var(--cell,16px);height:var(--cell,16px);border-radius:4px;display:inline-block}.rp-lv0{background:var(--color-surface-2);box-shadow:inset 0 0 0 1px var(--color-border)}.rp-lv1{background:color-mix(in srgb,var(--color-brand) 28%,var(--color-surface))}.rp-lv2{background:color-mix(in srgb,var(--color-brand) 50%,var(--color-surface))}.rp-lv3{background:color-mix(in srgb,var(--color-brand) 75%,var(--color-surface))}.rp-lv4{background:var(--color-brand)}.rp-study-calendar .rp-lv1{background:color-mix(in srgb,var(--color-brand) 10%,var(--color-surface))}.rp-study-calendar .rp-lv2{background:color-mix(in srgb,var(--color-brand) 18%,var(--color-surface))}.rp-study-calendar .rp-lv3{background:color-mix(in srgb,var(--color-brand) 26%,var(--color-surface))}.rp-study-calendar .rp-lv4{background:color-mix(in srgb,var(--color-brand) 34%,var(--color-surface))}.rp-cal-legend{margin-top:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);justify-content:flex-end;align-items:center;gap:4px;display:flex}.rp-cal-legend .rp-cal-cell{border-radius:3px;width:12px;height:12px}.rp-strength-known{font-size:var(--font-size-lg);margin:var(--space-2) 0 var(--space-3);font-weight:700}.rp-strength-bar{border-radius:var(--radius-pill);background:var(--color-surface-2);gap:2px;height:14px;display:flex;overflow:hidden}.rp-strength-seg{flex-basis:0;min-width:6px}.rp-strength-weak{background:var(--color-warning)}.rp-strength-medium{background:color-mix(in srgb,var(--color-brand) 45%,var(--color-surface))}.rp-strength-strong{background:var(--color-success)}.rp-strength-list{margin:var(--space-4) 0 0;gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr auto;align-items:center;padding:0;list-style:none;display:grid}.rp-strength-list li{display:contents}.rp-swatch{border-radius:3px;width:12px;height:12px}.rp-strength-name{font-weight:600}.rp-strength-count{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.rp-strength-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);grid-column:2/4;margin-top:-6px}.rp-forecast{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(88px,1fr));margin:0;padding:0;list-style:none;display:grid}.rp-forecast-item{padding:var(--space-3) var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;display:flex}.rp-forecast-count{font-size:var(--font-size-xl);font-variant-numeric:tabular-nums;font-weight:800}.rp-forecast-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.rp-forecast-item.is-zero .rp-forecast-count{color:var(--color-text-muted)}.rp-forecast-overdue{background:var(--color-caution-soft)}.rp-forecast-overdue .rp-forecast-count,.rp-forecast-overdue .rp-forecast-label{color:var(--color-caution-text)}.rp-forecast-today:not(.is-zero){background:var(--color-brand-soft)}.rp-forecast-today:not(.is-zero) .rp-forecast-count,.rp-forecast-today:not(.is-zero) .rp-forecast-label{color:var(--color-brand-soft-text)}.rp-seg{background:var(--color-surface-2);border-radius:var(--radius-pill);gap:2px;padding:3px;display:inline-flex}.rp-seg-btn{min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:600;font-size:var(--font-size-sm);background:0 0;border:0}.rp-seg-btn[aria-pressed=true]{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:var(--shadow-1)}.rp-bars{align-items:stretch;gap:6px;height:150px;display:flex}.rp-bars-30{gap:2px}.rp-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.rp-bar{background:var(--color-brand);border-radius:4px 4px 0 0;width:100%;max-width:40px}.rp-bar-val{font-size:var(--font-size-xs);color:var(--color-brand-strong);font-variant-numeric:tabular-nums;min-height:1em;font-weight:700}.rp-bar-lbl{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;min-height:1.5em;line-height:1.5}.rp-lang{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rp-lang-row{gap:2px var(--space-3);grid-template-columns:5.5em 1fr;grid-template-areas:"name track"".meta";align-items:center;display:grid}.rp-lang-name{grid-area:name;font-weight:600}.rp-lang-track{background:var(--color-surface-2);border-radius:var(--radius-pill);grid-area:track;height:10px;overflow:hidden}.rp-lang-fill{border-radius:inherit;background:var(--lang-color,var(--color-brand));height:100%;display:block}.rp-lang-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);grid-area:meta}.rp-lang-ko{--lang-color:var(--ko)}.rp-lang-en{--lang-color:var(--en)}.rp-lang-zh{--lang-color:var(--zh)}.rp-lang-ja{--lang-color:var(--ja)}.rp-lang-tag{margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);background:color-mix(in srgb,var(--lang-color) 16%,var(--color-surface));color:var(--color-text);vertical-align:middle;font-weight:600;display:inline-block}.rp-table{font-variant-numeric:tabular-nums}.rp-table td{white-space:nowrap}@media (max-width:575.98px){.rp-tab{padding:0 var(--space-2);font-size:var(--font-size-sm)}}.rp-game-link{color:var(--color-text);text-decoration:none}.rp-game-link:hover{color:var(--color-brand-strong);text-underline-offset:3px;text-decoration:underline}.rp-log{margin:0;padding:0;list-style:none}.rp-log-row{gap:0 var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);grid-template-columns:7.5em 1fr;grid-template-areas:"time name""time meta";display:grid}.rp-log-row:last-child{border-bottom:0}.rp-log-time{font-size:var(--font-size-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums;grid-area:time}.rp-log-name{grid-area:name;font-weight:600}.rp-log-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);grid-area:meta}@media (max-width:575.98px){.rp-log-row{grid-template-columns:1fr;grid-template-areas:"time""name""meta"}.rp-log-time{font-size:var(--font-size-xs)}}.rp-details>summary{cursor:pointer;list-style-position:inside}@media print{.rp-panel[hidden]{display:block!important}.rp-page .card{break-inside:avoid}.rp-hero{border:1px solid var(--color-border);background:0 0}}.btn{min-height:var(--tap-min);justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.btn-sm{min-height:36px}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.quiz-missed-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.quiz-missed-word{background:var(--color-caution-soft);border:1px solid var(--color-caution-border);color:var(--color-caution-text);border-radius:var(--radius-md);font-size:var(--font-size-sm);padding:4px 10px}.quiz-level-badge{background:var(--color-brand-soft);color:var(--color-brand-soft-text);font-size:var(--font-size-sm);border-radius:12px;padding:2px 10px;font-weight:600}.fc-difficulty-row{flex-wrap:wrap;gap:8px;display:flex}.fc-diff-btn{min-width:72px}.bottom-nav{display:none}@media (max-width:768px){.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-height:56px;color:var(--color-text-muted);font-size:var(--font-size-xs);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 4px;text-decoration:none;display:flex}.bottom-nav-item.bottom-nav-active{color:var(--color-brand)}.bottom-nav-icon{font-size:22px}.bottom-nav-label{font-size:var(--font-size-xs)}.content{padding-bottom:60px}}.quiz-listen-btn{border-radius:50px;margin:0 auto;padding:16px 32px;font-size:2rem;display:block}.quiz-fill-sentence{color:var(--color-text);background:var(--color-surface-2);border-radius:var(--radius-md);border-left:4px solid var(--color-brand);padding:12px 16px;font-size:1.5rem;line-height:1.5}.badge-modal-overlay{z-index:500;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.badge-modal-card{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl);text-align:center;min-width:260px;max-width:320px;padding:36px 32px;animation:.3s cubic-bezier(.2,.9,.2,1.2) popIn;box-shadow:0 16px 48px #0003}.badge-modal-burst{margin-bottom:-8px;font-size:32px;animation:1.2s ease-out spin}.badge-modal-icon{margin:8px 0;font-size:64px;line-height:1}.badge-modal-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle);margin-bottom:4px;font-size:11px;font-weight:700}.badge-modal-name{color:var(--color-text);margin-bottom:4px;font-size:22px;font-weight:800}.badge-modal-btn{min-width:120px;margin-top:16px}@keyframes popIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(-20deg)scale(.8)}60%{transform:rotate(10deg)scale(1.1)}to{transform:rotate(0)scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.levelup-overlay{z-index:500;background:#00000090;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.levelup-card{text-align:center;color:#fff;background:linear-gradient(135deg,#1e3a8a,#7c3aed);border-radius:24px;min-width:280px;max-width:340px;padding:40px 36px;animation:.35s cubic-bezier(.2,.9,.2,1.2) popIn;box-shadow:0 20px 60px #7c3aed66}.levelup-stars{margin-bottom:8px;font-size:40px;animation:1s ease-out starBounce}.levelup-eyebrow{text-transform:uppercase;letter-spacing:.1em;opacity:.75;margin-bottom:4px;font-size:12px;font-weight:700}.levelup-number{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:clamp(2rem,8vw,3.5rem);font-weight:900;line-height:1.15}.levelup-title-label{opacity:.9;margin-bottom:8px;font-size:20px;font-weight:700}.levelup-btn{color:#7c3aed;background:#fff;border:none;min-width:120px;margin-top:8px;font-weight:700}.levelup-btn:hover{color:#6d28d9;background:#f0e9ff}@keyframes starBounce{0%{transform:scale(0)rotate(-30deg)}60%{transform:scale(1.2)rotate(5deg)}to{transform:scale(1)rotate(0)}}.sc-review-section{background:var(--color-info-soft);border:1px solid var(--color-brand);border-radius:var(--radius-md);text-align:left;margin-top:12px;padding:10px 12px}.sc-review-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-info-text);margin-bottom:8px;font-weight:700}.sc-word-list{flex-direction:column;gap:4px;max-height:160px;display:flex;overflow-y:auto}.sc-word-row{font-size:var(--font-size-sm);align-items:center;gap:6px;display:flex}.sc-word-en{color:var(--color-text);min-width:72px;font-weight:600}.sc-word-trans{color:var(--color-text-muted);flex:1}.sc-word-btn{background:var(--color-brand);color:var(--color-on-brand);width:28px;height:28px;font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:99px;flex-shrink:0;font-weight:700;line-height:1}.sc-word-btn:hover:not(:disabled){background:var(--color-brand-strong)}.sc-word-btn-added{color:var(--color-on-success);cursor:default;background:var(--color-success)!important}.pos-filter-tab{border:1.5px solid var(--color-border);background:var(--color-surface-2);min-height:36px;font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text-muted);border-radius:99px;padding:4px 14px;font-weight:600;transition:all .15s}.pos-filter-tab:hover{border-color:var(--color-brand);color:var(--color-brand)}.pos-filter-tab-active{color:#fff!important}.pos-filter-tab-all.pos-filter-tab-active{background:var(--color-text-muted);border-color:var(--color-text-muted)}.pos-filter-tab-noun.pos-filter-tab-active{background:#1d4ed8;border-color:#1d4ed8}.pos-filter-tab-verb.pos-filter-tab-active{background:#15803d;border-color:#15803d}.pos-filter-tab-adjective.pos-filter-tab-active{background:#a16207;border-color:#a16207}.pos-filter-tab-adverb.pos-filter-tab-active{background:#7e22ce;border-color:#7e22ce}.pos-filter-tab-phrase.pos-filter-tab-active{background:#be185d;border-color:#be185d}.pos-filter-count{font-size:var(--font-size-xs);opacity:.75;margin-left:3px}.focus-mode-bar{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.focus-btn{border:1.5px solid var(--color-border);background:var(--color-surface-2);min-height:36px;color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border-radius:99px;padding:3px 14px;font-weight:600}.focus-btn:hover{border-color:var(--color-brand);color:var(--color-brand)}.focus-btn-active{background:var(--color-brand);color:var(--color-on-brand);border-color:var(--color-brand)}.focus-lang-view{padding:8px 0}.focus-lang-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.focus-lang-label{font-size:var(--font-size-sm);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.focus-line{border-bottom:1px solid var(--color-border);margin-bottom:14px;padding-bottom:10px}.focus-line-text{color:var(--color-text);margin:0;font-size:1.4rem;line-height:1.55}.focus-line-sub{font-size:var(--font-size-sm);color:var(--color-text-subtle);margin:2px 0 0}.focus-translations-toggle{font-size:var(--font-size-sm);color:var(--color-text-subtle);cursor:pointer;margin-top:4px;list-style:none}.focus-translations-toggle::marker{display:none}.focus-translations-grid{background:var(--color-surface-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;gap:3px;margin-top:4px;padding:6px 8px;display:flex}.focus-translations-grid b{color:var(--color-text-subtle);margin-right:4px}.story-word-clickable{cursor:pointer;border-bottom:1.5px dotted var(--color-brand);color:inherit;border-radius:2px;transition:background .1s}.story-word-clickable:hover{background:var(--color-brand-soft)}.word-popup{background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);min-width:240px;max-width:320px;max-height:80vh;padding:14px 16px;overflow-y:auto}.word-popup-close{min-width:36px;min-height:36px;font-size:var(--font-size-base);color:var(--color-text-subtle);cursor:pointer;background:0 0;border:none;position:absolute;top:4px;right:6px}.word-popup-en{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:8px;font-weight:700}.word-popup-langs{font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.word-popup-langs b{color:var(--color-text-subtle);margin-right:4px}.word-popup-pinyin{font-size:var(--font-size-xs);color:var(--color-text-subtle);margin-left:4px}.word-popup-examples{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.word-popup-example{font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-surface-2);border-radius:var(--radius-sm);padding:5px 8px}.word-popup-example b{color:var(--color-text-subtle);margin-right:4px;font-style:normal}.word-popup-add{width:100%;min-height:var(--tap-min);border-radius:var(--radius-md);border:1.5px solid var(--color-brand);color:var(--color-brand);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:6px;font-weight:600}.word-popup-add:hover{background:var(--color-brand);color:var(--color-on-brand)}.word-popup-added{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.shadowing-panel{background:var(--color-caution-soft);border:1.5px solid var(--color-caution-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin-top:8px;padding:12px 14px;display:flex}.shadowing-label{font-size:var(--font-size-base);color:var(--color-caution-text);font-weight:600}.shadowing-repeat-prompt{color:var(--color-warning);animation:1s infinite alternate shadowing-pulse}@keyframes shadowing-pulse{0%{opacity:1}to{opacity:.5}}.shadowing-btns{gap:8px;display:flex}.shadowing-countdown{background:var(--color-caution-border);border-radius:99px;height:6px;overflow:hidden}.shadowing-countdown-bar{background:var(--color-warning);border-radius:99px;height:100%;animation:5s linear forwards shadowing-bar}@keyframes shadowing-bar{0%{width:100%}to{width:0%}}.words-filter-bar{background:var(--color-surface-2);border-bottom:1px solid var(--color-border);flex-direction:column;gap:10px;padding:12px 16px;display:flex}.words-filter-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.words-filter-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);min-width:80px;font-weight:700}.words-filter-pills{flex-wrap:wrap;gap:6px;display:flex}.words-filter-pill{cursor:pointer;background:var(--color-surface);border:1.5px solid var(--color-border);min-height:36px;font-size:var(--font-size-sm);color:var(--color-text-muted);border-radius:99px;padding:3px 14px;font-weight:600;transition:all .15s}.words-filter-pill:hover{border-color:var(--color-brand);color:var(--color-brand)}.words-filter-pill-active{color:#fff!important;border-color:#0000!important}.words-pill-pos-all.words-filter-pill-active{background:#475569}.words-pill-pos-noun.words-filter-pill-active{background:#1d4ed8}.words-pill-pos-verb.words-filter-pill-active{background:#15803d}.words-pill-pos-adjective.words-filter-pill-active{background:#a16207}.words-pill-pos-adverb.words-filter-pill-active{background:#7e22ce}.words-pill-pos-phrase.words-filter-pill-active{background:#be185d}.words-pill-diff-all.words-filter-pill-active{background:#475569}.words-pill-diff-easy.words-filter-pill-active{background:#15803d}.words-pill-diff-medium.words-filter-pill-active{background:#b45309}.words-pill-diff-hard.words-filter-pill-active{background:#dc2626}.words-filter-count{opacity:.65;font-size:var(--font-size-xs);margin-left:4px}.words-filter-reset{color:var(--color-text-subtle);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;min-height:36px;padding:2px 8px}.words-filter-reset:hover{color:var(--color-danger)}.heatmap-wrap{border-bottom:1px solid var(--color-border);margin-bottom:4px;padding:14px 16px}.heatmap-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;margin-bottom:8px;display:flex}.heatmap-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:700}.heatmap-summary{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.heatmap-grid-wrap{gap:4px;display:flex}.heatmap-dow-labels{grid-template-rows:repeat(7,1fr);gap:2px;margin-right:4px;display:grid}.heatmap-dow{color:var(--color-text-subtle);align-items:center;height:11px;font-size:10px;display:flex}.heatmap-grid{gap:2px;display:grid}.heatmap-cell{cursor:default;border-radius:2px;width:11px;height:11px}.heatmap-lv0{background:var(--color-border)}.heatmap-lv1{background:color-mix(in srgb,var(--color-brand) 25%,var(--color-surface))}.heatmap-lv2{background:color-mix(in srgb,var(--color-brand) 50%,var(--color-surface))}.heatmap-lv3{background:color-mix(in srgb,var(--color-brand) 75%,var(--color-surface))}.heatmap-lv4{background:var(--color-brand)}.heatmap-legend{align-items:center;gap:3px;margin-top:8px;display:flex}.heatmap-legend-label{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.heatmap-legend-cell{border-radius:2px;width:10px;height:10px}.profile-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);align-items:flex-start;gap:16px;margin-bottom:16px;padding:20px 24px;display:flex}.profile-avatar{background:var(--color-brand-strong);color:var(--color-on-brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:flex}.profile-main{flex:1;min-width:0}.profile-level-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px;display:flex}.profile-level-badge{background:var(--color-brand-strong);color:var(--color-on-brand);font-size:var(--font-size-sm);border-radius:99px;padding:2px 10px;font-weight:700}.profile-level-title{font-size:var(--font-size-base);color:var(--color-text);font-weight:600}@media (prefers-reduced-motion:reduce){.levelup-overlay,.levelup-card{animation:none}.header-xp-bar-fill{transition:none}}.profile-streak{font-size:var(--font-size-base);color:var(--color-cta);font-weight:700}.profile-xp-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:4px}.profile-xp-track{background:var(--color-border);border-radius:99px;height:8px;margin-bottom:10px;overflow:hidden}.profile-xp-fill{background:var(--color-brand);border-radius:99px;height:100%;transition:width .5s}.profile-stats{flex-wrap:wrap;gap:16px;display:flex}.profile-stat{flex-direction:column;align-items:center;min-width:52px;display:flex}.profile-stat-val{color:var(--color-brand);font-size:20px;font-weight:800;line-height:1}.profile-stat-lbl{font-size:var(--font-size-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.profile-badges-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:16px;padding:14px 18px}.profile-badges-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:10px;font-weight:700}.profile-badges-grid{flex-wrap:wrap;gap:8px;display:flex}.profile-badge-item{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;min-width:60px;padding:8px 12px;display:flex}.profile-badge-icon{font-size:24px;line-height:1}.profile-badge-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;font-weight:600}.progress-ring{flex-shrink:0;display:block}.progress-ring-track{fill:none;stroke:var(--color-border);stroke-linecap:round}.progress-ring-fill{fill:none;stroke:var(--color-brand);stroke-linecap:round;transition:stroke-dasharray .4s}.progress-ring-text{fill:var(--color-text);font-size:11px;font-weight:700}.sc-wrap{width:100%}.sc-header{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:4px;padding-bottom:4px;display:grid}.sc-col-hd{align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.sc-col-en{color:var(--en)}.sc-col-ko{color:var(--ko)}.sc-col-zh{color:var(--zh)}.sc-col-ja{color:var(--ja)}.sc-col-play{cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.sc-col-play:hover{opacity:1}.sc-col-label{letter-spacing:.04em;font-size:12px}.sc-rows{flex-direction:column;gap:2px;display:flex}.sc-row{border-radius:6px;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px 4px;transition:background .15s;display:grid}.sc-row.sc-row-alt{background:var(--color-surface-2)}.sc-row.sc-row-active{background:var(--color-brand-soft);outline:2px solid var(--color-brand)}.sc-cell{flex-wrap:wrap;align-items:center;gap:4px;font-size:15px;line-height:1.4;display:flex}.sc-pinyin,.sc-hira{font-size:var(--font-size-xs);color:var(--color-text-subtle);width:100%;display:block}.sc-tts{cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:15px;line-height:1}.sc-tts:hover{opacity:1}.sc-row-play{cursor:pointer;font-size:var(--font-size-xs);color:var(--color-brand);opacity:.7;background:0 0;border:none;grid-column:span 4;align-self:start;padding:0 4px 0 0}.audio-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.audio-bar-btn{border-radius:var(--radius-sm);border:1px solid var(--color-brand);min-height:36px;color:var(--color-brand);cursor:pointer;font-size:var(--font-size-sm);white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;padding:4px 14px;font-weight:600}.audio-bar-btn:hover,.audio-bar-primary{background:var(--color-brand);color:var(--color-on-brand)}.audio-bar-primary:hover{background:var(--color-brand-strong)}.audio-bar-status{font-size:var(--font-size-xs);color:var(--color-text-subtle);min-width:50px}.audio-bar-mode,.audio-bar-rate{font-size:var(--font-size-xs);align-items:center;gap:4px;display:flex}.audio-bar-mode-label,.audio-bar-rate-label{color:var(--color-text-muted);white-space:nowrap}.audio-bar-slider{width:70px;accent-color:var(--color-brand)}.audio-bar-rate-val{min-width:32px;font-size:var(--font-size-xs);color:var(--color-text);font-weight:600}.audio-bar-progress{flex-direction:column;flex:180px;gap:3px;min-width:0;display:flex}.audio-bar-track{background:var(--color-border);border-radius:3px;height:6px;overflow:hidden}.audio-bar-track-sm{height:3px}.audio-bar-fill{border-radius:3px;height:100%;transition:width .1s linear}.audio-bar-fill-overall{background:var(--color-brand)}.audio-bar-fill-utterance{background:var(--color-success)}.audio-bar-pct{font-size:var(--font-size-xs);color:var(--color-text);text-align:right;min-width:30px;font-weight:700}.hub-suggested{margin-bottom:12px}.hub-suggested-list{flex-direction:column;gap:6px;margin-top:4px;display:flex}.hub-suggested-item{min-height:var(--tap-min);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-base);transition:background var(--transition-fast),border-color var(--transition-fast);align-items:center;gap:10px;padding:10px 12px;font-weight:500;text-decoration:none;display:flex}.hub-suggested-item:hover{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand-soft-text)}.hub-suggested-item-highlight{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand-soft-text);font-weight:600}.hub-suggested-icon{text-align:center;flex-shrink:0;width:28px;font-size:20px}.hub-suggested-label{flex:1}.hub-suggested-arrow{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-shrink:0}.quiz-mastered-stat{font-size:var(--font-size-base);color:var(--color-success);margin:8px 0 0;font-weight:700}.quiz-suggested-next{background:var(--color-success-soft);border:1.5px solid var(--color-success);border-radius:var(--radius-lg);text-align:center;margin-top:16px;padding:14px 16px}.quiz-suggested-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-success-text);margin-bottom:8px;font-weight:700}.quiz-suggested-btn{width:100%;font-size:var(--font-size-base);border-radius:var(--radius-md);padding:10px;font-weight:700}.wr-page{padding-bottom:72px}.wr-due-footer{z-index:80;background:var(--color-surface);border-top:2px solid var(--color-brand);box-shadow:var(--shadow-2);align-items:center;gap:10px;padding:10px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.wr-due-icon{flex-shrink:0;font-size:18px}.wr-due-msg{font-size:var(--font-size-base);color:var(--color-text);flex:1;font-weight:500}.wr-due-link{min-height:var(--tap-min);background:var(--color-brand-strong);color:var(--color-on-brand);font-size:var(--font-size-sm);white-space:nowrap;border-radius:22px;flex-shrink:0;align-items:center;padding:6px 18px;font-weight:700;text-decoration:none;display:inline-flex}.wr-due-link:hover{background:var(--color-brand);color:var(--color-on-brand)}@media (max-width:768px){.wr-due-footer{bottom:56px}}.notif-empty{color:var(--color-text-subtle);font-size:var(--font-size-sm);font-style:italic}.settings-page{max-width:100%;padding:0}.settings-header{padding:24px 28px 0}.settings-page-title{color:var(--color-text);margin-bottom:4px;font-size:1.5rem;font-weight:800}.settings-page-subtitle{font-size:var(--font-size-base);color:var(--color-text-muted);margin-bottom:0}.settings-layout{grid-template-columns:200px 1fr;gap:0;min-height:calc(100vh - 120px);display:grid}.settings-nav{background:var(--color-surface-2);border-right:1px solid var(--color-border);flex-direction:column;gap:2px;height:fit-content;padding:20px 12px;display:flex;position:sticky;top:56px}.settings-nav-item{text-align:left;min-height:var(--tap-min);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;width:100%;padding:9px 14px;font-weight:500;transition:background .12s,color .12s}.settings-nav-item:hover{background:var(--color-border);color:var(--color-text)}.settings-nav-item.active{background:var(--color-brand-strong);color:var(--color-on-brand);font-weight:600}.settings-content{max-width:640px;padding:24px 28px}.settings-section{flex-direction:column;gap:16px;display:flex}.settings-section-title{color:var(--color-text);margin-bottom:4px;font-size:1.1rem;font-weight:700}.settings-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:0;padding:20px 22px;display:flex}.settings-card-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin-bottom:14px;font-weight:700}.settings-field{flex-direction:column;gap:4px;display:flex}.settings-field-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.settings-field-input{max-width:280px}.settings-field-hint{font-size:var(--font-size-sm);color:var(--color-text-subtle);margin-top:2px}.settings-field-check{flex-direction:row;align-items:center}.settings-field-range{width:100%;max-width:320px;accent-color:var(--color-brand)}.settings-range-labels{max-width:320px;font-size:var(--font-size-xs);color:var(--color-text-subtle);justify-content:space-between;margin-top:2px;display:flex}.settings-range-val{color:var(--color-brand)}.settings-toggle-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-theme-row{flex-wrap:wrap;gap:10px;display:flex}.settings-theme-option{min-height:var(--tap-min);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:6px;min-width:80px;padding:12px 18px;transition:border-color .15s,background .15s;display:flex}.settings-theme-option:hover{border-color:var(--color-brand)}.settings-theme-option.selected{border-color:var(--color-brand);background:var(--color-brand-soft)}.settings-theme-emoji{font-size:22px}.settings-theme-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.settings-theme-option.selected .settings-theme-label{color:var(--color-brand)}.settings-font-preview{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);line-height:1.6;font-size:var(--font-size-base);margin-top:12px;padding:14px 16px}.settings-tts-preview-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settings-tts-sample-text{font-size:var(--font-size-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-style:italic;overflow:hidden}.settings-links-list{flex-direction:column;gap:8px;display:flex}.settings-link{font-size:var(--font-size-base);color:var(--color-brand);font-weight:500;text-decoration:none}.settings-link:hover{text-decoration:underline}.settings-profile-inline{align-items:flex-start;gap:14px;display:flex}.settings-save-bar{z-index:200;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:var(--shadow-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 28px;transition:transform .25s cubic-bezier(.2,.9,.2,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.settings-save-bar.visible{transform:translateY(0)}.settings-save-msg{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.settings-save-actions{gap:8px;display:flex}.settings-toast{background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-md);font-size:var(--font-size-base);opacity:0;pointer-events:none;z-index:300;white-space:nowrap;padding:10px 20px;font-weight:600;transition:opacity .2s,transform .2s;position:fixed;bottom:72px;left:50%;transform:translate(-50%)translateY(20px)}.settings-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}@media (max-width:768px){.settings-layout{grid-template-columns:1fr}.settings-nav{border-right:none;border-bottom:1px solid var(--color-border);flex-flow:wrap;gap:4px;padding:12px 16px;position:static;overflow-x:auto}.settings-nav-item{width:auto;font-size:var(--font-size-base);white-space:nowrap;padding:6px 14px}.settings-content{padding:16px}.settings-save-bar{padding:10px 16px}}.landing-hero{max-width:680px;padding:48px 0 40px}.landing-hero-title{color:var(--color-brand);margin-bottom:16px;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.2}.landing-hero-subtitle{color:var(--color-text);margin-bottom:8px;font-size:1.15rem;line-height:1.6}.landing-hero-context{color:var(--color-text-muted);margin-bottom:28px;font-size:1rem}.landing-cta-row{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.landing-cta-primary{background:var(--color-brand-strong);color:var(--color-on-brand);min-height:var(--tap-min);border-radius:var(--radius-md);border:none;padding:10px 22px;font-size:1rem;font-weight:600}.landing-cta-primary:hover{background:var(--color-brand);color:var(--color-on-brand)}.landing-cta-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);min-height:var(--tap-min);border-radius:var(--radius-md);padding:10px 22px;font-size:1rem;font-weight:600}.landing-cta-secondary:hover{background:var(--color-border);color:var(--color-text)}.landing-cta-accent{background:var(--color-surface);color:var(--color-brand);border:2px solid var(--color-brand);min-height:var(--tap-min);border-radius:var(--radius-md);padding:10px 22px;font-size:1rem;font-weight:600}.landing-cta-accent:hover{background:var(--color-brand-strong);color:var(--color-on-brand)}.landing-sub-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.landing-sub-input{min-height:var(--tap-min);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;min-width:200px;padding:8px 14px;font-size:1rem}.landing-sub-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-soft)}.landing-sub-btn{background:var(--color-brand-strong);color:var(--color-on-brand);min-height:var(--tap-min);border-radius:var(--radius-md);border:none;padding:8px 18px;font-size:1rem;font-weight:600}.landing-sub-btn:hover{background:var(--color-brand);color:var(--color-on-brand)}.landing-sub-hint{font-size:var(--font-size-sm);color:var(--color-text-subtle)}.landing-why{padding:40px 0 32px}.landing-why-title{color:var(--color-text);margin-bottom:28px;font-size:1.5rem;font-weight:700}.landing-why-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.landing-why-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px 20px;transition:box-shadow .2s}.landing-why-card:hover{box-shadow:var(--shadow-2)}.landing-why-icon{margin-bottom:10px;font-size:1.6rem}.landing-why-card-title{color:var(--color-text);margin-bottom:6px;font-size:1rem;font-weight:700}.landing-why-card-desc{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0;line-height:1.6}.landing-stats{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin:8px 0 32px;padding:32px 0}.landing-stats-title{color:var(--color-text-muted);margin-bottom:16px;font-size:1rem;font-weight:600}.landing-stats-row{flex-wrap:wrap;gap:32px;display:flex}.landing-stat-item{text-align:center}.landing-stat-num{color:var(--color-brand);font-size:1.8rem;font-weight:700;line-height:1}.landing-stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:4px}.landing-preview{padding:32px 0 48px}.landing-preview-title{color:var(--color-text);margin-bottom:16px;font-size:1.25rem;font-weight:700}.landing-preview-langs{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.landing-lang-pill{background:var(--color-brand-strong);width:48px;height:32px;color:var(--color-on-brand);font-size:var(--font-size-sm);letter-spacing:.05em;border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.landing-preview-ctas{flex-wrap:wrap;gap:12px;display:flex}.header-grade-badge{background:var(--color-brand-soft);color:var(--color-brand-soft-text);font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:160px;padding:3px 10px;font-weight:600;display:inline-flex;overflow:hidden}.settings-preset-row{flex-wrap:wrap;gap:.5rem;margin-top:.35rem;display:flex}.settings-preset-btn{min-height:var(--tap-min);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap;padding:.35rem .9rem;transition:background .15s,border-color .15s,color .15s}.settings-preset-btn:hover{background:var(--color-surface-2);border-color:var(--color-brand)}.settings-preset-btn.active{background:var(--color-brand-strong);border-color:var(--color-brand-strong);color:var(--color-on-brand);font-weight:600}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.nav-group-label{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);pointer-events:none;-webkit-user-select:none;user-select:none;margin-top:.25rem;padding:.75rem 1rem .25rem;font-weight:700}.side-nav .nav-group-label:first-of-type{margin-top:.1rem}.nav-link{gap:var(--space-2)}.nav-link-icon{text-align:center;flex:none;width:1.4em}.nav-link-text{flex:1;min-width:0}.nav-badge,.bottom-nav-badge{background:var(--color-danger);color:#fff;border-radius:var(--radius-pill);font-size:var(--font-size-xs);text-align:center;min-width:20px;padding:3px 7px;font-weight:700;line-height:1}.bottom-nav-item{position:relative}.nav-reco{background:var(--color-brand);color:var(--color-on-brand);border-radius:var(--radius-pill);font-size:var(--font-size-xs);margin-right:6px;padding:2px 8px;font-weight:700}.nav-link.active .nav-reco{background:var(--color-brand);color:var(--color-on-brand)}.bottom-nav-badge{min-width:16px;padding:2px 5px;position:absolute;top:4px;left:calc(50% + 6px)}.hub-page{max-width:880px}.hub-title{font-size:var(--font-size-xl,1.6rem);margin-bottom:.25rem;font-weight:800}.hub-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.hub-card{padding:var(--space-5,1.25rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);transition:transform var(--transition-fast),box-shadow var(--transition-fast);flex-direction:column;gap:6px;text-decoration:none;display:flex}.hub-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.hub-card-icon{font-size:2.2rem}.hub-card-title{font-size:var(--font-size-lg,1.15rem);font-weight:700}.hub-card-desc{color:var(--color-text-muted);font-size:var(--font-size-sm)}.page-context{padding:var(--space-2) var(--space-3) 0}.breadcrumb-nav ol{font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumb-nav li+li:before{content:"›";margin-right:6px}.breadcrumb-nav a{color:var(--color-text-muted);text-decoration:none}.breadcrumb-nav a:hover{text-decoration:underline}.breadcrumb-nav li[aria-current]{color:var(--color-text);font-weight:600}.sub-tabs{margin-top:var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-pill);gap:4px;padding:4px;display:inline-flex}.sub-tab{border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:600;font-size:var(--font-size-sm);padding:6px 16px;text-decoration:none}.sub-tab.active{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:0 1px 3px #0000001a}body.focus-mode .page-context{display:none}@media (min-width:901px) and (max-width:1180px){.left-pane{width:72px;padding:var(--space-3) var(--space-2)}.left-pane .left-logo-img{object-fit:cover;object-position:left;width:48px;height:auto}.left-pane .nav-group-label,.left-pane .nav-link-text,.left-pane .nav-reco{display:none}.left-pane .nav-group{border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-2)}.left-pane .nav-group:first-child{border-top:0;margin-top:0;padding-top:0}.left-pane .nav-link{padding:var(--space-2);justify-content:center;position:relative}.left-pane .nav-badge{min-width:16px;padding:2px 5px;position:absolute;top:2px;right:2px}}.onboarding-overlay{z-index:9999;background:#00000073;justify-content:center;align-items:flex-start;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.onboarding-modal{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-2);margin:auto;padding:2rem;animation:.2s modalIn}@keyframes modalIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.onboarding-title{color:var(--color-text);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.onboarding-subtitle{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:1rem}.onboarding-field{margin-bottom:1.25rem}.onboarding-field label,.onboarding-label{font-size:var(--font-size-sm);color:var(--color-text);letter-spacing:.05em;margin-bottom:.4rem;font-weight:600;display:block}.onboarding-mascot{margin:0 auto .5rem;display:block}.onboarding-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.onboarding-chip{min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-pill);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);cursor:pointer;font-weight:600}.onboarding-chip:hover{background:var(--color-surface-2)}.onboarding-chip.active{background:var(--color-brand-strong);border-color:var(--color-brand-strong);color:var(--color-on-brand)}.onboarding-actions{gap:.75rem;margin-top:1.75rem;display:flex}.onboarding-cta{min-height:var(--tap-min);border-radius:var(--radius-md);background:var(--color-brand-strong);color:var(--color-on-brand);cursor:pointer;border:none;flex:1;padding:.65rem;font-size:1rem;font-weight:600}.onboarding-cta:hover{background:var(--color-brand)}.onboarding-skip{min-height:var(--tap-min);border-radius:var(--radius-md);border:1.5px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-base);cursor:pointer;background:0 0;flex:none;padding:.65rem 1rem}.onboarding-skip:hover{background:var(--color-surface-2)}.app-shell--public{display:block}.app-shell--public .content{width:100%;max-width:100%;margin-left:0}.login-modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.login-modal{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-2);padding:2.25rem 2rem;animation:.2s modalIn;position:relative}.login-modal-close{min-width:var(--tap-min);min-height:var(--tap-min);color:var(--color-text-subtle);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1;position:absolute;top:.5rem;right:.5rem}.login-modal-close:hover{color:var(--color-text)}.login-modal-title{color:var(--color-text);margin-bottom:.3rem;font-size:1.4rem;font-weight:700}.login-modal-subtitle{font-size:var(--font-size-base);color:var(--color-text-muted);margin-bottom:1.5rem}.login-modal-input{width:100%;min-height:var(--tap-min);background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;margin-bottom:.75rem;padding:.65rem .85rem;font-size:1rem;display:block}.login-modal-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.login-modal-error{font-size:var(--font-size-sm);color:var(--color-danger);margin-bottom:.75rem}.login-modal-btn{border-radius:var(--radius-md);width:100%;padding:.7rem;font-size:1rem}.landing-section-title{text-align:center;color:var(--color-text);margin-bottom:2rem;font-size:1.5rem;font-weight:700}.landing-social-stats{background:var(--color-brand-strong);border-radius:var(--radius-xl);flex-wrap:wrap;justify-content:center;gap:3rem;margin:1.5rem 0;padding:2rem 1.5rem;display:flex}.landing-social-stat-item{text-align:center}.landing-social-stat-num{color:var(--color-on-brand);font-size:2rem;font-weight:800;line-height:1}.landing-social-stat-label{font-size:var(--font-size-sm);color:var(--color-on-brand);opacity:.9;text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}.landing-howitworks{padding:2.5rem 0}.landing-steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.landing-step{background:var(--color-surface-2);border-radius:var(--radius-lg);text-align:center;border:1px solid var(--color-border);padding:1.5rem;transition:box-shadow .2s}.landing-step:hover{box-shadow:var(--shadow-2)}.landing-step-icon{margin-bottom:.5rem;font-size:2rem}.landing-step-num{font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-brand);margin-bottom:.4rem;font-weight:700}.landing-step-title{color:var(--color-text);margin-bottom:.5rem;font-size:1rem;font-weight:700}.landing-step-desc{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0;line-height:1.5}.landing-sample{padding:2rem 0}.landing-sample-card{border:2px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);max-width:700px;margin:0 auto;overflow:hidden}.landing-sample-header{background:var(--color-surface-2);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.landing-sample-story-title{color:var(--color-text);font-size:1rem;font-weight:600}.landing-sample-toggle{border-radius:var(--radius-md);border:1.5px solid var(--color-brand);min-height:36px;color:var(--color-brand);font-size:var(--font-size-sm);cursor:pointer;background:0 0;padding:.35rem .9rem;font-weight:600;transition:background .15s}.landing-sample-toggle:hover{background:var(--color-brand-soft)}.landing-sample-body{padding:1.25rem}.landing-sample-row{border-bottom:1px solid var(--color-border);margin-bottom:1rem;padding-bottom:1rem}.landing-sample-row:last-of-type{border-bottom:none}.landing-sample-line{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:.3rem;line-height:1.6}.landing-sample-lang-badge{font-size:var(--font-size-xs);background:var(--color-brand-strong);color:var(--color-on-brand);vertical-align:middle;border-radius:4px;margin-right:.4rem;padding:.1rem .35rem;font-weight:700;display:inline-block}.landing-sample-ko .landing-sample-lang-badge{background:var(--color-success-strong);color:#fff}.landing-sample-zh .landing-sample-lang-badge{background:var(--color-cta);color:#fff}.landing-sample-ja .landing-sample-lang-badge{background:var(--color-danger);color:#fff}.landing-sample-cta-btn{width:fit-content;margin:1rem auto 0;display:block}.landing-science{padding:2.5rem 0}.landing-science-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;max-width:700px;margin:0 auto;display:grid}.landing-science-card{background:var(--color-info-soft);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:1.75rem}.landing-science-icon{margin-bottom:.75rem;font-size:2rem}.landing-science-card-title{color:var(--color-text);margin-bottom:.5rem;font-size:1rem;font-weight:700}.landing-science-card-desc{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0;line-height:1.6}.landing-testimonials{padding:2.5rem 0}.landing-testimonials-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;display:grid}.landing-testimonial-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-1);padding:1.5rem}.landing-testimonial-avatar{margin-bottom:.75rem;font-size:1.75rem}.landing-testimonial-text{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:.75rem;font-style:italic;line-height:1.6}.landing-testimonial-name{color:var(--color-text);font-weight:700;font-size:var(--font-size-base)}.landing-testimonial-role{font-size:var(--font-size-xs);color:var(--color-text-subtle);margin-top:.1rem}.footer-top{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;gap:2rem;margin-bottom:1rem;padding-bottom:1.5rem;display:flex}.footer-brand-name{color:var(--color-text);margin-bottom:.3rem;font-size:1.1rem;font-weight:700}.footer-tagline{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:200px}.footer-links-grid{flex-wrap:wrap;gap:2.5rem;display:flex}.footer-col{flex-direction:column;gap:.4rem;display:flex}.footer-col-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle);margin-bottom:.25rem;font-weight:700}.footer-link{font-size:var(--font-size-base);color:var(--color-text-muted);padding:4px 0;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--color-brand)}.footer-bottom{font-size:var(--font-size-sm);color:var(--color-text-subtle)}.static-page{max-width:860px}.static-page-title{color:var(--color-text);font-size:1.8rem;font-weight:700}.static-page-subtitle{color:var(--color-text-muted);margin-top:.4rem;font-size:1rem}.faq-list{flex-direction:column;gap:.75rem;display:flex}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.faq-question{width:100%;min-height:var(--tap-min);background:var(--color-surface);cursor:pointer;color:var(--color-text);text-align:left;border:none;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-size:1rem;font-weight:600;display:flex}.faq-question:hover{background:var(--color-surface-2)}.faq-chevron{font-size:var(--font-size-sm);color:var(--color-brand);flex-shrink:0}.faq-answer{font-size:var(--font-size-base);color:var(--color-text-muted);background:var(--color-surface-2);padding:.75rem 1.25rem 1.25rem;line-height:1.7}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;max-width:760px;display:grid}.pricing-card{border:1.5px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);padding:1.75rem 1.5rem;position:relative}.pricing-card-highlight{border-color:var(--color-brand);box-shadow:var(--shadow-2)}.pricing-badge{background:var(--color-brand-strong);color:var(--color-on-brand);font-size:var(--font-size-xs);white-space:nowrap;border-radius:20px;padding:.2rem .75rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.pricing-name{font-size:var(--font-size-base);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem;font-weight:700}.pricing-price{color:var(--color-text);font-size:2rem;font-weight:800;line-height:1}.pricing-period{font-size:var(--font-size-base);color:var(--color-text-subtle);margin-left:.1rem;font-weight:400}.pricing-features{flex-direction:column;gap:.5rem;margin:1.25rem 0;padding:0;list-style:none;display:flex}.pricing-features li{font-size:var(--font-size-base);color:var(--color-text-muted);gap:.5rem;display:flex}.pricing-features li span{color:var(--color-success);flex-shrink:0;font-weight:700}.pricing-cta{text-align:center;width:100%;margin-top:auto;display:block}.blog-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;display:grid}.blog-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.blog-card:hover{box-shadow:var(--shadow-2)}.blog-card-meta{align-items:center;gap:.75rem;display:flex}.blog-tag{font-size:var(--font-size-xs);background:var(--color-brand-soft);color:var(--color-brand);border-radius:var(--radius-sm);padding:.15rem .5rem;font-weight:700}.blog-date{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.blog-card-title{color:var(--color-text);margin:0;font-size:1rem;font-weight:700;line-height:1.4}.blog-card-excerpt{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0;line-height:1.6}.blog-read-more{font-size:var(--font-size-base);color:var(--color-brand);margin-top:auto;font-weight:600;text-decoration:none}.blog-read-more:hover{text-decoration:underline}.contact-form{max-width:520px}.contact-note{font-size:var(--font-size-sm);color:var(--color-text-subtle)}.ts-page{max-width:860px}.ts-menu{gap:var(--space-3);flex-direction:column;display:flex}.ts-field{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.ts-field legend{font-size:var(--font-size-sm);margin-bottom:var(--space-2);float:none;width:100%;font-weight:700}.ts-option{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;min-height:var(--tap-min);display:flex}.ts-option.selected{border-color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 10%,transparent);font-weight:600}.ts-option:focus-within{outline:3px solid var(--focus-ring,var(--color-brand));outline-offset:2px}.ts-row{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.ts-slider{gap:var(--space-1);flex-direction:column;min-width:200px;display:flex}.ts-check{align-items:center;gap:var(--space-2);display:flex}.ts-best{margin:0;font-weight:600}.ts-stage{gap:var(--space-2);flex-direction:column;display:flex}.ts-hud{gap:var(--space-4);font-size:var(--font-size-base);flex-wrap:wrap;align-items:center;display:flex}.ts-pause{margin-left:auto}.ts-field-wrap{border:2px solid var(--color-border);border-radius:var(--radius-md);position:relative;overflow:hidden}.ts-canvas{aspect-ratio:8/5;width:100%;height:auto;display:block}.ts-overlay{justify-content:center;align-items:center;gap:var(--space-3);background:color-mix(in srgb,var(--color-surface) 85%,transparent);flex-direction:column;display:flex;position:absolute;inset:0}.ts-stage-clear-dialog{text-align:center;width:min(92%,460px);box-shadow:var(--shadow-lg,0 8px 32px #0003);align-items:center}.ts-answer-language{margin:var(--space-2) 0 0;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.ts-inputbar{border:2px solid var(--color-brand);border-radius:var(--radius-md);background:var(--color-surface);justify-content:center;align-items:center;min-height:48px;display:flex}.ts-typed{letter-spacing:.08em;font:700 24px ui-monospace,Consolas,monospace}.ts-ime-input{width:100%;min-height:48px;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-lg);text-align:center;display:block}.ts-ime-input:focus{border-color:var(--color-brand);outline:3px solid var(--focus-ring,var(--color-brand));outline-offset:2px}.ts-result{flex-direction:column;display:flex}.ts-newbest{color:var(--color-brand);font-weight:700}.ts-stats{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin:0;display:grid}.ts-stats div{background:var(--color-surface-2);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.ts-stats dt{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}.ts-stats dd{margin:0;font-size:1.5rem;font-weight:700}.ts-missed{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ts-missed li{background:var(--color-surface-2);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3)}.ts-missed-reading{color:var(--color-text-muted);font-size:var(--font-size-sm)}.sniper-page{isolation:isolate;padding-top:var(--space-4);padding-bottom:var(--space-5);border-radius:var(--radius-lg);background:radial-gradient(at 50% 20%,#48516e 0,#232c45 55%,#151c30 100%);position:relative;overflow:hidden;box-shadow:0 18px 55px #14192a38}.sniper-page:before{content:"";z-index:-1;opacity:.48;clip-path:polygon(0 25%,12% 25%,12% 0,23% 0,23% 38%,35% 38%,35% 16%,45% 16%,45% 32%,56% 32%,56% 10%,66% 10%,66% 0,78% 0,78% 28%,89% 28%,89% 8%,100% 8%,100% 100%,0 100%);background:linear-gradient(90deg,#0000 2%,#111a2b 2% 14%,#0000 14% 20%,#111a2b 20% 34%,#0000 34% 64%,#111a2b 64% 79%,#0000 79% 84%,#111a2b 84% 98%,#0000 98%),repeating-linear-gradient(90deg,#0000 0 21px,#ffc97d8c 21px 26px,#0000 26px 37px);height:36%;position:absolute;inset:auto 0 0}.sniper-page>.hub-title,.sniper-page>p{color:#f4e9dc}.sniper-page>p.text-muted{color:#e6d9cd!important}.sniper-page .ts-menu{background:#f8f4eef5;border:1px solid #fff3;box-shadow:0 14px 36px #050a1647}.sniper-page .ts-stage{padding:var(--space-3);border-radius:var(--radius-lg);background:#0e162794;border:1px solid #ffffff3d;box-shadow:0 18px 44px #050a1652}.sniper-page .ts-hud{color:#fff}.sniper-page .ts-answer-language{color:#f4e9dc}.sniper-page .ts-field-wrap{border-color:#ffdbad8c;box-shadow:0 0 28px #ffb2702e}.ts-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.ts-menu .btn,.ts-actions .btn,.ts-overlay .btn{min-height:var(--tap-min)}.ts-check input,.ts-field input[type=radio]{flex:none;width:20px;height:20px}@media (max-width:600px){.hub-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.hub-word-item{min-width:0;max-width:100%}.hub-word-item .hub-word-chip{overflow-wrap:anywhere;flex:1;min-width:0}.hub-goal,.daily-missions{padding:var(--space-3)}.daily-mission-row .hub-goal-row-hd{font-size:var(--font-size-sm);align-items:flex-start;gap:8px}.daily-mission-row .hub-goal-row-hd>a{min-height:var(--tap-min);align-items:center;min-width:0;line-height:1.35;display:flex}.daily-mission-meta{min-height:var(--tap-min);flex-wrap:wrap;flex:none;justify-content:flex-end}.daily-mission-row .hub-bar-wrap{height:10px}}@media (max-width:768px){.bottom-nav-item{overflow-wrap:anywhere;min-width:0}.ts-page{padding-left:var(--space-3);padding-right:var(--space-3)}.ts-page>.hub-title{font-size:clamp(1.35rem,6vw,1.8rem)}.ts-menu{padding:var(--space-3)!important}.ts-field{gap:var(--space-2)}.ts-option{min-height:48px;padding:var(--space-2);flex:auto;justify-content:flex-start}.ts-slider{width:100%;min-width:0}.ts-hud{gap:var(--space-2);font-size:var(--font-size-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ts-hud>span:first-child{overflow-wrap:anywhere;grid-column:1/-1}.ts-hud>span:first-child small{display:block;margin-left:0!important}.ts-hud>span:last-of-type{justify-self:end}.ts-pause{grid-column:1/-1;width:100%;margin-left:0}.ts-stage{gap:var(--space-2)}.ts-field-wrap{width:100%}.ts-stage-clear-dialog{max-height:calc(100% - 16px);overflow-y:auto}.ts-actions{grid-template-columns:1fr;display:grid}.ts-actions>*{justify-content:center;align-items:center;width:100%;min-height:48px;display:inline-flex}.ts-result{padding:var(--space-3)!important}.ts-stats{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr))}.ts-stats dd{overflow-wrap:anywhere;font-size:clamp(1.1rem,6vw,1.5rem)}}@media (max-width:400px){.ts-option{font-size:var(--font-size-sm)}.ts-typed{font-size:20px}}
