:root{--bg:#f6f3ec;--surface:#fff;--surface-2:#efeadd;--ink:#23201a;--ink-2:#4a4538;--muted:#7a7363;--primary:#3b5a4e;--primary-2:#2d463c;--primary-soft:#dfe8e1;--on-primary:#f7fbf8;--accent:#b9853a;--accent-soft:#f1e5c9;--danger:#b4452f;--ok:#3f7a58;--border:#e3ddcc;--shadow:0 1px 2px rgba(40,35,20,.05),0 8px 24px rgba(40,35,20,.06);--r:18px;--bar-h:72px;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Nunito Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.55;min-height:100vh}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;margin:0;line-height:1.15;letter-spacing:-.005em}a{color:inherit}button,input,textarea{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,#fff);outline-offset:2px;border-radius:8px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border)}.topbar-in{max-width:1180px;margin:0 auto;padding:10px 16px;gap:12px;min-height:58px}.brand,.topbar-in{display:flex;align-items:center}.brand{white-space:nowrap;gap:10px;text-decoration:none;font-family:Cormorant Garamond,serif;font-weight:700;font-size:1.25rem;color:var(--primary-2)}.brand-mark{width:30px;height:30px;border-radius:10px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-size:1rem}.top-spacer{flex:1 1}.userchip{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:.9rem;color:var(--ink-2)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;flex:none}.userchip span.nm{display:none}.linkbtn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;padding:8px;text-decoration:underline;text-underline-offset:3px}.wrap{max-width:1180px;margin:0 auto;padding:16px 16px 40px}.wrap.narrow{max-width:760px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:14px;border:1px solid transparent;font-weight:700;font-size:.98rem;cursor:pointer;text-decoration:none;transition:transform .08s,background .15s,box-shadow .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 28%,transparent)}.btn-primary:hover{background:var(--primary-2)}.btn-primary:disabled{background:var(--surface-2);color:var(--muted);box-shadow:none;cursor:default}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--ink-2)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-small{min-height:38px;padding:0 14px;font-size:.88rem;border-radius:11px}.btn-block{width:100%}.btn.done{background:var(--primary-soft);color:var(--primary-2);box-shadow:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.card-pad{padding:18px}.eyebrow{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--accent)}.muted{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;border-radius:99px;padding:3px 10px;background:var(--surface-2);color:var(--ink-2)}.pill.stop{background:var(--accent-soft);color:#8a5f1f}.pill.ok{background:var(--primary-soft);color:var(--primary-2)}.hero{display:grid;grid-gap:16px;gap:16px;margin-bottom:18px}.hello{padding:20px;display:flex;align-items:center;gap:18px}.hello h1{font-size:1.75rem}.hello p{margin:4px 0 0;color:var(--muted);font-size:.94rem}.ring{flex:none;position:relative;width:84px;height:84px}.ring svg{display:block}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:Cormorant Garamond,serif;font-size:1.35rem}.cta{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--r);text-decoration:none;background:linear-gradient(135deg,var(--primary) 0,var(--primary-2) 100%);color:var(--on-primary);box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 30%,transparent)}.cta small{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;opacity:.75;font-weight:700}.cta strong{display:block;font-family:Cormorant Garamond,serif;font-size:1.3rem;line-height:1.2;margin-top:2px}.cta .go{margin-left:auto;width:44px;height:44px;border-radius:50%;background:hsla(0,0%,100%,.16);display:grid;place-items:center;flex:none}.mods{display:grid;grid-gap:12px;gap:12px}.mod{overflow:hidden}.mod>summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;align-items:center;gap:14px}.mod>summary::-webkit-details-marker{display:none}.mod-num{flex:none;width:40px;height:40px;border-radius:12px;background:var(--primary-soft);color:var(--primary-2);display:grid;place-items:center;font-family:Cormorant Garamond,serif;font-weight:700;font-size:1.2rem}.mod-num.bonus{background:var(--accent-soft);color:var(--accent)}.mod-main{flex:1 1;min-width:0}.mod-title{font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:600;line-height:1.2}.mod-meta{font-size:.8rem;color:var(--muted);margin-top:2px}.bar{height:6px;background:var(--surface-2);overflow:hidden;margin-top:8px}.bar,.bar>i{border-radius:99px}.bar>i{display:block;height:100%;background:var(--primary);transition:width .4s}.chev{flex:none;color:var(--muted);transition:transform .2s}.mod[open] .chev{transform:rotate(90deg)}.lessons{border-top:1px solid var(--border)}.lrow{display:flex;align-items:center;gap:12px;padding:12px 18px;text-decoration:none;border-bottom:1px solid var(--border);min-height:56px}.lrow:last-child{border-bottom:none}.lrow:hover{background:color-mix(in srgb,var(--primary-soft) 45%,transparent)}.lrow.current{background:color-mix(in srgb,var(--accent-soft) 60%,transparent)}.lrow.locked{opacity:.5;pointer-events:none}.dot{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;color:transparent}.dot.done{background:var(--ok);border-color:var(--ok);color:#fff}.dot.open{border-color:var(--accent);background:var(--accent-soft)}.dot.lock{border-style:dashed;color:var(--muted)}.lt{flex:1 1;min-width:0;font-size:.96rem;line-height:1.35}.lt small{display:block;color:var(--muted);font-size:.76rem;margin-top:1px}.lesson-layout-outer{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr)}.lesson-layout-main,.player{min-width:0}.player{max-width:100%;background:#0f0e0b;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}.player iframe,.player video{display:block;width:100%;aspect-ratio:16/9;background:#000;border:0}.player-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#1b1a15;overflow-x:auto;scrollbar-width:none}.player-bar::-webkit-scrollbar{display:none}.player-bar span{color:#b9b29d;font-size:.75rem;margin-right:4px;flex:none}.chip{flex:none;border:1px solid #3a372d;background:transparent;color:#d9d2bd;border-radius:99px;padding:5px 11px;font-size:.8rem;cursor:pointer;min-height:32px}.chip.on{background:var(--accent);border-color:var(--accent);color:#1c1708;font-weight:700}.vtabs{display:flex;gap:8px;margin-bottom:10px;overflow-x:auto;max-width:100%}.vtab{flex:none;border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:8px 14px;cursor:pointer;font-size:.86rem;font-weight:700;color:var(--ink-2)}.vtab.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.novideo{aspect-ratio:16/9;display:grid;place-items:center;color:var(--muted);background:var(--surface-2);border-radius:var(--r);text-align:center;padding:20px}.lesson-head h1{font-size:1.7rem;margin:6px 0 8px}.crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.82rem;color:var(--muted)}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--primary);text-decoration:underline}.prose{font-size:1.02rem;line-height:1.7;color:var(--ink-2);max-width:68ch}.prose p{margin:0 0 .9em}.prose ol,.prose ul{padding-left:1.25em;margin:0 0 1em}.prose li{margin-bottom:.35em}.prose a{color:var(--primary);font-weight:600;text-underline-offset:3px}.prose h3{font-size:1.3rem;margin:1.2em 0 .4em;color:var(--ink)}.prose blockquote{margin:1em 0;padding:4px 16px;border-left:3px solid var(--accent);color:var(--ink-2);background:var(--accent-soft);border-radius:0 12px 12px 0}.section{padding:18px}.section>h2{font-size:1.3rem;margin-bottom:10px}.files{display:grid;grid-gap:8px;gap:8px}.file{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;text-decoration:none;background:var(--bg);min-height:56px}.file:hover{border-color:var(--primary)}.file-ico{flex:none;width:38px;height:38px;border-radius:10px;background:var(--primary-soft);color:var(--primary-2);display:grid;place-items:center;font-size:.66rem;font-weight:800}.file b{display:block;font-size:.94rem;line-height:1.3;overflow-wrap:anywhere}.file small{color:var(--muted)}.hw{border:2px solid var(--accent-soft);background:linear-gradient(180deg,#fffdf8,#fff)}.hw-label{display:inline-flex;gap:8px;align-items:center}.hw textarea{width:100%;min-height:130px;resize:vertical;border:1.5px solid var(--border);border-radius:14px;padding:14px;background:#fff;line-height:1.55;margin-top:12px}.hw textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)}.drop{margin-top:12px;border:1.5px dashed var(--border);border-radius:14px;padding:16px;display:flex;align-items:center;gap:12px;cursor:pointer;background:var(--bg);min-height:64px}.drop:hover{border-color:var(--primary)}.drop input{display:none}.attached{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.attached a,.attached span{font-size:.84rem;padding:6px 12px;border-radius:99px;background:var(--surface-2);text-decoration:none}.err{color:var(--danger);font-size:.9rem;margin-top:10px;font-weight:600}.sent{margin-top:12px;padding:14px;border-radius:14px;background:var(--primary-soft);color:var(--primary-2);white-space:pre-wrap;font-size:.96rem}.locked-note{padding:28px 20px;text-align:center}.locked-note h2{font-size:1.5rem;margin-bottom:8px}details.tr>summary{cursor:pointer;font-weight:700;list-style:none;display:flex;align-items:center;gap:8px;min-height:40px}details.tr>summary::-webkit-details-marker{display:none}.tr-body{margin-top:10px;font-size:.96rem;line-height:1.7;color:var(--ink-2);white-space:pre-wrap;max-height:460px;overflow:auto}.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;gap:10px;align-items:center;padding:10px 14px calc(10px + var(--safe-b));background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.actionbar .btn-primary,.actionbar .btn.done{flex:1 1}.sq{flex:none;width:48px;height:48px;padding:0}.sq[aria-disabled=true]{opacity:.35;pointer-events:none}.has-bar{padding-bottom:calc(var(--bar-h) + var(--safe-b) + 16px)}.outline{padding:0;overflow:hidden}.outline-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.outline-head b{font-family:Cormorant Garamond,serif;font-size:1.2rem}.outline details>summary{list-style:none;cursor:pointer;padding:10px 16px;display:flex;gap:10px;align-items:center;font-weight:700;font-size:.9rem;background:var(--bg);border-bottom:1px solid var(--border);min-height:44px}.outline details>summary::-webkit-details-marker{display:none}.outline .lrow{padding:10px 16px;min-height:48px;font-size:.9rem}.outline-scroll{max-height:calc(100vh - 150px);overflow:auto}.drawer-btn{display:inline-flex}.outline-wrap{display:none}.outline-wrap.open{display:block;position:fixed;inset:0;z-index:60;background:rgba(20,18,12,.5);padding:40px 0 0}.outline-wrap.open .outline{height:100%;border-radius:22px 22px 0 0;display:flex;flex-direction:column}.outline-wrap.open .outline-scroll{max-height:none;flex:1 1}.x{display:none}.outline-wrap.open .x{display:inline-flex}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:420px;padding:28px 22px}.login-card h1{font-size:2rem;margin:8px 0 6px}.field{display:block;margin-top:14px}.field span{display:block;font-size:.82rem;font-weight:700;color:var(--ink-2);margin-bottom:6px}.input{width:100%;min-height:50px;border:1.5px solid var(--border);border-radius:14px;padding:0 14px;background:#fff}.input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)}.tbl{width:100%;border-collapse:collapse;font-size:.92rem}.tbl th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 12px}.tbl td,.tbl th{border-bottom:1px solid var(--border)}.tbl td{padding:12px;vertical-align:top}.tbl tr:last-child td{border-bottom:none}.scroll-x{overflow-x:auto}.grid2{display:grid;grid-gap:14px;gap:14px}.copy{font-family:ui-monospace,Menlo,monospace;font-size:.82rem;background:var(--surface-2);padding:8px 10px;border-radius:10px;word-break:break-all}.fade{animation:fade .35s ease both}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}@media (max-width:559px){.topbar .linkbtn{display:none}.brand{font-size:1.1rem}.brand-mark{width:28px;height:28px}.hello{padding:16px;gap:14px}.hello h1{font-size:1.45rem}.ring{width:70px!important;height:70px!important}.ring svg{width:70px;height:70px}.section{padding:16px}}@media (min-width:720px){.userchip span.nm{display:inline}.grid2{grid-template-columns:1fr 1fr}}@media (min-width:960px){.wrap{padding:28px 24px 64px}.hero{grid-template-columns:1.3fr 1fr;align-items:stretch}.mods{grid-template-columns:1fr 1fr;align-items:start}.lesson-layout-outer{grid-template-columns:minmax(0,1fr) 340px!important;gap:28px;align-items:start}.outline-wrap{display:block;position:-webkit-sticky;position:sticky;top:76px}.drawer-btn{display:none}.actionbar{position:static;border:none;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:6px 0 0}.actionbar .btn-primary,.actionbar .btn.done{flex:0 1 auto;min-width:260px}.actionbar{justify-content:flex-start}.has-bar{padding-bottom:0}.lesson-head h1{font-size:2.1rem}}