/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:var(--sans);--font-mono:var(--mono);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-950:oklch(26.2% .051 172.552);--color-cyan-300:oklch(86.5% .127 207.078);--color-blue-400:oklch(70.7% .165 254.624);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:6px;--radius-md:6px;--radius-lg:6px;--radius-xl:6px;--radius-2xl:6px;--radius-3xl:12px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-bg2:var(--bg-2);--color-panel:var(--panel);--color-line:var(--border);--color-line2:var(--border-2);--color-ink:var(--text);--color-muted:var(--muted);--color-accent:var(--accent)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/vendor/fonts/poppins-400.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/vendor/fonts/poppins-500.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/vendor/fonts/poppins-600.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/vendor/fonts/poppins-700.woff2)format("woff2")}:root{--bg:#fff;--bg-2:#f6f8fa;--panel:#fff;--panel-2:#f6f8fa;--border:#e6e9ed;--border-2:#d8dde3;--text:#1f2328;--muted:#59636e;--muted-2:#818b98;--accent:#047857;--accent-strong:#065f46;--accent-soft:#0478571a;--green:#047857;--red:#b4453c;--amber:#8a6d1f;--amber-soft:#8a6d1f14;--btn-primary:#047857;--btn-primary-hover:#065f46;--btn-primary-fg:#fff;--btn-ink:#047857;--btn-ink-fg:#fff;--code-bg:#f7f8f9;--editor-bg:#fff;--code-text:#1f2328;--shadow:0 1px 2px #1f23280f;--glow:radial-gradient(120% 90% at 50% 0%,#0478570a,transparent 60%);--cm-keyword:#cf222e;--cm-string:#0a3069;--cm-number:#0550ae;--cm-comment:#6e7781;--cm-def:#6639ba;--cm-builtin:#953800;--cm-operator:#1f2328;--cm-variable:#1f2328;--cm-property:#0550ae;--cm-meta:#6e7781;--cm-sel:#0969da24;--radius:6px;--radius-sm:6px;--radius-pill:999px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}[data-theme=dark]{--bg:#08090c;--bg-2:#0c0e12;--panel:#0f1216;--panel-2:#141820;--border:#1c2128;--border-2:#252b34;--text:#e7ebf0;--muted:#8a94a2;--muted-2:#626b77;--accent:#34d399;--accent-strong:#6ee7b7;--accent-soft:#34d3991f;--green:#34d399;--red:#f0857d;--amber:#c9a227;--amber-soft:#c9a2271a;--btn-primary:#10b981;--btn-primary-hover:#34d399;--btn-primary-fg:#04120c;--btn-ink:#10b981;--btn-ink-fg:#04120c;--code-bg:#0b0d11;--editor-bg:#0b0d11;--code-text:#e7ebf0;--shadow:0 1px 2px #0006;--glow:radial-gradient(120% 90% at 50% 0%,#0a1512 0%,transparent 60%);--cm-keyword:#ff7b72;--cm-string:#a5d6ff;--cm-number:#79c0ff;--cm-comment:#8b949e;--cm-def:#d2a8ff;--cm-builtin:#ffa657;--cm-operator:#e6edf3;--cm-variable:#ffa657;--cm-property:#79c0ff;--cm-meta:#8b949e;--cm-sel:#388bfd38}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6;transition:background .2s,color .2s;overflow:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :after,:root[data-reduced-motion=true] :before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.topbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:20;justify-content:space-between;height:58px;padding:0 18px;position:relative}.brand,.topbar{align-items:center;display:flex}.brand{gap:11px}.brand-mark{place-items:center;width:32px;height:32px;display:grid}.brand-logo{object-fit:contain;width:32px;height:32px;display:block}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{letter-spacing:-.2px;color:var(--text);font-size:16px;font-weight:700}.brand-sub{color:var(--muted);font-size:11.5px}.topbar-right{gap:12px}.progress-wrap,.topbar-right{align-items:center;display:flex}.progress-wrap{gap:8px}.progress-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;width:150px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);width:0;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.progress-label{color:var(--muted);font-variant-numeric:tabular-nums;min-width:34px;font-size:12px}.btn{font-family:var(--sans);border:1px solid var(--border-2);background:var(--bg-2);color:var(--text);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:5px 15px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s}.btn:hover{border-color:var(--muted-2)}.btn:active,.btn:hover{background:var(--panel-2)}.btn-small{font-size:12.5px}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--panel-2);border-color:#0000}.btn-accent{border-color:var(--border-2);color:var(--accent);background:0 0}.btn-accent:hover{background:var(--accent-soft);border-color:var(--border-2)}.btn-primary{background:var(--btn-primary);color:var(--btn-primary-fg);border-color:#1b1f2426}.btn-primary:hover{background:var(--btn-primary-hover);border-color:#1b1f2426}.btn:disabled{opacity:.5;cursor:not-allowed}.app{height:calc(100vh - 58px);display:flex}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);flex-shrink:0;width:288px;overflow-y:auto}.sidebar-inner{padding:10px 8px 32px}.section-block{margin-bottom:14px}.section-head{border-radius:6px;align-items:center;gap:8px;padding:5px 8px;display:flex}.section-emoji{color:var(--muted-2);font-size:15px}.section-titles{flex-direction:column;min-width:0;line-height:1.25;display:flex}.section-titles .st-name{font-size:12.5px;font-weight:600}.section-titles .st-tag{color:var(--muted-2);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.section-locked{opacity:.55}.soon-pill{text-transform:uppercase;letter-spacing:.6px;background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:99px;margin-left:auto;padding:2px 6px;font-size:9.5px}.route-picker{margin:2px 4px 8px}.route-current{width:100%;color:var(--muted);cursor:pointer;text-align:left;font-family:var(--sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:7px;padding:6px 8px;transition:background .12s,color .12s;display:flex}.route-current:hover,.route-picker.open .route-current{background:var(--panel-2);color:var(--text)}.route-current .ic{width:13px;height:13px;color:var(--muted-2);flex:none;display:block}.route-current:hover .ic,.route-picker.open .route-current .ic{color:var(--accent)}.route-name{color:inherit;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.route-chevron{color:var(--muted-2);margin-right:auto;padding-left:6px;font-size:7px}.route-current:hover .route-chevron{color:var(--muted)}.route-options{margin:4px 0 0;padding:0;list-style:none}.route-option{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);background:0 0;border:none;border-left:2px solid #0000;border-radius:0 6px 6px 0;flex-direction:column;gap:2px;margin-bottom:2px;padding:7px 9px;transition:background .12s,border-color .12s;display:flex}.route-option.active,.route-option:hover{background:var(--panel-2)}.route-option.active{border-left-color:var(--accent)}.route-option-head{align-items:center;gap:6px;display:flex}.route-option-label{color:var(--text);font-size:12px;font-weight:600}.route-option-head .ic{width:12px;height:12px;color:var(--accent);margin-left:auto}.route-option-blurb{color:var(--muted-2);font-size:10.5px;line-height:1.4}.route-option-meta{color:var(--muted-2);font-size:10px;font-family:var(--mono)}.off-route{margin:4px 8px 0}.off-route-toggle{text-align:left;cursor:pointer;width:100%;color:var(--muted-2);font-family:var(--sans);background:0 0;border:none;padding:5px 0;font-size:10.5px}.off-route-toggle:hover{color:var(--accent)}.lesson-list.dim .lesson-item{opacity:.55}.lesson-list.dim .lesson-item.active,.lesson-list.dim .lesson-item:hover{opacity:1}.lesson-list{margin:3px 0 0;padding:0;list-style:none}.lesson-item{cursor:pointer;color:var(--muted);border-left:2px solid #0000;border-radius:0 6px 6px 0;align-items:center;gap:9px;margin:0 4px;padding:5px 8px 5px 9px;font-size:12.5px;transition:color .12s,background .12s;display:flex}.lesson-item.active,.lesson-item:hover{background:var(--panel-2);color:var(--text)}.lesson-item.active{border-left-color:var(--accent)}.lesson-item.capstone .li-title{color:var(--muted);font-weight:600}.li-check{border:1.5px solid var(--border-2);color:#0000;border-radius:50%;flex-shrink:0;place-items:center;width:14px;height:14px;font-size:9px;display:grid}.lesson-item.done .li-check{background:var(--accent);border-color:var(--accent);color:var(--bg)}.lesson-item.active .li-check{border-color:var(--accent)}.li-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.li-num{font-family:var(--mono);color:var(--muted-2);font-size:10px}.workspace{flex:1;min-width:0;display:flex}.lesson-pane{background:var(--bg);background-image:var(--glow);background-repeat:no-repeat;flex:46%;min-width:320px;display:flex;overflow:hidden}.lesson-scroll{width:100%;padding:28px 34px 80px;overflow-y:auto}.resizer{cursor:col-resize;background:var(--border);flex-shrink:0;width:6px;transition:background .15s}.resizer:hover{background:var(--accent)}.lesson-crumbs{color:var(--muted);font-size:12px;font-family:var(--mono);margin-bottom:8px}#lesson-title{letter-spacing:-.6px;margin:0 0 12px;font-size:28px;font-weight:700;line-height:1.15}.lesson-tags{flex-wrap:wrap;gap:7px;margin-bottom:22px;display:flex}#lesson-title{font-size:25px}.tag{border:1px solid var(--border-2);border-radius:5px;padding:2px 9px;font-size:11px}.tag,.tag.roadmap{color:var(--muted);background:0 0}.tag.roadmap{border-color:var(--border-2)}.task-card{border:none;border-left:2px solid var(--accent);background:0 0;border-radius:0;margin-bottom:22px;padding:2px 0 2px 14px}.task-badge{color:var(--accent);margin-bottom:4px;font-size:11px;font-weight:600}#task-text{font-size:14px;line-height:1.55}.prose{color:var(--text)}.prose h1,.prose h2,.prose h3{color:var(--text);letter-spacing:-.35px;font-weight:650;line-height:1.25}.prose h1{margin:0 0 10px;font-size:22px}.prose>div:first-child>h1:first-child,.prose>h1:first-child{display:none}.prose h2{margin:30px 0 10px;font-size:17px}.prose h3{color:var(--muted);margin:22px 0 8px;font-size:14.5px}.prose p{margin:10px 0}.prose ol,.prose ul{padding-left:20px}.prose li{margin:4px 0}.prose code{font-family:var(--mono);background:var(--panel-2);color:var(--text);border-radius:4px;padding:1px 5px;font-size:12.5px}.prose pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:12px 14px;overflow-x:auto}.prose pre code{color:var(--code-text);background:0 0;border:none;padding:0;font-size:12.5px}.prose blockquote{border-left:2px solid var(--border-2);color:var(--muted);background:0 0;margin:14px 0;padding:2px 0 2px 14px;font-size:13.5px}.prose blockquote p{margin:4px 0}.prose blockquote strong{color:var(--text)}.prose hr{border:none;border-top:1px solid var(--border);margin:22px 0}.prose strong{color:var(--text);font-weight:600}.prose table{border-collapse:collapse;width:100%;margin:14px 0}.prose td,.prose th{border:1px solid var(--border);text-align:left;padding:7px 11px;font-size:13.5px}.prose th{background:var(--panel-2)}.hljs{color:var(--code-text);background:0 0}.hljs-comment,.hljs-quote{color:var(--cm-comment);font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-section,.hljs-selector-tag{color:var(--cm-keyword)}.hljs-addition,.hljs-attr,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:var(--cm-string)}.hljs-bullet,.hljs-number,.hljs-symbol{color:var(--cm-number)}.hljs-name,.hljs-selector-class,.hljs-selector-id,.hljs-title{color:var(--cm-def)}.hljs-built_in,.hljs-builtin-name,.hljs-class .hljs-title,.hljs-type{color:var(--cm-builtin)}.hljs-params{color:var(--code-text)}.hljs-comment .hljs-doctag,.hljs-meta{color:var(--cm-meta)}.hljs-attribute,.hljs-template-variable,.hljs-variable{color:var(--cm-property)}.hints{margin-top:24px}.hint{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);margin:8px 0;overflow:hidden}.hint summary{cursor:pointer;color:var(--amber);padding:10px 14px;font-size:13px;font-weight:600;list-style:none}.hint summary::-webkit-details-marker{display:none}.hint[open] summary{border-bottom:1px solid var(--border)}.hint .hint-body{color:var(--text);padding:10px 14px;font-size:13.5px}.hint .hint-body code{font-family:var(--mono);background:var(--panel-2);border-radius:4px;padding:1px 5px}.workbench{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex:54%;min-width:380px;display:flex}.editor-toolbar{border-bottom:1px solid var(--border);background:var(--bg-2);justify-content:space-between;padding:8px 12px}.editor-toolbar,.file-tab{align-items:center;display:flex}.file-tab{font-family:var(--mono);color:var(--muted);gap:8px;font-size:12.5px}.file-tab .dot{background:var(--accent);border-radius:50%;width:9px;height:9px}.toolbar-actions{gap:7px;display:flex}.editor-host{flex:auto;min-height:140px;overflow:hidden}.CodeMirror{background:var(--editor-bg);color:var(--code-text);font-size:13.5px;line-height:1.55;height:100%!important;font-family:var(--mono)!important}.CodeMirror-gutters{background:var(--editor-bg);border-right:1px solid var(--border)}.CodeMirror-linenumber{color:var(--muted-2)}.CodeMirror-cursor{border-left:1.5px solid var(--text)}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-selected{background:var(--cm-sel)}.CodeMirror-activeline-background{background:var(--accent-soft)}.CodeMirror-matchingbracket{font-weight:700;color:var(--accent)!important}.cm-s-default .cm-keyword{color:var(--cm-keyword)}.cm-s-default .cm-string,.cm-s-default .cm-string-2{color:var(--cm-string)}.cm-s-default .cm-number{color:var(--cm-number)}.cm-s-default .cm-comment{color:var(--cm-comment);font-style:italic}.cm-s-default .cm-def{color:var(--cm-def)}.cm-s-default .cm-variable,.cm-s-default .cm-variable-2,.cm-s-default .cm-variable-3{color:var(--cm-variable)}.cm-s-default .cm-builtin{color:var(--cm-builtin)}.cm-s-default .cm-operator{color:var(--cm-operator)}.cm-s-default .cm-property{color:var(--cm-property)}.cm-s-default .cm-meta{color:var(--cm-meta)}.cm-s-default .cm-atom{color:var(--cm-number)}.panel{height:var(--panel-h,42%);border-top:1px solid var(--border);flex-direction:column;flex:none;min-height:120px;display:flex}.panel-resizer{cursor:row-resize;z-index:3;background:0 0;flex:none;height:7px;transition:background .13s;position:relative}.panel-resizer:before{content:"";background:var(--border-2);border-radius:99px;width:42px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.panel-resizer:hover{background:var(--accent-soft)}.panel-resizer:hover:before{background:var(--accent)}body.no-select{-webkit-user-select:none;user-select:none}.panel-tabs{background:var(--bg-2);border-bottom:1px solid var(--border);gap:2px;padding:0 8px;display:flex}.ptab{color:var(--muted);font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:12.5px;font-weight:600}.ptab.active,.ptab:hover{color:var(--text)}.ptab.active{border-bottom-color:var(--accent)}.ptab .badge-count{text-align:center;background:var(--panel-2);border-radius:99px;min-width:16px;margin-left:6px;padding:0 5px;font-size:10.5px;display:inline-block}.ptab.ok .badge-count{background:var(--green);color:#fff}.ptab.fail .badge-count{background:var(--red);color:#fff}.panel-body{flex:1;position:relative;overflow:auto}.panel-view{height:100%;padding:14px 16px;display:none}.panel-view.active{display:block}.console-out{font-family:var(--mono);white-space:pre-wrap;color:var(--code-text);min-height:100%;margin:0;font-size:13px}.console-out .c-err{color:var(--red)}.console-out .c-muted{color:var(--muted)}.console-out .c-ok{color:var(--green)}.tests-empty{color:var(--muted);padding:6px;font-size:13.5px}.test-summary{align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.test-summary.pass{color:var(--green)}.test-summary.fail{color:var(--amber)}.test-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);align-items:flex-start;gap:10px;margin:6px 0;padding:9px 11px;display:flex}.test-row .t-icon{flex-shrink:0;margin-top:1px;font-size:14px}.test-row.pass .t-icon{color:var(--green)}.test-row.fail .t-icon{color:var(--red)}.test-row .t-body{flex:1;min-width:0}.test-row .t-desc{font-size:13px}.test-row .t-detail{font-family:var(--mono);color:var(--muted);word-break:break-word;margin-top:4px;font-size:12px}.test-row .t-detail .exp{color:var(--green)}.test-row .t-detail .got{color:var(--red)}.confetti-line{color:var(--green);margin-top:12px;font-weight:700}.widget-empty{color:var(--muted);font-size:13.5px}.fn-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin:0 0 14px;overflow:hidden}.fn-card-head{border-bottom:1px solid var(--border);background:var(--bg-2);font-family:var(--mono);color:var(--accent-strong);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.fn-card-head .fn-desc{color:var(--muted);font-family:var(--sans);font-size:12px}.fn-inputs{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.fn-field{flex-direction:column;gap:4px;display:flex}.fn-field--wide{flex:100%}.fn-field label{color:var(--muted);font-size:11.5px;font-family:var(--mono)}.fn-field input,.fn-field select,.fn-field textarea{background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:var(--mono);border-radius:7px;width:120px;padding:7px 9px;font-size:13px}.fn-field textarea{resize:vertical;white-space:pre;tab-size:2;width:100%;min-height:84px;line-height:1.5;overflow:auto}.fn-field input:focus,.fn-field select:focus,.fn-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.fn-call-row{align-items:center;gap:10px;margin-top:12px;display:flex}.fn-result{border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);margin-top:12px;padding:10px 12px;font-size:13px;display:none}.fn-result.show{display:block}.fn-result .fr-label{color:var(--muted);margin-bottom:3px;font-size:11px}.fn-result .fr-value{color:var(--green);word-break:break-word;white-space:pre-wrap}.fn-result.err .fr-value{color:var(--red)}.fn-scenarios{flex-wrap:wrap;align-items:center;gap:6px;margin-top:11px;display:flex}.fn-sc-label{font-size:11px;margin-right:2px}.fn-chip,.fn-sc-label{color:var(--muted);font-family:var(--mono)}.fn-chip{font-size:12px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border-2);border-radius:99px;padding:4px 10px;transition:all .12s}.fn-chip:hover{border-color:var(--accent);color:var(--text);transform:translateY(-1px)}.bill-app{flex-wrap:wrap;gap:16px;display:flex}.bill-form,.bill-receipt{flex:240px;min-width:230px}.bill-form{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.bill-form h4,.bill-receipt h4{margin:0 0 14px;font-size:14px;font-weight:700}.bill-field{margin-bottom:12px}.bill-field label{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.bill-field input,.bill-field select{background:var(--bg);border:1px solid var(--border-2);width:100%;color:var(--text);font-size:14px;font-family:var(--mono);border-radius:8px;padding:9px 11px}.bill-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.tip-presets{gap:6px;margin-top:6px;display:flex}.tip-preset{text-align:center;cursor:pointer;background:var(--panel-2);border:1px solid var(--border-2);color:var(--muted);border-radius:99px;flex:1;padding:6px;font-size:12.5px}.tip-preset.active,.tip-preset:hover{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.bill-receipt{background:var(--code-bg);border:1px dashed var(--border-2);border-radius:var(--radius);font-family:var(--mono);padding:18px;position:relative}.receipt-line{color:var(--text);justify-content:space-between;padding:6px 0;font-size:13.5px;display:flex}.receipt-line.muted{color:var(--muted)}.receipt-line.total{border-top:1px dashed var(--border-2);color:var(--text);margin-top:8px;padding-top:12px;font-size:15px;font-weight:700}.receipt-line.perhead{color:var(--accent-strong);font-size:17px;font-weight:700}.receipt-placeholder{color:var(--muted);text-align:center;padding:30px 0;font-size:13px}.receipt-error{color:var(--red);padding:14px 0;font-size:13px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);border:2px solid var(--bg);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}.toast{background:var(--panel);border:1px solid var(--border-2);color:var(--text);opacity:0;pointer-events:none;z-index:100;box-shadow:var(--shadow);border-radius:99px;padding:12px 20px;font-size:13.5px;font-weight:600;transition:all .3s;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{border-color:var(--green)}.toast.error{border-color:var(--red)}.resources{margin:2px 0 24px}.resources:empty{margin:0}.res-head{color:var(--muted-2);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:600}.res-list{flex-direction:column;display:flex}.res-item{border:none;border-top:1px solid var(--border);background:0 0;border-radius:0;align-items:center;gap:10px;padding:7px 2px;text-decoration:none;transition:color .12s;display:flex}.res-item:last-child{border-bottom:1px solid var(--border)}.res-item:hover{background:0 0;text-decoration:none;transform:none}.res-item:hover .res-title{color:var(--accent)}.res-badge{text-transform:uppercase;letter-spacing:.5px;text-align:left;min-width:46px;border:none;border-radius:0;flex-shrink:0;padding:0;font-size:9.5px;font-weight:500}.res-badge,.res-badge.article,.res-badge.course,.res-badge.docs,.res-badge.video{color:var(--muted-2);background:0 0}.res-title{color:var(--muted);flex:1;font-size:13px;transition:color .12s}.res-ext{color:var(--muted-2);flex-shrink:0;font-size:11px}.app-context{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:14px;padding:11px 14px}.ac-top{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:5px;display:flex}.ac-chip{color:var(--muted-2);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.ac-top strong{color:var(--text);font-size:13px;font-weight:600}.ac-role{color:var(--muted);margin-bottom:6px;font-size:12.5px}.ac-role code{font-family:var(--mono);background:var(--panel-2);color:var(--text);border-radius:4px;padding:1px 5px;font-size:12px}.ac-scenario{color:var(--muted);border-left:2px solid var(--border-2);background:0 0;border-radius:0;margin-bottom:7px;padding:3px 0 3px 11px;font-size:12.5px}.ac-scen-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-right:6px;font-size:9.5px;font-weight:600}.ac-maplink{color:var(--accent);font-family:var(--sans);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.ac-maplink:hover{text-decoration:underline}.check-box,.fix-box,.play-box,.predict-box,.trace-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.check-box:hover,.fix-box:hover,.play-box:hover,.predict-box:hover,.trace-box:hover{border-color:var(--border-2)}.play-head{justify-content:space-between;align-items:center;min-height:30px;padding:5px 6px 5px 12px;display:flex}.play-tag{color:var(--muted-2);font-size:10px;font-family:var(--mono);letter-spacing:.4px;text-transform:lowercase}.check-box:hover .play-tag,.fix-box:hover .play-tag,.play-box:hover .play-tag,.predict-box:hover .play-tag,.trace-box:hover .play-tag{color:var(--muted)}.check-box.broken .play-tag{color:var(--red);text-transform:none}.play-tag .ic{opacity:.7}.play-editor .CodeMirror{background:0 0;font-size:12.5px;line-height:1.55;height:auto!important;font-family:var(--mono)!important}.play-editor .CodeMirror-scroll{min-height:0}.play-out,.prose .play-out{border:none;border-top:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;color:var(--muted);background:0 0;border-radius:0;margin:0;padding:8px 13px;font-size:12px}.play-out:before{content:"→ ";color:var(--muted-2)}.play-out.err{color:var(--red)}.predict-box pre,.prose .predict-box pre{background:0 0;border:none;border-radius:0;margin:0;padding:10px 13px}.predict-verdict{color:var(--muted);font-size:10.5px;font-weight:600}.predict-verdict.ok{color:var(--accent)}.predict-choices{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.predict-choice{border:1px solid var(--border-2);color:var(--muted);cursor:pointer;font-family:var(--mono);background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;transition:color .12s,border-color .12s;display:inline-flex}.predict-choice code{font-size:inherit;color:inherit;background:0 0;padding:0}.predict-choice:hover:not(:disabled){color:var(--text);border-color:var(--muted-2)}.predict-choice:disabled{cursor:default}.predict-choice.right{border-color:var(--accent);color:var(--accent)}.predict-choice.wrong{border-color:var(--red);color:var(--red);text-decoration:line-through}.predict-choice.dim{opacity:.3}.predict-choice .ic{width:12px;height:12px}.predict-why{border-top:1px solid var(--border);color:var(--muted);padding:10px 12px;font-size:12.5px;line-height:1.55}.predict-why strong{color:var(--text);font-weight:600}.check-expr{text-align:center;padding:18px 13px 14px}.check-expr .math-display{margin:0}.check-box .predict-choice{font-family:inherit;font-size:13px}.fix-actions{gap:4px;display:inline-flex}.fix-err-name{color:var(--red);font-size:10px;font-family:var(--mono);background:0 0;margin-left:7px;padding:0}.fix-task{padding:0 12px 8px;line-height:1.5}.fix-task,.fix-verdict{color:var(--muted);margin:0;font-size:12px}.fix-verdict{border-top:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;display:flex}.fix-verdict.ok{color:var(--accent)}.fix-verdict .ic{width:13px;height:13px}.fix-hint{color:var(--muted);border-top:1px solid var(--border);align-items:flex-start;gap:7px;margin:0;padding:8px 12px;font-size:12px;line-height:1.5;display:flex}.fix-hint .ic{width:13px;height:13px;color:var(--muted-2);flex:none;margin-top:2px}.fix-hint-btn{text-align:left;border:none;border-top:1px solid var(--border);width:100%;color:var(--muted);font-family:var(--sans);cursor:pointer;background:0 0;padding:7px 12px;font-size:11.5px;display:block}.fix-hint-btn:hover{color:var(--accent)}.trace-count{font-size:10.5px;font-family:var(--mono);color:var(--muted-2)}.trace-code{font-family:var(--mono);padding:6px 0;font-size:12.5px;line-height:1.6;overflow-x:auto}.trace-line{white-space:pre;color:var(--muted-2);border-left:2px solid #0000;align-items:center;gap:12px;padding:0 12px;display:flex}.trace-line.here{border-left-color:var(--accent)}.trace-line.here,.trace-line.here .trace-src{color:var(--text)}.trace-ln{opacity:.5;text-align:right;-webkit-user-select:none;user-select:none;min-width:16px}.trace-ln,.trace-src{color:var(--muted-2)}.trace-marker{color:var(--accent);margin-left:auto;padding-left:14px;font-size:10.5px}.trace-controls{border-top:1px solid var(--border);align-items:center;gap:6px;padding:7px 12px;display:flex}.trace-scrub{accent-color:var(--accent);cursor:pointer;flex:1;height:3px}.trace-panes{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.trace-pane{min-width:0;padding:9px 12px}.trace-pane+.trace-pane{border-left:1px solid var(--border)}.trace-pane-h{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-bottom:6px;font-size:9.5px;font-weight:600}.trace-vars{border-collapse:collapse;width:100%;font-family:var(--mono);margin:0;font-size:11.5px}.prose .trace-vars td,.trace-vars td{vertical-align:top;border:none;padding:2px 8px 2px 0;font-size:11.5px}.trace-vars tr.changed .tv-name,.trace-vars tr.changed .tv-val{color:var(--accent)}.tv-name{color:var(--muted);white-space:nowrap}.tv-val{color:var(--text);word-break:break-word;width:99%}.tv-type{color:var(--muted-2);opacity:.55;text-align:right;white-space:nowrap;font-size:10px}.trace-empty,.trace-frame{color:var(--muted-2);margin:0;font-size:11.5px}.trace-frame{margin-top:7px}.prose .trace-out,.trace-out{font-family:var(--mono);white-space:pre-wrap;color:var(--text);background:0 0;border:none;border-radius:0;min-height:16px;margin:0;padding:0;font-size:11.5px}.trace-note{color:var(--muted-2);border-top:1px solid var(--border);margin:0;padding:8px 12px;font-size:11.5px}@media (max-width:620px){.trace-panes{grid-template-columns:1fr}.trace-pane+.trace-pane{border-left:none;border-top:1px solid var(--border)}}.mx-summary{border:1px solid var(--border);background:var(--panel);border-radius:10px;flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:26px;padding:14px 16px;display:flex}.mx-stat{flex-direction:column;line-height:1.1;display:flex}.mx-stat-n{color:var(--text);font-size:22px;font-weight:650;font-family:var(--mono)}.mx-stat-l{color:var(--muted-2);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px}.mx-shape{color:var(--muted);flex:240px;margin:0;font-size:12.5px;line-height:1.55}.mx-shape strong{color:var(--accent);font-weight:600}.mx-cluster{margin-bottom:26px}.mx-cluster-head h2{color:var(--text);margin:0;font-size:14px;font-weight:650}.mx-cluster-head p{color:var(--muted-2);margin:2px 0 9px;font-size:12px}.mx-table{border-collapse:collapse;width:100%}.mx-table thead th{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);text-align:center;background:0 0;border:none;width:74px;padding:0 0 6px;font-size:9.5px;font-weight:500}.mx-row{cursor:pointer;border-top:1px solid var(--border)}.mx-row:hover{background:var(--panel-2)}.mx-row.unreachable{opacity:.45}.mx-name{text-align:left;color:var(--text);background:0 0;border:none;padding:7px 8px 7px 2px;font-size:12.5px;font-weight:400}.mx-label{margin-right:8px}.mx-cross{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:9.5px}.mx-soon{color:var(--muted-2);font-size:9.5px;font-style:italic}.mx-cell{text-align:center;background:0 0;border:none;padding:7px 0}.mx-dot{border:1.5px solid var(--border-2);background:0 0;border-radius:50%;width:9px;height:9px;transition:all .12s;display:inline-block}.mx-cell.on .mx-dot{border-color:var(--accent);background:var(--accent)}.mx-cell.current .mx-dot{box-shadow:0 0 0 3px var(--accent-soft)}.mx-detail-row td{background:0 0;border:none;padding:0 0 12px 2px}.mx-detail{border-left:2px solid var(--accent);padding:4px 0 4px 12px}.mx-blurb{color:var(--muted);margin:0 0 5px;font-size:12.5px;line-height:1.5}.mx-where{color:var(--muted-2);font-size:11px;font-family:var(--mono);margin:0 0 6px}.mx-next{color:var(--accent);font-size:12px;font-weight:500;text-decoration:none}.mx-next:hover{text-decoration:underline}.mx-done{margin:0;font-size:12px}.mx-done,.mx-legend{color:var(--muted-2)}.mx-legend{border-top:1px solid var(--border);align-items:flex-start;gap:8px;margin:26px 0 0;padding-top:12px;font-size:11.5px;line-height:1.55;display:flex}.mx-legend .ic{flex:none;width:12px;height:12px;margin-top:3px}.mx-legend em{color:var(--muted);font-style:normal}.map-wrap{max-width:760px}.map-title{color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.map-count{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:600}.map-sub{color:var(--muted);margin:5px 0 16px;font-size:12.5px}.map-flow{flex-direction:column;display:flex}.map-node{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;align-items:flex-start;gap:12px;padding:11px 13px;transition:all .14s;display:flex}.map-node:hover{border-color:var(--border-2);transform:translate(2px)}.map-node-status{background:var(--panel-2);border:1.5px solid var(--border-2);width:24px;height:24px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.map-node.done .map-node-status{background:var(--green);border-color:var(--green);color:#fff}.map-node.current{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.map-node.current .map-node-status{border-color:var(--accent);color:var(--accent);animation:pulse 1.6s ease-in-out infinite}.map-node-label{color:var(--text);align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.here-pill{text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:9.5px;font-weight:700}.map-node-fn{font-family:var(--mono);color:var(--accent-strong);font-size:11.5px}.map-node-role{color:var(--muted);margin-top:3px;font-size:12px}.map-connector{background:var(--border-2);width:2px;height:12px;margin-left:25px}.layout-toggles{border-right:1px solid var(--border);align-items:center;gap:4px;margin-right:4px;padding-right:12px;display:flex}.tg-btn{width:38px;height:32px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;transition:all .13s;display:grid}.tg-btn svg{width:22px;height:auto;display:block}.tg-btn.active{color:var(--accent)}.tg-btn:hover{color:var(--accent-strong);background:0 0}.ptab-toggle .pane,.tg-btn .pane{opacity:.28}.panel-tabs{align-items:center}.ptab-toggle{width:32px;height:28px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;margin-left:auto;margin-right:2px;transition:all .13s;display:grid}.ptab-toggle svg{width:20px;height:auto;display:block}.ptab-toggle.active{color:var(--accent)}.ptab-toggle:hover{color:var(--accent-strong);background:0 0}.ptab-toggle+.ptab-toggle{margin-left:0}.workbench.panel-collapsed .panel{flex:none;height:auto;min-height:0}.workbench.panel-collapsed .panel-body{display:none}.workbench.panel-maximized .panel{flex:auto;height:auto}.workbench.panel-collapsed .panel-resizer,.workbench.panel-maximized .editor-host,.workbench.panel-maximized .panel-resizer{display:none}.sidebar{transition:width .18s}.app.sidebar-rail .sidebar{width:64px}.app.sidebar-rail .sidebar-inner{padding:12px 0 30px}.app.sidebar-rail .li-num,.app.sidebar-rail .li-title,.app.sidebar-rail .off-route,.app.sidebar-rail .route-picker,.app.sidebar-rail .section-titles,.app.sidebar-rail .soon-pill{display:none}.app.sidebar-rail .section-head{justify-content:center;gap:0;padding:8px 0 4px}.app.sidebar-rail .section-emoji{font-size:20px}.app.sidebar-rail .section-block{margin-bottom:6px}.app.sidebar-rail .lesson-list{margin:0;position:relative}.app.sidebar-rail .lesson-list:before{content:"";background:var(--border-2);z-index:0;width:2px;position:absolute;top:16px;bottom:16px;left:50%;transform:translate(-50%)}.app.sidebar-rail .lesson-item{border:none;justify-content:center;gap:0;margin:0;padding:7px 0}.app.sidebar-rail .lesson-item:hover{background:0 0}.app.sidebar-rail .lesson-item:hover .li-check{border-color:var(--accent)}.app.sidebar-rail .li-check{z-index:1;background:var(--bg-2);border-color:var(--border-2);width:24px;height:24px;font-family:var(--mono);font-size:10px;font-weight:600;transition:all .12s;position:relative}.app.sidebar-rail .lesson-item:not(.done) .li-check:before{content:attr(data-num);color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.app.sidebar-rail .lesson-item.done .li-check{background:var(--green);border-color:var(--green)}.app.sidebar-rail .lesson-item.active .li-check{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app.sidebar-rail .lesson-item.active .li-check:before{color:var(--accent);font-weight:700}.app.lesson-hidden .lesson-pane,.app.lesson-hidden .resizer{display:none}.app.lesson-hidden .workbench{flex:auto!important}.app.workbench-hidden .resizer,.app.workbench-hidden .workbench{display:none}.app.workbench-hidden .lesson-pane{min-width:0;flex:auto!important}.ic{vertical-align:-.15em;flex-shrink:0;width:1em;height:1em;display:inline-block}.btn,.ic-slot{align-items:center;display:inline-flex}.btn{justify-content:center;gap:6px;padding:5px 16px}.btn-small{padding:3px 12px}.btn .ic{vertical-align:middle;width:15px;height:15px}.btn-icon{padding:8px}.btn-icon .ic{width:17px;height:17px}.brand-mark{align-items:center;display:inline-flex}.brand-mark svg{display:block}.ptab{align-items:center;gap:7px;padding:12px 16px;display:inline-flex}.ptab .ic{width:15px;height:15px}.panel-tabs{padding:0 10px}.section-emoji{align-items:center;display:inline-flex}.section-emoji .ic{width:20px;height:20px;color:var(--muted);vertical-align:middle}.section-locked .section-emoji .ic{color:var(--muted-2)}.app.sidebar-rail .section-emoji .ic{width:22px;height:22px;color:var(--accent)}.task-badge{align-items:center;gap:7px;display:inline-flex}.task-badge .ic{width:15px;height:15px}.ac-chip{align-items:center;gap:6px;display:inline-flex}.ac-chip .ic{width:14px;height:14px}.ac-maplink{align-items:center;gap:4px;display:inline-flex}.ac-maplink .ic{width:15px;height:15px}.res-head{align-items:center;gap:8px;display:inline-flex}.res-head .ic{width:16px;height:16px;color:var(--accent-strong)}.map-title .ic{width:17px;height:17px;color:var(--accent-strong);vertical-align:-.2em}.tag-icon{align-items:center;gap:5px;display:inline-flex}.tag-icon .ic{width:12px;height:12px}.play-tag{align-items:center;gap:6px;display:inline-flex}.play-tag .ic{width:13px;height:13px}.hint summary{align-items:center;gap:8px;display:flex}.hint summary .ic{width:15px;height:15px}.test-summary .ic{width:17px;height:17px}.test-row .t-icon .ic{width:15px;height:15px}.confetti-line{align-items:center;gap:7px;display:flex}.confetti-line .ic{width:16px;height:16px}.map-node-status .ic{width:13px;height:13px}#lesson-title .ic{vertical-align:-.05em;width:.8em;height:.8em;color:var(--muted)}.topbar-right{gap:14px}.lesson-scroll{padding:32px 42px 90px}#lesson-title{margin:0 0 14px}.lesson-tags{gap:8px;margin-bottom:24px}.lesson-item{margin:3px 5px;padding:9px 10px 9px 12px}.task-card{margin-bottom:28px;padding:16px 18px}.app-context{margin-bottom:22px;padding:15px 18px}.prose p{line-height:1.72}.prose h2{margin-top:34px;padding-bottom:8px}.res-item{padding:11px 14px}.res-list{gap:8px}.hint{margin:9px 0}.hint summary{padding:11px 15px}.hint .hint-body{padding:12px 15px 14px}.editor-toolbar{padding:9px 14px}.toolbar-actions{gap:8px}.fn-card-body{padding:14px 16px}.fn-card-head{padding:11px 15px}@media (max-width:1080px){.workspace{flex-direction:column}.lesson-pane,.workbench{flex:none;width:100%}.lesson-pane{height:42%}.workbench{border-left:none;border-top:1px solid var(--border);height:58%}.resizer{display:none}}@media (max-width:720px){.brand-sub,.sidebar{display:none}}.exercises{margin-top:34px}.ex-head-row{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;padding-top:20px;display:flex}.ex-h2{letter-spacing:-.3px;align-items:center;gap:9px;margin:0;font-size:21px;font-weight:700;display:inline-flex}.ex-h2 .ic{width:20px;height:20px;color:var(--accent)}.ex-progress{color:var(--muted);font-size:12px;font-family:var(--mono)}.ex-intro{color:var(--muted);margin:6px 0 18px;font-size:13.5px}.exercise-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:18px;padding:16px 18px;transition:border-color .15s}.exercise-card.solved{border-color:var(--green)}.ex-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.ex-name{font-size:15px;font-weight:700}.ex-solved-mark{color:var(--border-2);margin-left:auto;display:inline-flex}.ex-solved-mark .ic{width:20px;height:20px}.exercise-card.solved .ex-solved-mark{color:var(--green)}.ex-level{text-transform:uppercase;letter-spacing:.6px;border-radius:99px;padding:3px 9px;font-size:10px;font-weight:700}.lvl-warmup{background:var(--green)}@supports (color:color-mix(in lab,red,red)){.lvl-warmup{background:color-mix(in srgb,var(--green) 15%,transparent)}}.lvl-warmup{color:var(--green)}.lvl-drill{background:var(--accent-soft);color:var(--accent-strong)}.lvl-build{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.lvl-build{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.lvl-build{color:var(--accent-strong)}.lvl-boss{background:var(--amber)}@supports (color:color-mix(in lab,red,red)){.lvl-boss{background:color-mix(in srgb,var(--amber) 18%,transparent)}}.lvl-boss{color:var(--amber)}.lvl-capstone{color:#a855f7;background:#a855f733}.ex-prompt{font-size:14px}.ex-prompt p{margin:0 0 8px}.ex-prompt code{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.88em}.ex-prompt ul{margin:6px 0;padding-left:20px}.ex-skills{flex-wrap:wrap;gap:6px;margin:4px 0 12px;display:flex}.ex-skill{font-size:10.5px;font-family:var(--mono);background:var(--bg-2);border:1px solid var(--border);color:var(--muted);border-radius:99px;padding:2px 8px}.ex-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--editor-bg);overflow:hidden}.ex-editor .CodeMirror{height:auto;font-family:var(--mono);font-size:13px}.ex-editor .CodeMirror-scroll{min-height:90px}.ex-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ex-console{border-radius:var(--radius-sm);background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-text);margin:12px 0 0;padding:11px 14px;font-size:12.5px}.ex-console.err{color:var(--red)}.ex-result{margin-top:12px}.ex-result:empty{margin-top:0}.ex-hints{flex-direction:column;gap:6px;margin-top:10px;display:flex}.ex-hint-line{border-radius:var(--radius-sm);background:var(--amber);padding:9px 12px;font-size:13px}@supports (color:color-mix(in lab,red,red)){.ex-hint-line{background:color-mix(in srgb,var(--amber) 8%,transparent)}}.ex-hint-line{border-left:3px solid var(--amber)}.ex-hint-line .ic{width:14px;height:14px;color:var(--amber);vertical-align:-2px}.ex-hint-line code{font-family:var(--mono);background:var(--panel-2);border-radius:4px;padding:1px 5px;font-size:.88em}.ex-walk{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);margin-top:12px;padding:12px 15px;font-size:13.5px}.ex-walk-title{color:var(--accent-strong);align-items:center;gap:7px;margin-bottom:6px;font-weight:700;display:inline-flex}.ex-walk-title .ic{width:16px;height:16px}.ex-walk p{margin:0 0 8px}.ex-walk code{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.88em}.ex-walk pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto}.ex-walk pre code{background:0 0;border:none;padding:0}.theory-done{border-top:1px solid var(--border);margin:28px 0 8px;padding-top:20px}.theory-done-banner{color:var(--green);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.theory-done-banner .ic{width:18px;height:18px}.mx-row.ready .mx-name{color:var(--text)}.mx-ready{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:9.5px}.mx-blocked{color:var(--muted);margin:0 0 6px;font-size:12px;line-height:1.5}.mx-blocked strong{color:var(--text);font-weight:600}.mx-blocked em{color:var(--accent);font-style:normal}.rw-main{background:var(--bg);height:calc(100vh - 58px);overflow:hidden}.rw{height:100%;display:flex}.rw-scroll{flex:1;padding:8px;overflow:auto}.rw-svg{display:block}.rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-lane{fill:color-mix(in srgb,var(--text) 4%,transparent)}}.rw-band.t-advanced .rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-band.t-advanced .rw-lane{fill:color-mix(in srgb,var(--text) 7%,transparent)}}.rw-band.t-expert .rw-lane{fill:var(--text)}@supports (color:color-mix(in lab,red,red)){.rw-band.t-expert .rw-lane{fill:color-mix(in srgb,var(--text) 10%,transparent)}}.rw-lane-label{fill:var(--muted-2);font-family:var(--sans);text-transform:uppercase;letter-spacing:1.1px;font-size:11px;font-weight:600}.rw-band.t-beginner .rw-lane-label{fill:var(--accent)}.rw-lane-count{letter-spacing:.4px;text-transform:none;fill:var(--muted-2);opacity:.75;font-size:10px;font-weight:500}.rw-edge{fill:none;stroke:var(--border-2);stroke-width:1.2px}.rw-edge.cross{stroke:var(--accent);stroke-opacity:.5;stroke-width:1.4px}.rw-edge.off{stroke-opacity:.1}.rw-edge.on.cross{stroke-opacity:.8}.rw-node{cursor:pointer}.rw-node .rw-chip{fill:var(--bg-2);stroke:var(--border-2);stroke-width:1px;transition:fill .12s,stroke .12s}.rw-node .rw-text{fill:var(--muted);font-family:var(--sans);text-anchor:middle;pointer-events:none;font-size:11.5px}.rw-node.sel .rw-chip,.rw-node:hover .rw-chip{stroke:var(--accent)}.rw-node.sel .rw-text,.rw-node:hover .rw-text{fill:var(--text)}.rw-node.r1 .rw-chip{stroke:var(--muted-2)}.rw-node.r2 .rw-chip{fill:var(--accent)}@supports (color:color-mix(in lab,red,red)){.rw-node.r2 .rw-chip{fill:color-mix(in srgb,var(--accent) 14%,transparent)}}.rw-node.r2 .rw-chip{stroke:var(--accent)}.rw-node.r3 .rw-chip{fill:var(--accent);stroke:var(--accent)}.rw-node.r3 .rw-text{fill:var(--btn-primary-fg);font-weight:600}.rw-node.unbuilt .rw-chip{stroke-dasharray:3 3}.rw-node.off{opacity:.18}.rw-panel{border-left:1px solid var(--border);background:var(--bg-2);flex:none;width:290px;padding:16px 16px 24px;position:relative;overflow-y:auto}.rw-panel h3{color:var(--text);margin:0 0 6px;font-size:15px;font-weight:650}.rw-blurb{color:var(--muted);margin:0 0 10px;font-size:12.5px;line-height:1.55}.rw-meta{flex-wrap:wrap;gap:5px;margin-bottom:10px;display:flex}.rw-depth,.rw-ok,.rw-unbuilt{border:1px solid var(--border-2);color:var(--muted-2);border-radius:4px;padding:1px 6px;font-size:9.5px}.rw-depth.r2,.rw-depth.r3,.rw-ok{border-color:var(--accent);color:var(--accent)}.rw-line{color:var(--muted);margin:0 0 7px;font-size:12px;line-height:1.5}.rw-line strong{color:var(--text);font-weight:600}.rw-topics{font-family:var(--mono);font-size:10.5px}.rw-go{color:var(--accent);margin-top:6px;font-size:12px;text-decoration:none;display:inline-block}.rw-go:hover{text-decoration:underline}.rw-close,.rw-done{color:var(--muted-2)}.rw-close{cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1;position:absolute;top:10px;right:12px}.rw-close:hover{color:var(--text)}.rw-hint p{color:var(--muted-2);margin:0 0 10px;font-size:12px;line-height:1.6}.rw-hint strong{color:var(--muted)}.rw-swatch{background:var(--accent);vertical-align:middle;width:16px;height:2px;margin:0 2px;display:inline-block}@media (max-width:780px){.rw-panel{display:none}}.rw-edge{stroke-opacity:.35}.rw-edge.cross{stroke-opacity:.16}.rw:hover .rw-edge.on.cross{stroke-opacity:.85;stroke-width:1.8px}.rw-edge.on{stroke-opacity:.5}.rw-node.c0 .rw-chip{stroke:#6ea8fe}.rw-node.c1 .rw-chip{stroke:#7ee0c8}.rw-node.c2 .rw-chip{stroke:#6fd0e8}.rw-node.c3 .rw-chip{stroke:#8fb8f0}.rw-node.c4 .rw-chip{stroke:#9aa7c7}.rw-node.c5 .rw-chip{stroke:#b39ae0}.rw-node.c6 .rw-chip{stroke:#e0b087}.rw-node.c7 .rw-chip{stroke:#e8c07a}.rw-node.c8 .rw-chip{stroke:#f0a58c}.rw-node.c9 .rw-chip{stroke:#f09aa8}.rw-node.c10 .rw-chip{stroke:#d79ae0}.rw-node.c11 .rw-chip{stroke:#9ee0a8}.rw-node .rw-chip{stroke-opacity:.55}.rw-node.sel .rw-chip,.rw-node:hover .rw-chip{stroke-opacity:1;stroke-width:1.6px}.rw-legend{flex-wrap:wrap;gap:4px 10px;margin-bottom:12px;display:flex}.rw-key{color:var(--muted-2);align-items:center;gap:5px;font-size:10px;display:inline-flex}.rw-key i{border:1.5px solid;border-radius:3px;width:9px;height:9px}.rw-scroll{flex-direction:column;align-items:safe center;display:flex}.rw-legend{z-index:2;background:var(--bg);align-self:stretch;padding:6px 8px 10px;position:sticky;top:0}.rw-key.c0{color:#6ea8fe}.rw-key.c1{color:#7ee0c8}.rw-key.c2{color:#6fd0e8}.rw-key.c3{color:#8fb8f0}.rw-key.c4{color:#9aa7c7}.rw-key.c5{color:#b39ae0}.rw-key.c6{color:#e0b087}.rw-key.c7{color:#e8c07a}.rw-key.c8{color:#f0a58c}.rw-key.c9{color:#f09aa8}.rw-key.c10{color:#d79ae0}.rw-key.c11{color:#9ee0a8}.ui-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);font-size:9.5px;font-weight:600}.ui-desc{color:var(--muted);margin:0 0 8px;font-size:12.5px;line-height:1.55}.ui-desc strong{color:var(--text);font-weight:600}.ui-note{color:var(--muted-2);margin:0;font-size:11.5px;line-height:1.5}.ui-divider{border:none;border-top:1px solid var(--border);margin:12px 0}.ui-divider-labelled{text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);align-items:center;gap:8px;margin:14px 0 8px;font-size:9.5px;font-weight:600;display:flex}.ui-divider-labelled:after{content:"";border-top:1px solid var(--border);flex:1}.pw-wrap{display:block;position:relative}.pw-input{padding-right:40px!important}.pw-toggle{width:30px;height:30px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;transition:color .12s,background .12s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.pw-toggle[aria-pressed=true]{color:var(--accent)}.pw-toggle:disabled{opacity:.4;cursor:not-allowed}.pw-toggle .ic{width:16px;height:16px}.pw-input::-ms-clear,.pw-input::-ms-reveal{display:none}.pw-input::-webkit-credentials-auto-fill-button{margin-right:26px}.erd-main{background:var(--bg);height:calc(100vh - 58px);overflow:hidden}.erd,.erd-empty{height:100%;display:flex}.erd-empty{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px}.erd-canvas{background:var(--bg-2);flex:1;min-width:0;position:relative}.erd-svg{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.erd-svg:active{cursor:grabbing}.erd-tools{z-index:2;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:12px;left:12px}.erd-tools button{min-width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 6px;font-size:14px}.erd-tools button:hover{background:var(--panel-2);color:var(--text)}.erd-tool-wide{font-size:12px!important}.erd-zoom{color:var(--muted-2);font-variant-numeric:tabular-nums;padding:0 6px;font-size:11px}.erd-table{cursor:pointer}.erd-box{fill:var(--panel);stroke:var(--border);stroke-width:1px}.erd-head{fill:var(--panel-2)}.erd-table.focused .erd-box{stroke:var(--accent);stroke-width:1.5px}.erd-table.dim{opacity:.26}.erd-schema{fill:var(--muted-2);font-size:10.5px}.erd-name,.erd-schema{font-family:var(--sans)}.erd-name{fill:var(--text);font-size:12px;font-weight:650}.erd-undocumented{fill:var(--amber);opacity:.8}.erd-flag{fill:var(--muted-2);font-size:9px;font-family:var(--sans)}.erd-col{fill:var(--muted);font-family:var(--mono,ui-monospace,monospace);font-size:11px}.erd-col.req{fill:var(--text)}.erd-col.documented{text-decoration:underline;-webkit-text-decoration-color:var(--accent-soft);text-decoration-color:var(--accent-soft);text-underline-offset:3px}.erd-type{fill:var(--muted-2);font-family:var(--mono,ui-monospace,monospace);font-size:10px}.erd-row rect{transition:fill .1s}.erd-row:hover rect{fill:var(--panel-2)!important}.erd-row.sel rect{fill:var(--accent-soft)!important}.erd-table .erd-tint{height:2px}.erd-table.h0 .erd-head{fill:#6ea8fe}@supports (color:color-mix(in lab,red,red)){.erd-table.h0 .erd-head{fill:color-mix(in srgb,#6ea8fe 16%,var(--panel-2))}}.erd-table.h0 .erd-tint{fill:#6ea8fe}.erd-table.h1 .erd-head{fill:#7ee0c8}@supports (color:color-mix(in lab,red,red)){.erd-table.h1 .erd-head{fill:color-mix(in srgb,#7ee0c8 20%,var(--panel-2))}}.erd-table.h1 .erd-tint{fill:#4fb89c}.erd-table.h2 .erd-head{fill:#e8c07a}@supports (color:color-mix(in lab,red,red)){.erd-table.h2 .erd-head{fill:color-mix(in srgb,#e8c07a 22%,var(--panel-2))}}.erd-table.h2 .erd-tint{fill:#d1a45c}.erd-edge{fill:none;stroke:var(--muted-2);stroke-width:1.15px;stroke-opacity:.5}.erd-edge.self{stroke-dasharray:3 3}.erd-edge.lit{stroke:var(--accent);stroke-width:1.9px;stroke-opacity:.95}.erd-edge.dim{stroke-opacity:.12}.erd-side{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;flex:0 0 392px;width:392px;min-height:0;display:flex}.erd-side-bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.erd-live{color:var(--muted-2);font-size:11px}.erd-live:before{content:"";background:var(--green);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.erd-panel{flex-direction:column;flex:1;min-height:0;display:flex}.erd-panel-head{border-bottom:1px solid var(--border);padding:16px 16px 12px}.erd-panel-kicker{letter-spacing:1px;text-transform:uppercase;color:var(--muted-2);margin:0;font-size:10.5px;font-weight:600}.erd-panel-title{color:var(--text);margin:2px 0 0;font-size:17px;font-weight:650}.erd-panel-meta{color:var(--muted);margin:4px 0 0;font-size:12px}.erd-panel-body{flex:1;padding:14px 16px 40px;overflow-y:auto}.erd-section{margin-bottom:20px}.erd-h3{color:var(--text);justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 7px;font-size:12px;font-weight:650;display:flex}.erd-count{color:var(--muted-2);font-size:11px;font-weight:500}.erd-note{color:var(--muted);margin:6px 0 0;font-size:11.5px;line-height:1.5}.erd-note code{font-size:11px}.erd-textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:7px;padding:8px 10px;font-size:12.5px;line-height:1.5}.erd-textarea:focus{border-color:var(--accent);outline:none}.erd-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.erd-btn{background:var(--btn-primary);color:var(--btn-primary-fg);cursor:pointer;border:1px solid #0000;border-radius:7px;padding:5px 11px;font-size:12px;font-weight:550}.erd-btn:hover:not(:disabled){background:var(--btn-primary-hover)}.erd-btn:disabled{opacity:.45;cursor:not-allowed}.erd-btn.ghost{border-color:var(--border);color:var(--muted);background:0 0}.erd-btn.ghost:hover{background:var(--panel-2);color:var(--text)}.erd-ok{color:var(--green);font-size:11.5px}.erd-err{color:var(--red);font-size:11.5px}.erd-facts{gap:5px;margin:0 0 18px;display:grid}.erd-facts>div{gap:8px;font-size:12px;display:flex}.erd-facts dt{width:88px;color:var(--muted-2);flex:0 0 88px}.erd-facts dd{color:var(--text);margin:0}.erd-columns{margin:0;padding:0;list-style:none}.erd-column{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:5px 8px;display:flex}.erd-column:hover{background:var(--panel-2)}.erd-column.sel{background:var(--accent-soft)}.erd-column-name{min-width:0;color:var(--text);font-size:12px;font-family:var(--mono,ui-monospace,monospace);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.erd-badge{letter-spacing:.3px;background:var(--accent-soft);color:var(--accent);border-radius:3px;margin-right:6px;padding:0 4px;font-size:9px;font-style:normal;font-weight:700}.erd-column-type{color:var(--muted-2);font-size:10.5px}.erd-dot{background:var(--border-2);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.erd-dot.on{background:var(--green)}.erd-column-desc{color:var(--muted);margin:-1px 0 6px;padding:0 8px 0 16px;font-size:11.5px;line-height:1.45}.erd-fks{gap:4px;margin:0;padding:0;list-style:none;display:grid}.erd-fk{cursor:pointer;width:100%;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;display:flex}.erd-fk:hover{background:var(--panel-2)}.erd-fk code{color:var(--text);font-size:11px}.erd-fk em{color:var(--muted-2);margin-left:auto;font-size:10px;font-style:normal}.erd-meter{background:var(--panel-2);border-radius:3px;height:6px;overflow:hidden}.erd-meter span{background:var(--accent);height:100%;display:block}.erd-form{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.erd-form label{color:var(--muted-2);flex-direction:column;gap:3px;font-size:11px;display:flex}.erd-form .erd-wide{grid-column:1/-1}.erd-form input,.erd-form select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:5px 8px;font-size:12px}.erd-form input:focus,.erd-form select:focus{border-color:var(--accent);outline:none}.erd-check{align-self:end;align-items:center;padding-bottom:6px;flex-direction:row!important;gap:6px!important}.erd-migration{margin-top:14px}.erd-filename{color:var(--muted);font-size:11px}.erd-code{background:var(--code-bg);color:var(--code-text);font-family:var(--mono,ui-monospace,monospace);white-space:pre;border-radius:8px;margin:8px 0 0;padding:10px 12px;font-size:11px;line-height:1.55;overflow-x:auto}.erd-steps{color:var(--muted);gap:4px;margin:12px 0 0;padding-left:18px;font-size:11.5px;line-height:1.5;display:grid}@media (max-width:900px){.erd{flex-direction:column}.erd-side{border-left:0;border-top:1px solid var(--border);flex:none;width:100%;max-height:46%}}.erd-schemas{gap:2px;margin:0 0 6px;padding:0;list-style:none;display:grid}.erd-schemas li{color:var(--muted-2);border-radius:5px;align-items:baseline;gap:8px;padding:3px 8px;font-size:11.5px;display:flex}.erd-schemas li.owned{background:var(--accent-soft)}.erd-schemas code{color:var(--text);flex:1;font-size:11.5px}.erd-schemas li.owned code{color:var(--accent);font-weight:600}.erd-schemas em{color:var(--accent);font-size:10px;font-style:normal}.erd-enums{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.erd-enums li{border:1px solid var(--border);background:var(--bg);border-radius:7px;padding:7px 9px}.erd-enum-name{color:var(--text);font-size:11px;font-weight:600;display:block}.erd-enum-values{flex-wrap:wrap;gap:4px;margin:5px 0 4px;display:flex}.erd-enum-values em{background:var(--panel-2);color:var(--muted);font-size:10.5px;font-style:normal;font-family:var(--mono,ui-monospace,monospace);border-radius:4px;padding:1px 6px}.erd-enum-used{color:var(--muted-2);font-size:10px}.erd-subform{border:1px solid var(--border);border-radius:7px;margin:10px 0;padding:9px 10px}.erd-warn{background:var(--amber-soft);color:var(--amber);border-radius:6px;margin:8px 0 0;padding:7px 9px;font-size:11.5px;line-height:1.5}.erd-main-col{flex-direction:column;flex:1;min-width:0;display:flex}.erd-main-col .erd-canvas{flex:1;min-height:0}.erd-grid{border-top:1px solid var(--border);background:var(--panel);flex-direction:column;height:48%;min-height:0;display:flex}.erd-grid-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.erd-grid-title{color:var(--text);margin:0;font-size:13px;font-weight:650}.erd-grid-schema{color:var(--muted-2);font-weight:400}.erd-grid-meta{color:var(--muted-2);margin:2px 0 0;font-size:11px}.erd-grid-tools{align-items:center;gap:6px;display:flex}.erd-grid-search{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;width:180px;padding:4px 8px;font-size:11.5px}.erd-grid-search:focus{border-color:var(--accent);outline:none}.erd-grid-error{color:var(--red);margin:0;padding:6px 12px;font-size:11.5px}.erd-grid-scroll{flex:1;min-height:0;overflow:auto}.erd-grid-empty{text-align:center;color:var(--muted-2);padding:20px;font-size:12px}.erd-table-data{border-collapse:collapse;width:100%;font-size:11.5px}.erd-table-data th{z-index:1;text-align:left;vertical-align:bottom;background:var(--panel-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 9px;position:sticky;top:0}.erd-table-data th button{cursor:pointer;color:var(--text);font-size:11.5px;font-weight:650;font-family:var(--mono,ui-monospace,monospace);background:0 0;border:0;padding:0;display:block}.erd-table-data th em{color:var(--muted-2);font-size:9.5px;font-style:normal;font-weight:400;display:block}.erd-table-data td{border-bottom:1px solid var(--border);font-family:var(--mono,ui-monospace,monospace);text-overflow:ellipsis;white-space:nowrap;max-width:320px;padding:4px 9px;overflow:hidden}.erd-table-data tr:hover td{background:var(--panel-2)}.erd-null,.erd-table-data td.key{color:var(--muted-2)}.erd-null{opacity:.7;font-style:italic}.erd-bool{color:var(--accent)}.erd-json{color:var(--muted)}.erd-cell-input{border:1px solid var(--accent);background:var(--bg);width:100%;color:var(--text);font-family:var(--mono,ui-monospace,monospace);border-radius:4px;padding:2px 4px;font-size:11.5px}.erd-cell-input:focus{outline:none}.erd-grid-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.erd-grid-page{color:var(--muted-2);font-size:10.5px}.sketch{max-width:100%;height:auto;display:block;overflow:visible}.sketch-outline{fill:none;stroke:var(--sketch-stroke,var(--text));stroke-linecap:round;stroke-linejoin:round}.sketch-fill-sketch{fill:none;stroke:var(--sketch-fill,transparent);stroke-linecap:round}.sketch-fill-solid{fill:var(--sketch-fill,transparent);stroke:none}.sketch-shape[data-stroke=ink]{--sketch-stroke:var(--text)}.sketch-shape[data-stroke=muted]{--sketch-stroke:var(--muted)}.sketch-shape[data-stroke=faint]{--sketch-stroke:var(--muted-2)}.sketch-shape[data-stroke=line]{--sketch-stroke:var(--border-2)}.sketch-shape[data-stroke=accent]{--sketch-stroke:var(--accent)}.sketch-shape[data-stroke=accent-soft]{--sketch-stroke:var(--accent-soft)}.sketch-shape[data-stroke=red]{--sketch-stroke:var(--red)}.sketch-shape[data-stroke=amber]{--sketch-stroke:var(--amber)}.sketch-shape[data-stroke=panel]{--sketch-stroke:var(--panel)}.sketch-shape[data-stroke=none]{--sketch-stroke:transparent}.sketch-shape[data-fill=ink]{--sketch-fill:var(--text)}.sketch-shape[data-fill=muted]{--sketch-fill:var(--muted)}.sketch-shape[data-fill=faint]{--sketch-fill:var(--muted-2)}.sketch-shape[data-fill=line]{--sketch-fill:var(--border-2)}.sketch-shape[data-fill=accent]{--sketch-fill:var(--accent)}.sketch-shape[data-fill=accent-soft]{--sketch-fill:var(--accent-soft)}.sketch-shape[data-fill=red]{--sketch-fill:var(--red)}.sketch-shape[data-fill=amber]{--sketch-fill:var(--amber)}.sketch-shape[data-fill=panel]{--sketch-fill:var(--panel)}.sketch-shape[data-fill=none]{--sketch-fill:transparent}.sketch-hover:hover .sketch-shape,.sketch-node.is-active .sketch-shape,.sketch-shape.is-active{--sketch-stroke:var(--accent)}.sketch-hover{cursor:pointer}.sketch-node.is-dimmed .sketch-shape,.sketch-shape.is-dimmed{opacity:.45}.sketch-detail,.sketch-label{font-family:var(--sans);text-anchor:middle;dominant-baseline:central}.sketch-label{fill:var(--text);font-size:14px;font-weight:600}.sketch-detail{fill:var(--muted);font-size:11px;font-weight:500}.sketch-node.is-dimmed text{opacity:.55}.explore-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.explore-box:hover{border-color:var(--border-2)}.explore-box:hover .play-tag{color:var(--muted)}.explore-box.broken .play-tag{color:var(--red);text-transform:none}.explore-box .explore-ask{color:var(--text);margin:2px 12px 8px;font-size:13.5px;line-height:1.55}.explore-box .explore-ask code{font-family:var(--mono);font-size:.9em}.explore-legend{flex-wrap:wrap;gap:6px 14px;padding:0 12px 4px;display:flex}.explore-legend code{font-family:var(--mono);background:0 0;padding:0;font-size:12px}.explore-legend code:before{content:"";vertical-align:3px;background:currentColor;border-radius:2px;width:14px;height:3px;margin-right:6px;display:inline-block}.explore-plot{width:100%;height:auto;display:block}.explore-grid{stroke:var(--border);stroke-width:1px}.explore-axis{stroke:var(--muted-2);stroke-width:1.2px}.explore-tick{fill:var(--muted-2);font-family:var(--mono);font-size:10px}.explore-curve{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.explore-curve.c0,.explore-legend .c0{stroke:var(--accent);color:var(--accent)}.explore-curve.c1,.explore-legend .c1{stroke:var(--amber);color:var(--amber)}.explore-curve.c2,.explore-legend .c2{stroke:var(--red);color:var(--red)}.explore-sliders{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;padding:10px 12px;display:grid}.explore-slider{align-items:center;gap:10px;display:flex}.explore-name{font-family:var(--mono);background:0 0;min-width:1.5em;padding:0;font-size:13px;font-weight:600}.explore-slider input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.explore-value{font-family:var(--mono);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em;font-size:12px}.lvl-explain{background:var(--muted)}@supports (color:color-mix(in lab,red,red)){.lvl-explain{background:color-mix(in srgb,var(--muted) 16%,transparent)}}.lvl-explain{color:var(--muted)}.explain-input{box-sizing:border-box;resize:vertical;border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--editor-bg);width:100%;min-height:110px;color:var(--text);font-family:var(--sans);padding:10px 12px;font-size:14px;line-height:1.55}.explain-input:focus{border-color:var(--accent);outline:none}.explain-compare{gap:12px;margin-top:12px;display:grid}.explain-rubric{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);padding:12px 15px;font-size:13.5px}.explain-rubric .ex-walk-title{margin-bottom:8px}.explain-point{cursor:pointer;align-items:flex-start;gap:9px;padding:3px 0;display:flex}.explain-point input{accent-color:var(--accent);margin-top:4px}.explain-point code{font-family:var(--mono);font-size:.88em}.explain-note{color:var(--muted);margin:8px 0 0;font-size:12px}.math-display{margin:14px 0;padding:2px 0;overflow:auto hidden}.katex{color:var(--text);font-size:1.08em}.katex-error{font-family:var(--mono);font-size:.9em}.pebbles-hero{background-image:linear-gradient(90deg,#030f1bf5,#030f1bd4 30%,#030f1b47 61%,#030f1b1a),linear-gradient(#0000 64%,#030f1bcc),url(/images/pebbles-hero-v1.png);background-position:50%;background-size:cover}.pebbles-glass{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#071624bd;box-shadow:0 18px 50px #00000038}.path-card{background:linear-gradient(135deg,var(--accent),white 78%);min-height:126px}@supports (color:color-mix(in lab,red,red)){.path-card{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,white),white 78%)}}[data-theme=dark] .path-card{background:linear-gradient(135deg,var(--accent),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .path-card{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--panel)),var(--panel) 78%)}}:root{--step-green:#16a34a;--step-blue:#2563eb;--step-violet:#7c3aed;--step-orange:#ea580c}[data-theme=dark]{--step-green:#4ade80;--step-blue:#60a5fa;--step-violet:#a78bfa;--step-orange:#fb923c}.step-card-green{background:linear-gradient(135deg,var(--step-green),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-green{background:linear-gradient(135deg,color-mix(in srgb,var(--step-green) 10%,white),white 75%)}}.step-card-blue{background:linear-gradient(135deg,var(--step-blue),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-blue{background:linear-gradient(135deg,color-mix(in srgb,var(--step-blue) 10%,white),white 75%)}}.step-card-violet{background:linear-gradient(135deg,var(--step-violet),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-violet{background:linear-gradient(135deg,color-mix(in srgb,var(--step-violet) 10%,white),white 75%)}}.step-card-orange{background:linear-gradient(135deg,var(--step-orange),white 75%)}@supports (color:color-mix(in lab,red,red)){.step-card-orange{background:linear-gradient(135deg,color-mix(in srgb,var(--step-orange) 10%,white),white 75%)}}[data-theme=dark] .step-card-green{background:linear-gradient(135deg,var(--step-green),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-green{background:linear-gradient(135deg,color-mix(in srgb,var(--step-green) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-blue{background:linear-gradient(135deg,var(--step-blue),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-blue{background:linear-gradient(135deg,color-mix(in srgb,var(--step-blue) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-violet{background:linear-gradient(135deg,var(--step-violet),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-violet{background:linear-gradient(135deg,color-mix(in srgb,var(--step-violet) 18%,var(--panel)),var(--panel) 78%)}}[data-theme=dark] .step-card-orange{background:linear-gradient(135deg,var(--step-orange),var(--panel) 78%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .step-card-orange{background:linear-gradient(135deg,color-mix(in srgb,var(--step-orange) 18%,var(--panel)),var(--panel) 78%)}}@media (max-width:640px){.pebbles-hero{background-position:61%}}.diagram-box{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;margin:14px 0;transition:border-color .15s;overflow:hidden}.diagram-box:hover{border-color:var(--border-2)}.diagram-box.broken .play-tag{color:var(--red);text-transform:none}.diagram-box .sketch{margin:4px auto 0;padding:0 12px;display:block}.diagram-box .diagram-caption{border-top:1px solid var(--border);color:var(--text);margin:10px 12px 12px;padding-top:10px;font-size:13.5px;line-height:1.55}.diagram-box .diagram-caption code{font-family:var(--mono);font-size:.9em}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.-top-9{top:calc(var(--spacing) * -9)}.-top-24{top:calc(var(--spacing) * -24)}.-right-20{right:calc(var(--spacing) * -20)}.right-0{right:0}.-bottom-32{bottom:calc(var(--spacing) * -32)}.-bottom-px{bottom:-1px}.bottom-0{bottom:0}.-left-32{left:calc(var(--spacing) * -32)}.z-10{z-index:10}.z-50{z-index:50}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-\[2px\]{margin-top:2px}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-16\/10{aspect-ratio:16/10}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.h-\[calc\(100vh-58px\)\]{height:calc(100vh - 58px)}.h-full{height:100%}.min-h-167\.5{min-height:calc(var(--spacing) * 167.5)}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-352\.5{max-width:calc(var(--spacing) * 352.5)}.max-w-360{max-width:calc(var(--spacing) * 360)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1)}.-translate-x-1\/2,.-translate-y-1\/2{translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-7{column-gap:calc(var(--spacing) * 7)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--green\)\]{border-color:var(--green)}.border-\[var\(--red\)\]{border-color:var(--red)}.border-accent\/50{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.border-line{border-color:var(--color-line)}.border-line2{border-color:var(--color-line2)}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.border-white\/15{border-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.border-white\/25{border-color:color-mix(in oklab,var(--color-white) 25%,transparent)}}.border-white\/35{border-color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.border-white\/35{border-color:color-mix(in oklab,var(--color-white) 35%,transparent)}}.border-white\/60{border-color:#fff9}@supports (color:color-mix(in lab,red,red)){.border-white\/60{border-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--green\)_10\%\,transparent\)\]{background-color:var(--green)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--green\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--green) 10%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--red\)_10\%\,transparent\)\]{background-color:var(--red)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--red\)_10\%\,transparent\)\]{background-color:color-mix(in srgb,var(--red) 10%,transparent)}}.bg-\[var\(--green\)\]{background-color:var(--green)}.bg-bg{background-color:var(--color-bg)}.bg-bg2{background-color:var(--color-bg2)}.bg-emerald-400\/15{background-color:#00d29426}@supports (color:color-mix(in lab,red,red)){.bg-emerald-400\/15{background-color:color-mix(in oklab,var(--color-emerald-400) 15%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-panel{background-color:var(--color-panel)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-400{--tw-gradient-from:var(--color-blue-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-cyan-300{--tw-gradient-via:var(--color-cyan-300);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-via) var(--tw-gradient-via-position),var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-10{padding:calc(var(--spacing) * 10)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-\[1px\]{padding-block:1px}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.leading-\[0\.98\]{--tw-leading:.98;line-height:.98}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.4em\]{--tw-tracking:.4em;letter-spacing:.4em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.28em\]{--tw-tracking:.28em;letter-spacing:.28em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-\[var\(--red\)\]{color:var(--red)}.text-accent{color:var(--color-accent)}.text-emerald-300{color:var(--color-emerald-300)}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.opacity-15{opacity:.15}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.shadow-black\/5{--tw-shadow-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.shadow-black\/5{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black) 5%,transparent) var(--tw-shadow-alpha),transparent)}}.shadow-emerald-950\/30{--tw-shadow-color:#002c224d}@supports (color:color-mix(in lab,red,red)){.shadow-emerald-950\/30{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-emerald-950) 30%,transparent) var(--tw-shadow-alpha),transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.blur-3xl{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl))}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}}.placeholder\:text-muted\/70::placeholder{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted\/70::placeholder{color:color-mix(in oklab,var(--color-muted) 70%,transparent)}}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}@media (hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-line2:hover{border-color:var(--color-line2)}.hover\:bg-bg2:hover{background-color:var(--color-bg2)}.hover\:bg-emerald-400:hover{background-color:var(--color-emerald-400)}.hover\:bg-white\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/15:hover{background-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-white:hover{color:var(--color-white)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:ring-\[3px\]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--accent-soft\)\]:focus{--tw-ring-color:var(--accent-soft)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:min-h-150{min-height:calc(var(--spacing) * 150)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-9{padding-inline:calc(var(--spacing) * 9)}.sm\:pt-14{padding-top:calc(var(--spacing) * 14)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_\.ic\]\:h-5 .ic{height:calc(var(--spacing) * 5)}.\[\&_\.ic\]\:w-5 .ic{width:calc(var(--spacing) * 5)}}.lesson-item,.lesson-item:hover,.section-locked,.section-locked:hover{text-decoration:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}