.theme-toggle{display:flex;align-items:center;gap:0;min-inline-size:0;margin:0;padding:3px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-muted)}.theme-toggle__option{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid transparent;border-radius:var(--radius-full);color:var(--text);opacity:.55;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),opacity .15s var(--ease)}.theme-toggle__option:hover{opacity:1}.theme-toggle__option:has(:checked){background:var(--ink-blue);color:var(--on-brand);border-color:var(--ink-blue);opacity:1;box-shadow:var(--shadow-sm)}.theme-toggle__option:has(:focus-visible){outline:3px solid var(--ink-magenta);outline-offset:2px;z-index:1}.layout{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.site-header__inner{display:flex;align-items:center;gap:var(--space-4);min-height:var(--header-height)}.brand{margin-right:auto;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);text-decoration:none;font-size:var(--text-lg);white-space:nowrap}.brand__mark{width:22px;height:22px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--ink-blue),var(--ink-magenta))}.brand__logo{height:28px;width:auto;max-width:160px;object-fit:contain}.brand__text strong{font-weight:800}.site-header__toggle{display:none;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--text-lg);width:44px;height:44px;cursor:pointer}.site-nav{display:flex;align-items:center;gap:var(--space-6)}.site-nav ul{display:flex;align-items:center;gap:var(--space-4);list-style:none;margin:0;padding:0}.site-nav>ul a{color:var(--text);text-decoration:none;font-size:var(--text-sm);font-weight:500;padding:var(--space-2) 0;border-bottom:2px solid transparent}.site-nav>ul a:hover,.site-nav>ul a.is-active{color:var(--ink-blue);border-bottom-color:var(--ink-blue)}.site-nav__actions{display:flex;align-items:center;gap:var(--space-2);padding-left:var(--space-3);margin-left:var(--space-1);border-left:1px solid var(--border)}.site-nav__admin{border-color:var(--ink-magenta);color:var(--ink-magenta)}.site-nav__admin:hover:not(:disabled){background:var(--ink-magenta-050);border-color:var(--ink-magenta);color:var(--ink-magenta)}.site-nav__logout{background:transparent;color:var(--text-muted);border-color:transparent}.site-nav__logout:hover:not(:disabled){background:var(--ink-100);color:var(--ink-error)}@media(max-width:900px){.site-header__inner{gap:var(--space-2)}.site-header__toggle{display:inline-flex;align-items:center;justify-content:center;order:1}.site-nav{display:none;position:absolute;inset:var(--header-height) 0 auto 0;flex-direction:column;align-items:stretch;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.site-nav--open{display:flex}.site-nav ul{flex-direction:column;align-items:stretch;gap:0}.site-nav li{border-bottom:1px solid var(--border)}.site-nav a{display:block;padding:var(--space-3) 0;border-bottom:none}.site-nav__actions{flex-wrap:wrap;padding-left:0;margin-left:0;border-left:0;border-top:1px solid var(--border);padding-top:var(--space-3)}.site-nav__actions>*{flex:1 1 140px}.site-nav__logout{border-color:var(--border)}.site-nav__logout:after{content:"Salir";font-weight:600}.btn--icon.site-nav__logout{width:auto;min-width:0;padding:var(--space-2) var(--space-4);gap:var(--space-2)}}.site-footer{position:relative;margin-top:var(--space-24);border-top:1px solid var(--border);background:var(--surface-muted);padding-top:var(--space-12)}.site-footer:before{content:"";position:absolute;inset:-1px 0 auto;height:2px;background:linear-gradient(90deg,var(--ink-blue),var(--ink-magenta),var(--ink-teal))}.site-footer__inner{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:var(--space-8)}@media(max-width:820px){.site-footer__inner{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.site-footer__inner{grid-template-columns:1fr}}.site-footer__brand{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin-bottom:var(--space-2)}.site-footer__brand:before{content:"";width:1.1rem;height:1.1rem;border-radius:5px;background:linear-gradient(135deg,var(--ink-blue),var(--ink-magenta))}.site-footer__tagline{max-width:34ch;font-size:var(--text-sm)}.site-footer h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-3)}.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.site-footer a{color:var(--text);text-decoration:none;font-size:var(--text-sm)}.site-footer a:hover{color:var(--ink-blue);text-decoration:underline}.site-footer__legal{border-top:1px solid var(--border);margin-top:var(--space-8);padding-block:var(--space-4);font-size:var(--text-xs)}.cookie-banner{position:fixed;inset:auto var(--space-4) var(--space-4) var(--space-4);z-index:60;max-width:560px;margin-inline:auto;padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.cookie-banner p{font-size:var(--text-sm);margin-bottom:var(--space-3)}.cookie-banner__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.cookie-banner__actions .btn{flex:1 1 auto}.loading{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-8) 0;text-align:center}.empty-state{text-align:center;padding:var(--space-12) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--text-muted);background:var(--surface-muted)}.empty-state h3{color:var(--text);margin-bottom:var(--space-2)}.progress{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.progress__track{flex:1;height:6px;border-radius:var(--radius-full);background:var(--ink-100);overflow:hidden}.progress__fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--ink-blue),var(--ink-teal));transition:width .3s ease}.progress__value{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);min-width:3ch;text-align:right}.course-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.course-card:hover,.course-card:focus-within{border-color:var(--ink-blue);box-shadow:var(--shadow);transform:translateY(-2px)}@media(prefers-reduced-motion:reduce){.course-card:hover,.course-card:focus-within{transform:none}}.course-card--soon{opacity:.9}.course-card__cover{position:relative;aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--ink-blue),var(--ink-magenta));display:grid;place-items:center;overflow:hidden}.course-cover{width:100%;height:100%;display:block}.course-card__cover:has(.course-cover):after{display:none}.course-card__cover:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgb(255 255 255 / .09) 1px,transparent 1px),linear-gradient(to bottom,rgb(255 255 255 / .09) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:linear-gradient(135deg,#000,transparent 70%);mask-image:linear-gradient(135deg,#000,transparent 70%)}.course-card__cover img{position:relative;z-index:1}.course-card__cover:has(img):after{display:none}.course-card__cover img{width:100%;height:100%;object-fit:cover}.course-card__placeholder{font-size:var(--text-3xl);font-weight:800;color:#ffffffd9;letter-spacing:.05em}.course-card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.course-card__badges:empty{display:none}.course-card__title{font-size:var(--text-lg);margin:0}.course-card__title a{color:var(--text);text-decoration:none}.course-card__title a:hover{color:var(--ink-blue)}.course-card__title a:after{content:"";position:absolute;inset:0}.course-card{position:relative}.course-card__description{font-size:var(--text-sm);color:var(--text-muted);margin:0;flex:1}.course-card__meta{margin:var(--space-1) 0 0}.course-card__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border);font-size:var(--text-xs)}.course-card__rating{color:var(--ink-warn);font-weight:600}.course-card__members{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--ink-magenta);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.hero{position:relative;isolation:isolate;background:radial-gradient(900px 420px at 12% -10%,rgb(30 58 138 / .14),transparent 60%),radial-gradient(700px 380px at 88% 0%,rgb(219 39 119 / .12),transparent 60%);padding-block:var(--space-24) var(--space-16);border-bottom:1px solid var(--border);overflow:hidden}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);-webkit-mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 75%)}.hero__inner{max-width:860px}@media(min-width:1100px){.hero__inner{max-width:none;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;column-gap:var(--space-12)}.hero__proof{grid-column:1 / -1}}.hero__eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border:1px solid var(--border);border-radius:var(--radius-full);background:color-mix(in srgb,var(--surface) 70%,transparent);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-blue);margin-bottom:var(--space-4)}.hero__eyebrow-mark{flex:none;width:16px;height:16px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--ink-blue),var(--ink-magenta))}.hero__visual{display:none;margin:0}@media(min-width:1100px){.hero__visual{display:block}}.agent-loop{width:100%;height:auto;overflow:visible}.agent-loop__glow-core{stop-color:var(--ink-magenta);stop-opacity:.2}.agent-loop__glow-edge{stop-color:var(--ink-magenta);stop-opacity:0}.agent-loop__orbit{fill:none;stroke:var(--border);stroke-dasharray:2 8}.agent-loop__spoke{--accent: var(--ink-blue);--cycle: 9s}.agent-loop__spoke:nth-of-type(2n){--accent: var(--ink-magenta)}.agent-loop__edge{stroke:var(--accent);stroke-opacity:.35;stroke-width:1.5;stroke-dasharray:4 7}.agent-loop__beam{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:20 110;stroke-dashoffset:24;animation:agent-loop-beam var(--cycle) var(--delay) infinite}.agent-loop__node{fill:var(--surface);stroke:var(--border);animation:agent-loop-node var(--cycle) var(--delay) infinite}.agent-loop__dot{fill:var(--accent);transform-box:fill-box;transform-origin:center;animation:agent-loop-dot var(--cycle) var(--delay) infinite}.agent-loop__label,.agent-loop__caption{font-family:var(--font-mono);font-size:12px}.agent-loop__label{fill:var(--text)}.agent-loop__caption{fill:var(--text-muted);letter-spacing:.04em}.agent-loop__mark-start{stop-color:var(--ink-blue)}.agent-loop__mark-end{stop-color:var(--ink-magenta)}.agent-loop__ripple{fill:none;stroke:var(--ink-magenta);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:agent-loop-ripple 1.5s ease-out infinite}@keyframes agent-loop-beam{0%{stroke-dashoffset:24;animation-timing-function:cubic-bezier(.45,0,.55,1)}6%,10%{stroke-dashoffset:-104;animation-timing-function:cubic-bezier(.45,0,.55,1)}16%,to{stroke-dashoffset:24}}@keyframes agent-loop-node{0%,4%{stroke:var(--border)}6%,12%{stroke:var(--accent)}20%,to{stroke:var(--border)}}@keyframes agent-loop-dot{0%,4%,14%,to{transform:scale(1)}7%{transform:scale(1.5)}}@keyframes agent-loop-ripple{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(1.4)}}@media(prefers-reduced-motion:reduce){.agent-loop__beam,.agent-loop__node,.agent-loop__dot,.agent-loop__ripple{animation:none}}.hero h1{max-width:18ch;font-size:clamp(2.25rem,6vw,3.5rem)}@media(min-width:900px){.hero h1{max-width:22ch}}.hero__accent{background:linear-gradient(120deg,var(--ink-blue),var(--ink-magenta));-webkit-background-clip:text;background-clip:text;color:transparent}.hero__lead{font-size:var(--text-lg);color:var(--text-muted);max-width:62ch;margin-bottom:var(--space-8)}.hero__actions{margin-bottom:var(--space-12)}.hero__proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-6);list-style:none;margin:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-sm)}.hero__proof li{display:flex;flex-direction:column;gap:var(--space-1)}.hero__proof li+li{position:relative}@media(min-width:760px){.hero__proof li+li{padding-left:var(--space-6);border-left:1px solid var(--border)}}.hero__proof strong{font-size:var(--text-3xl);font-weight:800;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;background:linear-gradient(120deg,var(--ink-blue),var(--ink-magenta));-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.12em}.hero__proof span{font-size:var(--text-sm);color:var(--text-muted)}.section-header{position:relative;margin-bottom:var(--space-8);max-width:60ch;padding-left:var(--space-4)}.section-header:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:var(--radius-full);background:linear-gradient(180deg,var(--ink-blue),var(--ink-magenta))}.section-header h1,.section-header h2{margin-bottom:var(--space-2)}.section-header>p{margin-bottom:0;color:var(--text-muted)}@media(max-width:600px){.section-header{padding-left:var(--space-3)}}.feature-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap;padding:var(--space-8);border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(120deg,var(--ink-blue-050),var(--ink-magenta-050))}.feature-banner__title{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-2xl)}.feature-banner__meta{font-size:var(--text-sm);margin:0}.help-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.help-card{display:block;position:relative;padding:var(--space-6);padding-right:var(--space-12);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--text);background:var(--surface);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.help-card:hover{border-color:var(--ink-blue);box-shadow:var(--shadow)}.help-card:after{content:"→";position:absolute;right:var(--space-6);top:var(--space-6);color:var(--ink-blue);font-size:var(--text-lg);transition:transform .15s var(--ease)}.help-card:hover:after{transform:translate(3px)}@media(prefers-reduced-motion:reduce){.help-card:after{transition:none}.help-card:hover:after{transform:none}}.help-card h3{font-size:var(--text-base);margin-bottom:var(--space-2)}.help-card p{font-size:var(--text-sm);margin:0}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:var(--space-6);align-items:stretch;padding-top:var(--space-3)}@media(min-width:1000px){.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr))}}.plan-card{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.plan-card:hover{border-color:var(--ink-blue);box-shadow:var(--shadow)}.plan-card .btn{margin-top:auto}.plan-card--highlight{border-color:var(--ink-magenta);box-shadow:var(--shadow);position:relative}.plan-card--highlight:hover{border-color:var(--ink-magenta);box-shadow:var(--shadow-lg)}.plan-card--highlight:before{content:"Más elegido";position:absolute;top:calc(-1 * var(--space-3));left:var(--space-6);padding:2px var(--space-3);background:var(--ink-magenta);color:#fff;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}.plan-card__name{font-size:var(--text-lg);margin:0}.plan-card__price{font-size:var(--text-3xl);font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.plan-card__interval{font-size:var(--text-sm);color:var(--text-muted);font-weight:500;display:block;margin-top:var(--space-1)}.plan-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);flex:1}.plan-card li{display:flex;align-items:flex-start;gap:var(--space-2)}.plan-card li:before{content:"✓";color:var(--ink-success);font-weight:700;flex-shrink:0;line-height:1.6}.course-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(700px 320px at 8% -20%,rgb(30 58 138 / .12),transparent 62%),radial-gradient(600px 300px at 92% -10%,rgb(219 39 119 / .1),transparent 62%),var(--surface-muted);border-bottom:1px solid var(--border);padding-block:var(--space-12)}.course-hero:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);-webkit-mask-image:radial-gradient(120% 100% at 30% 0%,#000 25%,transparent 70%);mask-image:radial-gradient(120% 100% at 30% 0%,#000 25%,transparent 70%)}.course-hero__inner{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--space-12);align-items:start}@media(max-width:900px){.course-hero__inner{grid-template-columns:1fr;gap:var(--space-8)}}.course-hero h1{margin-top:var(--space-3)}.course-hero__level{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.course-hero__lead{font-size:var(--text-lg);color:var(--text-muted);max-width:60ch}.course-hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-6);list-style:none;margin:var(--space-6) 0 0;padding:var(--space-4) var(--space-6);width:fit-content;font-size:var(--text-sm);color:var(--text-muted);background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.course-hero__meta li+li{padding-left:var(--space-6);border-left:1px solid var(--border)}.course-hero__meta strong{display:block;font-size:var(--text-2xl);font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.course-hero__cta{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);position:sticky;top:calc(var(--header-height) + var(--space-4))}.course-hero__cta-title{font-size:var(--text-base);margin:0}.course-body{display:grid;grid-template-columns:1fr 300px;gap:var(--space-12);align-items:start}@media(max-width:900px){.course-body{grid-template-columns:1fr}}.course-body section+section{margin-top:var(--space-12)}.course-side{display:flex;flex-direction:column;gap:var(--space-4)}.course-side__box{padding:var(--space-4)}.course-side__box h2{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-2)}.course-side__box p{font-size:var(--text-sm)}.syllabus{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.syllabus__section+.syllabus__section{border-top:1px solid var(--border)}.syllabus__section summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);cursor:pointer;background:var(--surface);font-weight:600;transition:background-color .15s var(--ease);list-style:none}.syllabus__section summary:hover{background:var(--surface-muted)}.syllabus__section[open]>summary{background:var(--surface-muted);box-shadow:inset 3px 0 0 var(--ink-blue)}.syllabus__section summary::-webkit-details-marker{display:none}.syllabus__section summary:before{content:"▸";color:var(--text-muted);transition:transform .15s ease}.syllabus__section[open] summary:before{transform:rotate(90deg)}.syllabus__title{flex:1}.syllabus__count{font-size:var(--text-xs);font-weight:500;white-space:nowrap}.syllabus__lessons{list-style:none;margin:0;padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column}.syllabus__lessons li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm);border-top:1px solid var(--border)}.syllabus__lesson-type{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-muted)}.syllabus__lessons li:hover .syllabus__lesson-type{background:var(--ink-blue-050);color:var(--ink-blue)}.syllabus__duration{margin-left:auto;font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.syllabus__locked{display:inline-flex;font-size:var(--text-xs)}.syllabus__lessons li:has(.syllabus__locked){color:var(--text-muted)}.admission-callout{margin-top:var(--space-12);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--ink-blue-050);border:1px solid var(--border)}.admission-callout h2{font-size:var(--text-xl)}.faq-list{margin:0;max-width:70ch;display:flex;flex-direction:column}.faq-list dd+dt{margin-top:var(--space-3)}.faq-list dt{font-weight:700;margin:0;padding:var(--space-4) var(--space-4) 0;border:1px solid var(--border);border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface)}.faq-list dd{margin:0;padding:var(--space-2) var(--space-4) var(--space-4);color:var(--text-muted);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--surface)}.social-login{margin-top:var(--space-6)}.social-login__divider{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.social-login__divider:before,.social-login__divider:after{content:"";flex:1;height:1px;background:var(--border)}.social-login__btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-decoration:none;transition:border-color .15s var(--ease),background .15s var(--ease)}.social-login__btn:hover{border-color:var(--border-strong);background:var(--surface-muted)}.social-login__btn:focus-visible{outline:none;border-color:var(--ink-magenta);box-shadow:var(--ring-accent)}.auth{position:relative;isolation:isolate;display:grid;place-items:center;padding-block:var(--space-16);min-height:70vh;overflow:hidden;background:radial-gradient(600px 300px at 50% -10%,rgb(30 58 138 / .1),transparent 65%),radial-gradient(500px 260px at 80% 10%,rgb(219 39 119 / .08),transparent 65%)}.auth:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);-webkit-mask-image:radial-gradient(100% 80% at 50% 0%,#000 20%,transparent 70%);mask-image:radial-gradient(100% 80% at 50% 0%,#000 20%,transparent 70%)}.auth__card{width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-lg)}.auth__card h1{font-size:var(--text-2xl)}.auth__card:before{content:"";display:block;height:3px;margin:calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) var(--space-6);background:linear-gradient(90deg,var(--ink-blue),var(--ink-magenta))}.auth__submit{width:100%}.auth__links{margin:var(--space-4) 0 0;font-size:var(--text-sm);text-align:center}.field--check label{display:flex;align-items:flex-start;gap:var(--space-2);font-weight:400;font-size:var(--text-sm);line-height:1.5}.field--check input{min-height:auto;width:18px;height:18px;margin-top:2px;flex-shrink:0}.quiz{max-width:760px}.quiz__header{margin-bottom:var(--space-8)}.quiz__progress{margin-bottom:var(--space-6)}.quiz__progress p{font-size:var(--text-sm);margin:var(--space-2) 0 0}.quiz__card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);margin:0;background:var(--surface)}.quiz__category{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-blue);font-weight:700;padding:0 var(--space-2)}.quiz__question{font-size:var(--text-xl);margin-bottom:var(--space-6)}.quiz__options{display:flex;flex-direction:column;gap:var(--space-3)}.quiz__option{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);transition:border-color .15s ease,background-color .15s ease}.quiz__option:hover{border-color:var(--ink-blue)}.quiz__option.is-selected{border-color:var(--ink-blue);background:var(--ink-blue-050)}.quiz__option input{position:absolute;opacity:0;width:1px;height:1px}.quiz__option:focus-within{outline:3px solid var(--ink-magenta);outline-offset:2px}.quiz__letter{flex-shrink:0;width:26px;height:26px;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--ink-100);font-size:var(--text-xs);font-weight:700}.quiz__option.is-selected .quiz__letter{background:var(--ink-blue);color:#fff}.quiz__actions{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-8)}.quiz__verdict{padding:var(--space-8);border-radius:var(--radius-lg);border:1px solid var(--border);margin-bottom:var(--space-12)}.quiz__verdict--ready{background:linear-gradient(135deg,rgb(22 163 74 / .1),var(--surface));border-color:var(--ink-success)}.quiz__verdict--almost{background:linear-gradient(135deg,rgb(245 158 11 / .1),var(--surface));border-color:var(--ink-warn)}.quiz__verdict--comebacklater{background:linear-gradient(135deg,rgb(220 38 38 / .08),var(--surface));border-color:var(--ink-error)}.quiz__score{font-size:var(--text-4xl);font-weight:800;line-height:1;margin:0 0 var(--space-2)}.quiz__claim{font-size:var(--text-sm);margin:var(--space-6) 0 0}.quiz__breakdown{list-style:none;margin:0 0 var(--space-12);padding:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.quiz__breakdown li{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.quiz__breakdown li+li{border-top:1px solid var(--border)}.quiz__cat-score{font-weight:700}.quiz__cat-score--full{color:var(--ink-success)}.quiz__cat-score--partial{color:var(--ink-warn)}.quiz__cat-score--weak{color:var(--ink-error)}.quiz__feedback{padding-left:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.quiz__feedback li{padding-left:var(--space-3);border-left:3px solid var(--border)}.quiz__feedback li.is-correct{border-left-color:var(--ink-success)}.quiz__feedback li.is-wrong{border-left-color:var(--ink-error)}.quiz__feedback-question{font-weight:600;margin-bottom:var(--space-2)}.quiz__feedback-answer,.quiz__feedback-explanation{font-size:var(--text-sm);margin-bottom:var(--space-2)}.roadmap{list-style:none;margin:0;padding:0;max-width:720px}.roadmap__node{display:grid;grid-template-columns:40px 1fr;gap:var(--space-4);padding-bottom:var(--space-8);position:relative}.roadmap__node:not(:last-child):before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:2px;background:var(--border)}.roadmap__node--completed:not(:last-child):before{background:var(--ink-success)}.roadmap__marker{width:40px;height:40px;border-radius:var(--radius-full);display:grid;place-items:center;border:2px solid var(--border);background:var(--surface);font-size:var(--text-sm);z-index:1}.roadmap__node--completed .roadmap__marker{border-color:var(--ink-success);background:var(--ink-success);color:#fff}.roadmap__node--in_progress .roadmap__marker{border-color:var(--ink-blue);color:var(--ink-blue)}.roadmap__node--locked .roadmap__marker{opacity:.6}.roadmap__body h2{font-size:var(--text-lg);margin:0}.roadmap__body p{font-size:var(--text-sm);margin:var(--space-2) 0}.roadmap__prereq{font-size:var(--text-xs);font-style:italic}.roadmap__badge--completed{background:#16a34a1f;color:var(--ink-success)}.roadmap__badge--in_progress{background:var(--ink-blue-050);color:var(--ink-blue)}.roadmap__badge--available,.roadmap__badge--locked{background:var(--ink-100);color:var(--text-muted)}.roadmap__node--locked .roadmap__body{opacity:.65}.roadmap__cta{max-width:720px;margin-top:var(--space-8);padding:var(--space-6)}.certificate{max-width:640px}.certificate__form{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-8)}.certificate__form .field{flex:1 1 260px;margin-bottom:0}.certificate__form input{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.certificate__result{padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border)}.certificate__result--valid{border-color:var(--ink-success);background:#16a34a0f}.certificate__result--invalid{border-color:var(--ink-error);background:#dc26260d}.certificate__stamp{font-size:var(--text-xl);font-weight:800;margin-bottom:var(--space-4)}.certificate__result--valid .certificate__stamp{color:var(--ink-success)}.certificate__result--invalid .certificate__stamp{color:var(--ink-error)}.certificate__result dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-6);margin:0;font-size:var(--text-sm)}.certificate__result dt{color:var(--text-muted);font-weight:600}.certificate__result dd{margin:0;font-weight:600}.account section{margin-top:var(--space-12)}.account section h2{font-size:var(--text-xl);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.account__identity{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.account__identity h1{margin:0;font-size:var(--text-3xl)}.account__avatar{display:grid;place-items:center;width:3.5rem;height:3.5rem;flex-shrink:0;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--ink-blue),var(--ink-magenta));color:#fff;font-size:var(--text-2xl);font-weight:800}.account__email{margin:0;color:var(--text-muted);font-size:var(--text-sm);font-family:var(--font-mono)}.account__nav{display:flex;gap:0;flex-wrap:wrap;margin-bottom:var(--space-4);padding:var(--space-1);width:fit-content;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.account__nav .btn{border-color:transparent;background:transparent}.account__nav .btn:hover:not(:disabled){background:var(--surface);border-color:var(--border);color:var(--ink-blue)}.account__attempts{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.account__attempts li{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-4);align-items:center;padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.account__attempts li+li{border-top:1px solid var(--border)}.subscription__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-8)}.subscription__summary dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-1)}.subscription__summary dd{margin:0;font-size:var(--text-lg);font-weight:700}.status-pill{display:inline-block;padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}.status-pill--active{background:#16a34a1f;color:var(--ink-success)}.status-pill--pastdue{background:#f59e0b24;color:#92400e}.status-pill--canceled,.status-pill--none,.status-pill--unpaid{background:var(--ink-100);color:var(--text-muted)}.account__course{display:flex;flex-direction:column;gap:var(--space-2)}.account__course-note{margin:0;font-size:var(--text-xs);padding-left:var(--space-2);border-left:2px solid var(--ink-magenta)}.account__pack{display:flex;flex-direction:column;padding:var(--space-6)}.account__pack-title{margin:0;font-size:var(--text-lg)}.account__pack-sector{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.account__pack-facts{flex:1;display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin:var(--space-4) 0;font-size:var(--text-sm)}.account__pack-facts dt{color:var(--text-muted)}.account__pack-facts dd{margin:0;font-variant-numeric:tabular-nums}.account__pack .btn{width:100%}.invoices__date{white-space:nowrap}.invoices__row--new td{animation:invoices-new-row 2.4s var(--ease)}@keyframes invoices-new-row{0%{background:var(--alert-success-bg)}}@media(prefers-reduced-motion:reduce){.invoices__row--new td{animation:none}}.invoices__note{max-width:72ch;margin:var(--space-4) 0 0;padding:0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.refund-dialog{width:min(480px,calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));overflow:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);color:var(--text);box-shadow:var(--shadow-lg)}.refund-dialog::backdrop{background:#020617b3}.refund-dialog form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.refund-dialog form>*,.refund-dialog .field{margin:0}.refund-dialog h2{margin:0;font-size:var(--text-xl);line-height:1.25}.refund-dialog__subtitle{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.refund-dialog__invoice{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.refund-dialog__invoice-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.refund-dialog__invoice-head strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums}.refund-dialog__date{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.refund-dialog__window{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.refund-dialog__window p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--space-3);margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600}.refund-dialog__window .muted{font-weight:400}.refund-dialog__bar{height:4px;overflow:hidden;border-radius:var(--radius-full);background:var(--border)}.refund-dialog__bar span{display:block;height:100%;border-radius:inherit;background:var(--ink-blue)}.refund-dialog__terms{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4);font-size:var(--text-sm)}.refund-dialog__terms dt{font-weight:600}.refund-dialog__terms dd{margin:0;color:var(--text-muted)}.refund-dialog__receipt{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere}.refund-dialog__receipt strong{color:var(--text);font-weight:600}.refund-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border)}@media(max-width:479px){.refund-dialog form{padding:var(--space-4)}.refund-dialog__actions{flex-direction:column-reverse}}.result-notice{--tone: var(--ink-success);--tone-soft: var(--alert-success-bg);position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--space-4);margin-bottom:var(--space-8);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);animation:result-notice-in .4s var(--ease) both}.result-notice--pending{--tone: var(--ink-blue);--tone-soft: var(--ink-blue-050)}.result-notice__icon{position:relative;width:44px;height:44px}.result-notice__icon svg{display:block;width:100%;height:100%}.result-notice__ring{fill:var(--tone-soft);stroke:var(--tone);stroke-width:2}.result-notice__mark{fill:none;stroke:var(--tone);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:result-notice-mark .45s var(--ease) .25s forwards}.result-notice__confetti{position:absolute;top:50%;left:50%;pointer-events:none}.result-notice__confetti i{position:absolute;width:var(--size);height:var(--size);margin:calc(var(--size) / -2);border-radius:2px;background:var(--color);opacity:0;animation:result-notice-confetti 1.3s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:var(--delay)}.result-notice h2{margin:0;font-size:var(--text-lg);line-height:1.3}.result-notice__text{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-muted)}.result-notice__text p{margin:0}.result-notice__text p+p{margin-top:var(--space-1)}.result-notice__text strong{color:var(--text)}.result-notice__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.result-notice__close{display:inline-grid;place-items:center;width:32px;height:32px;margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-2)) 0 0;border:0;border-radius:var(--radius);background:none;color:var(--text-muted);cursor:pointer}.result-notice__close:hover{background:var(--surface-muted);color:var(--text)}.result-notice__close:focus-visible{outline:none;box-shadow:var(--ring)}@keyframes result-notice-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes result-notice-mark{to{stroke-dashoffset:0}}@keyframes result-notice-confetti{0%{opacity:1;transform:translate(0) rotate(0) scale(.4)}55%{opacity:1;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(1)}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 48px)) rotate(calc(var(--r) * 2)) scale(1)}}@media(max-width:479px){.result-notice{gap:var(--space-3);padding:var(--space-4)}}@media(prefers-reduced-motion:reduce){.result-notice{animation:none}.result-notice__mark{animation:none;stroke-dashoffset:0}.result-notice__confetti{display:none}}.tutoring__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.tutoring__figure{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-lg)}.tutoring__figure-value{font-size:var(--text-2xl);font-weight:700;font-variant-numeric:tabular-nums}.tutoring__grant{margin-bottom:var(--space-4);padding:var(--space-6)}.tutoring__grant-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.tutoring__grant-head h3{margin:0;font-size:var(--text-lg)}.tutoring__grant-head .muted{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.tutoring__balance{margin:var(--space-4) 0 var(--space-2);font-variant-numeric:tabular-nums}.tutoring__pack{display:flex;flex-direction:column;padding:var(--space-6)}.tutoring__pack-title{margin:0;font-size:var(--text-lg)}.tutoring__pack-hours{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.tutoring__pack-text{flex:1;margin:var(--space-3) 0 0}.tutoring__pack .btn{width:100%}.tutoring__history{margin-top:var(--space-4)}.tutoring__history summary{cursor:pointer;font-size:var(--text-sm);font-weight:600;padding:var(--space-2) 0}.tutoring__history-list{list-style:none;margin:var(--space-3) 0 0;padding:0 0 0 var(--space-4);border-left:2px solid var(--border)}.tutoring__history-item{padding:var(--space-3) 0;font-size:var(--text-sm)}.tutoring__history-item+.tutoring__history-item{border-top:1px solid var(--border)}.tutoring__history-item p{margin:var(--space-1) 0 0}.tutoring__upcoming{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.tutoring__upcoming h4{font-size:var(--text-sm);font-weight:700;margin:0}.tutoring__upcoming>.muted{font-size:var(--text-xs);margin:var(--space-2) 0 0}.tutoring__price{font-size:var(--text-lg);font-weight:700;margin:var(--space-2) 0 var(--space-3)}:root{color-scheme:light;--ink-blue: #1e3a8a;--ink-blue-600: #1d4ed8;--ink-blue-050: #eff4ff;--ink-magenta: #db2777;--ink-magenta-600: #be1c65;--ink-magenta-050: #fdf2f8;--ink-teal: #0891b2;--ink-900: #0f172a;--ink-700: #334155;--ink-500: #64748b;--ink-300: #cbd5e1;--ink-200: #e2e8f0;--ink-100: #f1f5f9;--ink-050: #f8fafc;--ink-000: #ffffff;--ink-success: #16a34a;--ink-warn: #f59e0b;--ink-error: #dc2626;--surface: var(--ink-000);--surface-muted: var(--ink-050);--surface-inverse: var(--ink-900);--border: var(--ink-200);--border-strong: var(--ink-300);--text: var(--ink-900);--text-muted: var(--ink-500);--on-brand: #ffffff;--warn-fg: #92400e;--alert-error-bg: #fef2f2;--alert-error-fg: #7f1d1d;--alert-success-bg: #f0fdf4;--alert-success-fg: #14532d;--alert-info-bg: var(--ink-blue-050);--alert-info-fg: var(--text);--font-sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);--shadow: 0 4px 16px rgb(15 23 42 / .08);--shadow-lg: 0 12px 40px rgb(15 23 42 / .12);--container: 1140px;--header-height: 64px;--ring: 0 0 0 3px rgb(30 58 138 / .14);--ring-accent: 0 0 0 3px rgb(219 39 119 / .16);--grid-line: rgb(30 58 138 / .06);--grid-size: 32px;--ease: cubic-bezier(.4, 0, .2, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface: #0b1220;--surface-muted: #111c2f;--surface-inverse: #f8fafc;--border: #1e293b;--border-strong: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--ink-050: #111c2f;--ink-100: #16233a;--ink-000: #0b1220;--ink-900: #e2e8f0;--ink-blue-050: #14213f;--ink-magenta-050: #2a1224;--ink-blue: #7aa2f7;--ink-blue-600: #a8c3ff;--ink-magenta: #f472b6;--ink-magenta-600: #f9a8d4;--ink-teal: #38bdf8;--ink-success: #4ade80;--ink-warn: #fbbf24;--ink-error: #f87171;--on-brand: #0b1220;--warn-fg: #fbbf24;--alert-error-bg: #2a1215;--alert-error-fg: #fca5a5;--alert-success-bg: #0f2417;--alert-success-fg: #86efac;--shadow-sm: none;--shadow: 0 8px 24px rgb(0 0 0 / .35);--shadow-lg: 0 20px 50px rgb(0 0 0 / .45);--grid-line: rgb(148 163 184 / .07);--ring: 0 0 0 3px rgb(96 165 250 / .22);--ring-accent: 0 0 0 3px rgb(244 114 182 / .22)}}:root[data-theme=dark]{color-scheme:dark;--surface: #0b1220;--surface-muted: #111c2f;--surface-inverse: #f8fafc;--border: #1e293b;--border-strong: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--ink-050: #111c2f;--ink-100: #16233a;--ink-000: #0b1220;--ink-900: #e2e8f0;--ink-blue-050: #14213f;--ink-magenta-050: #2a1224;--ink-blue: #7aa2f7;--ink-blue-600: #a8c3ff;--ink-magenta: #f472b6;--ink-magenta-600: #f9a8d4;--ink-teal: #38bdf8;--ink-success: #4ade80;--ink-warn: #fbbf24;--ink-error: #f87171;--on-brand: #0b1220;--warn-fg: #fbbf24;--alert-error-bg: #2a1215;--alert-error-fg: #fca5a5;--alert-success-bg: #0f2417;--alert-success-fg: #86efac;--shadow-sm: none;--shadow: 0 8px 24px rgb(0 0 0 / .35);--shadow-lg: 0 20px 50px rgb(0 0 0 / .45);--grid-line: rgb(148 163 184 / .07);--ring: 0 0 0 3px rgb(96 165 250 / .22);--ring-accent: 0 0 0 3px rgb(244 114 182 / .22)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 var(--space-4);line-height:1.2;letter-spacing:-.02em;font-weight:800}h1{font-size:clamp(2rem,5vw,var(--text-4xl))}h2{font-size:clamp(1.5rem,3.5vw,var(--text-3xl))}h3{font-size:var(--text-xl)}p{margin:0 0 var(--space-4)}a{color:var(--ink-blue);text-underline-offset:3px}img,svg,iframe{max-width:100%}:focus-visible{outline:3px solid var(--ink-magenta);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-4)}.section{padding-block:var(--space-16)}.section--muted{background:var(--surface-muted)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:var(--space-3) var(--space-4);background:var(--ink-blue);color:var(--on-brand);border-radius:0 0 var(--radius) 0}.skip-link:focus{left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:1px solid transparent;border-radius:var(--radius);font:inherit;font-weight:600;font-size:var(--text-sm);text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .1s ease;min-height:44px}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn--primary{background:var(--ink-blue);color:var(--on-brand)}.btn--primary:hover:not(:disabled){background:var(--ink-blue-600)}.btn--accent{background:var(--ink-magenta);color:var(--on-brand)}.btn--accent:hover:not(:disabled){background:var(--ink-magenta-600)}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn--ghost:hover:not(:disabled){border-color:var(--ink-blue);color:var(--ink-blue)}.btn--sm{padding:var(--space-2) var(--space-4);min-height:36px;font-size:var(--text-xs)}.btn--icon{padding:0;width:36px;min-width:36px;height:36px;min-height:36px}.btn:not(.btn--sm).btn--icon{width:44px;min-width:44px;height:44px}.btn--icon-text>svg{flex-shrink:0}.btn:focus-visible{outline:2px solid var(--ink-blue-600);outline-offset:2px}.btn--primary:focus-visible,.btn--accent:focus-visible{outline-color:var(--ink-900)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:600}.field input,.field select,.field textarea{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;min-height:44px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink-blue);box-shadow:var(--ring)}.field input::placeholder,.field textarea::placeholder{color:var(--text-muted);opacity:.7}.field .hint{font-size:var(--text-xs);color:var(--text-muted)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border-left:3px solid;font-size:var(--text-sm);margin-bottom:var(--space-4)}.alert--error{background:var(--alert-error-bg);border-color:var(--ink-error);color:var(--alert-error-fg)}.alert--success{background:var(--alert-success-bg);border-color:var(--ink-success);color:var(--alert-success-fg)}.alert--info{background:var(--alert-info-bg);border-color:var(--ink-blue);color:var(--alert-info-fg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.card--interactive{transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.card--interactive:hover,.card--interactive:focus-within{border-color:var(--ink-blue);box-shadow:var(--shadow)}.grid{display:grid;gap:var(--space-6)}.grid--cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;color:var(--text-muted);white-space:nowrap}.chip>svg{flex-shrink:0;opacity:.75}.chip--brand{border-color:transparent;background:var(--ink-blue-050);color:var(--ink-blue)}.chip--accent{border-color:transparent;background:var(--ink-magenta-050);color:var(--ink-magenta)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.steps{list-style:none;counter-reset:step;margin:0 0 var(--space-12);padding:0;display:flex;flex-direction:column;gap:var(--space-6)}.steps>li{position:relative;counter-increment:step;padding-left:calc(var(--space-12) + var(--space-1));min-height:2.25rem}.steps>li:before{content:counter(step);position:absolute;left:0;top:0;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius);background:var(--ink-blue-050);color:var(--ink-blue);font-weight:800;font-variant-numeric:tabular-nums}.steps>li:not(:last-child):after{content:"";position:absolute;left:calc(1.125rem - 1px);top:2.5rem;bottom:calc(-1 * var(--space-6));width:2px;background:var(--border)}.surface-grid{position:relative;isolation:isolate}.surface-grid:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 85%);mask-image:linear-gradient(to bottom,#000 0%,transparent 85%)}.badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.badge--new,.badge--featured,.badge--soon{border-color:transparent}.badge--new{background:var(--ink-magenta-050);color:var(--ink-magenta)}.badge--featured{background:var(--ink-blue-050);color:var(--ink-blue)}.badge--soon{background:var(--ink-100);color:var(--text-muted)}.muted{color:var(--text-muted)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border)}th{font-weight:700;color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.table-scroll{overflow-x:auto}code,kbd,samp{font-family:var(--font-mono);font-size:.9em}:not(pre)>code{padding:.1em .35em;border-radius:var(--radius-sm);background:var(--ink-100);color:inherit;overflow-wrap:break-word}pre{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);font-size:var(--text-sm);line-height:1.6;overflow-x:auto}:root .status-pill--pastdue{color:var(--warn-fg)}:root .quiz__option.is-selected .quiz__letter,:root .roadmap__node--completed .roadmap__marker{color:var(--on-brand)}:root .course-card__cover,:root .account__avatar,:root .plan-card--highlight:before{--ink-blue: #1e3a8a;--ink-magenta: #db2777}:root[data-theme=glass]{color-scheme:light dark;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--radius-sm: 8px;--radius: 14px;--radius-lg: 22px;--material: saturate(180%) blur(20px);--surface: rgb(255 255 255 / .72);--surface-muted: rgb(255 255 255 / .5);--surface-inverse: #1c1c1e;--border: rgb(0 0 0 / .08);--border-strong: rgb(0 0 0 / .16);--text: #1c1c1e;--text-muted: #6b6b70;--shadow-sm: 0 1px 2px rgb(0 0 0 / .04);--shadow: 0 8px 30px rgb(0 0 0 / .08);--shadow-lg: 0 24px 60px rgb(0 0 0 / .12);--grid-line: rgb(0 0 0 / .035);--glass-backdrop: radial-gradient( 1200px 600px at 12% -10%, rgb(30 58 138 / .16), transparent 60% ), radial-gradient(900px 500px at 88% 0%, rgb(219 39 119 / .12), transparent 60%), radial-gradient(1000px 800px at 50% 110%, rgb(8 145 178 / .1), transparent 60%), #f2f2f7}@media(prefers-color-scheme:dark){:root[data-theme=glass]{--surface: rgb(28 28 30 / .72);--surface-muted: rgb(28 28 30 / .5);--surface-inverse: #f2f2f7;--border: rgb(255 255 255 / .12);--border-strong: rgb(255 255 255 / .22);--text: #f2f2f7;--text-muted: #a1a1a6;--ink-blue: #7aa2f7;--ink-blue-600: #a8c3ff;--ink-blue-050: #14213f;--ink-magenta: #f472b6;--ink-magenta-600: #f9a8d4;--ink-magenta-050: #2a1224;--ink-teal: #38bdf8;--ink-success: #4ade80;--ink-warn: #fbbf24;--ink-error: #f87171;--ink-050: #1c1c1e;--ink-100: #2c2c2e;--ink-000: #000000;--ink-900: #f2f2f7;--on-brand: #0b1220;--warn-fg: #fbbf24;--alert-error-bg: rgb(248 113 113 / .14);--alert-error-fg: #fca5a5;--alert-success-bg: rgb(74 222 128 / .14);--alert-success-fg: #86efac;--alert-info-bg: rgb(122 162 247 / .14);--alert-info-fg: #a8c3ff;--shadow-sm: none;--shadow: 0 8px 30px rgb(0 0 0 / .5);--shadow-lg: 0 24px 60px rgb(0 0 0 / .6);--grid-line: rgb(255 255 255 / .05);--ring: 0 0 0 3px rgb(122 162 247 / .28);--ring-accent: 0 0 0 3px rgb(244 114 182 / .28);--glass-backdrop: radial-gradient( 1200px 600px at 12% -10%, rgb(122 162 247 / .16), transparent 60% ), radial-gradient(900px 500px at 88% 0%, rgb(244 114 182 / .12), transparent 60%), radial-gradient(1000px 800px at 50% 110%, rgb(56 189 248 / .1), transparent 60%), #000000}}:root[data-theme=glass] body{background:var(--glass-backdrop);background-attachment:fixed}:root[data-theme=glass] .site-header,:root[data-theme=glass] .card,:root[data-theme=glass] .course-card,:root[data-theme=glass] .plan-card,:root[data-theme=glass] .help-card,:root[data-theme=glass] .admin__panel,:root[data-theme=glass] .site-footer,:root[data-theme=glass] .auth__card,:root[data-theme=glass] .theme-toggle,:root[data-theme=glass] .social-login__btn{backdrop-filter:var(--material);-webkit-backdrop-filter:var(--material)}:root[data-theme=glass] .site-nav--open{background:var(--surface);backdrop-filter:saturate(180%) blur(30px);-webkit-backdrop-filter:saturate(180%) blur(30px)}:root[data-theme=glass] .btn--primary,:root[data-theme=glass] .btn--accent{backdrop-filter:none;-webkit-backdrop-filter:none}@media(prefers-reduced-transparency:reduce){:root[data-theme=glass]{--surface: #ffffff;--surface-muted: #f2f2f7;--glass-backdrop: #f2f2f7}@media(prefers-color-scheme:dark){:root[data-theme=glass]{--surface: #1c1c1e;--surface-muted: #2c2c2e;--glass-backdrop: #000000}}:root[data-theme=glass] .site-header,:root[data-theme=glass] .card,:root[data-theme=glass] .course-card,:root[data-theme=glass] .plan-card,:root[data-theme=glass] .help-card,:root[data-theme=glass] .admin__panel,:root[data-theme=glass] .site-footer,:root[data-theme=glass] .auth__card,:root[data-theme=glass] .theme-toggle,:root[data-theme=glass] .social-login__btn,:root[data-theme=glass] .site-nav--open{backdrop-filter:none;-webkit-backdrop-filter:none}}@supports not (backdrop-filter: blur(1px)){:root[data-theme=glass]{--surface: #ffffff;--surface-muted: #f2f2f7}@media(prefers-color-scheme:dark){:root[data-theme=glass]{--surface: #1c1c1e;--surface-muted: #2c2c2e}}}
