:root{color-scheme:dark;--bg: #141427;--bg-soft: #1d1d35;--card: #24243f;--field: #1a1a31;--line: rgba(247, 247, 255, .1);--purple: #7261f6;--purple-deep: #5c4ad4;--purple-soft: #d2cbff;--green: #3dbe8b;--gold: #e2c16b;--teal: #5ec2c8;--ink: #f7f7ff;--muted: #b7b7ce;--radius: 1rem;--shadow: 0 14px 36px rgba(8, 8, 20, .28);--header: 6.9rem;--ease-out: cubic-bezier(.22, 1, .36, 1);--reveal-duration: .62s;--reveal-stagger: 75ms}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + .75rem)}html.portal-root h1{font-size:1.55rem}html.portal-root h2{font-size:1.15rem}body{margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:1rem;color:var(--ink);background:var(--bg);line-height:1.65;overflow-x:clip}::selection{background:#7261f673;color:#fff}:focus-visible{outline:2px solid var(--purple-soft);outline-offset:3px}h1,h2,h3,h4,.brand{line-height:1.15;margin:0 0 .55rem;letter-spacing:-.03em}h1{font-size:clamp(2.25rem,4vw,3rem);font-weight:800}h2{font-size:clamp(1.625rem,2.4vw,2rem);font-weight:700}h3{font-size:1.2rem;font-weight:700}h4{font-size:1.125rem;font-weight:700}p{margin:0 0 .75rem}.wrap{width:min(1240px,100% - 2.5rem);margin:0 auto}.eyebrow{color:var(--purple-soft);font-size:.8125rem;font-weight:700;letter-spacing:.08em;margin-bottom:.65rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;border-radius:999px;padding:.7rem 1.25rem;text-decoration:none;border:1px solid transparent;font:inherit;font-weight:600;line-height:1.2;cursor:pointer;transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease,transform .18s var(--ease-out)}.btn.primary{background:var(--purple-deep);color:#fff;box-shadow:0 8px 18px #4638aa47}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary:hover:not(:disabled){background:#6958e4;box-shadow:0 10px 22px #4638aa57}.btn:active:not(:disabled),.btn.primary:active:not(:disabled),.btn.ghost:active:not(:disabled){transform:translateY(0) scale(.98)}.btn.primary:active:not(:disabled){background:#5240c9;box-shadow:0 4px 10px #4638aa3d}.btn.ghost{background:transparent;color:var(--ink);border-color:#f7f7ff38}.btn.ghost:hover:not(:disabled){background:#7261f61a;border-color:#d2cbff80}.btn:focus-visible,.btn.primary:focus-visible,.btn.ghost:focus-visible{outline:2px solid var(--purple-soft);outline-offset:3px;box-shadow:0 0 0 4px #7261f652}.btn.small{min-height:2.5rem;padding:.4rem .85rem;font-size:.92rem}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}input[type=checkbox]{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:1.15rem;height:1.15rem;min-width:1.15rem;min-height:1.15rem;margin:0;padding:0;flex:none;border:1.5px solid rgba(247,247,255,.28);border-radius:.35rem;background-color:var(--field);background-repeat:no-repeat;background-position:center;background-size:.72rem;color:inherit;cursor:pointer;vertical-align:middle;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}input[type=checkbox]:hover:not(:disabled){border-color:#d2cbff8c}input[type=checkbox]:checked{background-color:var(--purple-deep);border-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.3 6.4 11.4 12.8 4.6'/%3E%3C/svg%3E");box-shadow:0 4px 10px #4638aa47}input[type=checkbox]:focus-visible{outline:2px solid var(--purple-soft);outline-offset:3px;box-shadow:0 0 0 4px #7261f652}input[type=checkbox]:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.skip{position:absolute;left:.75rem;top:.75rem;z-index:80;transform:translateY(-150%);background:var(--purple-deep);color:#fff;text-decoration:none;border-radius:.7rem;padding:.65rem .9rem;font-weight:700}.skip:focus{transform:none}code{background:#ffffff14;padding:.1rem .35rem;border-radius:.3rem}@media(max-width:720px){.wrap{width:min(1240px,100% - 1.5rem)}}.page-enter{animation:page-rise .62s var(--ease-out) both}.slot-in,.lesson-in{animation:rise-in .26s var(--ease-out) backwards}.slot-in{animation-delay:calc(min(var(--i, 0),7)*18ms)}.count-pop{display:inline-block;font-variant-numeric:tabular-nums;animation:count-pop .3s var(--ease-out) backwards}.month-in{animation:rise-in .32s var(--ease-out) backwards}@keyframes page-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes count-pop{0%{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){html.motion .reveal:not(:has(.reveal-child)):not(.is-visible){opacity:0;transform:translateY(14px)}html.motion .reveal.is-visible:not(:has(.reveal-child)):not(.is-settled){opacity:1;transform:translateY(0);transition:opacity var(--reveal-duration) var(--ease-out),transform var(--reveal-duration) var(--ease-out);transition-delay:calc(var(--i, 0) * var(--reveal-stagger))}html.motion .reveal.is-settled:not(:has(.reveal-child)){opacity:1}html.motion .reveal:not(.is-visible) .reveal-child{opacity:0;transform:translateY(14px)}html.motion .reveal.is-visible:not(.is-settled) .reveal-child{opacity:1;transform:translateY(0);transition:opacity var(--reveal-duration) var(--ease-out),transform var(--reveal-duration) var(--ease-out);transition-delay:calc(var(--i, 0) * var(--reveal-stagger))}html.motion .reveal.is-settled .reveal-child{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html.motion .reveal,html.motion .reveal .reveal-child{opacity:1!important;transform:none!important}}
