@font-face{font-family:LocalSerif;src:local('AppleMyungjo')}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#edeae2;color:#293d36;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b97650;outline-offset:3px}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:LocalSerif,'Hiragino Mincho ProN','Times New Roman',serif;font-weight:400}.boot{padding:35vh 20px;text-align:center}.shell{max-width:1280px;margin:auto;display:grid;grid-template-columns:260px 1fr;min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;padding:46px 32px;border-right:1px solid #d6d8ca;display:flex;flex-direction:column}.brand-symbol{display:block;color:#aa664a;font-size:34px;margin-bottom:15px}.brand{font-family:LocalSerif,serif;font-size:24px;line-height:1.65;letter-spacing:-1px}.brand-sub{font-size:10px;letter-spacing:2px;line-height:1.7;margin-top:12px;color:#8a9183}.sidenav{display:grid;gap:9px;margin-top:58px}.navbutton{background:none;border:0;text-align:left;padding:15px 14px;display:flex;align-items:center;gap:16px;border-radius:6px;font-size:14px;color:#727a70}.navbutton.on{background:#e1e3d8;color:#263d38;font-weight:600}.icon{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sidebar-foot{margin-top:auto;border-top:1px solid #d7d9cc;padding-top:22px;font-family:LocalSerif,serif;font-size:13px;line-height:1.9;color:#828578}.sidebar-foot small{font:9px sans-serif;letter-spacing:2px;display:block;margin-top:16px}.main{padding:32px 42px 44px;min-width:0;background:#f8f6ef}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#8a8676;font-weight:600}.topbar h1{font-size:26px;margin-top:8px}.top-actions{display:flex;align-items:center;gap:12px;font-size:11px}.langselect{background:transparent;border:1px solid #d9d8cb;border-radius:25px;padding:7px 12px;color:#506153}.season-dot{height:6px;width:6px;border-radius:50%;background:#ba7951;display:inline-block;margin-right:6px}.hero{position:relative;border-radius:10px;overflow:hidden;min-height:410px;isolation:isolate;background:#34453a}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(17,35,29,.88),rgba(17,35,29,.1) 80%);z-index:-1}.hero-content{padding:35px;position:absolute;bottom:0;color:#fff9e9}.hero .eyebrow{color:#ded6bd}.hero h2{font-size:36px;line-height:1.42;white-space:pre-line;margin:15px 0 10px;letter-spacing:-1px}.hero p{font-size:12px;line-height:1.8;color:#e6e1d0}.hero .primary{margin-top:24px;background:#f1ebdc;color:#293c33}.hero-label{position:absolute;right:20px;top:20px;padding:8px 13px;border:1px solid #ffffff60;border-radius:25px;color:#f6eddc;font-size:10px;backdrop-filter:blur(6px)}.primary,.secondary{border:0;border-radius:5px;min-height:48px;padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:13px;font-weight:600;transition:background .18s,transform .18s}.primary{background:#2e4b40;color:#fffbee}.primary:hover{background:#3d5b4f}.secondary{background:#ecebe0;color:#485b4c}.arrow{font-size:21px;font-weight:300}.section-header{display:flex;align-items:center;justify-content:space-between;margin:31px 0 15px}.section-header h2{font-size:20px}.section-header span{color:#8f9183;font-size:10px}.daily-row{display:grid;grid-template-columns:1.3fr 1fr;gap:15px}.lesson-card{position:relative;min-height:174px;border:1px solid #d9ddcd;background:#edf0e5;border-radius:8px;overflow:hidden;text-align:left;padding:22px;width:100%}.lesson-card h3{font-family:LocalSerif,serif;font-size:23px;margin:13px 0 8px;font-weight:400}.lesson-card p{font-size:11px;color:#77836f;line-height:1.8}.lesson-card .icon{position:absolute;bottom:21px;right:18px}.lesson-card img{position:absolute;right:14px;bottom:-77px;height:230px;object-fit:contain;opacity:.85;mask-image:linear-gradient(#000 75%,transparent)}.lesson-card .copy{position:relative;z-index:1;max-width:70%}.news-card{padding:23px;border:1px solid #e0ddce;border-radius:8px;background:#f1eee4;display:flex;flex-direction:column;justify-content:space-between}.news-card p{font-family:LocalSerif,serif;font-size:15px;line-height:1.7;margin:13px 0}.news-card small{font-size:10px;color:#9a8f7d}.chapters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chapter-row{display:flex;gap:14px;align-items:center;border:1px solid #e3e0d4;border-radius:6px;background:transparent;padding:18px;text-align:left;min-height:92px}.chapter-row.available{border-color:#8d9d83;background:#f0f2e8}.chapter-num{font-family:LocalSerif,serif;color:#a29b82;font-size:25px;min-width:29px}.chapter-copy{flex:1}.chapter-copy h3{font-size:12px;font-weight:500;line-height:1.6}.chapter-copy p{font-size:10px;color:#9b9d90;margin-top:6px}.chapter-row .icon{width:16px}.mobile-nav{display:none}.intro-caption{text-align:center;font-size:10px;color:#a2a18f;letter-spacing:.4px;margin-top:24px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.person{border:1px solid #dddccc;border-radius:8px;background:#f1f0e6;overflow:hidden;text-align:left;padding:0}.person-photo{height:185px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#e0e4d3,#f0e5d2);overflow:hidden}.person-photo img{height:270px;margin-top:96px}.person-photo.ren{background:url('assets/prologue/izakaya.png') center 44%/cover}.person-photo:not(:has(img)) .monogram{font-family:LocalSerif,serif;border:1px solid #8b967570;border-radius:50%;padding:19px;font-size:32px;color:#6b7c62;background:#f2eed990}.person-copy{padding:18px}.person-copy h3{font-size:14px;font-weight:500}.person-copy p{font-size:11px;color:#88917e;line-height:1.8;margin-top:9px}.person.unmet{opacity:.6}.person.unmet .person-photo{filter:grayscale(1)}.relationship-note{border-left:2px solid #b98260;margin:28px 0;padding:6px 18px;font-family:LocalSerif,serif;font-size:14px;line-height:1.9;color:#7c816f}.notebook-tabs{display:flex;gap:18px;border-bottom:1px solid #dedcce;margin-bottom:20px}.notebook-tabs button{border:0;background:none;padding:13px 0;color:#969681;font-size:13px}.notebook-tabs button.on{border-bottom:2px solid #3b5447;color:#3b5447}.note{padding:20px 5px;border-bottom:1px solid #dedccf;line-height:1.9}.note .jp{font-family:'Hiragino Mincho ProN',serif;font-size:18px}.note small{color:#9b917b;font-size:10px}.note p{font-size:12px;color:#858578;margin-top:8px}.textbutton{border:0;background:none;color:#4e6a54;padding:10px 0;text-decoration:underline;text-underline-offset:5px;font-size:12px}.settings-block{padding:25px 0;border-bottom:1px solid #dddccd}.settings-block h2{font-size:19px;margin-bottom:12px}.settings-block p{font-size:12px;color:#828775;line-height:1.9;margin-bottom:15px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.stats{display:flex;gap:35px;padding:22px 0;border-top:1px solid #e1dece;border-bottom:1px solid #e1dece;margin:18px 0}.stat strong{display:block;font-family:LocalSerif,serif;font-size:28px;font-weight:400}.stat span{font-size:10px;color:#8d8d7a}.story-view{height:100dvh;max-width:920px;margin:auto;background:#182d27;position:relative;display:flex;flex-direction:column;overflow:hidden}.story-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;animation:enter .5s ease}.story-shade{position:absolute;inset:0;background:linear-gradient(#13282075,transparent 26%,#12261e33 65%,#12261e99)}.story-head{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:22px 24px;color:#fff8e7;gap:12px}.iconbutton{width:40px;height:40px;display:inline-flex;justify-content:center;align-items:center;background:transparent;border:1px solid currentColor;border-radius:50%;color:inherit}.story-progress{display:flex;gap:4px;position:absolute;left:22px;right:22px;bottom:-8px}.story-progress i{height:2px;flex:1;background:#ffffff30}.story-progress i.on{background:#e5d6b3}.story-location{font-size:11px;letter-spacing:2px;text-align:center}.story-character{position:absolute;height:71%;max-width:90%;width:auto;object-fit:contain;object-position:bottom;bottom:175px;left:50%;transform:translateX(-50%);filter:drop-shadow(0 8px 10px #0002)}.story-panel{margin:auto 22px 24px;position:relative;z-index:2;background:#f8f5eafa;border:1px solid #e7dfc6;padding:24px 28px 19px;border-radius:8px;box-shadow:0 10px 60px #13271e30;max-height:67dvh;overflow:auto;backdrop-filter:blur(15px)}.speaker{font-size:11px;letter-spacing:1px;font-weight:600;display:flex;align-items:center;gap:12px;color:#997553;margin-bottom:15px}.speaker:before{content:'';height:1px;width:22px;background:currentColor}.story-text{font-family:LocalSerif,'Hiragino Mincho ProN',serif;font-size:19px;line-height:1.9;white-space:pre-line;letter-spacing:-.2px}.story-jp{font-size:17px;font-family:'Hiragino Mincho ProN',serif;line-height:1.9;margin-bottom:9px;white-space:pre-line}.story-panel .reading{font-size:11px;color:#989784;margin-bottom:12px;line-height:1.6}.story-panel .translated{font-size:13px;line-height:1.9;color:#7b806d;white-space:pre-line}.story-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:17px;padding-top:15px;border-top:1px solid #dedccd}.story-controls .primary{min-width:120px}.quiet{font-size:10px;color:#929580;line-height:1.7}.story-options{display:grid;gap:7px;margin-top:18px}.story-option{width:100%;background:#fffdf6;border:1px solid #d7d9c9;text-align:left;border-radius:5px;padding:12px 15px;font-size:13px;line-height:1.6}.story-option small{display:block;color:#8e917d;font-size:11px;margin-top:4px}.story-option.selected{border-color:#426151;background:#e8eee1;box-shadow:inset 3px 0 #426151}.lesson-view{height:100dvh;max-width:600px;margin:auto;background:#f8f6ef;display:flex;flex-direction:column}.lesson-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dadfce;font-size:12px;gap:10px}.lesson-stage{flex:0 0 210px;position:relative;overflow:hidden;background:linear-gradient(100deg,#e4e6d8,#e5dac4);border-bottom:1px solid #d7dccc}.lesson-stage>img{position:absolute;right:0;height:305px;bottom:-85px}.lesson-stage .teacher-caption{position:absolute;left:22px;top:26px;max-width:51%;z-index:2}.teacher-caption .eyebrow{font-size:9px}.teacher-caption p{font-family:LocalSerif,serif;font-size:20px;line-height:1.7;margin-top:12px}.teacher-caption small{display:block;font-size:11px;line-height:1.6;margin-top:8px;color:#77836e}.lesson-question{padding:18px 22px 16px;border-bottom:1px solid #dedecd;max-height:25dvh;overflow:auto;flex-shrink:0}.lesson-question h2{font-family:'Hiragino Mincho ProN',serif;font-size:18px;line-height:1.65;margin:9px 0}.lesson-question .instruction{font-size:12px;color:#78806e;line-height:1.75}.lesson-question .reading{font-size:11px;color:#90967f;line-height:1.6}.lesson-choices{overflow:auto;flex:1;padding:15px 20px;min-height:70px}.answer-row{display:flex;align-items:center;border:1px solid #dcdccc;background:#fffdf7;border-radius:6px;margin-bottom:9px;padding-right:5px}.answer-option{padding:13px 13px;text-align:left;border:0;background:none;flex:1;min-height:59px;display:flex;align-items:center;gap:13px;line-height:1.6}.answer-option .number{font-size:11px;color:#9c9d8c;width:18px;flex-shrink:0}.answer-option .jp{font-size:15px}.answer-option small{display:block;font-size:11px;color:#939882}.answer-row.selected{border-color:#344f42;background:#e9eee1;box-shadow:inset 3px 0 #344f42}.answer-row.right{border-color:#598568;background:#e7efe0}.answer-row.wrong{border-color:#b27f66;background:#f2e8df}.audio-button{border:0;background:none;padding:10px;color:#788c76}.audio-button .icon{width:17px;height:17px}.audio-button:disabled{opacity:.2}.lesson-footer{padding:12px 20px max(14px,env(safe-area-inset-bottom));background:#f8f6ef;border-top:1px solid #dedccd;display:flex;align-items:center;gap:15px}.lesson-footer .primary{margin-left:auto;min-width:140px}.explanation{padding:16px 19px;background:#eeefe4;border-radius:6px;margin-bottom:15px;font-size:13px;line-height:1.9}.explanation b{font-weight:600;font-size:12px}.explanation p{margin-top:8px}.result-view{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:600px;margin:auto;padding:35px;background:#f8f6ef;text-align:center}.result-mark{font-family:serif;font-size:70px;color:#b07d59;margin-bottom:18px}.result-view h1{font-size:29px;line-height:1.6}.result-view p{font-size:13px;color:#859078;line-height:1.8;margin:15px 0 27px}.result-view .primary,.result-view .secondary{width:100%;max-width:310px;margin-top:10px}.result-score{font-family:LocalSerif,serif;font-size:46px;padding:15px}.empty{padding:55px 20px;color:#8d9580;font-size:13px;text-align:center;line-height:1.8}.loading{min-height:100dvh;display:grid;place-content:center;gap:25px;padding:30px;text-align:center}dialog{border:1px solid #d8d8c6;border-radius:10px;padding:26px;max-width:440px;width:calc(100% - 36px);background:#f9f6eb;color:#354c3c;max-height:83dvh}dialog::backdrop{background:#13281eb0;backdrop-filter:blur(4px)}dialog h2{font-size:23px;line-height:1.5;margin-bottom:15px}dialog p{line-height:1.9;font-size:14px;white-space:pre-line;margin-bottom:18px}dialog .dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px}#toast{position:fixed;left:50%;bottom:85px;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;background:#2b4539;color:#fff8e7;border-radius:7px;padding:13px 21px;max-width:90%;z-index:20;font-size:12px;line-height:1.7;box-shadow:0 6px 20px #0002}#toast.show{opacity:1;transform:translate(-50%,0)}.progress-line{height:3px;background:#dedecd}.progress-line i{display:block;height:3px;background:#728968;transition:width .3s}.connection-list{margin-top:20px;font-size:12px;line-height:2.2;color:#7b826e}.badge{display:inline-block;padding:4px 8px;background:#e7eadc;border-radius:3px;font-size:9px;color:#728169}.smallprint{font-size:11px;line-height:1.8;color:#959581;margin-top:16px}@keyframes enter{from{opacity:.6;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@media(min-width:950px){.story-view{max-width:780px;border-left:1px solid #687365;border-right:1px solid #687365}.story-panel{margin-left:38px;margin-right:38px}.story-character{bottom:200px;height:76%}.story-panel .story-text{font-size:21px}}@media(max-width:1050px){.shell{grid-template-columns:200px 1fr}.sidebar{padding:35px 23px}.main{padding:27px}.brand{font-size:21px}.people-grid{grid-template-columns:1fr 1fr}.hero h2{font-size:31px}}@media(max-width:700px){.shell{display:block}.sidebar{display:none}.main{padding:25px 17px 100px;min-height:100dvh}.topbar{margin-bottom:20px}.topbar h1{font-size:25px}.topbar .eyebrow{font-size:9px}.top-actions{gap:6px}.hero{min-height:400px}.hero-content{padding:27px 23px}.hero h2{font-size:31px;line-height:1.5}.hero p{font-size:11px;max-width:255px}.hero-label{font-size:9px}.daily-row{gap:10px;grid-template-columns:1.2fr 1fr}.lesson-card{padding:17px;min-height:165px}.lesson-card h3{font-size:21px}.lesson-card p{font-size:10px}.lesson-card img{right:-38px;opacity:.55}.news-card{padding:17px}.news-card p{font-size:13px}.news-card .eyebrow{font-size:8px;letter-spacing:1px}.chapters{grid-template-columns:1fr}.chapter-row{min-height:82px;padding:16px}.chapter-copy h3{font-size:12px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:8;justify-content:space-around;background:#f8f6eff5;border-top:1px solid #dcdccb;backdrop-filter:blur(12px);padding:8px 8px max(10px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:none;min-width:62px;min-height:47px;color:#9b9e8c;font-size:9px;display:flex;gap:5px;flex-direction:column;align-items:center;justify-content:center}.mobile-nav button.on{color:#354e3d}.mobile-nav .icon{width:20px;height:20px}.person-photo{height:145px}.person-photo img{height:233px;margin-top:101px}.person-copy{padding:14px}.person-copy h3{font-size:12px}.person-copy p{font-size:10px}.story-head{padding:16px 17px}.story-panel{margin: auto 13px max(15px,env(safe-area-inset-bottom));padding:21px 19px 16px;max-height:69dvh}.story-text{font-size:17px;line-height:1.9}.story-character{bottom:180px;height:66%}.story-panel .translated{font-size:12px}.story-options{gap:6px}.story-option{padding:10px 12px;font-size:12px}.story-option small{font-size:10px}.story-controls .primary{min-height:43px;font-size:12px}.lesson-stage{flex-basis:174px}.lesson-stage>img{height:265px;bottom:-83px}.lesson-stage .teacher-caption{top:20px;left:18px;max-width:56%}.teacher-caption p{font-size:17px}.teacher-caption small{font-size:10px}.lesson-question{padding:13px 18px;max-height:23dvh}.lesson-question h2{font-size:17px}.lesson-choices{padding:12px 17px}.lesson-footer{padding-left:17px;padding-right:17px}.lesson-header{padding:12px 17px}.story-location{font-size:10px;letter-spacing:1px}.settings-block h2{font-size:20px}}@media(max-height:690px){.lesson-stage{flex-basis:130px}.lesson-stage>img{height:220px;bottom:-82px}.teacher-caption p{font-size:15px}.teacher-caption small{display:none}.story-panel{max-height:73dvh}.story-text{font-size:16px}.story-jp{font-size:15px}.story-character{bottom:160px;height:70%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Vietnamese narration uses one bundled face for letters and tone marks. */
.word-preview-view{width:100%;min-height:100dvh;height:100dvh;display:flex;flex-direction:column;background:#faf8f1;overflow:auto}
.word-preview-view .lesson-header{flex:none}
.word-preview-image{flex:1 0 240px;min-height:240px;max-height:65dvh;margin:0;padding:8px 16px;display:flex;align-items:center;justify-content:center}
.word-preview-image img{display:block;width:100%;height:100%;max-height:65dvh;object-fit:contain}
.word-preview-caption{text-align:center;padding:8px 20px;flex:none}
.word-preview-caption h2{font-size:clamp(27px,6vw,40px);margin:0 0 5px}
.word-preview-caption p{margin:4px 0;line-height:1.4}
.word-preview-caption .secondary{margin-top:8px;min-height:44px}
.word-preview-actions{display:flex;justify-content:center;gap:12px;padding:12px 20px max(18px,env(safe-area-inset-bottom));flex:none}
.word-preview-actions button{min-height:50px;flex:1;max-width:440px}
@media(min-width:800px){.word-preview-image img{max-width:850px}}
@font-face{font-family:'Narrative Noto Serif';src:url('assets/fonts/noto-serif/NotoSerif.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
.story-text:lang(vi){font-family:'Narrative Noto Serif','Noto Serif',Georgia,'Times New Roman',LocalSerif,'Hiragino Mincho ProN',serif;letter-spacing:normal}

/* Character encounter chapters and optional writing, 2026-10-28. */
.character-stories{margin:24px 0}.character-story{padding:16px 0;border-top:1px solid var(--line,#d8ded1)}.character-story h4{margin:0 0 8px}.saved-event-note{white-space:pre-wrap;overflow-wrap:anywhere}.event-writing{margin:16px 0;display:grid;gap:8px}.event-writing label{font-weight:600}.event-writing textarea{width:100%;box-sizing:border-box;min-height:100px;padding:12px;border:1px solid #b5c1b5;border-radius:10px;background:#fffdf5;color:#263d38;font:inherit;resize:vertical}.event-writing small{color:#53655c}
