:root{--paper:#f3ece1;--card:#fbf8f2b3;--accent:#c0392b;--accent-deep:#9c2b1f;--accent-soft:#f6e3df;--ink:#241f1c;--ink-soft:#4a423c;--text:#2f2925;--text-secondary:#6d635a;--text-muted:#9a8e82;--border:#ddd2c4;--border-light:#e9e1d4;--grid:#78604812;--success:#3f7d52;--error:#b4452f;--shadow-sm:0 1px 2px #28201c0f;--shadow-md:0 8px 26px #28201c1a;--radius:4px;--radius-lg:6px;--font-display:"Shippori Mincho", serif;--font-sans:"Zen Kaku Gothic New", system-ui, sans-serif;--font-jp:"Zen Kaku Gothic New", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-jp);color:var(--ink);background:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:0 0;background-size:24px 24px;min-height:100vh;font-size:17px;line-height:1.6}.app-header{text-align:center;padding:3.5rem 1.5rem 2rem;position:relative}.app-header:after{content:"";background:var(--accent);width:48px;height:2px;margin:1.5rem auto 0;display:block}.app-seal{background:var(--accent);color:#fff;width:56px;height:56px;font-family:var(--font-display);justify-content:center;align-items:center;margin:0 auto 1.2rem;font-size:1.8rem;font-weight:800;display:flex;box-shadow:0 4px 14px #c0392b4d}.app-header h1{font-family:var(--font-display);letter-spacing:.03em;color:var(--ink);margin-bottom:.4rem;font-size:1.9rem;font-weight:700}.app-header p{color:var(--text-secondary);max-width:480px;font-size:.88rem;line-height:1.7;font-family:var(--font-sans);margin:0 auto}.lesson-grid{flex-direction:column;gap:.6rem;max-width:780px;margin:0 auto;padding:1rem 1.5rem 5rem;display:flex}.lesson-row{border-left:2px solid var(--accent);background:var(--card);border-radius:0 var(--radius) var(--radius) 0;border:1px solid var(--border);border-left:2px solid var(--accent);transition:border-color .2s,box-shadow .2s;overflow:hidden}.lesson-row.open{box-shadow:var(--shadow-md)}.lesson-row.coming-soon{border-left-color:var(--text-muted);opacity:.65}.lesson-header-bar{cursor:pointer;user-select:none;align-items:center;gap:1rem;padding:1rem 1.2rem;transition:background .15s;display:flex}.lesson-header-bar:hover{background:#c0392b0a}.lesson-row.coming-soon .lesson-header-bar{cursor:default}.lesson-row.coming-soon .lesson-header-bar:hover{background:0 0}.lesson-num{font-family:var(--font-display);color:var(--accent);text-align:center;min-width:2.4rem;font-size:1.5rem;font-weight:700;line-height:1}.lesson-row.coming-soon .lesson-num{color:var(--text-muted)}.lesson-info{flex:1;min-width:0}.lesson-title-jp{color:var(--ink);margin-bottom:.15rem;font-size:1.05rem;font-weight:700}.lesson-title-jp ruby{ruby-align:center}.lesson-title-jp rt{color:var(--text-muted);font-size:.5em}.lesson-title-en{color:var(--text-secondary);font-size:.8rem;font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lesson-chevron{color:var(--text-muted);flex-shrink:0;font-size:1.2rem;transition:transform .25s}.lesson-row.open .lesson-chevron{transform:rotate(180deg)}.lesson-row.coming-soon .lesson-chevron{display:none}.lesson-status-badge{font-size:.7rem;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;flex-shrink:0;padding:.2em .6em;font-weight:600}.badge-ready{background:var(--success);color:#fff}.badge-soon{background:var(--text-muted);color:#fff}.section-list{border-top:1px solid var(--border-light);background:#fbf8f259;padding:.5rem 1.2rem 1rem;display:block}.section-list[hidden]{display:none}.section-item{border-radius:var(--radius);color:var(--ink);cursor:pointer;border:1px solid #0000;align-items:center;gap:.8rem;margin:.25rem 0;padding:.7rem .8rem;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.section-item:hover{background:var(--card);border-color:var(--border);text-decoration:none}.section-item.soon{opacity:.4;cursor:default;pointer-events:none}.sec-num{font-family:var(--font-display);color:var(--accent);text-align:center;min-width:1.8rem;font-size:1.3rem;font-weight:700}.section-item.soon .sec-num{color:var(--text-muted)}.sec-topic{font-size:.95rem;font-weight:600}.sec-topic-en{color:var(--text-secondary);font-size:.78rem;font-family:var(--font-sans);margin-left:.5rem}.sec-arrow{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:.9rem}.app-footer{text-align:center;color:var(--text-muted);font-size:.8rem;font-family:var(--font-sans);border-top:1px solid var(--border-light);max-width:780px;margin:0 auto;padding:2rem}.flashcard-entry{color:#92400e;background:#fde68a;border:1.5px solid #d97706;border-radius:999px;margin-top:.7rem;padding:.45rem 1.1rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .12s;display:inline-block}.flashcard-entry:hover{transform:translateY(-1px)}
