@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/karla-latin-ext-400-normal-DQe2ZdED.woff2) format("woff2"),url(/assets/karla-latin-ext-400-normal-CMxStcnq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/karla-latin-400-normal-C_jajTY_.woff2) format("woff2"),url(/assets/karla-latin-400-normal-iWRxgclR.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/karla-latin-ext-600-normal-CIPY_Mp5.woff2) format("woff2"),url(/assets/karla-latin-ext-600-normal-Cf-uwXr_.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/karla-latin-600-normal-BH_u9dis.woff2) format("woff2"),url(/assets/karla-latin-600-normal-BAoyHYuk.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Young Serif";src:url(/fonts/YoungSerif-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Young Serif";src:url(/fonts/YoungSerif-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--color-bg: #111111;--color-surface: #161616;--color-fill: #1e1e1e;--color-fill-strong: #282828;--color-ink: #ffffff;--color-text: #d4d4d4;--color-muted: #9a9a9a;--color-line: rgba(255, 255, 255, .12);--color-line-soft: rgba(255, 255, 255, .06);--color-line-foot: rgba(255, 255, 255, .08);--color-card: #1c1c1c;--color-card-foot: #141414;--color-locked: rgba(255, 255, 255, .55);--color-accent: #e78f87;--color-accent-ink: #111111;--color-error: #e78f87;--color-ok: #8fd3a8;--font-display: "Young Serif", Georgia, "Times New Roman", serif;--font-text: "Karla", system-ui, -apple-system, "Segoe UI", sans-serif;--control-height: 52px;--text-sm: .8125rem;--text-md: 1rem;--text-lg: 1.125rem;--text-title: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-control: 10px;--radius-card: 16px;--radius-thumb: 8px;--radius-pill: 999px;--line-thin: 1px;--content-width: 30rem;--ease-out: cubic-bezier(.2, .8, .2, 1);--duration-fast: .12s;--duration-base: .22s;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-text);font-size:var(--text-md);line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);line-height:1.2;color:var(--color-ink);margin:0;text-wrap:balance;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}button,input{font:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.loading{padding:var(--space-7) var(--space-4);color:var(--color-muted);text-align:center}.auth{min-height:100dvh;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-6),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));display:flex;flex-direction:column;gap:var(--space-7)}.auth-top{display:flex;justify-content:space-between;align-items:center;max-width:var(--content-width);width:100%;margin:0 auto}.auth-top--logo{display:grid;grid-template-columns:1fr auto 1fr;align-items:start}.auth-logo{grid-column:2;display:block;height:88px;width:auto}.auth-top--logo .lang-switch{grid-column:3;justify-self:end}.auth-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:var(--content-width);width:100%;margin:0 auto}.auth-start{flex:1}.auth-actions{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-3)}.lead{margin:0;color:var(--color-muted)}.field{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-muted)}.field input{width:100%;padding:var(--space-3) var(--space-4);border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-control);background:var(--color-fill);color:var(--color-ink);font-size:var(--text-lg);height:var(--control-height)}.field input[type=date]{-webkit-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;min-height:calc(var(--text-lg) * 1.55 + 2 * var(--space-3));text-align:left}.field input:-webkit-autofill,.field input:-webkit-autofill:hover,.field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink);box-shadow:0 0 0 1000px var(--color-fill) inset;transition:background-color 9999s ease-out 0s}.field input:autofill{background-color:var(--color-fill)}.field input:focus{border-color:var(--color-accent);outline:none}.code-input{font-family:var(--font-display);font-size:var(--text-xl)!important;line-height:1;letter-spacing:.4em;font-variant-numeric:tabular-nums lining-nums}.error{margin:0;color:var(--color-error)}.notice{margin:0;color:var(--color-ok)}.btn{min-height:var(--control-height);padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-accent-ink);font-weight:600;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{background:transparent;color:var(--color-ink);border:var(--line-thin) solid var(--color-line)}.auth-links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.link-button{padding:var(--space-1) 0;border:0;background:none;color:var(--color-muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-button:disabled{text-decoration:none;cursor:default}.lang-switch{font-size:var(--text-sm)}@media(hover:hover){.btn:not(:disabled):hover{opacity:.92}}@media(prefers-reduced-motion:no-preference){.btn:not(:disabled):active{transform:scale(.97)}}@media(min-width:768px){.auth-actions{margin-top:var(--space-5)}}.hint{margin:0;font-size:var(--text-sm);color:var(--color-muted)}.rows{list-style:none;margin:0;padding:0}.rows li{padding:var(--space-3) 0;color:var(--color-ink)}.rows li+li{border-top:var(--line-thin) solid var(--color-line)}.code-input--text{letter-spacing:.08em}.choices{display:flex;flex-direction:column}.choice{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) 0 var(--space-4) var(--space-6);border:0;background:none;color:var(--color-text);text-align:left;cursor:pointer;position:relative}.choice+.choice{border-top:var(--line-thin) solid var(--color-line)}.choice:first-child{border-top:var(--line-thin) solid var(--color-line)}.choice:before{content:"";position:absolute;left:0;top:calc(var(--space-4) + 2px);width:18px;height:18px;border-radius:50%;border:2px solid var(--color-muted)}.choice[aria-checked=true]:before{border-color:var(--color-accent);background:radial-gradient(circle,var(--color-accent) 0 5px,transparent 6px)}.choice-title{color:var(--color-ink);font-weight:600}.choice-text{font-size:var(--text-sm);color:var(--color-muted)}.page{min-height:100dvh;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-6),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));display:flex;flex-direction:column;gap:var(--space-6)}.page-body{display:flex;flex-direction:column;gap:var(--space-4);max-width:var(--content-width);width:100%;margin:0 auto}.page-body>.link-button{align-self:flex-start}h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);line-height:1.25;color:var(--color-ink);margin:0}.card{display:flex;flex-direction:column;overflow:hidden;background:var(--color-card);border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-card)}.card+.card{margin-top:var(--space-5)}.card-body{display:flex;flex-direction:column;padding:var(--space-5) var(--space-5) var(--space-2)}.module h2,.module p{margin:0}.module-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.module-head h2{flex:1 1 10rem;min-width:0;font-size:var(--text-title);line-height:1.2;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.status-text{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-muted)}.module-description{margin-top:var(--space-2)!important;font-size:var(--text-sm);color:var(--color-muted)}.pill{display:inline-flex;flex:none;align-items:center;gap:6px;padding:var(--space-1) 10px;border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--color-muted)}.pill-accent{color:var(--color-accent);border-color:#e78f8766;font-weight:600}.icon{display:block;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-fill{fill:currentColor;stroke:none}.accent{color:var(--color-accent);font-weight:600}.chapters{margin-top:var(--space-2)}.chapter+.chapter .chapter-toggle{border-top:var(--line-thin) solid var(--color-line-soft)}.chapter-toggle{display:flex;align-items:baseline;width:100%;padding:var(--space-3) 0;border:0;background:none;color:var(--color-ink);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none}.chapter-name{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25}.chapter-count{margin-left:var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--color-muted);white-space:nowrap}.chevron{flex:none;align-self:center;width:7px;height:7px;margin-left:auto;border-right:1.5px solid var(--color-muted);border-bottom:1.5px solid var(--color-muted);transform:rotate(-45deg)}.chapter-toggle[aria-expanded=true] .chevron{transform:translateY(-2px) rotate(45deg)}.chapter-panel{display:grid;grid-template-rows:0fr}.chapter.is-open .chapter-panel{grid-template-rows:1fr}.chapter-lessons{min-height:0;overflow:hidden;margin:0;padding:0;list-style:none;opacity:0}.chapter.is-open .chapter-lessons{opacity:1}@media(prefers-reduced-motion:no-preference){.chevron{transition:transform var(--duration-base) var(--ease-out)}.chapter-panel{transition:grid-template-rows .4s var(--ease-out)}.chapter-lessons{transition:opacity .3s var(--ease-out)}}.chapter-lessons li+li{border-top:var(--line-thin) solid var(--color-line-soft)}.lesson-row,.continue-row{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) 0;border:0;background:none;color:var(--color-ink);text-align:left;cursor:pointer}.lesson-text{display:flex;flex:1;flex-direction:column;gap:var(--space-1);min-width:0}.lesson-title{font-size:var(--text-md);font-weight:500;line-height:1.45}.lesson-row.is-locked .lesson-title{color:var(--color-locked)}.lesson-episode{color:inherit;font-variant-numeric:tabular-nums}.lesson-meta{font-size:var(--text-sm);color:var(--color-muted)}.thumb{position:relative;flex:none;width:78px;height:44px;overflow:hidden;border-radius:var(--radius-thumb);background:var(--color-fill-strong)}.thumb-large{width:128px;height:72px}.thumb img{display:block;width:100%;height:100%;object-fit:cover}.lesson-row.is-locked .thumb img{filter:brightness(.55)}.thumb.is-watched img{filter:brightness(.4) grayscale(.4)}.thumb-badge.is-done{background:var(--color-accent);color:var(--color-accent-ink)}.lesson-row.is-watched .lesson-title{color:var(--color-muted)}.thumb-progress{position:absolute;right:0;bottom:0;left:0;height:3px;background:#ffffff40}.thumb-progress>span{display:block;height:100%;background:var(--color-accent);transform-origin:left center}.thumb-badge{position:absolute;inset:0;display:grid;place-items:center;width:24px;height:24px;margin:auto;border-radius:var(--radius-pill);background:#0000008c;color:var(--color-ink)}.thumb-large .thumb-badge{width:36px;height:36px}@media(hover:hover)and (prefers-reduced-motion:no-preference){.thumb-badge{transition:transform .35s cubic-bezier(.3,1.5,.5,1)}.lesson-row:hover .thumb-badge,.continue-row:hover .thumb-badge{transform:scale(1.12)}}.card-foot{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-card-foot);border-top:var(--line-thin) solid var(--color-line-foot)}.card-foot-text{display:flex;flex:1;flex-direction:column;min-width:0}.card-foot-text b{font-size:.875rem;font-weight:600;color:var(--color-ink)}.card-foot-text a{font-size:var(--text-sm);color:var(--color-muted)}.free-end{flex-wrap:wrap}.free-end-text{font-size:var(--text-sm);color:var(--color-muted)}.free-end-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.free-end-page{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding-top:var(--space-4);border-top:var(--line-thin) solid var(--color-line)}a.btn-pill{display:inline-block}.btn-pill{flex:none;padding:var(--space-2) 14px;border-radius:var(--radius-pill);font-size:.875rem;white-space:nowrap}.continue-row{padding:0}.continue{margin-bottom:var(--space-5)}.continue-heading{margin:0 0 var(--space-3);font-size:var(--text-lg);line-height:1.25}.continue-row.card{flex-direction:row;border:0;background:none}.continue-title{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25}.lesson-nav{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.lesson-nav-next{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-3) 0;border:0;border-top:var(--line-thin) solid var(--color-line);border-bottom:var(--line-thin) solid var(--color-line);background:none;color:var(--color-ink);text-align:left;cursor:pointer}.lesson-nav-label{font-size:var(--text-sm);font-weight:600;color:var(--color-accent)}.lesson-nav-title{font-family:var(--font-display);font-size:var(--text-lg)}.player{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--color-fill)}.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.autonext{position:absolute;inset:0;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:#0a0a0ae0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.autonext .thumb{flex:none}.autonext-text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.autonext-count{margin:0;font-size:var(--text-sm);color:var(--color-muted)}.autonext-title{margin:0;font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25;color:var(--color-ink)}.autonext-actions{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-2)}.autonext-play{position:relative;overflow:hidden;isolation:isolate}.autonext-ring{position:absolute;inset:0;z-index:-1;background:#ffffff40;transform:scaleX(0);transform-origin:left center}@media(prefers-reduced-motion:no-preference){.autonext{animation:autonext-in var(--duration-base) var(--ease-out)}.autonext-ring{animation-name:autonext-fill;animation-timing-function:linear;animation-fill-mode:forwards}}@keyframes autonext-in{0%{opacity:0}}@keyframes autonext-fill{to{transform:scaleX(1)}}@media(max-width:420px){.autonext .thumb{display:none}}.locked{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:var(--line-thin) solid var(--color-line)}a.btn{display:block;text-align:center;text-decoration:none}@media(hover:hover){.chapter-toggle:hover .chapter-name,.lesson-nav-next:hover .lesson-nav-title,.continue-row:hover .continue-title,.lesson-row:hover .lesson-title{text-decoration:underline;text-underline-offset:3px}}.profile-section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5) 0 var(--space-2)}.profile-section h2{margin:0;font-size:var(--text-lg)}.settings-card{display:flex;flex-direction:column;padding:0 var(--space-4);border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-control);background:#ffffff05}.settings-card>*+*{border-top:var(--line-thin) solid var(--color-line-soft)}.setting-row{display:flex;flex-direction:column}.setting-row.is-editing{gap:var(--space-3);padding:var(--space-4) 0}.setting-row>.notice,.setting-row>.error{padding:var(--space-3) 0}.setting-head{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-height);padding:var(--space-3) 0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.setting-label{flex:1;min-width:0;font-size:var(--text-sm);color:var(--color-muted)}.setting-value{min-width:0;max-width:60%;color:var(--color-ink);font-weight:600;text-align:right;overflow-wrap:anywhere}.setting-action{flex:1;color:var(--color-ink)}.setting-chevron{flex:none;width:16px;height:16px;fill:none;stroke:var(--color-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.access-mark{display:grid;flex:none;place-items:center;width:16px;height:16px;border:1.5px solid var(--color-muted);border-radius:50%}.access-mark.is-owned{border:0}.access-mark svg{width:16px;height:16px;fill:none;stroke:var(--color-accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.access-name{flex:1;min-width:0;color:var(--color-muted)}.access-mark.is-owned+.access-name{color:var(--color-ink);font-weight:600}.access-toggle[aria-expanded=true] .setting-chevron{transform:rotate(90deg)}.access-panel{display:flex;flex-direction:column;gap:var(--space-2);padding:0 0 var(--space-4) calc(16px + var(--space-3));font-size:var(--text-sm);color:var(--color-muted)}.access-panel p{margin:0}@media(hover:hover){.setting-head:hover .setting-chevron{stroke:var(--color-ink)}}@media(prefers-reduced-motion:no-preference){.setting-chevron{transition:transform var(--duration-base) var(--ease-out),stroke var(--duration-base) var(--ease-out)}.access-panel{animation:line-in var(--duration-base) var(--ease-out)}.setting-head:active{opacity:.7}}.module-progress-count{font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap}.module-progress-bar{display:block;height:4px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-fill-strong)}.module-progress-bar>span{display:block;height:100%;background:var(--color-accent);transform-origin:left center}@media(prefers-reduced-motion:no-preference){.module-progress-bar>span{animation:bar-grow .7s var(--ease-out) both}}@keyframes bar-grow{0%{transform:scaleX(0)}}.setting-form{display:flex;flex-direction:column;gap:var(--space-3)}.setting-buttons{display:flex;align-items:center;gap:var(--space-4)}@media(prefers-reduced-motion:no-preference){.setting-row.is-editing .setting-form{animation:line-in var(--duration-base) var(--ease-out)}}.admin-tabs{flex-direction:row}.admin-search,.admin-grant,.admin-code-form{display:flex;flex-direction:column;gap:var(--space-3)}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.admin-qr{background:var(--color-ink);padding:var(--space-2);border-radius:var(--radius-control)}.admin-secret{word-break:break-all;color:var(--color-ink)}.admin select{min-height:48px;padding:0 var(--space-3);border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-control);background:var(--color-fill);color:var(--color-ink);font:inherit}.tabbar{position:fixed;left:50%;bottom:max(var(--space-3),env(safe-area-inset-bottom));z-index:20;display:flex;gap:var(--space-1);width:min(calc(100% - 2 * var(--space-4)),22rem);padding:6px;border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-pill);background:#1c1c1cd1;box-shadow:0 10px 30px #00000073;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);transform:translate(-50%)}body:has(.tabbar) .page{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.tab{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;height:56px;border-radius:28px;color:var(--color-muted);text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.tab.is-active{color:var(--color-ink)}.tab-indicator{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px - 3 * var(--space-1)) / 4);border-radius:28px;background:#ffffff1a;pointer-events:none}@media(prefers-reduced-motion:no-preference){.tab-indicator{transition:transform .38s cubic-bezier(.32,.72,0,1)}}.tab-label{max-width:100%;overflow:hidden;padding-bottom:2px;font-size:11px;font-weight:500;line-height:1.25;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.tab-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tab-icon-fill{fill:currentColor;stroke:none}@media(hover:hover){.tab:not(.is-active):hover{color:var(--color-text)}}@media(prefers-reduced-motion:no-preference){.tab{transition:background-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}.tab .tab-icon{transition:transform var(--duration-fast) var(--ease-out)}.tab:active .tab-icon{transform:scale(.88)}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.week-hero{display:flex;flex-direction:column;gap:var(--space-2)}.week-hero h1,.week-hero p{margin:0}.week-hero h1{font-size:3rem;line-height:1.05}.week-greeting{font-size:var(--text-sm);font-weight:600;color:var(--color-accent)}.week-hero .btn{align-self:flex-start;margin-top:var(--space-2)}.week-progress{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.week-progress-bar{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-fill-strong)}.week-progress-bar span{display:block;height:100%;background:var(--color-accent);transform-origin:left center}@media(prefers-reduced-motion:no-preference){.week-progress-bar span{animation:week-fill .7s var(--ease-out) both}}@keyframes week-fill{0%{transform:scaleX(0)}}.week-progress-labels{display:grid;grid-template-columns:13fr 14fr 13fr;font-size:var(--text-sm);color:var(--color-muted)}.app-header{position:sticky;top:0;z-index:15;margin:calc(-1*max(var(--space-4),env(safe-area-inset-top))) calc(-1*max(var(--space-4),env(safe-area-inset-right))) 0 calc(-1*max(var(--space-4),env(safe-area-inset-left)));padding:calc(env(safe-area-inset-top,0px) + var(--space-4)) max(var(--space-4),env(safe-area-inset-right)) var(--space-3) max(var(--space-4),env(safe-area-inset-left));border-bottom:var(--line-thin) solid transparent}.app-header.is-scrolled{background:#111111c7;border-bottom-color:var(--color-line);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}@media(prefers-reduced-motion:no-preference){.app-header{transition:background-color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}}.app-header-inner{display:flex;align-items:center;gap:var(--space-3);max-width:var(--content-width);margin:0 auto}.app-header-title{flex:1;min-width:0;margin:0;overflow:hidden;font-size:var(--text-2xl);line-height:1.15;white-space:nowrap;text-overflow:ellipsis}.app-header-mark{flex:none;width:auto;height:40px}.app-header-back{display:grid;flex:none;place-items:center;width:36px;height:36px;margin-left:calc(-1 * var(--space-1));border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-card);color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent}.app-header-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}body:has(.tabbar){background:radial-gradient(120% 55% at 0% 0%,rgba(231,143,135,.1),transparent 60%),radial-gradient(90% 45% at 100% 100%,rgba(231,143,135,.06),transparent 60%),var(--color-bg);background-attachment:fixed}body:has(.tabbar) .page{gap:var(--space-4)}@media(prefers-reduced-motion:no-preference){body:has(.tabbar) .page-body{animation:screen-in var(--duration-base) var(--ease-out)}}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:no-preference){html[data-nav=push] .page-body{animation:screen-push .32s var(--ease-out)}html[data-nav=pop] .page-body{animation:screen-pop .32s var(--ease-out)}html[data-nav=switch] body:has(.tabbar) .page-body{animation:screen-in var(--duration-base) var(--ease-out)}}@keyframes screen-push{0%{opacity:0;transform:translate(28px)}}@keyframes screen-pop{0%{opacity:0;transform:translate(-28px)}}.check-sections{margin-top:var(--space-1)}.check-section+.check-section .chapter-toggle{border-top:var(--line-thin) solid var(--color-line)}.check-section-head{display:flex;flex-direction:column;gap:2px}.check-section-sub{font-size:var(--text-sm);color:var(--color-muted)}.check-panel{min-height:0;overflow:hidden;opacity:0}.check-section.is-open .check-panel{opacity:1}.check-group{margin:var(--space-4) 0 var(--space-1);font-family:var(--font-text);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;color:var(--color-muted)}.check-list{margin:0 0 var(--space-3);padding:0;list-style:none}.check-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0}.check-row+.check-row{border-top:var(--line-thin) solid var(--color-line-soft)}.check-box{appearance:none;flex:none;display:grid;place-content:center;width:24px;height:24px;margin:0;border:1.5px solid var(--color-muted);border-radius:50%;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.check-box:after{content:"";width:6px;height:11px;margin-top:-2px;border-right:2px solid var(--color-accent-ink);border-bottom:2px solid var(--color-accent-ink);transform:rotate(45deg) scale(0);opacity:0}.check-box:checked{border-color:var(--color-accent);background:var(--color-accent)}.check-box:checked:after{transform:rotate(45deg) scale(1);opacity:1}.check-box:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:1px}.check-title{display:flex;align-items:baseline;gap:var(--space-2);padding:0;border:0;background:none;color:var(--color-ink);font:inherit;font-weight:500;text-align:left;cursor:pointer}span.check-title{cursor:default}.check-title .chevron{align-self:center;margin-left:auto}.check-title[aria-expanded=true] .chevron{transform:translateY(-2px) rotate(45deg)}.check-row.is-done .check-title{color:var(--color-muted)}.check-meta{font-size:var(--text-sm);color:var(--color-muted)}.check-meta.is-late{color:var(--color-accent)}.check-details{display:grid;grid-template-rows:0fr}.check-details.is-open{grid-template-rows:1fr}.check-details-inner{min-height:0;overflow:hidden;opacity:0}.check-details.is-open .check-details-inner{opacity:1}.check-details p{margin:var(--space-2) 0 0;color:var(--color-text);font-size:.9375rem;line-height:1.5}.check-video{display:flex;align-items:center;gap:var(--space-3);width:100%;margin-top:var(--space-3);padding:0;border:0;background:none;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.check-video .thumb{width:45%;max-width:200px;height:auto;aspect-ratio:16 / 9}.check-video .lesson-title{font-size:var(--text-sm);line-height:1.35}.check-video .continue-play{margin-top:var(--space-1)}@media(prefers-reduced-motion:no-preference){.check-video:active .continue-play{transform:scale(.96)}}.todo{margin-bottom:var(--space-5)}.todo .check-list{margin-bottom:var(--space-2)}@media(prefers-reduced-motion:no-preference){.check-box{transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.check-box:active{transform:scale(.9)}.check-box:after{transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.check-panel,.check-details-inner{transition:opacity .3s var(--ease-out)}.check-details{transition:grid-template-rows var(--duration-base) var(--ease-out)}}.story{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-6) 0}.story-title{margin:0;font-size:var(--text-xl);line-height:1.2;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}.story-body{margin:0;color:var(--color-text);font-size:var(--text-lg);font-weight:300;line-height:1.7;white-space:pre-line}.story-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.row-link{display:flex;align-items:center;width:100%;min-height:52px;padding:var(--space-3) 0;border:0;border-top:var(--line-thin) solid var(--color-line);background:none;color:var(--color-ink);font:inherit;font-weight:500;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.story-more{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;border:0;background:none;color:var(--color-accent);font:inherit;font-weight:600;cursor:pointer}.story-more .chevron{margin-left:0;border-color:currentColor}.story-credit{display:flex;align-items:center;gap:var(--space-3);margin:0;font-size:var(--text-sm);color:var(--color-muted)}.story-credit-name{font-size:var(--text-sm);color:var(--color-muted)}.story-logo{display:block;width:auto;height:26px;opacity:.6}.story-full{margin-top:var(--space-2)}.story-full .story-credit{margin-top:var(--space-3)}.onboarding{min-height:100dvh;display:flex;flex-direction:column;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-6),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.onboarding-top{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:var(--content-width);margin:0 auto;min-height:44px}.onboarding-dots{display:flex;gap:var(--space-2);margin:0;padding:0;list-style:none}.onboarding-dots li{width:24px;height:4px;border-radius:var(--radius-pill);background:var(--color-fill-strong)}.onboarding-dots li.is-on{background:var(--color-accent)}.onboarding-slide{flex:1;display:flex;flex-direction:column;justify-content:center;width:100%;max-width:var(--content-width);margin:0 auto}.onboarding-form{display:flex;flex-direction:column;gap:var(--space-4)}.onboarding-form h1{margin:0;font-size:var(--text-2xl);line-height:1.15}.onboarding-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.onboarding-actions .btn{width:100%}.prepare-bar{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-fill-strong)}.prepare-bar>span{display:block;height:100%;background:var(--color-accent);transform-origin:left center;animation:prepare-fill linear forwards}.prepare-list{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-2) 0 0;padding:0;list-style:none}.prepare-list li{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text)}.prepare-list li.is-busy{color:var(--color-muted)}.prepare-mark{position:relative;flex:none;display:grid;place-content:center;width:22px;height:22px;border:2px solid var(--color-fill-strong);border-radius:50%}.is-busy .prepare-mark{border-top-color:var(--color-accent)}.is-done .prepare-mark{border-color:var(--color-accent);background:var(--color-accent)}.is-done .prepare-mark:after{content:"";width:5px;height:10px;margin-top:-2px;border-right:2px solid var(--color-accent-ink);border-bottom:2px solid var(--color-accent-ink);transform:rotate(45deg)}@keyframes prepare-fill{0%{transform:scaleX(0)}55%{transform:scaleX(.75)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:no-preference){.onboarding-slide{animation:slide-in .32s var(--ease-out)}.onboarding-dots li{transition:background-color var(--duration-base) var(--ease-out)}.prepare-list li{animation:line-in .4s var(--ease-out)}.is-busy .prepare-mark{animation:prepare-spin .8s linear infinite}.is-done .prepare-mark:after{animation:prepare-check .3s var(--ease-out)}.onboarding-prepare h1{animation:line-in .4s var(--ease-out)}.page-body.is-welcome>*{animation:welcome-in .7s var(--ease-out) both;animation-delay:.15s}.page-body.is-welcome>:nth-child(2){animation-delay:.26s}.page-body.is-welcome>:nth-child(3){animation-delay:.37s}.page-body.is-welcome>:nth-child(4){animation-delay:.48s}.page-body.is-welcome>:nth-child(n+5){animation-delay:.59s}html[data-welcome] .app-header{animation:fade-in .5s var(--ease-out) both}html[data-welcome] .tabbar{animation:tabbar-in .6s var(--ease-out) .45s both}.onboarding-prepare{transition:opacity .4s var(--ease-out),transform .45s var(--ease-out)}}.onboarding-prepare.is-leaving{opacity:0;transform:translateY(-16px) scale(.98)}@keyframes fade-in{0%{opacity:0}}@keyframes tabbar-in{0%{opacity:0;transform:translateY(100%)}}@keyframes prepare-spin{to{transform:rotate(360deg)}}@keyframes prepare-check{0%{opacity:0;transform:rotate(45deg) scale(.3)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@keyframes line-in{0%{opacity:0;transform:translateY(6px)}}@keyframes welcome-in{0%{opacity:0;transform:translateY(24px) scale(.98)}}.course-module+.course-module,.continue+.course-module{margin-top:var(--space-6)}.course-module-title{font-size:1.625rem;line-height:1.2;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.course-module .status-text{margin:var(--space-1) 0 var(--space-3)}.course-module.is-single .status-text{margin:var(--space-2) 0 0}.tiles{display:flex;gap:var(--space-3);margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4) var(--space-1);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 var(--space-4);scrollbar-width:none}.tiles::-webkit-scrollbar{display:none}.tile{position:relative;display:flex;flex:0 0 66%;flex-direction:column;gap:var(--space-2);padding:0;border:0;background:none;color:var(--color-ink);text-align:left;cursor:pointer;scroll-snap-align:start;-webkit-tap-highlight-color:transparent}.tile:only-child{flex-basis:100%}.tile:only-child .tile-art{aspect-ratio:2.4 / 1}@media(min-width:720px){.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;overflow:visible}}.tile-art{position:relative;display:block;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-thumb);background:radial-gradient(120% 120% at 20% 100%,#2a2a2a,#141414 70%)}.tile-art img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(1.25) contrast(1.05);transform:scale(var(--zoom, 1));transform-origin:var(--focus, 50% 50%)}.tile-art:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0000008c,#0000 50%);border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff3d}.tile-name{position:absolute;right:var(--space-3);bottom:var(--space-2);left:var(--space-3);z-index:1;font-family:var(--font-display);font-size:1.375rem;line-height:1.1;color:var(--color-ink);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;text-shadow:0 1px 12px rgba(0,0,0,.35)}.tile.is-locked .tile-art img{filter:brightness(.95) grayscale(.35)}.tile-meta{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-muted)}.tile-progress{position:absolute;right:0;bottom:0;left:0;z-index:2;height:3px;background:#ffffff40}.tile-progress>span{display:block;height:100%;background:var(--color-accent);transform-origin:left center}@media(prefers-reduced-motion:no-preference){.tile-art img{transition:transform .5s var(--ease-out)}.tile:active .tile-art{transform:scale(.98)}.tile-art{transition:transform var(--duration-fast) var(--ease-out)}}@media(hover:hover)and (prefers-reduced-motion:no-preference){.tile:hover .tile-art img{transform:scale(calc(var(--zoom, 1) * 1.04))}}.module-locked{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--line-thin) solid var(--color-line)}.chapter-hero .tile-art{border-radius:var(--radius-card)}.chapter-hero .tile-name{right:var(--space-4);bottom:var(--space-3);left:var(--space-4);font-size:clamp(2rem,10vw,3rem)}.chapter-meta{margin:0}.episodes{margin:0;padding:0;list-style:none}.episodes li+li{border-top:var(--line-thin) solid var(--color-line-soft)}.episode{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) 0;border:0;background:none;color:var(--color-ink);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.episode .thumb{width:40%;max-width:200px;height:auto;aspect-ratio:16 / 9}.episode .lesson-title{font-size:var(--text-md);line-height:1.35}.episode.is-locked .lesson-title{color:var(--color-locked)}.episode.is-locked .thumb img{filter:brightness(.55)}.episode.is-watched .lesson-title{color:var(--color-muted)}.episode-play{display:grid;flex:none;place-items:center;width:40px;height:40px;border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-pill);color:var(--color-ink)}.episode-play .icon{width:14px;height:14px}.episode.is-locked .episode-play{color:var(--color-muted)}@media(prefers-reduced-motion:no-preference){.episode-play{transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-base) var(--ease-out)}.episode:active .episode-play{transform:scale(.9)}}@media(hover:hover){.episode:not(.is-locked):hover .episode-play{background:var(--color-ink);color:var(--color-bg)}}.episode.is-locked .thumb-badge{display:none}.continue-play{display:inline-flex;align-self:flex-start;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) 14px;border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-bg);font-size:.875rem;font-weight:600;white-space:nowrap}.continue-play .icon{width:12px;height:12px}@media(prefers-reduced-motion:no-preference){.continue-play{transition:transform var(--duration-fast) var(--ease-out)}.continue-row:active .continue-play{transform:scale(.96)}}.home-body{gap:0}.home-body>section{margin:0 calc(-1 * var(--space-4));padding:var(--space-6) var(--space-4)}.home-body>section:first-of-type{padding-top:var(--space-2)}.home-body>.week-hero{background:linear-gradient(180deg,#e78f8700,#e78f8712)}.home-body>.story{background:#1a1614;border-top:var(--line-thin) solid rgba(231,143,135,.18);border-bottom:var(--line-thin) solid rgba(231,143,135,.18)}.home-body>.continue{background:transparent}.home-body>.todo{margin-bottom:0;background:#ffffff09;border-top:var(--line-thin) solid var(--color-line)}.eyebrow{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.08em;color:var(--color-accent)}.code-block{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--line-thin) solid var(--color-line)}.code-block .continue-heading{margin:0}.code-block-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-2)}.check-progress{display:flex;align-items:center;gap:var(--space-3)}.progress-ring{position:relative;display:grid;flex:none;place-items:center;width:48px;height:48px}.progress-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:3.5}.progress-ring-track{stroke:var(--color-fill-strong)}.progress-ring-fill{stroke:var(--color-accent);stroke-linecap:round}.progress-ring-value{font-size:.8125rem;font-weight:600;color:var(--color-ink);font-variant-numeric:tabular-nums}.progress-ring-value small{font-size:.625rem;font-weight:500;color:var(--color-muted)}.check-all-title{margin:0}.check-progress~.todo{margin-bottom:0}@media(orientation:landscape)and (max-height:540px)and (pointer:coarse){body:has(.lesson-page .player){overflow:hidden}.lesson-page .player{position:fixed;inset:0;z-index:50;width:100vw;height:100dvh;aspect-ratio:auto;background:#000}}.auth-intro{position:relative;isolation:isolate}.intro-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#000}.intro-bg video,.intro-bg img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.intro-bg video{opacity:0}.intro-bg video.is-playing{opacity:1}.intro-bg video::-webkit-media-controls,.intro-bg video::-webkit-media-controls-start-playback-button,.intro-bg video::-webkit-media-controls-overlay-play-button{display:none!important;-webkit-appearance:none}.intro-dots{position:absolute;inset:0;background-color:#0000002e;background-image:radial-gradient(rgba(0,0,0,.6) .9px,transparent 1.5px);background-size:4px 4px;-webkit-mask-image:radial-gradient(ellipse 75% 60% at 50% 45%,transparent 35%,rgba(0,0,0,.15) 55%,#000 100%);mask-image:radial-gradient(ellipse 75% 60% at 50% 45%,transparent 35%,rgba(0,0,0,.15) 55%,#000 100%)}.intro-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000008c,#0000 18%,#0000004d 28%,#0a0a0acc,#0a0a0af2 62%,#0a0a0a);opacity:0}.auth-intro.is-revealed .intro-shade{opacity:1}.intro-veil{position:absolute;inset:0;background:linear-gradient(180deg,#1111118c,#11111180 40%,#111111c7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0}.auth-intro.is-form .intro-veil{opacity:1}.auth-intro .auth-form{flex:1;justify-content:center}.auth-intro .auth-actions{margin-top:var(--space-4)}.auth-intro .auth-start{justify-content:flex-end;gap:var(--space-3)}.start-title{margin:0;font-size:clamp(2.75rem,13vw,4rem);line-height:.95;letter-spacing:-.02em;text-wrap:balance}.start-lead{max-width:30ch;text-wrap:pretty;color:#ffffffc7}.start-actions{margin-top:var(--space-5);gap:var(--space-3)}.btn-start{min-height:56px;border-radius:999px;font-size:1.0625rem;box-shadow:0 10px 30px -10px #0009}.btn-start:active,.start-login:active{transform:scale(.97)}.auth-intro .lang-switch{text-shadow:0 1px 8px rgba(0,0,0,.6)}.start-login{align-self:stretch;min-height:56px;padding:var(--space-2) var(--space-4);border:var(--line-thin) solid rgba(255,255,255,.35);border-radius:999px;background:none;color:var(--color-ink);font:inherit;font-weight:600;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.auth-intro .auth-start{align-items:center;text-align:center}.auth-intro .start-actions{align-self:stretch}.auth-intro.is-form .auth-form>h1,.auth-intro.is-form .auth-form>.lead{text-align:center}.auth-intro.is-form .field>span{color:var(--color-ink);font-weight:600}.back-icon{display:none}.auth-intro .back-button{position:fixed;top:max(var(--space-4),env(safe-area-inset-top));left:max(var(--space-4),env(safe-area-inset-left));z-index:4;display:grid;place-items:center;width:48px;height:48px;padding:0;border:var(--line-thin) solid rgba(255,255,255,.14);border-radius:50%;background:#282828bf;color:var(--color-ink);text-decoration:none}.auth-intro .back-button:active{transform:scale(.94)}.auth-intro .back-icon{display:block}.auth-intro .back-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.auth-intro .auth-start>*{opacity:0;transform:translateY(24px)}.auth-intro .auth-top{opacity:0}.auth-intro:not(.is-revealed) .auth-top{pointer-events:none}.auth-intro.is-revealed .auth-start>*,.auth-intro.is-revealed .auth-top{opacity:1;transform:none}@media(prefers-reduced-motion:no-preference){.intro-veil,.intro-shade{transition:opacity .7s var(--ease-out)}.auth-intro .auth-top{transition:opacity .6s var(--ease-out) .25s}.auth-intro .auth-start>*{transition:opacity .5s var(--ease-out) var(--delay, .3s),transform .6s var(--ease-out) var(--delay, .3s)}.auth-intro .auth-start>:nth-child(2){--delay: .38s}.auth-intro .auth-start>:nth-child(3){--delay: .46s}}.hold-wrap{position:fixed;inset:0;z-index:2;pointer-events:none}.hold-button{position:absolute;top:75%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:148px;height:148px;margin:-74px 0 0 -74px;padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2a2a2a,#121212 55%,#050505);box-shadow:inset 0 1.5px 1px #ffffff2e,inset 0 -2px 3px #000000b3,0 10px 30px #0000008c,0 2px 6px #00000080;color:var(--color-ink);cursor:pointer;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.hold-ring{position:absolute;inset:-9px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff24}.hold-half{position:absolute;top:0;width:50%;height:100%;overflow:hidden}.hold-half-right{right:0}.hold-half-left{left:0}.hold-arc{position:absolute;top:0;box-sizing:border-box;width:200%;height:100%;border:3px solid transparent;border-right-color:var(--color-accent);border-bottom-color:var(--color-accent);border-radius:50%}.hold-half-right .hold-arc{left:-100%;transform:rotate(135deg)}.hold-half-left .hold-arc{left:0;transform:rotate(-45deg)}.hold-button.is-holding .hold-half-right .hold-arc{transform:rotate(315deg)}.hold-button.is-holding .hold-half-left .hold-arc{transform:rotate(135deg)}.hold-logo{position:relative;display:block;width:34px;height:auto;margin-bottom:6px}.hold-label{position:relative;max-width:104px;font-size:.5625rem;font-weight:600;line-height:1.3;letter-spacing:.08em;text-align:center}@media(prefers-reduced-motion:no-preference){.hold-half-right .hold-arc{transition:transform .26s var(--ease-out) .12s}.hold-half-left .hold-arc{transition:transform .16s var(--ease-out)}.hold-button.is-holding .hold-half-right .hold-arc{transition:transform calc(var(--hold-ms, 1.5s) / 2) linear}.hold-button.is-holding .hold-half-left .hold-arc{transition:transform calc(var(--hold-ms, 1.5s) / 2) linear calc(var(--hold-ms, 1.5s) / 2)}.hold-button{transition:transform var(--duration-fast) var(--ease-out)}.hold-button.is-holding{transform:scale(.96)}.hold-button:not(.is-holding){animation:hold-breathe 2.4s var(--ease-out) infinite}}@keyframes hold-breathe{50%{transform:scale(1.03)}}.story-preview{display:grid;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:var(--line-thin) solid var(--color-line)}.story-preview-day{margin:0;font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.story-preview-buttons{display:flex;justify-content:space-between}.auth-intro .btn{min-height:56px;border-radius:999px}.lesson-heading{display:grid;gap:var(--space-1)}.lesson-kicker{margin:0;font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.lesson-title{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,6.5vw,2.2rem);line-height:1.1;text-wrap:balance}.auth-intro .auth-top{position:relative;z-index:3}.auth-intro .auth-logo{filter:drop-shadow(0 2px 14px rgba(0,0,0,.75))}.check-done .chapter-name{color:var(--color-muted)}.check-done .check-row{opacity:.7}.check-all-done{padding:var(--space-3) 0}.fab{position:fixed;right:max(var(--space-4),env(safe-area-inset-right));bottom:calc(max(var(--space-3),env(safe-area-inset-bottom)) + 84px);z-index:21;display:grid;place-items:center;width:60px;height:60px;padding:0;border:0;border-radius:50%;background:var(--color-accent);color:var(--color-accent-ink);box-shadow:0 10px 28px #00000080;cursor:pointer;-webkit-tap-highlight-color:transparent}.fab svg{transition:transform var(--duration-fast) var(--ease-out)}.fab.is-open svg{transform:rotate(45deg)}.fab:active{transform:scale(.94)}.add-task{position:fixed;right:max(var(--space-4),env(safe-area-inset-right));bottom:calc(max(var(--space-3),env(safe-area-inset-bottom)) + 156px);left:max(var(--space-4),env(safe-area-inset-left));z-index:21;display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:var(--content-width);margin:0 auto;padding:var(--space-2);border:var(--line-thin) solid var(--color-line);border-radius:var(--radius-control);background:var(--color-card);box-shadow:0 12px 32px #00000080}.add-task-input{flex:1;min-width:0;padding:var(--space-3);border:0;background:transparent;color:var(--color-ink);font-size:var(--text-lg)}.add-task-input:focus{outline:none}.add-task-error{flex-basis:100%;margin:0}.own-tasks{display:grid;gap:var(--space-2)}.own-remove{display:grid;flex:none;place-items:center;width:36px;height:36px;padding:0;border:0;background:none;color:var(--color-muted);cursor:pointer}@media(prefers-reduced-motion:reduce){.fab svg{transition:none}}h1,h2,h3,.tile-name,.story-title,.start-title,.lesson-title{font-variant-numeric:lining-nums}.tile-name,.continue-title,.lesson-nav-title,.autonext-title{font-family:var(--font-text);font-weight:600;letter-spacing:-.01em}
