*{box-sizing:border-box}body{margin:0;background:#f6f5f0;color:#293a31;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.65}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:3px}button,summary{cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #818cba;outline-offset:3px}button{border:1px solid #d9ddd3;background:#fff;border-radius:8px;padding:8px 12px;color:#364f3d}.site-header{max-width:1240px;margin:auto;padding:23px 32px;border-bottom:1px solid #dddcd4;display:flex;justify-content:space-between;gap:20px;align-items:center}.brand{font-family:Georgia,serif;font-size:23px;text-decoration:none}.brand span{font:11px system-ui;color:#7e897e;margin-left:8px}.site-header nav{display:flex;gap:25px;font-size:12px}.site-header nav a{text-decoration:none;padding:6px 0}.site-header nav .active{border-bottom:2px solid #456447}main{max-width:1240px;margin:auto;padding:0 32px}.intro{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;padding:60px 0 48px}.eyebrow,.small-label{font-size:10px;letter-spacing:.17em;color:#798374;font-weight:600}.eyebrow{margin:0 0 10px}h1{font:normal clamp(42px,5.4vw,66px)/1.03 Georgia,serif;letter-spacing:-2px;margin:0}h1 span{color:#899861}.intro-copy{max-width:420px;color:#768073;font-size:13px;margin:20px 0 0}.hero-note{background:#e8ebdf;border-radius:3px 30px 3px 30px;padding:30px 32px;transform:rotate(-1deg);max-width:460px}.hero-note p{font:20px/1.7 Georgia,serif;margin:15px 0 24px}.hero-note span:not(.small-label),.mini-kana span{color:#899677}.mini-kana{font-size:23px;letter-spacing:.03em}.hero-note small{color:#7d8875;font-size:12px}h2{font:normal 26px/1.3 Georgia,serif;margin:0}h3{font-size:16px;margin:0 0 15px}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:20px}.muted{font-size:11px;color:#788173}.roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.topic{background:transparent;border:1px solid #d9ddd2;border-radius:10px;padding:15px 17px;text-align:left;display:flex;flex-direction:column;min-height:112px}.topic:hover{background:#efefe7}.topic.selected{background:#e7eadf;border-color:#8b9a74}.topic .topic-top{display:flex;justify-content:space-between;color:#89917f;font-size:10px;letter-spacing:.07em}.topic strong{font-size:15px;font-weight:500;margin:7px 0 2px}.topic small{color:#79836f;font-size:11px}.reference{margin:16px 0 36px;background:#eeeee6;border-radius:10px;padding:13px 18px}.reference summary{font-size:12px;color:#67775c}.reference-links{font-size:10px;color:#7a8473}.rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.rule-card{background:#fafbf5;padding:18px;border-radius:10px}.rule-card p{font-size:12px;margin:8px 0}.rule-card h3{margin-bottom:8px;font-size:14px}.jp-reading{display:block;font-size:12px;font-weight:400;color:#7f8b77;margin-top:3px}.rule-card .jp{font-size:17px}.table-wrap{overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-size:10px;font-weight:500;color:#7d8877}td,th{padding:10px 12px;border-bottom:1px solid #e4e6dc;vertical-align:top}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}td{min-width:90px}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start;padding-top:20px;border-top:1px solid #dedfd5}.library{border:1px solid #dde0d3;border-radius:12px;overflow:hidden;background:#f1f2e9;position:sticky;top:18px}.library summary{padding:17px 18px;font-size:13px;font-weight:500}.library summary span{float:right;font-size:10px;color:#7c8873}.library-body{padding:0 18px 18px}.library label{display:block;font-size:10px;color:#78836e;margin:12px 0 5px}.library input,.library select{width:100%;padding:9px 10px;border:1px solid #d8ddce;border-radius:7px;background:#fff;color:#3f5138;font-size:12px;min-height:40px}.caption-list{display:grid;gap:5px;margin-top:16px;max-height:570px;overflow-y:auto}.caption-choice{text-align:left;background:transparent;border:0;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;padding:12px 10px}.caption-choice:hover,.caption-choice.active{background:#e1e7d7}.caption-choice small{display:block;color:#87917e;font-size:10px;margin-top:5px}.paging{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px;font-size:10px}.paging button{font-size:10px;padding:6px 8px;background:transparent}.status-row{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:35px;margin-bottom:14px;color:#7d8774;font-size:11px}.status-row p{margin:0}.lesson-column{min-width:0}.empty{border:1px dashed #ced5c1;text-align:center;border-radius:15px;padding:70px 30px;color:#758169}.empty-mark{font:46px Georgia,serif;color:#9ca88d}.empty h2{margin:20px 0}.empty p{font-size:13px;max-width:400px;margin:auto}.source-card{background:#fff;border:1px solid #dfe3d6;border-radius:14px;padding:28px}.source-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:10px;color:#839175;margin-bottom:20px}.source-card blockquote{font-size:clamp(22px,2.5vw,31px);font-weight:500;line-height:1.6;margin:0;overflow-wrap:anywhere}.source-card .full-reading{font-size:14px;color:#7d8e6c;margin:10px 0 20px;line-height:1.9}.translation{font-size:14px;margin:0;color:#53634b}.lesson-intro{padding:22px 3px}.lesson-intro p{margin:0;color:#57654e;font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.chip{font-size:10px;border-radius:20px;background:#e8eadd;padding:4px 10px;color:#71815e}.lesson-section{background:#fff;border:1px solid #dfe3d6;border-radius:14px;padding:25px;margin:0 0 16px}.section-label{color:#9ba78f;font-size:10px;letter-spacing:.14em;margin:0 0 8px}.verb-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.verb-title{font-size:23px;line-height:1.3;font-weight:500}.group-badge{font-size:10px;background:#edf0e5;color:#6f825b;padding:5px 10px;border-radius:6px;white-space:nowrap}.verb-meaning{font-size:12px;color:#78856a;margin:12px 0 20px}.steps{display:flex;gap:9px;flex-wrap:wrap;align-items:stretch;margin-bottom:20px}.step{flex:1;min-width:130px;background:#f1f3e9;border-radius:8px;padding:14px}.step:not(:first-child){border-left:2px solid #9caa87}.step .jp{font-size:18px}.step p{font-size:11px;margin:9px 0 0;color:#6b7c5e}.why{border-left:2px solid #a4ad8e;padding-left:13px;font-size:13px;color:#56664b;margin:15px 0}.lesson-section details{margin-top:18px}.lesson-section summary{font-size:12px;color:#748662}.part{display:grid;grid-template-columns:120px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid #eceee5}.part:last-child{border:0}.part .jp{font-size:17px}.part strong{font-size:11px;color:#80916e}.part p{font-size:12px;margin:5px 0 0;color:#637456}.pattern{padding:16px 0;border-bottom:1px solid #eceee5}.pattern:last-child{border:0}.pattern .jp{font-size:19px}.formula{font-size:12px;background:#f0f2e8;border-radius:5px;padding:9px 12px;margin-top:12px;color:#526847}.pattern p{font-size:13px;color:#65775a;margin-bottom:0}.practice{background:#edeef5;border-color:#dfe0e9}.practice-card{padding:16px 0;border-bottom:1px solid #dbdfe8}.practice-card:last-child{border:0}.practice-card .jp{font-size:20px}.practice-card .jp-reading{color:#858da5}.practice-card p{font-size:13px;margin:10px 0;color:#646d86}.practice-card small{font-size:11px;color:#7e87a0}.text-button{background:none;border:0;text-decoration:underline;padding:2px;font-size:11px}.page-footer{font-size:10px;color:#89937f;text-align:center;padding:40px 0}.loading{opacity:.65}.error{color:#a45143!important}.loading-copy{padding:60px 30px;text-align:center;border-radius:14px;background:#eef0e5}.loading-copy p{font-size:12px;color:#7c8a6f}.loading-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#a5af8f;animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.2}}[hidden]{display:none!important}@media(min-width:901px){.library summary{list-style:none;pointer-events:none}}@media(max-width:900px){.intro{gap:30px;padding:40px 0}.hero-note{padding:24px}.workspace{grid-template-columns:250px minmax(0,1fr);gap:18px}.roadmap{grid-template-columns:repeat(4,minmax(0,1fr))}.topic{padding:12px}.source-card,.lesson-section{padding:20px}.part{grid-template-columns:95px 1fr}}@media(max-width:680px){main{padding:0 18px}.site-header{padding:17px 18px}.brand{font-size:21px}.brand span{display:none}.site-header nav{gap:16px;font-size:11px}.intro{grid-template-columns:1fr;gap:25px;padding:34px 0}.intro h1{font-size:48px}.intro-copy{font-size:12px}.hero-note{max-width:none;padding:22px;transform:none}.hero-note p{font-size:18px;margin-bottom:14px}.mini-kana{font-size:20px}.roadmap{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.topic{min-height:102px;padding:13px}.topic strong{font-size:14px}.section-heading .muted{font-size:10px}.workspace{grid-template-columns:1fr;gap:18px}.library{position:static}.caption-list{max-height:300px}.rule-grid{grid-template-columns:1fr}.source-card{padding:22px}.lesson-section{padding:20px}.steps{display:grid;grid-template-columns:1fr}.step{min-width:0}.step:not(:first-child){border-left:2px solid #9caa87}.part{grid-template-columns:90px 1fr;gap:10px}.source-meta{align-items:start}.source-meta span{max-width:70%}.status-row{font-size:10px}.reference{margin-bottom:25px}}@media(prefers-reduced-motion:reduce){.loading-dot{animation:none}}
