@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/sora-latin-500-normal-01eiPEn0.woff2)format("woff2")}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-600-normal-Cdg4DaK0.woff2)format("woff2")}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sora-latin-700-normal-9waGdLWo.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-BZp_XxE4.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2")}:root{--ink:#0b1220;--ink-2:#121b2e;--ink-3:#1b2740;--blue:#2563eb;--blue-h:#1d4ed8;--blue-soft:#eff4fe;--cyan:#06b6d4;--cyan-soft:#ddf7fb;--bg:#fff;--surface:#f5f7fb;--surface-2:#edf1f8;--card:#fff;--fg:#1f2937;--fg-2:#4b5563;--fg-3:#666c7a;--line:#e3e8f0;--line-2:#cbd3df;--ok:#16a34a;--warn:#d97706;--danger:#d32222;--teal-fg:#0e7490;--warn-soft:#fef3c7;--warn-fg:#92400e;--warn-line:#fcd34d;--ok-soft:#dcfce7;--ok-fg:#166534;--blue-deep:#1e3a8a;--white:#fff;--blue-fill:#2563eb;--blue-fill-h:#1d4ed8;--brand-blue:#2563eb;--brand-cyan:#06b6d4;--brand-white:#fff;--on-ink:#f8fafc;--on-ink-2:#b9c3d3;--shadow:0 1px 2px #0b12200d,0 6px 20px #0b12200f;--shadow-h:0 2px 4px #0b12200f,0 14px 34px #0b12201f;--radius:14px;--radius-s:10px;--font-d:"Sora",ui-sans-serif,system-ui,sans-serif;--font-b:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-m:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1220;--surface:#0f172a;--surface-2:#16213a;--card:#121b2e;--fg:#e5e9f0;--fg-2:#b9c3d3;--fg-3:#959fb1;--line:#223050;--line-2:#2f3f62;--blue-soft:#14264c;--cyan-soft:#0d3a45;--blue:#5b8def;--blue-h:#7aa3f5;--ink:#070c17;--ink-2:#0e1627;--ink-3:#172238;--shadow:0 1px 2px #0000004d,0 6px 20px #00000059;--shadow-h:0 2px 4px #00000059,0 14px 34px #00000080;--teal-fg:#22d3ee;--warn-soft:#3a2a08;--warn-fg:#fde68a;--warn-line:#7a5a0b;--ok-soft:#0b3b1d;--ok-fg:#86efac;--blue-deep:#1e3a8a;--white:#fff;--danger:#f87171;--blue-fill:#3b6fd9;--blue-fill-h:#2f63d1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1220;--surface:#0f172a;--surface-2:#16213a;--card:#121b2e;--fg:#e5e9f0;--fg-2:#b9c3d3;--fg-3:#959fb1;--line:#223050;--line-2:#2f3f62;--blue-soft:#14264c;--cyan-soft:#0d3a45;--blue:#5b8def;--blue-h:#7aa3f5;--ink:#070c17;--ink-2:#0e1627;--ink-3:#172238;--shadow:0 1px 2px #0000004d,0 6px 20px #00000059;--shadow-h:0 2px 4px #00000059,0 14px 34px #00000080;--teal-fg:#22d3ee;--warn-soft:#3a2a08;--warn-fg:#fde68a;--warn-line:#7a5a0b;--ok-soft:#0b3b1d;--ok-fg:#86efac;--blue-deep:#1e3a8a;--white:#fff;--danger:#f87171;--blue-fill:#3b6fd9;--blue-fill-h:#2f63d1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-b);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);position:fixed;inset:0 0 auto}h1,h2,h3,h4{font-family:var(--font-d);text-wrap:balance;letter-spacing:-.01em;margin:0;line-height:1.15}h1{font-size:clamp(2rem,5vw,3.6rem);font-weight:700}h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:600}h3{font-size:1.15rem;font-weight:600}h4{font-size:1rem;font-weight:600}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{cursor:text}select{cursor:pointer}:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.wrap{max-width:1180px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));margin:0 auto}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--blue);font-size:.74rem;font-weight:700}.muted{color:var(--fg-3)}.sub{color:var(--fg-2)}.small{font-size:.86rem}.mono{font-family:var(--font-m);font-size:.84rem}.num{font-variant-numeric:tabular-nums}.grid{gap:1.25rem;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.between{justify-content:space-between}.stack{flex-direction:column;gap:.75rem;display:flex}.mob-only{display:none}@keyframes rise{0%{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:.5s ease-out both rise}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=1024px){.g4,.g5,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.mob-only{display:inline-flex}}@media (width<=640px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.72rem 1.15rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-p{background:var(--blue-fill);color:var(--white)}.btn-p:hover{background:var(--blue-fill-h);transform:translateY(-1px);box-shadow:0 8px 24px #2563eb47}.btn-s{border-color:var(--line-2);color:var(--fg);background:0 0}.btn-s:hover{border-color:var(--fg-3);background:var(--surface)}.btn-ink{background:var(--on-ink);color:var(--ink)}.btn-ink:hover{transform:translateY(-1px);box-shadow:0 8px 24px #ffffff2e}.btn-ghost-ink{color:var(--on-ink);border-color:#ffffff4d}.btn-ghost-ink:hover{background:#ffffff14}.btn-sm{min-height:36px;padding:.45rem .85rem;font-size:.85rem}.btn-cyan{background:var(--cyan);color:var(--ink)}.btn-cyan:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none!important;transform:none!important}.magnet{position:relative;overflow:hidden}.magnet:after{content:"";background:radial-gradient(120px 60px at var(--mx,50%) var(--my,50%),#ffffff14,transparent 70%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.magnet:hover:after{opacity:1}.chip{background:var(--surface-2);color:var(--fg-2);border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;min-height:32px;padding:.3rem .7rem;font-size:.78rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.chip.on{background:var(--ink);color:var(--on-ink)}.chip:hover{border-color:var(--line-2)}.chip-blue{background:var(--blue-soft);color:var(--blue)}.chip-cyan{background:var(--cyan-soft);color:var(--teal-fg)}.badge{letter-spacing:.06em;text-transform:uppercase;background:var(--cyan-soft);color:var(--teal-fg);border-radius:6px;padding:.22rem .5rem;font-size:.7rem;font-weight:700}.badge-ink{background:var(--ink);color:var(--on-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn-fg)}.badge-ok{background:var(--ok-soft);color:var(--ok-fg)}.badge-gray{background:var(--surface-2);color:var(--fg-2)}.icobtn{width:42px;height:42px;color:var(--fg-2);border-radius:10px;justify-content:center;align-items:center;transition:background .15s;display:inline-flex;position:relative}.icobtn:hover{background:var(--surface)}.icobtn[disabled]{opacity:.55;cursor:not-allowed}.prog{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.prog>i{background:var(--teal-fg);border-radius:99px;height:100%;transition:width .6s;display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden}.card.hv{cursor:pointer;transition:transform .2s,box-shadow .25s,border-color .2s}.card.hv:hover{box-shadow:var(--shadow-h);border-color:var(--line-2);transform:translateY(-3px)}.card-b{padding:1.1rem}.art{aspect-ratio:16/9;width:100%;max-width:100%;color:var(--white);align-items:end;padding:.9rem;display:flex;position:relative;overflow:hidden}.art svg{width:100%;height:100%;position:absolute;inset:0}.art .lbl{font-family:var(--font-d);letter-spacing:.04em;text-transform:uppercase;opacity:.9;background:#0b122080;border-radius:6px;padding:.15rem .45rem;font-size:.8rem;font-weight:600;position:relative}.tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);min-width:0;padding:1.25rem}.tile.hv{cursor:pointer;transition:transform .2s,box-shadow .25s}.tile.hv:hover{box-shadow:var(--shadow-h);transform:translateY(-3px)}.avatar{background:var(--blue-soft);width:40px;height:40px;color:var(--blue);font-size:.9rem;font-weight:700;font-family:var(--font-d);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar.lg{width:72px;height:72px;font-size:1.4rem}.field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.field label{font-size:.88rem;font-weight:600}.input{border:1px solid var(--fg-3);border-radius:var(--radius-s);background:var(--card);width:100%;min-height:46px;padding:.6rem .85rem;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.input.err{border-color:var(--danger)}.field .help{color:var(--fg-3);font-size:.8rem}.field .error{color:var(--danger);font-size:.8rem;font-weight:600}textarea.input{resize:vertical;min-height:120px;line-height:1.5}.search{border:1px solid var(--fg-3);background:var(--card);border-radius:999px;align-items:center;gap:.6rem;min-width:0;min-height:46px;padding:0 1rem;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.toggle{background:var(--fg-3);border-radius:99px;flex-shrink:0;width:44px;height:26px;transition:background .2s;position:relative}.toggle:after{content:"";background:var(--white);border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle.on{background:var(--blue)}.toggle.on:after{transform:translate(18px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .toggle:not(.on):after{background:var(--bg)}}:root[data-theme=dark] .toggle:not(.on):after{background:var(--bg)}.tabs{border-bottom:1px solid var(--line);gap:.25rem;display:flex;overflow-x:auto}.tabs button{color:var(--fg-3);white-space:nowrap;border-bottom:2px solid #0000;min-height:44px;margin-bottom:-1px;padding:.7rem .9rem;font-weight:600}.tabs button.on{color:var(--fg);border-color:var(--blue)}.ring{flex-shrink:0;width:84px;height:84px}.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface) 50%,var(--surface-2) 75%);background-size:200% 100%;border-radius:8px;animation:1.3s infinite sk}@keyframes sk{to{background-position:-200% 0}}.notice{background:var(--warn-soft);color:var(--warn-fg);border:1px solid var(--warn-line);border-radius:var(--radius-s);padding:.9rem 1rem;font-size:.9rem}.stepper{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.stepper .s{color:var(--fg-3);align-items:center;gap:.4rem;font-weight:600;display:flex}.stepper .s.on{color:var(--fg)}.stepper .s i{border:2px solid var(--fg-3);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-style:normal;display:inline-flex}.stepper .s.on i{background:var(--blue-fill);border-color:var(--blue-fill);color:var(--white)}.bars{align-items:end;gap:6px;height:110px;display:flex}.bars>div{background:var(--blue-soft);border-radius:6px 6px 0 0;flex:1;min-width:0;height:100%;position:relative}.bars>div>i{background:var(--teal-fg);border-radius:6px 6px 0 0;transition:height .6s;position:absolute;inset:auto 0 0}.bars>div>b{text-align:center;color:var(--fg-3);margin-top:4px;font-size:.68rem;font-weight:500;position:absolute;top:100%;left:0;right:0}.acc{border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden}.acc+.acc{margin-top:.6rem}.acc-h{text-align:left;background:var(--card);justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:52px;padding:.9rem 1rem;font-weight:600;display:flex}.acc-h:hover{background:var(--surface)}.acc-h svg{flex-shrink:0;transition:transform .25s}.acc.open .acc-h svg{transform:rotate(180deg)}.acc-b{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.acc.open .acc-b{grid-template-rows:1fr}.acc-b>div{overflow:hidden}.acc-h:focus-visible,.tabs button:focus-visible,.lesson:focus-visible{outline-offset:-6px}.demo-pill{letter-spacing:.06em;text-transform:uppercase;background:var(--cyan-soft);color:var(--teal-fg);border:1px dashed var(--teal-fg);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.toast{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow-h);z-index:80;border-radius:12px;max-width:calc(100vw - 32px);padding:.8rem 1.1rem;font-size:.92rem;font-weight:600;animation:.3s ease-out rise;position:fixed;transform:translate(-50%)}.toasts{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:80;flex-direction:column;gap:.75rem;display:flex;position:fixed;transform:translate(-50%)}.toasts .toast{position:static;transform:none}.modal-bg{z-index:70;background:#0b12208c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--card);width:100%;max-width:520px;box-shadow:var(--shadow-h);border-radius:18px;padding:1.75rem;animation:.25s ease-out rise}.pager{justify-content:center;gap:.35rem;margin-top:2rem;display:flex}.pager button{border:1px solid var(--line);border-radius:10px;min-width:40px;height:40px;font-weight:600}.pager button.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}@media (width<=640px){.pager:has(>:nth-child(7)) button{flex:0 40px;min-width:0}}.empty{text-align:center;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--fg-2);padding:3rem 1.5rem}.tt{position:relative}.tt:hover:after,.tt:focus-visible:after{content:attr(data-tip);background:var(--ink);color:var(--on-ink);white-space:nowrap;pointer-events:none;z-index:20;border-radius:6px;padding:.35rem .6rem;font-size:.75rem;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);border-bottom:1px solid var(--line);padding:.6rem .5rem;font-size:.75rem}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem .5rem}.twrap{position:relative;overflow-x:auto}.twrap:focus-visible{outline-offset:-6px}.twrap{scroll-padding-inline:50%}.tt-wrap{display:inline-flex;position:relative}.tt-bubble{background:var(--ink);color:var(--on-ink);white-space:nowrap;z-index:20;border-radius:6px;padding:.35rem .6rem;font-size:.75rem;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.table caption{text-align:left}.hdr{top:env(safe-area-inset-top,0px);z-index:40;background:var(--bg);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid var(--line);position:sticky}.hdr-in{align-items:center;gap:1.25rem;height:64px;display:flex}.nav{gap:.25rem;margin-left:.75rem;display:flex}.nav button{color:var(--fg-2);border-radius:8px;padding:.5rem .75rem;font-size:.92rem;font-weight:600;transition:background .15s,color .15s}.nav button:hover,.nav button.on{color:var(--fg);background:var(--surface)}.hdr-r{align-items:center;gap:.5rem;margin-left:auto;display:flex}.cartn{background:var(--blue);min-width:18px;height:18px;color:var(--white);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:.68rem;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.logo{font-family:var(--font-d);letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1.05rem;font-weight:700;display:flex}.logo span b{color:var(--blue)}.burger{display:none}.drawer{z-index:60;display:flex;position:fixed;inset:0}.drawer-bg{background:#0b122080;position:absolute;inset:0}.drawer-p{background:var(--bg);width:min(86vw,340px);height:100%;box-shadow:var(--shadow-h);padding:1rem;padding-right:max(16px,env(safe-area-inset-right,0px));padding-top:calc(1rem + env(safe-area-inset-top,0px));flex-direction:column;gap:.25rem;margin-left:auto;animation:.25s ease-out slide;display:flex;position:relative;overflow:auto}.drawer-p button.nl{text-align:left;border-radius:10px;width:100%;min-height:48px;padding:.85rem .9rem;font-size:1rem;font-weight:600;display:block}.drawer-p button.nl:hover{background:var(--surface)}@keyframes slide{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}.pmenu{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-h);z-index:50;border-radius:12px;min-width:220px;padding:.4rem;position:absolute;top:calc(100% + 6px);right:0}.pmenu button{text-align:left;border-radius:8px;width:100%;min-height:40px;padding:.6rem .75rem;font-weight:500;display:block}.pmenu button:hover{background:var(--surface)}.pmenu hr{border:0;border-top:1px solid var(--line);margin:.3rem 0}.crumbs{color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.crumbs button{color:var(--fg-3)}.crumbs button:hover{color:var(--fg);text-decoration:underline}.footer{background:var(--ink);color:var(--on-ink-2);padding-block:3.5rem 2rem;font-size:.92rem}.footer .footer-h{color:var(--on-ink);margin-bottom:.8rem;font-size:1rem;font-weight:600}.footer button{color:var(--on-ink-2);text-align:left;padding:.3rem 0;display:block}.footer button:hover{color:var(--on-ink)}.fgrid{grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:2rem;display:grid}@media (width<=1024px){.fgrid{grid-template-columns:1fr 1fr}}@media (width<=860px){.nav,.hdr .btn-s.desk{display:none}.burger{display:inline-flex}}@media (width<=640px){.fgrid{grid-template-columns:1fr}}.nav a{color:var(--fg-2);border-radius:8px;padding:.5rem .75rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.nav a:hover,.nav a.on{color:var(--fg);background:var(--surface)}.drawer-p a.nl{text-align:left;border-radius:10px;width:100%;min-height:48px;padding:.85rem .9rem;font-size:1rem;font-weight:600;text-decoration:none;display:block}.drawer-p a.nl:hover{background:var(--surface)}.pmenu a{text-align:left;border-radius:8px;width:100%;min-height:40px;padding:.6rem .75rem;font-weight:500;text-decoration:none;display:block}.pmenu a:hover{background:var(--surface)}.crumbs a{color:var(--fg-3);text-decoration:none}.crumbs a:hover{color:var(--fg);text-decoration:underline}.footer a{color:var(--on-ink-2);text-align:left;padding:.3rem 0;text-decoration:none;display:block}.footer a:hover,.footer .logo span b,.sb .logo span b{color:var(--on-ink)}.skip-link{top:.75rem;left:max(16px,env(safe-area-inset-left,0px));z-index:50;position:absolute}@media (width<=860px){.hdr .skip-link{padding:.75rem max(16px,env(safe-area-inset-right,0px)) .75rem max(16px,env(safe-area-inset-left,0px));background:var(--bg);border-bottom:1px solid var(--line);top:100%;left:0;right:0}}.meta{color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.82rem;display:flex}.ttl{font-family:var(--font-d);margin:.45rem 0 .4rem;font-size:1.05rem;font-weight:600;line-height:1.3}.desc{color:var(--fg-2);font-size:.92rem}.card:has(.card-link){position:relative}.card-link{text-decoration:none}.card-link:after{content:"";position:absolute;inset:0}.sec-h{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem;display:flex}.sec-h p{max-width:40rem;margin-top:.4rem}.shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sb{background:var(--ink);color:var(--on-ink);padding:1.25rem 1rem;padding-left:max(16px,env(safe-area-inset-left,0px));flex-direction:column;gap:.25rem;height:100vh;display:flex;position:sticky;top:0;overflow:auto}.sb .logo{color:var(--on-ink);padding:.25rem .5rem 1rem}.sb .grp{letter-spacing:.1em;text-transform:uppercase;color:var(--on-ink-2);opacity:.7;padding:1rem .75rem .35rem;font-size:.7rem}.sb button.nl{text-align:left;width:100%;color:var(--on-ink-2);border-radius:10px;align-items:center;gap:.7rem;min-height:44px;padding:.65rem .75rem;font-size:.92rem;font-weight:600;transition:background .15s,color .15s;display:flex}.sb button.nl:hover{color:var(--on-ink);background:#ffffff12}.sb button.nl.on{color:var(--on-ink);background:#ffffff1f}.sb .foot{border-top:1px solid #ffffff1a;margin-top:auto;padding:.75rem}.sb :focus-visible{outline-color:var(--cyan)}.main{background:var(--surface);min-width:0}.topbar{padding:.75rem 1.5rem;padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--bg);border-bottom:1px solid var(--line);top:env(safe-area-inset-top,0px);z-index:30;align-items:center;gap:.75rem;display:flex;position:sticky}.topbar .search{flex:1;max-width:420px;min-height:42px}.content{padding:1.5rem;padding-right:max(16px,env(safe-area-inset-right,0px))}.tb{border:1px solid var(--line);border-radius:var(--radius-s) var(--radius-s) 0 0;background:var(--surface);border-bottom:0;flex-wrap:wrap;gap:.25rem;padding:.4rem;display:flex}.tb button{border-radius:6px;min-width:36px;min-height:36px;padding:.4rem .6rem;font-size:.85rem;font-weight:600}.tb button:hover{background:var(--surface-2)}@media (width<=860px){.shell{grid-template-columns:1fr}.content{padding:1rem}}.sb a.nl{text-align:left;width:100%;color:var(--on-ink-2);border-radius:10px;align-items:center;gap:.7rem;min-height:44px;padding:.65rem .75rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.sb a.nl:hover{color:var(--on-ink);background:#ffffff12}.sb a.nl.on{color:var(--on-ink);background:#ffffff1f}.drawer-p.drawer-left{z-index:60;width:min(86vw,300px);height:100%;padding-left:max(16px,env(safe-area-inset-left,0px));margin:0;transition:transform .25s;animation:none;position:fixed;inset:0;transform:translate(-105%)}.drawer-p.drawer-left.open{box-shadow:var(--shadow-h);transform:none}.card:has(.card-link:focus-visible){outline:3px solid var(--blue);outline-offset:2px}.cta-tile :focus-visible{outline-color:var(--white)}.hero{background:var(--ink);color:var(--on-ink);position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#06b6d438,#0000 70%);width:60%;height:120%;position:absolute;inset:auto -10% -40% auto}.hero-in{grid-template-columns:1.05fr .95fr;align-items:center;gap:3rem;padding-block:4.5rem;display:grid}.hero p.lead{color:var(--on-ink-2);max-width:34rem;margin-top:1.2rem;font-size:1.15rem}.hero .actions{flex-wrap:wrap;gap:.75rem;margin-top:1.8rem;display:flex}.hero-vis{min-height:360px;position:relative}.hv-card{background:var(--ink-2);color:var(--on-ink);border:1px solid #ffffff1a;border-radius:16px;padding:1rem;position:absolute;box-shadow:0 20px 50px #00000059}.hv-main{padding:1.25rem;inset:0 8% 10% 0}.hv-mini{width:46%;top:8%;right:0}.hv-mini2{width:52%;bottom:0;right:4%}.hv-row{border-top:1px solid #ffffff14;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.hv-row:first-of-type{border-top:0}.hero .prog{background:#ffffff1f}.hero .prog>i,.hero .bars>div>i{background:var(--cyan)}.sec{padding-block:3.5rem}.sec-alt{background:var(--surface)}.ico{background:var(--blue-soft);width:44px;height:44px;color:var(--blue);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ico.cy{background:var(--cyan-soft);color:var(--teal-fg)}.lesson{border-top:1px solid var(--line);background:var(--surface);align-items:center;gap:.75rem;padding:.65rem 1rem;font-size:.92rem;display:flex}.lesson:hover{background:var(--surface-2)}.lesson .t{flex:1;min-width:0}.lesson.done .t{color:var(--fg-3);text-decoration:line-through}.lesson.cur{background:var(--blue-soft);font-weight:600}.check{border:2px solid var(--fg-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;display:inline-flex}.check.on{background:var(--ok);border-color:var(--ok);color:var(--white)}.lesson .check.on{background:var(--ok-fg);border-color:var(--ok-fg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lesson .check.on{background:var(--ok);border-color:var(--ok)}}:root[data-theme=dark] .lesson .check.on{background:var(--ok);border-color:var(--ok)}.reader{grid-template-columns:minmax(0,1fr) 260px;gap:3rem;padding-block:2.5rem;display:grid}.prose{max-width:46rem;font-size:1.08rem;line-height:1.75}.prose h2{margin:2.2rem 0 .8rem;scroll-margin-top:90px;font-size:1.55rem}.prose p+p{margin-top:1.1rem}.prose .tip{background:var(--blue-soft);border-left:4px solid var(--blue);border-radius:0 var(--radius-s) var(--radius-s) 0;margin:1.4rem 0;padding:1rem 1.1rem;font-size:1rem}.prose pre{background:var(--ink);color:var(--on-ink);border-radius:var(--radius-s);font-family:var(--font-m);margin:1.4rem 0;padding:1rem 1.1rem;font-size:.86rem;line-height:1.6;overflow-x:auto}.prose .fig{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:center;color:var(--fg-2);margin:1.4rem 0;padding:1.25rem;font-size:.9rem}.toc{font-size:.9rem;position:sticky;top:90px}.toc a{border-left:2px solid var(--line);color:var(--fg-3);padding:.35rem 0 .35rem .85rem;text-decoration:none;display:block}.toc a:hover{color:var(--fg);border-color:var(--blue)}.step{gap:1rem;display:flex}.step .n{background:var(--ink);width:40px;height:40px;color:var(--on-ink);font-family:var(--font-d);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.pathseq{align-items:stretch;gap:0;padding-bottom:.5rem;display:flex;overflow-x:auto}.pathseq .ps{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);flex:0 0 220px;padding:1rem;position:relative}.pathseq .ps+.ps{margin-left:2rem}.pathseq .ps+.ps:before{content:"";background:var(--line-2);width:2rem;height:2px;position:absolute;top:50%;left:-2rem}.price{font-family:var(--font-d);font-weight:700}@media (width<=1024px){.reader{grid-template-columns:1fr}.toc{display:none}}@media (width<=860px){.hero-in{grid-template-columns:1fr;gap:2rem;padding-block:3rem}.hero-vis{min-height:300px}}@media (width<=640px){.hero .actions .btn{flex:1}.hv-mini,.hv-mini2{display:none}.hv-main{inset:0}.sec{padding-block:2.5rem}}@media (width<=900px){#course-head,#course-body{grid-template-columns:1fr!important}#course-head .card{position:static!important}#art-feat{grid-template-columns:1fr!important}}a.chip{text-decoration:none}.tile:has(.card-link){position:relative}.auth{grid-template-columns:1fr 1fr;min-height:calc(100vh - 64px);display:grid}.auth-l{background:var(--ink);color:var(--on-ink);padding:3rem;padding-left:max(2.5rem,env(safe-area-inset-left,0px));flex-direction:column;justify-content:center;gap:1.5rem;display:flex;position:relative;overflow:hidden}.auth-l:after{content:"";aspect-ratio:1;background:radial-gradient(closest-side,#2563eb59,#0000);border-radius:50%;width:70%;position:absolute;bottom:-30%;right:-20%}.auth-r{justify-content:center;align-items:center;padding:2.5rem 1rem;display:flex}.auth-card{background:var(--card);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:20px;padding:2rem}.ben{align-items:start;gap:.8rem;display:flex;position:relative}.strength{gap:4px;margin-top:.4rem;display:flex}.strength i{background:var(--line);border-radius:2px;flex:1;height:4px}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-l{padding:2rem 1.25rem;padding-left:max(16px,env(safe-area-inset-left,0px));min-height:0}.auth-l:after{display:none}}@media (width<=900px){#mentor-grid{grid-template-columns:1fr!important}#mentor-grid aside{position:static!important}}.cartrow{border-top:1px solid var(--line);grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 0;display:grid}.cartrow:first-child{border-top:0}.cartrow .art{aspect-ratio:16/10;border-radius:10px}@media (width<=640px){.cartrow{grid-template-columns:90px minmax(0,1fr)}.cartrow>:last-child{grid-column:1/-1}}@media (width<=900px){#cart-grid,#co-grid{grid-template-columns:1fr!important}#co-grid aside{position:static!important}}.empty h1,.empty h2{font-size:1.15rem;font-weight:600}.auth-title{font-family:var(--font-d);text-wrap:balance;letter-spacing:-.01em;font-size:2rem;font-weight:600;line-height:1.15}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:1rem 1.1rem}.stat .v{font-family:var(--font-d);margin-top:.3rem;font-size:1.6rem;font-weight:700;line-height:1.1}.actv{border-top:1px solid var(--line);gap:.75rem;padding:.75rem 0;display:flex}.actv:first-child{border-top:0}.player{background:var(--bg);grid-template-columns:minmax(0,1fr) 340px;min-height:100vh;display:grid}.pl-side{border-left:1px solid var(--line);background:var(--surface);height:100vh;position:sticky;top:0;overflow:auto}.video{aspect-ratio:16/9;background:var(--ink);border-radius:var(--radius);max-width:100%;color:var(--on-ink);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.video .play{background:#ffffff24;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;transition:transform .2s,background .2s;display:flex}.video .play:hover{background:#ffffff3d;transform:scale(1.06)}.video .bar{align-items:center;gap:.75rem;font-size:.8rem;display:flex;position:absolute;bottom:1rem;left:1rem;right:1rem}.video .bar .prog{background:#fff3;flex:1}.video .bar .prog>i{background:var(--cyan)}@media (width<=1024px){.player{grid-template-columns:1fr}.pl-side{border-left:0;border-top:1px solid var(--line);height:auto;position:static}}@media (width<=1100px){#dash-grid{grid-template-columns:1fr!important}}a.lesson{text-decoration:none}.cal{grid-template-columns:repeat(7,1fr);gap:4px;font-size:.78rem;display:grid}.cal>div{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;min-width:0;padding:.3rem;position:relative}.cal .ev{background:var(--blue);border-radius:3px;height:5px;position:absolute;bottom:4px;left:4px;right:4px}.editor{grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;display:grid}.editor textarea.input{border-radius:0 0 var(--radius-s) var(--radius-s);min-height:360px;font-family:var(--font-m);font-size:.9rem}.splitpv{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);min-height:360px;padding:1rem;overflow:auto}@media (width<=1024px){.editor{grid-template-columns:1fr}}@media (width<=1100px){#cr-grid{grid-template-columns:1fr!important}}a.tile{text-decoration:none}.raw-text{white-space:pre-wrap}.pv-title{font-weight:700}.hdr-in>.logo{text-decoration:none}.hdr-in>.logo svg{flex-shrink:0}@media (width<=1024px){.reader,.player{grid-template-columns:minmax(0,1fr)}}#dash-grid>*,#cr-grid>*{min-width:0}.prose.raw-text{overflow-wrap:anywhere}@media (width<=360px){.hdr-r>.btn-p{display:none}}
