:root{--nx-bg:#0a0b10;--nx-bg-raised:#0e1018;--nx-surface:#11131b;--nx-surface-2:#191c27;--nx-surface-3:#22263a;--nx-line:#ffffff0f;--nx-line-strong:#ffffff1f;--nx-text:#e7e9f2;--nx-text-dim:#9aa0b4;--nx-text-faint:#858da6;--nx-accent:#6b4fe6;--nx-accent-2:#22d3ee;--nx-accent-soft:#6b4fe624;--nx-accent-glow:#6b4fe659;--nx-accent-2-soft:#22d3ee24;--nx-accent-2-glow:#22d3ee59;--nx-success:#34d399;--nx-warn:#f59e0b;--nx-danger:#f43f5e;--nx-info:#22d3ee;--nx-gradient-head:linear-gradient(135deg, #e7e9f2 0%, #9ea3f5 60%, #6b4fe6 100%);--nx-gradient-heroglow:radial-gradient(ellipse 60% 40% at 30% 20%, #6b4fe626, transparent 70%), radial-gradient(ellipse 50% 40% at 80% 60%, #22d3ee1a, transparent 70%);--nx-gradient-cta-border:linear-gradient(180deg, #ffffff2e, #ffffff05);--nx-bg-grid-dot:radial-gradient(#ffffff0f 1px, transparent 1px);--nx-bg-grid-line:linear-gradient(#ffffff0a 1px, transparent 1px), linear-gradient(90deg, #ffffff0a 1px, transparent 1px);--nx-r-1:6px;--nx-r-2:10px;--nx-r-3:16px;--nx-r-4:24px;--nx-r-full:9999px;--nx-shadow-1:0 1px 2px #00000080;--nx-shadow-2:0 6px 24px #00000073, inset 0 1px 0 #ffffff08;--nx-shadow-3:0 20px 60px #0000008c, inset 0 1px 0 #ffffff0a;--nx-shadow-glow:0 0 40px #6b4fe640;--nx-ease:cubic-bezier(.22, 1, .36, 1);--nx-ease-emph:cubic-bezier(.4, 0, .2, 1);--nx-dur-1:.18s;--nx-dur-2:.32s;--nx-dur-3:.6s;--nx-font-display:"Clash Display", "Satoshi", "Inter Variable", "SF Pro Display", ui-sans-serif, system-ui, sans-serif;--nx-font-sans:"Inter Variable", -apple-system, BlinkMacSystemFont, ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--nx-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--nx-text-hero:clamp(2.5rem, 6vw, 4.5rem);--nx-text-h1:clamp(2rem, 4vw, 3rem);--nx-text-h2:clamp(1.5rem, 3vw, 2.25rem);--nx-text-h3:1.5rem;--nx-text-h4:1.25rem;--nx-text-lg:1.125rem;--nx-text-base:1rem;--nx-text-sm:.875rem;--nx-text-xs:.75rem;--nx-leading-tight:1.1;--nx-leading-snug:1.3;--nx-leading-base:1.6;--nx-tracking-tight:-.02em;--nx-tracking-normal:0;--nx-tracking-wide:.05em;--nx-z-nav:50;--nx-z-dropdown:60;--nx-z-modal:70;--nx-z-toast:80;--nx-z-cmdk:90;--nx-z-popover:95;--nx-z-tooltip:100}[data-theme=light]{--nx-bg:#fafafb;--nx-bg-raised:#fff;--nx-surface:#fff;--nx-surface-2:#f3f4f8;--nx-surface-3:#e9ebf1;--nx-line:#0a0b1014;--nx-line-strong:#0a0b1024;--nx-text:#151621;--nx-text-dim:#51586e;--nx-text-faint:#6c7388;--nx-accent-soft:#6b4fe61a;--nx-bg-grid-dot:radial-gradient(#0a0b1012 1px, transparent 1px);--nx-bg-grid-line:linear-gradient(#0a0b100d 1px, transparent 1px), linear-gradient(90deg, #0a0b100d 1px, transparent 1px);--nx-shadow-1:0 1px 2px #0a0b100f;--nx-shadow-2:0 6px 24px #0a0b1014;--nx-shadow-3:0 20px 60px #0a0b101a}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:var(--nx-bg);--color-surface:var(--nx-surface);--color-surface-2:var(--nx-surface-2);--color-fg:var(--nx-text);--color-muted:var(--nx-text-dim);--color-accent:var(--nx-accent);--color-accent-2:var(--nx-accent-2);--color-accent-fg:#fff;--color-accent-soft:var(--nx-accent-soft);--color-border:var(--nx-line-strong);--color-focus:var(--nx-accent-2);--color-success:var(--nx-success);--color-warn:var(--nx-warn);--color-danger:var(--nx-danger);--font-sans:var(--nx-font-sans);--font-mono:var(--nx-font-mono);--font-display:var(--nx-font-display);--text-xs:var(--nx-text-xs);--text-sm:var(--nx-text-sm);--text-base:var(--nx-text-base);--text-lg:var(--nx-text-lg);--text-h2:var(--nx-text-h2);--text-xl:var(--nx-text-hero);--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--space-6:4rem;--radius:var(--nx-r-2);--radius-lg:var(--nx-r-3);--measure:60ch;--gutter:clamp(1rem, 4vw, 2.5rem);--tap:44px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-focus:var(--nx-accent)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);min-height:100dvh;color:var(--color-fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--nx-leading-base);flex-direction:column;margin:0;display:flex;overflow-x:hidden}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}a{color:inherit}.skip-link{left:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--radius);z-index:var(--nx-z-toast);position:absolute;top:-100%}.skip-link:focus{top:var(--space-3)}.site-header,.site-footer{padding:var(--space-2) var(--gutter);border-color:var(--color-border);border-style:solid;border-width:0}.site-header{background:var(--nx-bg-raised);z-index:var(--nx-z-nav);border-bottom-width:1px;position:sticky;top:0}.site-footer{color:var(--color-muted);font-size:var(--text-sm);border-top-width:1px}.site-nav{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;max-width:72rem;margin:0 auto;display:flex}.site-nav a{min-height:var(--tap);padding:0 var(--space-2);border-radius:var(--radius);color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.site-nav a:hover{color:var(--color-fg);background:var(--color-surface)}.site-nav a[aria-current=page]{color:var(--color-fg);box-shadow:inset 0 -2px 0 var(--color-accent);border-radius:0}.site-nav .brand{font-family:var(--font-display);font-weight:700;font-size:var(--text-base);letter-spacing:.02em;color:var(--color-fg);margin-right:auto;padding-left:0}.site-nav .nav-auth{color:var(--color-accent-2)}.site-main{width:100%;max-width:72rem;padding:var(--space-5) var(--gutter) var(--space-6);flex:1;margin:0 auto}h1{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--nx-text-h1);line-height:var(--nx-leading-tight);letter-spacing:var(--nx-tracking-tight);overflow-wrap:anywhere}h2{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--nx-leading-snug);overflow-wrap:anywhere;margin:0}.lede{margin:0 0 var(--space-4);color:var(--color-muted);font-size:var(--text-lg);max-width:var(--measure)}.muted{color:var(--color-muted)}.small{font-size:var(--text-sm)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-accent-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--nx-tracking-wide);text-transform:uppercase}.error{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius);color:var(--color-fg);background:var(--color-surface);overflow-wrap:anywhere}.hero{max-width:var(--measure);margin:var(--space-5) auto;text-align:center}.hero h1{font-size:var(--text-xl);background:var(--nx-gradient-head);color:#0000;-webkit-background-clip:text;background-clip:text}.actions{justify-content:center;gap:var(--space-2);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.page .actions{justify-content:flex-start}.button{min-height:var(--tap);min-width:var(--tap);padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--radius);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(1.08)}.button:disabled{opacity:.5;cursor:not-allowed;filter:none}.button-secondary{color:var(--color-fg);border-color:var(--color-border);background:0 0}.button-secondary:hover{background:var(--color-surface)}.button-small{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}@media (prefers-reduced-motion:no-preference){.button{transition:filter var(--nx-dur-1) var(--nx-ease)}}.page{max-width:72rem}.page-narrow{max-width:34rem}.form{gap:var(--space-3);margin:var(--space-3) 0;display:grid}.field{gap:var(--space-1);display:grid}.field label{font-size:var(--text-sm);font-weight:600}.field input{min-height:var(--tap);padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-fg);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;width:100%}.field input:focus-visible{border-color:var(--color-accent)}.facts{gap:var(--space-2) var(--space-4);margin:0 0 var(--space-4);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:max-content 1fr;display:grid}.facts dt{color:var(--color-muted);font-size:var(--text-sm)}.facts dd{overflow-wrap:anywhere;margin:0}.notice{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-accent-soft);border:1px solid var(--color-border);border-left:4px solid var(--color-warn);border-radius:var(--radius);font-size:var(--text-sm);overflow-wrap:anywhere}.notice-wall{border-left-color:var(--color-accent)}.badge{padding:0 var(--space-2);border-radius:var(--nx-r-full);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:lowercase;border:1px solid var(--color-border);color:var(--color-muted);line-height:1.6;display:inline-block}.badge-free,.badge-status-viewed{color:var(--color-accent-2);border-color:var(--color-accent-2)}.badge-pro,.badge-admin{color:var(--color-accent-fg);background:var(--color-accent);border-color:var(--color-accent)}.badge-status-done{color:var(--color-success);border-color:var(--color-success)}.modules,.lessons{margin:0;padding:0;list-style:none}.modules{gap:var(--space-3);display:grid}.module{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.module-head{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.module-meta{white-space:nowrap;margin:0}.module-num,.lesson-id{font-family:var(--font-mono);color:var(--color-accent-2);margin-right:var(--space-1);font-size:.85em}.lesson{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--nx-line);grid-template-columns:1fr auto auto;display:grid}.lesson-title{overflow-wrap:anywhere;font-size:var(--text-sm)}.lesson-actions{gap:var(--space-1);display:inline-flex}@media (max-width:640px){.lesson{grid-template-columns:1fr auto}.lesson-actions{grid-column:1/-1;justify-content:flex-end}.lesson-actions .button{flex:1}}
