:root{color-scheme:light dark;--bg: #f7f3ec;--bg-raised: #ffffff;--bg-inset: #efe9dd;--text: #241f1a;--text-dim: #756c5e;--text-mute: #756c5e;--furi: #756c5e;--accent: #c25e2e;--accent-2: #e08a3c;--accent-ink: #ffffff;--accent-soft: #f6e2d4;--border: #e6ddcd;--border-strong: #d8ccb6;--ring: rgba(194, 94, 46, .35);--shadow-sm: 0 1px 2px rgba(45, 30, 10, .05), 0 1px 3px rgba(45, 30, 10, .05);--shadow: 0 6px 24px rgba(60, 40, 15, .1);--shadow-lg: 0 20px 55px rgba(50, 35, 15, .18);--sel: #f5c99b;--sel-border: #d98736;--danger: #b0342c;--ok: #3d7a4f;--radius: 16px;--radius-sm: 11px;--radius-lg: 22px;--grad-accent: linear-gradient(135deg, var(--accent-2), var(--accent));--reader-font-size: 22px;--safe-bottom: env(safe-area-inset-bottom, 0px);--ease: cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--bg: #141110;--bg-raised: #1e1a16;--bg-inset: #27221c;--text: #f0e9dc;--text-dim: #c4b6a4;--text-mute: #9a9082;--furi: #c4b6a4;--accent: #e88a52;--accent-2: #f0a860;--accent-ink: #1f1408;--accent-soft: #3a2a1d;--border: #332c24;--border-strong: #453a2e;--ring: rgba(232, 138, 82, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 8px 30px rgba(0, 0, 0, .5);--shadow-lg: 0 26px 60px rgba(0, 0, 0, .62);--sel: #5c3d1e;--sel-border: #e0824e;--danger: #e06a5f;--ok: #86c398}*{box-sizing:border-box}html[data-bfcache] #root{visibility:hidden}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background-image:radial-gradient(60rem 40rem at 110% -10%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),radial-gradient(50rem 40rem at -10% 0%,color-mix(in srgb,var(--accent-2) 7%,transparent),transparent 55%);background-attachment:fixed}h1,h2,h3{font-family:Playfair Display,Georgia,Times New Roman,serif;letter-spacing:-.01em}h2{font-weight:600}.jp,ruby{font-family:Noto Sans JP,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}.jp-title,.reader h2.jp,.hero-card-title{font-family:"Noto Serif JP",Hiragino Mincho ProN,Yu Mincho,serif}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,textarea,select{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-mute)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}::selection{background:var(--sel)}.app{max-width:760px;margin:0 auto;padding:0 16px calc(80px + var(--safe-bottom));min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:13px 0;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.topbar h1{font-size:23px;margin:0;font-weight:600;letter-spacing:-.01em}.topbar h1 .accent{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.topbar .spacer{flex:1}.navtabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:var(--bg-raised);border-top:1px solid var(--border);padding:6px 0 calc(6px + var(--safe-bottom))}.navtabs button{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--text-dim);padding:4px 14px;border-radius:10px}.navtabs button .icon{font-size:20px;line-height:1}.navtabs button.active{color:var(--accent);background:var(--accent-soft);font-weight:600}@media(min-width:760px){.app-chrome{position:sticky;top:0;z-index:25;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}.app-chrome .topbar{position:static;background:transparent;border-bottom:none}.navtabs{position:static;top:auto;bottom:auto;border-top:none;justify-content:flex-start;gap:4px;background:transparent;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);padding:0 0 8px}.navtabs button{flex-direction:row;font-size:14px;gap:6px;padding:8px 14px}.navtabs button.active{background:var(--accent-soft)}.navtabs button .icon{font-size:16px}.app{padding-bottom:40px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad-accent);color:var(--accent-ink);border-radius:var(--radius-sm);padding:11px 19px;font-weight:650;letter-spacing:.01em;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 32%,transparent);transition:transform .14s var(--ease),box-shadow .16s var(--ease),opacity .15s,filter .15s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 40%,transparent);filter:brightness(1.03)}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none;filter:none}.btn.secondary{background:var(--bg-inset);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.secondary:hover{border-color:var(--border-strong);filter:none}.btn.small{padding:7px 13px;font-size:14px;border-radius:9px}.btn.ghost{background:transparent;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:none}.btn.ghost:hover{background:var(--accent-soft);filter:none}.btn.danger{background:var(--danger);box-shadow:none;color:#fff}.textlink{background:none;border:none;padding:2px;color:var(--accent);font-weight:600;font-size:inherit}.textlink:hover{text-decoration:underline}.textlink:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:550;padding:3px 11px;border-radius:999px;background:var(--bg-inset);color:var(--text-dim)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.streak-pill{background:var(--bg-inset);color:var(--text-dim);font-weight:650}.streak-pill.active{background:color-mix(in srgb,#e8863c 18%,transparent);color:#d9691f}[data-theme=dark] .streak-pill.active{color:#f0a860}.muted{color:var(--text-dim)}.error-banner{background:var(--danger);color:#fff;padding:10px 14px;border-radius:10px;margin:12px 0;font-size:14px}.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.spinner.dark{border-color:var(--border);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.onboard{padding:32px 0}.onboard h2{font-size:26px;margin:8px 0 4px}.onboard .step-progress{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.onboard .step-dots{display:flex;gap:6px}.onboard .step-dots span{width:26px;height:5px;border-radius:4px;background:var(--bg-inset);transition:background .2s var(--ease)}.onboard .step-dots span.done{background:var(--accent)}.onboard .step-count{font-size:13px;font-weight:600;color:var(--text-dim)}.choice-list{display:flex;flex-direction:column;gap:10px;margin:18px 0}.choice{text-align:left;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg-raised)}.choice .title{font-weight:600}.choice .sub{font-size:13px;color:var(--text-dim);margin-top:2px}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.interest-grid{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.interest-chip{padding:9px 15px;border-radius:999px;border:1.5px solid var(--border);background:var(--bg-raised);font-size:15px}.interest-chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.interest-chip .weight{font-size:12px;margin-left:6px;opacity:.8}.interest-wrap{position:relative;display:inline-flex}.chip-clear{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-dim);font-size:12px;line-height:1;cursor:pointer}.onboard-nav{display:flex;gap:10px;margin-top:24px}.onboard-nav .btn{flex:1}.field{margin:14px 0}.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.field .hint{font-size:12.5px;color:var(--text-dim);margin-top:5px}.field-error{color:var(--danger);font-size:13px;margin-top:6px}.field input[type=text],.field input[type=password],.field textarea,.field select{width:100%}.library-header{display:flex;align-items:center;gap:10px;margin:18px 0 12px;flex-wrap:wrap}.library-header h2{margin:0;font-size:22px;flex:1}.newstory-row{display:flex;gap:8px;margin-bottom:18px}.newstory-row input{flex:1}.story-list{display:flex;flex-direction:column;gap:12px}.continue-card{margin-bottom:12px;border-color:var(--accent)}.continue-kicker{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.status-in_progress{background:var(--accent-soft);color:var(--accent)}.story-item{position:relative;display:block;width:100%;text-align:left;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px 15px 19px;box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .16s var(--ease),box-shadow .18s var(--ease),border-color .16s var(--ease)}.story-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-accent);transform:scaleY(.28);transform-origin:center;opacity:.55;transition:transform .2s var(--ease),opacity .2s var(--ease)}.story-item:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border-strong)}.story-item:hover:before{transform:scaleY(1);opacity:1}.story-item .jp-title{font-size:20px;font-weight:600;line-height:1.35}.story-item .row2{display:flex;gap:10px;align-items:center;margin-top:9px;justify-content:space-between}.story-item .meta-pills{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.story-item .status-unread{background:var(--accent-soft);color:var(--accent)}.story-item .status-finished{color:var(--ok)}.generating-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:linear-gradient(180deg,var(--accent-soft),var(--bg-raised));animation:pulse-border 2.4s var(--ease) infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 0 0 var(--ring)}50%{box-shadow:0 0 0 5px transparent}}.reader{padding-top:8px}.reader-controls{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:6px;padding:8px 0;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap}.reader-controls .spacer{flex:1}.iconbtn{padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-raised);font-size:14px;color:var(--text)}.iconbtn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.reader h2.jp{font-size:calc(var(--reader-font-size) * 1.35);margin:20px 0 2px;line-height:1.6}.reader h2.jp ruby rt{font-size:.5em;color:var(--furi);letter-spacing:0}.reader .title-en{color:var(--text-dim);font-size:15px;margin-bottom:4px}.grammar-banner{margin:14px 0;padding:12px 14px;font-size:14px}.grammar-banner summary{cursor:pointer;font-weight:600;color:var(--accent)}.grammar-banner ul{margin:8px 0 0;padding-left:18px}.grammar-banner li{margin:4px 0}.story-body{font-size:var(--reader-font-size);line-height:2.3;user-select:none;-webkit-user-select:none}.story-body p{margin:1.2em 0}@media(max-width:1024px){.story-body{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);box-shadow:var(--shadow-sm);padding:20px 18px;margin-top:16px}}.sentence-wrap{position:relative}.tok{border-radius:5px;padding:1px 0;cursor:pointer;transition:background .1s}.tok:hover{background:var(--accent-soft)}.tok.sel{background:var(--sel);box-shadow:0 2px 0 var(--sel-border)}.tok ruby rt{font-size:.5em;color:var(--furi);letter-spacing:0}.tok.sel ruby rt{color:inherit}.sent-tools{position:relative;display:inline-block;width:0;height:0;vertical-align:baseline}.sent-menu-btn{position:absolute;left:2px;top:-.15em;font-size:13px;letter-spacing:.5px;color:var(--furi);opacity:0;padding:0 4px;line-height:1;border-radius:6px}.sentence-wrap:hover .sent-menu-btn,.sentence-wrap:focus-within .sent-menu-btn,.sent-menu-btn[aria-expanded=true]{opacity:1}.sent-menu{position:absolute;z-index:6;left:0;top:1.1em;display:flex;flex-direction:column;min-width:148px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:4px}.sent-menu button{text-align:left;font-size:13px;padding:7px 10px;border-radius:7px;color:var(--text)}.sent-menu button:hover{background:var(--accent-soft);color:var(--accent)}@media(hover:none){.sent-menu-btn{opacity:.85}}.sent-translation{display:block;font-size:15px;line-height:1.6;color:var(--text-dim);background:var(--bg-inset);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:8px 12px;margin:6px 0 10px;user-select:text;-webkit-user-select:text}.reader-footer{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.tutor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000040}.tutor-panel{position:fixed;z-index:50;display:flex;flex-direction:column;background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow);left:0;right:0;bottom:0;border-radius:18px 18px 0 0;height:var(--sheet-vh, 40vh);max-height:88vh;padding-bottom:var(--safe-bottom)}.tutor-panel .drag-handle{width:44px;height:5px;border-radius:4px;background:var(--border-strong);margin:8px auto 4px;cursor:ns-resize;touch-action:none;flex-shrink:0}.tutor-quote{margin:0 16px 8px;padding:6px 10px;border-left:3px solid var(--accent);background:var(--bg-inset);border-radius:0 8px 8px 0;font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}@media(min-width:760px){.tutor-panel{left:auto;right:16px;top:16px;bottom:16px;width:420px;height:auto;max-height:none;border-radius:16px}body.tutor-open .app{max-width:min(760px,calc(100vw - 492px));margin-right:452px;margin-left:max(20px,calc((100vw - 452px - min(760px,100vw - 492px))/2))}.tutor-panel .drag-handle{display:none}.tutor-overlay{background:transparent;pointer-events:none}}.tutor-head{display:flex;align-items:flex-start;gap:10px;padding:12px 16px 10px;border-bottom:1px solid var(--border)}.tutor-head .sel-word{font-size:21px;font-weight:700;line-height:1.4}.tutor-head .sel-meta{font-size:13px;color:var(--text-dim);margin-top:2px}.tutor-head .close{font-size:20px;color:var(--text-dim);padding:4px 8px}.tutor-head .head-main{flex:1;min-width:0}.tutor-actions{display:flex;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tutor-msgs{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px;min-height:60px}.msg{max-width:88%;padding:9px 13px;border-radius:14px;font-size:15px;line-height:1.65;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}.msg.assistant{align-self:flex-start;background:var(--bg-inset);border:1px solid var(--border);border-bottom-left-radius:4px;padding:12px 14px;user-select:text;-webkit-user-select:text}.msg .speak{margin-left:8px;opacity:.6;font-size:13px}.msg .speak:hover{opacity:1}.tutor-input{display:flex;gap:8px;padding:10px 16px 12px;border-top:1px solid var(--border)}.tutor-input input{flex:1;border-radius:999px;padding:10px 16px}.tutor-input .micbtn,.tutor-input .sendbtn{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.tutor-input .sendbtn{background:var(--accent);color:var(--accent-ink)}.tutor-input .micbtn{background:var(--bg-inset);border:1px solid var(--border)}.tutor-input .micbtn.listening{background:var(--danger);color:#fff;animation:pulse 1.2s infinite}@keyframes pulse{50%{transform:scale(1.08)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--bg-raised);border-radius:16px;padding:22px;width:100%;max-width:440px;max-height:85vh;overflow-y:auto}.modal h3{margin:0 0 4px}.rate-row{display:flex;flex-direction:column;gap:8px;margin:14px 0}.rate-row .choice{padding:11px 14px}.feel-row{display:flex;gap:8px;margin:14px 0}.feel-row .choice{flex:1;text-align:center;padding:11px 8px}@media(max-width:560px){.feel-row{flex-direction:column}.feel-row .choice{text-align:left}}.score-change{text-align:center;font-size:17px;margin:18px 0}.score-change .big{font-size:30px;font-weight:700;color:var(--accent)}.finish-upsell{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:var(--radius-sm)}.finish-upsell-text{font-size:13.5px;line-height:1.4;flex:1}.finish-upsell .btn.small{flex-shrink:0}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:16px 0}.stat-card{position:relative;text-align:center;padding:20px 12px 18px;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-accent);opacity:.85}.stat-card .num{font-size:31px;font-weight:700;color:var(--accent);line-height:1.1;font-variant-numeric:tabular-nums}.stat-card .label{font-size:13px;color:var(--text-dim);margin-top:5px;line-height:1.35}.chart-card{margin:12px 0}.chart-card h3{margin:0 0 10px;font-size:16px}.chart-card svg{width:100%;height:auto;display:block}.word-table{width:100%;border-collapse:collapse;font-size:15px}.word-table th{padding:8px 6px;border-bottom:1px solid var(--border);text-align:left;font-size:13px;color:var(--text-dim);font-weight:650}.word-table td{padding:8px 6px;border-bottom:1px solid var(--border)}.word-table td:last-child{text-align:right;color:var(--text-dim)}.word-table td.word-actions{white-space:nowrap}.word-table td.word-actions .btn{margin-left:4px;padding:4px 8px;font-size:13px}.word-table td.word-actions .muted{font-size:13px;margin-right:4px}.word-table-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.word-table-head h3{margin:0}.fc-dict{margin-top:6px;font-size:15px;color:var(--text-dim)}.fc-dict .jp{color:var(--text);font-size:18px}.grade-btn .key,.show-answer .key{display:inline-block;margin-right:6px;padding:0 5px;border-radius:4px;font-size:11px;font-weight:600;line-height:16px;border:1px solid currentColor;opacity:.6}@media(hover:none){.grade-btn .key,.show-answer .key{display:none}}.settings h2{font-size:22px}.settings section{margin:20px 0}.settings section h3{font-size:16px;margin:0 0 12px;display:flex;align-items:center;gap:8px}.switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:12px}.switch-row .lab{font-size:15px}.switch-row .sub{font-size:12.5px;color:var(--text-dim)}.toggle{width:46px;height:27px;border-radius:999px;background:var(--bg-inset);border:1px solid var(--border);position:relative;flex-shrink:0;transition:background .15s}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0000004d;transition:left .15s}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on:after{left:22px}.segmented{display:flex;flex-shrink:0;background:var(--bg-inset);border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px}.segmented button{padding:5px 13px;font-size:13px;border-radius:999px;color:var(--text-dim);transition:background .15s,color .15s}.segmented button.on{background:var(--accent);color:var(--accent-ink)}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.status-dot.ok{background:var(--ok)}.status-dot.bad{background:var(--danger)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}.seg button{padding:7px 13px;font-size:14px;background:var(--bg-raised);color:var(--text-dim)}.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.seg button+button{border-left:1px solid var(--border)}.toast{position:fixed;bottom:calc(84px + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:100;background:var(--text);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:14px;box-shadow:var(--shadow);max-width:90vw}@media(min-width:760px){.toast{bottom:32px}}.upgrade-pill{margin-left:8px;background:linear-gradient(135deg,var(--accent),#d98a4a);color:#fff;border:none;font-weight:700;box-shadow:0 2px 10px #00000026}.pro-pill{margin-left:8px;background:linear-gradient(135deg,#f0a860,#d9743a);color:#2a1a0e;font-weight:800;letter-spacing:.06em;border:none}.free-meter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 14px;padding:10px 14px;background:var(--bg-inset);border:1px solid var(--border);border-radius:12px;font-size:14px}.paywall{max-width:420px;position:relative;padding:28px 26px 22px}.paywall-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:26px;line-height:1;color:var(--text-dim);cursor:pointer}.paywall-head{text-align:center;margin-bottom:18px}.paywall-head h2{margin:6px 0;font-size:26px}.paywall-head p{margin:0;font-size:14px}.plan-toggle{display:flex;gap:4px;padding:4px;margin:0 auto 16px;background:var(--bg-inset);border-radius:12px;width:fit-content}.plan-toggle button{border:none;background:none;color:var(--text-dim);padding:8px 16px;border-radius:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.plan-toggle button.on{background:var(--bg-raised);color:var(--text);box-shadow:0 1px 4px #0000001f}.save-badge{font-size:10.5px;font-weight:800;padding:2px 6px;border-radius:6px;background:var(--accent);color:#fff;letter-spacing:.03em}.plan-price{text-align:center;margin-bottom:16px}.plan-price .amount{font-size:40px;font-weight:800;letter-spacing:-.02em}.plan-price .per{color:var(--text-dim);font-size:15px;margin-left:4px}.feature-list{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:10px}.feature-list li{display:flex;align-items:center;gap:10px;font-size:15px}.feature-list .check{flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.feature-list.dim li{font-size:13.5px;color:var(--text-dim)}.feature-list.dim .check{background:transparent;color:var(--text-dim)}.upgrade-btn{background:linear-gradient(135deg,var(--accent),#d98a4a);border:none;font-weight:700;font-size:16px;padding:14px;box-shadow:0 4px 16px #b3592a4d}.free-recap{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}@keyframes viewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.view-anim{animation:viewIn .32s var(--ease) both}@media(prefers-reduced-motion:reduce){.view-anim,.story-item,.btn,.generating-card{animation:none!important;transition:none!important}}.modal-overlay{animation:viewIn .2s var(--ease) both;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{box-shadow:var(--shadow-lg);animation:viewIn .28s var(--ease) both}@media(min-width:760px){.navtabs button{transition:background .15s var(--ease),color .15s var(--ease)}.navtabs button:hover{background:var(--bg-inset)}.navtabs button.active{background:var(--accent-soft);color:var(--accent)}}.landing{max-width:1080px;margin:0 auto;padding:0 20px calc(40px + var(--safe-bottom))}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}.landing-nav .brand{font-family:Playfair Display,serif;font-size:22px;font-weight:600}.landing-nav .brand .accent{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.landing-nav-actions{display:flex;gap:8px}.hero{text-align:center;padding:56px 0 40px;position:relative}.hero-eyebrow{display:inline-block;font-size:13px;font-weight:650;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:6px 14px;border-radius:999px;margin-bottom:22px}.hero-title{font-size:clamp(38px,7vw,68px);line-height:1.04;margin:0 0 20px;font-weight:600;letter-spacing:-.02em}.accent-grad{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-sub{max-width:620px;margin:0 auto 28px;font-size:clamp(16px,2.4vw,19px);line-height:1.6;color:var(--text-dim)}.hero-cta{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:44px}.hero-btn{font-size:17px;padding:15px 28px;border-radius:14px}.hero-note{font-size:13.5px;color:var(--text-dim);min-height:1.3em}.skeleton-line{display:inline-block;width:280px;max-width:80%;height:.9em;border-radius:6px;background:var(--bg-inset);vertical-align:middle}.hero-card{max-width:640px;margin:0 auto;text-align:left;padding:18px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:stretch}.hero-mock-story{min-width:0}.hero-card-title{font-size:26px;font-weight:600}.hero-card-sub{font-size:13px;color:var(--text-dim);margin:2px 0 14px}.hero-card-body{font-size:22px;line-height:2.15;margin:0}.hero-card-body ruby rt{font-size:.5em;color:var(--furi)}.hero-card-body .hl{background:var(--sel);border-radius:4px;box-shadow:0 2px 0 var(--sel-border)}.hero-mock-tutor{display:flex;flex-direction:column;gap:8px;justify-content:center;background:var(--bg-inset);border-radius:12px;padding:12px}.hero-mock-tutor .msg{max-width:100%;font-size:13.5px}@media(max-width:680px){.hero-card{grid-template-columns:1fr}}.section-title{text-align:center;font-size:clamp(26px,4vw,36px);margin:0 0 32px}.diff-section,.steps-section,.pricing-section{padding:44px 0}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.diff-card{padding:28px}.diff-icon{font-size:34px;margin-bottom:12px}.diff-tag{display:inline-block;font-size:12px;font-weight:650;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px;margin-bottom:12px}.diff-card h3{font-size:22px;margin:0 0 10px}.diff-card p{font-size:15px;line-height:1.6;margin:0}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.step{text-align:center;padding:8px;position:relative}.step-num{position:relative;z-index:1;width:44px;height:44px;margin:0 auto 14px;border-radius:50%;background:var(--grad-accent);color:var(--accent-ink);font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 30%,transparent)}@media(min-width:681px){.step:not(:first-child):before{content:"";position:absolute;z-index:0;top:29px;left:-50%;right:50%;height:2px;background:color-mix(in srgb,var(--accent) 35%,transparent)}}.step-title{font-weight:650;font-size:16px;margin-bottom:6px}.step-desc{font-size:14px;line-height:1.5}.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:720px;margin:0 auto}.price-card{padding:28px;position:relative;display:flex;flex-direction:column}.price-skeleton{min-height:340px;background:linear-gradient(180deg,var(--bg-raised),var(--bg-inset))}.price-card.featured{border-color:var(--accent);box-shadow:0 12px 40px color-mix(in srgb,var(--accent) 18%,transparent)}.price-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--grad-accent);color:var(--accent-ink);font-size:12px;font-weight:700;padding:4px 14px;border-radius:999px;white-space:nowrap}.price-name{font-weight:650;font-size:18px;color:var(--text-dim)}.price-amt{font-size:44px;font-weight:800;letter-spacing:-.02em;margin:4px 0;font-family:Playfair Display,serif}.price-per{font-size:17px;font-weight:500;color:var(--text-dim)}.price-sub{font-size:13px;margin-bottom:8px}.price-card .feature-list{flex:1;margin:16px 0 20px}.final-cta{text-align:center;padding:60px 0 40px}.final-cta h2{font-size:clamp(26px,4.5vw,40px);margin:0 0 24px}.landing-footer{text-align:center;font-size:13px;padding:30px 0;border-top:1px solid var(--border)}@media(max-width:680px){.diff-grid,.steps-grid,.pricing-grid{grid-template-columns:1fr}.hero{padding-top:36px}}.btn,.topbar h1{white-space:nowrap}.story-item .jp-title{padding-right:30px}.story-item .story-date{font-size:12px;white-space:nowrap;flex-shrink:0}.story-del{position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;border-radius:8px;color:var(--text-dim);opacity:0;transition:background .15s var(--ease),color .15s var(--ease),opacity .15s var(--ease)}.story-item:hover .story-del,.story-item:focus-within .story-del,.story-item.menu-open .story-del{opacity:1}.story-more{display:none;position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;color:var(--text-dim);font-size:18px;line-height:1}@media(hover:none){.story-del{opacity:0}.story-item.menu-open .story-del{opacity:1;top:44px}.story-more{display:inline-flex}}.story-del:hover{background:var(--bg-inset);color:var(--danger)}.story-del:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media(max-width:430px){.topbar{gap:6px}.topbar h1{font-size:20px}.free-meter{flex-wrap:wrap}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}button:focus:not(:focus-visible){outline:none}.story-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:480px){.newstory-row{flex-wrap:wrap}.newstory-row input{flex:1 1 100%}.newstory-row .btn{flex:1}}.navtabs button .icon{position:relative}.tab-badge{position:absolute;top:-7px;right:-12px;min-width:17px;height:17px;padding:0 4px;background:var(--grad-accent);color:var(--accent-ink);font-size:10.5px;font-weight:800;line-height:17px;text-align:center;border-radius:999px;box-shadow:0 1px 4px #00000040}.review-topline{display:flex;align-items:center;justify-content:space-between}.flashcard{text-align:center;padding:32px 24px;margin-top:12px;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.flashcard{position:relative}.flashcard>.pill{position:absolute;top:14px;left:14px}.fc-word{font-family:Noto Sans JP,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;font-size:42px;font-weight:600;line-height:1.3}.fc-dict{margin-top:4px}.show-answer{margin-top:14px}.fc-answer{display:flex;flex-direction:column;align-items:center;gap:6px}.fc-reading{font-size:20px;color:var(--accent)}.fc-meaning{font-size:18px;font-weight:600}.fc-sentence{margin-top:12px;padding-top:14px;border-top:1px solid var(--border);width:100%}.fc-sentence .jp{font-size:19px;line-height:1.8}.fc-trans{font-size:14px;margin-top:6px}.state-new{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.state-learning{background:color-mix(in srgb,#e0a020 20%,transparent);color:#c88a10}.state-review{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.grade-btn{padding:14px 6px;border-radius:12px;font-weight:700;font-size:15px;color:#fff;transition:transform .12s var(--ease),filter .15s}.grade-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.grade-btn:active{transform:scale(.97)}.grade-btn.again{background:#c2472f}.grade-btn.hard{background:#c07a2a}.grade-btn.good{background:#3d8a55}.grade-btn.easy{background:#3f7ea8}.review-done{text-align:center;padding:40px 24px;margin-top:12px}.review-stats{display:flex;justify-content:center;gap:20px;margin-top:16px;font-size:15px;color:var(--text-dim)}.review-stats b{color:var(--text);font-size:18px}.msg .md-h{font-family:Playfair Display,Georgia,serif;font-weight:650;font-size:1.05em;margin:12px 0 5px;padding-bottom:4px;border-bottom:1px solid var(--border);color:var(--accent)}.msg .md-h:first-child{margin-top:0}.msg .md-p{margin:6px 0}.msg .md-ul{list-style:none;margin:6px 0;padding-left:2px}.msg .md-ul li{position:relative;padding-left:16px;margin:5px 0}.msg .md-ul li:before{content:"";position:absolute;left:2px;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.msg .md-example{display:block;margin:8px 0;padding:8px 12px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-raised));border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:1.06em;line-height:1.9}.msg code{background:var(--bg-inset);padding:1px 5px;border-radius:5px;font-size:.92em}
