@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-variable.ttf) format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/outfit-variable.ttf) format("truetype")}:root{color-scheme:light;--color-page: oklch(.955 .018 82);--color-surface: oklch(.98 .009 82);--color-surface-soft: oklch(.94 .012 82);--color-sand: oklch(.91 .027 82);--color-border: oklch(.875 .018 78);--color-border-strong: oklch(.68 .025 78);--color-text: oklch(.245 .017 255);--color-text-secondary: oklch(.43 .018 80);--color-text-muted: oklch(.49 .018 80);--color-primary: var(--color-text);--color-primary-hover: oklch(.34 .017 255);--color-primary-soft: var(--color-sand);--color-accent: oklch(.61 .18 36);--color-accent-text: oklch(.48 .16 36);--color-accent-hover: oklch(.51 .16 36);--color-on-dark: var(--color-page);--color-success: #287a4b;--color-success-soft: #eaf6ef;--color-error: #b33a3a;--color-error-soft: #fff0ef;--color-warning: #9a5a16;--color-warning-soft: #fff5df;--color-info: #256a91;--color-info-soft: #edf6fa;--color-focus: var(--color-accent-text);--color-tag-default: #355f88;--color-tag-default-bg: #eaf2f8;--color-tag-custom: #6b4d91;--color-tag-custom-bg: #f0eafb;--color-tag-n5: #287050;--color-tag-n5-bg: #e5f4eb;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--shadow-subtle: 0 .35rem 1.1rem rgba(50, 44, 35, .07);--color-creator-primary: var(--color-accent-text);--color-creator-border: var(--color-border);--color-creator-muted: var(--color-text-secondary);--color-creator-drop: var(--color-accent);--color-creator-invalid-surface: #fff7f7;--color-creator-invalid-border: #b53d3d;--font-body: Figtree, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: Outfit, var(--font-body);--font-japanese: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;font-family:var(--font-body);font-size:16px}*,*:before,*:after{box-sizing:border-box}html{background:var(--color-page)}body{min-width:0;min-height:100vh;margin:0;background:var(--color-page);color:var(--color-text);font-family:var(--font-body);line-height:1.6}button,input,select,textarea{font:inherit}button,.button-link{min-height:2.75rem;border:1px solid var(--color-primary);border-radius:999px;background:var(--color-primary);color:var(--color-on-dark);padding:.7rem 1rem;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}button:hover:not(:disabled),.button-link:hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover)}button:active:not(:disabled),.button-link:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}button.secondary,.secondary{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}button.secondary:hover:not(:disabled),.secondary:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}input,.search-field select{width:100%;min-height:2.75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:.7rem .85rem}input::placeholder{color:var(--color-text-muted)}h1,h2,h3,p,dl,dd{margin-top:0}h1,h2,h3{color:var(--color-text);font-family:var(--font-display);line-height:1.2;text-wrap:balance}h1{margin-bottom:var(--space-3);font-size:clamp(2rem,4vw,3rem);letter-spacing:-.025em}h2{margin-bottom:var(--space-3);font-size:clamp(1.35rem,2.5vw,1.75rem)}h3{margin-bottom:var(--space-2);font-size:1.1rem}p,span,strong,small,a,dt,dd{min-width:0}p,dd,.break-anywhere{overflow-wrap:break-word}a{color:var(--color-primary);text-underline-offset:.18em}progress{width:100%;height:.65rem;border:0;border-radius:999px;overflow:clip;accent-color:var(--color-primary)}progress::-webkit-progress-bar{border-radius:999px;background:var(--color-surface-soft)}progress::-webkit-progress-value{border-radius:999px;background:var(--color-primary)}.eyebrow,.section-kicker{margin-bottom:var(--space-2);color:var(--color-primary);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.error,.field-error{color:var(--color-error)}.success{color:var(--color-success)}.empty-state,.loading-state{color:var(--color-text-secondary)}.button-link{display:inline-flex;align-items:center;justify-content:center}.text-link,.back-link{color:var(--color-accent-text);font-weight:750;text-decoration-thickness:1px}.accent-button{background:var(--color-accent-text);border-color:var(--color-accent-text)}.accent-button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}::selection{background:var(--color-accent-text);color:var(--color-on-dark)}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(18rem,28rem) minmax(18rem,34rem);justify-content:center;align-items:center;gap:clamp(2rem,8vw,7rem);padding:var(--space-7) clamp(var(--space-4),5vw,5rem)}.auth-panel{min-width:0;border-top:4px solid var(--color-primary);background:var(--color-surface);padding:clamp(var(--space-5),4vw,var(--space-7));box-shadow:var(--shadow-subtle);border-radius:var(--radius-lg)}.auth-panel form{display:grid;gap:var(--space-4)}.auth-helper-link{justify-self:end;margin-top:calc(-1 * var(--space-2));color:var(--color-primary);font-size:.9rem;font-weight:750}.auth-success{margin:var(--space-4) 0;border-left:4px solid var(--color-success);background:var(--color-success-soft);padding:var(--space-3) var(--space-4);color:var(--color-text)}.auth-success p{margin:0}.auth-success p+p{margin-top:var(--space-2)}.password-requirements{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.password-requirements ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;padding:0;list-style:none}.password-requirements li span{display:inline-block;width:1.2em;font-weight:850}.password-requirements li[data-met=true]{color:var(--color-success)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.auth-panel label,.search-field,.inline-form label{display:grid;gap:var(--space-2);color:var(--color-text-secondary);font-weight:650}.auth-panel .secondary,.auth-panel .ghost{width:100%;margin-top:var(--space-3);border-color:transparent;background:transparent;color:var(--color-primary)}.wordmark,.brand{color:var(--color-text);font-size:1.25rem;font-weight:850;letter-spacing:-.02em;text-decoration:none;font-family:var(--font-display)}.wordmark span,.brand span{color:var(--color-primary);font-family:var(--font-japanese);font-weight:650}.auth-intro{max-width:31rem;border-left:1px solid var(--color-border);padding:var(--space-6) clamp(var(--space-5),5vw,var(--space-7))}.auth-intro>span{color:var(--color-primary);font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.auth-intro>strong{display:block;margin:var(--space-4) 0;color:var(--color-primary);font-family:var(--font-japanese);font-size:clamp(5rem,13vw,9rem);font-weight:650;line-height:1}.auth-intro p{color:var(--color-text-secondary)}.landing-page{min-height:100vh;background:var(--color-page)}.landing-nav,.landing-page main,.landing-footer{width:min(100% - 2rem,76rem);margin-inline:auto}.landing-nav{min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border-bottom:1px solid var(--color-border)}.landing-nav nav,.landing-actions{display:flex;align-items:center;gap:var(--space-3)}.landing-nav nav>a:not(.button-link){color:var(--color-text-secondary);font-weight:700;text-decoration:none}.landing-hero{min-height:min(43rem,100vh - 5rem);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr);align-items:center;gap:clamp(2rem,8vw,7rem);padding-block:clamp(4rem,10vw,8rem)}.landing-copy{max-width:43rem}.landing-copy h1{font-size:clamp(2.75rem,7vw,5.5rem)}.landing-lead{max-width:39rem;color:var(--color-text-secondary);font-size:clamp(1.05rem,2vw,1.3rem)}.landing-actions{flex-wrap:wrap;margin-block:var(--space-6) var(--space-4)}.landing-note{color:var(--color-text-muted);font-size:.9rem}.landing-glyph{min-height:25rem;display:grid;place-items:center;align-content:center;border:1px solid var(--color-primary);border-radius:2rem;background:var(--color-primary);color:var(--color-on-dark)}.landing-glyph span{font-family:var(--font-japanese);font-size:clamp(7rem,18vw,12rem);line-height:1}.landing-glyph small{margin-top:var(--space-4);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.landing-features{border-top:1px solid var(--color-border);padding-block:clamp(4rem,8vw,7rem)}.landing-features>header{max-width:42rem}.landing-features>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);margin-top:var(--space-6)}.landing-features article{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-5)}.landing-features article>span{color:var(--color-primary);font-family:var(--font-japanese);font-size:2.5rem;font-weight:750}.landing-features article p{color:var(--color-text-secondary)}.landing-footer{display:flex;justify-content:space-between;gap:var(--space-4);border-top:1px solid var(--color-border);padding-block:var(--space-5);color:var(--color-text-muted)}.landing-footer span:first-child{color:var(--color-text);font-weight:850}.app-shell{min-width:0;min-height:100vh}.site-header{width:min(100% - 3rem,72rem);margin:auto;padding-top:1.75rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:1.25rem}.site-header .brand{display:inline-flex;align-items:center;gap:.65rem;justify-self:start}.site-header .brand-mark{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.6rem;background:var(--color-primary);color:var(--color-page);font-size:1.4rem;font-weight:400}.site-header .brand-name{color:var(--color-text);font-family:var(--font-display);line-height:1.1}.brand-name small{display:block;margin-top:.35rem;color:var(--color-text-secondary);font:.7rem var(--font-japanese)}.topbar{display:flex;gap:1rem;align-items:center;min-width:0}.compact-profile{display:flex;align-items:center;gap:.7rem;color:var(--color-text);text-decoration:none;min-width:0}.profile-initial{display:grid;place-items:center;flex:0 0 auto;width:2.5rem;height:2.5rem;background:var(--color-sand);border:1px solid var(--color-border);border-radius:50%;font-weight:800}.profile-copy{display:grid;line-height:1.35;max-width:20rem;overflow-wrap:anywhere}.profile-copy>span{font-weight:700}.profile-copy small{color:var(--color-text-secondary);font-size:.75rem}.compact-action{font-size:.8rem}.learning-navigation{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--color-border);padding-bottom:1rem}.learning-navigation a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem .8rem;color:var(--color-text-secondary);border-radius:999px;font-size:.84rem;font-weight:650;text-decoration:none}.learning-navigation app-learning-icon{width:1.25rem;height:1.25rem}.learning-navigation a:hover{background:var(--color-sand);color:var(--color-text)}.learning-navigation a.active{background:var(--color-primary);color:var(--color-on-dark)}.navigation-toggle,.mobile-navigation{display:none}.workspace{width:min(100%,75rem);min-width:0;margin:auto;padding:2.5rem 1.5rem 4rem}.page-header{max-width:48rem;margin-bottom:var(--space-7)}.page-header>p:last-child{color:var(--color-text-secondary);font-size:1.05rem}.review-page-header{width:min(100%,58rem);margin-inline:auto}.icon-heading{display:flex;align-items:center;gap:.75rem}@media(max-width:767px){.site-header{width:min(100% - 2.5rem,32rem);padding-top:1.25rem;gap:1rem .5rem}.site-header .brand{gap:.5rem;font-size:1rem}.site-header .brand-mark{width:2.25rem;height:2.25rem}.topbar{gap:.5rem}.profile-copy{display:none}.compact-action{padding:.5rem .6rem;font-size:.75rem}.navigation-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;grid-column:1/-1;font-size:.8rem;padding:.5rem;background:transparent}.learning-navigation{display:none}.learning-navigation.expanded{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.learning-navigation a{border-radius:var(--radius-sm);padding-inline:.6rem;overflow-wrap:anywhere}.workspace{max-width:35rem;padding:1.75rem 1.25rem calc(6rem + env(safe-area-inset-bottom))}.mobile-navigation{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.15rem;border-top:1px solid var(--color-border);background:var(--color-page);padding:.5rem max(.5rem,(100vw - 30rem) / 2) calc(.5rem + env(safe-area-inset-bottom))}.mobile-navigation a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:48px;border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;font-size:.65rem}.mobile-navigation a.active{color:var(--color-accent-text);font-weight:800;background:var(--color-sand)}}.home-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.home-header{grid-column:1/-1;margin:1rem 0 0}.home-header .eyebrow{color:var(--color-accent-text);letter-spacing:.18em}.home-header h1{max-width:9ch;font-size:clamp(3rem,5.5vw,4.4rem);font-weight:900;line-height:.98;letter-spacing:0;margin-bottom:1.5rem}.home-header h1>span{color:var(--color-accent)}.home-header p{max-width:32ch;font-size:1rem;color:var(--color-text-secondary)}.home-header .home-greeting{font-weight:700;overflow-wrap:anywhere;margin-bottom:.5rem}.home-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.home-actions a{font-size:.85rem}.daily-launch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0}.home-tile,.review-summary,.spotlight-item,.home-progress{min-width:0;border-radius:var(--radius-lg);padding:1.5rem}.home-tile{display:flex;flex-direction:column;color:var(--color-text);text-decoration:none;background:var(--color-surface);border:1px solid transparent}a.home-tile:hover{border-color:var(--color-border-strong)}.tile-heading{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.75rem;font-size:.85rem;font-weight:750}.tile-heading h2{margin:0;font:inherit}.tile-heading app-navigation-icon,.tile-heading>span:last-child:not(:first-child){color:var(--color-accent-text)}.home-tile p{color:var(--color-text-secondary);font-size:.85rem;margin-block:.5rem 1rem}.home-tile .text-link{margin-top:auto;font-size:.85rem}.tile-number{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:850;line-height:1;overflow-wrap:anywhere}.review-summary{grid-column:1/-1;background:var(--color-primary);color:var(--color-on-dark);box-shadow:var(--shadow-subtle)}.review-summary .section-kicker{color:var(--color-on-dark);opacity:.8;font-size:.75rem;letter-spacing:.14em}.review-summary-content{display:flex;justify-content:space-between;align-items:end;gap:1rem}.review-summary h2{color:inherit;margin-block:.75rem .5rem;font-size:clamp(2.5rem,4vw,3.4rem);font-weight:900;line-height:1.1}.review-summary h2 small{display:block;font:600 .9rem var(--font-body);margin-top:.4rem}.review-summary p:not(.section-kicker){font-size:.8rem;margin:0;color:var(--color-on-dark)}.review-summary .button-link{flex-shrink:0;font-size:.85rem}.review-summary .button-link:focus-visible{outline-color:var(--color-on-dark)}.review-summary .has-review-notice{position:relative;margin-top:2.5rem}.review-summary .has-review-notice app-learning-icon{position:absolute;bottom:calc(100% + .25rem);left:50%;transform:translate(-50%);width:2rem;height:2rem;pointer-events:none}.lesson-launch{background:var(--color-surface-soft)}.lesson-launch h2{font-size:1.3rem;font-weight:700;margin-bottom:0}.lesson-glyph{font-family:var(--font-japanese);font-size:2.2rem;line-height:1.35;margin-bottom:.5rem}.next-lesson-card .text-link{display:flex;align-items:center;gap:.5rem}.next-lesson-card .text-link app-learning-icon{width:1.5rem;height:1.5rem}.vocabulary-tile{background:var(--color-sand)}.grammar-tile{border-color:var(--color-border)}.streak-tile{background:var(--color-accent-text);color:var(--color-on-dark)}.streak-tile :is(h2,p,.text-link,app-navigation-icon){color:inherit}.spotlight-item{grid-column:1/-1;background:var(--color-surface);border:1px solid var(--color-border)}.spotlight-item .tile-heading{font-size:.75rem;color:var(--color-text-secondary)}.spotlight-content{display:flex;align-items:center;gap:1.25rem}.spotlight-content>b{display:grid;place-items:center;flex:0 0 auto;width:6rem;min-height:6rem;border:2px solid var(--color-primary);border-radius:var(--radius-md);font:400 4rem/1.2 var(--font-japanese);overflow-wrap:anywhere}.spotlight-content>div{min-width:0}.spotlight-reading{display:block;font-family:var(--font-japanese);font-size:1.45rem;overflow-wrap:anywhere}.spotlight-content p{font-style:italic;color:var(--color-text-secondary);margin-block:.25rem .8rem}.small-button{min-height:44px;font-size:.8rem;padding:.5rem 1rem}.word-spotlight .spotlight-content>b{width:auto;max-width:48%;font-size:2rem;padding:.6rem}.home-progress{grid-column:1/-1;background:var(--color-surface-soft)}.home-progress h2{margin:0;font-family:var(--font-display);font-size:1.2rem}.progress-copy{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;color:var(--color-text-secondary);font-size:.85rem;margin-bottom:.65rem}.home-progress progress{display:block}.home-progress progress::-webkit-progress-bar{background:var(--color-border)}.home-progress progress::-moz-progress-bar{background:var(--color-primary)}.kanji-total{grid-column:1/-1}.profile-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-4) var(--space-6);margin-bottom:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.profile-progress h2{margin:0}.profile-progress progress{grid-column:1/-1}.quick-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:var(--space-7);border-block:1px solid var(--color-border)}.quick-facts>div{min-width:0;padding:var(--space-4) var(--space-5)}.quick-facts>div+div{border-left:1px solid var(--color-border)}.quick-facts dt{color:var(--color-text-muted);font-size:.8rem;font-weight:750;text-transform:uppercase}.quick-facts dd{margin:var(--space-1) 0 0;color:var(--color-text);font-size:clamp(1.35rem,3vw,1.8rem);font-weight:800}@media(min-width:1024px){.home-layout{grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem}.home-header,.home-layout .review-summary,.home-layout .spotlight-item,.home-layout .kanji-total,.home-layout .home-progress,.home-layout .streak-tile{grid-column:span 3}.home-header{margin:0;padding-block:.5rem}.home-header h1{max-width:12ch;font-size:clamp(3rem,4.5vw,4rem)}.home-layout .review-summary{display:flex;flex-direction:column;justify-content:center}.lesson-launch,.vocabulary-tile,.grammar-tile{grid-column:span 2}.home-layout:not(:has(.word-spotlight)) :is(.kanji-spotlight,.kanji-total),.home-layout:not(:has(.home-progress)) .streak-tile{grid-column:1/-1}}@media(max-width:1023px){.grammar-tile,.streak-tile{grid-column:1/-1}}@media(max-width:767px){.home-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.home-header{position:static;margin-top:0}.home-header h1{font-size:2.65rem;margin-bottom:1rem}.home-header p{font-size:.95rem}.home-actions{display:none}.daily-launch{gap:.75rem}.home-tile{padding:1rem}.review-summary,.spotlight-item,.home-progress{padding:1.25rem}.lesson-launch h2{font-size:1.1rem}.tile-heading{font-size:.8rem}.review-summary h2{font-size:2.5rem}.review-summary .button-link{font-size:.75rem;padding-inline:.75rem}.spotlight-content{gap:1rem}.spotlight-content>b{width:5rem;min-height:5rem;font-size:3.3rem}}@media(max-width:360px){.review-summary-content{align-items:start;flex-direction:column}.review-summary .has-review-notice{align-self:end}.tile-heading{align-items:flex-start}}.review-workspace{width:min(100%,58rem);margin:0 auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:clamp(var(--space-5),4vw,var(--space-7));box-shadow:var(--shadow-subtle)}.review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-5)}.review-count{margin:0;font-size:clamp(1.5rem,3vw,2rem)}.session-progress{width:min(15rem,45%);display:grid;gap:var(--space-2);color:var(--color-text-secondary);font-size:.85rem;text-align:right}.review-result{display:flex;justify-content:space-between;gap:var(--space-3);margin:var(--space-4) 0 0;border-left:4px solid var(--color-info);background:var(--color-info-soft);color:var(--color-info);padding:var(--space-3) var(--space-4)}.review-result[data-result=again]{border-color:var(--color-error);background:var(--color-error-soft);color:var(--color-error)}.review-result[data-result=hard]{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning)}.review-result[data-result=good],.review-result[data-result=easy]{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.review-stage{min-height:24rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-4);padding-top:var(--space-5);text-align:center}.review-remaining{margin-bottom:0;color:var(--color-text-muted)}.review-prompt-region{min-height:8rem;width:100%;display:grid;place-items:center;align-content:center;gap:var(--space-3)}.review-prompt{color:var(--color-primary);font-family:var(--font-japanese);font-size:clamp(3.5rem,10vw,6.5rem);font-weight:650;line-height:1.1}.review-reveal-region{min-height:4.25rem;display:grid;place-items:center;gap:var(--space-1)}.review-reveal-region small{color:var(--color-text-muted)}.review-answer-region{min-height:7rem;width:100%;display:grid;place-items:center}.review-answer{width:min(100%,42rem);border-block:1px solid var(--color-border);padding:var(--space-4) 0}.review-answer p:first-child{margin-bottom:var(--space-2);font-size:1.15rem;font-weight:700}.review-answer p:nth-child(2),.review-answer small{color:var(--color-text-secondary)}.answer-placeholder{width:min(18rem,70%);border-top:1px solid var(--color-border)}.rating-row{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-3)}.rating-row button{min-width:0;border-color:currentColor;background:var(--color-surface);white-space:nowrap}.rating-row button span{display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;margin-right:var(--space-1);border:1px solid currentColor;border-radius:var(--radius-sm);font-size:.75rem}.rating-row .rating-again{color:var(--color-error)}.rating-row .rating-hard{color:var(--color-warning)}.rating-row .rating-good,.rating-row .rating-easy{color:var(--color-success)}.rating-row .rating-again:hover:not(:disabled){background:var(--color-error-soft)}.rating-row .rating-hard:hover:not(:disabled){background:var(--color-warning-soft)}.rating-row .rating-good:hover:not(:disabled),.rating-row .rating-easy:hover:not(:disabled){background:var(--color-success-soft)}.review-empty{max-width:30rem;margin:auto;padding:var(--space-6) 0}.review-empty>span{display:inline-grid;place-items:center;width:3rem;height:3rem;margin-bottom:var(--space-4);border-radius:50%;background:var(--color-success-soft);color:var(--color-success);font-size:1.4rem}.review-message{margin:auto}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.review-prompt-region .tag-list{justify-content:center;margin-top:0}.tag-badge{min-height:1.65rem;display:inline-flex;align-items:center;border:1px solid var(--color-tag-default);border-radius:999px;background:var(--color-tag-default-bg);color:var(--color-tag-default);padding:.15rem .55rem;font-size:.75rem;font-weight:800;line-height:1}.tag-badge[data-tag=CUSTOM]{border-color:var(--color-tag-custom);background:var(--color-tag-custom-bg);color:var(--color-tag-custom)}.tag-badge[data-tag=JLPT_N5]{border-color:var(--color-tag-n5);background:var(--color-tag-n5-bg);color:var(--color-tag-n5)}.course-list,.module-list,.object-list{display:grid;gap:var(--space-6)}.course-section+.course-section{border-top:1px solid var(--color-border);padding-top:var(--space-7)}.course-section>header{max-width:48rem}.course-section>header>span{color:var(--color-primary);font-weight:750}.module{border-top:1px solid var(--color-border);padding-top:var(--space-5)}.module>header{display:flex;justify-content:space-between;gap:var(--space-5)}.module>header p{color:var(--color-text-muted)}.lesson-list{display:grid;gap:var(--space-2)}.lesson-list a{min-width:0;min-height:3.25rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:var(--space-3) var(--space-4);text-decoration:none}.lesson-list a:hover{border-color:var(--color-primary)}.lesson-list a.completed .lesson-status{color:var(--color-success)}.lesson-list a.locked{background:var(--color-surface-soft);color:var(--color-text-muted);pointer-events:none}.lesson-list small{color:var(--color-text-muted);white-space:nowrap}.library-header{max-width:60rem}.search-field{max-width:36rem;margin-top:var(--space-5)}.category-filter{margin-bottom:var(--space-5)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:var(--space-4)}.library-item,.list-item{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-5)}.library-item>b{display:block;color:var(--color-primary);font-family:var(--font-japanese);font-size:2rem;line-height:1.25;overflow-wrap:anywhere}.library-item .reading{color:var(--color-text-secondary);font-weight:650}.inline-form{max-width:42rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-3);margin-bottom:var(--space-6)}.activity-section{border-top:1px solid var(--color-border);padding-top:var(--space-6)}.activity-chart{min-height:13rem;display:grid;grid-template-columns:repeat(14,minmax(1.8rem,1fr));align-items:end;gap:var(--space-2);overflow-x:auto;padding:var(--space-5) 0 var(--space-2)}.activity-day{min-height:10rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-1)}.activity-value,.activity-day small{color:var(--color-text-muted);font-size:.7rem}.activity-bar{width:min(100%,1.25rem);max-height:8rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-info)}.profile-heading{max-width:none;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-5)}.level-emblem{flex:0 0 auto;border:1px solid var(--color-border);border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);padding:var(--space-3) var(--space-4);font-weight:800}.profile-progress{grid-template-columns:minmax(0,1fr) auto}.account-flag{color:var(--color-info)!important;font-size:1rem!important}.developer-actions{border-left:4px solid var(--color-warning);background:var(--color-warning-soft);padding:var(--space-5)}.warning-button{border-color:var(--color-warning);background:var(--color-warning)}.warning-button:hover:not(:disabled){border-color:#78410d;background:#78410d}.dialog-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:var(--space-4);background:#2d29307a}.lesson-page{width:min(100%,62rem);margin:0 auto;padding:var(--space-6) clamp(var(--space-4),4vw,var(--space-6)) 5rem}.lesson-shell{min-width:0;margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-6)}.lesson-header{display:grid;gap:var(--space-3)}.lesson-header>*{margin-block:0}.lesson-introduction{max-width:50rem;color:var(--color-text-secondary);font-size:1.05rem}.lesson-intro-copy,.lesson-block{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.character-sequence{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);margin:var(--space-6) 0}.character-tab{min-width:0;display:grid;place-items:center;gap:var(--space-1);border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);padding:var(--space-3) var(--space-2)}.character-tab span{color:var(--color-text);font-family:var(--font-japanese);font-size:clamp(1.5rem,5vw,2.25rem);line-height:1}.character-tab.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.character-lesson{min-width:0;display:grid;grid-template-columns:minmax(14rem,.8fr) minmax(16rem,1.2fr);grid-template-areas:"copy mnemonic" "details mnemonic";align-items:start;gap:var(--space-5);border-block:1px solid var(--color-border);padding:var(--space-6) 0}.character-copy{grid-area:copy;min-width:0}.character-details{grid-area:details;min-width:0}.character-copy h2{display:flex;align-items:baseline;gap:var(--space-3);margin:var(--space-1) 0 var(--space-3);font-size:clamp(2rem,7vw,4.5rem)}.character-copy h2 span,.mnemonic-placeholder span,.japanese{color:var(--color-primary);font-family:var(--font-japanese)}.character-step,.asset-status,.completion-hint{color:var(--color-text-muted)}.audio-button{margin-top:var(--space-2)}.asset-status{display:block;margin-top:var(--space-2)}.mnemonic-frame{grid-area:mnemonic;width:100%;max-width:30rem;aspect-ratio:4/3;margin:0 auto;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-soft)}.mnemonic-frame img{display:block;width:100%;height:100%;object-fit:contain}.mnemonic-placeholder{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:var(--space-3);padding:var(--space-4);text-align:center}.mnemonic-placeholder span{font-size:clamp(4rem,12vw,7rem);line-height:1}.mnemonic-placeholder small{color:var(--color-text-muted);font-size:.75rem}.example-word,.pronunciation-note{border-left:3px solid var(--color-info);padding-left:var(--space-4)}.example-word>span,.example-word>strong{display:block}.example-word>strong{margin-top:var(--space-1);font-family:var(--font-japanese);font-size:1.75rem}.pronunciation-note{border-color:var(--color-warning);color:var(--color-text-secondary)}.lesson-navigation{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-5)}.completion-hint{text-align:right}.completion-card{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.japanese{display:block;font-size:clamp(2rem,8vw,4rem)}blockquote{margin:var(--space-4) 0;border-left:4px solid var(--color-warning);padding-left:var(--space-4);color:var(--color-text-secondary)}@media(max-width:860px){.landing-hero{min-height:0;grid-template-columns:1fr}.landing-glyph{min-height:18rem}.landing-features>div{grid-template-columns:1fr}.auth-page{grid-template-columns:1fr}.auth-intro{border-top:1px solid var(--color-border);border-left:0}.quick-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-facts>div:nth-child(3){border-left:0;border-top:1px solid var(--color-border)}.quick-facts>div:nth-child(4){border-top:1px solid var(--color-border)}.character-lesson{grid-template-columns:1fr;grid-template-areas:"copy" "mnemonic" "details"}}@media(max-width:480px){.password-requirements ul{grid-template-columns:1fr}}@media(max-width:600px){.landing-nav{align-items:flex-start;padding-block:var(--space-4)}.landing-nav nav{align-items:stretch;flex-direction:column;text-align:center}.landing-nav nav>a:not(.button-link){padding:var(--space-2)}.landing-actions{align-items:stretch;flex-direction:column}.landing-actions .button-link{width:100%}.landing-glyph small{font-size:.7rem}.landing-footer{flex-direction:column}.lesson-page{padding-inline:var(--space-4)}.page-header:not(.home-header){margin-bottom:var(--space-6)}.review-workspace{padding:var(--space-5)}.profile-progress{grid-template-columns:1fr;align-items:start}.profile-progress progress{grid-column:1}.progress-copy{flex-direction:column;gap:var(--space-1)}.quick-facts{grid-template-columns:1fr}.quick-facts>div+div,.quick-facts>div:nth-child(3),.quick-facts>div:nth-child(4){border-top:1px solid var(--color-border);border-left:0;padding-left:0}.quick-facts>div{padding-left:0}.review-heading,.profile-heading,.module>header{flex-direction:column}.session-progress{width:100%;text-align:left}.review-stage{min-height:22rem}.rating-row{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-list a{grid-template-columns:auto minmax(0,1fr)}.lesson-list small{grid-column:2}.lesson-list a>app-learning-icon,.lesson-list a>.lesson-status{grid-column:1;grid-row:1/span 2;align-self:center}.inline-form{grid-template-columns:1fr}.activity-chart{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}.character-sequence{gap:var(--space-1)}.character-tab{padding-inline:var(--space-1)}.character-tab span{font-size:1.65rem}.lesson-navigation{align-items:stretch;flex-direction:column-reverse}.lesson-navigation button{width:100%}.completion-hint{text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.creator-shell .outline-item{border:1px solid #e5e2dc;border-radius:8px;padding:8px;display:grid;grid-template-columns:1fr auto;gap:5px}.creator-shell .outline-item>button:first-child{grid-column:1/-1;border:0;background:transparent;padding:0;color:inherit}.creator-shell .outline-item>div{display:flex;gap:2px}.creator-shell .icon-action{padding:2px 8px;min-height:30px}.creator-shell .outline-status{font-size:.72rem;color:#28704a}.creator-shell .outline-status.invalid{color:#a02538}.creator-shell .empty-outline{color:var(--color-creator-muted)}.creator-shell .empty-outline small{display:block;margin-top:.4rem}.creator-shell .form-actions{display:flex;gap:.75rem;align-items:center;margin-top:1.25rem}.creator-shell .metadata-panel h3{margin:0}.creator-shell .metadata-panel dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem .7rem;margin:0}.creator-shell .metadata-panel dt{font-size:.8rem;color:#6c6d73}.creator-shell .metadata-panel dd{margin:0;text-align:right;font-weight:650}.creator-shell .state-badge{justify-self:start;background:var(--color-sand);color:var(--color-text);border-radius:999px;padding:.3rem .6rem;font-size:.75rem;font-weight:800}.creator-shell .summary-note{background:#fff7d8;border-radius:7px;padding:.7rem;font-size:.85rem;line-height:1.4}@media(max-width:520px){.creator-shell .creator-workspace{padding:18px}.creator-shell .creator-sidebar nav,.creator-shell .creator-filters{grid-template-columns:1fr}.creator-shell .creator-actions,.creator-shell .form-actions{align-items:stretch;flex-direction:column}.creator-shell .creator-actions>*{width:100%;box-sizing:border-box}.creator-shell .outline-panel,.creator-shell .editor-panel,.creator-shell .metadata-panel{min-width:0}.creator-shell .block-picker{margin:2vh 10px;max-height:96vh;overflow:auto}.creator-shell .block-picker>div{grid-template-columns:1fr}}
