:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#161d19;--ink-soft:#3c4a43;--muted:#6a756e;--paper:#f7f3ea;--paper-deep:#ebe4d6;--pine:#1b3d30;--pine-deep:#10261e;--moss:#3d6a54;--gold:#b8933f;--gold-soft:#e8d5a3;--cream:#fbf8f1;--line:#10261e1f;--danger:#8f3a30;--shadow:0 18px 48px #101c161a;--shadow-soft:0 8px 24px #101c160f;--radius:22px;--font-display:"Fraunces", Georgia, serif;--font-reading:"Literata", Georgia, serif;--font-ui:"Outfit", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tabbar-height:0px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100dvh}body{color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;background:#e8e2d4;margin:0}button,input{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{min-height:100vh;position:relative;overflow:clip visible}.atmosphere{z-index:0;pointer-events:none;background:radial-gradient(70% 50% at 8% -8%,#b8933f38,#0000 52%),radial-gradient(60% 46% at 96% 4%,#1b3d3029,#0000 48%),linear-gradient(168deg,#f6f1e6 0%,#e8e0d0 46%,#d9d2c2 100%);position:fixed;inset:0}.atmosphere:before{content:"";opacity:.45;background:radial-gradient(circle at 50% 0,#fffcf5b3,#0000 46%);position:absolute;inset:0}.atmosphere:after{content:"";opacity:.28;background-image:linear-gradient(#10261e09 1px,#0000 1px),linear-gradient(90deg,#10261e09 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 28%,#000,#0000 72%);mask-image:radial-gradient(circle at 50% 28%,#000,#0000 72%)}.topbar,.navbar,.stage{z-index:1;position:relative}.navbar{padding:.85rem clamp(1rem,3vw,2.5rem) .75rem;animation:.55s both rise}.navbar__bar{border:1px solid var(--line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf8f1d1;border-radius:20px;flex-wrap:wrap;align-items:center;gap:.55rem .85rem;padding:.55rem .75rem .55rem .7rem;display:flex}.navbar__brand{text-align:left;color:inherit;background:0 0;border:0;align-items:center;gap:.75rem;min-width:0;padding:0;display:flex}.navbar__mark{border-radius:12px;flex:none;box-shadow:0 6px 16px #10261e29}.navbar__wordmark{gap:.12rem;min-width:0;display:grid}.navbar__logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);font-size:clamp(1.45rem,2.6vw,1.85rem);font-weight:650;line-height:1}.navbar__tagline{color:var(--muted);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.navbar__links{border:1px solid var(--line);background:#ffffff94;border-radius:999px;flex-wrap:wrap;flex:18rem;justify-content:center;align-items:center;gap:.2rem;min-width:0;padding:.22rem;display:flex}.navbar__link{color:var(--ink-soft);background:0 0;border:0;border-radius:999px;padding:.55rem 1rem;font-size:.92rem;font-weight:500;transition:background .2s,color .2s,transform .2s}.navbar__link:hover:not(:disabled){color:var(--pine-deep);background:#1f4d3a14}.navbar__link.is-active{background:var(--pine);color:#f7faf7;transform:translateY(-1px)}.navbar__link:disabled{opacity:.4;cursor:not-allowed}.navbar__aside{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:.45rem;min-width:0;margin-left:auto;display:flex}.focus-timer{z-index:1;flex:none;position:relative}@media (width<=1320px){.navbar__links{flex:100%;order:3}.navbar__tagline,.navbar__user,.navbar__lang-btn-label{display:none}}.focus-timer{border:1px solid var(--line);white-space:nowrap;color:var(--ink-soft);background:#ffffffb3;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.8rem;display:inline-flex}.focus-timer.is-running{color:var(--pine-deep);background:#1f4d3a1a;border-color:#1f4d3a47}.focus-timer.is-paused{opacity:.88}.focus-timer__dot{background:#9aa59d;border-radius:999px;width:.55rem;height:.55rem}.focus-timer.is-running .focus-timer__dot{background:#2f7d4f;animation:1.4s infinite focus-pulse;box-shadow:0 0 0 3px #2f7d4f2e}.focus-timer__state{font-weight:600}.focus-timer__label{color:var(--muted)}.focus-timer__clock{font-variant-numeric:tabular-nums;color:var(--pine-deep);min-width:3.4rem;font-weight:700}@keyframes focus-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.habit-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.page-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 .45rem;font-size:.72rem;font-weight:600}.habit-stat{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fbf8f1f0;border-radius:18px;padding:1.05rem 1.15rem}.habit-stat__label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem;font-weight:600}.habit-stat__value{font-family:var(--font-display);color:var(--pine-deep);margin:.45rem 0 0;font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.15}.habit-stat__unit,.habit-stat__meta{color:var(--muted);margin:.25rem 0 0;font-size:.88rem;font-weight:500}.habit-history h3{color:var(--pine-deep);margin:.5rem 0 .85rem;font-size:1rem}.habit-bars{border:1px solid var(--line);background:#fbf8f1f0;border-radius:18px;grid-template-columns:repeat(14,minmax(0,1fr));gap:.45rem;margin:0;padding:1rem 1rem .85rem;list-style:none;display:grid}.habit-bar{justify-items:center;gap:.45rem;min-width:0;display:grid}.habit-bar__track{background:#1f4d3a0f;border-radius:10px;justify-content:center;align-items:flex-end;width:100%;height:110px;display:flex;overflow:hidden}.habit-bar__fill{background:#1f4d3a2e;border-radius:8px 8px 4px 4px;width:70%;transition:height .25s}.habit-bar__fill.has-time{background:linear-gradient(#c4a35a,#1b3d30)}.habit-bar__label{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.62rem;line-height:1.2;overflow:hidden}@media (width<=960px){.habit-stats{grid-template-columns:1fr}.habit-bars{grid-template-columns:repeat(7,minmax(0,1fr))}.focus-timer__label,.navbar__user{display:none}}.navbar__user{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;overflow:hidden}.navbar__user strong{color:var(--pine-deep);font-weight:600}.navbar__tools{display:none}.navbar__lang-wrap{flex:none;position:relative}.navbar__lang-btn{border:1px solid var(--line);color:var(--pine-deep);white-space:nowrap;background:#ffffffb8;border-radius:999px;align-items:center;gap:.45rem;padding:.42rem .75rem;font-size:.82rem;font-weight:600;display:inline-flex}.navbar__lang-btn.is-open,.navbar__lang-btn:hover{background:#1f4d3a1a}.navbar__lang-btn-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.navbar__lang-btn-codes{font-variant:all-small-caps;letter-spacing:.04em}.navbar__lang-pop{z-index:80;border:1px solid var(--line);min-width:16.5rem;box-shadow:var(--shadow);background:#fbf8f1fa;border-radius:16px;gap:.9rem;padding:.95rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.navbar__aside .lang-switcher.is-compact{gap:.25rem}.navbar__aside .lang-switcher.is-compact .lang-switcher__label{font-size:.68rem}.navbar__aside .lang-switcher.is-compact .lang-chip{padding:.32rem .55rem}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding:1.5rem clamp(1.25rem,4vw,3rem) .75rem;animation:.7s both rise;display:flex}.brand-block{max-width:28rem}.brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);margin:0;font-size:clamp(2.8rem,7vw,4.4rem);font-weight:700;line-height:.95}.tagline{color:var(--ink-soft);margin:.55rem 0 0;font-size:1.05rem}.topbar-controls{flex-wrap:wrap;justify-content:flex-end;gap:1rem 1.25rem;display:flex}.lang-switcher{gap:.4rem;display:grid}.lang-switcher__label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.lang-switcher__options{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbf8f1c7;border-radius:999px;gap:.35rem;padding:.25rem;display:flex}.lang-chip{color:var(--ink-soft);background:0 0;border:0;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .75rem;transition:background .2s,color .2s,transform .2s;display:inline-flex}.lang-chip:hover:not(:disabled){background:#1f4d3a14}.lang-chip.is-active{background:var(--pine);color:#f7faf7;transform:translateY(-1px)}.lang-chip:disabled{opacity:.35;cursor:not-allowed}.lang-chip__code{font-size:.78rem;font-weight:600}.lang-chip__name{font-size:.82rem}.stage{padding:1rem clamp(1.25rem,4vw,3rem) 3rem}.stage:not(.has-document){place-items:start center;min-height:calc(100vh - 9rem);display:grid}.stage:has(.auth-panel){place-items:center}.home-layout{gap:2rem;width:min(920px,100%);padding-bottom:2rem;animation:.7s both rise;display:grid}.home-layout--wide{width:min(1100px,100%)}.user-chip{color:var(--ink-soft);align-items:center;gap:.75rem;font-size:.95rem;display:flex}.auth-topbar{align-items:center}.auth-panel{border-radius:var(--radius);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fbf8f1f0;gap:1.35rem;padding:2.1rem 1.85rem 1.85rem;animation:.7s both rise;display:grid}.auth-mark{border-radius:18px;margin:0 auto .85rem;box-shadow:0 10px 24px #10261e29}.auth-copy{text-align:center}.auth-brand{font-size:2.4rem!important}.auth-title{font-family:var(--font-display);color:var(--pine-deep);margin:.35rem 0 0;font-size:1.7rem;font-weight:500}.auth-hint{color:var(--ink-soft);margin:.45rem 0 0}.auth-form{gap:.85rem;display:grid}.field{color:var(--muted);gap:.35rem;font-size:.85rem;display:grid}.field input{border:1px solid var(--line);color:var(--ink);background:#fffdf8;border-radius:12px;padding:.8rem .95rem}.field input:focus{border-color:var(--pine);outline:2px solid #1f4d3a40}.auth-submit{width:100%;margin-top:.25rem}.auth-switch{text-align:center;color:var(--ink-soft);margin:0;font-size:.95rem}.text-link{color:var(--pine);background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.auth-error{margin:0}.center-msg{text-align:center;margin:4rem auto}.library-panel{gap:1rem;display:grid}.library-header h2{font-family:var(--font-display);color:var(--pine-deep);margin:0;font-size:clamp(1.7rem,3vw,2.15rem);font-weight:550}.library-header p{color:var(--muted);margin:.3rem 0 0}.library-empty{color:var(--muted);background:#fbf8f1b8;border:1px dashed #b8933f66;border-radius:16px;margin:0;padding:1.35rem}.library-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.library-item{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fbf8f1f0;border-radius:18px;gap:.75rem;padding:1.15rem 1.2rem;display:grid}.library-open{text-align:left;color:inherit;background:0 0;border:0;gap:.25rem;padding:0;display:grid}.library-title{font-family:var(--font-display);color:var(--pine-deep);font-size:1.15rem}.library-meta{color:var(--muted);font-size:.85rem}.library-preview{font-family:var(--font-reading);color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;line-height:1.45;display:-webkit-box;overflow:hidden}.library-actions{flex-wrap:wrap;gap:.5rem;display:flex}.title-editor{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.title-editor__input{border:1px solid var(--line);min-width:0;font-family:var(--font-display);color:var(--pine-deep);background:#fff;border-radius:12px;flex:12rem;padding:.55rem .75rem;font-size:1.05rem}.title-edit-btn{color:var(--pine);flex-shrink:0}.practice-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.practice-layout{gap:1.25rem;width:min(1100px,100%);display:grid}.practice-layout.has-lesson{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start}.word-panel--practice{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow:auto}@media (width<=960px){.practice-layout.has-lesson{grid-template-columns:1fr}.word-panel--practice{max-height:none;position:static}.talk-workspace{grid-template-columns:1fr}}.practice-modes{border:1px solid var(--line);background:#ffffff94;border-radius:999px;flex-wrap:wrap;gap:.25rem;padding:.22rem;display:inline-flex}.practice-mode{color:var(--ink-soft);background:0 0;border:0;border-radius:999px;padding:.5rem .95rem;font-size:.9rem;font-weight:500}.practice-mode.is-active{background:var(--pine);color:#f7faf7}.talk-panel{gap:1rem;min-width:0;min-height:0;display:grid}.talk-panel.is-chat{flex-direction:column;flex:auto;display:flex}.talk-setup,.talk-toolbar,.talk-help,.talk-compose{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.talk-setup{gap:.85rem;display:grid}.talk-setup__label,.talk-toolbar__scene{color:var(--muted);margin:0;font-size:.92rem}.talk-topics{flex-wrap:wrap;gap:.45rem;display:flex}.talk-topic{border:1px solid var(--line);color:var(--pine-deep);background:#ffffffb3;border-radius:999px;padding:.5rem .9rem;font-weight:500}.talk-topic.is-active{background:var(--pine);color:#f7faf7;border-color:var(--pine)}.talk-custom,.talk-compose textarea{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);font:inherit;resize:vertical;background:#fff;border-radius:14px;padding:.7rem .85rem}.talk-start{justify-self:start}.talk-custom-form{gap:.65rem;display:grid}.talk-history{gap:.7rem;margin-top:.4rem;display:grid}.talk-history__list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.talk-history__item{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fbf8f1f0;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.95rem 1rem;display:grid}.talk-history__open{text-align:left;color:inherit;background:0 0;border:0;gap:.25rem;min-width:0;padding:0;display:grid}.talk-history__title{font-family:var(--font-display);color:var(--pine-deep);font-size:1.08rem}.talk-history__meta,.talk-history__preview{color:var(--muted);font-size:.85rem}.talk-history__preview{font-family:var(--font-reading);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.talk-mic{align-items:center;gap:.4rem;display:inline-flex}.talk-mic.is-listening{color:var(--danger);background:#9b3b2e1f;border-color:#9b3b2e59}.talk-toolbar{justify-content:space-between}.talk-log{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:auto;gap:.75rem;min-height:12rem;max-height:min(58vh,34rem);padding-right:.15rem;display:flex;overflow:hidden auto}.talk-bubble{border:1px solid var(--line);background:#fbf8f1f5;border-radius:16px;width:min(36rem,100%);padding:.85rem 1rem}.talk-bubble--you{background:#1b3d3014;place-self:end}.talk-bubble__who{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:600}.talk-bubble__text{font-family:var(--font-reading);color:var(--pine-deep);margin:0;font-size:1.12rem;line-height:1.5}.talk-phrase{align-items:flex-start;gap:.35rem;margin-top:.4rem;display:flex}.talk-phrase__text,.talk-phrase__gloss{flex:auto;min-width:0;margin:0;line-height:1.45}.talk-phrase__text{font-family:var(--font-reading);color:var(--pine-deep);font-size:1.08rem}.talk-phrase__gloss{color:var(--moss);font-size:.95rem}.talk-phrase .talk-audio{flex:none;margin-top:.05rem}.talk-bubble .talk-phrase__text{font-size:1.12rem}.talk-bubble__translation,.talk-help__text,.talk-status{color:var(--ink-soft);margin:0;line-height:1.45}.talk-correction{color:#8a6424;background:#b8893a24;border-radius:10px;margin:.55rem 0 0;padding:.55rem .65rem;font-size:.92rem}.talk-bubble--you.is-selected{border-color:#1f4d3a59;box-shadow:0 0 0 2px #1f4d3a1f}.talk-bubble__text .word{font:inherit;color:inherit;padding:.02em .06em}.talk-workspace{flex:auto;grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:stretch;gap:1.15rem;width:100%;min-height:0;display:grid}.talk-side{flex-direction:column;gap:.75rem;min-width:0;min-height:0;display:flex;overflow:hidden}.talk-side__tabs{border:1px solid var(--line);background:#ffffff94;border-radius:999px;flex-shrink:0;gap:.25rem;padding:.2rem;display:flex}.talk-side__tab{color:var(--ink-soft);background:0 0;border:0;border-radius:999px;flex:1;padding:.45rem .7rem;font-size:.88rem;font-weight:500}.talk-side__tab.is-active{background:var(--pine);color:#f7faf7}.talk-coach,.talk-word-panel{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow:auto}.talk-coach{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fbf8f1f2;align-content:start;gap:.95rem;padding:1.05rem 1.1rem;display:grid}.talk-coach__block h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:650}.talk-coach__block p{margin:.4rem 0 0;line-height:1.45}.talk-coach__grammar{color:var(--ink);font-size:.95rem}.talk-coach__block .talk-phrase{margin-top:.4rem}.talk-coach__list{gap:.65rem;margin:.45rem 0 0;padding:0;list-style:none;display:grid}.talk-coach__list li{border-bottom:1px solid #10261e14;padding-bottom:.55rem}.talk-coach__list li:last-child{border-bottom:0;padding-bottom:0}.talk-coach__list .talk-phrase{margin-top:0}.talk-coach__list .talk-phrase--gloss{margin-top:.2rem}.talk-coach__list .talk-phrase__text{font-size:1rem}.talk-side .word-panel{height:auto;max-height:none;animation:none;position:static}.talk-compose textarea{flex:16rem}.talk-compose .ghost-btn{align-self:stretch}.practice-item__hover-word{color:var(--pine-deep);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.35em;align-items:baseline;gap:.55rem;margin:0;padding:.05em .15em;font-size:1.2rem;font-weight:600;display:inline-flex}.practice-item__hover-word:hover,.practice-item__hover-word:focus-visible{background:#c4a35a47;outline:none}.flashcards{gap:1rem;display:grid}.flashcards__meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;font-size:.92rem;display:flex}.flashcards__meta p{margin:0}.flashcard{border:1px solid var(--line);width:min(100%,520px);min-height:280px;box-shadow:var(--shadow);cursor:pointer;perspective:1000px;background:linear-gradient(165deg,#fffcf5fa,#f0e8d6f0);border-radius:24px;margin:0 auto;position:relative;overflow:hidden}.flashcard:before{content:"";pointer-events:none;border:1px solid #b8933f47;border-radius:16px;position:absolute;inset:12px}.flashcard__face{place-content:center;gap:.75rem;padding:2rem 1.5rem;transition:opacity .22s,transform .22s;display:grid;position:absolute;inset:0}.flashcard__face--front{opacity:1;transform:translateY(0)}.flashcard__face--back{opacity:0;pointer-events:none;transform:translateY(10px)}.flashcard.is-flipped .flashcard__face--front{opacity:0;pointer-events:none;transform:translateY(-10px)}.flashcard.is-flipped .flashcard__face--back{opacity:1;pointer-events:auto;transform:translateY(0)}.flashcard__lang{letter-spacing:.08em;color:var(--moss);justify-self:center;font-size:.75rem;font-weight:700}.flashcard__text{font-family:var(--font-reading);color:var(--pine-deep);text-align:center;word-break:break-word;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.2}.flashcard__hint{color:var(--muted);justify-self:center;font-size:.88rem}.flashcards__actions{flex-wrap:wrap;justify-content:center;gap:.55rem;display:flex}.flashcards__done{justify-items:start;gap:.85rem;display:grid}.practice-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.practice-item{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fbf8f1f0;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem 1rem;padding:1.05rem 1.15rem;display:flex}.practice-item__main{flex:1;gap:.35rem;min-width:0;display:grid}.practice-item__pair{gap:.2rem;display:grid}.practice-item__word,.practice-item__translation{font-family:var(--font-reading);word-break:break-word;align-items:baseline;gap:.55rem;margin:0;line-height:1.35;display:flex}.practice-item__word{color:var(--pine-deep);font-size:1.2rem;font-weight:600}.practice-item__translation{color:var(--ink-soft);font-size:1.05rem}.practice-item__lang{font-family:var(--font-ui,"Outfit", system-ui, sans-serif);letter-spacing:.06em;color:var(--moss);flex:none;min-width:1.5rem;font-size:.68rem;font-weight:700}.practice-item__meta{color:var(--muted);margin:0;font-size:.82rem}.practice-item__actions{flex-wrap:wrap;gap:.45rem;display:flex}.danger-btn{color:var(--danger)!important}.save-banner{color:var(--pine-deep);text-align:center;background:#1f4d3a1a;border-radius:12px;margin:0;padding:.75rem 1rem}.inline-notice{margin-bottom:.85rem}.word-panel__analyze{width:100%;margin:.15rem 0 .35rem}.word-panel__actions{flex-wrap:wrap;gap:.5rem;margin:.15rem 0 .85rem;display:flex}.word-panel__actions .gt-action{min-height:2.55rem}@media (width<=1100px){.reader-toc-toggle{display:inline-flex}.reader-toc-backdrop{z-index:44;background:#101c1647;border:0;display:block;position:fixed;inset:0}.reader-toc{z-index:45;top:calc(var(--safe-top) + 5rem);width:min(22rem,100vw - 1.5rem);max-height:min(70dvh,32rem);box-shadow:var(--shadow);display:none;position:fixed;left:.75rem;right:auto}.reader-toc.is-open{display:block}}@media (width<=960px){.lang-chip__name,.navbar__tagline{display:none}}@media (width<=640px){.topbar{align-items:stretch}.topbar-controls{justify-content:stretch}.lang-switcher,.lang-switcher__options{width:100%}.lang-chip{flex:1;justify-content:center}.user-chip{justify-content:space-between;width:100%}.navbar__user{max-width:55%}}.uploader-panel{gap:1.5rem;width:min(720px,100%);animation:.8s 80ms both rise;display:grid}.uploader-copy{text-align:center}.uploader-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--pine-deep);margin:0;font-size:clamp(2rem,4.4vw,3rem);font-weight:550;line-height:1.12}.uploader-hint{max-width:38rem;color:var(--ink-soft);margin:.85rem auto 0;line-height:1.55}.dropzone{border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);background:linear-gradient(#fffcf5f5,#f1e9d8e6);border:1.5px dashed #b8933f8c;justify-items:center;gap:.35rem;padding:3rem 1.5rem;transition:border-color .25s,transform .25s,background .25s;display:grid}.dropzone:hover,.dropzone.is-dragging{border-color:var(--pine);background:linear-gradient(#fffdf8fc,#f4ecdaf5);transform:translateY(-2px)}.dropzone.is-busy{pointer-events:none;opacity:.8}.dropzone__icon{width:4.1rem;height:4.1rem;color:var(--pine-deep);background:#b8933f33;border:1px solid #b8933f47;border-radius:50%;place-items:center;margin-bottom:.55rem;animation:3.2s ease-in-out infinite float;display:grid}.dropzone__title{color:var(--pine-deep);margin:0;font-size:1.15rem;font-weight:600}.dropzone__sub,.dropzone__formats{color:var(--muted);margin:0}.dropzone__formats{letter-spacing:.04em;text-transform:uppercase;margin-top:.75rem;font-size:.85rem}.sample-btn,.ghost-btn,.icon-btn{border:0;border-radius:999px;transition:transform .2s,background .2s,color .2s}.sample-btn{background:var(--pine);color:#f8f4ea;letter-spacing:.01em;justify-self:center;padding:.88rem 1.5rem;font-weight:600}.sample-btn:hover:not(:disabled){background:var(--pine-deep);transform:translateY(-1px)}.sample-btn:disabled{opacity:.6;cursor:wait}.error-banner{max-width:40rem;color:var(--danger);text-align:center;background:#9b3b2e1a;border-radius:12px;margin:1rem auto 0;padding:.85rem 1rem}.reader-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:1.25rem;animation:.55s both rise-fade;display:grid}@keyframes rise-fade{0%{opacity:0}to{opacity:1}}.reader-layout--structured{grid-template-columns:minmax(180px,240px) minmax(0,1fr) minmax(280px,340px)}.reader-toc{border-radius:var(--radius);border:1px solid var(--line);max-height:calc(100vh - 2rem);box-shadow:var(--shadow-soft);background:#fbf8f1f0;padding:1.05rem;position:sticky;top:1rem;overflow:auto}.reader-toc__label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem;font-size:.72rem;font-weight:600}.reader-toc__list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.reader-toc__item{text-align:left;width:100%;color:var(--ink-soft);background:0 0;border:0;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:.55rem;padding:.55rem .65rem;transition:background .15s,color .15s;display:grid}.reader-toc__item:hover{color:var(--pine-deep);background:#1f4d3a14}.reader-toc__item.is-active{color:var(--pine-deep);box-shadow:inset 3px 0 0 var(--pine);background:#1f4d3a1f}.reader-toc__item.has-bookmark .reader-toc__bookmark{color:var(--gold,#b8893a)}.reader-toc__bookmark{color:var(--moss);place-items:center;margin-top:.15rem;display:grid}.reader-toc__index{color:var(--moss);min-width:1.2rem;font-size:.78rem;font-weight:700}.reader-toc__title{font-size:.9rem;line-height:1.35}.reader-section-nav{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.reader-section-nav__status{color:var(--muted);margin:0;font-size:.92rem}.reader-section-title{font-family:var(--font-display);color:var(--pine-deep);letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1.4rem,2.6vw,1.95rem);font-weight:550}.conjugation-blocks{gap:1rem;display:grid}.conjugation-block__tense{color:var(--pine-deep);margin:0 0 .45rem;font-weight:600}.conjugation-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.conjugation-label{color:var(--muted);font-size:.85rem}.reader-main{min-width:0}.reader-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.reader-toolbar__actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.bookmark-btn{align-items:center;gap:.4rem;display:inline-flex}.bookmark-btn.is-bookmarked{color:#8a6424;background:#b8893a29;border-color:#b8893a59}.bookmark-notice{color:var(--moss);margin:-.35rem 0 .85rem;font-size:.9rem}.reader-section-nav__jump{color:var(--pine);font:inherit;cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.reader-section-nav__jump:hover{color:var(--pine-deep)}.library-bookmark{color:var(--muted);align-items:center;gap:.35rem;margin-top:.15rem;font-size:.85rem;display:inline-flex}.library-bookmark.has-mark{color:#8a6424;font-weight:600}.reader-file{font-family:var(--font-display);letter-spacing:-.02em;color:var(--pine-deep);align-items:center;gap:.4rem;margin:0;font-size:1.4rem;font-weight:550;display:flex}.reader-file__text{min-width:0}.reader-meta{color:var(--muted);margin:.25rem 0 0;font-size:.92rem}.ghost-btn{color:var(--pine);border:1px solid var(--line);background:#fbf8f1d1;padding:.65rem 1.1rem}.ghost-btn:hover{background:#fff;transform:translateY(-1px)}.reader-article{border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);background:linear-gradient(#fffcf5fa,#f6efe0f5);padding:clamp(1.7rem,3.4vw,2.8rem);position:relative}.reader-article:before{content:"";border-radius:calc(var(--radius) - 8px);pointer-events:none;border:1px solid #b8933f38;position:absolute;inset:10px}.reader-text{font-family:var(--font-reading);color:var(--ink);white-space:pre-wrap;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-size:clamp(1.15rem,2.2vw,1.4rem);line-height:1.9}.word{color:inherit;font:inherit;line-height:inherit;background:0 0;border:0;border-radius:.3em;margin:0;padding:.05em .08em;transition:background .15s,color .15s,box-shadow .15s;display:inline}.word:hover,.word:focus-visible{color:var(--pine-deep);background:#c4a35a47;outline:none}.word.is-active,.word.is-in-range{box-shadow:inset 0 -2px 0 var(--pine);background:#1f4d3a24}.word-gap.is-in-range{background:#1f4d3a1a;border-radius:.2em}.reader-article.is-selecting,.reader-article.is-selecting .word{touch-action:none}.word-tooltip{z-index:40;background:var(--pine-deep);color:#f4f7f4;pointer-events:auto;border-radius:999px;align-items:center;gap:.45rem;max-width:min(90vw,360px);padding:.45rem .55rem .45rem .8rem;animation:.18s both pop;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 12px 30px #14231c47}.word-tooltip__word{opacity:.75;font-size:.85rem}.word-tooltip__arrow{opacity:.5}.word-tooltip__translation{font-weight:600}.word-tooltip__speak{color:#f4f7f4;background:#f4f7f424;border:0;border-radius:999px;place-items:center;width:1.85rem;height:1.85rem;margin-left:.15rem;transition:background .15s,transform .15s;display:grid}.word-tooltip__speak:hover{background:#c4a35a73;transform:scale(1.05)}.gt-widget{z-index:50;pointer-events:auto;background:#fff;border:1px solid #dadce0;border-radius:12px;width:min(92vw,320px);padding:.7rem .85rem .85rem;font-family:Outfit,system-ui,sans-serif;position:fixed;box-shadow:0 1px 2px #3c40432e,0 8px 24px #3c40432e}.gt-widget--above{animation:.16s both gt-pop-above;transform:translate(-50%,-100%)}.gt-widget--below{animation:.16s both gt-pop-below;transform:translate(-50%)}@keyframes gt-pop-above{0%{opacity:0;transform:translate(-50%,calc(6px - 100%))scale(.98)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes gt-pop-below{0%{opacity:0;transform:translate(-50%,-6px)scale(.98)}to{opacity:1;transform:translate(-50%)scale(1)}}.gt-widget__chrome{align-items:center;gap:.4rem;margin-bottom:.65rem;display:flex}.gt-widget__close{color:#5f6368;background:0 0;border:0;border-radius:999px;place-items:center;width:1.5rem;height:1.5rem;margin-left:auto;font-size:.8rem;line-height:1;transition:background .15s,color .15s;display:grid}.gt-widget__close:hover{color:#202124;background:#f1f3f4}.gt-widget__mark{color:#fff;background:#4285f4;border-radius:999px;place-items:center;width:1.15rem;height:1.15rem;font-size:.7rem;font-weight:700;display:grid}.gt-widget__product{color:#5f6368;letter-spacing:.01em;font-size:.78rem;font-weight:500}.gt-widget__row{grid-template-columns:1fr auto;align-items:center;gap:.55rem;display:grid}.gt-widget__meta{gap:.15rem;min-width:0;display:grid}.gt-widget__lang{letter-spacing:.06em;text-transform:uppercase;color:#80868b;font-size:.7rem;font-weight:600}.gt-widget__lang--target{color:#1a73e8}.gt-widget__text{color:#202124;word-break:break-word;margin:0;font-size:1.05rem;line-height:1.35}.gt-widget__text--target{color:#1a73e8;font-weight:600}.gt-widget__text--target.is-unavailable{color:#80868b;font-size:.92rem;font-weight:500}.gt-widget__divider{background:#e8eaed;height:1px;margin:.7rem 0}.gt-widget__actions{gap:.45rem;margin-top:.75rem;display:flex}.gt-action{color:#202124;background:#f8f9fa;border:1px solid #dadce0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.55rem .6rem;font-family:Outfit,system-ui,sans-serif;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.gt-action:hover:not(:disabled){color:#1a73e8;background:#e8f0fe;border-color:#aecbfa}.gt-action--analyze{color:#fff;background:#1a73e8;border-color:#1a73e8}.gt-action--analyze:hover:not(:disabled){color:#fff;background:#1765cc;border-color:#1765cc}.gt-action.is-saved,.gt-action:disabled.is-saved{color:#137333;opacity:1;cursor:default;background:#e6f4ea;border-color:#ceead6}.gt-action:disabled:not(.is-saved){opacity:.45;cursor:not-allowed}.gt-speak{color:#5f6368;background:0 0;border:0;border-radius:999px;place-items:center;width:2.2rem;height:2.2rem;transition:background .15s,color .15s;display:grid}.gt-speak:hover:not(:disabled){color:#1a73e8;background:#f1f3f4}.gt-speak.is-playing{color:#1a73e8;background:#e8f0fe}.gt-speak:disabled{opacity:.35;cursor:not-allowed}.word-panel__title-row{align-items:flex-start;gap:.5rem;display:flex}.word-panel{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf8f1f2;padding:1.3rem 1.25rem;animation:.35s both slide-in;position:sticky;top:1rem}.word-panel--empty{display:none}.word-panel__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem;display:flex}.word-panel__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.word-panel__word{font-family:var(--font-display);color:var(--pine-deep);overflow-wrap:anywhere;margin:.25rem 0 0;font-size:1.8rem;line-height:1.2}.word-panel__word.is-phrase{font-size:1.25rem;line-height:1.35}.word-panel__meta{color:var(--moss);margin:.35rem 0 0;font-size:.9rem}.icon-btn{width:2.1rem;height:2.1rem;color:var(--pine);background:#1f4d3a14;place-items:center;display:grid}.icon-btn:hover{background:#1f4d3a29}.word-panel__section+.word-panel__section{border-top:1px solid #1f4d3a1a;margin-top:1.25rem;padding-top:1.25rem}.word-panel__section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .7rem;font-size:.78rem;font-weight:600}.translation-list,.example-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.translation-list li{color:var(--pine-deep);background:#1b3d3012;border-radius:12px;padding:.65rem .8rem;font-weight:500}.translation-list__text{margin:0}.word-definition{color:var(--ink-soft);margin:0;font-size:.98rem;line-height:1.5}.example-list li{background:#1f4d3a0d;border-radius:12px;gap:.35rem;padding:.65rem .75rem;display:grid}.example-line{grid-template-columns:1fr auto;align-items:start;gap:.45rem;display:grid}.example-speak{margin-top:.1rem}.example-speak.is-playing,.icon-btn.is-playing{color:var(--pine);background:#1f4d3a1f}.conjugation-form{flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .2rem;display:flex}.example-source,.example-target{margin:0;line-height:1.45}.example-source{font-family:var(--font-reading);color:var(--ink)}.example-target{color:var(--moss);font-size:.95rem}.word-panel__loading{color:var(--muted);align-items:center;gap:.7rem;display:flex}.word-panel__error,.muted{color:var(--muted)}.word-panel__ai-note{margin:0 0 .7rem;font-size:.88rem}.spinner{border:2px solid #1f4d3a33;border-top-color:var(--pine);border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pop{0%{opacity:0;transform:translate(-50%,calc(-100% - 2px))scale(.96)}to{opacity:1;transform:translate(-50%,calc(-100% - 10px))scale(1)}}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}.tabbar,.navbar__settings,.navbar__sheet,.reader-toc-toggle,.reader-toc-backdrop{display:none}.install-banner{z-index:1;color:#f7f3ea;box-shadow:var(--shadow);background:#10261ef0;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;margin:0 clamp(1rem,3vw,2.5rem) .75rem;padding:.9rem 1rem;display:flex;position:relative}.install-banner__title{margin:0;font-weight:650}.install-banner__hint{opacity:.82;margin:.2rem 0 0;font-size:.88rem}.install-banner__actions{flex-wrap:wrap;gap:.45rem;display:flex}.install-banner .sample-btn{background:var(--gold);color:var(--pine-deep)}@media (width<=860px){:root{--tabbar-height:4.35rem}.app-shell.has-tabbar{min-height:100dvh;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom))}.navbar{padding:calc(.45rem + var(--safe-top)) .75rem .45rem}.navbar__bar{border-radius:16px;flex-wrap:nowrap;gap:.5rem;padding:.45rem .55rem}.navbar__links,.navbar__user,.navbar__logout,.navbar__tools,.navbar__tagline,.navbar__lang-wrap,.navbar__aside>.lang-switcher,.focus-timer__state,.focus-timer__label{display:none}.navbar__settings{display:grid}.navbar__mark{border-radius:10px;width:34px;height:34px}.navbar__logo{font-size:1.35rem}.navbar__sheet{border:1px solid var(--line);box-shadow:var(--shadow);background:#fbf8f1f5;border-radius:18px;gap:1rem;margin-top:.55rem;padding:1rem;display:grid}.navbar__sheet-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.navbar__sheet-head p{color:var(--pine-deep);margin:0;font-weight:650}.navbar__sheet-user{color:var(--muted);font-size:.88rem}.navbar__sheet .lang-switcher,.navbar__sheet .lang-switcher__options,.navbar__sheet .lang-chip{width:100%}.navbar__sheet .lang-chip{justify-content:center;min-height:2.6rem}.navbar__sheet .lang-chip__name{display:inline}.navbar__sheet-logout{width:100%}.tabbar{z-index:60;height:calc(var(--tabbar-height) + var(--safe-bottom));padding:.35rem .4rem calc(.35rem + var(--safe-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf8f1f0;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #101c1614}.tabbar__item{color:var(--muted);background:0 0;border:0;justify-items:center;gap:.15rem;min-height:3.1rem;font-size:.68rem;font-weight:600;display:grid}.tabbar__item.is-active{color:var(--pine-deep)}.tabbar__item:disabled{opacity:.35}.stage{padding:.65rem .85rem calc(1.25rem + var(--safe-bottom))}.stage:not(.has-document){place-items:start stretch;min-height:calc(100dvh - 8rem)}.home-layout,.home-layout--wide,.uploader-panel{width:100%}.uploader-title{font-size:clamp(1.7rem,8vw,2.3rem)}.uploader-hint{font-size:.95rem}.dropzone{padding:1.6rem 1rem}.sample-btn,.ghost-btn{min-height:2.7rem}.auth-panel{width:100%;padding:1.5rem 1.15rem}.library-item,.practice-item{padding:.95rem}.practice-item{flex-direction:column;align-items:stretch}.practice-item__actions,.library-actions,.flashcards__actions{width:100%}.practice-item__actions .ghost-btn,.library-actions .ghost-btn,.flashcards__actions .ghost-btn{flex:1}.flashcard{width:100%;min-height:220px}.habit-stats{grid-template-columns:1fr}.habit-bars{grid-template-columns:repeat(7,minmax(0,1fr))}.reader-toolbar{gap:.45rem}.stage.has-document{padding:.4rem .65rem .2rem}.word-panel--practice{top:auto;left:.65rem;right:.65rem;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + .55rem);z-index:50;max-height:min(68dvh,34rem);animation:.28s both slide-up;position:fixed;overflow:auto}.gt-widget{display:none}.install-banner{margin-inline:.75rem}}@media (width<=640px){.reader-article{padding:.9rem .9rem 1rem}.reader-text{font-size:1.16rem;line-height:1.8}.word{padding:.08em .04em}}@keyframes slide-up{0%{opacity:0;transform:translate(0)translateY(16px)}to{opacity:1;transform:translate(0)translateY(0)}}@media (width<=860px){.stage.has-document{min-height:0;height:calc(100dvh - 4.9rem - var(--tabbar-height) - var(--safe-top) - var(--safe-bottom));height:calc(100svh - 4.9rem - var(--tabbar-height) - var(--safe-top) - var(--safe-bottom));flex-direction:column;padding:.35rem .6rem .25rem;display:flex}.stage.has-document>.reader-layout,.stage.has-document>.reader-layout--structured{flex-direction:column;flex:1;grid-template-rows:minmax(0,1fr) minmax(11rem,38%);grid-template-columns:minmax(0,1fr);align-items:stretch;gap:.45rem;width:100%;height:100%;min-height:0;display:flex}.reader-toc{z-index:45;top:calc(var(--safe-top) + 4.6rem);width:auto;max-height:min(70dvh,28rem);box-shadow:var(--shadow);display:none;position:fixed;left:.65rem;right:.65rem}.reader-toc.is-open{display:block}.reader-toc-toggle{display:inline-flex}.reader-toc-backdrop{z-index:44;background:#101c1647;border:0;display:block;position:fixed;inset:0}.reader-main{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.reader-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem .5rem;margin-bottom:.35rem;display:grid}.reader-file{font-size:.98rem;line-height:1.2}.reader-file__text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.reader-toolbar .title-editor{width:100%}.reader-meta{display:none}.reader-toolbar__actions{flex-wrap:nowrap;gap:.3rem;width:auto;display:flex}.reader-toolbar__actions>.ghost-btn{flex:none;min-height:2.15rem;padding:.28rem .55rem;font-size:.78rem}.reader-toolbar .bookmark-btn .btn-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.reader-section-nav{justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.reader-section-nav .ghost-btn{min-height:2.05rem;padding:.25rem .7rem;font-size:.8rem}.reader-section-nav__status{text-align:center;grid-column:auto;min-width:4.5rem;font-size:.82rem}.reader-article{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding:.85rem .9rem;overflow:auto}.reader-section-title{margin-bottom:.65rem;font-size:1.15rem}.word-panel.reader-study,.word-panel--empty.reader-study{z-index:2;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:16px 16px 10px 10px;flex:0 0 38%;width:100%;min-height:10.5rem;max-height:none;margin:0;padding:.85rem .9rem .95rem;animation:none;display:block;position:relative;inset:auto;overflow:auto}.word-panel.reader-study .word-panel__word{font-size:1.35rem}.word-panel.reader-study .word-panel__header{margin-bottom:.7rem}.word-panel.reader-study .word-panel__actions{z-index:2;background:linear-gradient(#fbf8f1fa 70%,#fbf8f1b3);padding:.15rem 0 .45rem;position:sticky;top:-.15rem}.word-panel.reader-study .word-panel__actions .gt-action{flex:7.5rem;min-height:2.7rem;font-size:.92rem}.reader-section-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.5rem;font-size:1.05rem;display:-webkit-box;overflow:hidden}.word{touch-action:manipulation}.reader-section-nav__jump{display:none}.field input,.field textarea,input,select,textarea{font-size:16px}.gt-widget{display:none!important}.talk-log{min-height:10rem;max-height:min(48dvh,26rem)}.talk-compose{align-items:stretch}.talk-compose .ghost-btn{min-height:2.7rem}}@media (width>=861px){.app-shell:has(.stage.has-document){flex-direction:column;height:100dvh;display:flex;overflow:hidden}:is(.app-shell:has(.stage.has-document) .navbar,.app-shell:has(.stage.has-document) .install-banner){flex-shrink:0}.stage.has-document{flex-direction:column;flex:auto;gap:.65rem;min-height:0;padding-bottom:1rem;display:flex;overflow:hidden}.stage.has-document>.inline-notice,.stage.has-document>.error-banner{flex-shrink:0}.stage.has-document>.reader-layout,.stage.has-document>.reader-layout--structured{flex:auto;align-items:stretch;height:auto;min-height:0;overflow:hidden}.reader-main{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.reader-toolbar,.reader-section-nav,.bookmark-notice{flex-shrink:0}.reader-article{overscroll-behavior:contain;flex:auto;min-height:0;overflow:auto}.word-panel.reader-study{overscroll-behavior:contain;align-self:stretch;height:100%;min-height:0;max-height:none;position:relative;top:auto;overflow:auto}}@media (width>=1101px){.reader-toc{overscroll-behavior:contain;height:100%;min-height:0;max-height:none;position:relative;top:auto;overflow:auto}}.app-shell:has(.talk-panel.is-chat){flex-direction:column;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}:is(.app-shell:has(.talk-panel.is-chat) .navbar,.app-shell:has(.talk-panel.is-chat) .install-banner){flex-shrink:0}.app-shell:has(.talk-panel.is-chat) .stage{flex-direction:column;flex:auto;place-items:stretch center;min-height:0;padding-bottom:1rem;display:flex;overflow:hidden}:is(.app-shell:has(.talk-panel.is-chat) .home-layout,.app-shell:has(.talk-panel.is-chat) .practice-layout,.app-shell:has(.talk-panel.is-chat) .practice-panel,.app-shell:has(.talk-panel.is-chat) .talk-workspace,.app-shell:has(.talk-panel.is-chat) .talk-panel){flex-direction:column;flex:auto;width:min(1180px,100%);min-height:0;display:flex;overflow:hidden}.app-shell:has(.talk-panel.is-chat) .talk-workspace{grid-template-columns:minmax(0,1fr) minmax(280px,340px);width:min(1180px,100%);display:grid}.app-shell:has(.talk-panel.is-chat) .talk-side{min-height:0;overflow:hidden}:is(.app-shell:has(.talk-panel.is-chat) .practice-header,.app-shell:has(.talk-panel.is-chat) .talk-toolbar,.app-shell:has(.talk-panel.is-chat) .talk-help,.app-shell:has(.talk-panel.is-chat) .talk-compose,.app-shell:has(.talk-panel.is-chat) .error-banner){flex-shrink:0}.app-shell:has(.talk-panel.is-chat) .practice-header p:not(.page-kicker){display:none}.app-shell:has(.talk-panel.is-chat) .talk-log{flex:auto;min-height:0;max-height:none;overflow:hidden auto}@media (width<=860px){.app-shell.has-tabbar:has(.talk-panel.is-chat){height:100dvh;max-height:100dvh;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom))}.app-shell:has(.talk-panel.is-chat) .stage{padding-bottom:.35rem}:is(.app-shell:has(.talk-panel.is-chat) .home-layout,.app-shell:has(.talk-panel.is-chat) .practice-layout,.app-shell:has(.talk-panel.is-chat) .practice-panel,.app-shell:has(.talk-panel.is-chat) .talk-workspace,.app-shell:has(.talk-panel.is-chat) .talk-panel){width:100%}.talk-workspace{grid-template-rows:minmax(0,1fr) minmax(11rem,32vh);grid-template-columns:1fr}.app-shell:has(.talk-panel.is-chat) .talk-workspace{grid-template-rows:minmax(0,1fr) minmax(11rem,32vh);grid-template-columns:1fr}.talk-side{max-height:32vh}.app-shell:has(.talk-panel.is-chat) .library-header h2{font-size:1.25rem}}
