:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light dark;--bg:#FAF6F2;--bg2:#F3EBE3;--ink:#2A2521;--muted:#6B625A;--faint:#978C81;--line:rgba(42,37,33,.11);--glass:rgba(255,255,255,.92);--glass-2:rgba(255,255,255,.8);--glass-brd:rgba(255,255,255,.7);--surface:#FFFFFF;--surface-2:#F6EFE8;--teal:#78716A;--teal-2:#9C948B;--indigo:#D9622C;--indigo-2:#E68654;--coral:#F2824F;--coral-soft:#FBE3D3;--accent:var(--coral);--accent-ink:#FFFFFF;--ok:#157F4F;--ok-bg:#E1F4EA;--bad:#C23B2B;--bad-bg:#FBE6E2;--amber:#E0981F;--amber-soft:#FCEDD2;--grad:linear-gradient(120deg,var(--coral),var(--indigo));--grad-soft:linear-gradient(120deg,rgba(242,130,79,.16),rgba(217,98,44,.14));--aurora-1:#F2824F;--aurora-2:#E0981F;--aurora-3:#9C948B;--aurora-op:.3;--ring-shadow:0 1px 2px rgba(42,37,33,.06),0 18px 40px -22px rgba(42,37,33,.28);--lift:0 2px 6px rgba(42,37,33,.07),0 30px 60px -30px rgba(74,48,27,.38);--head:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;--body:"Instrument Sans","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;--r:20px;--r-lg:28px;--r-sm:14px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#17130F;--bg2:#1E1813;--ink:#F3EBE3;--muted:#C4B8AC;--faint:#8C8074;--line:rgba(255,255,255,.1);--glass:rgba(32,26,20,.92);--glass-2:rgba(32,26,20,.8);--glass-brd:rgba(255,255,255,.1);--surface:#241D16;--surface-2:#2E251C;--teal:#A99D8F;--teal-2:#C4B8AC;--indigo:#F0935A;--indigo-2:#F6AB7B;--coral:#F6A26B;--coral-soft:#3D2A1A;--accent:var(--coral);--accent-ink:#1D1309;--ok:#4FBD86;--ok-bg:#133024;--bad:#EF8367;--bad-bg:#3A2017;--amber:#F0B84E;--amber-soft:#332411;--grad-soft:linear-gradient(120deg,rgba(246,162,107,.16),rgba(240,147,90,.14));--aurora-op:.38;--ring-shadow:0 1px 2px rgba(0,0,0,.5),0 22px 50px -24px rgba(0,0,0,.8);--lift:0 2px 8px rgba(0,0,0,.5),0 36px 70px -34px rgba(0,0,0,.85)}}:root[data-theme=dark]{--bg:#17130F;--bg2:#1E1813;--ink:#F3EBE3;--muted:#C4B8AC;--faint:#8C8074;--line:rgba(255,255,255,.1);--glass:rgba(32,26,20,.92);--glass-2:rgba(32,26,20,.8);--glass-brd:rgba(255,255,255,.1);--surface:#241D16;--surface-2:#2E251C;--teal:#A99D8F;--teal-2:#C4B8AC;--indigo:#F0935A;--indigo-2:#F6AB7B;--coral:#F6A26B;--coral-soft:#3D2A1A;--accent:var(--coral);--accent-ink:#1D1309;--ok:#4FBD86;--ok-bg:#133024;--bad:#EF8367;--bad-bg:#3A2017;--amber:#F0B84E;--amber-soft:#332411;--grad-soft:linear-gradient(120deg,rgba(246,162,107,.16),rgba(240,147,90,.14));--aurora-op:.38;--ring-shadow:0 1px 2px rgba(0,0,0,.5),0 22px 50px -24px rgba(0,0,0,.8);--lift:0 2px 8px rgba(0,0,0,.5),0 36px 70px -34px rgba(0,0,0,.85)}*,*:before,*:after{box-sizing:inherit}html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 86px);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;min-height:100vh;overflow-x:hidden}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:var(--aurora-op);background:radial-gradient(60vmax 50vmax at -8% -12%,color-mix(in srgb,var(--aurora-1) 70%,transparent),transparent 60%),radial-gradient(55vmax 48vmax at 108% -6%,color-mix(in srgb,var(--aurora-2) 70%,transparent),transparent 58%),radial-gradient(48vmax 44vmax at 70% 118%,color-mix(in srgb,var(--aurora-3) 55%,transparent),transparent 60%)}.aurora b{display:none}a{color:var(--indigo);text-decoration-thickness:1.5px;text-underline-offset:2px}button{font:inherit;cursor:pointer;color:inherit}:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:8px}.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:8px 14px;border-radius:8px;z-index:60}.skip:focus{left:12px}.tnum{font-variant-numeric:tabular-nums}.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line)}.bar-in{max-width:1200px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:var(--head);font-weight:700;font-size:21px;letter-spacing:-.02em}.logo .mark{width:36px;height:36px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.logo .mark img{display:block;width:22px;height:22px;object-fit:contain}.logo svg rect{fill:transparent}.who{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--muted)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--head);box-shadow:0 6px 16px -6px var(--indigo)}.who b{color:var(--ink);font-weight:600}@media (max-width:560px){.who .uname{display:none}}.shell{max-width:1200px;margin:0 auto;padding:30px 22px 48px;display:grid;grid-template-columns:minmax(0,1fr);gap:26px}.shell.noside{max-width:1060px}@media (min-width:980px){.shell:not(.noside){grid-template-columns:270px minmax(0,1fr);gap:42px}}nav.mods{display:flex;gap:4px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:thin}.mods-brand{display:none}nav.mods .mods-row{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:14.5px;white-space:nowrap;border:1px solid transparent}nav.mods .mods-row .mi{display:none}nav.mods .mods-row[aria-current=page]{background:var(--coral-soft);color:var(--coral);border-color:color-mix(in srgb,var(--coral) 35%,transparent)}@media (min-width:980px){nav.mods{flex-direction:column;overflow:visible;position:sticky;top:calc(env(safe-area-inset-top,0px) + 24px);align-self:start;padding:22px 16px;gap:2px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--ring-shadow)}.mods-brand{display:block;padding:2px 8px 18px;margin-bottom:10px;border-bottom:1px solid var(--line)}.mods-brand img{display:block;height:34px;width:auto}nav.mods .mods-row{width:100%;border-radius:12px;padding:10px 12px;justify-content:flex-start;position:relative}nav.mods .mods-row .mi{display:grid;place-items:center;flex:0 0 auto;width:26px;height:26px;color:var(--muted)}nav.mods .mods-row:hover{background:var(--surface-2)}nav.mods .mods-row[aria-current=page]{background:transparent;border-color:transparent}nav.mods .mods-row[aria-current=page]:before{content:"";position:absolute;left:-16px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--coral)}nav.mods .mods-row[aria-current=page] .t{color:var(--coral)}nav.mods .mods-row[aria-current=page] .mi{color:var(--coral)}}main{min-width:0}main:focus{outline:none}h1,h2,h3{font-family:var(--head);line-height:1.1;letter-spacing:-.025em;margin:0;text-wrap:balance}h1{font-size:clamp(32px,5.2vw,54px);font-weight:700}h2{font-size:clamp(22px,2.6vw,28px);font-weight:650;margin:40px 0 12px}h3{font-size:20px;font-weight:600;margin:24px 0 6px}.lead{font-size:clamp(18px,2vw,21px);line-height:1.55;max-width:60ch;margin:12px 0 0;color:var(--muted)}.who2{color:var(--faint);margin:8px 0 0}p,li{max-width:70ch}.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:999px;border:0;background:var(--grad);color:#fff;font-weight:650;text-decoration:none;line-height:1.2;box-shadow:0 10px 24px -12px var(--indigo);transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s,filter .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -12px var(--indigo);filter:brightness(1.05)}.btn:active{transform:translateY(0)}.btn.ghost{background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{border-color:color-mix(in srgb,var(--indigo) 50%,transparent);box-shadow:var(--ring-shadow)}.btn.coral{background:linear-gradient(120deg,var(--coral),var(--amber));box-shadow:0 10px 24px -12px var(--coral)}.btn.coral:hover{box-shadow:0 16px 30px -12px var(--coral)}.btn.small{padding:8px 16px;font-size:15px}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;filter:none;transform:none;box-shadow:none}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:28px}.card{background:var(--glass);border:1px solid var(--glass-brd);border-radius:var(--r-lg);box-shadow:var(--ring-shadow)}.auth{display:grid;grid-template-columns:minmax(0,1fr);border-radius:var(--r-lg);overflow:hidden;background:var(--glass);border:1px solid var(--glass-brd);box-shadow:var(--lift);margin-top:4vh}@media (min-width:900px){.auth{grid-template-columns:1.05fr 1fr}}.auth-hero{position:relative;padding:52px 42px;color:#fff;background:linear-gradient(145deg,#2a2017,#3d2c1c 55%,#5c3a1f);overflow:hidden}.auth-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px 340px at 110% -10%,rgba(224,152,31,.42),transparent 60%),radial-gradient(500px 320px at -10% 120%,rgba(242,130,79,.34),transparent 60%);pointer-events:none}.auth-hero>*{position:relative}.auth-wordmark{display:block;height:40px;width:auto;margin:0 0 30px;background:#fffffff2;padding:8px 14px;border-radius:12px;box-shadow:0 8px 20px -10px #00000059}.auth-hero .eyebrow{font-family:var(--head);text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:600;color:#ffffffb8;margin:0 0 18px}.auth-hero h1{color:#fff;max-width:15ch;font-size:clamp(30px,3.6vw,44px)}.auth-hero p{color:#ffffffdb;max-width:36ch;margin:16px 0 0;font-size:18px}.auth-hero .path{margin-top:40px}.auth-card{padding:52px 42px}.auth-card h2{margin:0 0 6px;font-size:28px}.f{display:block;margin:20px 0 7px;font-weight:600;font-size:15px}.txt{width:100%;font:inherit;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);transition:border-color .2s,box-shadow .2s}.txt:focus-visible{border-color:var(--indigo);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--indigo) 22%,transparent)}.err{color:var(--bad);margin:14px 0 0;font-weight:600;min-height:1.4em}details.demo{margin-top:26px;border:1px dashed var(--line);border-radius:var(--r-sm);padding:12px 16px;font-size:15px;color:var(--muted)}details.demo summary{cursor:pointer;font-weight:600;color:var(--ink)}details.demo code{background:var(--grad-soft);color:var(--ink);padding:1px 8px;border-radius:6px;font-size:14px;font-variant-numeric:tabular-nums}details.demo p{margin:10px 0 0;max-width:none;line-height:1.9}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:center;padding:40px 34px;border-radius:var(--r-lg);color:#fff;overflow:hidden;background:linear-gradient(140deg,#2a2017,#3d2c1c 60%,#6b3f1e);box-shadow:var(--lift)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(620px 360px at 108% -20%,rgba(224,152,31,.46),transparent 58%),radial-gradient(520px 340px at -10% 130%,rgba(242,130,79,.3),transparent 58%);pointer-events:none}.hero>*{position:relative}@media (min-width:780px){.hero{grid-template-columns:minmax(0,1fr) auto;padding:48px 50px}}.hero .eyebrow{font-family:var(--head);text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:600;color:#ffffffb8;margin:0 0 14px}.hero h1{color:#fff}.hero .lead{color:#ffffffd9}.hero .row{margin-top:26px}.hero .btn.ghost{background:#ffffff1f;border-color:#ffffff42;color:#fff}.ring{position:relative;width:168px;height:168px;justify-self:start}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring .track{fill:none;stroke:#ffffff2e;stroke-width:9}.ring .bar2{fill:none;stroke:url(#ringGrad);stroke-width:9;stroke-linecap:round;stroke-dasharray:276.46}.ring .in{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;line-height:1.1}.ring .in b{font-family:var(--head);font-size:38px;font-weight:700;font-variant-numeric:tabular-nums}.ring .in span{font-size:13px;opacity:.82}@media (prefers-reduced-motion:no-preference){.ring .bar2{transition:stroke-dashoffset 1.2s cubic-bezier(.2,.7,.2,1) .2s}}.sect{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:44px 0 16px}.sect h2{margin:0}.sect .count{color:var(--faint);font-size:15px;font-variant-numeric:tabular-nums}.mrows{display:grid;gap:16px}@media (min-width:720px){.mrows{grid-template-columns:repeat(2,minmax(0,1fr))}}.mrow{position:relative;display:flex;flex-direction:column;gap:16px;padding:22px 24px;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-brd);color:var(--ink);text-decoration:none;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .2s}.mrow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--grad-soft);opacity:0;transition:opacity .3s;pointer-events:none}.mrow:hover{transform:translateY(-4px);box-shadow:var(--lift);border-color:color-mix(in srgb,var(--indigo) 45%,transparent)}.mrow:hover:after{opacity:1}.mrow>*{position:relative}.mrow b{display:block;font-family:var(--head);font-size:21px;font-weight:650;letter-spacing:-.015em}.mrow .w{display:block;color:var(--muted);font-size:14.5px;margin-top:3px}.mrow .sh{display:block;font-size:15px;margin-top:8px;color:var(--ink);opacity:.86;max-width:46ch}.path,.steps{list-style:none;margin:0;padding:0;display:flex;align-items:flex-start}.step{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;color:var(--muted);text-decoration:none;font-size:13px;line-height:1.25}.step+.step:before{content:"";position:absolute;top:16px;right:50%;width:100%;height:2.5px;background:var(--line);z-index:0;border-radius:2px}.step.done+.step:before,.step.done+.step.current:before{background:var(--teal)}.dot{position:relative;z-index:1;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--surface);border:2px solid var(--line);color:var(--muted);transition:transform .2s}.step.done .dot{background:var(--teal);border-color:var(--teal);color:#2b1a08}.step.current .dot{border-color:var(--coral);color:var(--ink);box-shadow:0 0 0 5px var(--coral-soft);transform:scale(1.06)}.step.locked .dot{border-style:dashed}.step .lbl{display:block;font-weight:600;color:var(--ink)}.step.locked .lbl{color:var(--muted);font-weight:500}.step small{display:block;font-size:12px;color:var(--faint);font-weight:400;font-variant-numeric:tabular-nums}a.step:hover .dot{border-color:var(--indigo)}.auth-hero .step{color:#ffffffd1}.auth-hero .step .lbl{color:#fff}.auth-hero .dot{background:#ffffff14;border-color:#ffffff73;color:#fff}.auth-hero .step+.step:before{background:#ffffff52}.auth-hero .step.current .dot{border-color:var(--teal-2);box-shadow:0 0 0 5px #e0981f38}.auth-hero .step.done .dot{background:var(--teal-2);border-color:var(--teal-2);color:#2b1a08}.steps{margin:24px 0 4px;max-width:660px}.seg{display:inline-flex;padding:5px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);margin:26px 0}.seg a{padding:10px 22px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:16px;transition:color .2s}.seg a[aria-current=page]{background:var(--grad);color:#fff;box-shadow:0 8px 18px -10px var(--indigo)}.banner{display:inline-block;background:var(--grad-soft);color:var(--ink);padding:10px 18px;border-radius:12px;margin:0 0 24px;max-width:70ch;font-size:16px;border:1px solid var(--glass-brd)}.notes{max-width:none}.notes h2:first-child{margin-top:8px}.notes ul{padding-left:1.3em}.notes li{margin:8px 0}.notes h2.h-ex,.notes h2.h-mis,.notes h2.h-pr,.notes h2.h-case{display:flex;align-items:center;gap:12px}.notes h2.h-ex:before,.notes h2.h-mis:before,.notes h2.h-pr:before,.notes h2.h-case:before{content:"";flex:0 0 auto;width:13px;height:13px;border-radius:5px}.notes h2.h-ex:before{background:var(--amber)}.notes h2.h-mis:before{background:var(--coral)}.notes h2.h-pr:before,.notes h2.h-case:before{background:var(--teal)}.scroll{overflow-x:auto;margin:18px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}table{border-collapse:collapse;width:100%;min-width:520px;font-size:16px}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}th{font-family:var(--head);font-weight:600;font-size:15px;background:var(--surface-2)}tr:last-child td{border-bottom:0}.callout{background:var(--amber-soft);color:var(--ink);padding:16px 20px;border-radius:var(--r-sm);margin:22px 0;max-width:70ch;border:1px solid color-mix(in srgb,var(--amber) 35%,transparent)}.example{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px 22px;margin:14px 0;max-width:72ch;box-shadow:var(--ring-shadow)}.exercise{background:var(--grad-soft);border:1px solid var(--glass-brd);border-radius:var(--r);padding:8px 22px 16px;margin:14px 0;max-width:72ch}.exercise details{margin-top:8px}.exercise summary{cursor:pointer;font-weight:650;color:var(--indigo);padding:6px 0}.exercise details[open] summary{margin-bottom:6px}.lesson-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:22px 0 18px}.lesson-head .view-toggle{display:inline-flex;padding:4px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);margin-left:auto}.lesson-head .view-toggle button{padding:8px 16px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:14.5px}.lesson-head .view-toggle button.on{background:var(--surface);color:var(--ink);box-shadow:var(--ring-shadow)}.stage[data-mode=notes] .ideck,.stage[data-mode=slides] .inotes{display:none}.ideck{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:1px solid var(--glass-brd);box-shadow:var(--lift)}.ideck-top{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line);background:var(--glass)}.ideck-top .k{font-family:var(--head);font-weight:650;font-size:14px;letter-spacing:.02em}.ideck-top .prog{flex:1 1 auto;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;max-width:340px}.ideck-top .prog i{display:block;height:100%;width:0;background:var(--grad);border-radius:99px}@media (prefers-reduced-motion:no-preference){.ideck-top .prog i{transition:width .45s cubic-bezier(.2,.7,.2,1)}}.ideck-top .fs{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center}.ideck-top .fs:hover{border-color:var(--indigo)}.ideck-stage{position:relative;min-height:clamp(380px,56vh,560px)}.islide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(26px,4.5vw,56px);overflow-y:auto;opacity:0;transform:translateY(16px);visibility:hidden;pointer-events:none;background:var(--surface-2)}.islide.cover{justify-content:center}.islide.on{opacity:1;transform:none;visibility:visible;pointer-events:auto}@media (prefers-reduced-motion:no-preference){.islide{transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}}.islide-in{position:relative;width:100%;max-width:820px;margin:0 auto}.islide .kicker{display:inline-flex;align-items:center;gap:9px;font-family:var(--head);font-weight:650;font-size:clamp(12px,1.4vw,14px);letter-spacing:.14em;text-transform:uppercase;color:var(--indigo);margin:0 0 16px}.islide .kicker:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--grad)}.islide h2.s-head{font-family:var(--head);font-weight:700;letter-spacing:-.03em;line-height:1.06;font-size:clamp(28px,4.4vw,48px);margin:0 0 20px;max-width:20ch;color:var(--ink)}.islide ul{list-style:none;margin:14px 0 0;padding:0;max-width:60ch}.islide ul li{position:relative;padding-left:38px;margin:0 0 18px;font-size:clamp(17px,2vw,22px);line-height:1.42;max-width:none}.islide ul li:before{content:"";position:absolute;left:0;top:.62em;width:15px;height:15px;border-radius:5px;background:var(--grad);transform:translateY(-50%)}.islide ul li b{font-weight:650}.islide p{font-size:clamp(17px,2vw,21px);line-height:1.5;max-width:58ch;color:var(--ink)}.islide p i{color:currentColor;opacity:.72}.islide .example,.islide .exercise,.islide .callout{font-size:clamp(15px,1.7vw,18px);max-width:66ch;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 20px;box-shadow:var(--ring-shadow)}.islide .example p,.islide .exercise p{font-size:inherit}.islide .exercise{background:var(--grad-soft);border-color:var(--glass-brd)}.islide .exercise summary{color:var(--indigo);font-weight:650;cursor:pointer}.islide .islide-in:before{content:attr(data-num);position:absolute;right:clamp(-6px,1.5vw,20px);top:clamp(-6px,-1vw,0px);font-family:var(--head);font-weight:700;font-size:clamp(90px,13vw,170px);line-height:1;color:var(--indigo);opacity:.09;pointer-events:none;z-index:0;letter-spacing:-.05em}.islide .islide-in>*{position:relative;z-index:1}.islide:not([data-kind]) .kicker,.islide[data-kind=""] .kicker{color:var(--indigo)}.islide[data-kind]{color:#fff}.islide[data-kind]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.islide[data-kind] .islide-in:before{color:#fff;opacity:.1}.islide[data-kind] .kicker{color:#fffc}.islide[data-kind] .kicker:before{background:#fff}.islide[data-kind] h2.s-head{color:#fff}.islide[data-kind] p{color:#ffffffeb}.islide[data-kind] ul li:before{background:#fff}.islide[data-kind] .example,.islide[data-kind] .exercise,.islide[data-kind] .callout{background:#0a0e1c47;border-color:#ffffff38;color:#fff;box-shadow:none}.islide[data-kind] .exercise summary{color:#fff}.islide[data-kind=ex]{background:linear-gradient(145deg,#6b4a0c,#8a5f10 55%,#a8740f)}.islide[data-kind=ex]:after{background:radial-gradient(520px 320px at 105% -10%,rgba(246,185,79,.45),transparent 60%)}.islide[data-kind=mis]{background:linear-gradient(145deg,#5c1620,#7a1c29 55%,#99222f)}.islide[data-kind=mis]:after{background:radial-gradient(520px 320px at 105% -10%,rgba(251,113,133,.42),transparent 60%)}.islide[data-kind=pr],.islide[data-kind=case]{background:linear-gradient(145deg,#3d4a1e,#52611f 55%,#6b7a22)}.islide[data-kind=pr]:after,.islide[data-kind=case]:after{background:radial-gradient(520px 320px at 105% -10%,rgba(168,201,79,.38),transparent 60%)}.islide.cover{background:linear-gradient(140deg,#2a2017,#3d2c1c 60%,#6b3f1e);color:#fff;justify-content:center}.islide.cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(560px 340px at 108% -10%,rgba(224,152,31,.42),transparent 58%),radial-gradient(460px 300px at -10% 120%,rgba(242,130,79,.3),transparent 58%);pointer-events:none}.islide.cover .islide-in{position:relative}.islide.cover .islide-in:before{content:none}.islide.cover .kicker{color:#ffffffc7}.islide.cover h2.s-head{color:#fff;font-size:clamp(32px,5.5vw,58px);max-width:16ch}.islide.cover p{color:#ffffffe6}.islide.cover .cover-steps{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.islide.cover .cover-steps span{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff;padding:8px 16px;border-radius:999px;font-weight:600;font-size:clamp(13px,1.6vw,16px)}.ideck-foot{display:flex;align-items:center;gap:14px;padding:16px 22px;border-top:1px solid var(--line);background:var(--glass)}.ideck-dots{flex:1 1 auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.ideck-dots b{width:10px;height:10px;border-radius:50%;background:var(--line);border:0;padding:0;cursor:pointer;transition:transform .2s,background .2s}.ideck-dots b.on{background:var(--indigo);transform:scale(1.3)}.ideck-dots b.seen{background:var(--muted)}.ideck-count{color:var(--muted);font-size:14px;min-width:54px;text-align:center;font-variant-numeric:tabular-nums}@media (max-width:600px){.ideck-dots{display:none}.ideck-foot{justify-content:space-between}}.sheet{background:var(--glass);border:1px solid var(--glass-brd);border-radius:var(--r-lg);padding:28px 26px 30px;max-width:800px;box-shadow:var(--lift)}@media (min-width:640px){.sheet{padding:36px 40px 38px}}.ticks{display:flex;gap:6px;margin:0 0 22px}.ticks i{flex:1;height:7px;border-radius:99px;background:var(--line);transition:background .3s}.ticks i.cur{background:var(--coral)}.ticks i.ok{background:var(--ok)}.ticks i.bad{background:var(--bad)}.qn{margin:0;color:var(--muted);font-size:15px;font-variant-numeric:tabular-nums}.q{font-family:var(--head);font-size:clamp(22px,3vw,30px);line-height:1.22;letter-spacing:-.02em;margin:8px 0 22px;font-weight:650;padding:0}fieldset{border:0;padding:0;margin:0;min-width:0}.opt{display:block;position:relative;margin:0 0 12px}.opt input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;cursor:pointer}.opt .face{display:flex;gap:14px;align-items:center;padding:16px 18px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);transition:border-color .2s,background .2s,transform .15s}.opt:hover .face{border-color:var(--indigo);transform:translate(2px)}.bubble{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:2px solid var(--muted);display:grid;place-items:center;font-size:14px;font-weight:700;color:var(--muted);background:var(--surface);transition:all .2s}.opt input:checked+.face{border-color:var(--indigo);background:var(--grad-soft)}.opt input:checked+.face .bubble{background:var(--grad);border-color:transparent;color:#fff}.opt input:focus-visible+.face{outline:3px solid var(--coral);outline-offset:2px}.opt.locked input{cursor:default}.opt.locked:hover .face{transform:none}.opt.right .face{background:var(--ok-bg);border-color:var(--ok)}.opt.right .bubble{background:var(--ok);border-color:var(--ok);color:#fff}.opt.wrong .face{background:var(--bad-bg);border-color:var(--bad)}.opt.wrong .bubble{background:var(--bad);border-color:var(--bad);color:#fff}.fb{margin:20px 0 0;padding:16px 20px;border-radius:var(--r-sm)}.fb.ok{background:var(--ok-bg);border:1px solid var(--ok)}.fb.bad{background:var(--bad-bg);border:1px solid var(--bad)}.fb b{display:block;font-family:var(--head);font-size:18px;margin-bottom:3px}.result{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:center;max-width:800px;padding:34px;border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-brd);box-shadow:var(--lift)}@media (min-width:640px){.result{grid-template-columns:auto minmax(0,1fr);gap:36px}}.sring{position:relative;width:158px;height:158px}.sring svg{width:100%;height:100%;transform:rotate(-90deg)}.sring .track{fill:none;stroke:var(--line);stroke-width:9}.sring .bar2{fill:none;stroke-width:9;stroke-linecap:round;stroke-dasharray:276.46}.sring.pass .bar2{stroke:var(--ok)}.sring.fail .bar2{stroke:var(--bad)}.sring .in{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;line-height:1}.sring .in b{font-family:var(--head);font-size:38px;font-weight:700;font-variant-numeric:tabular-nums}.sring .in span{font-size:13px;color:var(--muted);margin-top:4px}@media (prefers-reduced-motion:no-preference){.sring .bar2{transition:stroke-dashoffset 1s cubic-bezier(.2,.7,.2,1)}}.result h1{font-size:clamp(26px,3.6vw,38px)}.miss{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:16px 20px;margin:12px 0;max-width:800px}.miss p{margin:6px 0;max-width:none}.pill{display:inline-block;padding:3px 11px;border-radius:99px;font-size:14px;font-weight:600;background:var(--surface-2);color:var(--muted);margin:2px 4px 2px 0;white-space:nowrap;font-variant-numeric:tabular-nums}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.bad{background:var(--bad-bg);color:var(--bad)}footer.foot{max-width:1200px;margin:0 auto;padding:0 22px 40px;color:var(--faint);font-size:14px}footer.foot p{max-width:80ch;margin:0 0 6px}@media print{.bar,nav.mods,.seg,.steps,.row,footer.foot,.lesson-head,.ideck-foot,.ideck-top{display:none}body{background:#fff;color:#000}.islide{position:static;opacity:1;visibility:visible;transform:none;page-break-after:always}}.present-cta{display:inline-flex;align-items:center;gap:8px}.deck{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.deck[hidden]{display:none!important}.deck-bar{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--glass)}.deck-bar .d-title{font-family:var(--head);font-weight:700;font-size:16px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deck-bar .d-stage{color:var(--muted);font-size:14px;white-space:nowrap}.deck-bar .spacer{flex:1 1 auto}.deck-prog{flex:1 1 auto;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden;max-width:360px}.deck-prog i{display:block;height:100%;width:0;background:var(--grad);border-radius:99px}@media (prefers-reduced-motion:no-preference){.deck-prog i{transition:width .4s cubic-bezier(.2,.7,.2,1)}}.deck-x{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;font-size:22px;line-height:1}.deck-x:hover{border-color:var(--indigo)}.deck-stage{flex:1 1 auto;position:relative;overflow:hidden}.slide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(28px,6vw,80px);overflow-y:auto;opacity:0;transform:translateY(16px);pointer-events:none;visibility:hidden;background:var(--surface-2)}.slide.cover{justify-content:center}.slide.on{opacity:1;transform:none;pointer-events:auto;visibility:visible}@media (prefers-reduced-motion:no-preference){.slide{transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}}.slide-in{position:relative;width:100%;max-width:1000px;margin:0 auto}.slide .kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--head);font-weight:650;font-size:clamp(13px,1.6vw,16px);letter-spacing:.14em;text-transform:uppercase;color:var(--indigo);margin:0 0 18px}.slide .kicker:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--grad)}.slide h2.s-head{font-family:var(--head);font-weight:700;letter-spacing:-.03em;line-height:1.05;font-size:clamp(32px,6vw,68px);margin:0 0 24px;max-width:19ch;color:var(--ink)}.slide ul{list-style:none;margin:16px 0 0;padding:0;max-width:62ch}.slide ul li{position:relative;padding-left:42px;margin:0 0 22px;font-size:clamp(19px,2.6vw,28px);line-height:1.4;max-width:none}.slide ul li:before{content:"";position:absolute;left:0;top:.55em;width:17px;height:17px;border-radius:6px;background:var(--grad);transform:translateY(-50%)}.slide ul li b{font-weight:650}.slide p{font-size:clamp(19px,2.6vw,27px);line-height:1.5;max-width:60ch;color:var(--ink)}.slide p i{color:currentColor;opacity:.72}.slide .example,.slide .exercise,.slide .callout{font-size:clamp(16px,2vw,21px);max-width:68ch;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 24px;box-shadow:var(--ring-shadow)}.slide .example p,.slide .exercise p{font-size:inherit}.slide .exercise{background:var(--grad-soft);border-color:var(--glass-brd)}.slide .exercise summary{color:var(--indigo);font-weight:650;cursor:pointer}.slide .slide-in:before{content:attr(data-num);position:absolute;right:clamp(-10px,2.4vw,30px);top:clamp(-10px,-1.5vw,0px);font-family:var(--head);font-weight:700;font-size:clamp(130px,17vw,240px);line-height:1;color:var(--indigo);opacity:.09;pointer-events:none;z-index:0;letter-spacing:-.05em}.slide .slide-in>*{position:relative;z-index:1}.slide[data-kind]{color:#fff}.slide[data-kind]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slide[data-kind] .slide-in:before{color:#fff;opacity:.1}.slide[data-kind] .kicker{color:#fffc}.slide[data-kind] .kicker:before{background:#fff}.slide[data-kind] h2.s-head{color:#fff}.slide[data-kind] p{color:#ffffffeb}.slide[data-kind] ul li:before{background:#fff}.slide[data-kind] .example,.slide[data-kind] .exercise,.slide[data-kind] .callout{background:#0a0e1c47;border-color:#ffffff38;color:#fff;box-shadow:none}.slide[data-kind] .exercise summary{color:#fff}.slide[data-kind=ex]{background:linear-gradient(145deg,#6b4a0c,#8a5f10 55%,#a8740f)}.slide[data-kind=ex]:after{background:radial-gradient(640px 380px at 108% -10%,rgba(246,185,79,.45),transparent 60%)}.slide[data-kind=mis]{background:linear-gradient(145deg,#5c1620,#7a1c29 55%,#99222f)}.slide[data-kind=mis]:after{background:radial-gradient(640px 380px at 108% -10%,rgba(251,113,133,.42),transparent 60%)}.slide[data-kind=pr],.slide[data-kind=case]{background:linear-gradient(145deg,#3d4a1e,#52611f 55%,#6b7a22)}.slide[data-kind=pr]:after,.slide[data-kind=case]:after{background:radial-gradient(640px 380px at 108% -10%,rgba(168,201,79,.38),transparent 60%)}.slide.cover{background:linear-gradient(140deg,#2a2017,#3d2c1c 60%,#6b3f1e);color:#fff}.slide.cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(640px 380px at 108% -10%,rgba(224,152,31,.42),transparent 58%),radial-gradient(520px 340px at -10% 120%,rgba(242,130,79,.3),transparent 58%);pointer-events:none}.slide.cover .slide-in{position:relative;z-index:1}.slide.cover .slide-in:before{content:none}.slide.cover .kicker{color:#ffffffc7}.slide.cover h2.s-head{color:#fff;font-size:clamp(36px,7vw,76px);max-width:16ch}.slide.cover p{color:#ffffffeb}.slide.cover .cover-steps{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.slide.cover .cover-steps span{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);color:#fff;padding:8px 16px;border-radius:999px;font-weight:600;font-size:clamp(14px,1.8vw,17px)}.deck-foot{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:18px 24px;border-top:1px solid var(--line);background:var(--glass)}.deck-dots{flex:1 1 auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.deck-dots b{width:10px;height:10px;border-radius:50%;background:var(--line);border:0;padding:0;cursor:pointer}.deck-dots b.on{background:var(--indigo);transform:scale(1.3)}.deck-dots b.seen{background:var(--muted)}.deck-count{color:var(--muted);font-size:14px;min-width:54px;text-align:center;font-variant-numeric:tabular-nums}@media (max-width:560px){.deck-bar .d-stage,.deck-dots{display:none}.deck-foot{justify-content:space-between}}.btn.big{padding:15px 28px;font-size:17px}.hero-next{color:#ffffffd1;margin:16px 0 0;font-size:15.5px}.hero-next b{color:#fff}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.stat{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--ring-shadow)}.stat-ic{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center}.stat-ic.coral{background:var(--coral-soft);color:var(--coral)}.stat-ic.teal{background:color-mix(in srgb,var(--teal) 18%,var(--surface-2));color:var(--teal)}.stat-ic.ok{background:var(--ok-bg);color:var(--ok)}.stat b{display:block;font-family:var(--head);font-size:26px;font-weight:700;line-height:1}.stat b i{font-style:normal;font-size:15px;color:var(--faint);font-weight:600}.stat span{display:block;color:var(--muted);font-size:13.5px;margin-top:5px}@media (max-width:520px){.stats{grid-template-columns:1fr;gap:10px}.stat{padding:13px 16px}}.mcard{position:relative;display:flex;align-items:flex-start;gap:16px;padding:22px 24px 20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:var(--ring-shadow);overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .2s}.mcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad);opacity:.9}.mcard.done:before{background:var(--ok)}.mcard.new:before{opacity:.35}.mcard:hover{transform:translateY(-4px);box-shadow:var(--lift);border-color:color-mix(in srgb,var(--coral) 42%,transparent)}.mcard-ic{flex:0 0 auto;width:52px;height:52px;border-radius:14px;background:var(--coral-soft);color:var(--coral);display:grid;place-items:center}.mcard.done .mcard-ic{background:var(--ok-bg);color:var(--ok)}.mcard-body{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:9px}.mcard-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;padding:4px 11px;border-radius:999px;background:var(--surface-2);color:var(--muted);letter-spacing:.01em}.chip.prog{background:var(--grad-soft);color:var(--indigo)}.chip.done{background:var(--ok-bg);color:var(--ok)}.mcard-go{display:inline-flex;align-items:center;gap:5px;font-weight:650;color:var(--coral);font-size:14.5px;opacity:0;transform:translate(-4px);transition:opacity .2s,transform .2s}.mcard:hover .mcard-go{opacity:1;transform:none}.mcard b{font-family:var(--head);font-size:21px;font-weight:650;letter-spacing:-.015em;margin-top:2px}.mcard .sh{color:var(--muted);font-size:14.5px;line-height:1.4;max-width:42ch}.mprog{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin-top:6px}.mprog i{display:block;height:100%;border-radius:99px;background:var(--grad)}.mcard.done .mprog i{background:var(--ok)}@media (prefers-reduced-motion:no-preference){.mprog i{transition:width .7s cubic-bezier(.2,.7,.2,1)}}.mcard .mmeta{color:var(--faint);font-size:13px;margin-top:3px}.ltop{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:2px 0 18px}.ltop-back{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--ink);text-decoration:none}.ltop-back:hover{border-color:var(--indigo)}.ltop-id{display:flex;flex-direction:column;line-height:1.2;min-width:0}.ltop-id b{font-family:var(--head);font-weight:650;font-size:18px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ltop-id span{color:var(--muted);font-size:13.5px}.chips-mini{display:flex;gap:6px}.cm{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.cm a{color:inherit;text-decoration:none;width:100%;height:100%;display:grid;place-items:center}.cm.done{background:var(--teal);border-color:var(--teal);color:#2b1a08}.cm.cur{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 0 0 3px var(--coral-soft)}.cm.lock{opacity:.5}.view-toggle{display:inline-flex;padding:4px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);margin-left:auto}.view-toggle button{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-weight:650;font-size:14.5px}.view-toggle button.on{background:var(--grad);color:#fff;box-shadow:0 6px 14px -8px var(--indigo)}body.imm .shell:not(.noside){grid-template-columns:minmax(0,1fr)!important}body.imm nav.mods{display:none!important}body.imm .lfull{display:none}body.imm .ideck{box-shadow:var(--lift)}body.imm .ideck-stage{min-height:clamp(420px,64vh,680px)}body.imm .islide.cover h2.s-head{font-size:clamp(34px,5vw,60px)}.lfull{animation:none}@media (hover:none){.btn,.view-toggle button{min-height:46px}.ideck-dots b,.deck-dots b{width:14px;height:14px}.opt .face{padding:18px}}@media (max-width:620px){.ltop{gap:10px}.ltop-id b{font-size:16px}.chips-mini{order:3;width:100%;justify-content:flex-start}.view-toggle{margin-left:auto}.ideck-foot{flex-wrap:wrap}.mcard{padding:18px 18px 16px}.hero{padding:30px 22px}}
