@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--loo-f:0}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight: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;--tw-ease:initial}}}.lu-scheme-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.lu-scheme-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,.lu-scheme-light,.lu-scheme-dark{--lu-violet:var(--lightningcss-light,#7c4dff)var(--lightningcss-dark,#8c69ff);--lu-violet-lip:var(--lightningcss-light,#5a30d6)var(--lightningcss-dark,#5b3bcc);--lu-violet-hover:var(--lightningcss-light,#8b60ff)var(--lightningcss-dark,#9a7cff);--lu-violet-soft:var(--lightningcss-light,#efe8ff)var(--lightningcss-dark,#2a2152);--lu-violet-ink:var(--lightningcss-light,#5b33d9)var(--lightningcss-dark,#c4b2ff);--lu-mint:var(--lightningcss-light,#2dd4bf)var(--lightningcss-dark,#4fe3cc);--lu-mint-lip:var(--lightningcss-light,#14a897)var(--lightningcss-dark,#23ab98);--lu-mint-hover:var(--lightningcss-light,#45dcc9)var(--lightningcss-dark,#66ead6);--lu-mint-soft:var(--lightningcss-light,#dcfaf4)var(--lightningcss-dark,#12383a);--lu-mint-ink:var(--lightningcss-light,#0b8273)var(--lightningcss-dark,#7ff0dd);--lu-on-mint:#053b34;--lu-green:var(--lightningcss-light,#22b56c)var(--lightningcss-dark,#2cc47a);--lu-green-lip:var(--lightningcss-light,#178a51)var(--lightningcss-dark,#1b8f56);--lu-green-hover:var(--lightningcss-light,#27c478)var(--lightningcss-dark,#36d386);--lu-green-soft:var(--lightningcss-light,#ddf7e8)var(--lightningcss-dark,#14331f);--lu-green-ink:var(--lightningcss-light,#128048)var(--lightningcss-dark,#5fe09a);--lu-blue:var(--lightningcss-light,#3b9eff)var(--lightningcss-dark,#4aa8ff);--lu-blue-lip:var(--lightningcss-light,#2179d6)var(--lightningcss-dark,#2a7fd6);--lu-blue-hover:var(--lightningcss-light,#55abff)var(--lightningcss-dark,#64b5ff);--lu-blue-soft:var(--lightningcss-light,#e1f0ff)var(--lightningcss-dark,#132c47);--lu-blue-ink:var(--lightningcss-light,#1a6fc4)var(--lightningcss-dark,#7fbfff);--lu-red:var(--lightningcss-light,#ff5a6e)var(--lightningcss-dark,#ff6679);--lu-red-lip:var(--lightningcss-light,#d93c52)var(--lightningcss-dark,#d1435a);--lu-red-hover:var(--lightningcss-light,#ff7083)var(--lightningcss-dark,#ff7d8d);--lu-red-soft:var(--lightningcss-light,#ffe5e9)var(--lightningcss-dark,#3f1a24);--lu-red-ink:var(--lightningcss-light,#d12e47)var(--lightningcss-dark,#ff8a99);--lu-yellow:var(--lightningcss-light,#ffc23d)var(--lightningcss-dark,#ffc94f);--lu-yellow-lip:var(--lightningcss-light,#db9b12)var(--lightningcss-dark,#d39c1c);--lu-yellow-hover:var(--lightningcss-light,#ffcc5c)var(--lightningcss-dark,#ffd36b);--lu-yellow-soft:var(--lightningcss-light,#fff4d6)var(--lightningcss-dark,#3a3015);--lu-yellow-ink:var(--lightningcss-light,#a77300)var(--lightningcss-dark,#ffd66b);--lu-orange:var(--lightningcss-light,#ff8a3d)var(--lightningcss-dark,#ff9550);--lu-orange-lip:var(--lightningcss-light,#db6a1f)var(--lightningcss-dark,#d56f2a);--lu-orange-hover:var(--lightningcss-light,#ff9a57)var(--lightningcss-dark,#ffa569);--lu-orange-soft:var(--lightningcss-light,#ffebdc)var(--lightningcss-dark,#3e2615);--lu-orange-ink:var(--lightningcss-light,#c25a12)var(--lightningcss-dark,#ffae73);--lu-purple:var(--lightningcss-light,#b57bff)var(--lightningcss-dark,#c08eff);--lu-purple-lip:var(--lightningcss-light,#8f55e0)var(--lightningcss-dark,#9161d6);--lu-purple-hover:var(--lightningcss-light,#c290ff)var(--lightningcss-dark,#cba1ff);--lu-purple-soft:var(--lightningcss-light,#f3e8ff)var(--lightningcss-dark,#2e1f45);--lu-purple-ink:var(--lightningcss-light,#8743d6)var(--lightningcss-dark,#d3aeff);--lu-pink:var(--lightningcss-light,#ff7ac0)var(--lightningcss-dark,#ff86c6);--lu-pink-lip:var(--lightningcss-light,#e0559e)var(--lightningcss-dark,#d65c9f);--lu-pink-soft:var(--lightningcss-light,#ffe6f3)var(--lightningcss-dark,#3d1d33);--lu-pink-ink:var(--lightningcss-light,#cc3b87)var(--lightningcss-dark,#ff9ed2);--lu-loo:#8b5cf6;--lu-loo-lip:#6d28d9;--lu-loo-ink:#1e1033;--lu-loo-spring:#4c1d95;--lu-loo-bulb:#ddd6fe;--lu-loo-bulb-on:#ffc800;--lu-loo-glow:#fde68a;--lu-loo-cheek:#f9a8d4;--lu-bg:var(--lightningcss-light,#f6f3ff)var(--lightningcss-dark,#16112b);--lu-bg-sunk:var(--lightningcss-light,#efeafc)var(--lightningcss-dark,#110d22);--lu-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e1838);--lu-surface-2:var(--lightningcss-light,#f8f5ff)var(--lightningcss-dark,#261f45);--lu-surface-3:var(--lightningcss-light,#ece6fb)var(--lightningcss-dark,#302855);--lu-border:var(--lightningcss-light,#e3dbf7)var(--lightningcss-dark,#342b5c);--lu-border-strong:var(--lightningcss-light,#cbbfeb)var(--lightningcss-dark,#4a3f7a);--lu-text:var(--lightningcss-light,#2a2145)var(--lightningcss-dark,#eeeaff);--lu-text-2:var(--lightningcss-light,#655a85)var(--lightningcss-dark,#b0a6d6);--lu-text-3:var(--lightningcss-light,#a398c2)var(--lightningcss-dark,#7b71a3);--lu-on-color:#fff;--lu-hover:var(--lightningcss-light,#7c4dff0f)var(--lightningcss-dark,#c4b2ff12);--lu-press:var(--lightningcss-light,#7c4dff1f)var(--lightningcss-dark,#c4b2ff1f);--lu-scrim:var(--lightningcss-light,#2a214573)var(--lightningcss-dark,#080514b3);--lu-dot:var(--lightningcss-light,#7c4dff1a)var(--lightningcss-dark,#c4b2ff12);--lu-primary:var(--lu-violet);--lu-primary-lip:var(--lu-violet-lip);--lu-accent:var(--lu-mint);--lu-success:var(--lu-green);--lu-danger:var(--lu-red);--lu-warning:var(--lu-orange);--lu-streak:var(--lu-orange);--lu-gem:var(--lu-blue);--lu-heart:var(--lu-red);--lu-xp:var(--lu-yellow);--lu-font:var(--font-onest), var(--font-emoji), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--lu-font-pixel:var(--lu-font);--lu-font-logo:var(--font-pixel), var(--lu-font);--lu-font-mono:var(--font-jbmono), ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--lu-fs-2xs:11px;--lu-fs-xs:13px;--lu-fs-sm:15px;--lu-fs-md:17px;--lu-fs-lg:19px;--lu-fs-xl:23px;--lu-fs-2xl:28px;--lu-fs-3xl:36px;--lu-fw-bold:700;--lu-fw-black:800;--lu-tracking-caps:.06em;--lu-s-1:4px;--lu-s-2:8px;--lu-s-3:12px;--lu-s-4:16px;--lu-s-5:20px;--lu-s-6:24px;--lu-s-8:32px;--lu-s-10:40px;--lu-s-12:48px;--lu-r-xs:4px;--lu-r-sm:8px;--lu-r:10px;--lu-r-lg:14px;--lu-r-xl:20px;--lu-r-pill:999px;--lu-px:3px;--lu-lip:4px;--lu-lip-sm:3px;--lu-border-w:2px;--lu-shadow-lip:0 var(--lu-lip) 0 var(--lu-lip-color,var(--lu-border));--lu-shadow-pop:0 0 0 2px var(--lu-border), 0 12px 32px var(--lightningcss-light,#2a214524)var(--lightningcss-dark,#00000080);--lu-focus-color:var(--lightningcss-light,#7c4dffb3)var(--lightningcss-dark,#c4b2ffd9);--lu-focus:0 0 0 3px var(--lu-bg), 0 0 0 5px var(--lu-focus-color);--lu-target:44px;--lu-ease:cubic-bezier(.2, 0, 0, 1);--lu-ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--lu-ease-spring:cubic-bezier(.5, 1.8, .4, .8);--lu-ease-step:steps(4, jump-end);--lu-dur-1:90ms;--lu-dur-2:.16s;--lu-dur-3:.28s;--lu-dur-4:.52s;--lu-z-nav:30;--lu-z-sheet:60;--lu-z-pop:70;--lu-z-fx:90}@layer theme{:root,:host{--font-sans:-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-mono:var(--font-jbmono), ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--color-gray-200:#e5e7eb;--spacing:.25rem;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-bold:700;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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);--font-ui:var(--font-onest), var(--font-emoji), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-200:lab(91.6229% -.159115 -2.26791)}}}@layer base{*,:after,:before,::backdrop{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}html,:host{-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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}body{background-color:var(--lu-bg);background-image:radial-gradient(var(--lu-dot) 1px, transparent 1.4px);color:var(--t1);font-family:var(--font-ui);background-size:24px 24px;background-attachment:fixed;min-height:100dvh;font-size:16px;line-height:1.55}::selection{background:var(--selection)}:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px;border-radius:4px}a{color:inherit;text-decoration:none}button{cursor:pointer;-webkit-user-select:none;user-select:none}kbd{font-family:var(--lu-font-mono);color:var(--t2);background:var(--lu-surface);border:1px solid var(--lu-border-strong);box-shadow:0 2px 0 var(--lu-border-strong);border-radius:4px;padding:0 5px;font-size:11px;line-height:16px}code,pre,kbd,textarea{font-variant-ligatures:none}}@layer components{[data-tone=violet]{--tone:var(--lu-violet);--tone-lip:var(--lu-violet-lip);--tone-soft:var(--lu-violet-soft);--tone-ink:var(--lu-violet-ink)}[data-tone=mint]{--tone:var(--lu-mint);--tone-lip:var(--lu-mint-lip);--tone-soft:var(--lu-mint-soft);--tone-ink:var(--lu-mint-ink)}[data-tone=green]{--tone:var(--lu-green);--tone-lip:var(--lu-green-lip);--tone-soft:var(--lu-green-soft);--tone-ink:var(--lu-green-ink)}[data-tone=blue]{--tone:var(--lu-blue);--tone-lip:var(--lu-blue-lip);--tone-soft:var(--lu-blue-soft);--tone-ink:var(--lu-blue-ink)}[data-tone=red]{--tone:var(--lu-red);--tone-lip:var(--lu-red-lip);--tone-soft:var(--lu-red-soft);--tone-ink:var(--lu-red-ink)}[data-tone=yellow]{--tone:var(--lu-yellow);--tone-lip:var(--lu-yellow-lip);--tone-soft:var(--lu-yellow-soft);--tone-ink:var(--lu-yellow-ink)}[data-tone=orange]{--tone:var(--lu-orange);--tone-lip:var(--lu-orange-lip);--tone-soft:var(--lu-orange-soft);--tone-ink:var(--lu-orange-ink)}[data-tone=purple]{--tone:var(--lu-purple);--tone-lip:var(--lu-purple-lip);--tone-soft:var(--lu-purple-soft);--tone-ink:var(--lu-purple-ink)}[data-tone=pink]{--tone:var(--lu-pink);--tone-lip:var(--lu-pink-lip);--tone-soft:var(--lu-pink-soft);--tone-ink:var(--lu-pink-ink)}[data-tone=gray]{--tone:var(--lu-text-3);--tone-lip:var(--lu-border-strong);--tone-soft:var(--lu-surface-2);--tone-ink:var(--lu-text-2)}.lu-px,.lu-btn,.lu-ibtn:not([data-variant=plain]){isolation:isolate;position:relative}.lu-px{--px-face:var(--lu-surface);--px-line:var(--lu-border);--px-bw:var(--lu-border-w);--px-lip:0px;margin-bottom:var(--px-lip)}.lu-px[data-lip]{--px-lip:var(--lu-lip)}.lu-px:before,.lu-px:after,.lu-btn:before,.lu-btn:after,.lu-ibtn:not([data-variant=plain]):before,.lu-ibtn:not([data-variant=plain]):after{--s:var(--px-s,var(--lu-px));content:"";z-index:-1;pointer-events:none;clip-path:polygon(0 calc(2 * var(--s)), var(--s) calc(2 * var(--s)), var(--s) var(--s), calc(2 * var(--s)) var(--s), calc(2 * var(--s)) 0, calc(100% - 2 * var(--s)) 0, calc(100% - 2 * var(--s)) var(--s), calc(100% - var(--s)) var(--s), calc(100% - var(--s)) calc(2 * var(--s)), 100% calc(2 * var(--s)), 100% calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) 100%, calc(2 * var(--s)) 100%, calc(2 * var(--s)) calc(100% - var(--s)), var(--s) calc(100% - var(--s)), var(--s) calc(100% - 2 * var(--s)), 0 calc(100% - 2 * var(--s)));position:absolute}.lu-px:before,.lu-btn:before,.lu-ibtn:not([data-variant=plain]):before{inset:0 0 calc(-1 * var(--px-lip)) 0;background:var(--px-line);transition:bottom var(--lu-dur-1) var(--lu-ease)}.lu-px:after,.lu-btn:after,.lu-ibtn:not([data-variant=plain]):after{inset:var(--px-bw);background:var(--px-face);transition:background-color var(--lu-dur-2), filter var(--lu-dur-2)}.lu-icon{width:var(--lu-icon-size,20px);height:var(--lu-icon-size,20px);flex:none;place-items:center;line-height:1;display:inline-grid}.lu-icon>svg{display:block}.lu-icon[data-emoji]{font-size:calc(var(--lu-icon-size,20px) * .9)}.lu-gicon{transition:filter var(--lu-dur-2), opacity var(--lu-dur-2);flex:none;display:block}.lu-gicon[data-muted]{filter:grayscale();opacity:.45}.lu-btn{--b:var(--lu-violet);--b-hover:var(--lu-violet-hover);--b-lip:var(--lu-violet-lip);--b-ink:var(--lu-on-color);--b-lip-h:var(--lu-lip);--px-face:var(--b-face,var(--b));--px-line:var(--b-lip);--px-bw:0px;--px-lip:var(--b-lip-h);min-height:48px;color:var(--b-ink);font-family:var(--lu-font);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);letter-spacing:.01em;text-transform:none;white-space:nowrap;margin-bottom:var(--b-lip-h);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), color var(--lu-dur-2);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:0 22px;line-height:1.1;text-decoration:none;display:inline-flex}.lu-btn:hover{--px-face:var(--b-face,var(--b-hover))}.lu-btn[data-variant=super]:hover:after{filter:brightness(1.08)saturate(1.05)}.lu-btn:active:not(:disabled,[data-loading]){transform:translateY(var(--b-lip-h))}.lu-btn:active:not(:disabled,[data-loading]):before{bottom:0}.lu-btn:focus-visible,.lu-ibtn:focus-visible,.lu-card:focus-visible,.lu-stat:focus-visible,.lu-tab:focus-visible,.lu-switch:focus-visible,.lu-pop-trigger:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.lu-btn[data-variant=secondary]{--b:var(--lu-mint);--b-hover:var(--lu-mint-hover);--b-lip:var(--lu-mint-lip);--b-ink:var(--lu-on-mint)}.lu-btn[data-variant=danger]{--b:var(--lu-red);--b-hover:var(--lu-red-hover);--b-lip:var(--lu-red-lip)}.lu-btn[data-variant=super]{--b-lip:#4b2bb8;--b-face:linear-gradient(100deg, #9b6bff 0%, #7c4dff 45%, #2dd4bf 100%)}.lu-btn[data-variant=ghost]{--b:var(--lu-surface);--b-hover:var(--lu-surface-2);--b-lip:var(--lu-border);--b-ink:var(--lu-violet-ink);--px-bw:var(--lu-border-w)}.lu-btn[data-size=sm]{--b-lip-h:var(--lu-lip-sm);--px-s:2px;min-height:40px;font-size:var(--lu-fs-xs);padding:0 16px}.lu-btn[data-size=lg]{--px-s:4px;min-height:56px;font-size:var(--lu-fs-md);padding:0 28px}.lu-btn[data-block]{width:100%;display:flex}.lu-btn:disabled,.lu-btn[aria-disabled=true]{--b:var(--lu-surface-3);--b-hover:var(--lu-surface-3);--b-lip:var(--lu-border-strong);--b-ink:var(--lu-text-3);--b-face:var(--lu-surface-3);cursor:default}.lu-btn[data-loading]{cursor:progress}.lu-btn-content{align-items:center;gap:10px;min-width:0;display:inline-flex}.lu-btn[data-loading] .lu-btn-content{visibility:hidden}.lu-btn-label{text-overflow:ellipsis;overflow:hidden}.lu-btn-icon{text-transform:none;flex:none;place-items:center;display:inline-grid}.lu-spin{border:3px solid;border-right-color:#0000;border-radius:50%;width:22px;height:22px;margin:auto;animation:.7s linear infinite lu-spin;position:absolute;inset:0}@keyframes lu-spin{to{transform:rotate(1turn)}}.lu-ibtn{--b:transparent;--b-lip:transparent;--b-ink:var(--lu-text-2);--b-lip-h:0px;--px-face:var(--b);--px-line:var(--b-lip);--px-bw:0px;--px-lip:var(--b-lip-h);--px-s:2px;width:var(--lu-target);height:var(--lu-target);border-radius:var(--lu-r-sm);color:var(--b-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2), color var(--lu-dur-2);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.lu-ibtn[data-variant=plain]:hover{background:var(--lu-hover);color:var(--lu-text)}.lu-ibtn[data-variant=plain]:active{background:var(--lu-press)}.lu-ibtn:not([data-variant=plain]){--b-lip-h:var(--lu-lip-sm);--b-ink:var(--lu-on-color);margin-bottom:var(--b-lip-h)}.lu-ibtn[data-variant=primary]{--b:var(--lu-violet);--b-lip:var(--lu-violet-lip)}.lu-ibtn[data-variant=secondary]{--b:var(--lu-mint);--b-lip:var(--lu-mint-lip);--b-ink:var(--lu-on-mint)}.lu-ibtn[data-variant=danger]{--b:var(--lu-red);--b-lip:var(--lu-red-lip)}.lu-ibtn[data-variant=super]{--b-lip:#4b2bb8;--px-face:linear-gradient(135deg, #9b6bff, #2dd4bf)}.lu-ibtn[data-variant=ghost]{--b:var(--lu-surface);--b-lip:var(--lu-border);--b-ink:var(--lu-text-2);--px-bw:var(--lu-border-w)}.lu-ibtn[data-variant=ghost]:hover{--b:var(--lu-surface-2);--b-ink:var(--lu-violet-ink)}.lu-ibtn:not([data-variant=plain]):active:not(:disabled){transform:translateY(var(--b-lip-h))}.lu-ibtn:not([data-variant=plain]):active:not(:disabled):before{bottom:0}.lu-ibtn[data-size=sm]{width:36px;height:36px}.lu-ibtn[data-size=lg]{--px-s:3px;border-radius:var(--lu-r);width:56px;height:56px}.lu-ibtn[data-round]{border-radius:50%}.lu-ibtn[data-round]:not([data-variant=plain]):before,.lu-ibtn[data-round]:not([data-variant=plain]):after{clip-path:none;border-radius:50%}.lu-ibtn:disabled{opacity:.45;cursor:default}.lu-card{--c-border:var(--lu-border);color:var(--lu-text);background:var(--lu-surface);border:var(--lu-border-w) solid var(--c-border);border-radius:var(--lu-r-lg);text-decoration:none;display:block;position:relative}.lu-card[data-pad=sm]{padding:var(--lu-s-3)}.lu-card[data-pad=md]{padding:var(--lu-s-4) var(--lu-s-5)}.lu-card[data-pad=lg]{padding:var(--lu-s-6)}.lu-card[data-tone]{--c-border:var(--tone)}.lu-card[data-selected]{--c-border:var(--lu-violet);background:var(--lu-violet-soft)}.lu-card[data-variant=raised],.lu-card[data-variant=interactive]{box-shadow:0 var(--lu-lip) 0 var(--c-border);margin-bottom:var(--lu-lip)}.lu-card[data-tone][data-variant=raised],.lu-card[data-tone][data-variant=interactive],.lu-card[data-selected][data-variant=interactive]{box-shadow:0 var(--lu-lip) 0 var(--tone-lip,var(--lu-violet-lip))}.lu-card[data-variant=interactive]{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), border-color var(--lu-dur-2), background-color var(--lu-dur-2)}.lu-card[data-variant=interactive]:hover{--c-border:var(--lu-border-strong);background:var(--lu-surface-2)}.lu-card[data-tone][data-variant=interactive]:hover{--c-border:var(--tone)}.lu-card[data-selected][data-variant=interactive]:hover{--c-border:var(--lu-violet);background:var(--lu-violet-soft)}.lu-card[data-variant=interactive]:active{transform:translateY(calc(var(--lu-lip) - 1px));box-shadow:0 1px 0 var(--c-border)}.lu-progress{--h:16px;--seg:14px;height:var(--h);border-radius:var(--lu-r-xs);background:var(--lu-surface-3);display:block;position:relative;overflow:hidden}.lu-progress:not(:has(.lu-progress-text)){-webkit-mask:repeating-linear-gradient(90deg, #000 0 calc(var(--seg) - 3px), transparent calc(var(--seg) - 3px) var(--seg));-webkit-mask:repeating-linear-gradient(90deg, #000 0 calc(var(--seg) - 3px), transparent calc(var(--seg) - 3px) var(--seg));-webkit-mask:repeating-linear-gradient(90deg, #000 0 calc(var(--seg) - 3px), transparent calc(var(--seg) - 3px) var(--seg));-webkit-mask:repeating-linear-gradient(90deg, #000 0 calc(var(--seg) - 3px), transparent calc(var(--seg) - 3px) var(--seg));mask:repeating-linear-gradient(90deg, #000 0 calc(var(--seg) - 3px), transparent calc(var(--seg) - 3px) var(--seg))}.lu-progress:not([data-tone]){--tone:var(--lu-violet)}.lu-progress[data-size=sm]{--h:10px;--seg:10px}.lu-progress[data-size=lg]{--h:22px;--seg:18px}.lu-progress-fill{width:max(var(--h), calc(var(--v) * 100%));background:var(--tone);transition:width var(--lu-dur-4) var(--lu-ease-bounce);position:absolute;inset:0 auto 0 0}.lu-progress[data-empty] .lu-progress-fill{width:0}.lu-progress-fill:after{content:"";background:#ffffff52;height:max(2px,18%);position:absolute;top:3px;left:0;right:0}.lu-progress[data-striped] .lu-progress-fill{background-image:repeating-linear-gradient(-45deg,#ffffff2e 0 10px,#0000 10px 20px);background-size:28px 28px;animation:.9s linear infinite lu-stripes}@keyframes lu-stripes{to{background-position:28px 0}}.lu-progress-text{font:var(--lu-fw-bold) 11px/1 var(--lu-font);color:var(--lu-text-2);font-variant-numeric:tabular-nums;place-items:center;display:grid;position:absolute;inset:0}.lu-progress[data-size=lg] .lu-progress-text{font-size:13px}.lu-ring{flex:none;place-items:center;display:inline-grid;position:relative}.lu-ring:not([data-tone]){--tone:var(--lu-violet)}.lu-ring>svg{position:absolute;inset:0;transform:rotate(-90deg)}.lu-ring-track{fill:none;stroke:var(--lu-surface-3)}.lu-ring-fill{fill:none;stroke:var(--tone);stroke-linecap:butt;transition:stroke-dashoffset var(--lu-dur-4) var(--lu-ease)}.lu-ring[aria-valuenow="0"] .lu-ring-fill{stroke:#0000}.lu-ring-center{font:var(--lu-fw-black) var(--lu-fs-sm) / 1 var(--lu-font);color:var(--lu-text);place-items:center;display:grid;position:relative}.lu-badge{border-radius:var(--lu-r-xs);background:var(--tone);min-width:20px;height:20px;color:var(--lu-on-color);font:var(--lu-fw-black) 11px/1 var(--lu-font);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;place-items:center;padding:0 6px;display:inline-grid}.lu-pill{border-radius:var(--lu-r-sm);background:var(--tone-soft);height:32px;color:var(--tone-ink);font:var(--lu-fw-bold) var(--lu-fs-xs) / 1 var(--lu-font);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.lu-pill[data-size=sm]{gap:4px;height:24px;padding:0 9px;font-size:12px}.lu-pill[data-solid]{background:var(--tone);color:var(--lu-on-color)}.lu-pill[data-solid]:is([data-tone=mint],[data-tone=yellow]){color:var(--lu-on-mint)}.lu-pill[data-solid][data-tone=yellow]{color:#3d2a00}.lu-pill[data-solid]:is([data-tone=purple],[data-tone=pink],[data-tone=orange],[data-tone=green],[data-tone=blue]){background:var(--tone-lip)}.lu-pill-icon{place-items:center;display:inline-grid}.lu-stat{min-height:var(--lu-target);border-radius:var(--lu-r-sm);font:var(--lu-fw-black) var(--lu-fs-md) / 1 var(--lu-font);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background-color var(--lu-dur-2);align-items:center;gap:6px;padding:0 10px;text-decoration:none;display:inline-flex}a.lu-stat:hover{background:var(--lu-hover)}.lu-stat[data-size=sm]{font-size:var(--lu-fs-sm);gap:4px;padding:0 6px}.lu-stat[data-kind=streak]{color:var(--lu-orange-ink)}.lu-stat[data-kind=bucks]{color:var(--lu-yellow-ink)}.lu-stat[data-kind=gems]{color:var(--lu-blue-ink)}.lu-stat[data-kind=hearts]{color:var(--lu-red-ink)}.lu-stat[data-kind=xp]{color:var(--lu-yellow-ink)}.lu-stat[data-off]{color:var(--lu-text-3)}.lu-count{font-variant-numeric:tabular-nums}.lu-sheet{width:100%;max-width:100%;max-height:min(88dvh,100%);color:var(--lu-text);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:auto 0 0;overflow:visible}.lu-sheet::backdrop{background:var(--lu-scrim);animation:lu-fade var(--lu-dur-3) var(--lu-ease)}.lu-sheet-panel{max-height:min(88dvh,100%);padding:8px var(--lu-s-5) calc(var(--lu-s-5) + env(safe-area-inset-bottom));border-radius:var(--lu-r-xl) var(--lu-r-xl) 0 0;background:var(--lu-surface);border-top:2px solid var(--lu-border);font-family:var(--lu-font);animation:lu-sheet-up var(--lu-dur-3) var(--lu-ease-bounce);flex-direction:column;display:flex}.lu-sheet-handle{border-radius:var(--lu-r-pill);background:var(--lu-border-strong);align-self:center;width:44px;height:5px;margin-bottom:6px}.lu-sheet-head{align-items:center;gap:var(--lu-s-2);display:flex}.lu-sheet-title{min-width:0;font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);flex:1;margin:0;line-height:1.2}.lu-sheet-desc{color:var(--lu-text-2);font-size:var(--lu-fs-md);margin:4px 0 0;font-weight:500}.lu-sheet-body{margin-top:var(--lu-s-4);overscroll-behavior:contain;overflow-y:auto}.lu-sheet-foot{gap:var(--lu-s-2);margin-top:var(--lu-s-5);display:grid}@media (min-width:640px){.lu-sheet{width:min(480px,100% - 32px);height:fit-content;margin:auto;inset:0}.lu-sheet[data-size=sm]{width:min(380px,100% - 32px)}.lu-sheet[data-size=lg]{width:min(640px,100% - 32px)}.lu-sheet-panel{padding:var(--lu-s-5) var(--lu-s-6) var(--lu-s-6);border-radius:var(--lu-r-xl);border:2px solid var(--lu-border);box-shadow:0 6px 0 var(--lu-border);animation-name:lu-pop-in}.lu-sheet-handle{display:none}}@keyframes lu-sheet-up{0%{transform:translateY(100%)}}@keyframes lu-pop-in{0%{opacity:0;transform:scale(.92)translateY(8px)}}@keyframes lu-fade{0%{opacity:0}}.lu-tip-wrap{display:inline-flex;position:relative}.lu-tip{z-index:var(--lu-z-pop);border-radius:var(--lu-r-sm);background:var(--lu-surface);border:2px solid var(--lu-border);width:max-content;max-width:240px;box-shadow:0 3px 0 var(--lu-border);color:var(--lu-text);font:600 var(--lu-fs-xs) / 1.4 var(--lu-font);text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--lu-dur-2), transform var(--lu-dur-2) var(--lu-ease-bounce), visibility var(--lu-dur-2);padding:8px 12px;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)scale(.96)}.lu-tip[data-side=bottom]{top:calc(100% + 10px);bottom:auto;transform:translate(-50%,-4px)scale(.96)}.lu-tip[data-open]{opacity:1;visibility:visible;transform:translate(-50%)scale(1)}.lu-tip:after,.lu-pop:after{content:"";background:inherit;border:2px solid var(--lu-border);border-top:0;border-left:0;width:12px;height:12px;margin-top:-6px;position:absolute;top:100%;left:calc(50% - 7px);transform:rotate(45deg)}.lu-tip[data-side=bottom]:after,.lu-pop:after{margin:0 0 -6px;top:auto;bottom:100%;transform:rotate(-135deg)}.lu-pop-trigger{min-height:var(--lu-target);border-radius:var(--lu-r-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.lu-pop-trigger:hover,.lu-pop-trigger[aria-expanded=true]{background:var(--lu-hover)}.lu-pop{width:min(320px,100vw - 16px);padding:var(--lu-s-4);border-radius:var(--lu-r-lg);background:var(--lu-surface);border:2px solid var(--lu-border);box-shadow:0 4px 0 var(--lu-border);color:var(--lu-text);font-family:var(--lu-font);margin:0;position:fixed;inset:auto;overflow:visible}.lu-pop:after{left:calc(var(--lu-pop-arrow,50%) - 8px)}.lu-pop:popover-open{animation:lu-pop-in var(--lu-dur-2) var(--lu-ease-bounce)}.lu-tablist{border-radius:var(--lu-r);background:var(--lu-surface-2);border:2px solid var(--lu-border);scrollbar-width:none;gap:4px;padding:4px;display:flex;overflow-x:auto}.lu-tab{border-radius:var(--lu-r-sm);min-height:40px;color:var(--lu-text-2);font:var(--lu-fw-bold) var(--lu-fs-sm) / 1 var(--lu-font);cursor:pointer;transition:background-color var(--lu-dur-2), color var(--lu-dur-2), box-shadow var(--lu-dur-2);background:0 0;border:0;flex:1 0 auto;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.lu-tab:hover{color:var(--lu-text)}.lu-tab[aria-selected=true]{background:var(--lu-surface);color:var(--lu-violet-ink);box-shadow:inset 0 0 0 2px var(--lu-violet), 0 2px 0 var(--lu-violet-lip)}.lu-tab-icon{display:inline-grid}.lu-tabpanel{padding-top:var(--lu-s-4)}.lu-tabpanel:focus-visible{outline:none}.lu-toggle{align-items:center;gap:var(--lu-s-4);min-height:var(--lu-target);font-family:var(--lu-font);display:flex}.lu-toggle-text{flex:1;gap:2px;display:grid}.lu-toggle-label{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-bold);color:var(--lu-text);cursor:pointer}.lu-toggle-desc{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.lu-switch{border-radius:var(--lu-r);background:var(--lu-surface-3);width:56px;height:34px;box-shadow:inset 0 0 0 2px var(--lu-border-strong);cursor:pointer;transition:background-color var(--lu-dur-2), box-shadow var(--lu-dur-2);border:0;flex:none;padding:0;position:relative}.lu-switch[aria-checked=true]{background:var(--lu-violet);box-shadow:inset 0 0 0 2px var(--lu-violet-lip)}.lu-switch-thumb{width:26px;height:26px;transition:transform var(--lu-dur-3) var(--lu-ease-bounce);background:#fff;border-radius:6px;position:absolute;top:4px;left:4px;box-shadow:inset 0 -3px #2a214524}.lu-switch[aria-checked=true] .lu-switch-thumb{transform:translate(22px)}.lu-switch:disabled{opacity:.45;cursor:default}.lu-avatar{background:var(--tone);color:var(--lu-on-color);font-family:var(--lu-font);font-weight:var(--lu-fw-black);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid;overflow:hidden}.lu-avatar img{object-fit:cover;width:100%;height:100%}.lu-avatar[data-ring]{box-shadow:0 0 0 3px var(--lu-bg), 0 0 0 6px var(--lu-ring-color,var(--lu-violet))}.lu-avatar[data-ring=green]{--lu-ring-color:var(--lu-green)}.lu-avatar[data-ring=orange]{--lu-ring-color:var(--lu-orange)}.lu-avatar[data-ring=yellow]{--lu-ring-color:var(--lu-yellow)}.lu-avatar[data-ring=purple]{--lu-ring-color:var(--lu-purple)}.lu-empty{justify-items:center;gap:var(--lu-s-2);padding:var(--lu-s-8) var(--lu-s-4);text-align:center;font-family:var(--lu-font);display:grid}.lu-empty-title{margin:var(--lu-s-2) 0 0;font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);color:var(--lu-text)}.lu-empty-text{max-width:360px;color:var(--lu-text-2);font-size:var(--lu-fs-md);font-weight:500}.lu-empty-action{margin-top:var(--lu-s-4)}.lu-confetti{width:100vw;height:100vh;z-index:var(--lu-z-fx);pointer-events:none;position:fixed;inset:0}.lu-confetti-anchor{width:0;height:0;display:inline-block}.lu-logo{align-items:center;gap:8px;display:inline-flex}.lu-logomark,.lu-wordmark{flex:none;display:block;overflow:visible}.lu-wordmark text{font-family:var(--lu-font-logo);font-weight:700}.lu-wordmark-level{fill:var(--lu-violet);font-size:27px}.lu-wordmark-up{fill:var(--lu-mint-ink);font-size:25px}.lu-wordmark-arrow{fill:none;stroke:var(--lu-mint-ink);stroke-width:3px;stroke-linecap:square;stroke-linejoin:miter}.loo{--loo-f:0;color:var(--lu-text);flex:none;display:block;overflow:visible}.loo-frame{opacity:min(calc(var(--loo-f) - var(--a) + 1), calc(var(--a) + var(--h) - var(--loo-f)))}.loo[data-animated]{animation:loo-clock var(--loo-dur) steps(var(--loo-n), end) infinite}.loo[data-animated] .loo-blink-a,.loo[data-animated] .loo-blink-b{animation:.6s step-end infinite loo-blink}.loo[data-animated] .loo-blink-b{animation-delay:-.3s}.loo[data-animated] .loo-crackle{animation:.45s step-end infinite loo-crackle}.loo[data-animated] .loo-aura{animation:1.6s step-end infinite loo-aura}@keyframes loo-blink{50%{opacity:0}}@keyframes loo-crackle{50%{fill:#ecfeff}}@keyframes loo-aura{25%{fill:#f9a8d4}50%{fill:#a5f3fc}75%{fill:#c4b5fd}}@keyframes loo-clock{0%{--loo-f:0}to{--loo-f:var(--loo-n)}}.loo-evolve{flex:none;position:relative}.loo-evolve-layer{opacity:0;position:absolute;inset:0}.loo-evolve[data-reduced] .loo-evolve-layer{transition:opacity .6s}.loo-evolve-white{filter:brightness(0) invert(1) drop-shadow(0 0 2px var(--lu-loo)) drop-shadow(0 0 8px var(--lu-loo))}.loo-evolve[data-phase=old] [data-layer=old],.loo-evolve[data-phase=oldW] [data-layer=oldW],.loo-evolve[data-phase=newW] [data-layer=newW],.loo-evolve[data-phase=flash] [data-layer=newW],.loo-evolve[data-phase=new] [data-layer=new]{opacity:1}.loo-evolve:after{content:"";background:radial-gradient(circle, #fff 0%, var(--lu-loo-glow) 40%, transparent 70%);border-radius:50%;position:absolute;inset:-20%}@supports (color:color-mix(in lab, red, red)){.loo-evolve:after{background:radial-gradient(circle, #fff 0%, color-mix(in srgb, var(--lu-loo-glow) 70%, transparent) 40%, transparent 70%)}}.loo-evolve:after{opacity:0;pointer-events:none}.loo-evolve[data-phase=flash]:after{opacity:1}.loo-evolve[data-phase=new]:after{opacity:0;transition:opacity .4s}.loo-says{align-items:center;gap:var(--lu-s-3);font-family:var(--lu-font);display:flex}.loo-says[data-side=top]{flex-direction:column-reverse;align-items:flex-start}.loo-bubble{min-width:0;padding:var(--lu-s-3) var(--lu-s-4);border-radius:var(--lu-r-lg);background:var(--lu-surface);border:2px solid var(--lu-border);color:var(--lu-text);font-size:var(--lu-fs-md);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);font-weight:700;line-height:1.4;position:relative}.loo-bubble:before,.loo-bubble:after{content:"";border:10px solid #0000;margin-top:-10px;position:absolute;top:50%;right:100%}.loo-bubble:before{border-right-color:var(--lu-border)}.loo-bubble:after{border-right-color:var(--lu-surface);margin-right:-3px}.loo-says[data-side=top] .loo-bubble:before,.loo-says[data-side=top] .loo-bubble:after{border-color:#0000;margin:0;top:100%;left:36px;right:auto}.loo-says[data-side=top] .loo-bubble:before{border-top-color:var(--lu-border)}.loo-says[data-side=top] .loo-bubble:after{border-top-color:var(--lu-surface);margin-top:-3px}.ds{font-family:var(--lu-font);color:var(--lu-text)}.ds code{font-family:var(--lu-font-mono);color:var(--lu-text-2);font-size:12px}.ds-hero{align-items:center;gap:var(--lu-s-6);margin:var(--lu-s-6) 0 var(--lu-s-4);display:flex}.ds-h1{font-size:var(--lu-fs-3xl);font-weight:var(--lu-fw-black);margin:8px 0 4px;line-height:1.1}.ds-h2{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);margin:0 0 4px}.ds-h3{margin:var(--lu-s-6) 0 var(--lu-s-3);font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black)}.ds-muted{color:var(--lu-text-2);font-weight:600}.ds-toc{margin-bottom:var(--lu-s-4);flex-wrap:wrap;gap:6px;display:flex}.ds-section{gap:var(--lu-s-4);padding:var(--lu-s-8) 0;border-top:2px solid var(--lu-border);scroll-margin-top:64px;display:grid}.px-emoji{vertical-align:-.22em;margin:0 .08em;display:inline-block}.ds-pxicons{gap:var(--lu-s-3)}.ds-pxicon{width:84px;padding:var(--lu-s-3) var(--lu-s-1);border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);justify-items:center;gap:6px;margin:0;display:grid}.ds-pxicon figcaption{color:var(--lu-text-2);font:600 11px/1 var(--lu-font-mono)}.ds-row{align-items:center;gap:var(--lu-s-3);flex-wrap:wrap;display:flex}.ds-tight{gap:4px}.ds-stack{gap:var(--lu-s-3);display:grid}.ds-narrow{max-width:360px}.ds-grid{gap:var(--lu-s-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.ds-grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.ds-swatches{gap:var(--lu-s-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.ds-swatches-sm{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.ds-swatch{font-size:var(--lu-fs-xs);gap:4px;display:grid}.ds-chip{border-radius:var(--lu-r);border:2px solid var(--lu-border);height:56px;margin-bottom:6px;display:block}.ds-dot{border:2px solid var(--lu-border);border-radius:50%;width:18px;height:18px}.ds-type p{margin:0 0 4px;line-height:1.25}.ds-radius{border:2px solid var(--lu-border);width:64px;height:64px;box-shadow:0 4px 0 var(--lu-border);background:var(--lu-surface-2);place-items:center;font-size:12px;font-weight:800;display:grid}.ds-loo-grid{gap:var(--lu-s-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.ds-loo{padding:var(--lu-s-4) var(--lu-s-2);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);justify-items:center;gap:6px;margin:0;display:grid}.ds-loo figcaption{font-size:var(--lu-fs-xs);justify-items:center;display:grid}.ds-loo-strip{align-items:center;gap:var(--lu-s-3);flex-wrap:wrap;display:flex}.ds-loo-strip>code{width:72px}.ds-loo-cell{font-size:var(--lu-fs-xs);justify-items:center;gap:4px;margin:0;display:grid}.ds-loo-sizes{align-items:flex-end}.ds-loo-matrix{gap:2px;display:grid;overflow-x:auto}.ds-loo-matrix-row{grid-template-columns:80px repeat(10,56px);place-items:center;font-size:11px;display:grid}.ds-loo-matrix-row>:first-child{justify-self:start}.ds-loo-matrix-row.ds-loo-forms-row{grid-template-columns:96px repeat(10,80px) 48px}.ds-loo-evolve-demo{align-items:center;gap:var(--lu-s-6)}.ds-select{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);color:var(--lu-text);font:inherit;padding:6px 10px;font-weight:700}.ds-icons{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;display:grid}.ds-icon-cell{border-radius:var(--lu-r);border:2px solid var(--lu-border);background:var(--lu-surface);color:var(--lu-text);justify-items:center;gap:6px;min-width:0;padding:12px 4px 8px;display:grid}.ds-icon-cell code{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}.ds-brand{gap:var(--lu-s-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.ds-brand-card{gap:var(--lu-s-3);display:grid}.ds-brand-chip{height:112px;padding:var(--lu-s-3) var(--lu-s-4);border-radius:var(--lu-r-lg);font-weight:var(--lu-fw-black);font-size:var(--lu-fs-lg);justify-content:space-between;align-items:flex-end;display:flex}.ds-brand-chip code{color:inherit;opacity:.85}.ds-steps{gap:var(--lu-s-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ds-step{font-size:var(--lu-fs-2xs);gap:4px;display:grid}.ds-step>span:first-child{border-radius:var(--lu-r-sm);border:2px solid var(--lu-border);height:36px}.ds-tones{gap:var(--lu-s-2);flex-wrap:wrap;display:flex}.ds-spec{gap:var(--lu-s-3);display:grid}.ds-spec-row{align-items:baseline;gap:var(--lu-s-4);padding-bottom:var(--lu-s-3);border-bottom:2px dashed var(--lu-border);grid-template-columns:150px minmax(0,1fr);display:grid}.ds-spec-row>:last-child{min-width:0;margin:0;line-height:1.25}.ds-pixel-num{font-family:var(--lu-font-pixel);font-variant-numeric:tabular-nums;font-weight:800}.ds-mono{font-family:var(--lu-font-mono);font-size:var(--lu-fs-sm)}.ds-note{padding:var(--lu-s-3) var(--lu-s-4);border-left:4px solid var(--lu-violet);border-radius:var(--lu-r-xs) var(--lu-r) var(--lu-r) var(--lu-r-xs);background:var(--lu-violet-soft);color:var(--lu-text);font-weight:600}.ds-btn-grid{align-items:center;gap:var(--lu-s-3) var(--lu-s-4);padding-bottom:var(--lu-s-1);grid-template-columns:96px repeat(3,max-content) max-content;display:grid;overflow-x:auto}.ds-btn-grid>code{align-self:center}.ds-px-demo{--px-face:var(--lu-violet-soft);--px-line:var(--lu-violet);padding:var(--lu-s-4) var(--lu-s-5);color:var(--lu-text);gap:6px;display:grid}.ds-px-demo[data-tone=mint]{--px-face:var(--lu-mint-soft);--px-line:var(--lu-mint-lip)}.ds-px-demo strong{font-size:var(--lu-fs-lg)}.ds-code{padding:var(--lu-s-3) var(--lu-s-4);border:2px solid var(--code-border);border-radius:var(--lu-r-lg);background:var(--code-bg);color:var(--code-foreground);font:14px / 1.7 var(--lu-font-mono);margin:0;overflow-x:auto}.ds .ds-code code{color:inherit;font-size:inherit}.ds-code [data-tk=keyword]{color:var(--code-token-keyword)}.ds-code [data-tk=string]{color:var(--code-token-string)}.ds-code [data-tk=const]{color:var(--code-token-constant)}.ds-code [data-tk=fn]{color:var(--code-token-function)}.ds-code [data-tk=param]{color:var(--code-token-parameter)}.ds-code [data-tk=comment]{color:var(--code-token-comment);font-style:italic}.ds-code [data-tk=punct]{color:var(--code-token-punctuation)}.ds-inline-code{border-radius:var(--lu-r-xs);background:var(--inline-code-bg);color:var(--inline-code);font:.92em var(--lu-font-mono);padding:1px 6px}.ds .ds-inline-code{color:var(--inline-code);font-size:.92em}.ds-theme{padding:var(--lu-s-5);border-radius:var(--lu-r-xl);border:2px solid var(--lu-border);background:var(--lu-bg);color:var(--lu-text)}@media (max-width:640px){.ds-hero{align-items:flex-start;gap:var(--lu-s-2);flex-direction:column}.ds-h1{font-size:var(--lu-fs-2xl)}.ds-spec-row{grid-template-columns:minmax(0,1fr);gap:4px}}.lu-skel{border-radius:var(--lu-r);background:var(--lu-surface-2);max-width:100%;box-shadow:inset 0 0 0 var(--lu-border-w) var(--lu-border);animation:lu-skel-pulse 1.1s var(--lu-ease) infinite alternate;flex:none;display:block}.lu-skel[data-r=sm]{border-radius:var(--lu-r-sm);box-shadow:none}.lu-skel[data-r=lg]{border-radius:var(--lu-r-lg)}.lu-skel[data-r=pill]{border-radius:var(--lu-r-pill)}@keyframes lu-skel-pulse{to{background:var(--lu-surface-3)}}.lu-skel-page{gap:20px;padding-top:28px;display:grid}.lu-skel-head{align-items:center;gap:16px;display:flex}.lu-skel-stack{flex:1;gap:10px;min-width:0;display:grid}.lu-skel-gap{height:8px}.lu-skel-row{align-items:center;gap:12px;display:flex}.lu-skel-row>.lu-skel:nth-child(2){flex:1}.lu-skel-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px;display:grid}.lu-skel-grid[data-cols="2"]{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.lu-skel-path{justify-items:center;gap:18px;padding:12px 0 40px;display:grid}.lu-skel-path>.lu-skel:nth-child(4n+2){translate:-56px}.lu-skel-path>.lu-skel:nth-child(4n){translate:56px}@media (prefers-reduced-motion:reduce){.lu-skel{animation:none}}.skip-link{z-index:100;background:var(--lu-violet);color:var(--lu-on-color);border-radius:var(--lu-r-sm);font:var(--lu-fw-bold) 14px/1.2 var(--lu-font);padding:8px 12px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:8px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;top:0;left:0;overflow:hidden}.muted,.db-sub,.prop-muted{color:var(--t2)}.app{min-height:100dvh;transition:grid-template-columns .2s var(--ease-out);grid-template-columns:256px minmax(0,1fr);display:grid}:root[data-sidebar=closed] .app{grid-template-columns:0 minmax(0,1fr)}.frame{min-width:0;padding-bottom:120px}.sidebar{background:var(--lu-bg);border-right:2px solid var(--lu-border);height:100dvh;font-family:var(--lu-font);color:var(--lu-text-2);-webkit-user-select:none;user-select:none;z-index:40;flex-direction:column;font-size:14px;display:flex;position:sticky;top:0;overflow:hidden}:root[data-sidebar=closed] .sidebar{visibility:hidden}.sb-head{align-items:center;gap:4px;padding:18px 12px 10px 20px;display:flex}.sb-brand{min-width:0;min-height:var(--lu-target);border-radius:var(--lu-r-sm);flex:1;align-items:center;display:flex}.sb-brand .lu-logomark{transition:transform var(--lu-dur-3) var(--lu-ease-bounce)}.sb-brand:hover .lu-logomark{transform:rotate(-8deg)scale(1.08)}.sb-icon-button{width:var(--lu-target);height:var(--lu-target);border-radius:var(--lu-r-sm);color:var(--lu-text-3);background:0 0;border:0;flex-shrink:0;place-items:center;transition:background-color 60ms,color 60ms;display:inline-grid}.sb-icon-button:hover{background:var(--lu-hover);color:var(--lu-text-2)}.sb-icon-button:active{background:var(--lu-press)}.sb-collapse{opacity:0;transition:opacity .1s}.sidebar:hover .sb-collapse,.sb-collapse:focus-visible{opacity:1}.sb-scroll{flex:1}.island{flex-direction:column;min-height:0;display:flex;position:relative}.island-viewport{overscroll-behavior:contain;scrollbar-width:none;flex:auto;min-height:0;overflow:hidden auto}.island-viewport::-webkit-scrollbar{display:none}.island-thumb{background:var(--lu-violet);border-radius:999px;width:5px;height:0;position:absolute;top:0;right:3px}@supports (color:color-mix(in lab, red, red)){.island-thumb{background:color-mix(in srgb, var(--lu-violet) 55%, transparent)}}.island-thumb{box-shadow:0 0 0 1px var(--lu-bg)}@supports (color:color-mix(in lab, red, red)){.island-thumb{box-shadow:0 0 0 1px color-mix(in srgb, var(--lu-bg) 70%, transparent)}}.island-thumb{opacity:0;pointer-events:none;touch-action:none;cursor:grab;transition:opacity .22s var(--ease-out), width .12s var(--ease-out), background-color .12s;z-index:2}.island-thumb:before{content:"";position:absolute;inset:-4px -6px -4px -8px}.island[data-overflow]:hover .island-thumb,.island[data-overflow][data-active] .island-thumb{pointer-events:auto}.island[data-overflow]:hover .island-thumb{opacity:.55}.island[data-overflow][data-active] .island-thumb,.island[data-overflow] .island-thumb:hover{opacity:1}.island-thumb:hover,.island[data-dragging] .island-thumb{background:var(--lu-violet);width:7px;right:2px}.island[data-dragging] .island-thumb{cursor:grabbing}.island[data-dragging]{-webkit-user-select:none;user-select:none}@media (hover:none){.island-thumb{width:4px}}@media (prefers-reduced-motion:reduce){.island-thumb{transition:none}}.sb-nav{gap:4px;padding:4px 14px 12px;display:grid}.sb-item{border-radius:var(--lu-r);min-height:48px;color:var(--lu-text-2);font:var(--lu-fw-bold) 15px/1.2 var(--lu-font);text-align:left;-webkit-tap-highlight-color:transparent;width:100%;transition:background-color var(--lu-dur-1), border-color var(--lu-dur-1), color var(--lu-dur-1);background:0 0;border:2px solid #0000;align-items:center;gap:14px;padding:0 12px;display:flex;position:relative}.sb-item:hover{background:var(--lu-hover);color:var(--lu-text)}.sb-item:active .sb-item-icon{transform:scale(.9)}.sb-item:focus-visible,.bottomnav-link:focus-visible,.sb-course:focus-visible,.sb-level:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.sb-item[data-active]{background:var(--lu-violet-soft);border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.sb-item[data-active]{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.sb-item[data-active]{box-shadow:0 3px 0 var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.sb-item[data-active]{box-shadow:0 3px 0 color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.sb-item[data-active]{color:var(--lu-violet-ink)}.sb-item[data-active]:before{content:"";background:var(--lu-violet);clip-path:polygon(0 0,3px 0,3px 3px,6px 3px,6px calc(100% - 3px),3px calc(100% - 3px),3px 100%,0 100%);width:6px;height:24px;position:absolute;top:calc(50% - 12px);left:-16px}.sb-item-icon{height:32px;color:var(--nav-c,var(--lu-text-3));transition:transform var(--lu-dur-2) var(--lu-ease-bounce);flex:0 0 32px;place-items:center;display:grid}.sb-item:hover .sb-item-icon{transform:scale(1.1)rotate(-4deg)}.sb-search .sb-item-icon{color:var(--lu-text-3)}.sb-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sb-kbd{font-family:var(--lu-font);letter-spacing:0;color:var(--lu-text-3);border:0;font-size:12px;font-weight:700}.sb-count{flex:none}.sb-section{border-top:2px solid var(--lu-border);padding:6px 14px 14px}.sb-section-title{height:36px;font-size:13px;font-weight:var(--lu-fw-bold);color:var(--lu-text-3);align-items:center;padding:0 8px;display:flex}.sb-section-link{border-radius:var(--lu-r-sm);width:28px;height:28px;color:var(--lu-text-3);place-items:center;margin-left:auto;display:inline-grid}.sb-section-link:hover{background:var(--lu-hover);color:var(--lu-violet-ink)}.sb-section-link:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:1px}.sb-nav-practice{padding:0}.sb-practice-course{min-width:0;color:var(--lu-text-2);border-radius:var(--lu-r-xs);align-items:center;gap:8px;display:flex}.sb-practice-course>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sb-practice-course:hover{color:var(--lu-violet-ink)}.sb-practice-course:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.tt,.tt-group{margin:0;padding:0;list-style:none}.tt-group{position:relative}.tt-group:before{content:"";top:2px;bottom:2px;left:calc(var(--tt-level) * 14px - 1px);background:var(--lu-border);width:1px;position:absolute}.tt-item{outline:none}.tt-row{min-height:30px;padding:0 6px 0 calc(2px + (var(--tt-level) - 1) * 14px);border-radius:var(--lu-r-sm);color:var(--lu-text-2);font:600 13.5px/1.3 var(--lu-font);align-items:center;gap:6px;transition:background-color 60ms;display:flex}.tt-row[data-kind=guide]{font-weight:var(--lu-fw-bold);color:var(--lu-text)}.tt-row:hover{background:var(--lu-hover)}.tt-row[data-active]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.tt-item:focus-visible>.tt-row{outline:3px solid var(--lu-focus-color);outline-offset:-1px}.tt-chevron{border-radius:var(--lu-r-xs);height:20px;color:var(--lu-text-3);background:0 0;border:0;flex:0 0 16px;place-items:center;padding:0;display:grid}button.tt-chevron:hover{background:var(--lu-press);color:var(--lu-text-2)}.tt-chevron>svg{transition:transform .12s var(--ease-out)}.tt-chevron[data-open]>svg{transform:rotate(90deg)}.tt-icon{flex:0 0 16px;place-items:center;display:grid}.tt-dot{flex:0 0 16px;height:16px;position:relative}.tt-dot:before{content:"";border:2px solid var(--lu-border-strong);border-radius:2px;position:absolute;inset:5px}.tt-dot[data-status=reading]:before{border-color:var(--lu-yellow-lip);background:linear-gradient(to top, var(--lu-yellow) 50%, transparent 50%)}.tt-dot[data-status=studied]:before{border-color:var(--lu-green-lip);background:var(--lu-green)}.tt-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:inherit;text-align:left;font:inherit;background:0 0;border:0;flex:1;padding:0;line-height:30px;position:relative;overflow:hidden}.tt-meta{font-size:11.5px;font-weight:var(--lu-fw-bold);color:var(--lu-text-3);flex:none}.tt-meta[data-complete]{color:var(--lu-green-ink)}@media (prefers-reduced-motion:reduce){.tt-chevron>svg{transition:none}}.sb-empty{color:var(--lu-text-3);padding:4px 8px;font-size:13px}.sb-foot{border-top:2px solid var(--lu-border);gap:6px;padding:10px 14px 12px;display:grid}.sb-level{border-radius:var(--lu-r-lg);border:2px solid var(--lu-border);background:var(--lu-surface);box-shadow:0 3px 0 var(--lu-border);color:var(--lu-text-2);transition:background-color 60ms, transform var(--lu-dur-1), box-shadow var(--lu-dur-1);align-items:center;gap:12px;margin-bottom:3px;padding:8px 10px;font-size:13px;display:flex}.sb-level:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.sb-level:active{box-shadow:0 0 0 var(--lu-border);transform:translateY(3px)}.sb-level-badge{background:var(--lu-yellow-soft);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.sb-level-badge>.tabular{border-radius:var(--lu-r-xs);background:var(--lu-violet);min-width:20px;height:20px;color:var(--lu-on-color);font:800 12px/1 var(--lu-font-pixel);box-shadow:0 0 0 2px var(--lu-surface);place-items:center;padding:0 4px;display:grid;position:absolute;bottom:-4px;right:-4px}.sb-level-body{flex:1;gap:6px;min-width:0;display:grid}.sb-level-top{font-weight:var(--lu-fw-bold);justify-content:space-between;gap:8px;display:flex}.sb-level-top>span:first-child{color:var(--lu-text);font-weight:var(--lu-fw-black)}.bar,.mini-bar{background:var(--lu-surface-3);border-radius:2px;height:4px;display:block;overflow:hidden}.bar>span,.mini-bar>span{background:var(--lu-violet);transform-origin:0;height:100%;transition:transform .4s var(--ease-out);border-radius:2px;display:block}.mini-bar>span[data-done]{background:var(--lu-green)}.sb-foot-tools{gap:2px;display:flex}.sb-scrim{display:none}.page-topbar{z-index:30;background:var(--lu-bg);border-bottom:2px solid var(--lu-border);height:56px;font-family:var(--lu-font);align-items:center;gap:4px;padding:0 12px;font-size:14px;display:flex;position:sticky;top:0}.shell-stats{align-items:center;gap:2px;margin-left:4px;display:flex}.topbar-menu{display:none}.crumbs{white-space:nowrap;flex:1;align-items:center;min-width:0;display:flex;overflow:hidden}.crumb-wrap{align-items:center;min-width:0;display:inline-flex}.crumb{text-overflow:ellipsis;border-radius:var(--lu-r-sm);max-width:240px;color:var(--lu-text-2);padding:4px 8px;font-weight:600;transition:background-color 60ms,color 60ms;display:inline-block;overflow:hidden}a.crumb:hover{background:var(--lu-hover);color:var(--lu-violet-ink)}.crumb[aria-current=page]{color:var(--lu-text);font-weight:var(--lu-fw-bold)}.crumb-sep{color:var(--lu-text-3);margin:0 1px}.page-topbar-right{align-items:center;gap:2px;min-width:0;display:flex}.topbar-search{display:none}.topbar-button{border-radius:var(--lu-r-sm);height:36px;color:var(--lu-text-2);font:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0 10px;font-size:14px;font-weight:600;transition:background-color 60ms,color 60ms;display:inline-flex}.topbar-button:hover{background:var(--lu-hover);color:var(--lu-text)}.topbar-button svg{color:var(--lu-text-3)}.topbar-button[data-done],.topbar-button[data-done] svg{color:var(--lu-green-ink)}.read-progress{display:none}.page{max-width:900px;animation:page-in .14s var(--ease-out);margin:0 auto;padding:40px 96px 0}.page[data-width=wide]{max-width:1280px}.page-title{font-size:40px;line-height:1.2;font-weight:var(--lu-fw-black);letter-spacing:-.01em;color:var(--lu-text);overflow-wrap:break-word;margin-top:32px;padding:3px 2px}.page-title-icon{vertical-align:-.1em;margin-right:10px}.page-lead{color:var(--t1);margin-top:4px;padding:3px 2px;font-size:16px}.page-divider{background:var(--lu-border);height:2px;margin:12px 0 14px}.empty-note{color:var(--t2);padding:12px 2px;font-size:14px}.vault-error{border:2px solid var(--lu-red);margin:12px 24px 0;padding:12px 16px}@supports (color:color-mix(in lab, red, red)){.vault-error{border:2px solid color-mix(in srgb, var(--lu-red) 35%, transparent)}}.vault-error{border-radius:var(--lu-r);background:var(--lu-red-soft);color:var(--lu-red-ink);font-size:14px;font-weight:600}.props{gap:1px;margin:12px 0 0;display:grid}.prop{grid-template-columns:160px minmax(0,1fr);min-height:34px;font-size:14px;display:grid}.prop-name{color:var(--t2);border-radius:4px;align-items:center;gap:6px;padding:0 6px;display:flex}.prop-name svg{color:var(--t3)}.prop-value{color:var(--t1);border-radius:4px;flex-wrap:wrap;align-items:center;gap:4px;margin:0;padding:6px 8px;transition:background-color 60ms;display:flex}.prop-value:hover{background:var(--hover)}.prop-link{text-decoration:underline;-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:2px;font-weight:500}.prop-tags{flex-wrap:wrap;gap:4px 6px;display:inline-flex}.prop-chip{background:var(--tag-default);height:22px;color:var(--tag-text);border-radius:3px;align-items:center;padding:0 6px;font-size:12px;transition:background-color 60ms;display:inline-flex}.prop-chip:hover{background:var(--lu-violet-soft)}.progress-inline{align-items:center;gap:10px;min-width:160px;font-size:14px;display:inline-flex}.progress-inline .bar{flex:1;min-width:80px}.page-link{border-radius:4px;align-items:center;gap:6px;min-height:30px;padding:3px 2px;transition:background-color 60ms;display:flex}.page-link:hover{background:var(--hover)}.page-link>svg{color:var(--t2);flex:none}.page-link-title{border-bottom:1px solid var(--border);text-overflow:ellipsis;font-weight:500;line-height:1.3;overflow:hidden}.page-link-meta{color:var(--t2);white-space:nowrap;gap:4px;margin-left:auto;padding-left:12px;font-size:12px;display:inline-flex}.today-callout{margin-top:16px}.today-list{color:var(--t1);flex-wrap:wrap;gap:4px 20px;margin:4px 0 0;padding:0 2px;font-size:14px;list-style:none;display:flex}.today-list li{align-items:center;gap:8px;display:inline-flex}.today-list .mini-bar{width:64px}.today-link{border-radius:4px;margin:0 -4px;padding:1px 4px;transition:background-color 60ms}.today-link:hover{background:var(--hover)}.continue-link{background:var(--bg);box-shadow:var(--shadow-card);margin-top:8px;padding:6px 8px}.continue-link:hover{background:var(--bg);box-shadow:var(--shadow-card), 0 0 0 1px var(--accent)}.db-title{margin:32px 0 8px;padding:3px 2px;font-size:1.25em;font-weight:600}.db-scroll{border-top:1px solid var(--table-line);overflow-x:auto}.db{border-collapse:collapse;width:100%;font-size:14px}.db th{text-align:left;height:33px;color:var(--t2);border-bottom:1px solid var(--table-line);border-right:1px solid var(--table-line);white-space:nowrap;padding:0 8px;font-weight:400}.db th:last-child,.db td:last-child{border-right:0}.db-th{align-items:center;gap:6px;display:inline-flex}.db-th svg{color:var(--t3)}.db td{border-bottom:1px solid var(--table-line);border-right:1px solid var(--table-line);vertical-align:top;min-height:33px;padding:7px 8px;position:relative}.db tbody tr{transition:background-color 60ms}.db tbody tr:hover{background:var(--lu-hover)}.db-name{min-width:240px}.db-title-link{align-items:center;gap:6px;font-weight:500;display:inline-flex}.db-title-link span{border-bottom:1px solid var(--border)}.db-title-link svg{color:var(--t2);flex-shrink:0}.db-title-link:after{content:"";position:absolute;inset:0}.db-open{background:var(--bg);height:22px;box-shadow:var(--shadow-card);color:var(--t2);opacity:0;pointer-events:none;border-radius:4px;align-items:center;padding:0 6px;font-size:12px;font-weight:600;transition:opacity 80ms;display:inline-flex;position:absolute;top:7px;right:8px}.db tbody tr:hover .db-open{opacity:1}.db-progress{min-width:170px}.db-count{color:var(--t3);padding:8px;font-size:14px}.guide-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.contents{gap:1px;display:grid}.contents-part>summary{cursor:pointer;border-radius:4px;align-items:center;gap:4px;min-height:30px;padding:3px 0;font-weight:600;list-style:none;display:flex}.contents-part>summary::-webkit-details-marker{display:none}.contents-part-count{color:var(--t3);margin-left:6px;font-size:12px;font-weight:400}.contents-part-body{gap:1px;padding-left:26px;display:grid}.guide-intro{margin-top:24px}.guide-intro>summary{cursor:pointer;align-items:center;gap:4px;padding:3px 0;font-weight:600;list-style:none;display:flex}.guide-intro>summary::-webkit-details-marker{display:none}.guide-intro>.prose-read{padding-left:26px}.chapter-foot{gap:24px;margin-top:48px;display:grid}.backlinks .section-title{align-items:center;gap:6px;margin-top:0;display:flex}.pager{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pager-link{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 3px 0 var(--lu-border);gap:2px;padding:10px 14px;transition:background-color 60ms,border-color 60ms;display:grid}.pager-link:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.pager-next{text-align:right}.pager-dir{color:var(--t2);font-size:12px}.pager-title{font-size:14px;font-weight:500}.toc{z-index:25;padding:12px 16px 12px 24px;position:fixed;top:50%;right:0;transform:translateY(-50%)}.toc-lines{justify-items:end;gap:10px;display:grid}.toc-line{background:var(--lu-border-strong);border-radius:1px;width:14px;height:2px}.toc-line[data-depth="3"]{width:8px}.toc-line[data-active]{background:var(--lu-violet)}.toc-panel{border-radius:var(--lu-r-lg);background:var(--lu-surface);width:260px;max-height:70vh;box-shadow:var(--lu-shadow-pop);opacity:0;visibility:hidden;transition:opacity .12s, transform .12s var(--ease-out), visibility .12s;padding:8px;position:absolute;top:50%;right:12px;overflow-y:auto;transform:translate(8px,-50%)}.toc:hover .toc-panel,.toc:focus-within .toc-panel{opacity:1;visibility:visible;transform:translateY(-50%)}.toc-item{color:var(--t2);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:14px;line-height:1.35;display:block;overflow:hidden}.toc-item[data-depth="3"]{padding-left:22px}.toc-item:hover{background:var(--hover);color:var(--t1)}.toc-item[aria-current]{color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold)}.embed{border-left:3px solid var(--lu-border-strong);padding:4px 0 4px 14px}.embed-head{align-items:baseline;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.palette{width:min(755px,100vw - 24px);max-width:none;color:var(--lu-text);font-family:var(--lu-font);background:0 0;border:0;margin:12vh auto auto;padding:0}.palette::backdrop{background:var(--lu-scrim)}.palette-box{background:var(--lu-surface);border:2px solid var(--lu-border);border-radius:var(--lu-r-xl);box-shadow:0 6px 0 var(--lu-border), var(--lu-shadow-pop);overflow:hidden}.palette-search{border-bottom:2px solid var(--lu-border);color:var(--lu-violet);align-items:center;gap:10px;padding:0 18px;display:flex}.palette-input{height:56px;color:var(--lu-text);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:18px;font-weight:600}.palette-input::placeholder{color:var(--lu-text-3)}.palette-list{max-height:min(56vh,480px);margin:0;padding:6px;list-style:none;overflow-y:auto}.palette-item{border-radius:var(--lu-r);cursor:pointer;border:2px solid #0000;align-items:center;gap:10px;min-height:48px;padding:4px 12px;display:flex}.palette-item[aria-selected=true]{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.palette-item[aria-selected=true]{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.palette-item[aria-selected=true]{background:var(--lu-violet-soft)}.palette-item[aria-selected=true] .palette-title,.palette-item[aria-selected=true] .palette-icon,.palette-item[aria-selected=true] .palette-enter{color:var(--lu-violet-ink)}.palette-icon{color:var(--lu-text-2);flex:none}.palette-text{flex:1;min-width:0;display:grid}.palette-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.palette-context{color:var(--t2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.palette-enter{color:var(--t3)}.palette-empty{color:var(--t2);padding:18px 12px;font-size:14px}.palette-foot{border-top:2px solid var(--lu-border);background:var(--lu-surface-2);color:var(--lu-text-3);gap:16px;padding:10px 18px;font-size:12px;font-weight:600;display:flex}.toast-stack{z-index:60;pointer-events:none;justify-items:center;gap:8px;display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--lu-r-lg);color:#eeeaff;min-width:260px;max-width:380px;font-family:var(--lu-font);background:var(--lightningcss-light,#2a2145)var(--lightningcss-dark,#261f45);border:2px solid #4a3f7a;gap:1px;padding:12px 38px 12px 16px;font-size:14px;display:grid;position:relative;box-shadow:0 4px #16112b,0 12px 28px #08051459}.toast .eyebrow{color:#b0a6d6;align-items:center;gap:4px;display:inline-flex}.toast-inline-icon{vertical-align:-2px;display:inline-block}.toast-title{font-weight:var(--lu-fw-bold);font-size:15px}.toast[data-tone=accent] .toast-title{color:#c4b2ff}.toast[data-tone=gold] .toast-title{color:#ffd66b}.toast[data-tone=success] .toast-title{color:#5fe09a}.toast-body{color:#b0a6d6;font-size:13px}.toast-close{color:#7b71a3;border-radius:var(--lu-r-xs);background:0 0;border:0;padding:4px;font-size:16px;line-height:1;position:absolute;top:6px;right:8px}.toast-close:hover{color:#eeeaff;background:#c4b2ff1f}.toast-xp{border-radius:var(--lu-r-sm);background:var(--lu-yellow);min-width:0;box-shadow:0 3px 0 var(--lu-yellow-lip);color:var(--lu-loo-ink);font:800 18px/1.1 var(--lu-font-pixel);border:0;padding:6px 14px}.toast-xp.toast-gems{box-shadow:0 3px 0 var(--lu-blue-lip);color:var(--lu-on-color)}.toast-xp.toast-bucks{background:var(--lu-orange);box-shadow:0 3px 0 var(--lu-orange-lip);color:var(--lu-on-color)}.bottomnav{display:none}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--t2);border-bottom:1px solid var(--table-line);white-space:nowrap;padding:6px 8px;font-weight:400}.data-table td{border-bottom:1px solid var(--table-line);vertical-align:top;padding:7px 8px}.data-table tbody tr{transition:background-color 60ms}.data-table tbody tr:hover{background:var(--lu-hover)}.data-table .num{text-align:right;white-space:nowrap;width:1%}.data-table .bar-col{vertical-align:middle;width:26%}.cell-sub{color:var(--t2);margin-top:1px;font-size:12px;display:block}.bar[data-tone=danger]>span,.bar>span[data-weak]{background:var(--red)}:root{--heat-0:var(--lightningcss-light,#ece6fb)var(--lightningcss-dark,#261f45);--heat-1:var(--lightningcss-light,#d9ccff)var(--lightningcss-dark,#3a2d78);--heat-2:var(--lightningcss-light,#b89cff)var(--lightningcss-dark,#5638b8);--heat-3:var(--lightningcss-light,#9672ff)var(--lightningcss-dark,#7550f0);--heat-4:var(--lightningcss-light,#6a3df0)var(--lightningcss-dark,#a58bff)}.heatmap{margin:8px 0 0}.heatmap-scroll{overflow-x:auto}.heatmap svg{display:block}.heatmap-label{font-family:var(--font-ui);fill:var(--t3);font-size:10px}.heat-cell{fill:var(--heat-0)}.heat-cell[data-level="1"]{fill:var(--heat-1)}.heat-cell[data-level="2"]{fill:var(--heat-2)}.heat-cell[data-level="3"]{fill:var(--heat-3)}.heat-cell[data-level="4"]{fill:var(--heat-4)}.heat-cell:hover{stroke:var(--lu-text);stroke-width:1.5px}.heatmap-legend{color:var(--t2);align-items:center;gap:4px;margin-top:8px;font-size:12px;display:flex}.roadmap-body{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:40px;margin-top:16px;display:grid}.lanes-legend{white-space:normal;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;display:flex}.lane{border-top:1px solid var(--table-line);grid-template-columns:170px minmax(0,1fr);gap:16px;padding:12px 0;display:grid}.lane[data-blocked]{opacity:.5}.lane-head{align-content:start;gap:1px;display:grid}.lane-title{font-size:14px;font-weight:600}.lane-title:hover{text-decoration:underline}.lane-parts{flex-wrap:wrap;align-items:flex-end;gap:10px 16px;display:flex}.lane-part{gap:4px;display:grid}.lane-part-title{color:var(--t2);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:11px;overflow:hidden}.road-cells{flex-wrap:wrap;gap:3px;margin:0;padding:0;list-style:none;display:flex}.road-cell{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);vertical-align:middle;width:14px;height:14px;transition:transform 80ms;display:inline-block;position:relative}.road-cell[data-status=studied]{background:var(--lu-green)}.road-cell[data-status=reading]{background:var(--lu-violet);opacity:.55}.road-cell[data-weak]:after{content:"";background:var(--lu-red);width:6px;height:6px;box-shadow:0 0 0 1.5px var(--lu-bg);border-radius:50%;position:absolute;top:-2px;right:-2px}.road-cell[data-current]{box-shadow:0 0 0 2px var(--lu-bg), 0 0 0 4px var(--lu-violet)}a.road-cell:hover{transform:scale(1.25)}.rec-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rec-list li{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);gap:1px;padding:10px 12px;transition:background-color 60ms;display:grid}.rec-list li:hover{background:var(--lu-surface-2)}.rec-list li:first-child{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.rec-list li:first-child{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.rec-list li:first-child{background:var(--lu-violet-soft)}.rec-list li[data-kind=weak]{border-color:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.rec-list li[data-kind=weak]{border-color:color-mix(in srgb, var(--lu-red) 35%, transparent)}}.rec-list li[data-kind=weak]{background:var(--lu-red-soft)}.rec-title{font-size:14px;font-weight:600;line-height:1.35}.rec-title:hover{text-decoration:underline}.setting-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:start;gap:24px;padding:12px 2px;font-size:14px;display:grid}.setting-label{font-weight:500}.setting-control{justify-items:start;gap:8px;display:grid}.inline-form{gap:8px;width:100%;display:flex}.text-input,.select,.quiz-input{min-width:0;height:40px;font:inherit;color:var(--lu-text);background:var(--lu-surface);border:2px solid var(--lu-border-strong);border-radius:var(--lu-r);flex:1;padding:0 12px;font-size:15px;transition:border-color 80ms,box-shadow 80ms}.text-input:focus,.select:focus,.quiz-input:focus{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft);outline:none}.number-input{flex:none;width:90px}.setting-msg{color:var(--lu-red-ink);font-size:13px;font-weight:600}.setting-msg[data-ok]{color:var(--lu-green-ink)}.range-row{align-items:center;gap:12px;display:flex}.range-row input[type=range]{accent-color:var(--lu-violet);width:180px}.as-button{font:inherit;background:0 0;border:0;padding:0}.ui-button.danger-button{background:var(--lu-red)}.ui-button.danger-button:hover{background:var(--lu-red-lip)}.issue-group{border-bottom:1px solid var(--rule);font-size:14px}.issue-group>summary{cursor:pointer;align-items:center;gap:4px;padding:6px 0;font-weight:500;list-style:none;display:flex}.issue-group>summary::-webkit-details-marker{display:none}.issue-group>summary:before{content:"";border-left:6px solid var(--t2);border-top:4px solid #0000;border-bottom:4px solid #0000;margin:0 10px 0 8px;transition:transform .12s}.issue-group[open]>summary:before{transform:rotate(90deg)}.issue-group>summary .unit-meta{margin-left:auto}.issue-group ul{gap:6px;max-height:320px;margin:0 0 10px;padding:0 0 0 26px;list-style:none;display:grid;overflow-y:auto}.settings-page code{font-family:var(--font-mono);color:var(--inline-code);background:var(--inline-code-bg);border-radius:4px;padding:.2em .4em;font-size:85%}@media (max-width:1100px){.page{padding-left:48px;padding-right:48px}.toc{display:none}}@media (max-width:899px){.page-link{flex-wrap:wrap}.page-link-title{flex:1 1 0;min-width:0}.page-link-meta{white-space:normal;flex:1 0 100%;margin-left:0;padding-left:24px}.topbar-label{display:none}.topbar-button{justify-content:center;width:28px;padding:0}.app,:root[data-sidebar=closed] .app{grid-template-columns:minmax(0,1fr)}html,body{overflow-x:clip}.sidebar,:root[data-sidebar=closed] .sidebar{visibility:visible;width:min(300px,86vw);transition:transform .2s var(--ease-out);background:var(--lu-surface);box-shadow:var(--lu-shadow-pop);position:fixed;top:0;left:0;overflow-x:clip;transform:translate(-102%)}:root[data-drawer=open] .sidebar{transform:none}:root[data-drawer=open] .sb-scrim{z-index:39;background:var(--lu-scrim);display:block;position:fixed;inset:0}.sb-collapse,.topbar-expand{display:none}.topbar-menu,.topbar-search{display:inline-grid}.page{padding:16px 20px 0}.page-title{margin-top:16px;font-size:32px}.prop{grid-template-columns:120px minmax(0,1fr)}.bottomnav{grid-template-columns:repeat(var(--tabs,5), 1fr);z-index:30;background:var(--lu-surface);border-top:2px solid var(--lu-border);padding:4px 4px calc(4px + env(safe-area-inset-bottom));font-family:var(--lu-font);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav-link{min-height:var(--lu-target);font-size:10.5px;font-weight:var(--lu-fw-bold);color:var(--lu-text-3);border-radius:var(--lu-r-sm);-webkit-tap-highlight-color:transparent;justify-items:center;gap:1px;padding:0;display:grid;position:relative}.bottomnav-link[aria-current=page]{color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.bottomnav-link[aria-current=page]:before{content:"";background:var(--lu-violet);clip-path:polygon(0 0,100% 0,100% 2px,calc(100% - 2px) 2px,calc(100% - 2px) 100%,2px 100%,2px 2px,0 2px);width:24px;height:4px;position:absolute;top:-6px;left:calc(50% - 12px)}.bottomnav-icon{border-radius:var(--lu-r-sm);width:48px;height:30px;color:var(--nav-c,var(--lu-text-3));transition:transform var(--lu-dur-2) var(--lu-ease-bounce), background-color var(--lu-dur-2);border:2px solid #0000;place-items:center;display:grid;position:relative}.bottomnav-link:active .bottomnav-icon{transform:scale(.88)}.bottomnav-link[aria-current=page] .bottomnav-icon{background:var(--lu-violet-soft);border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.bottomnav-link[aria-current=page] .bottomnav-icon{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.bottomnav-label{line-height:1.1}.bottomnav-dot{min-width:18px;height:18px;box-shadow:0 0 0 2px var(--lu-surface);padding:0 4px;font-size:10px;position:absolute;top:-6px;right:2px}.page-topbar{height:52px;padding:0 6px}.page-topbar[data-has-actions] .shell-stats{display:none}.shell-stats{gap:0;margin-left:0}@media (max-width:420px){.shell-stat-bucks,.shell-stat-xp{display:none}}.toast-stack{bottom:calc(72px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}.toast{width:100%;max-width:none}.toast-xp{width:auto}.db thead{display:none}.db,.db tbody,.db tr,.db td{display:block;border:0!important}.db tr{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 0;display:grid;border-bottom:1px solid var(--table-line)!important}.db td{padding:0}.db td.db-name{grid-column:1/-1;min-width:0}.db td:nth-child(2){color:var(--t2);font-size:13px}.db td.db-progress{grid-column:1/-1;min-width:0}.db td:nth-child(4){grid-column:1/-1}.db td:nth-child(5),.db td:nth-child(6),.db-open{display:none!important}.roadmap-body{grid-template-columns:1fr;gap:20px}.recs{order:-1}.lane{grid-template-columns:1fr;gap:6px}.lane-head{grid-template-columns:auto auto 1fr;align-items:baseline;gap:8px}.data-table thead{display:none}.data-table tr{border-bottom:1px solid var(--table-line);grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;display:grid}.data-table td{border:0;padding:0;display:block}.data-table td:first-child{grid-column:1/-1}.data-table .bar-col{grid-column:1/-1;width:auto}.setting-row{grid-template-columns:1fr;gap:8px}.pager{grid-template-columns:1fr}.pager-next{text-align:left}.frame{padding-bottom:96px}}.db td:nth-child(2),.db td:nth-child(5),.db td:nth-child(6){white-space:nowrap}.page.profile,.page.roadmap,.page.mistakes-page{max-width:1280px}.reader-crumbs{color:var(--t3);flex-wrap:wrap;align-items:center;gap:2px;margin-top:24px;font-size:14px;display:flex}.reader-crumbs a{color:var(--t2);border-radius:4px;padding:2px 6px;text-decoration:none;transition:background-color 60ms}.reader-crumbs a:hover{background:var(--hover);color:var(--t1)}.chapter-meta{color:var(--t2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding:0 2px;font-size:14px;display:flex}.chapter-meta>span:first-child{margin-right:8px}.chapter-meta a{background:var(--tag-default);height:24px;color:var(--tag-text);border-radius:4px;align-items:center;padding:0 8px;font-size:13px;text-decoration:none;transition:background-color 60ms;display:inline-flex}.chapter-meta a:hover{background:var(--lu-violet-soft)}.chapter-meta a[aria-current]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold)}.queue-note{color:var(--t2);font-size:13px}.contents-part-title{font-weight:600}.prose-flow{overflow-wrap:break-word;line-height:1.6}:where(.prose-flow)>*+*{margin-top:.6em}:where(.prose-flow)>:is(.callout,.code,.table-wrap,blockquote)+*,:where(.prose-flow)>*+:is(.callout,.code,.table-wrap,blockquote){margin-top:.9em}.unit-meta{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.unit-flash{margin-bottom:var(--lu-lip-sm);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);transition:border-color var(--lu-dur-2), box-shadow var(--lu-dur-2)}.unit-flash>summary{cursor:pointer;border-radius:calc(var(--lu-r-lg) - 2px);transition:background-color var(--lu-dur-2);align-items:flex-start;gap:10px;padding:11px 14px 11px 10px;list-style:none;display:flex}.unit-flash>summary:hover{background:var(--lu-surface-2)}.unit-flash>summary::-webkit-details-marker{display:none}.unit-flash>summary .toggle-arrow{background:var(--lu-violet-soft);width:24px;height:24px;color:var(--lu-violet-ink);flex-basis:24px;margin-top:1px}.unit-flash-q{min-width:0;font-size:16px;font-weight:var(--lu-fw-bold);flex:1;padding-top:1px;line-height:1.5}.unit-flash-tags{flex-wrap:wrap;justify-content:flex-end;gap:4px;padding-top:2px;display:inline-flex}.unit-flash[open]{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.unit-flash[open]{border-color:color-mix(in srgb, var(--lu-violet) 40%, var(--lu-border))}}.unit-flash[open]{box-shadow:0 var(--lu-lip-sm) 0 var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.unit-flash[open]{box-shadow:0 var(--lu-lip-sm) 0 color-mix(in srgb, var(--lu-violet) 40%, var(--lu-border))}}.unit-flash[open]>summary{border-bottom:2px dashed var(--lu-border);border-radius:calc(var(--lu-r-lg) - 2px) calc(var(--lu-r-lg) - 2px) 0 0}.unit-flash-a{padding:12px 16px 4px 44px;font-size:16px}.unit-foot{color:var(--lu-text-3);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px 12px 44px;font-size:12px;display:flex}.unit-foot code{font-family:var(--lu-font-mono);font-size:11px;color:var(--lu-text-3)!important;box-shadow:none!important;background:0 0!important;padding:0!important}.unit-flash:target{border-color:var(--lu-yellow);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-yellow-lip)}.unit-flash:target>summary{background:var(--lu-yellow-soft)}@media (max-width:480px){.unit-flash>summary{flex-wrap:wrap}.unit-flash-tags{flex-basis:100%;justify-content:flex-start;padding-left:34px}.unit-flash-a,.unit-foot{padding-left:14px}}.quiz,.task{font-family:var(--lu-font);font-size:var(--lu-fs-sm);color:var(--lu-text);line-height:1.5}.quiz[data-variant=inline],.task[data-variant=inline]{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);margin:14px 0 18px;padding:14px 16px 16px;font-size:16px}.quiz[data-variant=inline][data-state=correct]{border-color:var(--lu-green);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-green-lip)}.quiz[data-variant=inline][data-state=wrong]{border-color:var(--lu-red);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-red-lip)}.task[data-variant=inline][data-status=solved]{border-color:var(--lu-green);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-green-lip)}.quiz[data-variant=session],.task[data-variant=session]{font-size:var(--lu-fs-md)}.quiz-head,.task-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quiz-kind,.task-kind{font-weight:var(--lu-fw-black)}.quiz-prompt{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-bold);text-wrap:balance;margin-top:10px;line-height:1.3}.quiz[data-variant=session] .quiz-prompt{font-size:clamp(21px,5.4vw,26px);font-weight:var(--lu-fw-black);margin-top:12px}.quiz-prompt code,.task-title code{font-family:var(--lu-font-mono);color:var(--inline-code);background:var(--inline-code-bg);border-radius:6px;padding:.1em .35em;font-size:.86em;font-weight:600}.quiz-body{font-family:var(--lu-font);margin-top:8px}.quiz-body pre{border-radius:var(--lu-r)!important}.quiz .quiz-options{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.quiz .quiz-options li{min-width:0;padding:0}.quiz-option{--o:var(--lu-border);--o-lip:var(--lu-border);--o-bg:var(--lu-surface);--o-ink:var(--lu-text);width:100%;min-height:56px;margin-bottom:var(--lu-lip);text-align:left;border:2px solid var(--o);border-radius:var(--lu-r);background:var(--o-bg);box-shadow:0 var(--lu-lip) 0 var(--o-lip);color:var(--o-ink);font:inherit;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2), border-color var(--lu-dur-2);align-items:center;gap:12px;padding:10px 14px;font-weight:600;line-height:1.4;display:flex;position:relative}.quiz-option:hover:not(:disabled){--o-bg:var(--lu-surface-2)}.quiz-option:active:not(:disabled){transform:translateY(calc(var(--lu-lip) - 1px));box-shadow:0 1px 0 var(--o-lip)}.quiz-option:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.quiz-option:disabled{cursor:default}.quiz-key{border:2px solid var(--o);border-radius:var(--lu-r-sm);width:30px;height:30px;color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);font-variant-numeric:tabular-nums;flex:none;place-items:center;transition:inherit;display:grid}.quiz-option-text{overflow-wrap:anywhere;flex:1;min-width:0}.quiz-option[data-state=picked]{--o:var(--lu-violet);--o-lip:var(--lu-violet-lip);--o-bg:var(--lu-violet-soft);--o-ink:var(--lu-violet-ink)}.quiz-option[data-state=picked] .quiz-key{background:var(--lu-violet);color:var(--lu-on-color)}.quiz-option[data-state=right]{--o:var(--lu-green);--o-lip:var(--lu-green-lip);--o-bg:var(--lu-green-soft);--o-ink:var(--lu-green-ink);animation:quiz-bounce var(--lu-dur-3) var(--lu-ease-bounce)}.quiz-option[data-state=wrong]{--o:var(--lu-red);--o-lip:var(--lu-red-lip);--o-bg:var(--lu-red-soft);--o-ink:var(--lu-red-ink)}.quiz-option[data-state=right] .quiz-key,.quiz-option[data-state=wrong] .quiz-key{background:var(--o);color:var(--lu-on-color);font-size:16px}.quiz-option[data-state=wrong] .quiz-option-text{text-decoration:line-through;text-decoration-thickness:2px}.quiz-option[data-state=idle]:disabled{opacity:.6}.quiz[data-state=wrong] .quiz-option[data-state=wrong]{animation:shake .32s var(--lu-ease)}.quiz-mark{border-radius:var(--lu-r-pill);background:var(--o-lip);color:var(--lu-on-color);font-size:12px;font-weight:var(--lu-fw-bold);white-space:nowrap;flex:none;padding:3px 8px}.quiz[data-variant=inline] .quiz-option{min-height:48px;margin-bottom:var(--lu-lip-sm);box-shadow:0 var(--lu-lip-sm) 0 var(--o-lip);padding:8px 12px}.quiz[data-variant=inline] .quiz-key{border-radius:8px;width:26px;height:26px}.quiz[data-variant=inline] .quiz-options{gap:6px}.quiz-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;display:flex}.quiz-actions[data-docked]{flex-wrap:nowrap;margin:0}.quiz-actions .lu-btn{margin-bottom:var(--b-lip-h)}.quiz-hint{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:700}.quiz-actions[data-docked] .quiz-hint{flex:none}.quiz-dock-hint{text-align:center;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);flex:1;margin:0;padding:14px 0}.quiz-free{flex-wrap:wrap;align-items:flex-start;gap:10px;margin-top:14px;display:flex}.quiz-input{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface-2);min-width:0;height:52px;color:var(--lu-text);font-family:var(--lu-font-mono);transition:border-color var(--lu-dur-2), background-color var(--lu-dur-2);flex:220px;padding:0 18px;font-size:16px}.quiz-input:focus{border-color:var(--lu-violet);background:var(--lu-surface);box-shadow:0 0 0 3px var(--lu-violet);outline:none}@supports (color:color-mix(in lab, red, red)){.quiz-input:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--lu-violet) 22%, transparent)}}.quiz-input[data-state=right]{border-color:var(--lu-green);background:var(--lu-green-soft);color:var(--lu-green-ink)}.quiz-input[data-state=wrong]{border-color:var(--lu-red);background:var(--lu-red-soft);color:var(--lu-red-ink);text-decoration:line-through}.quiz-verdict{border-radius:var(--lu-r-lg);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);gap:10px;margin-top:14px;padding:12px 14px;display:grid}.quiz[data-state=correct] .quiz-verdict{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.quiz[data-state=correct] .quiz-verdict{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--lu-green) 35%, transparent)}}.quiz[data-state=wrong] .quiz-verdict{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.quiz[data-state=wrong] .quiz-verdict{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--lu-red) 35%, transparent)}}.quiz-loo .loo-bubble{font-size:var(--lu-fs-sm)}.quiz-verdict-line{font-weight:var(--lu-fw-black)}.quiz[data-state=correct] .quiz-verdict-line{color:var(--lu-green-ink)}.quiz[data-state=wrong] .quiz-verdict-line{color:var(--lu-red-ink)}.quiz-explain{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);font-family:var(--lu-font);padding:12px 14px;font-size:15px;line-height:1.6}.quiz-dock-keys{color:var(--lu-text-3)}.task .task-title{font-family:var(--lu-font);letter-spacing:normal;font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);margin:10px 0 0;padding:0;line-height:1.3}.task[data-variant=session] .task-title.task-title{font-size:clamp(21px,5.4vw,26px)}.task-statement{font-family:var(--lu-font);margin-top:6px}.task-hints{justify-items:start;gap:8px;margin-top:14px;display:grid}.task-hint{border:2px solid var(--lu-yellow);border-radius:var(--lu-r);background:var(--lu-yellow-soft);width:100%;animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);gap:4px;padding:12px 14px;display:grid}.task-hint-head{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-yellow-ink);align-items:center;gap:6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.task-hint-head{color:color-mix(in srgb, var(--lu-yellow-ink) 60%, var(--lu-text))}}.task-hint .prose-flow{font-family:var(--lu-font)}.task-hint-count{opacity:.75;font-size:12px}.task-work{gap:10px;margin-top:16px;display:grid}.task-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.task-draft{resize:vertical;width:100%;font-family:var(--lu-font-mono);border:2px solid var(--code-border);border-radius:var(--lu-r);background:var(--code-bg);box-shadow:0 var(--lu-lip-sm) 0 var(--code-border);color:var(--code-foreground);caret-color:var(--code-foreground);tab-size:2;transition:border-color var(--lu-dur-2);padding:14px 16px;font-size:13.6px;line-height:1.6}.task-draft::placeholder{color:#ece8ff66}.task-draft::selection{background:#8c69ff73}.task-draft:focus{border-color:var(--lu-violet);outline:none}.task-actions{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.task-actions .lu-btn{margin-bottom:var(--b-lip-h)}.task-compare{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:16px;display:grid}.task-compare-col,.task-compare-col>*{min-width:0}.task-compare-col{border:2px solid var(--lu-border);border-radius:var(--lu-r);align-content:start;gap:6px;padding:12px;display:grid}.task-compare-col[data-side=ref]{border-color:var(--lu-green);background:var(--lu-green-soft)}.task-compare-col .prose-flow{font-family:var(--lu-font)}.task-mine{font-family:var(--lu-font-mono);color:var(--code-foreground);background:var(--code-bg);border:2px solid var(--code-border);border-radius:var(--lu-r-sm);white-space:pre;margin:0;padding:12px 14px;font-size:13.6px;line-height:1.6;overflow-x:auto}.task-assess{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface-2);flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;padding:14px;display:flex}.task-assess>span{font-weight:var(--lu-fw-black);flex:100%}.task-assess .lu-btn{flex:1}.task-verdict-row{border-radius:var(--lu-r-lg);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:12px 14px;display:flex}.task[data-status=solved] .task-verdict-row{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.task[data-status=solved] .task-verdict-row{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--lu-green) 35%, transparent)}}.task[data-status=failed] .task-verdict-row{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.task[data-status=failed] .task-verdict-row{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--lu-red) 35%, transparent)}}.task-verdict-row .loo-says{flex:260px}.task-verdict{font-weight:var(--lu-fw-black);margin:0}.task[data-status=solved] .task-verdict{color:var(--lu-green-ink)}.task[data-status=failed] .task-verdict{color:var(--lu-red-ink)}.task-page-body{margin:16px 0 24px}.study-head .page-lead{color:var(--t2)}.check{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.check input{accent-color:var(--lu-violet);width:14px;height:14px}.segmented{justify-self:start;gap:2px;display:inline-flex;border-radius:var(--lu-r)!important;background:var(--lu-surface-3)!important;padding:3px!important}.segmented label{cursor:pointer;position:relative}.segmented input{opacity:0;cursor:pointer;position:absolute;inset:0}.segmented span{border-radius:var(--lu-r-sm);font-size:13px;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);transition:background-color var(--lu-dur-2);padding:5px 12px;display:block}.segmented label:hover span{color:var(--lu-text)}.segmented input:checked+span{background:var(--lu-surface);color:var(--lu-violet-ink);box-shadow:0 2px 0 var(--lu-border-strong)}.segmented input:focus-visible+span{outline:3px solid var(--lu-focus-color)}.ghead{font-family:var(--lu-font);align-items:center;gap:16px;margin-top:28px;display:flex}.ghead-text{flex:1;min-width:0}.ghead-title{font-size:clamp(28px,6vw,36px);font-weight:var(--lu-fw-black);color:var(--lu-text);margin:0;line-height:1.15}.ghead-lead{max-width:62ch;font-size:var(--lu-fs-md);color:var(--lu-text-2);margin:6px 0 0;font-weight:500;line-height:1.55}.ghead-art{flex:none}.ghead-badge{border-radius:var(--lu-r-xl);background:var(--tone-soft);width:72px;height:72px;color:var(--tone);box-shadow:0 4px 0 var(--tone);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.ghead-badge{box-shadow:0 4px 0 color-mix(in srgb, var(--tone) 30%, transparent)}}.study-setup{font-family:var(--lu-font);grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;margin-top:20px;display:grid}.filters{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);grid-template-columns:minmax(0,1fr);gap:16px;padding:18px;display:grid}.filter-group{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.filter-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.gselect{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23a398c2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 16px;width:100%;max-width:480px;height:46px;color:var(--lu-text);font:700 var(--lu-fs-sm) var(--lu-font);appearance:none;cursor:pointer;transition:border-color var(--lu-dur-2);padding:0 40px 0 14px}.gselect:hover{border-color:var(--lu-border-strong)}.gselect:focus-visible{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet);outline:none}@supports (color:color-mix(in lab, red, red)){.gselect:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--lu-violet) 22%, transparent)}}.chip-set{flex-wrap:wrap;gap:8px;display:flex}.chip-check{display:inline-flex;position:relative}.chip-check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip-check>span{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);min-height:38px;box-shadow:0 2px 0 var(--lu-border);color:var(--lu-text);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);transition:background-color var(--lu-dur-2), border-color var(--lu-dur-2), transform var(--lu-dur-1);align-items:center;gap:6px;padding:0 14px;display:inline-flex}.chip-check:hover>span{background:var(--lu-surface-2)}.chip-check input:active+span{box-shadow:none;transform:translateY(2px)}.chip-check input:checked+span{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.chip-check input:focus-visible+span{outline:3px solid var(--lu-focus-color);outline-offset:2px}.chip-count{font-size:11px;font-weight:var(--lu-fw-black);opacity:.6}.gseg{border-radius:var(--lu-r);background:var(--lu-surface-3);flex-wrap:wrap;justify-self:start;gap:4px;padding:4px;display:inline-flex}.gseg label{cursor:pointer;position:relative}.gseg input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.gseg span{border-radius:var(--lu-r-sm);text-align:center;min-width:44px;font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);color:var(--lu-text-2);transition:background-color var(--lu-dur-2), color var(--lu-dur-2);padding:8px 14px;display:block}.gseg label:hover span{color:var(--lu-text)}.gseg input:checked+span{background:var(--lu-surface);color:var(--lu-violet-ink);box-shadow:0 2px 0 var(--lu-border-strong)}.gseg input:focus-visible+span{outline:3px solid var(--lu-focus-color)}.queue{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);box-shadow:0 var(--lu-lip) 0 var(--lu-border);background:var(--lu-surface);font-family:var(--lu-font);grid-template-columns:minmax(0,1fr);gap:12px;padding:18px;display:grid;position:sticky;top:64px}.queue-top{align-items:center;gap:12px;display:flex}.queue-eyebrow{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.queue-num{font-size:48px;line-height:1;font-weight:var(--lu-fw-black);color:var(--lu-violet-ink);margin:2px 0 0}.queue-split{font-size:var(--lu-fs-xs);gap:6px;margin:0;font-weight:700;display:grid}.queue-split div{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.queue-split dt{color:var(--lu-text-2);align-items:center;gap:8px;display:inline-flex}.queue-split dd{font-weight:var(--lu-fw-black);margin:0}.queue-dot{background:var(--tone);border-radius:2px;width:10px;height:10px}.queue-start.lu-btn{white-space:normal;padding-block:10px}.queue-start .lu-btn-label{text-align:center}.queue-empty{color:var(--lu-text-2);font-size:var(--lu-fs-xs);margin:0;font-weight:700}.queue-note{color:var(--lu-text-3);margin:0;font-size:12px;font-weight:600}.session{max-width:720px;font-family:var(--lu-font);margin:0 auto}.session-bar{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-text-2);align-items:center;gap:12px;margin:18px 0 22px;display:flex}.session-bar .lu-progress{flex:1}.session-count{flex:none;min-width:52px}.session-bar .lu-btn{margin-bottom:0}.session-xp{color:var(--lu-yellow-ink);flex:none;align-items:center;gap:4px;display:inline-flex}.session-stage{gap:16px;display:grid}.session-next{font-size:var(--lu-fs-xs);flex-wrap:wrap;align-items:center;gap:10px 14px;font-weight:700;display:flex}.session-next .lu-btn{margin-bottom:var(--b-lip-h)}.session-next a:not(.lu-btn){color:var(--lu-violet-ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);text-decoration-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.session-next a:not(.lu-btn){-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent)}}.session-foot{text-align:center;color:var(--lu-text-3);margin-top:28px;font-size:12px;font-weight:700}.flashcard{perspective:1600px;font-family:var(--lu-font);outline:none}.flashcard-inner{transform-style:preserve-3d;transition:transform .56s var(--lu-ease-bounce);display:grid}.flashcard[data-flipped] .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{border:2px solid var(--lu-border);border-radius:var(--lu-r-xl);background:var(--lu-surface);min-height:340px;box-shadow:0 6px 0 var(--lu-border);backface-visibility:hidden;flex-direction:column;grid-area:1/1;gap:12px;margin-bottom:6px;padding:18px 20px 20px;display:flex}.flashcard-back{border-color:var(--lu-violet);box-shadow:0 6px 0 var(--lu-violet-lip);transform:rotateY(180deg)}.flashcard-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.flashcard-source{border-radius:var(--lu-r-pill);color:var(--lu-text-2);transition:background-color var(--lu-dur-2);margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700}.flashcard-source:hover{background:var(--lu-hover)}.flashcard-question{text-align:center;font-size:clamp(22px,5.6vw,30px);font-weight:var(--lu-fw-black);text-wrap:balance;flex:1;justify-content:center;align-items:center;padding:24px 4px;line-height:1.3;display:flex}.flashcard-question code{font-family:var(--lu-font-mono);color:var(--inline-code);background:var(--inline-code-bg);border-radius:6px;padding:.1em .35em;font-size:80%}.flashcard-question-small{text-align:left;font-size:var(--lu-fs-lg);border-bottom:2px dashed var(--lu-border);flex:0;justify-content:flex-start;padding:4px 2px 12px}.flashcard-face .lu-btn{margin-bottom:var(--b-lip-h)}.flashcard-answer{font-family:var(--lu-font);font-size:16px;line-height:1.65}.flashcard-hint{text-align:center;color:var(--lu-text-3);font-size:12px;font-weight:700}.rate-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.rate-btn.lu-btn{text-transform:none;letter-spacing:0;min-height:64px;padding:6px 10px}.rate-btn[data-rating=again]{--b:var(--lu-red);--b-hover:var(--lu-red-hover);--b-lip:var(--lu-red-lip)}.rate-btn[data-rating=hard]{--b:var(--lu-orange);--b-hover:var(--lu-orange-hover);--b-lip:var(--lu-orange-lip)}.rate-btn[data-rating=good]{--b:var(--lu-green);--b-hover:var(--lu-green-hover);--b-lip:var(--lu-green-lip)}.rate-btn[data-dim]{opacity:.4}.rate-btn[data-chosen]{outline:3px solid var(--b);outline-offset:3px}.rate-btn .lu-btn-label{align-items:center;gap:8px;display:inline-flex}.rate-emoji{font-size:24px;line-height:1}.rate-text{text-align:left;display:grid}.rate-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black)}.rate-interval{opacity:.85;font-size:11px;font-weight:700}.rate-key{color:inherit;opacity:.6;font-family:var(--lu-font);border-color:currentColor}.summary{max-width:720px;font-family:var(--lu-font);margin:0 auto;padding-top:12px}.summary-hero{text-align:center;justify-items:center;gap:6px;display:grid}.summary-eyebrow{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.summary-title{font-size:clamp(30px,8vw,40px);line-height:1.15;font-weight:var(--lu-fw-black);margin:0}.summary-sub{color:var(--lu-green-ink)}.gstats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.gstat{border:2px solid var(--tone);border-radius:var(--lu-r);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--tone-lip);margin-bottom:var(--lu-lip-sm);text-align:center;flex-direction:column;display:flex;overflow:hidden}.gstat dt,.gstat-label{background:var(--tone);color:var(--lu-on-color);font-size:12px;font-weight:var(--lu-fw-bold);padding:5px 6px}.gstat[data-tone=yellow] dt,.gstat[data-tone=yellow] .gstat-label{color:var(--lu-loo-ink)}.gstat dd,.gstat-value{font-size:22px;font-weight:var(--lu-fw-black);color:var(--tone-ink);justify-content:center;align-items:center;gap:6px;margin:0;padding:12px 4px;display:flex}.summary-section{margin-top:22px}.summary-section-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);color:var(--lu-text);margin:0 0 10px}.summary-wrong ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.summary-wrong li a{border:2px solid var(--lu-border);border-radius:var(--lu-r);font-weight:var(--lu-fw-bold);transition:background-color var(--lu-dur-2);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.summary-wrong li a:hover{border-color:var(--lu-violet);background:var(--lu-surface-2)}.summary-wrong .unit-meta{font-weight:600}.summary-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.review-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.review-item{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface)}.review-item[data-correct]{border-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.review-item[data-correct]{border-color:color-mix(in srgb, var(--lu-green) 50%, var(--lu-border))}}.review-item:not([data-correct]){border-color:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.review-item:not([data-correct]){border-color:color-mix(in srgb, var(--lu-red) 50%, var(--lu-border))}}.review-item>summary{cursor:pointer;border-radius:inherit;align-items:flex-start;gap:10px;padding:10px 12px;list-style:none;display:flex}.review-item>summary:hover{background:var(--lu-hover)}.review-item>summary::-webkit-details-marker{display:none}.review-mark{background:var(--lu-red);width:26px;height:26px;color:var(--lu-on-color);border-radius:50%;flex:none;place-items:center;font-size:14px;display:grid}.review-item[data-correct] .review-mark{background:var(--lu-green)}.review-q{font-weight:var(--lu-fw-bold);padding-top:2px}.review-body{font-family:var(--lu-font);padding:0 12px 14px 48px}.review-options{gap:6px;display:grid;padding:0!important;list-style:none!important}.review-options li{border-radius:var(--lu-r-sm);background:var(--lu-green-soft);padding:8px 12px!important}.review-options li[data-state=wrong]{background:var(--lu-red-soft)}.gsection{font-family:var(--lu-font);margin-top:28px}.gsection-title{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);color:var(--lu-text);align-items:center;gap:8px;margin:0 0 12px;display:flex}.gsection-count{font-size:var(--lu-fs-sm);color:var(--lu-text-3)}.gchips{scrollbar-width:none;gap:6px;padding-bottom:3px;display:flex;overflow-x:auto}.gchip{border:2px solid var(--lu-border);border-radius:var(--lu-r);min-height:36px;box-shadow:0 2px 0 var(--lu-border);background:var(--lu-surface);color:var(--lu-text-2);font:var(--lu-fw-bold) var(--lu-fs-xs) / 1 var(--lu-font);white-space:nowrap;transition:background-color var(--lu-dur-2);flex:none;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.gchip:hover{background:var(--lu-surface-2)}.gchip[aria-current]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.gcrumbs{font-family:var(--lu-font);flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.gcrumb{border-radius:var(--lu-r-sm);background:var(--lu-surface-3);min-height:34px;color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.gcrumb:hover{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.gpager{font-family:var(--lu-font);grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 32px;display:grid}.gpager-link{gap:2px;min-width:0;display:grid}.gpager-next{text-align:right;justify-items:end}.gpager-dir{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);align-items:center;gap:4px;display:inline-flex}.gpager-title{font-weight:var(--lu-fw-bold);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tasks-progress{font-family:var(--lu-font);grid-template-columns:minmax(0,1fr);gap:12px;margin-top:20px;display:grid}.tasks-progress-top{justify-content:space-between;align-items:baseline;display:flex}.tasks-progress-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.tasks-progress-num{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);color:var(--lu-violet-ink)}.tasks-progress-num small{font-size:var(--lu-fs-sm);color:var(--lu-text-3)}.task-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.task-card{align-items:center;gap:12px;height:100%;min-height:68px;margin-bottom:0;display:flex}.task-card-status{border-radius:var(--lu-r);background:var(--lu-surface-2);width:40px;height:40px;color:var(--lu-text-3);flex:none;place-items:center;font-size:20px;display:grid}.task-card[data-status=solved] .task-card-status{background:var(--lu-green);box-shadow:0 3px 0 var(--lu-green-lip);color:var(--lu-on-color)}.task-card[data-status=failed] .task-card-status{background:var(--lu-red-soft);color:var(--lu-red-ink)}.task-card[data-status=open] .task-card-status{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.task-card-text{flex:1;gap:2px;min-width:0;display:grid}.task-card-title{font-weight:var(--lu-fw-bold);line-height:1.3}.task-card-meta{color:var(--lu-text-2);font-size:12px;font-weight:700}.task-card-tests{flex:none}.mistakes-empty{margin-top:24px}.mistakes-hero{font-family:var(--lu-font);grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:16px 24px;margin-top:20px;display:grid}.mistakes-cta{gap:16px;display:grid}.mistakes-cta-top{align-items:center;gap:14px;display:flex}.mistakes-cta-icon{border-radius:var(--lu-r-lg);background:var(--lu-violet);width:60px;height:60px;box-shadow:0 4px 0 var(--lu-violet-lip);color:var(--lu-on-color);flex:none;place-items:center;font-size:34px;display:grid}.mistakes-cta-title{font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);margin:0;line-height:1.2}.mistakes-cta-sub{font-weight:var(--lu-fw-bold);color:var(--lu-text-2);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:4px 0 0;display:flex}.mistakes-cta-sub .queue-num{font-size:var(--lu-fs-2xl);color:var(--lu-violet-ink)}.mistakes-cta .lu-btn{margin-bottom:var(--b-lip-h)}.mistake-topics{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.mistake-topic{align-items:center;gap:12px;height:100%;display:flex}.mistake-topic-open{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black)}.mistake-topic-text{gap:2px;min-width:0;display:grid}.mistake-topic-title{font-weight:var(--lu-fw-bold);line-height:1.3}.mistake-topic-meta{color:var(--lu-text-2);font-size:12px;font-weight:700}.mistake-list{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);margin:0;padding:0;list-style:none;overflow:hidden}.mistake-row{align-items:center;gap:12px;padding:12px 14px;display:flex}.mistake-row+.mistake-row{border-top:2px solid var(--lu-border)}.mistake-kind{border-radius:var(--lu-r);background:var(--tone-soft);width:38px;height:38px;color:var(--tone-ink);flex:none;place-items:center;font-size:20px;display:grid}.mistake-main{flex:1;gap:2px;min-width:0;display:grid}.mistake-q{font-weight:var(--lu-fw-bold);line-height:1.35}.mistake-q:hover{color:var(--lu-violet-ink)}.mistake-meta{color:var(--lu-text-2);font-size:12px;font-weight:700}.mistake-side{flex:none;align-items:center;gap:10px;display:flex}.streak-pips{gap:4px;display:inline-flex}.streak-pips i{background:var(--lu-surface-3);border-radius:2px;width:12px;height:12px;box-shadow:inset 0 -2px #00000014}.streak-pips i[data-on]{background:var(--lu-green)}.fixed-badges{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.fixed-badge{border:2px solid var(--tone);border-radius:var(--lu-r);background:var(--tone-soft);max-width:100%;min-height:38px;box-shadow:0 3px 0 var(--tone-lip);color:var(--tone-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);transition:transform var(--lu-dur-2) var(--lu-ease-bounce);align-items:center;gap:6px;padding:4px 14px 4px 8px;display:inline-flex}.fixed-badge:hover{transform:translateY(-2px)rotate(-1deg)}.fixed-badge-icon{color:var(--tone);flex:none;font-size:20px}.fixed-badge span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.queue-art{margin-left:auto}@media (max-width:760px){.mistakes-hero{grid-template-columns:1fr}.mistake-row{align-items:flex-start}.mistake-side{flex-direction:column;align-items:flex-end;gap:6px}}@media (max-width:899px){.study-setup{grid-template-columns:1fr;gap:14px}.queue{order:-1;position:static}.task-compare{grid-template-columns:1fr}}@media (max-width:599px){.ghead{margin-top:16px}.ghead-badge{border-radius:var(--lu-r-lg);width:56px;height:56px}.filters{padding:14px}.flashcard-face{min-height:52dvh;padding:14px 16px 16px}.flashcard[data-flipped] .flashcard-face{min-height:0}.session .rate-row{bottom:calc(64px + env(safe-area-inset-bottom));z-index:2;background:var(--lu-bg);border-top:2px solid var(--lu-border);gap:8px;margin:0 -16px;padding:10px 12px 6px;position:sticky}.rate-btn.lu-btn{min-height:60px;padding:4px}.rate-btn .lu-btn-label{flex-direction:column;gap:2px}.rate-text{text-align:center}.rate-key{display:none}.gstat dd,.gstat-value{font-size:19px}.session-xp{display:none}.quiz[data-variant=inline],.task[data-variant=inline]{padding:12px}.review-body{padding-left:12px}}@media (prefers-reduced-motion:reduce){.flashcard-inner{transition:none}}.tok-comment{color:var(--code-token-comment);font-style:italic}.tok-string{color:var(--code-token-string)}.tok-number,.tok-literal{color:var(--code-token-constant)}.tok-keyword{color:var(--code-token-keyword)}.tok-fn{color:var(--code-token-function)}.code-editor{--ce-font:13.6px;--ce-line:21px;border:2px solid var(--code-border);border-radius:var(--lu-r);background:var(--code-bg);box-shadow:0 var(--lu-lip-sm) 0 var(--code-border);color:var(--code-foreground);font-family:var(--lu-font-mono);font-size:var(--ce-font);line-height:var(--ce-line);transition:border-color var(--lu-dur-2), box-shadow var(--lu-dur-2);grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden}.code-editor:focus-within{border-color:var(--lu-violet);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-violet-lip)}.code-editor[data-readonly]{opacity:.85}.code-editor-gutter{text-align:right;color:#ece8ff61;border-right:2px solid var(--code-border);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;background:#ffffff08;flex-direction:column;min-width:3.2ch;padding:12px 8px 18px 12px;display:flex}.code-editor-gutter span{height:var(--ce-line)}.code-editor-gutter span[data-empty]{opacity:.45}.code-editor-surface{min-width:0;position:relative}.code-editor-overlay,.code-editor-input{font:inherit;line-height:var(--ce-line);letter-spacing:normal;white-space:pre;tab-size:2;word-wrap:normal;border:0;margin:0;padding:12px 16px 18px 10px}.code-editor-overlay{pointer-events:none;color:var(--code-foreground);background:0 0;position:absolute;inset:0;overflow:hidden}.code-editor-input{resize:none;color:#0000;-webkit-text-fill-color:transparent;width:100%;caret-color:var(--lu-mint);scrollbar-width:thin;scrollbar-color:#ffffff38 transparent;background:0 0;outline:none;display:block;position:relative;overflow:auto hidden}.code-editor-input::selection{background:#8c69ff80}.task-code-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.task-reset{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:30px;color:var(--lu-violet-ink);font:700 12px var(--lu-font);transition:background-color var(--lu-dur-2);align-items:center;gap:4px;padding:0 10px;display:inline-flex}.task-reset:hover{background:var(--lu-violet-soft)}.task-tests>summary{cursor:pointer;font-size:var(--lu-fs-xs);color:var(--lu-text-2);align-items:center;gap:6px;padding:4px 0;font-weight:700;list-style:none;display:inline-flex}.task-tests>summary::-webkit-details-marker{display:none}.task-tests>summary>svg{color:var(--lu-violet)}.task-tests>summary:hover{color:var(--lu-text)}.task-tests-code,.exercise-solution pre{border:2px solid var(--code-border);border-radius:var(--lu-r);background:var(--code-bg);color:var(--code-foreground);font-family:var(--lu-font-mono);tab-size:2;scrollbar-width:thin;scrollbar-color:#ffffff38 transparent;margin:6px 0 0;padding:12px 14px;font-size:13px;line-height:1.6;overflow-x:auto}.task-run-kbd{margin-left:-4px}.test-report{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);font-family:var(--lu-font);font-size:var(--lu-fs-xs);gap:10px;padding:12px 14px;display:grid}.test-report[data-status=passed]{border-color:var(--lu-green);background:var(--lu-green-soft);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-green-lip);animation:test-pop .42s var(--lu-ease-bounce)}.test-report[data-status=failed]{border-color:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.test-report[data-status=failed]{border-color:color-mix(in srgb, var(--lu-red) 55%, var(--lu-border))}}.test-report[data-status=error],.test-report[data-status=timeout]{border-color:var(--lu-red);background:var(--lu-red-soft)}.test-summary{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.test-report[data-status=passed] .test-summary{color:var(--lu-green-ink)}.test-report[data-status=failed] .test-summary,.test-report[data-status=error] .test-summary,.test-report[data-status=timeout] .test-summary{color:var(--lu-red-ink)}.test-report[data-status=running] .test-summary{color:var(--lu-text-2)}.test-summary-text{overflow-wrap:anywhere;min-width:0}.test-ms{color:var(--lu-text-3);margin-left:auto;font-size:12px;font-weight:700}.test-list{gap:6px;margin:0;display:grid;padding:0!important;list-style:none!important}.test-row{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);align-items:flex-start;gap:10px;display:flex;padding:8px 10px!important}.test-report[data-status=passed] .test-row{background:var(--lu-surface)}.test-row:not([data-ok]){background:var(--lu-red-soft)}.test-chip{border-radius:var(--lu-r-sm);width:24px;height:24px;color:var(--lu-on-color);background:var(--lu-text-3);flex:none;place-items:center;font-size:14px;display:grid}.test-chip[data-ok=yes]{background:var(--lu-green);box-shadow:0 2px 0 var(--lu-green-lip)}.test-chip[data-ok=no]{background:var(--lu-red);box-shadow:0 2px 0 var(--lu-red-lip)}.test-chip[data-ok=wait]{background:var(--lu-violet);animation:1.4s linear infinite lu-spin}.test-body{gap:2px;min-width:0;padding-top:1px;display:grid}.test-name{font-weight:700;line-height:1.45}.test-error{color:var(--lu-red-ink);font-weight:500;font-family:var(--lu-font-mono);overflow-wrap:anywhere;font-size:12.5px}.test-diff{gap:1px;margin:2px 0 0;font-size:12.5px;display:grid}.test-diff>div{gap:8px;min-width:0;display:flex}.test-diff dt{width:84px;color:var(--lu-text-2);flex:none;font-weight:700}.test-diff dd{min-width:0;font-family:var(--lu-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.test-console>summary{cursor:pointer;color:var(--lu-text-2);font-size:12px;font-weight:700}.test-console pre{border:2px solid var(--code-border);border-radius:var(--lu-r-sm);background:var(--code-bg);max-height:220px;color:var(--code-foreground);font-family:var(--lu-font-mono);scrollbar-width:thin;scrollbar-color:#ffffff38 transparent;margin:6px 0 0;padding:10px 12px;font-size:12.5px;line-height:1.55;overflow:auto}.test-log[data-level=warn]{color:var(--code-token-changed)}.test-log[data-level=error]{color:var(--code-token-deleted)}.order{font-family:var(--lu-font);gap:8px;margin-top:14px;display:grid}.order-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);margin-top:4px}.order-answer,.order-pool{border-radius:var(--lu-r-lg);gap:8px;margin:0;display:grid;padding:8px!important;list-style:none!important}.order-answer{background:var(--lu-surface-2);border:2px solid var(--lu-border-strong);min-height:64px}.order-answer[data-empty]{border-style:dashed}.order-pool{padding:4px 0!important}.order-answer li,.order-pool li{min-width:0;padding:0!important}.order-placeholder{text-align:center;min-height:44px;font-size:var(--lu-fs-xs);color:var(--lu-text-3);place-items:center;font-weight:700;display:grid;padding:6px!important}.order-piece{--p:var(--code-border);--p-lip:var(--code-border);--p-bg:var(--code-bg);border:2px solid var(--p);border-radius:var(--lu-r);background:var(--p-bg);width:100%;min-height:44px;box-shadow:0 3px 0 var(--p-lip);color:var(--code-foreground);text-align:left;font:inherit;cursor:grab;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);touch-action:manipulation;animation:lu-pop-in var(--lu-dur-2) var(--lu-ease-bounce);align-items:center;gap:10px;margin-bottom:3px;padding:6px 12px 6px 8px;display:flex;overflow-x:auto}.order-piece:hover:not(:disabled){--p:var(--lu-violet);--p-lip:var(--lu-violet-lip)}.order-piece:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.order-piece:active:not(:disabled){cursor:grabbing;box-shadow:0 1px 0 var(--p-lip);transform:translateY(2px)}.order-piece:disabled{cursor:default}.order-grip{color:#ece8ff66;flex:none;font-size:18px}.order-line{border-radius:var(--lu-r-xs);width:24px;height:24px;color:var(--code-foreground);font-size:12px;font-weight:var(--lu-fw-black);background:#ffffff1a;flex:none;place-items:center;display:grid}.order-piece kbd{color:var(--code-foreground);background:#ffffff14;border-color:#fff3;box-shadow:0 2px #ffffff1f}.order .order-piece code,.fill .fill-chip code{box-shadow:none;color:inherit;background:0 0;border-radius:0;padding:0}.order .order-piece code{min-width:0;font-family:var(--lu-font-mono);white-space:pre;tab-size:2;flex:1;font-size:13.6px;line-height:1.5}.order-piece kbd{order:2}.order-piece[data-state=right]{--p:var(--lu-green);--p-lip:var(--lu-green-lip);--p-bg:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.order-piece[data-state=right]{--p-bg:color-mix(in srgb, var(--lu-green) 18%, var(--code-bg))}}.order-piece[data-state=right] .order-line{background:var(--lu-green);color:var(--lu-on-color)}.order-piece[data-state=wrong]{--p:var(--lu-red);--p-lip:var(--lu-red-lip);--p-bg:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.order-piece[data-state=wrong]{--p-bg:color-mix(in srgb, var(--lu-red) 18%, var(--code-bg))}}.order-piece[data-state=wrong] .order-line{background:var(--lu-red);color:var(--lu-on-color)}.exercise-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.exercise-clear.lu-btn{padding:0 14px}.exercise-solution{gap:4px;margin-top:8px;display:grid}.fill{font-family:var(--lu-font);gap:12px;margin-top:14px;display:grid}.fill-code{border:2px solid var(--code-border);border-radius:var(--lu-r-lg);background:var(--code-bg);box-shadow:0 var(--lu-lip-sm) 0 var(--code-border);color:var(--code-foreground);font-family:var(--lu-font-mono);white-space:pre;tab-size:2;margin:0;padding:14px 16px;font-size:13.6px;line-height:2.3;overflow-x:auto}.fill-slot-wrap{align-items:baseline;gap:4px;display:inline-flex}.fill-input,.fill-slot{font:inherit;border:2px solid var(--lu-violet);border-radius:var(--lu-r-sm);color:var(--code-foreground);caret-color:var(--lu-mint);text-align:center;transition:border-color var(--lu-dur-2), background-color var(--lu-dur-2);background:#ffffff14;border-bottom-width:3px;margin:0 2px;padding:1px 10px;line-height:1.5}.fill-input:focus,.fill-slot[data-active]{border-color:var(--lu-mint);background:#4fe3cc24;outline:none;box-shadow:0 0 0 3px #4fe3cc40}.fill-slot{cursor:pointer;white-space:pre;border-style:dashed;border-bottom-width:2px;min-height:1.7em}.fill-slot:not(:empty){border-style:solid;border-bottom-width:3px}.fill-input[data-state=right],.fill-slot[data-state=right]{border-style:solid;border-color:var(--lu-green);color:var(--code-token-inserted);background:#5fe09a29}.fill-input[data-state=wrong],.fill-slot[data-state=wrong]{border-style:solid;border-color:var(--lu-red);color:var(--code-token-deleted);background:#ff8a9929;text-decoration:line-through}.fill-correct{border-radius:var(--lu-r-sm);background:var(--code-token-inserted);color:var(--lu-loo-ink);padding:0 8px;font-weight:700}.fill-bank{flex-wrap:wrap;gap:10px;margin:0;display:flex;padding:0!important;list-style:none!important}.fill-bank li{padding:0!important}.fill-chip{min-height:44px;margin-bottom:var(--lu-lip-sm);border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);color:var(--lu-text);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);align-items:center;gap:8px;padding:4px 14px;display:inline-flex}.fill .fill-chip code{font-family:var(--lu-font-mono);color:var(--lu-violet-ink);font-size:15px;font-weight:600}.fill-chip kbd{font-family:var(--lu-font)}.fill-chip:hover:not(:disabled){border-color:var(--lu-violet);background:var(--lu-violet-soft)}.fill-chip:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.fill-chip:active:not(:disabled){transform:translateY(var(--lu-lip-sm));box-shadow:0 0 0 var(--lu-border)}.fill-chip:disabled{cursor:default;background:var(--lu-surface-3);border-color:var(--lu-surface-3);box-shadow:none;transform:translateY(var(--lu-lip-sm))}.fill-chip:disabled>*{visibility:hidden}@media (pointer:coarse),(max-width:599px){.code-editor{--ce-font:16px;--ce-line:24px}.fill-code,.order .order-piece code{font-size:15px}.fill-input{font-size:16px}.task-run-kbd,.order-piece kbd,.fill-chip kbd{display:none}}.gen-warning{border:2px solid var(--lu-yellow);margin-top:10px;padding:8px 12px}@supports (color:color-mix(in lab, red, red)){.gen-warning{border:2px solid color-mix(in srgb, var(--lu-yellow) 55%, transparent)}}.gen-warning{border-radius:var(--lu-r);background:var(--lu-yellow-soft);font-size:13px}.gen-row{border-bottom:2px solid var(--lu-border);grid-template-columns:28px minmax(0,1fr);gap:4px 8px;padding:12px 2px;display:grid}.gen-row:last-child{border-bottom:0}.gen-row>.ui-button{grid-column:2;justify-self:start}.gen-row[data-hidden] .news-body{opacity:.5}.gen-title{overflow-wrap:anywhere;font-size:15px;font-weight:600;line-height:1.4}.gen-text{color:var(--lu-text);margin:4px 0 0;font-size:14px;line-height:1.5}.gen-code{border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);margin:6px 0 0;padding:8px 10px;font-size:12px;line-height:1.5;overflow-x:auto}.gen-foot{margin-top:24px}@media (min-width:900px){.gen-row{grid-template-columns:32px minmax(0,1fr) auto;padding:14px 4px}.gen-row>.ui-button{grid-column:3;align-self:start}}.news-page{padding-bottom:48px}.news-head .page-lead{color:var(--lu-text-2);font-size:var(--lu-fs-sm);line-height:1.55}.news-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:12px;display:flex}.news-refresh{align-items:center;gap:8px;display:inline-flex}.news-refresh-note{color:var(--lu-text-2);font-size:12px}.news-spin{animation:.9s linear infinite news-spin}@keyframes news-spin{to{transform:rotate(360deg)}}.news-tabs{border-bottom:2px solid var(--lu-border);gap:4px;margin-top:20px;display:flex}.news-tab{min-height:var(--lu-target);font-size:var(--lu-fs-sm);color:var(--lu-text-2);border-radius:var(--lu-r-sm) var(--lu-r-sm) 0 0;transition:background-color var(--lu-dur-2), color var(--lu-dur-2);border-bottom:3px solid #0000;align-items:center;gap:6px;margin-bottom:-2px;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.news-tab:hover{background:var(--lu-hover);color:var(--lu-text)}.news-tab[aria-current]{color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold);border-bottom-color:var(--lu-violet)}.news-tab-count{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);min-width:20px;font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);text-align:center;padding:2px 6px}.news-tab[aria-current] .news-tab-count{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.news-chips{scrollbar-width:none;gap:6px;margin:14px -20px 0;padding:0 20px 6px;display:flex;overflow-x:auto}.news-chips::-webkit-scrollbar{display:none}.news-chip{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:36px;box-shadow:0 2px 0 var(--lu-border);font-size:var(--lu-fs-xs);color:var(--lu-text);white-space:nowrap;transition:background-color var(--lu-dur-2), transform var(--lu-dur-1) var(--lu-ease);flex:none;align-items:center;gap:5px;margin-bottom:2px;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.news-chip .tabular{color:var(--lu-text-2);font-size:12px}.news-chip:hover{background:var(--lu-surface-2)}.news-chip:active{box-shadow:none;transform:translateY(2px)}.news-chip[aria-current]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.news-chip[aria-current] .tabular{color:inherit}.news-group-count{color:var(--lu-text-2);margin-left:4px;font-weight:500}.news-list{margin:0 0 var(--lu-lip);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);padding:0 12px;list-style:none}.news-row{border-bottom:2px solid var(--lu-border);grid-template-columns:28px minmax(0,1fr) 36px;align-items:start;gap:2px 8px;padding:12px 0;display:grid}.news-row:last-child{border-bottom:0}.news-emoji{text-align:center;font-size:18px;line-height:24px}.news-body{min-width:0}.news-title{font-size:var(--lu-fs-sm);color:var(--lu-text);overflow-wrap:anywhere;text-underline-offset:3px;transition:text-decoration-color var(--lu-dur-2);font-weight:600;line-height:1.45;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px}.news-title:hover{-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);text-decoration-color:var(--lu-violet)}.news-title:visited{color:var(--lu-text)}.news-summary{font-size:var(--lu-fs-xs);color:var(--lu-text-2);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:4px;line-height:1.5;display:-webkit-box;overflow:hidden}.news-meta{color:var(--lu-text-2);flex-wrap:wrap;gap:0 6px;margin-top:6px;font-size:12px;font-weight:500;display:flex}.news-save{border-radius:var(--lu-r-sm);width:36px;height:36px;color:var(--lu-text-2);cursor:pointer;transition:background-color var(--lu-dur-2), color var(--lu-dur-2);background:0 0;border:0;place-items:center;display:inline-grid}.news-save:hover{background:var(--lu-hover);color:var(--lu-violet-ink)}.news-save:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:1px}.news-save[aria-pressed=true]{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.news-row[data-read] .news-title,.news-row[data-read] .news-emoji{opacity:.6}.news-row[data-read] .news-summary{opacity:.75}.news-row[data-read]:hover .news-title,.news-row[data-read]:hover .news-emoji{opacity:1}@media (min-width:900px){.news-chips{flex-wrap:wrap;margin:16px 0 0;padding:0;overflow:visible}.news-list{padding:4px 8px}.news-row{border-radius:var(--lu-r);grid-template-columns:32px minmax(0,1fr) 36px;gap:2px 10px;padding:12px 8px}.news-title{font-size:var(--lu-fs-md)}.news-summary{font-size:var(--lu-fs-sm)}}@media (min-width:900px) and (hover:hover){.news-row:hover{background:var(--lu-hover)}.news-row .news-save{opacity:0}.news-row:hover .news-save,.news-row .news-save:focus-visible,.news-row .news-save[aria-pressed=true]{opacity:1}}.auth-page,.onb-page{min-height:100dvh;color:var(--lu-text);font-family:var(--lu-font);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.auth-top{padding:var(--lu-s-5) var(--lu-s-4) 0;justify-content:center;display:flex;position:relative}.auth-top .theme-switch{top:var(--lu-s-4);right:var(--lu-s-4);position:absolute}.auth-body{width:min(440px,100%);padding:var(--lu-s-6) var(--lu-s-4) var(--lu-s-10);gap:var(--lu-s-4);flex-direction:column;flex:1;margin:0 auto;display:flex}.auth-loo{align-self:center}.auth-loo .loo-bubble{font-size:var(--lu-fs-sm)}.auth-card{gap:var(--lu-s-4);flex-direction:column;display:flex}.auth-title{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);text-align:center;margin:0;line-height:1.15}.auth-title-icon,.auth-lead-icon{vertical-align:-.15em;display:inline-block}.auth-lead{margin:calc(-1 * var(--lu-s-2)) 0 0;color:var(--lu-text-2);text-align:center;font-size:var(--lu-fs-sm);line-height:1.5}.auth-form{gap:var(--lu-s-4);flex-direction:column;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-label{font-size:var(--lu-fs-sm);color:var(--lu-text);font-weight:600}.auth-input{min-height:52px;padding:0 var(--lu-s-4);border-radius:var(--lu-r);border:var(--lu-border-w) solid var(--lu-border-strong);background:var(--lu-surface-2);color:var(--lu-text);font:inherit;font-size:var(--lu-fs-md);transition:border-color var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-2) var(--lu-ease), background-color var(--lu-dur-2);font-weight:500}.auth-input::placeholder{color:var(--lu-text-3)}.auth-input:hover{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.auth-input:hover{border-color:color-mix(in srgb, var(--lu-violet) 45%, var(--lu-border-strong))}}.auth-input:focus{border-color:var(--lu-violet);background:var(--lu-surface);box-shadow:0 0 0 4px var(--lu-violet);outline:none}@supports (color:color-mix(in lab, red, red)){.auth-input:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--lu-violet) 22%, transparent)}}.auth-hint{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:0;line-height:1.45}.auth-error{padding:var(--lu-s-3) var(--lu-s-4);border:var(--lu-border-w) solid var(--lu-red);margin:0}@supports (color:color-mix(in lab, red, red)){.auth-error{border:var(--lu-border-w) solid color-mix(in srgb, var(--lu-red) 45%, transparent)}}.auth-error{border-radius:var(--lu-r);background:var(--lu-red-soft);color:var(--lu-red-ink);font-weight:600;font-size:var(--lu-fs-sm);gap:var(--lu-s-2);flex-direction:column;line-height:1.45;display:flex}.auth-setup{padding:var(--lu-s-4);border:var(--lu-border-w) solid var(--lu-yellow);border-radius:var(--lu-r-lg);background:var(--lu-yellow-soft);color:var(--lu-yellow-ink);font-size:var(--lu-fs-sm);line-height:1.5}.auth-setup p{margin:var(--lu-s-2) 0 0;color:var(--lu-text)}.auth-link{color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold);align-self:center;text-decoration:none}.auth-link:hover{text-underline-offset:3px;text-decoration:underline}.auth-foot{text-align:center;color:var(--lu-text-2);margin:0;font-weight:500}.auth-foot a{color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold);text-underline-offset:3px}.auth-oauth{gap:var(--lu-s-2);flex-direction:column;display:flex}.lu-btn.auth-oauth-btn{--b-ink:var(--lu-text);text-decoration:none}.auth-or{align-items:center;gap:var(--lu-s-3);color:var(--lu-text-2);font-size:var(--lu-fs-sm);font-weight:600;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--lu-border);flex:1;height:2px}.choice-group{gap:var(--lu-s-2);border:0;flex-direction:column;margin:0;padding:0;display:flex}.choice-legend{margin-bottom:var(--lu-s-2);font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);padding:0}.choice-hint{color:var(--lu-text-2);font-size:var(--lu-fs-sm);margin:0;line-height:1.5}.choice-grid{gap:var(--lu-s-2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.choice-group[data-wide] .choice-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.choice{padding:var(--lu-s-3) var(--lu-s-4);border-radius:var(--lu-r-lg);border:var(--lu-border-w) solid var(--lu-border);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);margin-bottom:var(--lu-lip-sm);background:var(--lu-surface);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:var(--lu-target);-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), border-color var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);flex-direction:column;gap:2px;display:flex;position:relative}.choice input{opacity:0;pointer-events:none;position:absolute}.choice:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.choice:active{transform:translateY(var(--lu-lip-sm));box-shadow:none}.choice:has(input:checked){border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-violet-lip)}.choice:has(input:focus-visible){outline:3px solid var(--lu-focus-color);outline-offset:3px}.choice-title{font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-md);align-items:center;gap:8px;display:flex}.choice-icon{flex:none;place-items:center;display:inline-grid}.choice:has(input:checked) .choice-title{color:var(--lu-violet-ink)}.choice-sub{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:500;line-height:1.4}.obw{flex-direction:column;flex:1;width:100%;display:flex}.obw-top{align-items:center;gap:var(--lu-s-3);width:min(640px,100%);padding:var(--lu-s-3) var(--lu-s-4) 0;grid-template-columns:auto minmax(0,1fr) auto;margin:0 auto;display:grid}.obw-back{min-height:var(--lu-target);margin-left:calc(-1 * var(--lu-s-2));padding:0 var(--lu-s-3) 0 var(--lu-s-2);border-radius:var(--lu-r);color:var(--lu-text-2);font:inherit;font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:6px;display:inline-flex}.obw-back:hover{color:var(--lu-text);background:var(--lu-surface-3)}.obw-back:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.obw-back[data-hidden]{visibility:hidden}.obw-count{text-align:right;min-width:3ch;font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);font-variant-numeric:tabular-nums;color:var(--lu-text-2)}.obw-body{width:min(640px,100%);padding:var(--lu-s-3) var(--lu-s-4) var(--lu-s-6);gap:var(--lu-s-4);flex-direction:column;flex:1;margin:0 auto;display:flex;overflow-x:clip}.obw-loo{min-height:68px}.obw-loo .loo-bubble{padding:var(--lu-s-2) var(--lu-s-3);font-size:var(--lu-fs-sm);line-height:1.35}.obw-step{--obw-from:28px;gap:var(--lu-s-4);animation:obw-in var(--lu-dur-3) var(--lu-ease) both;flex-direction:column;display:flex}.obw-step[data-dir=back]{--obw-from:-28px}@keyframes obw-in{0%{opacity:0;transform:translateX(var(--obw-from))}}.obw-title{font-size:clamp(26px,7vw,34px);font-weight:var(--lu-fw-black);text-wrap:balance;margin:0;line-height:1.15}.obw-title:focus{outline:none}.obw-title:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:4px;border-radius:var(--lu-r-xs)}.obw-lead{margin:calc(-1 * var(--lu-s-2)) 0 0;color:var(--lu-text-2);font-size:var(--lu-fs-sm);line-height:1.5}.obw-wait{min-height:240px}.obw-glyph-wait{flex:none;display:inline-block}.obw-grid{gap:var(--lu-s-2);grid-template-columns:minmax(0,1fr);display:grid}.obw-grid[data-kind=big]{gap:var(--lu-s-3);grid-template-columns:repeat(2,minmax(0,1fr))}.obw-grid[data-kind=soon]{grid-template-columns:repeat(3,minmax(0,1fr))}.choice.obw-tile{align-items:center;gap:var(--lu-s-3);width:100%;min-height:60px;padding:var(--lu-s-3);color:var(--lu-text);font:inherit;text-align:left;flex-direction:row}.obw-tile-icon{flex:none;place-items:center;display:grid}.obw-tile-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.obw-tile .choice-title{line-height:1.25}.obw-mark{border:var(--lu-border-w) solid var(--lu-border-strong);border-radius:var(--lu-r-xs);background:var(--lu-surface);flex:none;place-items:center;width:22px;height:22px;display:grid}.obw-tile:has(input:checked) .obw-mark{border-color:var(--lu-violet);background:var(--lu-violet)}.obw-tile:has(input:checked) .obw-mark:after{content:"";background:var(--lu-on-color);width:8px;height:8px}.obw-tile[data-kind=big]{justify-content:center;gap:var(--lu-s-2);min-height:136px;padding:var(--lu-s-4) var(--lu-s-3);text-align:center;flex-direction:column}.obw-tile[data-kind=big] .obw-tile-text{flex:none;align-items:center}.obw-tile[data-kind=big] .choice-title{font-size:var(--lu-fs-lg);justify-content:center}.obw-tile[data-kind=big] .obw-mark{top:var(--lu-s-2);right:var(--lu-s-2);position:absolute}.obw-badge{flex:none}.obw-course-sub{display:block}.obw-course-range{font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);margin:4px 0 0;display:inline-block}.obw-soon{gap:var(--lu-s-2);margin-top:var(--lu-s-2);flex-direction:column;display:flex}.obw-soon-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);margin:0}.obw-soon-hint{margin:0 0 var(--lu-s-1);color:var(--lu-text-2);font-size:var(--lu-fs-xs);line-height:1.45}.choice.obw-soon-tile{min-height:104px;padding:var(--lu-s-3) var(--lu-s-1);box-shadow:none;background:var(--lu-surface-2);text-align:center;border-style:dashed;flex-direction:column;justify-content:flex-start;gap:6px;margin-bottom:0}.obw-soon-tile .obw-tile-icon{opacity:.8;filter:saturate(.6)}.obw-soon-tile .obw-tile-text{flex:1;justify-content:space-between;align-items:center;gap:6px}.obw-soon-tile .choice-title{font-size:var(--lu-fs-xs);overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;justify-content:center}.obw-soon-tag{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);color:var(--lu-text-2);font-size:var(--lu-fs-2xs);font-weight:var(--lu-fw-black);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.choice.obw-soon-tile[aria-pressed=true]{border-style:solid;border-color:var(--lu-mint);background:var(--lu-mint-soft)}.obw-soon-tile[aria-pressed=true] .obw-tile-icon{opacity:1;filter:none}.obw-soon-tile[aria-pressed=true] .obw-soon-tag{background:var(--lu-mint);color:var(--lu-on-mint)}.obw-soon-tile:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.obw-soon-note{color:var(--lu-mint-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);visibility:hidden;align-items:center;gap:6px;margin:0;display:flex}.obw-soon-note[data-on]{visibility:visible}.obw-plan{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);flex-direction:column;display:flex;overflow:hidden}.obw-plan-hero{align-items:center;gap:var(--lu-s-3);padding:var(--lu-s-4);background:var(--lu-violet-soft);border-bottom:var(--lu-border-w) solid var(--lu-border);display:flex}.obw-plan-hero p{margin:0}.obw-plan-kicker{font-size:var(--lu-fs-2xs);font-weight:var(--lu-fw-black);letter-spacing:.06em;text-transform:uppercase;color:var(--lu-violet-ink)}.obw-plan-course{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);line-height:1.2}.obw-plan-list{padding:0 var(--lu-s-4);margin:0}.obw-plan-row{padding:var(--lu-s-3) 84px var(--lu-s-3) 0;position:relative}.obw-plan-row+.obw-plan-row{border-top:var(--lu-border-w) solid var(--lu-border)}.obw-plan-label{align-items:center;gap:var(--lu-s-2);color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:600;display:flex}.obw-plan-icon{place-items:center;display:inline-grid}.obw-plan-value{margin:2px 0 0 calc(24px + var(--lu-s-2));font-weight:var(--lu-fw-bold);line-height:1.35}.obw-plan-edit{top:50%;right:calc(-1 * var(--lu-s-2));min-height:var(--lu-target);padding:0 var(--lu-s-2);border-radius:var(--lu-r-sm);color:var(--lu-violet-ink);font:inherit;font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);cursor:pointer;background:0 0;border:0;position:absolute;translate:0 -50%}.obw-plan-edit:hover{background:var(--lu-violet-soft)}.obw-plan-edit:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.obw-foot{z-index:2;padding:var(--lu-s-3) var(--lu-s-4) calc(var(--lu-s-3) + env(safe-area-inset-bottom));border-top:var(--lu-border-w) solid var(--lu-border);background:var(--lu-bg);position:sticky;bottom:0}.obw-foot-inner{justify-content:flex-end;width:min(608px,100%);margin:0 auto;display:flex}@media (min-width:560px){.obw-grid[data-kind=list],.obw-grid[data-kind=wide]{grid-template-columns:repeat(2,minmax(0,1fr))}.obw-grid[data-kind=soon]{grid-template-columns:repeat(4,minmax(0,1fr))}.obw-foot .lu-btn[data-block]{width:auto;min-width:240px}}@media (min-width:720px){.obw-top{padding-top:var(--lu-s-6)}.obw-body{padding-top:var(--lu-s-5);gap:var(--lu-s-5)}}@media (prefers-reduced-motion:reduce){.obw-step{animation:none}}.acct-page{gap:var(--lu-s-5);padding-bottom:var(--lu-s-12);flex-direction:column;display:flex}.acct-head{align-items:center;gap:var(--lu-s-4);display:flex}.acct-head .page-lead{align-items:center;gap:var(--lu-s-2);flex-wrap:wrap;margin:0;display:flex}.acct-note{padding:var(--lu-s-3) var(--lu-s-4);border:var(--lu-border-w) solid var(--lu-green);margin:0}@supports (color:color-mix(in lab, red, red)){.acct-note{border:var(--lu-border-w) solid color-mix(in srgb, var(--lu-green) 45%, transparent)}}.acct-note{border-radius:var(--lu-r);background:var(--lu-green-soft);color:var(--lu-green-ink);font-weight:var(--lu-fw-bold)}.acct-form{gap:var(--lu-s-5);flex-direction:column;display:flex}.acct-section{gap:var(--lu-s-4);flex-direction:column;display:flex}.acct-h2{font-family:var(--lu-font);font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);margin:0}.acct-check{align-items:center;gap:var(--lu-s-3);min-height:var(--lu-target);font-weight:600;display:flex}.acct-check input{width:22px;height:22px;accent-color:var(--lu-violet)}.acct-row{align-items:flex-end;gap:var(--lu-s-3);flex-wrap:wrap;display:flex}.acct-row .auth-field{flex:220px}.acct-save{justify-content:flex-end;display:flex}.acct-danger p{margin:0}.acct-section a.lu-btn{align-self:flex-start;text-decoration:none}.sb-account{padding:0}.legal-body{width:min(760px, calc(100% - 2 * var(--lu-s-4)));margin:var(--lu-s-6) auto var(--lu-s-10);line-height:1.65;font-size:var(--lu-fs-md,16px)}.legal-title{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);margin:0;line-height:1.15}.legal-updated{margin:var(--lu-s-2) 0 var(--lu-s-5);color:var(--lu-text-3);font-size:var(--lu-fs-sm)}.legal-body h2{margin:var(--lu-s-6) 0 var(--lu-s-2);font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black)}.legal-body ul{padding-left:1.2em;list-style:outside}.legal-body li+li{margin-top:var(--lu-s-2)}.legal-body a{color:var(--lu-violet-ink,var(--lu-violet))}.legal-nav{margin-top:var(--lu-s-8);padding-top:var(--lu-s-4);border-top:2px solid var(--lu-border);color:var(--lu-text-3);font-size:var(--lu-fs-sm)}.landing,.auth-page{--lu-bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0e0e12);--lu-bg-sunk:var(--lightningcss-light,#f6f6f8)var(--lightningcss-dark,#0a0a0d);--lu-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#17171c);--lu-surface-2:var(--lightningcss-light,#f7f7f9)var(--lightningcss-dark,#1c1c22);--lu-surface-3:var(--lightningcss-light,#ececf0)var(--lightningcss-dark,#27272e);--lu-border:var(--lightningcss-light,#e7e7ec)var(--lightningcss-dark,#2a2a31);--lu-border-strong:var(--lightningcss-light,#d3d3da)var(--lightningcss-dark,#3b3b44);--lu-text:var(--lightningcss-light,#17161d)var(--lightningcss-dark,#f4f4f6);--lu-text-2:var(--lightningcss-light,#55535f)var(--lightningcss-dark,#a9a8b4);--lu-text-3:var(--lightningcss-light,#9c9aa7)var(--lightningcss-dark,#6f6e7b);--lu-hover:var(--lightningcss-light,#0000000a)var(--lightningcss-dark,#ffffff0d);--lu-dot:var(--lightningcss-light,#17161d12)var(--lightningcss-dark,#ffffff0d);background-color:var(--lu-bg);background-image:radial-gradient(var(--lu-dot) 1px, transparent 1.4px);background-size:24px 24px}.landing{min-height:100dvh;color:var(--lu-text);font-family:var(--lu-font);overflow-x:clip}.landing-nav{z-index:var(--lu-z-nav);justify-content:space-between;align-items:center;gap:var(--lu-s-3);padding:calc(var(--lu-s-3) + env(safe-area-inset-top)) var(--lu-s-4) var(--lu-s-3);background:var(--lu-bg);display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.landing-nav{background:color-mix(in srgb, var(--lu-bg) 84%, transparent)}}.landing-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:var(--lu-border-w) solid var(--lu-border)}.landing-nav-links{align-items:flex-start;gap:var(--lu-s-2);display:flex}.landing-nav-links .lu-btn[data-variant=ghost]{display:none}.theme-switch{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);width:40px;height:40px;box-shadow:0 3px 0 var(--lu-border);cursor:pointer;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);place-items:center;margin-bottom:3px;padding:0;display:grid}.theme-switch:hover{background:var(--lu-surface-2)}.theme-switch:active{box-shadow:0 0 0 var(--lu-border);transform:translateY(3px)}.theme-switch .lu-pxicon{transition:transform var(--lu-dur-3) var(--lu-ease-bounce)}.theme-switch:hover .lu-pxicon{transform:rotate(-12deg)scale(1.08)}.landing-notice{width:min(1120px, calc(100% - 2 * var(--lu-s-4)));margin:var(--lu-s-4) auto 0;padding:var(--lu-s-3) var(--lu-s-4);border:var(--lu-border-w) solid var(--lu-orange);border-radius:var(--lu-r-lg);background:var(--lu-orange-soft);color:var(--lu-orange-ink);font-weight:var(--lu-fw-bold)}.landing-hero{width:min(1120px,100%);padding:var(--lu-s-8) var(--lu-s-4) var(--lu-s-6);gap:var(--lu-s-8);align-items:center;margin:0 auto;display:grid}.landing-hero-text{align-items:flex-start;gap:var(--lu-s-4);flex-direction:column;display:flex}.landing-eyebrow{align-items:center;gap:var(--lu-s-2);min-height:32px;padding:0 var(--lu-s-3);border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);display:inline-flex}.landing-eyebrow:before{content:"";background:var(--lu-violet);width:8px;height:8px;box-shadow:0 2px 0 var(--lu-violet-lip);flex:none}.landing-title{font-size:clamp(34px,8vw,60px);font-weight:var(--lu-fw-black);letter-spacing:-.025em;color:var(--lu-text);text-wrap:balance;margin:0;line-height:1.05}.landing-title:after{content:"";width:112px;height:8px;margin-top:var(--lu-s-4);background:var(--lu-violet);display:block;-webkit-mask:repeating-linear-gradient(90deg,#000 0 11px,#0000 11px 14px);mask:repeating-linear-gradient(90deg,#000 0 11px,#0000 11px 14px)}.landing-lead{max-width:54ch;color:var(--lu-text-2);font-size:var(--lu-fs-md);margin:0;font-weight:500;line-height:1.6}.landing-cta{gap:var(--lu-s-2);width:100%;margin-top:var(--lu-s-2);flex-direction:column;display:flex}.landing-hero-art{justify-content:center;display:flex}.landing-stage{width:min(100%,440px);min-height:340px;padding:var(--lu-s-8) var(--lu-s-5) var(--lu-s-6);border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-xl);background:radial-gradient(var(--lu-violet) 1.5px, transparent 2px) 0 0 / 20px 20px, var(--lu-surface-2);place-items:center;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.landing-stage{background:radial-gradient(color-mix(in srgb, var(--lu-violet) 18%, transparent) 1.5px, transparent 2px) 0 0 / 20px 20px, var(--lu-surface-2)}}.landing-stage{box-shadow:0 6px 0 var(--lu-border)}.landing-stage .loo-says{text-align:center;align-items:center}.landing-stage .loo{width:168px;height:168px}.landing-stage .loo-bubble{max-width:260px}.landing-stage .loo-says[data-side=top] .loo-bubble:before,.landing-stage .loo-says[data-side=top] .loo-bubble:after{left:calc(50% - 10px)}.landing-float,.scene-chip{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);min-height:38px;box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);color:var(--lu-text);font:var(--lu-fw-black) var(--lu-fs-md) / 1 var(--lu-font);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;padding:0 12px 0 8px;display:inline-flex}.landing-float{animation:landing-bob 3.2s var(--lu-ease) infinite;position:absolute}.landing-float[data-kind=streak]{top:56%;left:-10px}.landing-float[data-kind=gems]{animation-delay:-1.1s;top:40%;right:-10px}.landing-float[data-kind=xp]{animation-delay:-2.2s;bottom:10%;right:-10px}@keyframes landing-bob{50%{transform:translateY(-6px)}}.landing-stats{width:min(1120px,100%);padding:var(--lu-s-4);gap:var(--lu-s-2);text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;list-style:none;display:grid}.landing-stats li{padding:var(--lu-s-4) var(--lu-s-2);border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);flex-direction:column;align-items:center;gap:6px;display:flex}.landing-stats strong{font:var(--lu-fw-black) var(--lu-fs-lg) / 1.1 var(--lu-font);font-variant-numeric:tabular-nums;color:var(--lu-text)}.landing-stats span{color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:600;line-height:1.35}.landing-section{width:min(1120px,100%);padding:var(--lu-s-12) var(--lu-s-4) 0;margin:0 auto}.landing-h2{margin:0 0 var(--lu-s-4);font-size:clamp(28px,5vw,40px);font-weight:var(--lu-fw-black);letter-spacing:-.02em;line-height:1.1}.landing-sub{margin:calc(-1 * var(--lu-s-2)) 0 var(--lu-s-5);color:var(--lu-text-2);font-size:var(--lu-fs-md);font-weight:500;line-height:1.55}.how{width:min(1120px,100%);padding:var(--lu-s-12) var(--lu-s-4) 0;margin:0 auto}.how-head{max-width:640px}.how-track{--rail-x:22px;margin-top:var(--lu-s-4);position:relative}.how-rail{top:24px;bottom:24px;left:var(--rail-x);background:repeating-linear-gradient(to bottom, var(--lu-border-strong) 0 8px, transparent 8px 14px);width:6px;position:absolute;translate:-50%}.how-rail-fill{height:calc(var(--fill,0) * 100%);background:repeating-linear-gradient(to bottom, var(--lu-violet) 0 8px, transparent 8px 14px);position:absolute;inset:0 0 auto}.how-steps{gap:var(--lu-s-10);margin:0;padding:0;list-style:none;display:grid}.how-step{column-gap:var(--lu-s-4);row-gap:var(--lu-s-4);grid-template-columns:44px minmax(0,1fr);grid-template-areas:"node scene""node text";align-items:start;display:grid}.how-node{z-index:1;border:var(--lu-border-w) solid var(--lu-border-strong);border-radius:var(--lu-r);background:var(--lu-surface-3);width:44px;height:44px;box-shadow:0 4px 0 var(--lu-border-strong);color:var(--lu-text-2);font:var(--lu-fw-black) var(--lu-fs-md) / 1 var(--lu-font);transition:background-color var(--lu-dur-3), border-color var(--lu-dur-3), box-shadow var(--lu-dur-3), color var(--lu-dur-3), transform var(--lu-dur-3) var(--lu-ease-bounce);grid-area:node;place-items:center;margin-top:8px;display:grid;position:relative}.how-step[data-reached] .how-node{border-color:var(--lu-violet-lip);background:var(--lu-violet);box-shadow:0 4px 0 var(--lu-violet-lip);color:#fff;transform:scale(1.08)}.how-scene{grid-area:scene}.how-text{align-items:flex-start;gap:var(--lu-s-2);flex-direction:column;grid-area:text;display:flex}.how-icon{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);width:60px;height:60px;box-shadow:0 4px 0 var(--lu-border);place-items:center;display:grid}.how-num{margin-top:var(--lu-s-2);color:var(--lu-violet-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black)}.how-text h3{font-size:clamp(24px,4vw,30px);font-weight:var(--lu-fw-black);letter-spacing:-.015em;margin:0;line-height:1.15}.how-text p{max-width:44ch;color:var(--lu-text-2);font-size:var(--lu-fs-md);margin:0;font-weight:500;line-height:1.6}.how[data-js] .how-scene,.how[data-js] .how-text{transition:opacity .7s var(--lu-ease), transform .8s var(--lu-ease)}.how[data-js] .how-text{transition-delay:.12s}.how[data-js] .how-step:not([data-in]) .how-scene{opacity:0;transform:translateY(56px)scale(.94)}.how[data-js] .how-step:not([data-in]) .how-text{opacity:0;transform:translateY(40px)}.scene{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-xl);background:radial-gradient(var(--lu-violet) 1.5px, transparent 2px) 0 0 / 20px 20px, var(--lu-surface-2);height:280px;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.scene{background:radial-gradient(color-mix(in srgb, var(--lu-violet) 16%, transparent) 1.5px, transparent 2px) 0 0 / 20px 20px, var(--lu-surface-2)}}.scene{box-shadow:0 6px 0 var(--lu-border)}.scene-layer{translate:0 calc(var(--o,0) * var(--depth,0) * -1px);will-change:translate;display:block;position:absolute}@media (max-width:639px){.scene .loo{transform-origin:50% 100%;scale:.8}}.scene-layer>.lu-pxicon{filter:drop-shadow(0 3px 0 var(--lu-text))}@supports (color:color-mix(in lab, red, red)){.scene-layer>.lu-pxicon{filter:drop-shadow(0 3px 0 color-mix(in srgb, var(--lu-text) 14%, transparent))}}.scene-node{background:var(--lu-surface-3);width:52px;height:52px;box-shadow:0 6px 0 var(--lu-border-strong);border-radius:16px;place-items:center;display:grid}.scene-node[data-s=done]{background:var(--lu-green);box-shadow:0 6px 0 var(--lu-green-lip)}.scene-node[data-s=current]{background:var(--lu-violet);width:60px;height:60px;box-shadow:0 6px 0 var(--lu-violet-lip), 0 0 0 6px var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.scene-node[data-s=current]{box-shadow:0 6px 0 var(--lu-violet-lip), 0 0 0 6px color-mix(in srgb, var(--lu-violet) 22%, transparent)}}.scene-node[data-s=current]{animation:scene-pulse 2.4s var(--lu-ease) infinite}.scene-node[data-s=locked] .lu-pxicon{opacity:.75}@keyframes scene-pulse{50%{box-shadow:0 6px 0 var(--lu-violet-lip), 0 0 0 12px color-mix(in srgb, var(--lu-violet) 0%, transparent)}}.scene-quiz{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);width:min(58%,250px);box-shadow:0 4px 0 var(--lu-border);gap:6px;padding:12px;display:grid}.scene-quiz-q{font-size:14px;font-weight:var(--lu-fw-black)}.scene-quiz-code{border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-token-keyword);font:600 13px/1.3 var(--lu-font-mono);padding:6px 8px}.scene-opt{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-sm);min-height:30px;box-shadow:0 2px 0 var(--lu-border);font:600 12px/1 var(--lu-font-mono);color:var(--lu-text-2);justify-content:space-between;align-items:center;padding:0 8px;display:flex}.scene-opt[data-ok]{border-color:var(--lu-green);background:var(--lu-green-soft);box-shadow:0 2px 0 var(--lu-green-lip);color:var(--lu-green-ink)}.scene-phone{background:var(--lightningcss-light,#2a2145)var(--lightningcss-dark,#0e0e12);border:3px solid var(--lightningcss-light,#2a2145)var(--lightningcss-dark,#3b3b44);border-radius:24px;width:132px;height:236px;padding:8px;box-shadow:0 6px var(--lightningcss-light,#1e1033)var(--lightningcss-dark,#000)}.scene-phone-screen{background:var(--lu-surface-2);border-radius:16px;height:100%;display:block;overflow:hidden}.scene-reels{animation:scene-reels 6s var(--lu-ease) infinite;gap:8px;padding:8px;display:grid}.scene-reel{background:var(--lu-surface);height:54px;box-shadow:0 2px 0 var(--lu-border);border-radius:10px;grid-template-rows:1fr 1fr;grid-template-columns:24px 1fr;align-items:center;column-gap:6px;padding:6px;display:grid}.scene-reel .lu-pxicon{grid-row:span 2}.scene-reel i{background:var(--lu-surface-3);border-radius:2px;height:6px}.scene-reel i:first-of-type{background:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.scene-reel i:first-of-type{background:color-mix(in srgb, var(--lu-violet) 45%, var(--lu-surface-3))}}.scene-reel[data-n="1"] i:first-of-type{background:var(--lu-mint)}@supports (color:color-mix(in lab, red, red)){.scene-reel[data-n="1"] i:first-of-type{background:color-mix(in srgb, var(--lu-mint) 55%, var(--lu-surface-3))}}.scene-reel[data-n="2"] i:first-of-type{background:var(--lu-pink)}@supports (color:color-mix(in lab, red, red)){.scene-reel[data-n="2"] i:first-of-type{background:color-mix(in srgb, var(--lu-pink) 50%, var(--lu-surface-3))}}@keyframes scene-reels{0%,25%{transform:translateY(0)}33%,58%{transform:translateY(-62px)}66%,91%{transform:translateY(-124px)}to{transform:translateY(-186px)}}.scene-podium{translate:-50% calc(var(--o,0) * var(--depth,0) * -1px);align-items:flex-end;gap:6px;display:flex;bottom:0}.scene-podium [data-place="1"]{position:relative}.scene-podium .loo{position:absolute;bottom:calc(100% - 6px);left:50%;translate:-50%}.scene-podium>span{color:#fff;width:76px;font:var(--lu-fw-black) 20px/1 var(--lu-font);border-radius:10px 10px 0 0;place-items:start center;padding-top:8px;display:grid}.scene-podium [data-place="1"]{background:var(--lu-violet);height:96px;box-shadow:inset 0 -8px 0 var(--lu-violet-lip)}.scene-podium [data-place="2"]{background:#a9aebb;height:66px;box-shadow:inset 0 -8px #878c99}.scene-podium [data-place="3"]{background:#d99a5e;height:46px;box-shadow:inset 0 -8px #b37540}.scene-loo-center{justify-content:center;width:100%;display:flex}.scene-loo .loo-says{text-align:center;align-items:center}.scene-loo .loo-bubble{max-width:220px}.scene-loo .loo-says[data-side=top] .loo-bubble:before,.scene-loo .loo-says[data-side=top] .loo-bubble:after{left:calc(50% - 10px)}.landing-featured{gap:var(--lu-s-4);align-items:center;display:grid}.landing-featured h3{margin:var(--lu-s-2) 0 var(--lu-s-1);font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);line-height:1.15}.landing-featured p{color:var(--lu-text-2);margin:0;font-weight:500;line-height:1.55}.landing-featured-icon{border-radius:var(--lu-r-lg);background:var(--lu-yellow-soft);place-items:center;width:84px;height:84px;display:inline-grid}.landing-levels{margin:var(--lu-s-3) 0 0;gap:var(--lu-s-1);flex-wrap:wrap;padding:0;list-style:none;display:flex}.landing-levels li{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface-2);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);align-items:center;gap:2px;padding:4px 10px;display:inline-flex}.landing-levels li:not(:last-child):after{content:" →";color:var(--lu-text-3)}.landing-soon{margin:var(--lu-s-4) 0 0;gap:var(--lu-s-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));padding:0;list-style:none;display:grid}.landing-soon-card.lu-card{align-items:center;gap:var(--lu-s-3);border-style:dashed;border-color:var(--lu-border-strong);background:var(--lu-surface-2);height:100%;font-weight:var(--lu-fw-bold);display:flex}.landing-soon-card>:nth-child(2){overflow-wrap:anywhere;min-width:0}.landing-soon-card .lu-pill{margin-left:auto}.landing-final{--px-face:var(--lu-surface);--px-line:var(--lu-violet);--px-s:6px;width:min(720px, calc(100% - 2 * var(--lu-s-4)));margin:var(--lu-s-12) auto calc(var(--lu-s-12) + var(--px-lip));padding:var(--lu-s-8) var(--lu-s-5);align-items:center;gap:var(--lu-s-2);text-align:center;flex-direction:column;display:flex}.landing-final .landing-h2{margin:var(--lu-s-2) 0}.landing-final .landing-sub{margin:0 0 var(--lu-s-3);max-width:44ch}.landing-footer-flag{vertical-align:-3px}.landing-footer{padding:var(--lu-s-6) var(--lu-s-4) calc(var(--lu-s-6) + env(safe-area-inset-bottom));border-top:var(--lu-border-w) solid var(--lu-border);text-align:center;color:var(--lu-text-2);font-size:var(--lu-fs-xs);font-weight:600}@media (min-width:640px){.landing-nav{padding-inline:var(--lu-s-8)}.landing-nav-links .lu-btn[data-variant=ghost]{display:inline-flex}.landing-cta{gap:var(--lu-s-3);flex-direction:row;width:auto}.landing-stats{gap:var(--lu-s-3)}.landing-stats strong{font-size:var(--lu-fs-xl)}.landing-stats span{font-size:var(--lu-fs-sm)}.landing-featured{gap:var(--lu-s-5);grid-template-columns:auto 1fr auto}.landing-float{font-size:var(--lu-fs-lg)}.scene{height:320px}}@media (min-width:900px){.landing-hero{padding-top:var(--lu-s-12);padding-bottom:var(--lu-s-8);grid-template-columns:1.1fr 1fr}.landing-stage{min-height:440px}.landing-stage .loo{width:240px;height:240px}.landing-float[data-kind=streak]{left:-28px}.landing-float[data-kind=gems],.landing-float[data-kind=xp]{right:-28px}.how-head{text-align:center;margin-inline:auto}.how-track{--rail-x:50%;margin-top:var(--lu-s-8)}.how-steps{gap:var(--lu-s-6)}.how-step{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);grid-template-areas:"scene node text";align-items:center;min-height:min(62vh,440px)}.how-step[data-side=right]{grid-template-areas:"text node scene"}.how-step[data-side=right] .how-text{text-align:right;align-items:flex-end}.how-node{justify-self:center;margin-top:0}.how-text{padding-inline:var(--lu-s-4)}.how[data-js] .how-step:not([data-in]) .how-text{transform:translate(48px)}.how[data-js] .how-step[data-side=right]:not([data-in]) .how-text{transform:translate(-48px)}.scene{height:360px}}@media (prefers-reduced-motion:reduce){.landing-float,.scene-node[data-s=current],.scene-reels{animation:none}.scene-layer{translate:none}.how[data-js] .how-step:not([data-in]) .how-scene,.how[data-js] .how-step:not([data-in]) .how-text{transform:none}}.dg{padding:var(--lu-s-4);border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-lg);background:radial-gradient(var(--lu-violet) 1px, transparent 1.4px) 0 0 / 18px 18px, var(--lu-surface-2);margin:20px 0}@supports (color:color-mix(in lab, red, red)){.dg{background:radial-gradient(color-mix(in srgb, var(--lu-violet) 12%, transparent) 1px, transparent 1.4px) 0 0 / 18px 18px, var(--lu-surface-2)}}.dg{box-shadow:0 var(--lu-lip) 0 var(--lu-border);font-family:var(--lu-font);outline-offset:3px}.dg-title{color:var(--lu-text);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black)}.dg-canvas{padding:14px 4px 10px}.dg-zoom{position:relative}.dg-viewport{border-radius:var(--lu-r);touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.dg-viewport[data-zoomed]{touch-action:none;cursor:grab;background:var(--lu-surface)}@supports (color:color-mix(in lab, red, red)){.dg-viewport[data-zoomed]{background:color-mix(in srgb, var(--lu-surface) 55%, transparent)}}.dg-viewport[data-zoomed]{box-shadow:inset 0 0 0 2px var(--lu-border)}.dg-viewport[data-zoomed]:active{cursor:grabbing}.dg-stage{transform-origin:0 0;will-change:transform;width:100%}@media (min-width:640px){.dg[data-layout=flow] .dg-stage:not([data-stacked]){width:max-content;min-width:var(--dg-w,100%)}}.dg-head{justify-content:space-between;align-items:flex-start;gap:var(--lu-s-2);margin-bottom:6px;display:flex}.dg-head .dg-title{margin:6px 0 0}.dg-zoombar{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);flex:none;align-items:center;gap:2px;margin-left:auto;padding:3px;display:flex}@supports (color:color-mix(in lab, red, red)){.dg-zoombar{background:color-mix(in srgb, var(--lu-surface) 92%, transparent)}}.dg-zoombar{box-shadow:0 2px 0 var(--lu-border);opacity:.55;transition:opacity var(--lu-dur-2)}.dg:hover .dg-zoombar,.dg:focus-within .dg-zoombar,.dg[data-expanded] .dg-zoombar{opacity:1}.dg-zoom:has(.dg-viewport[data-zoomed]) .dg-zoombar{opacity:1}@media (hover:none){.dg-zoombar{opacity:1}}.dg-zoombar button{border-radius:var(--lu-r-sm);min-width:30px;height:30px;color:var(--lu-text-2);font:700 12px/1 var(--lu-font);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;place-items:center;padding:0 6px;display:grid}.dg-zoombar button:hover:not(:disabled){background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.dg-zoombar button:disabled{opacity:.35;cursor:default}.dg-zoom-pct{min-width:46px}.dg-placeholder{margin:20px 0}.dg-scrim{z-index:var(--lu-z-sheet);background:var(--lu-scrim);animation:lu-fade var(--lu-dur-3) var(--lu-ease);position:fixed;inset:0}.dg[data-expanded]{inset:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));z-index:calc(var(--lu-z-sheet) + 1);background-color:var(--lu-surface-2);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);flex-direction:column;margin:0;display:flex;position:fixed}.dg[data-expanded] .dg-zoom{flex-direction:column;flex:1;min-height:0;display:flex}.dg[data-expanded][data-layout=flow] .dg-stage:not([data-stacked]){min-width:0}.dg[data-expanded] .dg-viewport{touch-action:none;cursor:grab;flex:1;height:auto!important}@media (min-width:900px){.dg[data-expanded]{inset:32px max(32px,50vw - 640px)}}.dg-node{border:var(--lu-border-w) solid var(--tone);flex-direction:column;gap:4px;min-width:0;padding:10px 12px;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.dg-node{border:var(--lu-border-w) solid color-mix(in srgb, var(--tone) 55%, var(--lu-border))}}.dg-node{border-radius:var(--lu-r);background:var(--lu-surface);box-shadow:0 3px 0 var(--tone)}@supports (color:color-mix(in lab, red, red)){.dg-node{box-shadow:0 3px 0 color-mix(in srgb, var(--tone) 40%, var(--lu-border))}}.dg-node{opacity:0;transition:opacity var(--lu-dur-3) var(--lu-ease), transform var(--lu-dur-3) var(--lu-ease-bounce), background-color var(--lu-dur-2), box-shadow var(--lu-dur-2);transform:translateY(6px)scale(.97)}.dg-node[data-shown]{opacity:1;transform:none}.dg-node[data-focus]{background:var(--tone-soft);box-shadow:0 3px 0 var(--tone-lip), 0 0 0 4px var(--tone)}@supports (color:color-mix(in lab, red, red)){.dg-node[data-focus]{box-shadow:0 3px 0 var(--tone-lip), 0 0 0 4px color-mix(in srgb, var(--tone) 22%, transparent)}}.dg-label{color:var(--tone-ink);font-size:12px;font-weight:var(--lu-fw-black);line-height:1.2}.dg-body{align-items:center;gap:8px;display:flex}.dg-icon{flex:none}.dg-text{color:var(--lu-text);font-size:var(--lu-fs-sm);font-weight:600;line-height:1.4}.dg .dg-code{overflow-wrap:normal;border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);font:500 13px/1.5 var(--lu-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;padding:6px 0;display:block}.dg-nest-kids>.dg-node:not([data-shown]),.dg-timeline>li:not([data-shown]){display:none}.dg-stack>.dg-seq-item:has(>.dg-node:not([data-shown])){display:none}.dg-stack>.dg-seq-item:has(>.dg-node:not([data-shown]))+.dg-seq-item>:is(.dg-arrow,.dg-gap){display:none}.dg-tree>li:has(>.dg-node:not([data-shown])){display:none}.dg-nest-kids>.dg-node[data-shown],.dg-tree>li>.dg-node[data-shown],.dg-timeline>li>.dg-node[data-shown],.dg-stack>.dg-seq-item>.dg-node[data-shown]{animation:dg-push .42s var(--lu-ease-bounce)}@keyframes dg-push{0%{opacity:0;transform:translateY(-14px)scale(.96)}}.dg-line{transition:background-color var(--lu-dur-2), border-color var(--lu-dur-2);border-left:3px solid #0000;padding:0 10px;display:block}.dg-line[data-on]{border-left-color:var(--lu-mint);background:#4fe3cc29}.dg-text[data-changed]{animation:dg-pop .52s var(--lu-ease-bounce);display:inline-block}@keyframes dg-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.18)}}.dg-arrive{z-index:2;border-radius:var(--lu-r-sm);background:var(--lu-yellow);box-shadow:0 2px 0 var(--lu-yellow-lip);color:#3d2a00;font:700 12px/1.4 var(--lu-font-mono);white-space:nowrap;animation:dg-arrive .7s var(--lu-ease-bounce) var(--d,0s) both;padding:2px 8px;position:absolute;top:-12px;right:-8px}@keyframes dg-arrive{0%{opacity:0;transform:translate(-24px,10px)scale(.5)}}.dg-note{color:var(--lu-text-2);font-size:12px;font-weight:500;line-height:1.35}.dg-arrow{--a:var(--tone,var(--lu-violet))}@supports (color:color-mix(in lab, red, red)){.dg-arrow{--a:color-mix(in srgb, var(--tone,var(--lu-violet)) 70%, var(--lu-text-3))}}.dg-arrow{opacity:.15;transition:opacity var(--lu-dur-3);flex:none;place-items:center;display:grid;position:relative}.dg-arrow[data-shown]{opacity:1}.dg-arrow>i{background:var(--a);display:block;position:relative}.dg-arrow[data-dashed]>i{background:repeating-linear-gradient(var(--dg-dash-dir,90deg), var(--a) 0 6px, transparent 6px 10px)}.dg-arrow>i:after{content:"";border:6px solid #0000;position:absolute}.dg-arrow[data-dir=x]{align-self:center;width:56px}.dg-arrow[data-dir=x]>i{width:100%;height:3px}.dg-arrow[data-dir=x]>i:after{border-left:9px solid var(--a);border-right-width:0;top:-4.5px;right:-8px}.dg-arrow[data-dir=y]{--dg-dash-dir:180deg;height:34px}.dg-arrow[data-dir=y]>i{width:3px;height:100%}.dg-arrow[data-dir=y]>i:after{border-top:9px solid var(--a);border-bottom-width:0;bottom:-8px;left:-4.5px}.dg-arrow[data-live]>i{--a:var(--lu-yellow-lip)}.dg-chip{z-index:2;border-radius:var(--lu-r-sm);background:var(--lu-yellow);box-shadow:0 2px 0 var(--lu-yellow-lip);color:#3d2a00;font:700 12px/1.4 var(--lu-font-mono);white-space:nowrap;pointer-events:none;animation:dg-travel-y 1.1s var(--lu-ease) both;padding:2px 8px;position:absolute}.dg-chip[data-back]{animation-direction:reverse}@keyframes dg-travel-y{0%{opacity:0;transform:translateY(-160%)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(160%)}}@keyframes dg-travel-x{0%{opacity:0;transform:translate(-30px)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(30px)}}.dg-arrow-label{border-radius:var(--lu-r-xs);background:var(--lu-surface-2);color:var(--lu-text-2);white-space:nowrap;padding:1px 6px;font-size:11px;font-weight:700;position:absolute}.dg-arrow[data-dir=x] .dg-arrow-label{bottom:calc(50% + 6px)}.dg-arrow[data-dir=y] .dg-arrow-label{left:calc(50% + 10px)}.dg-seq,.dg-seq-item{flex-direction:column;align-items:stretch;display:flex}.dg-seq-item>.dg-arrow[data-dir=x]{width:auto;height:34px}.dg-seq-item>.dg-arrow[data-dir=x]>i{width:3px;height:100%}.dg-seq-item>.dg-arrow[data-dir=x]>i:after{border:6px solid #0000;border-top:9px solid var(--a);border-bottom-width:0;inset:auto auto -8px -4.5px}.dg-seq-item>.dg-arrow[data-dir=x] .dg-arrow-label{bottom:auto;left:calc(50% + 10px)}.dg-gap{height:10px}.dg-stack .dg-node{text-align:center;align-items:center}@media (min-width:640px){.dg-stage:not([data-stacked]) .dg-flow{flex-direction:row;align-items:center;min-width:max-content}.dg-stage:not([data-stacked]) .dg-flow>.dg-seq-item{flex-direction:row;align-items:center}.dg-stage:not([data-stacked]) .dg-flow .dg-node{max-width:280px}.dg-stage:not([data-stacked]) .dg-seq-item>.dg-arrow[data-dir=x]{width:56px;height:auto}.dg-stage:not([data-stacked]) .dg-seq-item>.dg-arrow[data-dir=x]>i{width:100%;height:3px}.dg-stage:not([data-stacked]) .dg-seq-item>.dg-arrow[data-dir=x]>i:after{border:6px solid #0000;border-left:9px solid var(--a);border-right-width:0;inset:-4.5px -8px auto auto}.dg-stage:not([data-stacked]) .dg-seq-item>.dg-arrow[data-dir=x] .dg-arrow-label{bottom:calc(50% + 6px);left:auto}.dg-stage:not([data-stacked]) .dg-flow .dg-chip{animation-name:dg-travel-x}.dg-stage:not([data-stacked]) .dg-flow>.dg-seq-item>.dg-gap{width:12px;height:auto}.dg-stage[data-stacked] .dg-flow{max-width:560px;margin-inline:auto}.dg-stack{max-width:420px;margin-inline:auto}}.dg-compare{gap:var(--lu-s-3);display:grid}.dg-col{flex-direction:column;gap:8px;min-width:0;display:flex}.dg-col-head{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);align-self:flex-start;padding:3px 10px}.dg-compare .dg-stack{max-width:none}.dg-compare .dg-stack .dg-node{text-align:left;align-items:stretch}@media (min-width:640px){.dg-compare{grid-template-columns:repeat(var(--cols,2), minmax(0, 1fr))}}.dg-tree{margin:0;padding:0;list-style:none}.dg-tree .dg-tree{border-left:2px solid var(--lu-border-strong);margin-left:14px;padding-left:18px}.dg-tree>li{padding-top:8px;position:relative}.dg-tree .dg-tree>li:before{content:"";background:var(--lu-border-strong);width:16px;height:2px;position:absolute;top:28px;left:-18px}.dg-tree .dg-node{max-width:100%;display:inline-flex}.dg-nest-kids{flex-wrap:wrap;gap:10px;display:flex}.dg-nest-root>.dg-nest-kids>.dg-node{flex:100%}.dg-nest-kids .dg-nest-kids{margin-top:8px}.dg-nest-kids .dg-nest-kids>.dg-node{background:var(--tone);flex:200px}@supports (color:color-mix(in lab, red, red)){.dg-nest-kids .dg-nest-kids>.dg-node{background:color-mix(in srgb, var(--tone) 6%, var(--lu-surface))}}.dg-timeline{border-left:3px solid var(--lu-border-strong);gap:10px;margin:0;padding:0 0 0 20px;list-style:none;display:grid}.dg-timeline>li{gap:4px;display:grid;position:relative}.dg-timeline>li:before{content:"";background:var(--lu-surface-3);width:13px;height:13px;box-shadow:0 0 0 3px var(--lu-surface-2);border-radius:4px;position:absolute;top:10px;left:-28px}.dg-timeline>li[data-shown]:before{background:var(--lu-violet)}.dg-tick{color:var(--lu-text-3);font:600 12px/1 var(--lu-font-mono)}.dg-links{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.dg-links>li{border:var(--lu-border-w) dashed var(--lu-border-strong);border-radius:var(--lu-r-sm);color:var(--lu-text-2);opacity:.3;padding:2px 8px;font-size:12px;font-weight:600}.dg-links>li[data-shown]{opacity:1}.dg-steps{margin-top:var(--lu-s-3);padding-top:var(--lu-s-3);border-top:2px dashed var(--lu-border);gap:10px;display:grid}.dg-step-note{min-height:2.9em;color:var(--lu-text);font-size:var(--lu-fs-sm);align-items:flex-start;gap:10px;margin:0;font-weight:500;line-height:1.5;display:flex}.dg-step-text{animation:dg-note-in var(--lu-dur-3) var(--lu-ease)}@keyframes dg-note-in{0%{opacity:0;transform:translateY(4px)}}.dg-progress{background:var(--lu-surface-3);border-radius:2px;height:4px;overflow:hidden}.dg-progress>i{background:var(--lu-violet);width:0;height:100%;display:block}.dg-progress>i[data-run]{animation:dg-progress var(--dur,2.6s) linear forwards}@keyframes dg-progress{to{width:100%}}.dg:not([data-playing]) .dg-progress{visibility:hidden}.dg-step-num{background:var(--lu-violet);width:26px;height:26px;box-shadow:0 3px 0 var(--lu-violet-lip);color:#fff;font-size:13px;font-weight:var(--lu-fw-black);border-radius:8px;flex:none;place-items:center;display:grid}.dg-controls{justify-content:space-between;align-items:center;gap:10px;display:flex}.dg-controls .lu-btn{margin-bottom:var(--b-lip-h)}.dg-dots{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.dg-dot{background:var(--lu-surface-3);cursor:pointer;border:0;border-radius:3px;width:12px;height:12px;padding:0}.dg-dot[data-done]{background:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.dg-dot[data-done]{background:color-mix(in srgb, var(--lu-violet) 45%, var(--lu-surface-3))}}.dg-dot[data-on]{background:var(--lu-violet);box-shadow:0 2px 0 var(--lu-violet-lip)}.dg-caption{margin-top:var(--lu-s-3);color:var(--lu-text-2);font-size:var(--lu-fs-sm);line-height:1.5}@media (prefers-reduced-motion:reduce){.dg-node,.dg-arrow{transition:none}.dg-chip{display:none}.dg-arrive,.dg-text[data-changed],.dg-step-text{animation:none}.dg-node{transform:none}}.page.st-page{padding-inline:clamp(16px,4vw,48px)}.st-page{font-family:var(--lu-font);gap:var(--lu-s-5);padding-bottom:var(--lu-s-12);display:grid}.st-page>*{min-width:0}.st-h2{margin:0 0 var(--lu-s-3);font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);color:var(--lu-text);flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.st-h2-icon{flex:none;align-self:center}.st-h2-sub{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:700}.st-h3{margin:var(--lu-s-4) 0 var(--lu-s-2);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.st-link{font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-xs);color:var(--lu-violet-ink);text-decoration:none}.st-link:hover{text-decoration:underline}.st-empty-note{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:0}.st-hero.lu-card{margin-top:var(--lu-s-6);align-items:center;gap:var(--lu-s-4) var(--lu-s-5);--c-border:var(--lu-violet);grid-template-columns:auto minmax(0,1fr) auto;display:grid}@supports (color:color-mix(in lab, red, red)){.st-hero.lu-card{--c-border:color-mix(in srgb, var(--lu-violet) 40%, var(--lu-border))}}.st-hero.lu-card{background:var(--lu-violet-soft);box-shadow:0 var(--lu-lip) 0 var(--c-border);margin-bottom:var(--lu-lip)}.st-hero-avatar[data-ring]{--lu-ring-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft), 0 0 0 6px var(--lu-ring-color)}.st-hero-evo .lu-pill[data-solid]{--tone:var(--lu-violet)}.st-hero-pills .lu-pill[data-tone=green]{--tone-soft:var(--lu-orange-soft);--tone-ink:var(--lu-orange-ink)}.st-hero .st-hero-xp{--tone:var(--lu-violet)}.st-hero-name{font-size:clamp(22px,5vw,30px);font-weight:var(--lu-fw-black);overflow-wrap:anywhere;margin:0;line-height:1.15}.st-hero-pills{flex-wrap:wrap;gap:6px;margin:8px 0 10px;display:flex}.st-hero-xp{max-width:420px}.st-hero-meta{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:8px 0 0;font-weight:600}.st-gap[data-met]{color:var(--lu-green-ink)}.st-hero-settings{width:var(--lu-target);height:var(--lu-target);border-radius:var(--lu-r);color:var(--lu-text-2);border:var(--lu-border-w) solid var(--lu-border);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);align-self:start;place-items:center;font-size:24px;display:grid}.st-hero-settings:hover{color:var(--lu-violet-ink);background:var(--lu-surface-2)}@media (max-width:560px){.st-hero.lu-card{grid-template-columns:auto minmax(0,1fr)}.st-hero-avatar{width:64px!important;height:64px!important}.st-hero-settings{top:var(--lu-s-3);right:var(--lu-s-3);position:absolute}.st-hero-text{grid-column:1/-1}}.st-zero-actions{justify-content:center;gap:var(--lu-s-3);flex-wrap:wrap;display:flex}.st-tiles{gap:var(--lu-s-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (max-width:860px){.st-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.st-tile.lu-card{align-content:start;gap:4px;min-width:0;display:grid}.st-tile.lu-card[data-tone][data-variant=raised]{--c-border:var(--lu-border);box-shadow:0 var(--lu-lip) 0 var(--lu-border)}.st-tile-icon{border-radius:var(--lu-r);background:var(--tone-soft);width:40px;height:40px;color:var(--tone);place-items:center;margin-bottom:6px;font-size:24px;display:grid}.st-tile-value{font:800 var(--lu-fs-2xl) / 1.1 var(--lu-font-pixel);font-variant-numeric:tabular-nums;color:var(--lu-text);overflow-wrap:anywhere}.st-tile-label{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-text)}.st-tile-sub{color:var(--lu-text-2);font-size:12px;font-weight:500;line-height:1.4}.st-trend{color:var(--lu-red-ink);align-items:center;gap:4px;display:inline-flex}.st-trend[data-good]{color:var(--lu-green-ink)}.st-block{min-width:0}.st-tiers{gap:var(--lu-s-3);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}@media (max-width:860px){.st-tiers{grid-template-columns:repeat(2,minmax(0,1fr))}}.st-tier.lu-card{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px;display:grid}.st-tier-icon{place-items:center;display:grid}.st-tier[data-empty] .st-tier-icon{filter:grayscale();opacity:.6}.st-tier-text{min-width:0;display:grid}.st-tier-label{color:var(--lu-text-2);font-size:12px;font-weight:600}.st-tier-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black)}.st-tier-next{color:var(--lu-text-2);font-size:12px;font-weight:500}.st-tier-steps{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px;display:grid}.st-tier-steps span{background:var(--lu-surface-3);border-radius:2px;height:8px}.st-tier-steps span[data-on]{background:var(--lu-violet)}.st-activity .heatmap{margin:0}.st-heat .heatmap-scroll{padding-bottom:4px;position:relative;overflow-x:auto}.st-heat .heatmap-label{font:700 10px var(--lu-font);fill:var(--lu-text-2)}.st-heat .heat-cell,.st-heat .heatmap-legend .heat-cell{fill:var(--st-heat-0)}.st-heat .heat-cell[data-level="1"]{fill:var(--st-heat-1)}.st-heat .heat-cell[data-level="2"]{fill:var(--st-heat-2)}.st-heat .heat-cell[data-level="3"]{fill:var(--st-heat-3)}.st-heat .heat-cell[data-level="4"]{fill:var(--st-heat-4)}.st-heat .heat-cell[data-today]{stroke:var(--lu-text-2);stroke-width:1.5px}.st-heat .heat-cell:hover{stroke:var(--lu-text);stroke-width:1.5px}.st-heat .heatmap-legend{color:var(--lu-text-2);align-items:center;gap:4px;margin-top:6px;font-size:12px;font-weight:600;display:flex}.st-tips{position:relative}.st-tip{z-index:5;border-radius:var(--lu-r-sm);background:var(--lu-surface);min-width:max-content;max-width:240px;box-shadow:var(--lu-shadow-pop);pointer-events:none;font-family:var(--lu-font);white-space:nowrap;gap:1px;padding:6px 10px;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.st-tip[data-below]{transform:translate(-50%,8px)}.st-tip[data-edge=start]{transform:translate(-16px,calc(-100% - 8px))}.st-tip[data-edge=end]{transform:translate(calc(16px - 100%),calc(-100% - 8px))}.st-tip[data-below][data-edge=start]{transform:translate(-16px,8px)}.st-tip[data-below][data-edge=end]{transform:translate(calc(16px - 100%),8px)}.st-tip strong{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-text)}.st-tip span{color:var(--lu-text-2);font-size:12px;font-weight:700}.st-charts{gap:var(--lu-s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (max-width:860px){.st-charts{grid-template-columns:minmax(0,1fr)}}.st-chart.lu-card{align-content:start;gap:var(--lu-s-3);min-width:0;display:grid}.st-chart-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);margin:0}.st-chart-sub{color:var(--lu-text-2);margin:2px 0 0;font-size:12px;font-weight:700}.st-axis-label{color:var(--lu-text-2);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.st-x{color:var(--lu-text-2);justify-content:space-between;margin-top:4px;font-size:11px;font-weight:700;display:flex}.st-cols{border-top:1px solid var(--st-grid);border-bottom:1px solid var(--st-grid);align-items:flex-end;gap:2px;height:140px;display:flex;position:relative}.st-col{border-radius:2px 2px 0 0;outline:none;flex:1 1 0;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.st-col:hover,.st-col:focus-visible{background:var(--lu-hover)}.st-col:focus-visible{box-shadow:var(--lu-focus)}.st-col-bar{width:100%;max-width:24px;height:calc(var(--h) * 100%);background:var(--st-mark);border-radius:2px 2px 0 0;min-height:0}.st-col[data-zero] .st-col-bar{height:0}.st-col-value{bottom:calc(var(--h) * 100% + 4px);font-size:11px;font-weight:var(--lu-fw-black);color:var(--lu-text);font-variant-numeric:tabular-nums;position:absolute;left:50%;transform:translate(-50%)}.st-line{border-top:1px solid var(--st-grid);border-bottom:1px solid var(--st-grid);height:140px;position:relative}.st-line svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.st-area{fill:var(--st-mark-wash)}.st-path{fill:none;stroke:var(--st-mark);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.st-dot{background:var(--st-mark);width:8px;height:8px;box-shadow:0 0 0 2px var(--lu-surface);pointer-events:none;border-radius:50%;margin:-4px 0 0 -4px;position:absolute}.st-end-label{font-size:11px;font-weight:var(--lu-fw-black);color:var(--lu-text);white-space:nowrap;pointer-events:none;position:absolute;transform:translate(-100%,calc(-100% - 8px))}.st-hits{display:flex;position:absolute;inset:0}.st-hit{outline:none;flex:1 1 0;position:relative}.st-hit[data-tip]:hover:after,.st-hit[data-tip]:focus-visible:after{content:"";background:var(--lu-text-3);width:1px;position:absolute;top:0;bottom:0;left:50%}.st-bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.st-bar{color:inherit;border-radius:var(--lu-r-xs);outline:none;grid-template-columns:minmax(0,42%) minmax(0,1fr);align-items:center;gap:10px;text-decoration:none;display:grid}a.st-bar:hover .st-bar-label{text-decoration:underline}.st-bar:focus-visible{box-shadow:var(--lu-focus)}.st-bar-label{min-width:0;font-size:var(--lu-fs-xs);color:var(--lu-text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-weight:700;display:flex;overflow:hidden}.st-flag{color:var(--lu-orange-ink);font-weight:var(--lu-fw-black);flex:none;align-items:center;display:inline-flex}.st-bar-track{align-items:center;gap:6px;min-width:0;display:flex}.st-bar-fill{width:calc(var(--w) * (100% - 44px));background:var(--st-mark);border-radius:0 2px 2px 0;flex:none;min-width:2px;height:14px}.st-bar-value{font-size:12px;font-weight:var(--lu-fw-black);color:var(--lu-text);flex:none}.st-table summary{cursor:pointer;color:var(--lu-text-2);font-size:12px;font-weight:600}.st-table table{margin-top:8px;font-size:13px}.st-records{gap:var(--lu-s-3);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin:0;padding:0;list-style:none;display:grid}.st-records li{align-content:start;gap:2px;display:grid}.st-record-label{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.st-record-value{font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);color:var(--lu-violet-ink)}.st-record-sub{color:var(--lu-text-2);font-size:12px;font-weight:500}.st-topic-cols{gap:var(--lu-s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (max-width:860px){.st-topic-cols{grid-template-columns:minmax(0,1fr)}}.st-topics{gap:6px;margin:0;padding:0;list-style:none;display:grid}.st-topics li{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.st-topics[data-kind=strong] li{border-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.st-topics[data-kind=strong] li{border-color:color-mix(in srgb, var(--lu-green) 35%, transparent)}}.st-topics[data-kind=strong] li{background:var(--lu-green-soft)}.st-topic-text{min-width:0;display:grid}.st-topic-title{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);overflow-wrap:anywhere}.st-topic-meta{color:var(--lu-text-2);font-size:12px;font-weight:500}.st-topic-links{align-items:center;gap:8px;display:flex}@media (max-width:520px){.st-topics li{grid-template-columns:auto minmax(0,1fr)}.st-topic-links{grid-column:2;justify-content:space-between}.st-tile-value{font-size:var(--lu-fs-xl)}}.st-prefs-lead{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:0;font-weight:500}.st-chips{flex-wrap:wrap;gap:8px;display:flex}.st-chip{border:var(--lu-border-w) solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:36px;box-shadow:0 2px 0 var(--lu-border);font:600 var(--lu-fs-xs) / 1 var(--lu-font);color:var(--lu-text-2);cursor:pointer;transition:transform var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);align-items:center;gap:6px;padding:6px 14px;display:inline-flex}.st-chip:hover{background:var(--lu-surface-2)}.st-chip:active{box-shadow:none;transform:translateY(2px)}.st-chip:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.st-chip[aria-pressed=true]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.st-pref-courses{gap:8px;margin:0;padding:0;list-style:none;display:grid}.st-pref-courses li{font-size:var(--lu-fs-sm);flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.st-pref-self{color:var(--lu-text-2);font-size:var(--lu-fs-xs)!important}.st-ach{gap:var(--lu-s-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;padding:0;list-style:none;display:grid}.st-ach li{align-content:start;gap:4px;display:grid}.st-ach li[data-state=unlocked]{--c-border:var(--lu-yellow);background:var(--lu-yellow-soft);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-yellow-lip)}.st-ach li[data-state=unlocked][data-tier=silver]{--c-border:var(--lu-border-strong);background:var(--lu-surface-2);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border-strong)}.st-ach li[data-state=unlocked][data-tier=bronze]{--c-border:var(--lu-orange);background:var(--lu-orange-soft);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-orange-lip)}.st-ach-medal{border-radius:var(--lu-r-sm);background:var(--lu-surface-3);place-items:center;width:40px;height:40px;display:grid}.st-ach li[data-state=locked] .st-ach-medal>*{filter:grayscale();opacity:.45}.st-ach li[data-state=unlocked] .st-ach-medal{background:var(--lu-surface);box-shadow:inset 0 0 0 2px var(--lu-yellow)}.st-ach li[data-state=unlocked][data-tier=silver] .st-ach-medal{box-shadow:inset 0 0 0 2px #c9c4dc}.st-ach li[data-state=unlocked][data-tier=bronze] .st-ach-medal{box-shadow:inset 0 0 0 2px var(--lu-orange)}.st-ach-more{margin-top:var(--lu-s-3)}.st-ach-more summary{cursor:pointer;margin-bottom:var(--lu-s-3);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink)}.st-ach .lu-progress[data-tone]{--tone:var(--lu-violet)}.st-ach-title{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black)}.st-ach li[data-state=locked] .st-ach-title{color:var(--lu-text-2)}.st-ach-desc,.st-ach-sub{color:var(--lu-text-2);font-size:12px;font-weight:500;line-height:1.4}.coach.lu-card{--c-border:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.coach.lu-card{--c-border:color-mix(in srgb, var(--lu-violet) 55%, var(--lu-border))}}.coach.lu-card{gap:var(--lu-s-4);font-family:var(--lu-font);background:var(--lu-violet-soft);box-shadow:0 var(--lu-lip) 0 var(--lu-violet-lip);margin-bottom:var(--lu-lip);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.coach[data-done].lu-card{--c-border:var(--lu-yellow);background:var(--lu-yellow-soft);box-shadow:0 var(--lu-lip) 0 var(--lu-yellow-lip)}.coach:not([data-done]) .coach-bar{--tone:var(--lu-violet)}.coach-body{gap:6px;min-width:0;display:grid}.coach-eyebrow{font-size:var(--lu-fs-xs);color:var(--lu-text-2);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-weight:600;display:flex}.coach-badge{border-radius:var(--lu-r-sm);background:var(--lu-violet);color:var(--lu-on-color);font-weight:var(--lu-fw-bold);padding:3px 8px}.coach[data-done] .coach-badge{background:var(--lu-yellow);color:var(--lu-loo-ink)}.coach-title{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);overflow-wrap:anywhere;margin:0;line-height:1.25}.coach-sub,.coach-why,.coach-year{font-size:var(--lu-fs-sm);color:var(--lu-text-2);margin:0;font-weight:500;line-height:1.5}.coach-why{color:var(--lu-text)}.coach-why-icon{vertical-align:-3px;margin-right:2px;display:inline-block}.coach-streak-icon{vertical-align:-2px;color:var(--lu-green-ink)}.coach-progress{align-items:center;gap:10px;margin:4px 0;display:flex}.coach-bar{flex:auto}.coach-progress-text{font-size:12px;font-weight:var(--lu-fw-black);color:var(--lu-text-2);flex:none}.coach-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.coach-streak{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.coach-streak strong{color:var(--lu-text)}.coach-done{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-yellow-ink)}.coach-compound{border-top:2px solid var(--lu-violet);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:6px;padding-top:10px;display:flex}@supports (color:color-mix(in lab, red, red)){.coach-compound{border-top:2px solid color-mix(in srgb, var(--lu-violet) 20%, var(--lu-border))}}.coach-week{gap:6px;margin:0;padding:0;list-style:none;display:flex}.coach-week li{justify-items:center;gap:2px;display:grid}.coach-week-dot{border-radius:var(--lu-r-xs);background:var(--lu-surface);width:24px;height:24px;box-shadow:inset 0 0 0 2px var(--lu-border);color:var(--lu-loo-ink);place-items:center;font-size:13px;display:grid}.coach-week li[data-done] .coach-week-dot{background:var(--lu-yellow);box-shadow:0 2px 0 var(--lu-yellow-lip)}.coach-week-day{color:var(--lu-text-2);font-size:11px;font-weight:600}.coach[data-variant=compact] .coach-title{font-size:var(--lu-fs-md)}@media (max-width:480px){.coach.lu-card{grid-template-columns:minmax(0,1fr)}.coach[data-variant=full] .coach-loo{justify-content:center;display:flex}.coach[data-variant=compact].lu-card{grid-template-columns:48px minmax(0,1fr);gap:6px 12px}.coach[data-variant=compact] .coach-body{display:contents}.coach[data-variant=compact] .coach-loo{grid-row:1/span 2;width:48px;overflow:hidden}.coach[data-variant=compact] .coach-loo svg{width:48px;height:auto}.coach[data-variant=compact] .coach-body>*{grid-column:1/-1}.coach[data-variant=compact] .coach-body>.coach-eyebrow,.coach[data-variant=compact] .coach-body>.coach-title{grid-column:2}}.prose-read{font-family:var(--lu-font);font-size:var(--lu-fs-md);color:var(--lu-text);overflow-wrap:break-word;caret-color:var(--lu-violet);line-height:1.7}:where(.prose-read,.prose-flow)>*{margin-top:0;margin-bottom:0}:where(.prose-read)>*+*{margin-top:.9em}:where(.prose-read)>:is(.callout,.code,.table-wrap,.embed,blockquote,img,.quiz,.task,.unit-flash)+*,:where(.prose-read)>*+:is(.callout,.code,.table-wrap,.embed,blockquote,.quiz,.task,.unit-flash){margin-top:1.25em}:where(.prose-read)>.unit-flash+.unit-flash{margin-top:10px}.prose-read :is(h1,h2,h3,h4,h5,h6){font-family:var(--lu-font);color:var(--lu-text);text-wrap:balance;scroll-margin-top:84px}.prose-read h1{font-size:1.75em;font-weight:var(--lu-fw-black);letter-spacing:-.015em;line-height:1.2}.prose-read h2{font-size:1.55em;font-weight:var(--lu-fw-black);letter-spacing:-.01em;line-height:1.25}.prose-read h3{font-size:1.22em;font-weight:var(--lu-fw-black);color:var(--lu-violet-ink);line-height:1.3}.prose-read :is(h4,h5,h6){font-size:1.04em;font-weight:var(--lu-fw-black);line-height:1.4}:where(.prose-read)>:is(h1,h2){margin-top:2.1em}:where(.prose-read)>h3{margin-top:1.7em}:where(.prose-read)>:is(h4,h5,h6){margin-top:1.4em}:where(.prose-read)>:is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}:where(.prose-read)>:is(h1,h2,h3,h4,h5,h6)+*{margin-top:.55em}.prose-read h2:before{content:"";vertical-align:.08em;background:var(--level-color,var(--lu-violet));clip-path:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px));width:.48em;height:.48em;margin-right:.45em;display:inline-block;box-shadow:inset -3px -3px #0003,inset 3px 3px #ffffff4d}.prose-read h3[data-level]:before{content:"";vertical-align:.06em;background:var(--level-color);border-radius:2px;width:.5em;height:.5em;margin-right:.45em;display:inline-block}.prose-flow :is(h1,h2,h3,h4,h5,h6){font-size:1.08em;font-weight:var(--lu-fw-black);color:var(--lu-text);margin-top:.9em;line-height:1.35}.prose-flow :is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.prose-flow h2:before{content:none}[data-level=junior]{--level-color:var(--lu-green)}[data-level=middle]{--level-color:var(--lu-yellow)}[data-level=senior]{--level-color:var(--lu-orange)}[data-level=techlead]{--level-color:var(--lu-purple)}.prose-read a,.prose-flow a,.prose-read .wikilink,.ui-link{color:var(--lu-violet-ink);text-decoration:underline;-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);text-decoration-color:var(--lu-violet);font-weight:600}@supports (color:color-mix(in lab, red, red)){.prose-read a,.prose-flow a,.prose-read .wikilink,.ui-link{-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--lu-violet) 40%, transparent)}}.prose-read a,.prose-flow a,.prose-read .wikilink,.ui-link{text-underline-offset:3px;transition:text-decoration-color var(--lu-dur-2), background-color var(--lu-dur-2);border-radius:3px;text-decoration-thickness:2px}.prose-read a:hover,.prose-flow a:hover,.prose-read .wikilink:hover,.ui-link:hover{-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);-webkit-text-decoration-color:var(--lu-violet);text-decoration-color:var(--lu-violet);background:var(--lu-violet-soft)}.prose-read .wikilink-broken,.wikilink-broken{color:var(--lu-text-3);cursor:help;text-decoration:line-through}.prose-read .wikilink-outside:after{content:"↗";color:var(--lu-text-3);margin-left:2px;font-size:.8em}.link-blocked,.img-blocked{color:var(--lu-text-3)}.prose-read strong,.prose-flow strong{font-weight:var(--lu-fw-bold);color:var(--lu-text)}.prose-read mark,.prose-flow mark{background:var(--lu-yellow-soft);color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:.05em .25em}.prose-read :not(pre)>code,.prose-flow :not(pre)>code{font-family:var(--lu-font-mono);color:var(--inline-code);background:var(--inline-code-bg);box-shadow:inset 0 0 0 1px var(--lu-violet);border-radius:6px;padding:.12em .4em;font-size:.86em;font-weight:500;line-height:normal}@supports (color:color-mix(in lab, red, red)){.prose-read :not(pre)>code,.prose-flow :not(pre)>code{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lu-violet) 16%, transparent)}}.prose-read :not(pre)>code,.prose-flow :not(pre)>code{overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}.prose-read a>code,.prose-flow a>code{color:inherit}.prose-read .tag{color:var(--lu-violet-ink);font-size:.86em;font-weight:600}.prose-read ul,.prose-read ol,.prose-flow ul,.prose-flow ol{padding-left:1.5em}.prose-read ul,.prose-flow ul{list-style:square}.prose-read ol,.prose-flow ol{list-style:decimal}.prose-read li,.prose-flow li{padding-left:.25em}.prose-read li+li{margin-top:.35em}.prose-flow li+li{margin-top:.2em}.prose-read :is(ul,ol) :is(ul,ol),.prose-read li>p+*,.prose-flow :is(ul,ol) :is(ul,ol){margin-top:.35em}.prose-read li::marker{color:var(--lu-violet);font-variant-numeric:tabular-nums}.prose-flow li::marker{color:var(--lu-violet);font-variant-numeric:tabular-nums}.prose-read ol>li::marker{color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.prose-flow ol>li::marker{color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.prose-read ul ul>li::marker{color:var(--lu-mint)}.prose-flow ul ul>li::marker{color:var(--lu-mint)}.prose-read li.task-list-item,.prose-flow li.task-list-item{margin-left:-1.4em;list-style:none}.prose-read input[type=checkbox],.prose-flow input[type=checkbox]{accent-color:var(--lu-violet);width:16px;height:16px;margin-right:8px;transform:translateY(2px)}.prose-read hr,.prose-flow hr{background-image:linear-gradient(90deg, var(--lu-border-strong) 4px, transparent 4px);background-position:50%;background-repeat:repeat-x;background-size:12px 4px;border:0;height:4px;margin:2.2em 0}.prose-flow hr{margin:1em 0}.prose-read blockquote,.prose-flow blockquote{color:var(--lu-text-2);padding:2px 0 2px 20px;font-weight:500;position:relative}.prose-read blockquote:before,.prose-flow blockquote:before{content:"";background:repeating-linear-gradient(180deg, var(--lu-violet) 0 8px, var(--lu-violet) 8px 12px);border-radius:1px;width:4px;position:absolute;top:4px;bottom:4px;left:0}@supports (color:color-mix(in lab, red, red)){.prose-read blockquote:before,.prose-flow blockquote:before{background:repeating-linear-gradient(180deg, var(--lu-violet) 0 8px, color-mix(in srgb, var(--lu-violet) 55%, transparent) 8px 12px)}}.prose-read blockquote>*+*,.prose-flow blockquote>*+*{margin-top:.6em}.prose-read img,.prose-flow img{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);max-width:100%;height:auto;box-shadow:0 var(--lu-lip) 0 var(--lu-border)}.prose-read>img,.prose-read p>img:only-child{margin-inline:auto;margin-bottom:var(--lu-lip);display:block}.table-wrap{margin-bottom:var(--lu-lip-sm);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);scrollbar-width:thin;overflow-x:auto}.prose-read table,.prose-flow table{border-collapse:collapse;min-width:100%;font-size:15px;line-height:1.55}.prose-flow table{font-size:14px}.prose-read th,.prose-read td,.prose-flow th,.prose-flow td{border:0;border-bottom:2px solid var(--lu-border);vertical-align:top;text-align:left;min-width:96px;padding:10px 14px}.prose-read :is(th,td)+:is(th,td),.prose-flow :is(th,td)+:is(th,td){border-left:2px solid var(--lu-border)}.prose-read tbody tr:last-child>*,.prose-flow tbody tr:last-child>*{border-bottom:0}.prose-read th,.prose-flow th{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:var(--lu-fw-black);white-space:nowrap}.prose-read tbody tr:nth-child(2n)>td,.prose-flow tbody tr:nth-child(2n)>td{background:var(--lu-surface-2)}.prose-read .embed,.prose-flow .embed{border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r-lg);background:var(--lu-surface-2);padding:12px 16px 14px}.prose-read .embed-head,.prose-flow .embed-head{margin-bottom:8px;font-size:13px}.embed-body>*+*{margin-top:.8em}.code{--code-pad:16px;margin-bottom:var(--lu-lip);border:2px solid var(--code-border);border-radius:var(--lu-r);background:var(--code-bg);box-shadow:0 var(--lu-lip) 0 var(--code-border);color:var(--code-foreground);contain:inline-size;position:relative;overflow:hidden}.code-head{border-bottom:2px solid var(--code-border);min-height:38px;font:600 12px/1.2 var(--lu-font-mono);color:#ece8ff9e;background:#ffffff08;align-items:center;gap:10px;padding:5px 6px 5px 12px;display:flex}.code-head:before{content:"";background:var(--lu-red);width:6px;height:6px;box-shadow:10px 0 0 var(--lu-yellow), 20px 0 0 var(--lu-mint);flex:none;margin-right:22px}.code-head .code-lang,.code-head .code-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.code-head .code-title{color:var(--code-foreground)}.code-copy{border-radius:var(--lu-r-sm);min-height:28px;color:var(--code-foreground);font:700 12px/1 var(--lu-font);opacity:.8;transition:opacity var(--lu-dur-2), background-color var(--lu-dur-2), border-color var(--lu-dur-2), color var(--lu-dur-2);background:#ffffff0d;border:2px solid #ffffff1f;flex:none;margin-left:auto;padding:0 10px}.code:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{background:#ffffff1a;border-color:#ffffff38}.code-copy:active{transform:translateY(1px)}.code-copy[data-copied]{opacity:1;color:var(--code-token-string);border-color:var(--code-token-string)}@supports (color:color-mix(in lab, red, red)){.code-copy[data-copied]{border-color:color-mix(in srgb, var(--code-token-string) 55%, transparent)}}.code pre{padding:14px var(--code-pad) 16px;font-family:var(--lu-font-mono);color:var(--code-foreground);tab-size:2;scrollbar-width:thin;scrollbar-color:#ffffff38 transparent;margin:0;font-size:.84em;line-height:1.65;overflow-x:auto;background:0 0!important}.code ::selection{background:#8c69ff73}.code[data-lines]{--code-pad:10px}.code pre code{counter-reset:line;min-width:max-content;font-family:inherit;display:block}.code pre .line{min-width:100%;display:inline-block}.code[data-lines] pre .line:before{counter-increment:line;content:counter(line);text-align:right;color:#ece8ff52;-webkit-user-select:none;user-select:none;width:2em;margin-right:1.2em;display:inline-block}.code pre .line.highlighted,.code pre .line.diff{margin:0 calc(-1 * var(--code-pad));padding:0 var(--code-pad);min-width:calc(100% + 2 * var(--code-pad))}.code pre .line.highlighted{background:var(--code-line);box-shadow:inset 3px 0 0 var(--lu-violet)}.code pre .line.diff.add{box-shadow:inset 3px 0 0 var(--code-token-inserted);background:#5fe09a21}.code pre .line.diff.remove{box-shadow:inset 3px 0 0 var(--code-token-deleted);background:#ff8a9921}.callout{--c:var(--lu-violet);--c-soft:var(--lu-violet-soft);--c-ink:var(--lu-violet-ink);--c-on:var(--lu-on-color);--c-line:var(--c)}@supports (color:color-mix(in lab, red, red)){.callout{--c-line:color-mix(in srgb, var(--c) 32%, var(--lu-border))}}.callout{margin-bottom:var(--lu-lip-sm);border:2px solid var(--c-line);border-left:6px solid var(--c);border-radius:var(--lu-r-lg);background:var(--c-soft);box-shadow:0 var(--lu-lip-sm) 0 var(--c-line);color:var(--lu-text);gap:12px;padding:14px 16px 14px 12px;font-size:16px;line-height:1.65;display:flex}.callout[data-tone=quiet]{--c:var(--lu-border-strong);--c-soft:var(--lu-surface-2);--c-ink:var(--lu-text-2);--c-on:var(--lu-text);--c-line:var(--lu-border)}.callout[data-tone=neutral]{--c:var(--lu-mint);--c-soft:var(--lu-mint-soft);--c-ink:var(--lu-mint-ink);--c-on:var(--lu-on-mint)}.callout[data-tone=accent]{--c:var(--lu-violet);--c-soft:var(--lu-violet-soft);--c-ink:var(--lu-violet-ink)}.callout[data-tone=info]{--c:var(--lu-blue);--c-soft:var(--lu-blue-soft);--c-ink:var(--lu-blue-ink)}.callout[data-tone=success]{--c:var(--lu-green);--c-soft:var(--lu-green-soft);--c-ink:var(--lu-green-ink)}.callout[data-type=tip]{--c:var(--lu-yellow);--c-soft:var(--lu-yellow-soft);--c-ink:var(--lu-yellow-ink)}@supports (color:color-mix(in lab, red, red)){.callout[data-type=tip]{--c-ink:color-mix(in srgb, var(--lu-yellow-ink) 55%, var(--lu-text))}}.callout[data-type=tip]{--c-on:var(--lu-loo-ink)}.callout[data-tone=warning]{--c:var(--lu-orange);--c-soft:var(--lu-orange-soft);--c-ink:var(--lu-orange-ink)}.callout[data-tone=danger]{--c:var(--lu-red);--c-soft:var(--lu-red-soft);--c-ink:var(--lu-red-ink)}.callout-icon{background:var(--c);width:28px;height:28px;color:var(--c-on);clip-path:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px));flex:none;place-items:center;display:grid}.callout[data-tone=quiet] .callout-icon{background:var(--lu-surface-3);color:var(--lu-violet-ink)}.callout-content{flex:1;min-width:0}.callout-title{min-height:28px;font-weight:var(--lu-fw-black);color:var(--c-ink);align-items:center;line-height:1.35;display:flex}@supports (color:color-mix(in lab, red, red)){.callout-title{color:color-mix(in srgb, var(--c-ink) 78%, var(--lu-text))}}.callout-body{margin-top:4px}.callout-body>*+*{margin-top:.7em}.callout-body :is(.code,.table-wrap){margin-top:.9em}.callout .table-wrap,.callout .prose-read img{background:var(--lu-surface)}details.callout{padding:10px 14px 10px 10px;display:block}details.callout>summary{cursor:pointer;border-radius:var(--lu-r-sm);align-items:center;gap:10px;list-style:none;display:flex}details.callout>summary::-webkit-details-marker{display:none}details.callout>summary .toggle-arrow{color:var(--c-ink)}details.callout>.callout-body{margin-top:8px;padding:2px 0 4px 32px}.toggle-arrow{width:22px;height:22px;color:var(--lu-text-2);transition:background-color var(--lu-dur-2);border-radius:6px;flex:0 0 22px;place-items:center;display:grid}.toggle-arrow:before{content:"";transition:transform var(--lu-dur-2) var(--lu-ease-bounce);border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid}summary:hover .toggle-arrow,.toggle-arrow:hover{background:var(--lu-hover)}details[open]>summary .toggle-arrow:before{transform:rotate(90deg)}.page.reader{max-width:816px;padding:12px 48px 0}.page.reader .prose-read{margin-top:32px}.reader-hero{margin-top:16px;margin-bottom:var(--lu-lip);border:2px solid var(--lu-violet);align-items:flex-end;gap:16px;padding:20px 20px 18px 22px;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.reader-hero{border:2px solid color-mix(in srgb, var(--lu-violet) 22%, var(--lu-border))}}.reader-hero{border-radius:var(--lu-r-xl);background-color:var(--lu-surface);background-image:radial-gradient(var(--lu-violet) 1.2px, transparent 1.6px)}@supports (color:color-mix(in lab, red, red)){.reader-hero{background-image:radial-gradient(color-mix(in srgb, var(--lu-violet) 16%, transparent) 1.2px, transparent 1.6px)}}.reader-hero{box-shadow:0 var(--lu-lip) 0 var(--lu-violet);background-position:right -4px top -4px;background-size:14px 14px}@supports (color:color-mix(in lab, red, red)){.reader-hero{box-shadow:0 var(--lu-lip) 0 color-mix(in srgb, var(--lu-violet) 22%, var(--lu-border))}}.reader-hero-text{flex:1;gap:10px;min-width:0;display:grid}.reader-kicker{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.reader-guide{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);min-height:28px;color:var(--lu-violet-ink);transition:background-color var(--lu-dur-2);align-items:center;gap:6px;padding:0 10px 0 8px;display:inline-flex}.reader-guide:hover{background:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.reader-guide:hover{background:color-mix(in srgb, var(--lu-violet) 20%, var(--lu-violet-soft))}}.reader-part{align-items:center;gap:8px;min-width:0;display:inline-flex}.reader-part:before{content:"";background:var(--lu-border-strong);width:4px;height:4px}.page-title.reader-title{font-family:var(--lu-font);font-size:clamp(28px,4.6vw,38px);font-weight:var(--lu-fw-black);letter-spacing:-.02em;color:var(--lu-text);text-wrap:balance;margin:0;padding:0;line-height:1.15}.reader-num{color:var(--lu-violet);font-variant-numeric:tabular-nums;margin-right:.35em;display:inline-block}.reader-meta{flex-wrap:wrap;gap:6px;display:flex}.reader-chip:not([data-tone]){--tone:var(--lu-border-strong);--tone-soft:var(--lu-surface-2);--tone-ink:var(--lu-text-2)}.reader-chip{border:2px solid var(--tone);align-items:center;gap:6px;min-height:30px;padding:0 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.reader-chip{border:2px solid color-mix(in srgb, var(--tone) 35%, var(--lu-border))}}.reader-chip{border-radius:var(--lu-r-sm);background:var(--tone-soft);color:var(--tone-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);white-space:nowrap;line-height:1}.reader-hero-loo{flex:none;align-self:flex-end;margin:-8px -4px -6px 0}.reader-hero-loo .loo{width:88px;height:auto}.reader-practice{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:18px;display:flex}.reader-practice-label{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.reader-practice-link{min-height:40px;margin-bottom:var(--lu-lip-sm);border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);color:var(--lu-text);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), border-color var(--lu-dur-2), background-color var(--lu-dur-2);align-items:center;gap:8px;padding:0 14px 0 10px;display:inline-flex}.reader-practice-link>svg{color:var(--tone,var(--lu-violet))}.reader-practice-link:hover{border-color:var(--tone,var(--lu-violet));background:var(--tone-soft,var(--lu-violet-soft))}.reader-practice-link:active{box-shadow:0 1px 0 var(--lu-border);transform:translateY(2px)}.reader-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.reader .chapter-foot{gap:22px;margin-top:56px;display:grid}.reader-end{border:2px solid var(--lu-border);border-radius:var(--lu-r-xl);background:var(--lu-surface);align-items:center;gap:14px;padding:16px 18px;display:flex}.reader-end[data-done]{border-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.reader-end[data-done]{border-color:color-mix(in srgb, var(--lu-green) 45%, var(--lu-border))}}.reader-end[data-done]{background:var(--lu-green-soft)}.reader-end-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);margin:0;line-height:1.3}.reader-end[data-done] .reader-end-title{color:var(--lu-green-ink)}.reader-end-sub{font-size:var(--lu-fs-sm);color:var(--lu-text-2);margin:2px 0 0}.reader-end-sub kbd{margin:0 2px}.reader .pager{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.reader .pager-link{min-width:0;margin-bottom:var(--lu-lip);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), border-color var(--lu-dur-2), background-color var(--lu-dur-2);align-content:start;gap:4px;padding:12px 16px 14px;display:grid}.reader .pager-link:hover{border-color:var(--lu-violet);background:var(--lu-surface-2);box-shadow:0 var(--lu-lip) 0 var(--lu-violet-lip)}.reader .pager-link:active{transform:translateY(calc(var(--lu-lip) - 1px));box-shadow:0 1px 0 var(--lu-border)}.reader .pager-next{text-align:right;justify-items:end}.reader .pager-dir{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);align-items:center;gap:6px;display:inline-flex}.reader .pager-title{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-text);line-height:1.35}.reader .backlinks .section-title{align-items:center;gap:6px;margin-top:0;display:flex}.reader-lead{max-width:60ch;font-size:var(--lu-fs-md);color:var(--lu-text-2);margin:0;line-height:1.55}.reader-progress{align-items:center;gap:12px;max-width:420px;display:flex}.reader-progress-bar{flex:1}.reader-progress-text{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);color:var(--lu-text-2);flex:none}.reader-guide-page .guide-actions{flex-wrap:wrap;gap:10px 12px;margin-top:20px;display:flex}.reader-guide-page .guide-actions .lu-btn{max-width:100%}.reader-guide-page .reader-practice{margin-top:8px}.reader-contents-title.section-title{font-size:var(--lu-fs-lg);margin-top:32px}.reader-guide-page .contents{gap:2px}.reader-guide-page .page-link{border-radius:var(--lu-r-sm);min-height:44px;transition:background-color var(--lu-dur-2);gap:10px;padding:6px 10px}.reader-guide-page .page-link:hover{background:var(--lu-violet-soft)}.reader-guide-page .page-link>svg{color:var(--lu-violet)}.reader-guide-page .page-link-title{border-bottom:0;font-weight:600}.reader-guide-page .page-link:hover .page-link-title{color:var(--lu-violet-ink)}.reader-guide-page .contents-part{margin-top:8px}.reader-guide-page .contents-part>summary{border-radius:var(--lu-r-sm);min-height:44px;font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);gap:8px;padding:6px}.reader-guide-page .contents-part>summary:hover{background:var(--lu-hover)}.reader-guide-page .contents-part-count{background:var(--lu-surface-3);min-width:24px;color:var(--lu-text-2);font-size:12px;font-weight:var(--lu-fw-bold);text-align:center;border-radius:6px;padding:2px 6px}.reader-guide-page .contents-part-body{border-left:2px dashed var(--lu-border);margin-left:16px;padding-left:10px}.reader-guide-page .guide-intro{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);margin-top:32px;padding:12px 14px}.reader-guide-page .guide-intro>summary{font-weight:var(--lu-fw-black);gap:8px}.reader-guide-page .guide-intro>.prose-read{margin-top:12px;padding-left:0}.read-progress{z-index:calc(var(--lu-z-nav) + 1);pointer-events:none;height:4px;display:block;position:fixed;inset:0 0 auto;-webkit-mask:repeating-linear-gradient(90deg,#000 0 10px,#0000 10px 12px);mask:repeating-linear-gradient(90deg,#000 0 10px,#0000 10px 12px)}.read-progress>span{background:var(--lu-violet);transform-origin:0;height:100%;transition:transform var(--lu-dur-3) var(--lu-ease);display:block}.toc.reader-toc .toc-lines{gap:9px}.toc.reader-toc .toc-line{background:var(--lu-border-strong);width:12px;height:4px;transition:width var(--lu-dur-2) var(--lu-ease), background-color var(--lu-dur-2);border-radius:0}.toc.reader-toc .toc-line[data-depth="3"]{width:6px}.toc.reader-toc .toc-line[data-active]{background:var(--lu-violet);width:18px}.toc.reader-toc .toc-panel{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);width:280px;box-shadow:0 var(--lu-lip) 0 var(--lu-border), 0 12px 32px var(--lightningcss-light,#2a21451f)var(--lightningcss-dark,#00000073);padding:8px}.toc.reader-toc .toc-item{border-radius:var(--lu-r-sm);color:var(--lu-text-2);padding:6px 10px;font-size:14px;font-weight:600}.toc.reader-toc .toc-item[data-depth="3"]{padding-left:24px;font-weight:500}.toc.reader-toc .toc-item:hover{background:var(--lu-hover);color:var(--lu-text)}.toc.reader-toc .toc-item[aria-current]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}@media (max-width:899px){.page.reader{padding:4px 18px 0}.page.reader .prose-read{margin-top:26px}.reader-hero{padding:16px 16px 14px}.reader-hero-loo .loo{width:64px}.reader .pager{grid-template-columns:minmax(0,1fr)}.reader .pager-next{text-align:left;justify-items:start}}@media (max-width:480px){.page.reader{padding-inline:14px}.reader-hero{border-radius:var(--lu-r-lg);margin-top:8px}.reader-hero-loo{margin:0;position:absolute;top:10px;right:10px}.reader-hero-loo .loo{width:44px}.reader-kicker{padding-right:52px}.prose-read{font-size:16.5px}.callout{gap:10px;padding:12px 12px 12px 10px}details.callout>.callout-body{padding-left:0}.table-wrap{margin-inline:-2px}}.ui-button{min-height:40px;margin-bottom:var(--lu-lip-sm);font:var(--lu-fw-bold) var(--lu-fs-sm) / 1.1 var(--lu-font);border-radius:var(--lu-r-sm);background:var(--lu-violet);color:var(--lu-on-color);box-shadow:0 var(--lu-lip-sm) 0 var(--lu-violet-lip);white-space:nowrap;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.ui-button:hover{background:var(--lu-violet-hover)}.ui-button:active{transform:translateY(var(--lu-lip-sm));box-shadow:0 0 0 var(--lu-violet-lip)}.ui-button[data-variant=ghost]{background:var(--lu-surface);color:var(--lu-violet-ink);box-shadow:inset 0 0 0 2px var(--lu-border), 0 var(--lu-lip-sm) 0 var(--lu-border)}.ui-button[data-variant=ghost]:hover{background:var(--lu-surface-2)}.ui-button[data-variant=ghost]:active{box-shadow:inset 0 0 0 2px var(--lu-border), 0 0 0 var(--lu-border)}.ui-button.danger-button{box-shadow:0 var(--lu-lip-sm) 0 var(--lu-red-lip)}.ui-button:disabled{opacity:.45;pointer-events:none}.ui-button kbd{color:inherit;box-shadow:none;opacity:.6;background:0 0;border-color:currentColor}.eyebrow{font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);line-height:1.2}.section-title{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-text);border-bottom:2px solid var(--lu-border);margin:36px 0 8px;padding:0 2px 8px}.section-title svg{color:var(--lu-violet)}.rule-title:after{display:none}.num-margin{color:var(--lu-text-3)}.tabular{font-variant-numeric:tabular-nums}.tag-pill{--tp-bg:var(--lu-surface-3);--tp-ink:var(--lu-text-2);height:22px;font-family:var(--lu-font);font-size:12px;font-weight:var(--lu-fw-bold);white-space:nowrap;color:var(--tp-ink);background:var(--tp-bg);border-radius:6px;align-items:center;padding:0 8px;line-height:1.2;display:inline-flex}.tag-pill[data-color=gray]{--tp-bg:var(--lu-surface-3);--tp-ink:var(--lu-text-2)}.tag-pill[data-color=brown]{--tp-bg:var(--brown-bg);--tp-ink:var(--brown)}.tag-pill[data-color=orange]{--tp-bg:var(--lu-orange-soft);--tp-ink:var(--lu-orange-ink)}.tag-pill[data-color=yellow]{--tp-bg:var(--lu-yellow-soft);--tp-ink:var(--lu-yellow-ink)}.tag-pill[data-color=green]{--tp-bg:var(--lu-green-soft);--tp-ink:var(--lu-green-ink)}.tag-pill[data-color=blue]{--tp-bg:var(--lu-blue-soft);--tp-ink:var(--lu-blue-ink)}.tag-pill[data-color=purple]{--tp-bg:var(--lu-violet-soft);--tp-ink:var(--lu-violet-ink)}.tag-pill[data-color=pink]{--tp-bg:var(--lu-pink-soft);--tp-ink:var(--lu-pink-ink)}.tag-pill[data-color=red]{--tp-bg:var(--lu-red-soft);--tp-ink:var(--lu-red-ink)}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start-1{inset-inline-start:calc(var(--spacing) * 1)}.end-\[\[focus\]\]{inset-inline-end:[focus]}.end-\[\[weight\]\]{inset-inline-end:[weight]}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.\!hidden{display:none!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.table\!{display:table!important}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-304{height:calc(var(--spacing) * 304)}.min-h-screen{min-height:100vh}.w-2\/3{width:66.6667%}.w-48{width:calc(var(--spacing) * 48)}.w-full{width:100%}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-gray-200{background-color:var(--color-gray-200)}.p-24{padding:calc(var(--spacing) * 24)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@property --loo-f{syntax:"<integer>";inherits:true;initial-value:0}@media (prefers-reduced-motion:reduce){.loo,.loo *,.lu-progress-fill,.lu-spin,.lu-sheet::backdrop,.lu-sheet-panel,.lu-pop,.loo-bubble{animation:none!important}.lu-tip,.lu-switch-thumb,.lu-progress-fill{transition:none}.lu-spin{opacity:.6;border-right-color:currentColor}}@keyframes page-in{0%{opacity:0}to{opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes quiz-bounce{40%{transform:scale(1.03)}}@keyframes test-pop{0%{transform:scale(.97)}60%{transform:scale(1.015)}to{transform:scale(1)}}.feed-shell{z-index:60;background-color:var(--lu-bg-sunk);background-image:radial-gradient(var(--lu-dot) 1px, transparent 1.4px);font-family:var(--lu-font);background-size:24px 24px;justify-content:center;display:flex;position:fixed;inset:0}.feed{scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;width:min(560px,100%);height:100dvh;overflow-y:auto}.feed::-webkit-scrollbar{display:none}.feed-slide{scroll-snap-align:start;scroll-snap-stop:always;height:100dvh;padding:calc(64px + env(safe-area-inset-top)) 14px calc(22px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.feed-hud{z-index:2;width:min(560px,100%);padding:calc(10px + env(safe-area-inset-top)) 14px 10px;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.feed-hud>*{pointer-events:auto}.feed-hud-close.lu-ibtn{margin-bottom:var(--b-lip-h)}.feed-hud-count{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:40px;box-shadow:0 var(--lu-lip-sm) 0 var(--lu-border);color:var(--lu-text);font:800 var(--lu-fs-sm) / 1 var(--lu-font-pixel);align-items:center;gap:8px;padding:0 12px 0 10px;display:inline-flex}.feed-hud-track{background:var(--lu-surface-3);border-radius:2px;width:72px;height:10px;position:relative;overflow:hidden;-webkit-mask:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 9px);mask:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 9px)}.feed-hud-track>span{background:var(--lu-yellow);transition:width var(--lu-dur-4) var(--lu-ease-bounce);position:absolute;inset:0 auto 0 0}.reel,.feed-card{border:2px solid var(--lu-border);border-radius:var(--lu-r-xl);width:100%;max-height:100%;box-shadow:0 6px 0 var(--lu-border);padding:22px 20px;overflow-y:auto}.reel{--reel-tone:hsl(var(--reel-hue,258) 80% 62%);background:linear-gradient(var(--reel-tone), var(--reel-tone)) top / 100% 8px no-repeat, var(--reel-tone);gap:12px;min-height:min(640px,100%);padding-top:28px;display:flex}@supports (color:color-mix(in lab, red, red)){.reel{background:linear-gradient(var(--reel-tone), var(--reel-tone)) top / 100% 8px no-repeat, color-mix(in srgb, var(--reel-tone) 7%, var(--lu-surface))}}.reel-main{flex-direction:column;flex:1;justify-content:center;gap:12px;min-width:0;display:flex}.reel-chip{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);max-width:100%;min-height:28px;color:var(--lu-text-2);white-space:nowrap;text-overflow:ellipsis;align-self:flex-start;align-items:center;gap:4px;padding:0 10px 0 8px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.reel-tags{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.reel-tags .reel-chip{min-width:0}.reel-ai{flex:none}.reel-ai-link{border-radius:var(--lu-r-sm);display:inline-flex}.reel-ai.lu-pill[data-solid]{--tone:var(--lu-violet)}.reel-ai-link:hover .reel-ai{filter:brightness(1.08)}.reel-hidden .reel-main{text-align:center;align-items:center}.reel-emoji{margin-top:6px;font-size:84px;line-height:1}.reel-title{font-size:clamp(26px,7.4vw,34px);line-height:1.15;font-weight:var(--lu-fw-black);text-wrap:balance;margin:0}.reel-body{font-family:var(--lu-font);font-size:var(--lu-fs-md);color:var(--lu-text);line-height:1.6}.reel-body pre{font-size:13px;border-radius:var(--lu-r)!important}.reel-rail{flex-direction:column;flex:none;justify-content:flex-end;gap:10px;display:flex}.reel-action{flex-direction:column;align-items:center;gap:2px;display:flex}.reel-btn.lu-ibtn{margin-bottom:var(--b-lip-h)}.reel-btn.lu-ibtn[data-on]{--b:var(--lu-red-soft);--b-lip:var(--lu-red);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce)}.reel-action-label{color:var(--lu-text-2);font-size:12px;font-weight:600}.feed-card{background:var(--lu-surface);flex-direction:column;gap:16px;display:flex}.feed-card-question{font-size:clamp(22px,6vw,26px);font-weight:var(--lu-fw-black);text-wrap:balance;line-height:1.3}.feed-card-answer{border:2px solid var(--lu-blue);border-radius:var(--lu-r-lg);background:var(--lu-blue-soft);font-family:var(--lu-font);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);padding:14px 16px;font-size:16px;line-height:1.55}.feed-card .lu-btn{margin-bottom:var(--b-lip-h)}.feed-quiz .quiz[data-variant=inline]{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.feed-quiz .quiz-prompt{font-size:clamp(20px,5.6vw,24px);font-weight:var(--lu-fw-black)}.feed-end{text-align:center;align-items:center}.feed-end-text{color:var(--lu-text-2);margin:0;font-weight:500;line-height:1.55}.feed-end-home{min-height:var(--lu-target);color:var(--lu-violet-ink);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);align-items:center;text-decoration:none;display:inline-flex}.feed-end-home:hover{text-underline-offset:3px;text-decoration:underline}.page.home{font-family:var(--lu-font)}.home-hello{margin-top:24px}.home-hello-loo{align-items:center}.home-hello-loo .loo-bubble{padding:12px 18px}.home-hello-title{font-size:clamp(22px,5.4vw,30px);font-weight:var(--lu-fw-black);margin:0;line-height:1.2}.home-hello-lead{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:4px 0 0;font-weight:700}.home-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;margin-top:20px;display:grid}.home-main{gap:18px;min-width:0;display:grid}.home-side{gap:12px;display:grid;position:sticky;top:64px}.home-continue{isolation:isolate;border-radius:var(--lu-r-xl);background:var(--lu-violet);box-shadow:0 6px 0 var(--lu-violet-lip);color:var(--lu-on-color);-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);align-items:center;gap:14px;margin-bottom:6px;padding:18px;text-decoration:none;display:flex;position:relative;overflow:hidden}.home-continue:before{content:"";z-index:-1;pointer-events:none;background:#ffffff47;width:6px;height:6px;position:absolute;top:14px;right:18px;box-shadow:-18px 12px #ffffff29,-6px 26px 0 -1px #fff3,-42px -4px 0 -1px #ffffff24,12px 40px #ffffff1a}.home-continue:hover{background:var(--lu-violet-hover)}.home-continue:active{box-shadow:0 0 0 var(--lu-violet-lip);transform:translateY(6px)}.home-continue:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.home-continue-ring{flex:none}.home-continue-ring .lu-ring-track{stroke:#ffffff3d}.home-continue-ring .lu-ring-center{background:var(--lu-surface);border-radius:50%;width:54px;height:54px}.home-continue-text{flex:1;gap:2px;min-width:0;display:grid}.home-continue-eyebrow{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);opacity:.85}.home-continue-title{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);line-height:1.25}.home-continue-sub{font-size:var(--lu-fs-xs);opacity:.88;font-weight:600}.home-continue-go{--s:3px;isolation:isolate;min-height:44px;color:var(--lu-violet-ink);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);transition:transform var(--lu-dur-1) var(--lu-ease);flex:none;align-items:center;gap:6px;margin-bottom:4px;padding:0 18px;display:inline-flex;position:relative}.home-continue-go:before,.home-continue-go:after{content:"";z-index:-1;clip-path:polygon(0 calc(2 * var(--s)), var(--s) calc(2 * var(--s)), var(--s) var(--s), calc(2 * var(--s)) var(--s), calc(2 * var(--s)) 0, calc(100% - 2 * var(--s)) 0, calc(100% - 2 * var(--s)) var(--s), calc(100% - var(--s)) var(--s), calc(100% - var(--s)) calc(2 * var(--s)), 100% calc(2 * var(--s)), 100% calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) 100%, calc(2 * var(--s)) 100%, calc(2 * var(--s)) calc(100% - var(--s)), var(--s) calc(100% - var(--s)), var(--s) calc(100% - 2 * var(--s)), 0 calc(100% - 2 * var(--s)));position:absolute}.home-continue-go:before{background:#1e103359;inset:0 0 -4px}.home-continue-go:after{background:var(--lu-on-color);inset:0}.home-continue:active .home-continue-go{transform:translateY(2px)}.mission.lu-card{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.mission[data-complete]{background:var(--lu-yellow-soft)}.mission-head{align-items:center;gap:14px;display:flex}.mission-ring-pct{font:800 var(--lu-fs-md) / 1 var(--lu-font-pixel)}.mission-head-text{gap:4px;min-width:0;display:grid}.mission-tags{flex-wrap:wrap;gap:4px;display:flex}.mission-title{font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);margin:0;line-height:1.2}.mission-streak{font-size:var(--lu-fs-xs);color:var(--lu-text-2);align-items:center;gap:2px;font-weight:700;display:inline-flex}.mission-streak .lu-stat{min-height:0;padding-left:0}.mission-steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.mission-step-link{border-radius:var(--lu-r);min-height:60px;color:inherit;transition:background-color var(--lu-dur-2);border:2px solid #0000;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.mission-step-link:hover{background:var(--lu-hover)}.mission-step[data-next] .mission-step-link{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.mission-step[data-next] .mission-step-link{border-color:color-mix(in srgb, var(--lu-violet) 45%, transparent)}}.mission-step[data-next] .mission-step-link{background:var(--lu-violet-soft);box-shadow:0 3px 0 var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.mission-step[data-next] .mission-step-link{box-shadow:0 3px 0 color-mix(in srgb, var(--lu-violet) 45%, transparent)}}.mission-step[data-next] .mission-step-title{color:var(--lu-violet-ink)}.mission-step-link:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.mission-step-icon{border-radius:var(--lu-r);background:var(--tone);width:40px;height:40px;box-shadow:0 3px 0 var(--tone-lip);color:var(--lu-on-color);flex:none;place-items:center;margin-bottom:3px;font-size:22px;display:grid}.mission-step-body{flex:1;gap:3px;min-width:0;display:grid}.mission-step-title{font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-sm);line-height:1.3}.mission-step[data-complete] .mission-step-title{color:var(--lu-text-2);text-decoration:line-through;-webkit-text-decoration-color:var(--lu-text-3);-webkit-text-decoration-color:var(--lu-text-3);-webkit-text-decoration-color:var(--lu-text-3);text-decoration-color:var(--lu-text-3)}.mission-step-why{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:500;line-height:1.4}.mission-step-bar{margin-top:4px}.mission-step-count{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);color:var(--lu-text-2);white-space:nowrap}.mission-step-unit{font-weight:700}.mission .lu-btn{margin-bottom:var(--b-lip-h);min-width:0}.mission-budget{font-size:var(--lu-fs-xs)}.mission-budget>summary{cursor:pointer;min-height:32px;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);align-items:center;gap:6px;display:inline-flex}.budget-chips{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.budget-chip{border:2px solid var(--lu-border);border-radius:var(--lu-r);min-height:64px;box-shadow:0 3px 0 var(--lu-border);background:var(--lu-surface);color:var(--lu-text);font:var(--lu-fw-black) var(--lu-fs-sm) var(--lu-font);cursor:pointer;transition:transform var(--lu-dur-1), box-shadow var(--lu-dur-1);flex-direction:column;align-items:center;gap:1px;margin-bottom:3px;padding:8px 4px;display:flex}.budget-chip:hover:not(:disabled){background:var(--lu-surface-2)}.budget-chip:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.budget-chip:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.budget-chip[data-active]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 3px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.budget-unit{color:var(--lu-text-2);font-size:11px;font-weight:700}.budget-hint{color:var(--lu-text-2);margin:8px 0 0;font-weight:600}.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.home-tile{gap:2px;display:grid}.home-tile-icon{border-radius:var(--lu-r);background:var(--tone);width:44px;height:44px;box-shadow:0 3px 0 var(--tone-lip);color:var(--lu-on-color);place-items:center;margin-bottom:9px;display:grid}.home-tile-title{font-weight:var(--lu-fw-black);font-size:var(--lu-fs-sm)}.home-tile-sub{color:var(--lu-text-2);font-size:12px;font-weight:700}.home-reading{align-items:center;gap:12px;display:flex}.home-reading-icon{border-radius:var(--lu-r);background:var(--lu-violet-soft);width:40px;height:40px;color:var(--lu-violet-ink);flex:none;place-items:center;font-size:22px;display:grid}.home-reading-text{min-width:0;display:grid}.home-reading-label{font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink)}.home-reading-title{font-weight:var(--lu-fw-bold);line-height:1.3}.home-reading-meta{color:var(--lu-text-2);font-size:12px;font-weight:600}.home-guides-title{margin-top:32px}.home-guides{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:0 0 32px;padding:0;list-style:none;display:grid}.guide-card{grid-template-columns:minmax(0,1fr);align-content:start;gap:10px;height:100%;display:grid}.guide-card-head{align-items:center;gap:12px;display:flex}.guide-card-icon{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface-2);flex:none;place-items:center;width:44px;height:44px;display:grid}.guide-card-text{gap:2px;min-width:0;display:grid}.guide-card-title{font-weight:var(--lu-fw-black);line-height:1.25}.guide-card-meta{color:var(--lu-text-2);font-size:12px;font-weight:700}.guide-card.lu-card[data-tone=violet]{background:var(--lu-violet-soft)}.guide-card.lu-card[data-tone=violet] .guide-card-icon{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.guide-card.lu-card[data-tone=violet] .guide-card-icon{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.guide-card.lu-card[data-tone=violet] .guide-card-icon{background:var(--lu-surface)}.guide-card-pills{flex-wrap:wrap;gap:4px;display:flex}.home-courses .guide-card.lu-card{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.home-courses .guide-card-head{align-items:flex-start}.home-courses .guide-card-meta{font-size:13px;font-weight:600;line-height:1.4}@media (max-width:899px){.home-grid{grid-template-columns:minmax(0,1fr)}.home-side{position:static}.home-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.home-continue,.home-continue-go{transition:none}}@media (max-width:560px){.home-hello{margin-top:12px}.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.home-continue{flex-wrap:wrap;gap:12px;padding:14px}.home-continue-text{flex:1 1 0}.home-continue-go{flex:1 0 100%;justify-content:center;padding:0 14px}.mission.lu-card{padding:16px}.mission-step-link{gap:10px;padding:10px 8px}.mission-step-unit{display:none}}.home-hello-icon,.home-continue-title .lu-icon{vertical-align:-4px}.path-page{font-family:var(--lu-font)}.path-track-badge{background:var(--lu-violet-soft);border:2px solid var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.path-track-badge{border:2px solid color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.path-track-badge{box-shadow:0 4px 0 var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.path-track-badge{box-shadow:0 4px 0 color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.path-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 12px;display:grid}.path-summary-item.lu-card{gap:4px;display:grid}.path-summary-value{font:800 var(--lu-fs-xl) / 1 var(--lu-font-pixel);color:var(--tone-ink,var(--lu-text));align-items:center;gap:6px;display:inline-flex}.path-summary-value small{font-size:var(--lu-fs-sm);color:var(--lu-text-3)}.path-summary-label{color:var(--lu-text-2);font-size:12px;font-weight:600}.path-guides{margin-bottom:8px}.path{max-width:540px;font-family:var(--lu-font);margin:0 auto}.path-stage{--banner-ink:var(--lu-loo-ink);margin-top:28px}.path-stage[data-tone=violet]{--banner-ink:var(--lu-on-color)}.path-stage[data-tone=mint]{--banner-ink:var(--lu-on-mint)}.path-banner{--s:4px;z-index:3;isolation:isolate;color:var(--banner-ink);align-items:center;gap:12px;margin-bottom:5px;padding:14px 16px;display:flex;position:sticky;top:53px}.path-banner:before,.path-banner:after,.lesson-bubble:before,.lesson-bubble:after{content:"";z-index:-1;pointer-events:none;position:absolute}.path-banner:before,.path-banner:after{clip-path:polygon(0 calc(2 * var(--s)), var(--s) calc(2 * var(--s)), var(--s) var(--s), calc(2 * var(--s)) var(--s), calc(2 * var(--s)) 0, calc(100% - 2 * var(--s)) 0, calc(100% - 2 * var(--s)) var(--s), calc(100% - var(--s)) var(--s), calc(100% - var(--s)) calc(2 * var(--s)), 100% calc(2 * var(--s)), 100% calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - 2 * var(--s)), calc(100% - var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) calc(100% - var(--s)), calc(100% - 2 * var(--s)) 100%, calc(2 * var(--s)) 100%, calc(2 * var(--s)) calc(100% - var(--s)), var(--s) calc(100% - var(--s)), var(--s) calc(100% - 2 * var(--s)), 0 calc(100% - 2 * var(--s)))}.path-banner:before{background:var(--tone-lip);inset:0 0 -5px}.path-banner:after{background:var(--tone);inset:0}.path-banner-emoji{border-radius:var(--lu-r);background:#ffffff42;flex:none;place-items:center;width:48px;height:48px;font-size:28px;display:grid}.path-banner-text{flex:1;min-width:0}.path-banner-eyebrow{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);opacity:.8;display:block}.path-banner-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);margin:1px 0 8px;line-height:1.2}.path-banner-bar{background:#1e103333;border-radius:2px;height:10px;display:block;overflow:hidden;-webkit-mask:repeating-linear-gradient(90deg,#000 0 8px,#0000 8px 10px);mask:repeating-linear-gradient(90deg,#000 0 8px,#0000 8px 10px)}.path-banner-bar>span{background:var(--lu-on-color);height:100%;transition:width var(--lu-dur-4) var(--lu-ease-bounce);display:block}.path-banner-pct{font:800 var(--lu-fs-lg) / 1 var(--lu-font-pixel)}.skill{margin-top:24px}.skill-head.lu-card{width:100%;font:inherit;text-align:left;align-items:center;gap:12px;display:flex}.skill-head.lu-card[data-tone=violet]{background:var(--lu-violet-soft)}.skill-icon{background:var(--lu-surface-2);border-radius:50%;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.skill[data-state=done] .skill-icon{background:var(--lu-yellow-soft)}.skill[data-state=current] .skill-icon{background:var(--lu-surface)}.skill-text{flex:1;gap:2px;min-width:0;display:grid}.skill-title{font-weight:var(--lu-fw-black);font-size:var(--lu-fs-sm);line-height:1.3}.skill[data-state=current] .skill-title{color:var(--lu-violet-ink)}.skill-meta{color:var(--lu-text-2);font-size:12px;font-weight:600}.skill-crowns{color:var(--lu-yellow-ink);align-items:center;gap:3px;display:inline-flex}.skill-chevron{color:var(--lu-text-3);flex:none;font-size:20px}.path-nodes{flex-direction:column;align-items:center;gap:20px;margin:0;padding:28px 0 10px;list-style:none;display:flex}.lesson-node{--b:var(--lu-surface-3);--b-lip:var(--lu-border-strong);--b-ink:var(--lu-text-3);z-index:1;transform:translateX(var(--x));flex-direction:column;align-items:center;display:flex;position:relative}.lesson-node:has(.lesson-pop){z-index:4}.lesson-node[data-state=current]{--b:var(--lu-violet);--b-lip:var(--lu-violet-lip);--b-ink:var(--lu-on-color)}.lesson-node[data-state=done]{--b:var(--lu-green);--b-lip:var(--lu-green-lip);--b-ink:var(--lu-on-color)}.lesson-node[data-state=done][data-perfect]{--b:var(--lu-yellow);--b-lip:var(--lu-yellow-lip);--b-ink:var(--lu-loo-ink)}.lesson-node[data-kind=theory][data-state=upcoming]{--b:var(--lu-blue-soft);--b-lip:var(--lu-blue)}@supports (color:color-mix(in lab, red, red)){.lesson-node[data-kind=theory][data-state=upcoming]{--b-lip:color-mix(in srgb, var(--lu-blue) 35%, var(--lu-border))}}.lesson-node[data-kind=theory][data-state=upcoming]{--b-ink:var(--lu-blue-ink)}.lesson-bubble{--p1:4px;--p2:9px;--p3:18px;--lip:7px;isolation:isolate;width:72px;height:64px;margin-bottom:var(--lip);color:var(--b-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), filter var(--lu-dur-2);background:0 0;border:0;border-radius:0;place-items:center;padding:0;font-size:30px;display:grid;position:relative}.lesson-bubble:before,.lesson-bubble:after{clip-path:polygon(0 var(--p3), var(--p1) var(--p3), var(--p1) var(--p2), var(--p2) var(--p2), var(--p2) var(--p1), var(--p3) var(--p1), var(--p3) 0, calc(100% - var(--p3)) 0, calc(100% - var(--p3)) var(--p1), calc(100% - var(--p2)) var(--p1), calc(100% - var(--p2)) var(--p2), calc(100% - var(--p1)) var(--p2), calc(100% - var(--p1)) var(--p3), 100% var(--p3), 100% calc(100% - var(--p3)), calc(100% - var(--p1)) calc(100% - var(--p3)), calc(100% - var(--p1)) calc(100% - var(--p2)), calc(100% - var(--p2)) calc(100% - var(--p2)), calc(100% - var(--p2)) calc(100% - var(--p1)), calc(100% - var(--p3)) calc(100% - var(--p1)), calc(100% - var(--p3)) 100%, var(--p3) 100%, var(--p3) calc(100% - var(--p1)), var(--p2) calc(100% - var(--p1)), var(--p2) calc(100% - var(--p2)), var(--p1) calc(100% - var(--p2)), var(--p1) calc(100% - var(--p3)), 0 calc(100% - var(--p3)))}.lesson-bubble:before{inset:0 0 calc(-1 * var(--lip)) 0;background:var(--b-lip);transition:bottom var(--lu-dur-1) var(--lu-ease)}.lesson-bubble:after{background:var(--b);inset:0;box-shadow:inset 0 5px #ffffff38,inset 0 -5px #1e103314}.lesson-bubble:hover{filter:brightness(1.05)}.lesson-bubble:active{transform:translateY(calc(var(--lip) - 1px))}.lesson-bubble:active:before{bottom:-1px}.lesson-bubble:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:4px}.lesson-bubble-glyph{place-items:center;line-height:1;display:grid}.lesson-node[data-state=upcoming] .lesson-bubble-glyph{filter:grayscale(.7);opacity:.75}.lesson-node[data-kind=theory][data-state=upcoming] .lesson-bubble-glyph{filter:none;opacity:1}.lesson-bubble-ring .lu-ring-center{padding-top:2px}.lesson-node[data-state=current] .lesson-bubble-glyph{animation:path-hop 2.4s var(--lu-ease) infinite}@keyframes path-hop{0%,70%,to{transform:none}80%{transform:translateY(-4px)scale(1.06)}90%{transform:translateY(0)scale(.98)}}.path-node-tip{z-index:2;border:2px solid var(--lu-violet);border-radius:var(--lu-r-sm);background:var(--lu-surface);box-shadow:0 3px 0 var(--lu-violet-lip);color:var(--lu-violet-ink);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);white-space:nowrap;padding:6px 12px;animation:1.6s ease-in-out infinite path-bob;position:absolute;top:-36px}.path-node-tip:after{content:"";background:var(--lu-surface);border:2px solid var(--lu-violet);border-top:0;border-left:0;width:10px;height:10px;position:absolute;bottom:-7px;left:calc(50% - 6px);transform:rotate(45deg)}@keyframes path-bob{50%{transform:translateY(-4px)}}.path-loo{pointer-events:none;position:absolute;top:0}.lesson-node[data-side=left] .path-loo{left:calc(100% + 18px)}.lesson-node[data-side=right] .path-loo{right:calc(100% + 18px)}.lesson-pop.lu-card{z-index:5;text-align:left;width:260px;font-family:var(--lu-font);animation:lu-pop-in var(--lu-dur-2) var(--lu-ease-bounce);gap:8px;display:grid;position:absolute;top:calc(100% + 10px)}.lesson-pop.lu-card[data-tone]{background:var(--tone-soft)}.lesson-pop.lu-card:before{content:"";background:inherit;border:2px solid var(--c-border);border-bottom:0;border-right:0;width:12px;height:12px;position:absolute;top:-8px;left:calc(50% - 7px);transform:rotate(45deg)}.lesson-pop-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);line-height:1.3}.lesson-pop.lu-card[data-tone] .lesson-pop-title{color:var(--tone-ink)}.lesson-pop-meta{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.lesson-pop .lu-btn{margin-top:4px}.path-sheet-title{align-items:center;gap:10px;display:inline-flex}.path-sheet-icon{font-size:32px}.path-crowns{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.path-crowns-label{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);color:var(--lu-text-2);margin-left:6px}.path-sheet-next{border-radius:var(--lu-r);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-size:var(--lu-fs-xs);align-items:center;gap:6px;margin:12px 0;padding:10px 12px;font-weight:700;display:flex}.path-sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.path-sheet-action.lu-card{text-align:center;font-weight:var(--lu-fw-black);font-size:var(--lu-fs-xs);justify-items:center;gap:2px;display:grid}.path-sheet-action small{color:var(--lu-text-2);font-weight:700}.path-sheet-action-icon{border-radius:var(--lu-r);background:var(--tone);width:40px;height:40px;box-shadow:0 3px 0 var(--tone-lip);color:var(--lu-on-color);place-items:center;margin-bottom:7px;font-size:22px;display:grid}@media (max-width:480px){.path-summary-value{font-size:var(--lu-fs-lg)}.path-loo .loo{width:72px;height:72px}.lesson-node[data-side=left] .path-loo{left:calc(100% + 6px)}.lesson-node[data-side=right] .path-loo{right:calc(100% + 6px)}}@media (prefers-reduced-motion:reduce){.path-node-tip,.lesson-node[data-state=current] .lesson-bubble-glyph{animation:none}.lesson-bubble,.lesson-bubble:before{transition:none}}.emap{font-family:var(--lu-font);margin:12px 0 32px}.emap-ranks{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.emap-rank{border-radius:var(--lu-r);border:2px solid var(--lu-border);background:var(--lu-surface);opacity:.5;filter:grayscale(.8);flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.emap-rank[data-reached]{opacity:1;filter:none;box-shadow:0 3px 0 var(--lu-border)}.emap-rank[data-current]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 3px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.emap-rank-emoji{font-size:26px}.emap-rank-title{font-size:12px;font-weight:var(--lu-fw-black)}.emap-rank-sub{color:var(--lu-text-2);font-size:10px;font-weight:700}.emap-level{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin:12px 0 0;font-weight:700}.emap-stage{margin-top:24px}.emap-stage-title{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);align-items:center;gap:8px;margin:0 0 10px;display:flex}.emap-tracks{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;display:grid}.emap-track.lu-card{gap:12px;display:flex}.emap-track[data-soon]{opacity:.65;border-style:dashed}.emap-track-icon{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface-2);flex:none;place-items:center;width:48px;height:48px;display:grid}.emap-track.lu-card[data-tone] .emap-track-icon{border-color:var(--tone)}@supports (color:color-mix(in lab, red, red)){.emap-track.lu-card[data-tone] .emap-track-icon{border-color:color-mix(in srgb, var(--tone) 38%, transparent)}}.emap-track.lu-card[data-tone] .emap-track-icon{background:var(--tone-soft)}.emap-track-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.emap-track-title{font-weight:var(--lu-fw-black);font-size:var(--lu-fs-md);align-items:center;gap:8px;display:flex}.emap-track-tagline{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:600}.emap-bar{margin-top:4px}.emap-track-meta{color:var(--lu-text-2);flex-wrap:wrap;align-items:center;gap:3px;font-size:12px;font-weight:700;display:inline-flex}@media (max-width:600px){.emap-ranks{grid-template-columns:repeat(3,minmax(0,1fr))}.path-summary{gap:8px}}.cp-chips{margin:6px 0}.cp-chip-form{display:contents}.cp-chip-form .gchip{cursor:pointer}.cp-level-row{font-family:var(--lu-font);flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.cp-level-chip{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:36px;box-shadow:0 2px 0 var(--lu-border);color:var(--lu-text-2);font-size:var(--lu-fs-xs);align-items:center;gap:6px;margin-bottom:2px;padding:0 12px;font-weight:600;display:inline-flex}.cp-level-chip strong{color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.cp-level-chip:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.cp-placement-card.lu-card{font-family:var(--lu-font);align-items:center;gap:12px;margin:10px 0 4px;display:flex}.cp-placement-icon{border-radius:var(--lu-r);background:var(--tone);width:44px;height:44px;box-shadow:0 3px 0 var(--tone-lip);color:var(--lu-on-color);flex:none;place-items:center;margin-bottom:3px;font-size:24px;display:grid}.cp-placement-text{min-width:0;font-size:var(--lu-fs-xs);color:var(--lu-text-2);flex:1;gap:2px;font-weight:600;display:grid}.cp-placement-text strong{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-text)}.cp-section[data-state=locked]{--tone:var(--lu-surface-3);--tone-lip:var(--lu-border-strong);--banner-ink:var(--lu-text-2)}.cp-section[data-state=locked] .path-banner-bar>span{background:var(--lu-text-3)}.cp-section[data-known]{--tone:var(--lu-yellow);--tone-lip:var(--lu-yellow-lip);--banner-ink:var(--lu-loo-ink)}.cp-section-lead,.cp-known{font-size:var(--lu-fs-xs);color:var(--lu-text-2);align-items:center;gap:6px;margin:12px 4px 0;font-weight:600;line-height:1.45;display:flex}.cp-known{color:var(--lu-yellow-ink);font-weight:700}.cp-testout.lu-card{margin-top:14px;margin-bottom:var(--lu-lip);border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 var(--lu-lip) 0 var(--lu-violet-lip);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cp-testout-crown{flex:none;animation:2s ease-in-out infinite path-bob}.cp-testout-text{font-size:var(--lu-fs-xs);color:var(--lu-text-2);flex:220px;gap:2px;font-weight:600;display:grid}.cp-testout-text strong{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-black);color:var(--lu-violet-ink)}.cp-locked-topics{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.cp-locked-topic{border:2px dashed var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);width:100%;color:var(--lu-text-2);font:700 var(--lu-fs-sm) / 1.3 var(--lu-font);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 12px;display:flex}.cp-locked-topic:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.cp-locked-topic:focus-visible,.cp-expand:focus-visible,.cp-level-chip:focus-visible,.cp-sheet-lesson:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}.cp-locked-icon{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);filter:grayscale(.6);flex:none;place-items:center;width:36px;height:36px;display:grid}.cp-locked-title{flex:1;min-width:0}.cp-locked-meta{color:var(--lu-text-3);font-size:12px}.cp-locked-lock{color:var(--lu-text-3);flex:none}.cp-locked-topics[data-known] .cp-locked-topic{border-style:solid}.cp-locked-topics[data-known] .cp-locked-icon{filter:none;background:var(--lu-yellow-soft)}.cp-locked-topics[data-known] .cp-locked-lock{color:var(--lu-yellow-ink)}.cp-expand{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:36px;color:var(--lu-violet-ink);font:var(--lu-fw-bold) var(--lu-fs-xs) / 1.2 var(--lu-font);cursor:pointer;margin:10px auto 0;padding:0 14px;display:block}.cp-expand:hover{background:var(--lu-violet-soft)}.cp-locked-note{color:var(--lu-orange-ink)}.lesson-node[data-optional][data-state=upcoming] .lesson-bubble{opacity:.7;width:60px;height:54px;font-size:24px}.lesson-node[data-type=test] .lesson-bubble{--p1:3px;--p2:6px;--p3:10px}.lesson-node[data-type=test]{--b:var(--lu-blue-soft);--b-lip:var(--lu-blue)}@supports (color:color-mix(in lab, red, red)){.lesson-node[data-type=test]{--b-lip:color-mix(in srgb, var(--lu-blue) 45%, var(--lu-border))}}.lesson-node[data-type=test]{--b-ink:var(--lu-blue-ink)}.lesson-node[data-type=test][data-state=done]{--b:var(--lu-blue);--b-lip:var(--lu-blue-lip);--b-ink:var(--lu-on-color)}.cp-exam{padding-top:18px}.lesson-node[data-type=exam]{--b:var(--lu-purple-soft);--b-lip:var(--lu-purple-lip);--b-ink:var(--lu-purple-ink)}.lesson-node[data-type=exam][data-state=done]{--b:var(--lu-yellow);--b-lip:var(--lu-yellow-lip)}.lesson-node[data-type=exam][data-state=current]{--b:var(--lu-purple);--b-lip:var(--lu-purple-lip)}.lesson-node[data-type=exam] .lesson-bubble{--p1:5px;--p2:12px;--p3:24px;--lip:8px;width:96px;height:84px}.cp-node-label{font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-text-2);margin-top:4px}.cp-sheet-lessons{gap:4px;margin:14px 0 0;padding:0;list-style:none;display:grid}.cp-sheet-lesson{border-radius:var(--lu-r-sm);font-weight:700;font-size:var(--lu-fs-sm);align-items:center;gap:10px;padding:8px 10px;display:flex}.cp-sheet-lesson:hover{background:var(--lu-hover)}.cp-sheet-lesson-title{flex:1;min-width:0}.cp-sheet-lessons li[data-done] .cp-sheet-lesson-title{color:var(--lu-text-2)}.cp-sheet-lesson-meta{color:var(--lu-text-3);font-size:12px}.test-intro-eyebrow{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);align-items:center;gap:6px;margin:0;padding:4px 10px;display:inline-flex}.test-intro-rules{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);text-align:left;max-width:420px;font-size:var(--lu-fs-sm);color:var(--lu-text-2);gap:4px;margin:4px auto 0;padding:12px 16px 12px 32px;font-weight:500;line-height:1.45;display:grid}.test-dots{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.test-dots li{border-radius:var(--lu-r-sm);background:var(--lu-red-soft);width:28px;height:28px;color:var(--lu-red-ink);place-items:center;font-size:14px;display:grid}.test-summary:not([data-passed]) .lesson-summary-title{color:var(--lu-orange-ink)}.test-dots li[data-ok]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.placement-sections{text-align:left;gap:6px;max-width:420px;margin:0 auto;padding:0;list-style:none;display:grid}.placement-sections li{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-sm);align-items:center;gap:10px;padding:10px 12px;display:flex}.placement-sections li[data-state=known]{border-color:var(--lu-yellow);background:var(--lu-yellow-soft)}.placement-sections li[data-state=known]:after{content:"✓ зараховано";color:var(--lu-yellow-ink);margin-left:auto;font-size:12px}.placement-sections li[data-state=start]{border-color:var(--lu-violet);background:var(--lu-violet-soft);box-shadow:0 3px 0 var(--lu-violet-lip);color:var(--lu-violet-ink)}.placement-sections li[data-state=start]:after{content:"▶ старт";color:var(--lu-violet-ink);margin-left:auto;font-size:12px}.placement-sections li[data-state=next]{opacity:.6}.courses-page{font-family:var(--lu-font)}.courses-page .gsection-title{margin-top:24px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin-top:10px;display:grid}.course-card.lu-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.course-card-cover{border-bottom:2px solid var(--course-c);place-items:center;height:132px;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.course-card-cover{border-bottom:2px solid color-mix(in srgb, var(--course-c) 40%, var(--lu-border))}}.course-card-cover{background-color:var(--course-c)}@supports (color:color-mix(in lab, red, red)){.course-card-cover{background-color:color-mix(in srgb, var(--course-c) 22%, var(--lu-surface))}}.course-card-cover{background-image:radial-gradient(var(--course-c) 1.5px, transparent 1.5px)}@supports (color:color-mix(in lab, red, red)){.course-card-cover{background-image:radial-gradient(color-mix(in srgb, var(--course-c) 45%, transparent) 1.5px, transparent 1.5px)}}.course-card-cover{background-size:14px 14px}.course-card-icon{border:2px solid var(--course-c);place-items:center;width:84px;height:84px;display:grid}@supports (color:color-mix(in lab, red, red)){.course-card-icon{border:2px solid color-mix(in srgb, var(--course-c) 40%, var(--lu-border))}}.course-card-icon{border-radius:var(--lu-r-xl);background:var(--lu-surface);box-shadow:0 5px 0 var(--course-c)}@supports (color:color-mix(in lab, red, red)){.course-card-icon{box-shadow:0 5px 0 color-mix(in srgb, var(--course-c) 40%, var(--lu-border))}}.course-card-icon{transition:transform var(--lu-dur-3) var(--lu-ease-bounce);transform:rotate(-4deg)}.course-card:hover .course-card-icon{transform:rotate(3deg)scale(1.05)}.course-card-cover:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:-3px}.course-card-badge{border-radius:var(--lu-r-sm);background:var(--lu-violet);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-on-color);font-size:12px;font-weight:var(--lu-fw-bold);align-items:center;gap:4px;padding:4px 10px;display:inline-flex;position:absolute;top:10px;right:10px}.course-card-body{flex-direction:column;flex:1;gap:8px;padding:14px 16px 16px;display:flex}.course-card-title{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);margin:0;line-height:1.2}.course-card-title a:hover{color:var(--lu-violet-ink)}.course-card-sub{font-size:var(--lu-fs-sm);color:var(--lu-text-2);margin:0;font-weight:500;line-height:1.45}.course-card-pills{flex-wrap:wrap;gap:6px;display:flex}.course-card-meta{color:var(--lu-text-2);margin:0;font-size:12px;font-weight:600}.course-card-actions{margin-top:auto;padding-top:4px}.courses-soon-lead{margin:0 0 8px}.courses-soon{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.courses-soon-item.lu-card{background:var(--lu-surface-2);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);border-style:dashed;align-items:center;gap:8px;display:inline-flex}.course-page{font-family:var(--lu-font)}.course-hero{--hero-line:var(--course-c)}@supports (color:color-mix(in lab, red, red)){.course-hero{--hero-line:color-mix(in srgb, var(--course-c) 45%, var(--lu-border))}}.course-hero{border:2px solid var(--hero-line);border-radius:var(--lu-r-xl);background-color:var(--course-c);align-items:center;gap:24px;margin-bottom:6px;padding:24px;display:flex}@supports (color:color-mix(in lab, red, red)){.course-hero{background-color:color-mix(in srgb, var(--course-c) 16%, var(--lu-surface))}}.course-hero{background-image:radial-gradient(var(--course-c) 1.5px, transparent 1.5px)}@supports (color:color-mix(in lab, red, red)){.course-hero{background-image:radial-gradient(color-mix(in srgb, var(--course-c) 35%, transparent) 1.5px, transparent 1.5px)}}.course-hero{box-shadow:0 6px 0 var(--hero-line);color:var(--lu-text);background-size:16px 16px}.course-hero-icon{border:2px solid var(--hero-line);border-radius:var(--lu-r-xl);background:var(--lu-surface);width:120px;height:120px;box-shadow:0 6px 0 var(--hero-line);flex:none;place-items:center;display:grid;transform:rotate(-4deg)}.course-hero-text{flex:1;gap:8px;min-width:0;display:grid}.course-hero-eyebrow{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);margin:0}.course-hero-title{font-size:var(--lu-fs-3xl);font-weight:var(--lu-fw-black);letter-spacing:-.01em;margin:0;line-height:1.1}.course-hero-sub{font-size:var(--lu-fs-md);color:var(--lu-text-2);margin:0;font-weight:500;line-height:1.45}.course-hero-pills{flex-wrap:wrap;gap:6px;display:flex}.course-hero-cta{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.course-facts{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:18px 0 0;display:grid}.course-fact{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 3px 0 var(--lu-border);text-align:center;flex-direction:column-reverse;align-items:center;gap:4px;padding:12px 6px;display:flex}.course-fact dd{font:800 var(--lu-fs-xl) / 1 var(--lu-font-pixel);color:var(--lu-violet-ink);margin:0}.course-fact dt{color:var(--lu-text-2);font-size:12px;font-weight:600}.course-desc{max-width:72ch;font-size:var(--lu-fs-md);color:var(--lu-text-2);margin:18px 0 0;font-weight:400;line-height:1.6}.course-page .gsection-title{margin-top:28px}.course-learn{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;margin:10px 0 0;padding:0;list-style:none;display:grid}.course-learn-item{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);align-items:flex-start;gap:12px;padding:12px;display:flex}.course-learn-icon{border-radius:var(--lu-r);background:var(--lu-violet-soft);width:42px;height:42px;box-shadow:0 3px 0 var(--lu-violet);flex:none;place-items:center;margin-bottom:3px;display:grid}@supports (color:color-mix(in lab, red, red)){.course-learn-icon{box-shadow:0 3px 0 color-mix(in srgb, var(--lu-violet) 30%, var(--lu-border))}}.course-learn-desc{font-size:var(--lu-fs-xs);color:var(--lu-text-2);margin-top:2px;font-weight:500;line-height:1.45;display:block}.course-program{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.course-program-item summary{cursor:pointer;border-radius:var(--lu-r-sm);align-items:center;gap:12px;list-style:none;display:flex}.course-program-item summary:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:4px}.course-program-item[open]{border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.course-program-item[open]{border-color:color-mix(in srgb, var(--lu-violet) 38%, transparent)}}.course-program-item summary::-webkit-details-marker{display:none}.course-program-icon{border-radius:var(--lu-r);background:var(--lu-surface-2);flex:none;place-items:center;width:42px;height:42px;display:grid}.course-program-text{gap:2px;display:grid}.course-program-title{font-weight:var(--lu-fw-black);align-items:center;gap:8px;display:inline-flex}.course-program-meta{color:var(--lu-text-2);font-size:12px;font-weight:600}.course-program-topics{font-size:var(--lu-fs-xs);gap:4px;margin:10px 0 2px 54px;padding:0;font-weight:700;list-style:none;display:grid}.course-program-topics li{align-items:center;gap:6px;display:flex}.course-program-topics small{color:var(--lu-text-3)}.course-level{margin-top:28px;scroll-margin-top:70px}.course-level-actions{margin-top:12px}.course-leave{border-top:2px solid var(--lu-border);flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;padding-top:14px;display:flex}.sb-courses{gap:2px;margin:0;padding:0;list-style:none;display:grid}.sb-courses form{display:contents}.sb-course{border-radius:var(--lu-r-sm);width:100%;min-height:36px;color:var(--lu-text-2);font:700 14px/1.3 var(--lu-font);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 8px;display:flex}.sb-course:hover{background:var(--lu-hover)}.sb-course[data-active]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:var(--lu-fw-black)}.sb-course-icon{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex:none;place-items:center;width:26px;height:26px;display:grid}.sb-course[data-active] .sb-course-icon{background:var(--lu-surface)}.sb-course-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sb-course-check{flex:none}.sb-course-add{color:var(--lu-text-3)}.acct-course{border-top:1px solid var(--lu-border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.acct-course-title{flex:200px;align-items:center;gap:8px;font-weight:800;display:inline-flex}.acct-course-level.auth-input{width:auto;min-width:120px}.acct-course-link{font-size:var(--lu-fs-xs);color:var(--lu-violet-ink);font-weight:700}.home-course-add .guide-card-icon{color:var(--lu-text-3)}.onb-course{align-items:center;gap:8px;display:inline-flex}@media (max-width:720px){.course-hero{text-align:center;flex-direction:column;align-items:stretch;padding:20px 16px}.course-hero-icon{align-self:center;width:96px;height:96px}.course-hero-cta .lu-btn{max-width:100%}.course-hero-cta .lu-btn-label{white-space:normal}.course-hero-pills,.course-hero-cta{justify-content:center}.course-hero-title{font-size:var(--lu-fs-2xl)}.course-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.cp-testout-crown{animation:none}}.lesson-pop-title .lu-icon,.lesson-pop-meta .lu-gicon,.lesson-pop-meta svg{vertical-align:-3px;margin-right:2px}.lesson-node[data-optional][data-state=upcoming] .lesson-bubble-glyph .lu-icon{transform:scale(.8)}.guide-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:10px 0 0;padding:0;list-style:none;display:grid}.guide-card.lu-card{align-items:flex-start;gap:12px;height:100%;display:flex}.guide-card-icon{border-radius:var(--lu-r);background:var(--lu-surface-2);flex:none;place-items:center;width:44px;height:44px;display:grid}.guide-card-body{flex:1;gap:6px;min-width:0;display:grid}.guide-card-title{font-weight:var(--lu-fw-black);color:var(--lu-text)}.guide-card-desc{color:var(--lu-text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.guide-card-meta{font-size:12.5px;font-weight:var(--lu-fw-bold);color:var(--lu-text-3)}.placement[data-bank] .quiz-body{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);max-width:68ch;font-size:var(--lu-fs-md);margin-top:12px;padding:14px 16px;line-height:1.7}.placement[data-bank] .quiz-body:has(>.lang-listen:only-child){background:0 0;border:0;padding:0}.placement-dont-know.lu-btn{color:var(--lu-text-2)}@media (min-width:760px){.placement-dont-know.lu-btn{grid-column:2;width:auto;min-width:200px}}.placement-bank-result{text-align:center}.placement-ielts{justify-items:center;gap:6px;max-width:460px;margin:4px auto 0;display:grid}.placement-confidence{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);max-width:460px;font-size:var(--lu-fs-sm);color:var(--lu-text-2);gap:2px;margin:12px auto 0;padding:10px 14px;display:grid}.placement-confidence strong{color:var(--lu-text);font-weight:var(--lu-fw-black)}.placement-confidence[data-confidence=high]{border-color:var(--lu-green);background:var(--lu-green-soft)}.placement-confidence[data-confidence=low]{border-color:var(--lu-yellow);background:var(--lu-yellow-soft)}.placement-followup.lu-card{text-align:left;gap:10px;max-width:460px;margin:12px auto 0;display:grid}.placement-skills{text-align:left;max-width:460px;margin:18px auto 0}.placement-skills ul{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.placement-skills li{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);align-items:center;gap:10px;padding:8px 12px;display:flex}.placement-skills li[data-mark=strong]{border-color:var(--lu-green)}.placement-skills li[data-mark=weak]{border-color:var(--lu-orange)}.placement-skill-name{font-weight:var(--lu-fw-bold);min-width:7.5em}.placement-skill-meta{color:var(--lu-text-3);font-size:var(--lu-fs-xs);text-align:right;margin-left:auto}.placement-planned{border:2px dashed var(--lu-violet);border-radius:var(--lu-r);background:var(--lu-violet-soft);max-width:460px;color:var(--lu-violet-ink);margin-inline:auto;padding:10px 14px}.placement-review{text-align:left;max-width:620px;margin:18px auto 0}.placement-review>summary{cursor:pointer}.placement-review .review-item{overflow:hidden}.placement-review .review-q{align-items:flex-start;gap:10px;margin:0;padding:14px 14px 10px;display:flex}.placement-review .review-q-text{min-width:0;padding-top:2px;line-height:1.35}.placement-review .review-body{gap:10px;padding:0 14px 14px 50px;display:grid}.placement-review .review-body>*,.placement-review .review-options{margin:0}.placement-review .review-options li{gap:2px;line-height:1.45;display:grid}.placement-review .review-tag{font-size:12px;font-weight:var(--lu-fw-bold);color:var(--lu-red-ink);align-items:center;gap:4px;display:inline-flex}.placement-review .review-options li[data-state=right] .review-tag{color:var(--lu-green-ink)}.placement-review .review-answer{overflow-wrap:anywhere;min-width:0}@media (max-width:560px){.placement-review .review-body{padding-left:14px}}.skill-levels{text-align:left;margin-top:18px}.skill-levels-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.skill-levels-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-bold);margin:0}.skill-levels-pills{flex-wrap:wrap;gap:6px;display:inline-flex}.skill-levels-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.skill-levels-list li{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);font-size:var(--lu-fs-sm);justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.skill-levels-list li[data-trend=up]{border-color:var(--lu-green);background:var(--lu-green-soft)}.skill-levels-list li[data-trend=down]{border-color:var(--lu-orange);background:var(--lu-orange-soft)}.skill-levels-level{font-weight:var(--lu-fw-bold);align-items:center;gap:4px;display:inline-flex}.skill-levels-level s{color:var(--lu-text-3);font-weight:400}.skill-levels-note{color:var(--lu-text-3);font-size:var(--lu-fs-xs);margin:8px 0 0}.test-summary .skill-levels{max-width:460px;margin-inline:auto}.level-offer{border:2px dashed var(--lu-violet);border-radius:var(--lu-r);background:var(--lu-violet-soft);text-align:left;max-width:460px;margin:14px auto 0;padding:12px 14px}.level-offer[data-kind=review]{border-color:var(--lu-orange);background:var(--lu-orange-soft)}.level-offer p{font-size:var(--lu-fs-sm);margin:4px 0 10px}.practice-band{color:var(--lu-text-3);font-size:var(--lu-fs-xs);margin:6px 0 0}.lesson,.lesson-summary{z-index:60;background:var(--lu-bg);color:var(--lu-text);font-family:var(--lu-font);flex-direction:column;display:flex;position:fixed;inset:0}.lesson-top{width:min(1000px,100%);padding:calc(14px + env(safe-area-inset-top)) 16px 10px;align-items:center;gap:12px;margin:0 auto;display:flex}.lesson-close{margin-left:-8px}.lesson-progress{flex:1}.lesson-combo{min-width:44px;font:800 var(--lu-fs-lg) / 1 var(--lu-font-pixel);color:var(--lu-text-3);transition:transform var(--lu-dur-3) var(--lu-ease-bounce), color var(--lu-dur-2);align-items:center;gap:2px;display:inline-flex}.lesson-combo[data-hot]{color:var(--lu-orange-ink);transform:scale(1.15)}.lesson-hearts{margin-right:-6px}.lesson-stage{flex:1;width:min(680px,100%);margin:0 auto;padding:10px 16px 28px;overflow-y:auto}.lesson-crumb{font-size:var(--lu-fs-xs);color:var(--lu-text-2);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 18px;font-weight:600;display:flex}.lesson-item{animation:lesson-in .3s var(--lu-ease)}@keyframes lesson-in{0%{opacity:0;transform:translate(28px)}}.lesson-card{flex-direction:column;gap:16px;display:flex}.lesson-kind{font-weight:var(--lu-fw-bold);align-self:flex-start}.lesson-question{font-size:clamp(22px,5.6vw,28px);font-weight:var(--lu-fw-black);text-wrap:balance;line-height:1.3}.lesson-question code,.lesson-reel-title code{font-family:var(--font-mono);color:var(--inline-code);background:var(--inline-code-bg);border-radius:6px;padding:.1em .35em;font-size:85%}.lesson-answer{border:2px solid var(--lu-violet);padding:16px 18px}@supports (color:color-mix(in lab, red, red)){.lesson-answer{border:2px solid color-mix(in srgb, var(--lu-violet) 40%, transparent)}}.lesson-answer{border-radius:var(--lu-r-lg);background:var(--lu-violet-soft);box-shadow:0 4px 0 var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.lesson-answer{box-shadow:0 4px 0 color-mix(in srgb, var(--lu-violet) 40%, transparent)}}.lesson-answer{font-family:var(--lu-font);font-size:var(--lu-fs-md);animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);line-height:1.6}.lesson-reel{text-align:center;border:2px solid var(--lu-yellow);align-items:center;margin-bottom:6px;padding:24px 20px}@supports (color:color-mix(in lab, red, red)){.lesson-reel{border:2px solid color-mix(in srgb, var(--lu-yellow) 55%, var(--lu-border))}}.lesson-reel{border-radius:var(--lu-r-xl);box-shadow:0 6px 0 var(--lu-yellow)}@supports (color:color-mix(in lab, red, red)){.lesson-reel{box-shadow:0 6px 0 color-mix(in srgb, var(--lu-yellow) 55%, var(--lu-border))}}.lesson-reel{background-color:var(--lu-surface);background-image:radial-gradient(var(--lu-yellow) 1.5px, transparent 1.5px)}@supports (color:color-mix(in lab, red, red)){.lesson-reel{background-image:radial-gradient(color-mix(in srgb, var(--lu-yellow) 30%, transparent) 1.5px, transparent 1.5px)}}.lesson-reel{background-size:16px 16px}.lesson-reel .lesson-kind{align-self:center}.lesson-reel-emoji{animation:lu-pop-in var(--lu-dur-4) var(--lu-ease-bounce);font-size:72px;line-height:1}.lesson-reel-title{font-size:clamp(22px,5.6vw,28px);font-weight:var(--lu-fw-black);text-wrap:balance;margin:0;line-height:1.25}.lesson-reel-body{text-align:left;font-family:var(--lu-font);font-size:var(--lu-fs-md);line-height:1.6}.lesson-foot{border-top:2px solid var(--lu-border);background:var(--lu-bg);width:100%;transition:background-color var(--lu-dur-3)}.lesson-foot:not(:has(.lesson-verdict,.lesson-cta,.lesson-dock:not([hidden]))){display:none}.lesson-foot[data-verdict=good]{background:var(--lu-green-soft);border-top-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.lesson-foot[data-verdict=good]{border-top-color:color-mix(in srgb, var(--lu-green) 40%, transparent)}}.lesson-foot[data-verdict=bad]{background:var(--lu-red-soft);border-top-color:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.lesson-foot[data-verdict=bad]{border-top-color:color-mix(in srgb, var(--lu-red) 40%, transparent)}}.lesson-foot[data-verdict=good] .lesson-cta.lu-btn{--b:var(--lu-green);--b-hover:var(--lu-green-hover);--b-lip:var(--lu-green-lip)}.lesson-foot-inner{width:min(1000px,100%);padding:14px 16px calc(14px + env(safe-area-inset-bottom));gap:12px;margin:0 auto;display:grid}.lesson-foot-inner .lu-btn{margin-bottom:var(--b-lip-h)}.lesson-dock:empty{display:none}.lesson-dock .rate-row{width:100%}.lesson-verdict{min-width:0;max-height:46dvh;animation:lu-pop-in var(--lu-dur-3) var(--lu-ease-bounce);gap:10px;display:grid;overflow-y:auto}.lesson-verdict-loo .loo-bubble{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.lesson-verdict-title{font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-black);line-height:1.2}.lesson-foot[data-verdict=good] .lesson-verdict-title{color:var(--lu-green-ink)}.lesson-foot[data-verdict=bad] .lesson-verdict-title{color:var(--lu-red-ink)}.lesson-verdict-xp{color:var(--lu-yellow-ink);font:800 var(--lu-fs-md) / 1 var(--lu-font-pixel);align-items:center;gap:4px;display:inline-flex}.lesson-verdict-answer{font-weight:var(--lu-fw-bold);color:var(--lu-red-ink);margin:0}.lesson-verdict-answer code{font-family:var(--lu-font-mono);border-radius:var(--lu-r-xs);background:var(--lu-surface);padding:1px 8px}.lesson-explain{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);color:var(--lu-text);font-family:var(--lu-font);font-size:var(--lu-fs-sm);padding:12px 14px;line-height:1.6}@media (min-width:760px){.lesson-foot-inner{padding-top:22px;padding-bottom:calc(22px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto;align-items:center}.lesson-foot-inner>:only-child,.lesson-dock{grid-column:1/-1}.lesson-cta.lu-btn{grid-column:2;width:auto;min-width:200px}.lesson-foot-inner>.lesson-cta:only-child{grid-column:2}.lesson-dock .quiz-actions[data-docked]{justify-content:flex-end}.lesson-dock .quiz-actions[data-docked]>.lu-btn[data-block]{width:auto;min-width:200px}}.lesson-summary{padding:calc(20px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));text-align:center;justify-content:center;align-items:center;gap:12px;overflow-y:auto}.lesson-summary-hero{isolation:isolate;place-items:center;padding:8px;display:grid;position:relative}.lesson-summary-hero:before{--p1:8px;--p2:20px;--p3:44px;content:"";z-index:-1;aspect-ratio:1;background:var(--lu-violet-soft);width:92%;clip-path:polygon(0 var(--p3), var(--p1) var(--p3), var(--p1) var(--p2), var(--p2) var(--p2), var(--p2) var(--p1), var(--p3) var(--p1), var(--p3) 0, calc(100% - var(--p3)) 0, calc(100% - var(--p3)) var(--p1), calc(100% - var(--p2)) var(--p1), calc(100% - var(--p2)) var(--p2), calc(100% - var(--p1)) var(--p2), calc(100% - var(--p1)) var(--p3), 100% var(--p3), 100% calc(100% - var(--p3)), calc(100% - var(--p1)) calc(100% - var(--p3)), calc(100% - var(--p1)) calc(100% - var(--p2)), calc(100% - var(--p2)) calc(100% - var(--p2)), calc(100% - var(--p2)) calc(100% - var(--p1)), calc(100% - var(--p3)) calc(100% - var(--p1)), calc(100% - var(--p3)) 100%, var(--p3) 100%, var(--p3) calc(100% - var(--p1)), var(--p2) calc(100% - var(--p1)), var(--p2) calc(100% - var(--p2)), var(--p1) calc(100% - var(--p2)), var(--p1) calc(100% - var(--p3)), 0 calc(100% - var(--p3)));position:absolute;top:50%;left:50%;translate:-50% -50%}.hearts-out .lesson-summary-hero:before{background:var(--lu-red-soft)}.lesson-summary-loo{animation:lu-pop-in var(--lu-dur-4) var(--lu-ease-bounce)}.lesson-summary-title{font-size:clamp(28px,8vw,36px);font-weight:var(--lu-fw-black);text-wrap:balance;color:var(--lu-violet-ink);margin:0;line-height:1.15}.lesson-summary-title[data-perfect]{color:var(--lu-yellow-ink)}.lesson-summary-note{max-width:46ch;color:var(--lu-text-2);margin:0;font-weight:600;line-height:1.5}.lesson-stats{grid-template-columns:repeat(3,minmax(0,116px));gap:10px;margin:8px 0 0;display:grid}.lesson-stats .gstat{border-radius:var(--lu-r-lg);box-shadow:0 4px 0 var(--tone-lip);animation:lu-pop-in var(--lu-dur-4) var(--lu-ease-bounce) backwards;margin-bottom:4px}.lesson-stats .gstat dd{font-family:var(--lu-font);font-size:26px;font-weight:var(--lu-fw-black);font-variant-numeric:tabular-nums}.lesson-stats .gstat:nth-child(2){animation-delay:90ms}.lesson-stats .gstat:nth-child(3){animation-delay:.18s}.lesson-summary-chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.lesson-summary-chip{border:2px solid var(--tone);align-items:center;gap:4px;min-height:40px;padding:0 14px 0 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.lesson-summary-chip{border:2px solid color-mix(in srgb, var(--tone) 35%, transparent)}}.lesson-summary-chip{border-radius:var(--lu-r);background:var(--tone-soft);color:var(--tone-ink);font-weight:var(--lu-fw-bold)}.lesson-summary-chip .lu-stat{min-height:0}.lesson-summary-actions{gap:10px;width:min(420px,100%);margin-top:12px;display:grid}.lesson-summary-link{border-radius:var(--lu-r-sm);min-height:44px;color:var(--lu-violet-ink);font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-sm);justify-content:center;align-items:center;gap:6px;display:inline-flex}.lesson-summary-link:hover{background:var(--lu-hover)}.lesson-summary-link:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:2px}@media (max-width:420px){.lesson-top{gap:8px}.lesson-stats{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}}@media (prefers-reduced-motion:reduce){.lesson-item,.lesson-reel-emoji,.lesson-summary-loo,.lesson-stats .gstat{animation:none}}@layer viz{.viz ul,.viz ol{margin:0;padding:0;list-style:none}.viz li,.viz p{padding:0}.viz p{margin:0}.viz code{color:inherit;line-height:inherit;background:0 0;border-radius:0;padding:0}.viz{--viz-radius:var(--lu-r);--viz-gap:10px;--viz-tap:44px;--viz-micro:var(--lu-mint-ink);--viz-micro-bg:var(--lu-mint-soft);--viz-macro:var(--lu-orange-ink);--viz-macro-bg:var(--lu-orange-soft);--viz-api:var(--lu-blue-ink);--viz-api-bg:var(--lu-blue-soft);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);color:var(--lu-text);font-family:var(--lu-font);overflow-wrap:anywhere;min-width:0;margin:16px 0;padding:14px 12px 12px;font-size:14px;line-height:1.5;position:relative;container:viz/inline-size}.viz-figure{margin:16px 0 calc(16px + var(--lu-lip));min-width:0}.viz-figure>.viz{margin:0}.viz-figcaption{color:var(--lu-text-2);margin-top:8px;padding:0 2px;font-size:14px}.viz-figcaption p{margin:0;padding:0}.viz *,.viz :before,.viz :after{box-sizing:border-box}.viz code{font-family:var(--lu-font-mono);font-size:.92em}.viz-chip code,.viz-showcase-meta code{color:var(--lu-violet-ink)}.viz-head{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.viz-emoji{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);width:38px;height:38px;box-shadow:inset 0 0 0 2px var(--lu-violet);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.viz-emoji{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--lu-violet) 22%, transparent)}}.viz-emoji{font-size:20px;line-height:1}.viz-head-text{min-width:0}.prose-read .viz .viz-title,.viz .viz-title{font-family:var(--lu-font);font-size:16px;font-weight:var(--lu-fw-black);color:var(--lu-text);margin:0;padding:0;line-height:1.3}.viz-subtitle{color:var(--lu-text-2);margin:2px 0 0;padding:0;font-size:13px}.viz-scenarios,.viz-presets{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.viz-presets-label{color:var(--lu-text-2);margin-right:2px;font-size:12px}.viz-chip{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);min-height:36px;color:var(--lu-text);font:inherit;text-align:left;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:600;line-height:1.2;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.viz-chip:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.viz-chip[aria-pressed=true]{border-color:var(--lu-violet);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:700}.viz-chip:disabled{opacity:.45}.viz-chip-code code{font-size:12px}.viz-caption{color:var(--lu-text-2);margin-top:12px;font-size:13px}.viz-caption p{padding:0}.viz-loading{border-radius:var(--viz-radius);background:linear-gradient(90deg, var(--lu-surface-2), var(--lu-hover), var(--lu-surface-2));background-size:200% 100%;height:260px;animation:1.4s linear infinite viz-shimmer}@keyframes viz-shimmer{to{background-position:-200% 0}}.viz-muted{color:var(--lu-text-2);font-size:13px}.viz-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.viz-player{border-radius:var(--viz-radius);outline:none}.viz-player:focus-visible{box-shadow:0 0 0 3px var(--lu-focus-color)}.viz-swipe{touch-action:pan-y}.viz-stage{gap:var(--viz-gap);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.viz-side,.viz-below{gap:var(--viz-gap);flex-direction:column;min-width:0;display:flex}.viz-below{margin-top:var(--viz-gap)}@container viz (min-width:620px){.viz-stage[data-split]{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}.viz-code{border:2px solid var(--code-border);border-radius:var(--viz-radius);background:var(--code-bg);color:var(--code-foreground);min-width:0;margin:0}.viz-code-scroll{overscroll-behavior-x:contain;overflow-x:auto}.viz-code pre{min-width:max-content;font-family:var(--lu-font-mono);color:var(--code-foreground);margin:0;padding:10px 0;font-size:12.5px;line-height:22px;position:relative}.viz-code-bar{border-left:3px solid var(--lu-mint);background:var(--code-line);opacity:0;height:22px;transition:transform .26s var(--lu-ease), opacity .16s;pointer-events:none;position:absolute;top:10px;left:0;right:0}.viz-code-bar[data-on]{opacity:1}.viz-code-line{white-space:pre;height:22px;padding-right:14px;display:flex;position:relative}.viz-code-line code{font-size:inherit}.viz-code-num{text-align:right;color:var(--code-token-comment);-webkit-user-select:none;user-select:none;flex:0 0 34px;padding-right:12px}.viz-code-line[data-active] .viz-code-num{color:var(--code-token-string);font-weight:700}.viz [data-tk=keyword]{color:var(--code-token-keyword)}.viz [data-tk=string]{color:var(--code-token-string)}.viz [data-tk=number],.viz [data-tk=const]{color:var(--code-token-constant)}.viz [data-tk=fn]{color:var(--code-token-function)}.viz [data-tk=comment]{color:var(--code-token-comment);font-style:italic}.viz [data-tk=punct]{color:var(--code-token-punctuation)}.viz-panel{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);min-width:0;padding:10px;transition:border-color .2s}.viz-panel[data-tone=danger]{border-color:var(--lu-red);background:var(--lu-red-soft)}@supports (color:color-mix(in lab, red, red)){.viz-panel[data-tone=danger]{background:color-mix(in srgb, var(--lu-red-soft) 45%, var(--lu-bg))}}.viz-panel-head{letter-spacing:.01em;color:var(--lu-text-2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.viz-panel-hint{color:var(--lu-text-3);margin-left:auto;font-weight:500}.viz-ic{vertical-align:-.2em}.viz-token-label{align-items:center;gap:5px;display:inline-flex}.viz-tokens{flex-direction:column;gap:6px;min-height:36px;display:flex}.viz-tokens[data-dir=row]{flex-flow:wrap;align-items:center}.viz-token{--tk-face:var(--lu-surface);--tk-line:var(--lu-border);border-radius:var(--lu-r-sm);background:var(--tk-face);min-width:0;box-shadow:inset 0 0 0 2px var(--tk-line), 0 2px 0 var(--tk-line);font-family:var(--lu-font-mono);flex-direction:column;gap:1px;padding:6px 10px;font-size:12.5px;line-height:1.35;transition:box-shadow .16s;display:flex}.viz-token-hint{font-family:var(--lu-font);color:var(--lu-text-2);font-size:11px}.viz-token[data-tone=stack]{--tk-face:var(--lu-violet-soft);--tk-line:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.viz-token[data-tone=stack]{--tk-line:color-mix(in srgb, var(--lu-violet) 35%, transparent)}}.viz-token[data-tone=stack][data-active]{--tk-line:var(--lu-violet)}.viz-token[data-tone=micro]{--tk-face:var(--viz-micro-bg);--tk-line:var(--viz-micro)}@supports (color:color-mix(in lab, red, red)){.viz-token[data-tone=micro]{--tk-line:color-mix(in srgb, var(--viz-micro) 35%, transparent)}}.viz-token[data-tone=macro]{--tk-face:var(--viz-macro-bg);--tk-line:var(--viz-macro)}@supports (color:color-mix(in lab, red, red)){.viz-token[data-tone=macro]{--tk-line:color-mix(in srgb, var(--viz-macro) 35%, transparent)}}.viz-token[data-tone=api]{--tk-face:var(--viz-api-bg);--tk-line:var(--viz-api)}@supports (color:color-mix(in lab, red, red)){.viz-token[data-tone=api]{--tk-line:color-mix(in srgb, var(--viz-api) 35%, transparent)}}.viz-tokens[data-dir=row] .viz-token:first-child[data-tone=micro]{--tk-line:var(--viz-micro)}.viz-tokens[data-dir=row] .viz-token:first-child[data-tone=macro]{--tk-line:var(--viz-macro)}.viz-empty{color:var(--lu-text-3);font-size:12px;font-style:italic}.viz-badge{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);height:22px;color:var(--lu-text-2);white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.viz-badge[data-tone=accent]{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.viz-badge[data-tone=success]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-return{border-radius:var(--lu-r-sm);background:var(--lu-green-soft);color:var(--lu-green-ink);margin-bottom:6px;padding:4px 10px;font-size:12px}.viz-console-lines{min-height:24px;font-family:var(--lu-font-mono);flex-direction:column;gap:2px;font-size:12.5px;display:flex}.viz-console-line{gap:8px;display:flex}.viz-console-caret{color:var(--lu-text-3)}.viz-console-line[data-error],.viz-console-line[data-error] .viz-console-caret{color:var(--lu-red-ink)}.viz-queues{gap:var(--viz-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@container viz (max-width:419px){.viz-queues .viz-panel-hint{display:none}}.viz-phases{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.viz-phases li{border-radius:var(--lu-r-xs);color:var(--lu-text-3);background:0 0;align-items:center;gap:5px;padding:3px 8px;font-size:12px;transition:background-color .2s,color .2s;display:inline-flex}.viz-phases li[data-on]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:700}.viz-phases li:not([data-on]) .lu-pxicon{opacity:.5}.viz-dock{z-index:3;background:var(--lu-surface);position:relative}@media (max-width:899px){.viz-dock{bottom:calc(60px + env(safe-area-inset-bottom));border-radius:0 0 calc(var(--lu-r-lg) - 2px) calc(var(--lu-r-lg) - 2px);box-shadow:0 -2px 0 var(--lu-border);margin:0 -12px -12px;padding:0 12px 12px;position:sticky}.viz-dock .viz-note{margin-top:10px;padding:8px 10px}.viz-dock .viz-note p{min-height:0;font-size:13.5px}}.viz-note{border-left:4px solid var(--lu-violet);border-radius:var(--lu-r-xs) var(--viz-radius) var(--viz-radius) var(--lu-r-xs);background:var(--lu-violet-soft);align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;display:flex}.viz-note p{min-height:3em;color:var(--lu-text);margin:0;padding:0;font-size:14px;line-height:1.55}.viz-note-step{border-radius:var(--lu-r-xs);background:var(--lu-surface);text-align:center;min-width:36px;color:var(--lu-violet-ink);flex:none;padding:1px 6px;font-size:12px;font-weight:800}.viz-controls{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.viz-btn,.viz-action,.viz-fire{--vb-face:var(--lu-surface);--vb-line:var(--lu-border);--vb-bw:2px;--vb-lip:var(--lu-lip-sm);--vb-s:2px;isolation:isolate;margin-bottom:var(--vb-lip);color:var(--lu-text);-webkit-tap-highlight-color:transparent;transition:transform var(--lu-dur-1) var(--lu-ease), color .12s;background:0 0;border:0;border-radius:0;position:relative}.viz-btn:before,.viz-btn:after,.viz-action:before,.viz-action:after,.viz-fire:before,.viz-fire:after{content:"";z-index:-1;pointer-events:none;clip-path:polygon(0 calc(2 * var(--vb-s)), var(--vb-s) calc(2 * var(--vb-s)), var(--vb-s) var(--vb-s), calc(2 * var(--vb-s)) var(--vb-s), calc(2 * var(--vb-s)) 0, calc(100% - 2 * var(--vb-s)) 0, calc(100% - 2 * var(--vb-s)) var(--vb-s), calc(100% - var(--vb-s)) var(--vb-s), calc(100% - var(--vb-s)) calc(2 * var(--vb-s)), 100% calc(2 * var(--vb-s)), 100% calc(100% - 2 * var(--vb-s)), calc(100% - var(--vb-s)) calc(100% - 2 * var(--vb-s)), calc(100% - var(--vb-s)) calc(100% - var(--vb-s)), calc(100% - 2 * var(--vb-s)) calc(100% - var(--vb-s)), calc(100% - 2 * var(--vb-s)) 100%, calc(2 * var(--vb-s)) 100%, calc(2 * var(--vb-s)) calc(100% - var(--vb-s)), var(--vb-s) calc(100% - var(--vb-s)), var(--vb-s) calc(100% - 2 * var(--vb-s)), 0 calc(100% - 2 * var(--vb-s)));position:absolute}.viz-btn:before,.viz-action:before,.viz-fire:before{inset:0 0 calc(-1 * var(--vb-lip)) 0;background:var(--vb-line);transition:bottom var(--lu-dur-1) var(--lu-ease)}.viz-btn:after,.viz-action:after,.viz-fire:after{inset:var(--vb-bw);background:var(--vb-face);transition:background-color .12s}:is(.viz-btn,.viz-action,.viz-fire):hover{--vb-face:var(--lu-surface-2);--vb-line:var(--lu-border-strong)}:is(.viz-btn,.viz-action,.viz-fire):active:not(:disabled){transform:translateY(var(--vb-lip))}:is(.viz-btn,.viz-action,.viz-fire):active:not(:disabled):before{bottom:0}.viz-btn{min-width:var(--viz-tap);height:var(--viz-tap);font:inherit;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:14px;font-weight:700;display:inline-flex}.viz-btn[data-primary],.viz-fire{--vb-face:var(--lu-violet);--vb-line:var(--lu-violet-lip);--vb-bw:0px;color:var(--lu-on-color)}.viz-btn[data-primary]:hover,.viz-fire:hover{--vb-face:var(--lu-violet-hover);--vb-line:var(--lu-violet-lip)}.viz-btn:disabled{opacity:.4;pointer-events:none}.viz-btn[aria-pressed=true],.viz-btn[aria-pressed=true]:hover{--vb-face:var(--lu-violet-soft);--vb-line:var(--lu-violet);color:var(--lu-violet-ink)}.viz-btn-text{white-space:nowrap;overflow-wrap:normal;flex-shrink:0;padding:0 14px}.viz-speed{min-width:52px;font-size:13px}.viz-scrub{min-width:100px;height:var(--viz-tap);appearance:none;cursor:pointer;background:0 0;flex:120px;margin:0 4px}.viz-scrub::-webkit-slider-runnable-track{border-radius:var(--lu-r-xs);background:linear-gradient(to right, var(--lu-violet) var(--fill,0%), var(--lu-surface-3) var(--fill,0%));height:8px}.viz-scrub::-moz-range-track{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);height:8px}.viz-scrub::-moz-range-progress{border-radius:var(--lu-r-xs);background:var(--lu-violet);height:8px}.viz-scrub::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--lu-r-xs);background:var(--lu-surface);width:20px;height:20px;box-shadow:inset 0 0 0 2px var(--lu-violet), 0 2px 0 var(--lu-violet-lip);margin-top:-6px}.viz-scrub::-moz-range-thumb{border-radius:var(--lu-r-xs);background:var(--lu-surface);width:20px;height:20px;box-shadow:inset 0 0 0 2px var(--lu-violet), 0 2px 0 var(--lu-violet-lip);border:0}@container viz (max-width:419px){.viz-controls .viz-scrub{flex-basis:100%;order:10;height:28px;margin:0}.viz-controls .viz-speed{margin-left:auto}}.viz-rel{position:relative}.viz-arrows{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.viz-arrows path{fill:none;stroke-width:1.6px;stroke:var(--lu-text-3);transition:stroke .2s}.viz-arrows marker path{stroke:none;fill:var(--lu-text-3)}.viz-arrows>path[data-tone=muted]{opacity:.6}.viz-arrows [data-tone=accent]{stroke:var(--lu-violet)}.viz-arrows marker [data-tone=accent]{fill:var(--lu-violet)}.viz-arrows [data-tone=danger]{stroke:var(--lu-red)}.viz-arrows marker [data-tone=danger]{fill:var(--lu-red)}.viz-arrows [data-tone=success]{stroke:var(--lu-green)}.viz-arrows marker [data-tone=success]{fill:var(--lu-green)}.viz-env{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);min-width:0;padding:8px;transition:border-color .2s,box-shadow .2s,background-color .2s;position:relative}.viz-env+.viz-fns{margin-top:10px}.viz-env[data-active]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-env[data-path]{background:var(--lu-yellow-soft)}@supports (color:color-mix(in lab, red, red)){.viz-env[data-path]{background:color-mix(in srgb, var(--lu-yellow-soft) 55%, var(--lu-surface))}}.viz-env[data-found]{border-color:var(--lu-green);box-shadow:0 0 0 3px var(--lu-green-soft)}.viz-env[data-dead]{border-style:dashed}.viz-env-head{flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-bottom:4px;display:flex}.viz-env-name{font-size:13px;font-weight:600}.viz-env-outer{color:var(--lu-text-3);font-size:11px}.viz-env-note{color:var(--lu-text-2);margin:0 0 4px;padding:0;font-size:11px}.viz-env-children{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.viz-env-children>.viz-env{flex:120px}.viz-vars,.viz-bindings,.viz-slots,.viz-obj ul,.viz-proto ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.viz-vars li{border-radius:var(--lu-r-sm);flex-wrap:wrap;align-items:baseline;gap:4px 6px;padding:2px 6px;font-size:12.5px;display:flex}.viz-vars li[data-captured]{background:var(--lu-violet-soft)}.viz-vars li[data-hit],.viz-proto li[data-hit],.viz-bindings li[data-hit]{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green)}.viz-var-name{font-weight:600}.viz-var-eq{color:var(--lu-text-3)}.viz-var-val{font-family:var(--lu-font-mono);border-radius:var(--lu-r-xs);padding:0 2px;font-size:12.5px;display:inline-block}.viz-var-val[data-changed]{background:var(--lu-yellow-soft)}.viz-vars li[data-tdz] .viz-var-val{color:var(--lu-red-ink)}.viz-var-flag{color:var(--lu-violet-ink);font-size:11px}.viz-fns{flex-direction:column;gap:6px;padding-top:6px;display:flex}.viz-fns-title{color:var(--lu-text-3);font-size:11px}.viz-fns-list{flex-wrap:wrap;gap:6px;display:flex}.viz-fn-env{font-family:var(--lu-font);opacity:.8;font-size:11px}.viz-fn{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-family:var(--lu-font-mono);padding:3px 8px;font-size:12px}.viz-ctx-list{flex-direction:column;gap:8px;display:flex}.viz-ctx{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);padding:8px}.viz-ctx[data-top]{border-color:var(--lu-violet)}.viz-ctx-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.viz-ctx-name{font-size:13px;font-weight:600}.viz-ctx-phases{gap:4px;display:inline-flex}.viz-ctx-phases span{color:var(--lu-text-3);box-shadow:inset 0 0 0 2px var(--lu-border);border-radius:999px;padding:2px 8px;font-size:11px}.viz-ctx-phases span[data-on]{background:var(--lu-violet-soft);color:var(--lu-violet-ink);box-shadow:none;font-weight:600}.viz-bindings li{border-radius:var(--lu-r-sm);grid-template-columns:auto minmax(0,auto) minmax(0,1fr);align-items:center;gap:8px;padding:3px 6px;font-size:12.5px;display:grid}.viz-bindings li[data-state=tdz]{background:repeating-linear-gradient(135deg, var(--lu-red-soft) 0 6px, transparent 6px 12px)}.viz-bindings li[data-state=tdz] .viz-var-val{color:var(--lu-red-ink);font-weight:600}.viz-kind{border-radius:var(--lu-r-xs);min-width:58px;font-family:var(--lu-font-mono);text-align:center;background:var(--lu-surface-3);padding:1px 6px;font-size:11px}.viz-kind[data-tone=orange]{background:var(--lu-orange-soft)}.viz-kind[data-tone=blue]{background:var(--lu-blue-soft)}.viz-kind[data-tone=purple]{background:var(--lu-violet-soft)}.viz-rules{flex-direction:column;gap:10px;display:flex}.viz-tree{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.viz-tree-node{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.viz-tree-node[data-answered]{background:var(--lu-surface-2)}.viz-tree-q{flex:200px;align-items:baseline;gap:8px;min-width:0;display:flex}.viz-tree-num{border-radius:var(--lu-r-xs);background:var(--lu-violet);width:20px;height:20px;color:var(--lu-on-color);flex:none;place-items:center;font-size:11px;font-weight:800;display:inline-grid}.viz-tree-answers{gap:6px;display:inline-flex}.viz-yn{min-width:64px;min-height:var(--viz-tap);border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);box-shadow:0 2px 0 var(--lu-border);color:var(--lu-text);font:inherit;padding:0 12px;font-size:14px;font-weight:700}.viz-yn:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.viz-yn[aria-pressed=true]{border-color:var(--lu-red);background:var(--lu-red-soft);box-shadow:0 2px 0 var(--lu-red-lip);color:var(--lu-red-ink)}.viz-yn[data-yes][aria-pressed=true]{border-color:var(--lu-green);background:var(--lu-green-soft);box-shadow:0 2px 0 var(--lu-green-lip);color:var(--lu-green-ink)}.viz-result{border:2px solid var(--lu-violet);padding:12px}@supports (color:color-mix(in lab, red, red)){.viz-result{border:2px solid color-mix(in srgb, var(--lu-violet) 30%, transparent)}}.viz-result{border-radius:var(--lu-r-lg);background:var(--lu-violet-soft)}.viz-result p{margin:8px 0;padding:0}.viz-result-head{align-items:center;gap:10px;display:flex}.viz-result-emoji{color:var(--lu-violet);display:grid}.viz-result-title{font-weight:800}.viz-result-value{font-size:15px}.viz-snippet{border:2px solid var(--code-border);border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);font-family:var(--lu-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.55}.viz-snippet-live{flex-direction:column;display:flex}.viz-snippet-live code[data-last]{color:var(--code-token-string)}.viz-this{flex-direction:column;gap:6px;display:flex}.viz-this p{margin:0;padding:0}.viz-this-row{grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.viz-this-value{border-radius:var(--lu-r);background:var(--lu-green-soft);margin-top:4px;padding:10px 12px;font-size:16px;font-weight:600}.viz-this-value[data-empty]{background:var(--lu-red-soft)}.viz-proto-cols{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.viz-proto-cols[data-cols="2"]{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}.viz-proto-cols[data-cols="1"] .viz-proto-col{width:100%;max-width:280px;margin:0 auto}.viz-proto-col{flex-direction:column;gap:18px;min-width:0;display:flex}.viz-proto-col-title{color:var(--lu-text-3);margin-bottom:-10px;font-size:11px}.viz-proto{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);padding:6px 8px;transition:border-color .2s,box-shadow .2s,opacity .2s}.viz-proto-head{align-items:center;gap:6px;margin-bottom:3px;font-size:12.5px;font-weight:600;display:flex}.viz-proto-eye{margin-left:auto}.viz-proto li{border-radius:var(--lu-r-xs);justify-content:space-between;gap:6px;padding:1px 4px;font-size:12px;display:flex}.viz-proto-null{font-family:var(--lu-font-mono);color:var(--lu-text-2);align-self:flex-start;font-size:12px}.viz-proto[data-status=search]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-proto[data-status=miss]{opacity:.6}.viz-proto[data-status=found]{border-color:var(--lu-green);box-shadow:0 0 0 3px var(--lu-green-soft)}.viz-proto[data-status=end]{border-color:var(--lu-red);box-shadow:0 0 0 3px var(--lu-red-soft)}.viz-promises{flex-wrap:wrap;gap:6px;display:flex}.viz-promise-chip{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-direction:column;gap:1px;min-width:92px;padding:6px 8px;font-size:12px;transition:background-color .25s;display:flex}.viz-promise-chip[data-state=fulfilled]{background:var(--lu-green-soft)}.viz-promise-chip[data-state=rejected]{background:var(--lu-red-soft)}.viz-promise-chip-id{font-family:var(--lu-font-mono);font-weight:600}.viz-machine{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.viz-machine-node{color:var(--lu-text-3);box-shadow:inset 0 0 0 2px var(--lu-border);border-radius:999px;padding:3px 8px;font-size:12px}.viz-machine-node[data-on]{color:var(--lu-text);font-weight:600;box-shadow:inset 0 0 0 2px}.viz-machine-node[data-on][data-state=fulfilled]{background:var(--lu-green-soft)}.viz-machine-node[data-on][data-state=rejected]{background:var(--lu-red-soft)}.viz-machine-node[data-on][data-state=pending]{background:var(--lu-yellow-soft)}.viz-promise{border-radius:var(--lu-r-lg);background:var(--lu-yellow-soft);padding:14px;transition:background-color .3s}.viz-promise[data-state=fulfilled]{background:var(--lu-green-soft)}.viz-promise[data-state=rejected]{background:var(--lu-red-soft)}.viz-promise-state{align-items:center;gap:10px;font-size:15px;display:flex}.viz-promise-emoji{display:grid}.viz-subhead{color:var(--lu-text-2);margin:10px 0 6px;font-size:12px}.viz-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}@container viz (min-width:620px){.viz-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}.viz-action{min-height:var(--viz-tap);font:inherit;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.viz-action[data-tone=success],.viz-action[data-tone=success]:hover{--vb-face:var(--lu-green-soft);--vb-line:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.viz-action[data-tone=success],.viz-action[data-tone=success]:hover{--vb-line:color-mix(in srgb, var(--lu-green) 55%, transparent)}}.viz-action[data-tone=success],.viz-action[data-tone=success]:hover{color:var(--lu-green-ink)}.viz-action[data-tone=danger],.viz-action[data-tone=danger]:hover{--vb-face:var(--lu-red-soft);--vb-line:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.viz-action[data-tone=danger],.viz-action[data-tone=danger]:hover{--vb-line:color-mix(in srgb, var(--lu-red) 55%, transparent)}}.viz-action[data-tone=danger],.viz-action[data-tone=danger]:hover{color:var(--lu-red-ink)}.viz-comb{flex-direction:column;gap:10px;display:flex}.viz-comb-inputs,.viz-comb-results{flex-direction:column;gap:8px;display:flex}.viz-comb-input{border:2px solid var(--lu-border);border-radius:var(--lu-r);grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"name toggle ms""track track track";align-items:center;gap:6px 10px;padding:8px 10px;display:grid}.viz-comb-name{grid-area:name;font-weight:600}.viz-comb-input .viz-yn{grid-area:toggle;min-width:0;font-size:13px}.viz-comb-ms{min-width:0;color:var(--lu-text-2);grid-area:ms;align-items:center;gap:8px;font-size:12px;display:flex}.viz-comb-ms input{min-width:0;height:var(--viz-tap);accent-color:var(--lu-violet);flex:1}.viz-comb-input .viz-track{grid-area:track}.viz-track{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);height:26px;position:relative}.viz-track-mark{opacity:.5;line-height:1;transition:opacity .2s;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%)}.viz-track-mark[data-on]{opacity:1}.viz-track-cursor{background:var(--lu-violet);width:2px;position:absolute;top:0;bottom:0}.viz-track-at{background:var(--lu-red);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:4px;bottom:4px}.viz-track-at[data-ok]{background:var(--lu-green)}.viz-comb-result{border-radius:var(--lu-r);background:var(--lu-surface-2);flex-direction:column;gap:6px;padding:8px 10px;transition:background-color .25s;display:flex}.viz-comb-result[data-state=fulfilled]{background:var(--lu-green-soft)}.viz-comb-result[data-state=rejected]{background:var(--lu-red-soft)}.viz-comb-result-head{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.viz-comb-result-head code{font-weight:600}.viz-comb-value{font-size:13px}.viz-comb-result .viz-track{background:var(--lu-text);height:10px}@supports (color:color-mix(in lab, red, red)){.viz-comb-result .viz-track{background:color-mix(in srgb, var(--lu-text) 6%, transparent)}}.viz-comb-result .viz-track-at{top:-2px;bottom:-2px}.viz-coercion{flex-direction:column;gap:10px;display:flex}.viz-pickers{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}@container viz (min-width:620px){.viz-pickers{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.viz-picker{border:2px solid var(--lu-border);border-radius:var(--lu-r);min-width:0;margin:0;padding:8px 10px 10px}.viz-picker legend{color:var(--lu-text-2);padding:0 4px;font-size:12px;font-weight:600}.viz-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.viz-pick{min-height:var(--viz-tap);overflow-wrap:normal;white-space:nowrap;border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);color:var(--lu-text);font:inherit;padding:2px 0}.viz-pick:hover{border-color:var(--lu-border-strong);background:var(--lu-surface-2)}.viz-pick[aria-pressed=true]{border-color:var(--lu-violet);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-weight:700}.viz-pick code{font-size:11.5px}.viz-expr{text-align:center;font-size:18px;font-weight:600}.viz-algo{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.viz-algo-step{border-radius:var(--lu-r);background:var(--lu-surface-2);gap:10px;padding:8px 10px;display:flex}.viz-algo-step p{color:var(--lu-text-2);margin:2px 0 4px;padding:0;font-size:13px}.viz-algo-num{border-radius:var(--lu-r-xs);background:var(--lu-violet);width:22px;height:22px;color:var(--lu-on-color);flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.viz-algo-rule{font-size:13px;font-weight:700}.viz-algo-expr{color:var(--lu-violet-ink)}.viz-verdict{border:2px solid var(--lu-violet);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.viz-verdict{border:2px solid color-mix(in srgb, var(--lu-violet) 30%, transparent)}}.viz-verdict{border-radius:var(--lu-r-lg);background:var(--lu-violet-soft);font-size:17px;font-weight:700}.viz-verdict[data-tone=success]{border-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.viz-verdict[data-tone=success]{border-color:color-mix(in srgb, var(--lu-green) 45%, transparent)}}.viz-verdict[data-tone=success]{background:var(--lu-green-soft)}.viz-verdict[data-tone=danger]{border-color:var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.viz-verdict[data-tone=danger]{border-color:color-mix(in srgb, var(--lu-red) 45%, transparent)}}.viz-verdict[data-tone=danger]{background:var(--lu-red-soft)}.viz-mem{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:24px;padding:10px;display:grid}@container viz (min-width:620px){.viz-mem{gap:64px}}.viz-mem-col{flex-direction:column;gap:6px;min-width:0;display:flex}.viz-slots li{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:6px 8px;font-size:12.5px;display:flex}.viz-slots li[data-changed]{background:var(--lu-yellow-soft)}.viz-ref{border-radius:var(--lu-r-xs);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-family:var(--lu-font-mono);white-space:nowrap;padding:0 6px;font-size:12px}.viz-heap{flex-direction:column;gap:14px;display:flex}.viz-obj{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);padding:6px 8px;transition:border-color .25s,background-color .25s}.viz-obj[data-state=reachable]{border-color:var(--lu-green)}.viz-obj[data-state=unreachable]{border-style:dashed;border-color:var(--lu-red);background:var(--lu-red-soft)}.viz-obj-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:3px;font-size:12.5px;font-weight:600;display:flex}.viz-obj-flag{color:var(--lu-red-ink);font-size:11px;font-weight:500}.viz-obj li{border-radius:var(--lu-r-xs);flex-wrap:wrap;justify-content:space-between;gap:2px 8px;padding:1px 4px;font-size:12px;display:flex}.viz-obj li[data-changed]{background:var(--lu-yellow-soft)}.viz-gauge{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);height:12px;overflow:hidden;-webkit-mask:repeating-linear-gradient(90deg,#000 0 9px,#0000 9px 12px);mask:repeating-linear-gradient(90deg,#000 0 9px,#0000 9px 12px)}.viz-gauge span{background:var(--lu-green);height:100%;transition:width .5s var(--lu-ease), background-color .3s;display:block}.viz-gauge[data-state=reachable] span{background:var(--lu-red)}.viz-gauge[data-state=unreachable] span{background:var(--lu-orange)}.viz-gauge+.viz-muted{margin:6px 0 0;padding:0}.viz-gc{flex-direction:column;gap:10px;display:flex}.viz-gc-graph{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);padding:6px}.viz-gc-graph svg{width:100%;max-width:480px;height:auto;margin:0 auto;display:block;overflow:visible}.viz-gc-edge path{fill:none;stroke:var(--lu-text-3);stroke-width:1.6px;transition:stroke .2s}.viz-gc-edge[data-hot] path{stroke:var(--lu-green);stroke-width:2px}.viz-gc-edge[data-cut] path{stroke:var(--lu-red);stroke-dasharray:4 4;opacity:.6}.viz-gc-edge path.viz-gc-hit{stroke:#0000;stroke-width:18px;stroke-dasharray:none;pointer-events:stroke;cursor:pointer}.viz-gc-arrowhead{fill:var(--lu-text-3)}.viz-gc-scissors{color:var(--lu-red-ink);pointer-events:none}.viz-gc-node circle{fill:var(--lu-surface);stroke:var(--lu-border-strong);stroke-width:1.5px;transition:fill .25s,stroke .25s}.viz-gc-node[data-root] circle{fill:var(--lu-violet-soft);stroke:var(--lu-violet)}.viz-gc-node[data-marked] circle{fill:var(--lu-green-soft);stroke:var(--lu-green);stroke-width:2px}.viz-gc-node[data-garbage] circle{fill:var(--lu-red-soft);stroke:var(--lu-red);stroke-dasharray:3 3}.viz-gc-label{fill:var(--lu-text-2);font-size:10px;font-family:var(--lu-font-mono)}.viz-gc-check{fill:var(--lu-green-ink);font-size:12px;font-weight:700}.viz-gc-edges{flex-wrap:wrap;gap:6px;display:flex}.viz-dt{flex-direction:column;gap:12px;display:flex}.viz-dt-actions{flex-wrap:wrap;gap:6px;display:flex}.viz-fire{min-height:52px;font:inherit;touch-action:manipulation;flex:140px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:16px;font-weight:700;display:inline-flex}.viz-dt-sliders{grid-template-columns:minmax(0,1fr);gap:6px 16px;display:grid}@container viz (min-width:520px){.viz-dt-sliders{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.viz-slider{color:var(--lu-text-2);flex-direction:column;font-size:13px;display:flex}.viz-slider input{width:100%;height:var(--viz-tap);accent-color:var(--lu-violet)}.viz-tls{flex-direction:column;gap:10px;display:flex}.viz-tl{--tl:var(--lu-orange-ink);--tl-bg:var(--lu-orange-soft);border:2px solid var(--lu-border);border-radius:var(--lu-r);padding:8px 10px}.viz-tl[data-tone=debounce]{--tl:var(--lu-violet-ink);--tl-bg:var(--lu-violet-soft)}.viz-tl[data-tone=throttle]{--tl:var(--lu-blue-ink);--tl-bg:var(--lu-blue-soft)}.viz-tl-head{justify-content:space-between;gap:8px;font-size:13px;font-weight:600;display:flex}.viz-tl-count{background:var(--tl-bg);min-width:28px;color:var(--tl);text-align:center;border-radius:999px;padding:0 6px}.viz-tl-track{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);height:28px;margin:6px 0 4px;position:relative;overflow:hidden}.viz-tl-band{background:var(--tl-bg);position:absolute;top:0;bottom:0}.viz-tl-dot{background:var(--tl);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%}.viz-tl-pending{border:2px dashed var(--tl);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%}.viz-tl-caption{color:var(--lu-text-2);margin:0;padding:0;font-size:12px}.viz-pipeline{flex-direction:column;gap:4px;display:flex}.viz-lane{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-bg);padding:8px 10px;transition:border-color .2s}.viz-lane[data-active]{border-color:var(--lu-violet)}.viz-lane-head{color:var(--lu-text-2);gap:8px;margin-bottom:6px;font-size:12px;display:flex}.viz-lane-items{flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;display:flex}.viz-fruit{background:var(--lu-surface-2);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.viz-fruit-emoji{display:grid}.viz-fruit[data-current]{box-shadow:0 0 0 2px var(--lu-violet);background:var(--lu-violet-soft)}.viz-fruit[data-rejected]{text-decoration:line-through}.viz-fruit-x{color:var(--lu-red-ink)}.viz-pipe{color:var(--lu-text-3);padding:0 10px;font-size:12px;transition:color .2s}.viz-pipe[data-on]{color:var(--lu-violet-ink)}.viz-acc{justify-content:space-between;align-items:center;display:flex}.viz-acc .viz-lane-head{margin:0}.viz-acc-value{font-size:22px;font-weight:700}.viz-pingpong{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.viz-side-box{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-bg);flex-direction:column;gap:6px;min-height:86px;padding:10px;transition:border-color .2s,box-shadow .2s;display:flex;position:relative}.viz-side-box[data-active]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-side-box .viz-muted{margin:0;padding:0}.viz-side-box-head{font-size:13px;font-weight:600}.viz-side-box .viz-badge{align-self:flex-start}.viz-ball{display:grid;position:absolute;top:8px;right:10px}.viz-wire{place-items:center;min-height:40px;display:grid}.viz-msg{background:var(--lu-violet-soft);max-width:100%;color:var(--lu-violet-ink);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.viz-msg[data-dir=out]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-showcase-toc{flex-wrap:wrap;gap:6px;margin:16px 0 8px;display:flex}.viz-showcase-section{margin-top:36px;scroll-margin-top:64px}.viz-showcase-section>h2{margin:0 0 4px;font-size:22px;font-weight:700}.viz-showcase-h,.viz-showcase-toc .viz-chip{align-items:center;gap:8px;display:flex}.viz-showcase-toc .viz-chip{gap:5px;display:inline-flex}.viz-showcase-part{border-top:2px solid var(--lu-border);margin:56px 0 0;padding-top:20px;font-size:26px;font-weight:700}.viz-showcase-meta{color:var(--lu-text-2);margin:18px 0 -6px;font-size:13px}.viz-showcase-meta code{font-size:12px}.viz-field{gap:6px;margin-bottom:10px;display:flex}.viz-field input{min-width:0;height:var(--viz-tap);border:2px solid var(--lu-border-strong);border-radius:var(--lu-r);background:var(--lu-surface);color:var(--lu-text);font-family:var(--lu-font-mono);flex:auto;padding:0 12px;font-size:16px}.viz-field input:focus-visible{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft);outline:none}.viz-field input[aria-invalid=true]{border-color:var(--lu-red)}.viz .viz-field-error{color:var(--lu-red-ink);margin:-4px 0 10px;font-size:12.5px}.viz-fp-insight{margin-top:0;font-size:13.5px;line-height:1.5}.viz-fp-facts{flex-direction:column;gap:4px;display:flex}.viz-fp-facts li{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;padding:4px 8px;font-size:12.5px;display:flex}.viz-fp-facts strong{font-family:var(--lu-font-mono);color:var(--lu-violet-ink)}.viz-fp{--fp-sign:var(--lu-pink-ink);--fp-sign-bg:var(--lu-pink-soft);--fp-exp:var(--lu-orange-ink);--fp-exp-bg:var(--lu-orange-soft);--fp-frac:var(--lu-blue-ink);--fp-frac-bg:var(--lu-blue-soft);gap:var(--viz-gap);flex-direction:column;display:flex}.viz-fp [data-field=sign]{--fp:var(--fp-sign);--fp-bg:var(--fp-sign-bg)}.viz-fp [data-field=exp]{--fp:var(--fp-exp);--fp-bg:var(--fp-exp-bg)}.viz-fp [data-field=frac]{--fp:var(--fp-frac);--fp-bg:var(--fp-frac-bg)}.viz-fp .viz-field,.viz-fp .viz-presets{margin-bottom:0}.viz-fp-head{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.viz-fp-value{font-size:20px;font-weight:700}.viz-fp-legend{color:var(--lu-text-2);flex-wrap:wrap;gap:4px 12px;margin-bottom:6px;font-size:11.5px;display:flex}.viz-fp-legend span:before{content:"";background:var(--fp);border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.viz-fp-bits{flex-wrap:wrap;gap:6px 10px;display:flex}.viz-fp-field{display:contents}.viz-fp-chunk{gap:1px;display:inline-flex}.viz-fp-bit{background:var(--fp-bg);width:13px;height:20px;color:var(--fp);font-family:var(--lu-font-mono);border-radius:3px;place-items:center;font-size:10.5px;line-height:1;transition:background-color .18s,color .18s;display:inline-grid}.viz-fp-bit[data-on]{background:var(--fp);color:var(--lu-surface);font-weight:700}.viz-fp-bit[data-diff]{box-shadow:0 0 0 2px var(--lu-red)}.viz-fp-dl{grid-template-columns:minmax(0,1fr);gap:4px;margin:10px 0 0;font-size:12.5px;display:grid}.viz-fp-dl>div{border-left:3px solid var(--fp);border-radius:var(--lu-r-xs);background:var(--lu-surface-2);gap:8px;padding:3px 8px;display:flex}.viz-fp-dl dt{min-width:76px;color:var(--fp);font-weight:600}.viz-fp-dl dd{font-family:var(--lu-font-mono);margin:0}.viz .viz-fp-formula{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-direction:column;gap:4px;margin-top:10px;padding:8px 10px;font-size:13px;display:flex}.viz-fp-formula code{overflow-wrap:anywhere}.viz-fp-formula [data-field=frac]{color:var(--fp-frac)}.viz-fp-formula sup{color:var(--fp-exp);font-size:.75em}.viz .viz-fp-exact{overflow-wrap:anywhere;word-break:break-all;margin-bottom:6px;font-size:13px;line-height:1.6}.viz-fp-exact mark{background:var(--lu-red-soft);color:var(--lu-red-ink);border-radius:3px;padding:0 1px}.viz-fp-exact mark[data-tone=success]{color:inherit;background:0 0}.viz-fp-ruler{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:6px;display:grid}.viz-fp-tick{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-direction:column;gap:2px;min-width:0;padding:6px 8px;font-size:12px;display:flex}.viz-fp-tick .viz-muted{font-size:11px}.viz-fp-tick code{overflow-wrap:anywhere}.viz-fp-tick[data-current]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 2px var(--lu-violet)}.viz-fp-compare{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.viz-fp-compare-label{flex-wrap:wrap;gap:2px 8px;font-size:12.5px;display:flex}.viz-fp-compare-label+.viz-fp-bits{margin-bottom:4px}.viz-fp .viz-panel>.viz-panel-body>.viz-muted{margin-top:6px}.viz-rx-cells{font-family:var(--lu-font-mono);flex-wrap:wrap;align-items:flex-start;gap:3px;display:flex}.viz-rx-slash{height:32px;color:var(--lu-text-3);place-items:center;padding:0 2px;font-size:15px;display:inline-grid}.viz-rx-cell{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);min-width:26px;height:32px;box-shadow:inset 0 0 0 2px var(--lu-border);place-items:center;padding:0 4px;font-size:15px;transition:background-color .16s,box-shadow .16s,color .16s;display:inline-grid}.viz-rx-pattern .viz-rx-cell{min-width:20px;padding:0 2px}.viz-rx-cell[data-active=info],.viz-rx-cell[data-state=info]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 2px var(--lu-violet);color:var(--lu-violet-ink)}.viz-rx-cell[data-active=ok],.viz-rx-cell[data-state=ok],.viz-rx-cell[data-state=match]{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green);color:var(--lu-green-ink)}.viz-rx-cell[data-active=fail],.viz-rx-cell[data-state=fail]{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red);color:var(--lu-red-ink)}.viz-rx-cell[data-active=back],.viz-rx-cell[data-state=back]{background:var(--lu-orange-soft);box-shadow:inset 0 0 0 2px var(--lu-orange);color:var(--lu-orange-ink)}.viz-rx-cell[data-state=taken]{background:var(--lu-green-soft)}@supports (color:color-mix(in lab, red, red)){.viz-rx-cell[data-state=taken]{background:color-mix(in srgb, var(--lu-green-soft) 60%, var(--lu-surface-2))}}.viz-rx-cell[data-state=past]{opacity:.45}.viz-rx-cell[data-end]{color:var(--lu-text-3);font-size:13px}.viz-rx-slot{flex-direction:column;align-items:center;gap:1px;padding-bottom:12px;display:inline-flex;position:relative}.viz-rx-index{color:var(--lu-text-3);font-size:10px}.viz-rx-start{color:var(--lu-violet-ink);font-size:9px;position:absolute;bottom:-2px}.viz-rx-status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.viz-rx-counter{align-items:baseline;gap:6px;display:inline-flex}.viz-rx-counter strong{font-size:22px}[data-rx-tone=fail]{color:var(--lu-red-ink)}[data-rx-tone=back]{color:var(--lu-orange-ink)}.viz-rx-after{margin-top:var(--viz-gap)}.viz-rx-chart{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.viz-rx-chart-row{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;display:grid}.viz-rx-bars{flex-direction:column;gap:2px;display:flex}.viz-rx-bar{--bar:var(--lu-red-ink);align-items:center;gap:6px;min-width:0;display:flex}.viz-rx-bar[data-tone=flat]{--bar:var(--lu-green-ink)}.viz-rx-bar>span{background:var(--bar);border-radius:3px;flex:none;min-width:2px;max-width:calc(100% - 64px);height:9px}.viz-rx-bar code{color:var(--lu-text-2);font-size:11px}.viz-rx-key{background:var(--lu-red);vertical-align:middle;border-radius:2px;width:10px;height:10px;display:inline-block}.viz-rx-key[data-tone=flat]{background:var(--lu-green)}.viz-uni{--uni-cp:var(--lu-violet-ink);--uni-cp-bg:var(--lu-violet-soft);--uni-unit:var(--lu-blue-ink);--uni-unit-bg:var(--lu-blue-soft);--uni-sur:var(--lu-orange-ink);--uni-sur-bg:var(--lu-orange-soft);--uni-byte:var(--lu-green-ink);--uni-byte-bg:var(--lu-green-soft);gap:var(--viz-gap);flex-direction:column;display:flex}.viz-uni .viz-presets,.viz-uni .viz-field{margin-bottom:0}.viz-uni .viz-field input{font-family:var(--lu-font)}.viz-uni-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}@container viz (min-width:620px){.viz-uni-counts{grid-template-columns:repeat(4,minmax(0,1fr))}}.viz-uni-counts>div{--tone:var(--lu-text-2);--tone-bg:var(--lu-surface-2);border-radius:var(--lu-r);background:var(--tone-bg);flex-direction:column;gap:1px;min-width:0;padding:8px 10px;display:flex}.viz-uni-counts>div[data-tone=units]{--tone:var(--uni-unit);--tone-bg:var(--uni-unit-bg)}.viz-uni-counts>div[data-tone=cps]{--tone:var(--uni-cp);--tone-bg:var(--uni-cp-bg)}.viz-uni-counts>div[data-tone=graphemes]{--tone:var(--lu-text);--tone-bg:var(--lu-surface-3)}.viz-uni-counts>div[data-tone=bytes]{--tone:var(--uni-byte);--tone-bg:var(--uni-byte-bg)}.viz-uni-counts code{color:var(--tone);font-size:11.5px}.viz-uni-counts strong{font-size:24px;line-height:1.2}.viz-uni-counts span{color:var(--lu-text-2);font-size:11px}.viz-uni-legend{color:var(--lu-text-2);flex-wrap:wrap;gap:4px 12px;margin-bottom:8px;font-size:11.5px;display:flex}.viz-uni-legend span:before{content:"";border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.viz-uni-legend [data-tone=cps]:before{background:var(--uni-cp)}.viz-uni-legend [data-tone=units]:before{background:var(--uni-unit)}.viz-uni-legend [data-tone=surrogate]:before{background:var(--uni-sur)}.viz-uni-legend [data-tone=bytes]:before{background:var(--uni-byte)}.viz-uni-graphemes{flex-wrap:wrap;gap:8px;display:flex}.viz-uni-g{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);flex-direction:column;gap:6px;min-width:0;max-width:100%;padding:6px;display:flex}.viz-uni-g[data-many]{border-color:var(--uni-cp)}.viz-uni-glyph{border-bottom:2px dashed var(--lu-border);text-align:center;padding:2px 0 4px;font-size:28px;line-height:1.15}.viz-uni-cps{flex-wrap:wrap;gap:4px;display:flex}.viz-uni-cp{border-radius:var(--lu-r-sm);background:var(--uni-cp-bg);flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:4px;display:flex}.viz-uni-cp-char{font-size:17px;line-height:1.2}.viz-uni-cp-label{color:var(--uni-cp);font-size:11px;font-weight:600}.viz-uni-role{text-align:center;max-width:90px;color:var(--lu-text-2);font-size:10px;line-height:1.25}.viz-uni-row{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.viz-uni-unit,.viz-uni-byte{border-radius:var(--lu-r-xs);padding:1px 4px;font-size:10.5px;line-height:1.4}.viz-uni-unit{background:var(--uni-unit-bg);color:var(--uni-unit);box-shadow:inset 0 0 0 2px var(--uni-unit)}@supports (color:color-mix(in lab, red, red)){.viz-uni-unit{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--uni-unit) 40%, transparent)}}.viz-uni-unit[data-kind=high],.viz-uni-unit[data-kind=low]{background:var(--uni-sur-bg);color:var(--uni-sur);box-shadow:inset 0 0 0 2px var(--uni-sur);font-weight:600}.viz-uni-byte{background:var(--uni-byte-bg);color:var(--uni-byte)}.viz-uni-ops{flex-direction:column;gap:8px;display:flex}.viz-uni-ops li{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-direction:column;gap:3px;padding:6px 8px;display:flex}.viz-uni-ops li>code:first-child{color:var(--lu-violet-ink);font-weight:600}.viz-uni-ops .viz-muted{font-size:12px}.viz-uni-array{font-family:var(--lu-font-mono);flex-wrap:wrap;align-items:center;gap:3px 4px;font-size:13px;display:flex}.viz-uni-array code{border-radius:var(--lu-r-xs);background:var(--lu-surface);box-shadow:inset 0 0 0 2px var(--lu-border);padding:0 4px}.viz-uni-array code[data-broken]{background:var(--lu-red-soft);color:var(--lu-red-ink);box-shadow:inset 0 0 0 2px var(--lu-red)}.viz-hc-tree,.viz-hc-children{flex-direction:column;gap:6px;display:flex}.viz .viz-hc-children{border-left:2px solid var(--lu-border);margin-top:6px;margin-left:10px;padding-left:10px}.viz-hc-map{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:40px;padding:5px 8px;transition:border-color .2s,box-shadow .2s;display:flex}.viz-hc-map[data-hot=new]{border-color:var(--lu-green);box-shadow:0 0 0 3px var(--lu-green-soft)}.viz-hc-map[data-hot=reuse]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-hc-via{background:var(--lu-surface-3);font-family:var(--lu-font-mono);color:var(--lu-text-2);border-radius:999px;padding:0 6px;font-size:11px}.viz-hc-map-id{font-size:13px;font-weight:700}.viz-hc-props{color:var(--lu-text-2);font-size:12px}.viz-hc-objs{flex-wrap:wrap;gap:4px;margin-left:auto;display:inline-flex}.viz-hc-obj{background:var(--lu-violet-soft);min-width:26px;height:24px;color:var(--lu-violet-ink);font-family:var(--lu-font-mono);border-radius:999px;place-items:center;padding:0 6px;font-size:12.5px;font-weight:700;display:inline-grid}.viz-hc-obj[data-active]{box-shadow:0 0 0 2px var(--lu-violet)}.viz-hc-dict{border:2px dashed var(--lu-red);border-radius:var(--lu-r);background:var(--lu-red-soft);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding:6px 8px;font-size:12.5px;font-weight:600;display:flex}.viz-hc-cards{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px;display:grid}.viz-hc-card{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);padding:6px 8px;transition:border-color .2s}.viz-hc-card[data-active]{border-color:var(--lu-violet)}.viz-hc-card[data-dict]{border-style:dashed;border-color:var(--lu-red)}.viz-hc-card-head{font-family:var(--lu-font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex}.viz-hc-slots{flex-direction:column;gap:2px;display:flex}.viz-hc-slots li{gap:6px;font-size:12px;display:flex}.viz-hc-states li[data-on][data-state=monomorphic]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-hc-states li[data-on][data-state=polymorphic]{background:var(--lu-yellow-soft);color:var(--lu-orange-ink)}.viz-hc-states li[data-on][data-state=megamorphic]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-hc-table{flex-direction:column;gap:4px;margin-top:10px;display:flex}.viz-hc-tr{border-radius:var(--lu-r-sm);grid-template-columns:36px 40px minmax(0,1fr);align-items:center;gap:8px;padding:4px 6px;font-size:12.5px;display:grid}.viz-hc-tr+.viz-hc-tr{background:var(--lu-surface-2)}.viz-hc-tr.viz-muted{font-size:11px}.viz-hc-cache{flex-wrap:wrap;align-items:center;gap:4px;min-height:32px;display:flex}.viz-hc-state{background:var(--lu-surface-3);border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:600}.viz-hc-state[data-state=monomorphic]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-hc-state[data-state=polymorphic]{background:var(--lu-yellow-soft);color:var(--lu-orange-ink)}.viz-hc-state[data-state=megamorphic]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-hc-entry{border-radius:var(--lu-r-sm);background:var(--lu-surface);box-shadow:inset 0 0 0 2px var(--lu-border);padding:1px 6px;font-size:12px}.viz-hc-entry[data-hit]{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green)}.viz-hc-entry[data-global]{font-family:var(--lu-font);background:var(--lu-red-soft);box-shadow:none}.viz-hc-shapes{flex-direction:column;gap:4px;display:flex}.viz-hc-shapes li{border-radius:var(--lu-r-sm);opacity:.45;flex-wrap:wrap;align-items:center;gap:2px 10px;min-height:36px;padding:4px 8px;font-size:12.5px;transition:opacity .2s,background-color .2s;display:flex}.viz-hc-shapes li[data-seen]{opacity:1;background:var(--lu-surface-2)}.viz-hc-shapes li[data-current]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 2px var(--lu-violet)}.viz-hc-shapes li .viz-badge{margin-left:auto}.viz-tc{flex-direction:column;gap:8px;display:flex}.viz-tc-dock{border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r);flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:48px;padding:6px 8px;display:flex}.viz-tc-dock:before{content:attr(data-label);color:var(--lu-text-3);font-size:11.5px}.viz-tc-dock[data-on]{border-style:solid;border-color:var(--lu-green);background:var(--lu-green-soft)}.viz-tc-edition{color:var(--lu-green-ink);font-weight:700}.viz-tc-stages{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}@container viz (min-width:620px){.viz-tc-stages{grid-template-columns:repeat(6,minmax(0,1fr))}}.viz-tc-stage{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-bg);flex-direction:column;gap:4px;min-width:0;padding:6px 8px;transition:border-color .2s,background-color .2s,opacity .2s;display:flex}.viz-tc-stage[data-state=current]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-tc-stage[data-state=passed]{background:var(--lu-green-soft);border-color:#0000}.viz-tc-stage[data-state=skipped]{opacity:.6;border-style:dashed}.viz-tc-head{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.viz-tc-num{font-size:13px;font-weight:700}.viz-tc-name{color:var(--lu-text-2);font-size:11.5px}.viz-tc-since{background:var(--lu-yellow-soft);border-radius:999px;padding:0 6px;font-size:10.5px}.viz-tc-criteria{flex-direction:column;gap:2px;display:flex}.viz .viz-tc-criteria li{color:var(--lu-text-2);padding-left:10px;font-size:11.5px;line-height:1.35;position:relative}.viz-tc-criteria li:before{content:"·";position:absolute;left:2px}@container viz (max-width:619px){.viz-tc-stage:not([data-state=current]) .viz-tc-criteria{display:none}}.viz-tc-card{border-radius:var(--lu-r-sm);background:var(--lu-surface);min-width:0;box-shadow:var(--shadow-card);flex-direction:column;gap:3px;padding:6px 8px;font-size:12.5px;display:flex}.viz-tc-card code{overflow-wrap:anywhere;color:var(--lu-violet-ink);font-size:11.5px}@media (prefers-reduced-motion:reduce){.viz-fp-bit,.viz-rx-cell,.viz-hc-map,.viz-hc-card,.viz-hc-shapes li,.viz-tc-stage{transition:none}}.viz-px{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}.viz-px-box{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);min-width:0;padding:10px;transition:border-color .2s,box-shadow .2s}.viz-px-box[data-active]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-px-box[data-tone=proxy]{background:var(--lu-violet-soft)}@supports (color:color-mix(in lab, red, red)){.viz-px-box[data-tone=proxy]{background:color-mix(in srgb, var(--lu-violet-soft) 45%, var(--lu-bg))}}.viz-px-box[data-tone=target][data-active]{border-color:var(--lu-green);box-shadow:0 0 0 3px var(--lu-green-soft)}.viz-px-head{color:var(--lu-text-2);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.viz-px-op{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 10px;font-size:13px;display:inline-flex}.viz-px-internal{font-family:var(--lu-font-mono);color:var(--lu-violet-ink);font-size:11px}.viz-px-result{color:var(--lu-green-ink);margin-top:8px;font-size:12.5px}.viz-px-result[data-tone=error]{color:var(--lu-red-ink)}.viz-px-traps{flex-direction:column;gap:3px;display:flex}.viz .viz-px-traps li{border-radius:var(--lu-r-sm);color:var(--lu-text-3);flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:3px 8px;font-size:12.5px;transition:background-color .2s,box-shadow .2s;display:flex}.viz .viz-px-traps li[data-defined]{color:var(--lu-text)}.viz .viz-px-traps li[data-active]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 2px var(--lu-violet)}.viz .viz-px-traps li[data-active]:not([data-defined]){background:var(--lu-surface-2);box-shadow:inset 0 0 0 2px var(--lu-border);color:var(--lu-text-2)}.viz .viz-px-traps li[data-tone=danger]{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red)}.viz-px-trap-state{margin-left:auto;font-size:11px}.viz .viz-px-traps li[data-defined] .viz-px-trap-state{color:var(--lu-violet-ink)}.viz-px-args{color:var(--lu-text-2);flex-basis:100%;font-size:12px}.viz .viz-px-more{color:var(--lu-text-3);margin-top:6px;font-size:11px}.viz-mod-lanes{gap:var(--viz-gap);grid-template-columns:minmax(0,1fr);display:grid}@container viz (min-width:620px){.viz-mod-lanes[data-count="2"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.viz-mod-lane[data-lane=cjs]{background:var(--lu-orange-soft)}@supports (color:color-mix(in lab, red, red)){.viz-mod-lane[data-lane=cjs]{background:color-mix(in srgb, var(--lu-orange-soft) 35%, var(--lu-bg))}}.viz-mod-lane[data-lane=esm]{background:var(--lu-blue-soft)}@supports (color:color-mix(in lab, red, red)){.viz-mod-lane[data-lane=esm]{background:color-mix(in srgb, var(--lu-blue-soft) 35%, var(--lu-bg))}}.viz-mod-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px 26px;display:grid}.viz-mod-box{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);min-width:0;padding:8px;transition:border-color .2s,box-shadow .2s}.viz-mod-box[data-tone=active]{border-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft)}.viz-mod-box[data-tone=done]{border-color:var(--lu-green)}@supports (color:color-mix(in lab, red, red)){.viz-mod-box[data-tone=done]{border-color:color-mix(in srgb, var(--lu-green) 55%, transparent)}}.viz-mod-box[data-tone=error]{border-color:var(--lu-red);box-shadow:0 0 0 3px var(--lu-red-soft)}.viz-mod-head{flex-wrap:wrap;align-items:center;gap:4px 6px;margin-bottom:6px;font-size:12px;display:flex}.viz-mod-file{font-weight:600}.viz-mod-order{background:var(--lu-green-soft);color:var(--lu-green-ink);border-radius:999px;padding:0 6px;font-size:11px;font-weight:600}.viz-mod-status{font-family:var(--lu-font-mono);color:var(--lu-text-3);margin-left:auto;font-size:10.5px}.viz-mod-box[data-tone=error] .viz-mod-status{color:var(--lu-red-ink)}.viz-mod-bindings{flex-direction:column;gap:3px;display:flex}.viz .viz-mod-bindings li{border-radius:var(--lu-r-sm);flex-wrap:wrap;align-items:baseline;gap:2px 6px;padding:2px 4px;font-size:12px;display:flex}.viz .viz-mod-bindings li[data-state=live]{background:var(--lu-violet-soft)}.viz .viz-mod-bindings li[data-state=copy]{background:var(--lu-orange-soft)}.viz .viz-mod-bindings li[data-state=tdz]{background:repeating-linear-gradient(135deg, var(--lu-red-soft) 0 6px, transparent 6px 12px)}.viz .viz-mod-bindings li[data-state=tdz] .viz-var-val,.viz .viz-mod-bindings li[data-state=error] .viz-var-val{color:var(--lu-red-ink);font-weight:600}.viz .viz-mod-bindings li[data-state=error]{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red)}.viz-mod-bindings .viz-var-val{margin-left:auto}.viz-mod-kind{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);font-family:var(--lu-font-mono);color:var(--lu-text-2);padding:0 4px;font-size:10px}.viz-wk{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}@container viz (min-width:560px){.viz-wk{grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr);align-items:start}.viz-wk-wire{align-self:center;min-height:120px}}.viz-wk-lane{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);min-width:0;padding:10px;transition:border-color .2s}.viz-wk-lane[data-status=run]{border-color:var(--lu-violet)}.viz-wk-head{flex-wrap:wrap;align-items:center;gap:4px 6px;margin-bottom:6px;font-size:13px;display:flex}.viz-wk-title{font-weight:600}.viz-wk-status{color:var(--lu-text-2);margin-left:auto;font-size:11px}.viz-wk-lane[data-status=run] .viz-wk-status{color:var(--lu-violet-ink)}.viz-wk-sub{color:var(--lu-text-3);margin:8px 0 4px;font-size:11px}.viz-wk-mem{flex-direction:column;gap:4px;display:flex}.viz .viz-wk-mem li{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:4px 6px;font-size:12px;transition:background-color .2s;display:flex}.viz .viz-wk-mem li[data-state=new],.viz .viz-wk-mem li[data-state=changed]{background:var(--lu-yellow-soft)}.viz .viz-wk-mem li[data-state=copy]{background:var(--lu-orange-soft)}.viz .viz-wk-mem li[data-state=moved]{background:var(--lu-green-soft)}.viz .viz-wk-mem li[data-state=detached]{background:repeating-linear-gradient(135deg, var(--lu-red-soft) 0 6px, transparent 6px 12px);color:var(--lu-red-ink)}.viz-wk-detail{font-family:var(--lu-font-mono);color:var(--lu-text-2);font-size:11.5px}.viz .viz-wk-mem li[data-state=detached] .viz-wk-detail{color:var(--lu-red-ink)}.viz-wk-bar{background:var(--lu-border);border-radius:3px;flex-basis:100%;height:6px;overflow:hidden}.viz-wk-bar span{background:var(--lu-violet);border-radius:3px;height:100%;display:block}.viz .viz-wk-mem li[data-state=copy] .viz-wk-bar span{background:var(--lu-orange)}.viz .viz-wk-mem li[data-state=moved] .viz-wk-bar span{background:var(--lu-green)}.viz-wk-wire{border-radius:var(--viz-radius);background:repeating-linear-gradient(90deg, var(--lu-border) 0 6px, transparent 6px 12px) center / 100% 2px no-repeat;place-items:center;min-height:56px;padding:4px;display:grid}.viz-wk-idle{background:var(--lu-surface);font-family:var(--lu-font-mono);color:var(--lu-text-3);border-radius:999px;padding:2px 8px;font-size:11px}.viz-wk-msg{border-radius:var(--lu-r);background:var(--viz-api-bg);max-width:220px;box-shadow:inset 0 0 0 2px var(--viz-api);flex-direction:column;align-items:center;gap:2px;padding:6px 10px;display:flex}@supports (color:color-mix(in lab, red, red)){.viz-wk-msg{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--viz-api) 40%, transparent)}}.viz-wk-msg{text-align:center;font-size:12px}.viz-wk-msg[data-mode=transfer]{background:var(--lu-green-soft);box-shadow:inset 0 0 0 2px var(--lu-green)}.viz-wk-msg[data-mode=error]{background:var(--lu-red-soft);box-shadow:inset 0 0 0 2px var(--lu-red);color:var(--lu-red-ink)}.viz-wk-arrow{font-size:18px;line-height:1.1}.viz-wk-dir{color:var(--lu-text-3);font-size:10.5px}.viz-wk-compare{gap:var(--viz-gap);margin-top:var(--viz-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.viz-wk-compare>div{border-radius:var(--viz-radius);background:var(--lu-orange-soft);flex-direction:column;gap:2px;padding:10px;font-size:12.5px;display:flex}.viz-wk-compare>div[data-mode=transfer]{background:var(--lu-green-soft)}.viz-xss-url{min-height:var(--viz-tap);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface-2);font-family:var(--lu-font-mono);flex-wrap:wrap;align-items:center;gap:4px;padding:6px 12px;font-size:12px;display:flex}.viz-xss-host{color:var(--lu-text-2)}.viz .viz-xss-payload{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);color:var(--lu-text);padding:1px 4px;transition:background-color .2s,color .2s}.viz-xss-url[data-stage=source] .viz-xss-payload,.viz-xss-url[data-stage=sink] .viz-xss-payload{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-xss-flow{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.viz .viz-xss-flow li:not(.viz-xss-flow-arrow){border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);color:var(--lu-text-3);flex-direction:column;padding:4px 10px;font-size:12px;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.viz .viz-xss-flow li[data-on]{color:var(--lu-text);border-color:var(--lu-orange);background:var(--lu-orange-soft)}.viz .viz-xss-flow li[data-on][data-tone=danger]{border-color:var(--lu-red);background:var(--lu-red-soft)}.viz .viz-xss-flow li[data-on][data-tone=safe]{border-color:var(--lu-green);background:var(--lu-green-soft)}.viz .viz-xss-flow li[data-on][data-tone=blocked]{border-color:var(--lu-violet);background:var(--lu-violet-soft)}.viz-xss-flow-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--lu-text-3);font-size:10px}.viz-xss-flow-arrow{color:var(--lu-text-3)}.viz-xss-root{font-size:12px;display:block}.viz .viz-xss-tree ul{border-left:2px dashed var(--lu-border-strong);flex-direction:column;gap:4px;margin-top:4px;margin-left:6px;padding-left:14px;display:flex}.viz .viz-xss-node{border-radius:var(--lu-r-sm);flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:3px 6px;font-size:12px;display:flex}.viz .viz-xss-node[data-tone=danger]{background:var(--lu-red-soft)}.viz .viz-xss-node[data-tone=safe]{background:var(--lu-green-soft)}.viz .viz-xss-node[data-tone=muted]{background:var(--lu-surface-2);color:var(--lu-text-2)}.viz-xss-tag{color:var(--code-token-keyword)}.viz-xss-attr[data-danger]{color:var(--lu-red-ink);font-weight:600}.viz-xss-attr[data-removed]{color:var(--lu-text-3);text-decoration:line-through}.viz-xss-flag{color:var(--lu-text-2);font-size:11px}.viz .viz-xss-node[data-tone=danger] .viz-xss-flag{color:var(--lu-red-ink);font-weight:600}.viz-xss-below{gap:var(--viz-gap);grid-template-columns:minmax(0,1fr);display:grid}@container viz (min-width:620px){.viz-xss-below{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.viz-xss-page{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);min-height:110px;overflow:hidden}.viz-xss-page-bar{border-bottom:2px solid var(--lu-border);background:var(--lu-surface-2);color:var(--lu-text-2);padding:4px 10px;font-size:11px}.viz-xss-page-body{flex-wrap:wrap;align-items:center;gap:6px;padding:12px 10px;font-size:13px;display:flex}.viz-xss-page-text{white-space:pre-wrap}.viz-xss-broken{border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r-xs);min-width:34px;height:26px;font-family:var(--lu-font-mono);color:var(--lu-text-3);place-items:center;padding:0 6px;font-size:11px;display:inline-grid}.viz-xss-alert{border-radius:var(--lu-r);background:var(--lu-surface);min-width:170px;box-shadow:var(--shadow-pop);z-index:3;flex-direction:column;gap:4px;padding:10px 12px;font-size:13px;display:flex;position:absolute;top:30px;left:50%;translate:-50%}.viz-xss-ok{border-radius:var(--lu-r-sm);background:var(--lu-violet);color:var(--lu-on-color);align-self:flex-end;padding:2px 12px;font-size:12px}.viz-xss-verdict{border-radius:var(--lu-r-sm);background:var(--lu-green-soft);color:var(--lu-green-ink);margin-top:8px;padding:6px 10px;font-size:12.5px;font-weight:500}.viz-xss-verdict[data-tone=danger]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-xss-verdict[data-tone=blocked]{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.viz-web-duo{gap:var(--viz-gap);grid-template-columns:minmax(0,1fr);display:grid}@container viz (min-width:520px){.viz-web-duo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.viz-web-flags{flex-wrap:wrap;gap:6px;display:flex}.viz-web-flags:empty{display:none}.viz-badge[data-tone=danger]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-dom{--ev-capture:var(--lu-blue-ink);--ev-capture-bg:var(--lu-blue-soft);--ev-target:var(--lu-orange-ink);--ev-target-bg:var(--lu-orange-soft);--ev-bubble:var(--lu-green-ink);--ev-bubble-bg:var(--lu-green-soft);min-width:0}.viz-dom-node{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-bg);min-width:0;padding:3px 6px 6px;transition:border-color .2s,box-shadow .2s,background-color .2s}.viz-dom-node[data-path]{background:var(--lu-yellow-soft)}@supports (color:color-mix(in lab, red, red)){.viz-dom-node[data-path]{background:color-mix(in srgb, var(--lu-yellow-soft) 45%, var(--lu-bg))}}.viz-dom-node[data-at]{border-color:var(--ev-capture);box-shadow:0 0 0 2px var(--ev-capture-bg)}.viz-dom-node[data-at][data-phase="2"]{border-color:var(--ev-target);box-shadow:0 0 0 2px var(--ev-target-bg)}.viz-dom-node[data-at][data-phase="3"]{border-color:var(--ev-bubble);box-shadow:0 0 0 2px var(--ev-bubble-bg)}.viz-dom-node[data-at][data-stopped]{border-color:var(--lu-red);box-shadow:0 0 0 2px var(--lu-red-soft)}.viz-dom-node[data-hit]{border-color:var(--lu-green);box-shadow:inset 0 0 0 2px var(--lu-green)}.viz-dom-head{flex-wrap:wrap;align-items:center;gap:3px 6px;min-height:26px;display:flex}.viz .viz-dom-tag{color:var(--lu-text-2);font-size:12px;font-weight:600}.viz-dom-node[data-target]>.viz-dom-head .viz-dom-tag{color:var(--ev-target)}.viz-dom-text{font-size:12.5px}.viz-dom-node[data-done]>.viz-dom-head .viz-dom-text{color:var(--lu-text-3);text-decoration:line-through}.viz-dom-dot{background:var(--ev-capture);width:12px;height:12px;box-shadow:0 0 0 3px var(--ev-capture-bg);border-radius:50%}.viz-dom-node[data-phase="2"]>.viz-dom-head .viz-dom-dot{background:var(--ev-target);box-shadow:0 0 0 3px var(--ev-target-bg)}.viz-dom-node[data-phase="3"]>.viz-dom-head .viz-dom-dot{background:var(--ev-bubble);box-shadow:0 0 0 3px var(--ev-bubble-bg)}.viz-dom-node[data-stopped]>.viz-dom-head .viz-dom-dot{background:var(--lu-red);box-shadow:0 0 0 3px var(--lu-red-soft)}.viz-dom-ls{flex-wrap:wrap;gap:4px;margin-left:auto;display:inline-flex}.viz-dom-l{background:var(--ev-bubble-bg);color:var(--ev-bubble);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;line-height:1.5;transition:box-shadow .16s,transform .16s}.viz-dom-l[data-cap]{background:var(--ev-capture-bg);color:var(--ev-capture)}.viz-dom-l[data-stop]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-dom-l[data-ran]{font-weight:700;transform:scale(1.06);box-shadow:inset 0 0 0 2px}.viz-dom-kids{flex-direction:column;gap:4px;margin-top:2px;display:flex}.viz-ev-kv{flex-direction:column;gap:2px;margin:0;display:flex}.viz-ev-kv>div{border-radius:var(--lu-r-sm);flex-wrap:wrap;justify-content:space-between;gap:2px 10px;padding:3px 6px;font-size:12.5px;display:flex}.viz-ev-kv dt,.viz-ev-kv dd{margin:0}.viz-ev-kv dt{color:var(--lu-text-2)}.viz-ev-kv dd{font-weight:600}.viz-ev-kv>div[data-same]{background:var(--lu-orange-soft)}:is(.viz-rp-stages,.viz-budget) [data-kind=input]{--k:var(--lu-text-2);--k-bg:var(--lu-surface-3)}:is(.viz-rp-stages,.viz-budget) [data-kind=js]{--k:var(--lu-yellow-ink);--k-bg:var(--lu-yellow-soft)}:is(.viz-rp-stages,.viz-budget) [data-kind=style]{--k:var(--lu-pink-ink);--k-bg:var(--lu-pink-soft)}:is(.viz-rp-stages,.viz-budget) :is([data-kind=layout],[data-kind=forced]){--k:var(--lu-violet-ink);--k-bg:var(--lu-violet-soft)}:is(.viz-rp-stages,.viz-budget) [data-kind=paint]{--k:var(--lu-green-ink);--k-bg:var(--lu-green-soft)}:is(.viz-rp-stages,.viz-budget) [data-kind=composite]{--k:var(--lu-blue-ink);--k-bg:var(--lu-blue-soft)}.viz-rp-stages{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}@container viz (min-width:520px) and (max-width:619px){.viz .viz-rp-stages{grid-template-columns:repeat(6,minmax(0,1fr))}}.viz .viz-rp-stages li{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:58px;padding:6px 4px;font-size:15px;transition:background-color .2s,border-color .2s,opacity .2s;display:flex}.viz-rp-stage-name{font-size:12px;font-weight:600;line-height:1.2}.viz-rp-stage-state{color:var(--lu-text-2);font-size:10.5px}.viz-rp-stages li[data-state=run]{border-color:var(--k);background:var(--k-bg);box-shadow:0 0 0 2px var(--k-bg)}.viz-rp-stages li[data-state=run] .viz-rp-stage-state,.viz-rp-stages li[data-state=hit] .viz-rp-stage-state{color:var(--k);font-weight:600}.viz-rp-stages li[data-state=done]{background:var(--lu-surface-2)}.viz-rp-stages li[data-state=hit]{border-color:var(--k);background:var(--k-bg)}.viz-rp-stages li[data-state=skip]{opacity:.45;border-style:dashed}.viz-rp-stages li[data-state=skip] .viz-rp-stage-name{text-decoration:line-through}.viz-rp-warn{border-radius:var(--lu-r-sm);background:var(--lu-red-soft);color:var(--lu-red-ink);padding:6px 10px;font-size:13px;font-weight:600}.viz-budget-track{border-radius:var(--lu-r-sm);background:var(--lu-surface-2);height:32px;display:flex;position:relative;overflow:hidden}.viz-budget[data-over] .viz-budget-track{box-shadow:inset 0 0 0 2px var(--lu-red)}.viz-budget-block{border-right:1px solid var(--lu-surface);background:var(--k-bg);height:100%;box-shadow:inset 0 3px 0 var(--k);color:var(--k);white-space:nowrap;text-overflow:clip;flex:none;padding:0 3px;font-size:10.5px;font-weight:600;line-height:34px;overflow:hidden}.viz-budget-block[data-kind=forced]{background:repeating-linear-gradient(135deg, var(--lu-violet-soft) 0 6px, var(--lu-red-soft) 6px 12px);box-shadow:inset 0 3px 0 var(--lu-red);color:var(--lu-red-ink)}.viz-budget-line{border-left:2px dashed var(--lu-text);pointer-events:none;position:absolute;top:0;bottom:0}.viz-budget-line span{background:var(--lu-surface);color:var(--lu-text-2);border-radius:3px;padding:0 3px;font-size:10px;line-height:1.4;position:absolute;top:1px;left:3px}.viz .viz-budget-legend{flex-wrap:wrap;gap:4px 10px;margin-top:6px;display:flex}.viz .viz-budget-legend li{color:var(--lu-text-2);align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.viz-budget-legend li:before{content:"";background:var(--k);border-radius:3px;width:10px;height:10px}.viz-budget-legend li[data-kind=forced]:before{background:repeating-linear-gradient(135deg, var(--lu-violet) 0 3px, var(--lu-red) 3px 6px)}.viz-budget .viz-muted{margin-top:6px}.viz-http{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-bg);min-width:0;padding:6px 8px;transition:border-color .2s,box-shadow .2s}.viz-http[data-active]{border-color:var(--lu-violet);box-shadow:0 0 0 2px var(--lu-violet-soft)}.viz-http-line{flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12.5px;font-weight:600;display:flex}.viz-http-more{color:var(--lu-text-3);font-size:11px;font-weight:400}.viz .viz-http-hdrs{flex-direction:column;gap:1px;margin-top:4px;display:flex}.viz .viz-http-hdrs li{border-radius:var(--lu-r-xs);padding:1px 4px;font-size:11.5px;line-height:1.45}.viz .viz-http-hdrs code{font-size:11.5px}.viz-http-name{color:var(--lu-text-2)}.viz-http-hdrs li[data-tone=new]{background:var(--lu-yellow-soft)}.viz-http-hdrs li[data-tone=ok]{background:var(--lu-green-soft)}.viz-http-hdrs li[data-tone=bad]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-http-hdrs li[data-tone=muted]{color:var(--lu-text-3)}.viz-http-hdrs li[data-tone=missing]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.viz-http-hdrs li[data-tone=missing] .viz-http-name{color:var(--lu-red-ink);text-decoration:line-through}.viz .viz-http-body{border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);margin-top:4px;padding:3px 6px;font-size:11.5px;display:block}.viz-seq-actors{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;font-size:13px;font-weight:600;display:grid}.viz-seq-actors>span:last-child{text-align:right}.viz-seq-actors small{color:var(--lu-text-3);font-size:11px;font-weight:400;display:block}.viz .viz-seq-body{flex-direction:column;gap:10px;min-height:60px;margin-top:6px;padding:8px 14px;display:flex;position:relative}.viz-seq-body:before,.viz-seq-body:after{content:"";background:var(--lu-border);border-radius:1px;width:2px;position:absolute;top:0;bottom:0}.viz-seq-body:before{left:4px}.viz-seq-body:after{right:4px}.viz-seq-row{flex-direction:column;gap:5px;min-width:0;display:flex;position:relative}.viz-seq-row[data-dir=req]{margin-right:14px}.viz-seq-row[data-dir=res]{margin-left:14px}.viz-seq-arrow{background:var(--lu-violet);height:2px;margin:0 -10px;position:relative}.viz-seq-row[data-dir=req] .viz-seq-arrow{margin-right:-24px}.viz-seq-row[data-dir=res] .viz-seq-arrow{background:var(--lu-green);margin-left:-24px}.viz-seq-arrow:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:8px solid var(--lu-violet);position:absolute;top:-4px;right:-1px}.viz-seq-row[data-dir=res] .viz-seq-arrow:after{border-left:0;border-right:8px solid var(--lu-green);left:-1px;right:auto}.viz-seq-empty{align-self:center;padding:12px 0}.viz-cors-check{border-radius:var(--lu-r-sm);background:var(--lu-red-soft);color:var(--lu-red-ink);align-items:flex-start;gap:6px;margin-top:8px;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.viz-cors-check[data-ok]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-hc-clock{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);padding:8px 10px}.viz-hc-clock .viz-muted{margin-top:6px}.viz-hc-clock-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.viz-hc-time{font-size:16px;font-weight:700}.viz-hc-decision{background:var(--lu-surface-3);color:var(--lu-text-2);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.viz-hc-decision[data-state=fresh]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.viz-hc-decision[data-state=stale]{background:var(--lu-orange-soft);color:var(--lu-orange-ink)}.viz-hc-fresh{border-radius:var(--lu-r-sm);background:var(--lu-orange-soft);height:24px;margin-top:8px;position:relative;overflow:hidden}.viz-hc-fresh-zone{border-right:2px solid var(--lu-green);background:var(--lu-green-soft);position:absolute;top:0;bottom:0;left:0}.viz-hc-age{background:var(--lu-text);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:3px;bottom:3px}.viz-hc-fresh-label{color:var(--lu-text-2);padding-left:8px;font-size:11px;line-height:24px;position:relative}.viz-hc-stack{flex-direction:column;display:flex}.viz-hc-box{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);flex-direction:column;gap:4px;padding:8px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.viz-hc-box[data-active]{border-color:var(--lu-violet);box-shadow:0 0 0 2px var(--lu-violet-soft)}.viz-hc-box-head{font-size:13px;font-weight:600}.viz-hc-entry{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.viz-hc-wire{justify-content:center;min-height:22px;padding:6px 0;display:flex;position:relative}.viz-hc-wire:before{content:"";border-left:2px dashed var(--lu-border);position:absolute;top:0;bottom:0;left:50%}.viz-hc-wire[data-on]:before{border-left-color:var(--lu-violet)}.viz-hc-msg{align-items:flex-start;gap:6px;width:100%;display:flex;position:relative}.viz-hc-msg .viz-http{flex:1}.viz-hc-arrow{color:var(--lu-violet-ink);padding-top:4px;font-size:16px;line-height:1}.viz-sw-card{border:2px solid var(--lu-border);border-radius:var(--viz-radius);background:var(--lu-bg);padding:8px 10px;transition:opacity .2s}.viz-sw-card[data-state=redundant]{opacity:.6;border-style:dashed}.viz-sw-card-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.viz .viz-sw-card .viz-sw-states{margin-bottom:0}.viz-machine-node[data-on][data-sw=parsed]{background:var(--lu-surface-3)}.viz-machine-node[data-on]:is([data-sw=installing],[data-sw=activating]){background:var(--lu-yellow-soft)}.viz-machine-node[data-on][data-sw=installed]{background:var(--lu-blue-soft)}.viz-machine-node[data-on][data-sw=activated]{background:var(--lu-green-soft)}.viz-machine-node[data-on][data-sw=redundant]{background:var(--lu-red-soft)}.viz-sw-fetch{border-radius:var(--lu-r-sm);background:var(--lu-blue-soft);flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 10px;font-size:12.5px;display:flex}.viz-sw-fetch[data-from=cache]{background:var(--lu-green-soft)}@media (prefers-reduced-motion:reduce){.viz :is(.viz-dom-node,.viz-dom-l,.viz-rp-stages li,.viz-http,.viz-hc-box,.viz-sw-card){transition:none}.viz-dom-l[data-ran]{transform:none}}.th-root{min-width:0;margin:20px 0}.th-box{aspect-ratio:860/558;width:100%;position:relative;container-type:size}.th-box[data-box=phone]{aspect-ratio:414/784;max-width:320px;margin-inline:auto}@media (max-width:639.98px){.th-box[data-box=desktop]{aspect-ratio:420/638;max-width:360px;margin-inline:auto}.th-box[data-box=auto]{aspect-ratio:414/784;max-width:320px;margin-inline:auto}}.th-frame{--fw:860;--fh:520;--fc:38;--fb:0;--fr:12;--sr:0;--pm:0;--sb:0;--ow:calc(var(--fw) + 2 * var(--fb));--oh:calc(var(--fh) + var(--fc) + 2 * var(--fb));--k:min(tan(atan2(100cqw, calc(var(--ow) * 1px))), tan(atan2(100cqh, calc(var(--oh) * 1px))));width:calc(var(--ow) * 1px);height:calc(var(--oh) * 1px);transform-origin:0 0;transform:translate(calc((100cqw - var(--ow) * 1px * var(--k)) / 2), calc((100cqh - var(--oh) * 1px * var(--k)) / 2)) scale(var(--k));border-radius:calc(var(--fr) * 1px);font-family:var(--lu-font);-webkit-font-smoothing:antialiased;text-align:left;font-size:13px;line-height:1.45;position:absolute;top:0;left:0}.th-frame[data-device=phone]{--fw:390;--fh:760;--fc:0;--fb:12;--fr:52;--sr:40;--pm:1;--sb:40}@media (max-width:639.98px){.th-frame[data-device=desktop]{--fw:420;--fh:600}.th-frame[data-device=auto]{--fw:390;--fh:760;--fc:0;--fb:12;--fr:52;--sr:40;--pm:1;--sb:40}}.th-shell{border-radius:inherit;background:var(--lu-surface-3);box-shadow:0 0 0 2px var(--lu-border-strong), 0 6px 0 2px var(--lu-border-strong);position:absolute;inset:0}.th-frame[data-device=phone] .th-shell{box-shadow:inset 0 0 0 1.5px #ffffff1a, 0 0 0 2px var(--lu-border-strong), 0 6px 0 2px var(--lu-border-strong);background:#140f28}@media (max-width:639.98px){.th-frame[data-device=auto] .th-shell{background:#140f28}.th-frame[data-device=auto] .th-bar{display:none}}.th-bar{height:calc(var(--fc) * 1px);inset-inline:0;position:absolute;top:0;overflow:hidden}.th-bar-inner{height:100%;color:var(--lu-text-2);align-items:center;gap:10px;padding:0 12px;display:flex}.th-lights{gap:7px;display:flex}.th-lights span{background:var(--lu-red);border-radius:50%;width:11px;height:11px}.th-lights span:nth-child(2){background:var(--lu-yellow)}.th-lights span:nth-child(3){background:var(--lu-green)}.th-nav{align-items:center;gap:4px;margin-left:4px;display:flex}.th-dim{opacity:.4}.th-url{border-radius:var(--lu-r-sm);background:var(--lu-surface);flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;max-width:480px;height:26px;margin-inline:auto;padding:0 12px;font-size:12px;display:flex}.th-url-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.th-url-host{color:var(--lu-text)}.th-bar-spacer{width:72px}.th-screen{left:calc(var(--fb) * 1px);top:calc((var(--fb) + var(--fc)) * 1px);width:calc(var(--fw) * 1px);height:calc(var(--fh) * 1px);border-radius:calc(var(--sr) * 1px) calc(var(--sr) * 1px) max(calc(var(--sr) * 1px), calc((var(--fr) - var(--fb) - 1) * 1px)) max(calc(var(--sr) * 1px), calc((var(--fr) - var(--fb) - 1) * 1px));background:var(--lu-bg);color:var(--lu-text);flex-direction:column;display:flex;position:absolute;overflow:hidden}.th-frame[data-bare] .th-screen{background:0 0}.th-status{height:calc(var(--sb) * 1px);opacity:var(--pm);flex-shrink:0;overflow:hidden}.th-status-inner{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;height:100%;padding:4px 30px 0;font-size:15px;font-weight:600;display:flex}.th-status-icons{align-items:center;gap:6px;display:flex}.th-phone-deco{z-index:60;pointer-events:none;opacity:var(--pm);position:absolute;inset:0}.th-island{background:#140f28;border-radius:999px;width:104px;height:28px;position:absolute;top:11px;left:50%;transform:translate(-50%)}.th-home{background:var(--lu-text);border-radius:999px;width:128px;height:5px;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.th-home{background:color-mix(in srgb, var(--lu-text) 60%, transparent)}}.th-content{flex:1;min-height:0;position:relative;overflow:hidden;container:th/inline-size}.th-cursor{z-index:50;pointer-events:none;opacity:0;transition:opacity .2s;position:absolute;top:0;left:0}.th-cursor[data-on]{opacity:1}.th-cursor>[data-shape]{display:none;position:absolute}.th-cursor[data-mode=pointer]>[data-shape=pointer],.th-cursor[data-mode=text]>[data-shape=text],.th-cursor[data-mode=touch]>[data-shape=touch]{display:block}.th-cursor [data-shape=pointer]{filter:drop-shadow(0 2px 3px #00000047);transform-origin:3px 2px;transition:transform .1s ease-out;top:-2px;left:-3px}.th-cursor [data-shape=text]{top:-12px;left:-7px}.th-cursor [data-shape=touch]{background:#14161a52;border:2px solid #ffffffd9;border-radius:50%;width:34px;height:34px;transition:transform .12s ease-out;top:-17px;left:-17px;box-shadow:0 2px 8px #00000040}.th-cursor[data-down] [data-shape=pointer]{transform:scale(.86)}.th-cursor[data-down] [data-shape=touch]{transform:scale(.8)}.th-ring{border:2px solid var(--lu-violet);opacity:0;border-radius:50%;width:44px;height:44px;position:absolute;top:-22px;left:-22px}.th-ring[data-pulse]{animation:.5s cubic-bezier(.2,0,0,1) forwards th-ring}@keyframes th-ring{0%{opacity:.6;transform:scale(.3)}to{opacity:0;transform:scale(1.3)}}.th-caret{vertical-align:-.2em;background:var(--lu-violet);width:2px;height:1.15em;margin-left:1px;animation:1s step-end infinite th-blink;display:inline-block}@keyframes th-blink{50%{opacity:0}}.th-content [data-hover]{background-color:var(--lu-hover)}.th-content [data-press]{transform:scale(.97)}.th-content [data-demo]{transition-property:transform,background-color,border-color,color,box-shadow,opacity;transition-duration:.15s}.th-spot{z-index:40;pointer-events:none;opacity:0;box-shadow:0 0 0 3px var(--lu-violet), 0 0 0 9999px #16112b59;transition:opacity .25s, left .3s var(--lu-ease), top .3s var(--lu-ease), width .3s var(--lu-ease), height .3s var(--lu-ease);border-radius:10px;position:absolute}.th-tip{z-index:41;pointer-events:none;opacity:0;background:var(--lu-text);color:var(--lu-surface);box-shadow:0 3px 0 var(--lu-text);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500;line-height:1.45;position:absolute;transform:translateY(4px)}@supports (color:color-mix(in lab, red, red)){.th-tip{box-shadow:0 3px 0 color-mix(in srgb, var(--lu-text) 55%, var(--lu-violet))}}.th-tip{transition:opacity .25s, transform .25s var(--lu-ease)}.th-spot[data-on],.th-tip[data-on]{opacity:1;transform:none}.th-root[data-paused] .th-frame *,.th-root[data-paused] .th-frame :before,.th-root[data-paused] .th-frame :after{animation-play-state:paused!important}.th-poster{flex-direction:column;gap:14px;padding:28px;display:flex}.th-poster-bar{border-radius:var(--lu-r-xs);background:var(--lu-surface-3);height:14px;display:block}.th-poster-bar[data-w="40"]{width:40%;height:22px}.th-poster-bar[data-w="70"]{width:70%}.th-poster-bar[data-w="55"]{width:55%}.th-poster-bar[data-w="30"]{width:30%}.th-poster-block{border-radius:var(--lu-r);background:var(--lu-surface-3);height:160px;display:block}.th-bar-row{align-items:center;gap:10px;min-height:44px;margin-top:10px;display:flex}.th-chapter{min-width:0;font-size:var(--lu-fs-sm);color:var(--lu-text);flex:1;align-items:baseline;gap:10px;margin:0;padding:0;font-weight:500;display:flex}.th-chapter-num{font-family:var(--lu-font-mono);color:var(--lu-violet-ink);flex-shrink:0;font-size:12px;font-weight:600}.th-chapter-text{min-width:0;animation:th-fade-in .35s var(--lu-ease)}@keyframes th-fade-in{0%{opacity:0;transform:translateY(3px)}}.th-toggle{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);width:44px;height:44px;box-shadow:0 3px 0 var(--lu-border);color:var(--lu-violet-ink);cursor:pointer;transition:transform var(--lu-dur-1) var(--lu-ease), background-color var(--lu-dur-2);flex-shrink:0;place-items:center;margin-bottom:3px;display:inline-grid}.th-toggle:hover{background:var(--lu-surface-2)}.th-toggle:active{box-shadow:none;transform:translateY(3px)}.th-toggle:focus-visible{outline:3px solid var(--lu-focus-color);outline-offset:3px}.th-caption{font-size:var(--lu-fs-sm);color:var(--lu-text-2);margin-top:4px;line-height:1.55}.th-caption p{margin:0;padding:0}.th-steps{clip-path:inset(50%);width:1px;height:1px;margin:0;padding:0;list-style:none;position:absolute;overflow:hidden}.th-steps[data-visible]{clip-path:none;border-top:2px solid var(--lu-border);flex-direction:column;gap:6px;width:auto;height:auto;margin-top:12px;padding-top:12px;display:flex;position:static;overflow:visible}.th-steps li{font-size:var(--lu-fs-sm);color:var(--lu-text-2);gap:10px;padding:0;line-height:1.5;display:flex}.th-steps li[aria-current=step]{color:var(--lu-text);font-weight:600}.th-steps-num{border-radius:var(--lu-r-xs);width:20px;height:20px;box-shadow:inset 0 0 0 2px var(--lu-border-strong);font-family:var(--lu-font-mono);flex-shrink:0;place-items:center;font-size:11px;font-weight:600;display:inline-grid}.th-steps li[aria-current=step] .th-steps-num{box-shadow:inset 0 0 0 2px var(--lu-violet);color:var(--lu-violet-ink)}.th-steps li[data-done] .th-steps-num{background:var(--lu-violet);color:var(--lu-on-color);box-shadow:none}.th-figure-head{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.prose-read .th-figure-head h4,.th-figure-head h4{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);margin:0;padding:0;line-height:1.3}.th-figure-head p{color:var(--lu-text-2);margin:2px 0 0;padding:0;font-size:13px;line-height:1.45}.th-root code,.th-content code{color:inherit;font-size:inherit;line-height:inherit;background:0 0;border-radius:0;padding:0}.th-root p,.th-root li,.th-content p,.th-content li{padding:0}.th-root ol,.th-root ul,.th-content ol,.th-content ul{margin:0;padding:0;list-style:none}.th-content h3{margin:0;padding:0}.th-content{--dt-blue:var(--lightningcss-light,var(--dt-blue))var(--lightningcss-dark,#8ab4f8);--dt-on-blue:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202124);--dt-warn:#f9ab00;--dt-bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202124);--dt-bar:var(--lightningcss-light,#f1f3f4)var(--lightningcss-dark,#292a2d);--dt-line:var(--lightningcss-light,#dadce0)var(--lightningcss-dark,#3c4043);--dt-text:var(--lightningcss-light,#202124)var(--lightningcss-dark,#e8eaed);--dt-dim:var(--lightningcss-light,#5f6368)var(--lightningcss-dark,#9aa0a6);--dt-sel:var(--lightningcss-light,#e8f0fe)var(--lightningcss-dark,#394457);--dt-err-bg:var(--lightningcss-light,#fcebeb)var(--lightningcss-dark,#4e3534);--dt-err:var(--lightningcss-light,#d93025)var(--lightningcss-dark,#f28b82);--dt-str:var(--lightningcss-light,#c41a16)var(--lightningcss-dark,#f28b82);--dt-num:var(--lightningcss-light,#1a1aa6)var(--lightningcss-dark,#9980ff);--dt-key:var(--lightningcss-light,#881391)var(--lightningcss-dark,#7cacf8);--dt-fn:var(--lightningcss-light,#0d22aa)var(--lightningcss-dark,#8ab4f8);--dt-js:var(--lightningcss-light,#f5d04c)var(--lightningcss-dark,#c8a434);--dt-layout:var(--lightningcss-light,#9b6cf2)var(--lightningcss-dark,#8a5fe0);--dt-paint:var(--lightningcss-light,#5bb974)var(--lightningcss-dark,#4a9a61)}.dt{--code-foreground:var(--dt-text);--code-token-keyword:var(--dt-key);--code-token-string:var(--dt-str);--code-token-constant:var(--dt-num);--code-token-function:var(--dt-fn);--code-token-comment:var(--dt-dim);--code-token-punctuation:var(--dt-dim)}.th-content [data-tk=keyword]{color:var(--code-token-keyword)}.th-content [data-tk=string]{color:var(--code-token-string)}.th-content [data-tk=number],.th-content [data-tk=const]{color:var(--code-token-constant)}.th-content [data-tk=fn]{color:var(--code-token-function)}.th-content [data-tk=comment]{color:var(--code-token-comment);font-style:italic}.th-content [data-tk=punct]{color:var(--code-token-punctuation)}.sc-code{font-family:var(--lu-font-mono);white-space:pre;font-size:12.5px}.sc-split{flex-direction:column;height:100%;display:flex}.sc-page{border-bottom:1px solid var(--dt-line);background:var(--lu-bg);flex-shrink:0;align-items:center;gap:10px;height:64px;padding:0 18px;display:flex}.sc-page-logo{display:grid}.sc-page-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.sc-page-chip{background:var(--lu-surface-2);color:var(--lu-text-2);border-radius:999px;padding:3px 10px;font-size:12px}.sc-page-btn{background:var(--lu-violet);height:34px;color:var(--lu-on-color);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.sc-page-btn[data-done]{background:var(--lu-green-ink)}.sc-page-btn[data-hover]{background:var(--lu-violet-hover)}.sc-modal{background:var(--lu-surface);box-shadow:var(--shadow-pop);border-radius:8px;padding:6px 12px;font-size:13px}.sc-page-cards{align-items:flex-end;gap:4px;display:flex}.sc-page-cards span{background:var(--lu-violet-soft);border-radius:3px;width:14px}.dt{background:var(--dt-bg);min-height:0;color:var(--dt-text);flex-direction:column;flex:1;font-size:12px;display:flex}.dt-tabs{border-bottom:1px solid var(--dt-line);background:var(--dt-bar);flex-shrink:0;align-items:stretch;height:30px;padding:0 6px;display:flex;overflow:hidden}.dt-icon{width:26px;color:var(--dt-dim);place-items:center;display:grid}.dt-sep{background:var(--dt-line);width:1px;margin:7px 4px}.dt-tab{color:var(--dt-dim);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0 10px;display:flex}.dt-tab[data-on]{color:var(--dt-text);border-bottom-color:var(--dt-blue)}.dt-grow{flex:1}.dt-errcount{color:var(--dt-err);align-items:center;gap:4px;padding:0 8px;display:flex}.dt-errdot{background:var(--dt-err);border-radius:50%;width:9px;height:9px}.dt-toolbar{border-bottom:1px solid var(--dt-line);background:var(--dt-bg);height:30px;color:var(--dt-dim);flex-shrink:0;align-items:center;gap:6px;padding:0 8px;display:flex;overflow:hidden}.dt-tool{width:24px;height:24px;color:var(--dt-dim);border-radius:4px;place-items:center;display:inline-grid}.dt-tool[data-kind=record][data-on]{color:var(--dt-err)}.dt-select{white-space:nowrap;align-items:center;gap:2px;padding:0 4px;display:inline-flex}.dt-select .dt-tool{width:14px}.dt-filter{background:var(--dt-bar);border-radius:4px;align-items:center;gap:2px;min-width:120px;height:22px;padding-right:8px;display:inline-flex}.dt-body{flex:1;min-height:0;position:relative;overflow:hidden}.dc-log{height:100%;font-family:var(--lu-font-mono);flex-direction:column;justify-content:flex-end;font-size:12.5px;display:flex;overflow:hidden}.dc-line{border-bottom:1px solid var(--dt-line);align-items:flex-start;gap:8px;min-height:24px;padding:4px 10px 4px 8px;display:flex}@supports (color:color-mix(in lab, red, red)){.dc-line{border-bottom:1px solid color-mix(in srgb, var(--dt-line) 60%, transparent)}}.dc-line[data-kind=error]{background:var(--dt-err-bg);color:var(--dt-err);border-bottom-color:var(--dt-err)}@supports (color:color-mix(in lab, red, red)){.dc-line[data-kind=error]{border-bottom-color:color-mix(in srgb, var(--dt-err) 25%, transparent)}}.dc-gutter{color:var(--dt-dim);flex:0 0 14px;margin-top:2px}.dc-ret{font-family:var(--lu-font);font-size:12px;line-height:16px}.dc-accent{color:var(--dt-blue)}.dc-input{flex:1;min-width:0}.dc-prompt{border-bottom:0;min-height:32px}.dc-trace{white-space:pre;opacity:.85;padding-left:4px}.dc-src{color:var(--dt-dim);white-space:nowrap;margin-left:auto;padding-left:12px;font-size:11px;text-decoration:underline}.dc-string,.dc-str{color:var(--dt-str)}.dc-number,.dc-num{color:var(--dt-num)}.dc-nullish,.dc-dim{color:var(--dt-dim)}.dc-key{color:var(--dt-key)}.dc-fn{color:var(--dt-fn);font-style:italic}.dc-obj-head{border-radius:3px;align-items:center;gap:4px;padding:0 4px;display:inline-flex}.dc-info{background:var(--dt-blue);width:14px;height:14px;color:var(--dt-on-blue);border-radius:3px;place-items:center;margin-left:4px;display:inline-grid}.dc-tri{border-left:5px solid var(--dt-dim);border-top:4px solid #0000;border-bottom:4px solid #0000;width:0;height:0;transition:transform .15s;display:inline-block}.dc-tri[data-open]{transform:rotate(90deg)}.dc-props{padding-left:18px}.dc-proto{border-radius:3px;align-items:center;gap:4px;padding:0 4px;display:inline-flex}.dc-table{border-collapse:collapse;font-size:12px}.dc-table th,.dc-table td{border:1px solid var(--dt-line);text-align:left;padding:3px 12px}.dc-table th{background:var(--dt-bar);font-weight:400}.dn{flex-direction:column;height:100%;display:flex;position:relative}.dn-chips{gap:2px;display:inline-flex}.dn-chips span{border-radius:999px;padding:2px 8px}.dn-chips span[data-on]{background:var(--dt-sel);color:var(--dt-text)}.dn-table{flex:1;overflow:hidden}.dn-row{border-bottom:1px solid var(--dt-line);grid-template-columns:minmax(0,1.4fr) 56px 76px 80px 92px 60px minmax(0,1.6fr);align-items:center;height:26px;padding:0 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.dn-row{border-bottom:1px solid color-mix(in srgb, var(--dt-line) 60%, transparent)}}.dn-row{white-space:nowrap}.dn-row>span{text-overflow:ellipsis;padding-right:6px;overflow:hidden}.dn-head{background:var(--dt-bar);color:var(--dt-dim)}.dn-row:nth-child(odd):not(.dn-head){background:var(--dt-bar)}@supports (color:color-mix(in lab, red, red)){.dn-row:nth-child(odd):not(.dn-head){background:color-mix(in srgb, var(--dt-bar) 45%, transparent)}}.dn-row[data-selected]{background:var(--dt-sel)!important}.dn-row[data-tone=muted],.dn-row[data-tone=cache] .dn-c-size{color:var(--dt-dim)}.dn-name em{background:var(--dt-bar);border-radius:3px;margin-left:6px;padding:0 4px;font-size:10px;font-style:normal}.dn-row[data-tone=preflight] .dn-name em{background:var(--lightningcss-light,#fef7e0)var(--lightningcss-dark,#4d3f19)}.dn-wf{height:10px;display:block;position:relative}.dn-wf-bar{background:var(--dt-blue);border-radius:2px;height:8px;position:absolute;top:1px}.dn-wf-bar[data-tone=preflight]{background:var(--dt-warn)}.dn-wf-bar[data-tone=muted]{background:var(--dt-blue)}@supports (color:color-mix(in lab, red, red)){.dn-wf-bar[data-tone=muted]{background:color-mix(in srgb, var(--dt-blue) 45%, transparent)}}.dn-wf-bar[data-tone=cache]{background:var(--dt-dim)}.dn-details{border-left:1px solid var(--dt-line);background:var(--dt-bg);width:58%;position:absolute;top:0;bottom:22px;right:0;overflow:hidden;box-shadow:-8px 0 16px -12px #0000004d}.dn-details-tabs{border-bottom:1px solid var(--dt-line);background:var(--dt-bar);height:26px;color:var(--dt-dim);align-items:center;gap:12px;padding:0 8px;display:flex}.dn-details-tabs span[data-on]{color:var(--dt-text);box-shadow:inset 0 -2px var(--dt-blue);padding-top:6px;padding-bottom:4px}.dn-details-body{padding:4px 0}.dn-section-title{padding:4px 10px;font-weight:600}.dn-pair{font-family:var(--lu-font-mono);grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:10px;padding:2px 10px 2px 22px;font-size:11.5px;display:grid}.dn-k{color:var(--dt-key);overflow-wrap:anywhere}.dn-v{overflow-wrap:anywhere}.dn-foot{border-top:1px solid var(--dt-line);height:22px;color:var(--dt-dim);flex-shrink:0;padding:3px 8px;font-size:11px}@container th (max-width:520px){.dn-c-type,.dn-c-init,.dn-c-size,.dn-c-wf{display:none}.dn-row{grid-template-columns:minmax(0,1fr) 46px 60px}.dn-details{border-left:0;border-top:1px solid var(--dt-line);width:auto;height:64%;top:auto;left:0}.dn-pair{grid-template-columns:minmax(0,1fr);gap:0;padding-left:14px}.dn-chips,.dt-filter{display:none}}.dp{flex-direction:column;gap:10px;height:100%;padding:10px 12px;display:flex;overflow:hidden}.dp-code{background:var(--dt-bar);color:var(--dt-text);border-radius:6px;padding:8px 10px;font-size:12px}.dp-empty{text-align:center;color:var(--dt-dim);padding:30px 0}.dp-recording{background:var(--dt-bar);border-radius:8px;align-items:center;gap:10px;padding:18px;font-size:13px;display:flex}.dp-rec-dot{background:var(--dt-err);border-radius:50%;width:10px;height:10px;animation:1s step-end infinite th-blink}.dp-stop{background:var(--dt-blue);color:var(--dt-on-blue);border-radius:6px;margin-left:auto;padding:4px 14px}.dp-flame{clip-path:inset(0 calc(100% - var(--reveal,100%)) 0 0);flex-direction:column;gap:6px;display:flex}.dp-track{grid-template-columns:54px minmax(0,1fr);align-items:start;gap:8px;display:grid}.dp-track-label{color:var(--dt-dim);padding-top:3px}.dp-frames{gap:3px;display:flex}.dp-frame{white-space:nowrap;background:var(--lightningcss-light,#d7f0db)var(--lightningcss-dark,#24412c);border-radius:3px;flex:0 0 9%;padding:2px 4px;font-size:10.5px}.dp-frame-long{color:var(--dt-err);background:var(--lightningcss-light,#fde2e1)var(--lightningcss-dark,#5a2a28);flex:1}.dp-main{flex-direction:column;gap:2px;display:flex}.dp-task{white-space:nowrap;background:var(--lightningcss-light,#dadce0)var(--lightningcss-dark,#5f6368);border-radius:2px;padding:2px 6px;font-size:11px;position:relative}.dp-task[data-long]:after{content:"";border-top:9px solid var(--dt-err);border-left:9px solid #0000;position:absolute;top:0;right:0}.dp-task[data-long]{background:repeating-linear-gradient(135deg,var(--lightningcss-light,#dadce0)var(--lightningcss-dark,#5f6368) 0 6px,var(--lightningcss-light,#f6c7c3)var(--lightningcss-dark,#7a3c38) 6px 12px)}.dp-call{background:var(--dt-js);color:#202124;white-space:nowrap;border-radius:2px;padding:2px 6px;font-size:11px}.dp-slices{gap:1px;height:16px;display:flex}.dp-pair{flex:1;gap:1px;display:flex}.dp-js{background:var(--dt-js);border-radius:1px;flex:1}.dp-layout{background:var(--dt-layout);color:#fff;white-space:nowrap;border-radius:1px;flex:1.6;padding:0 4px;font-size:10px;overflow:hidden}.dp-paint{background:var(--dt-paint);color:#fff;border-radius:1px;flex:1;padding:0 4px;font-size:10px}.dp-after{gap:2px;width:14%;height:16px;margin-left:23%;display:flex}.dp-warning{color:var(--lightningcss-light,#8a5300)var(--lightningcss-dark,#fdd663);background:var(--lightningcss-light,#fef7e0)var(--lightningcss-dark,#4d3f19);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;display:flex}.dp-summary{border-top:1px solid var(--dt-line);flex-wrap:wrap;gap:6px 18px;padding:8px 10px;display:flex}.dp-sum-row{align-items:center;gap:6px;display:flex}.dp-sum-ms{color:var(--dt-dim)}.dp-swatch{background:var(--dt-js);border-radius:2px;width:10px;height:10px}.dp-swatch[data-tone=layout]{background:var(--dt-layout)}.dp-swatch[data-tone=paint]{background:var(--dt-paint)}.dm{height:100%;display:flex}.dm-side{border-right:1px solid var(--dt-line);background:var(--dt-bar);flex:0 0 170px;padding:8px 0}.dm-side-title{padding:0 10px 6px;font-weight:600}.dm-side-group{color:var(--dt-dim);padding:4px 10px;font-size:10.5px}.dm-snap{padding:4px 10px}.dm-snap[data-on]{background:var(--dt-sel)}.dm-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.dm-start{flex-direction:column;gap:8px;padding:16px;display:flex}.dm-radio{align-items:center;gap:8px;display:flex}.dm-radio span{width:12px;height:12px;box-shadow:inset 0 0 0 1.5px var(--dt-dim);border-radius:50%}.dm-radio[data-on] span{box-shadow:inset 0 0 0 3.5px var(--dt-blue)}.dm-take{background:var(--dt-blue);color:var(--dt-on-blue);border-radius:6px;align-self:flex-start;margin-top:6px;padding:6px 14px}.dm-take-sm{margin:0 0 0 auto;padding:2px 10px}.dm-toolbar{border-bottom:1px solid var(--dt-line);align-items:center;gap:8px;height:30px;padding:0 8px;display:flex}.dm-filter{background:var(--dt-bar);border-radius:4px;align-items:center;min-width:130px;height:22px;padding:0 6px;display:inline-flex}.dm-ph{color:var(--dt-dim)}.dm-fix{background:var(--lightningcss-light,#e6f4ea)var(--lightningcss-dark,#1e3a29);padding:6px 10px;font-size:11.5px}.dm-table,.dm-retainers{overflow:hidden}.dm-retainers{border-top:2px solid var(--dt-line)}.dm-row{border-bottom:1px solid var(--dt-line);grid-template-columns:minmax(0,1fr) 64px 64px 72px;align-items:center;min-height:24px;padding:0 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.dm-row{border-bottom:1px solid color-mix(in srgb, var(--dt-line) 60%, transparent)}}.dm-row{white-space:nowrap}.dm-retainers .dm-row{grid-template-columns:minmax(0,1fr) 64px}.dm-row>span{text-overflow:ellipsis;overflow:hidden}.dm-row em{color:var(--dt-dim);margin-left:6px;font-style:normal}.dm-head{background:var(--dt-bar);color:var(--dt-dim)}.dm-row[data-detached]{color:var(--dt-err)}.dm-child{padding-left:26px}.dm-child[data-selected]{background:var(--dt-sel)}.dm-none{color:var(--dt-dim);padding:14px}@container th (max-width:520px){.dm-side{display:none}.dm-row{grid-template-columns:minmax(0,1fr) 64px}.dm-row>span:nth-child(2),.dm-row>span:nth-child(3){display:none}.dm-retainers .dm-row>span:nth-child(2){display:block}.dm-row{white-space:normal}}.ed{background:var(--lu-surface);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);height:100%;display:grid}.ed-pane{border-right:2px solid var(--code-border);background:var(--code-bg);min-width:0;color:var(--code-foreground);flex-direction:column;display:flex;overflow:hidden}.ed-tabs{background:var(--code-border);flex-shrink:0;height:32px;font-size:12px;display:flex}.ed-tabs span{color:var(--code-token-comment);border-right:1px solid var(--code-bg);align-items:center;gap:6px;padding:0 12px;display:flex}.ed-tabs span[data-on]{background:var(--code-bg);color:var(--code-foreground);box-shadow:inset 0 2px var(--lu-mint)}.ed-code{padding:10px 0}.ed-line{align-items:center;min-height:22px;padding-right:10px;display:flex}.ed-line[data-active]{background:var(--code-line)}.ed-num{text-align:right;color:var(--code-token-comment);font-family:var(--lu-font-mono);flex:0 0 36px;padding-right:12px;font-size:11.5px}.ed-text{flex:1;min-width:0}.ed-tests-src{border-top:1px dashed var(--code-border);opacity:.55;padding:8px 0}.ed-tests-src .sc-code{font-size:11.5px}.ed-runner{background:var(--lu-surface-2);flex-direction:column;min-width:0;display:flex}.ed-runner-head{border-bottom:2px solid var(--lu-border);justify-content:space-between;align-items:center;height:32px;padding:0 10px;font-size:12px;font-weight:700;display:flex}.ed-run{border-radius:var(--lu-r-xs);background:var(--lu-violet);box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-on-color);align-items:center;gap:4px;padding:3px 10px;font-weight:700;display:inline-flex}.ed-run[data-busy]{opacity:.6}.ed-results{flex-direction:column;gap:4px;padding:10px;display:flex}.ed-test{border-radius:5px;gap:8px;padding:4px 6px;font-size:12.5px;display:flex}.ed-test-icon{color:var(--lu-text-3);flex:0 0 14px;margin-top:1px}.ed-test[data-r=pass] .ed-test-icon{color:var(--lu-green-ink)}.ed-test[data-r=fail]{background:var(--lu-red-soft)}.ed-test[data-r=fail] .ed-test-icon{color:var(--lu-red-ink)}.ed-err{font-family:var(--lu-font-mono);color:var(--lu-red-ink);margin-top:2px;font-size:11px;display:block}.ed-summary{background:var(--lu-red-soft);font-family:var(--lu-font-mono);border-radius:6px;margin:auto 10px 10px;padding:8px 10px;font-size:12px}.ed-summary[data-ok]{background:var(--lu-green-soft)}.ed-red{color:var(--lu-red-ink)}.ed-green{color:var(--lu-green-ink)}@container th (max-width:520px){.ed{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.ed-pane{border-right:0;border-bottom:2px solid var(--code-border)}.ed-text{flex:1;min-width:0}.ed-tests-src{display:none}}.br{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);height:100%;display:grid}.br-stage{background:var(--lu-surface-2);perspective:900px;padding:18px;position:relative}.br-page{background:var(--lu-bg);border-radius:10px;height:100%;position:relative}@supports (color:color-mix(in lab, red, red)){.br-page{background:color-mix(in srgb, var(--lu-bg) calc(var(--paint,0) * 100%), transparent)}}.br-page{box-shadow:0 0 0 1px var(--lu-border-strong)}.br-layer{transition:opacity .3s, transform .3s var(--lu-ease)}.br-page em{font-style:normal;font-family:var(--lu-font-mono);color:var(--lu-violet-ink);opacity:calc(1 - var(--paint,0));font-size:10px;position:absolute;top:2px;right:6px}.br-header,.br-h1,.br-price,.br-btn{outline:1.5px dashed var(--lu-violet);position:relative}@supports (color:color-mix(in lab, red, red)){.br-header,.br-h1,.br-price,.br-btn{outline:1.5px dashed color-mix(in srgb, var(--lu-violet) calc((1 - var(--paint,0)) * 100%), transparent)}}.br-header,.br-h1,.br-price,.br-btn{outline-offset:-1px}.br-header{background:#3b2a20;border-radius:10px 10px 0 0;align-items:center;height:44px;padding:0 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.br-header{background:color-mix(in srgb, #3b2a20 calc(var(--paint,0) * 100%), transparent)}}.br-header{color:#fff}@supports (color:color-mix(in lab, red, red)){.br-header{color:color-mix(in srgb, #fff calc(var(--paint,0) * 100%), transparent)}}.br-header{box-shadow:0 calc(var(--split,0) * 10px) calc(var(--split,0) * 20px) #00000040;font-weight:600}.br-root{flex-direction:column;gap:10px;padding:16px;display:flex}.br-h1{height:32px;color:var(--lu-text);font-size:22px;font-weight:700}@supports (color:color-mix(in lab, red, red)){.br-h1{color:color-mix(in srgb, var(--lu-text) calc(var(--paint,0) * 100%), transparent)}}.br-price{height:22px;color:var(--lu-green-ink)}@supports (color:color-mix(in lab, red, red)){.br-price{color:color-mix(in srgb, var(--lu-green-ink) calc(var(--paint,0) * 100%), transparent)}}.br-price{font-weight:600}.br-btn{background:var(--lu-violet);border-radius:8px;place-items:center;width:120px;height:40px;display:grid}@supports (color:color-mix(in lab, red, red)){.br-btn{background:color-mix(in srgb, var(--lu-violet) calc(var(--paint,0) * 100%), transparent)}}.br-btn{color:#fff}@supports (color:color-mix(in lab, red, red)){.br-btn{color:color-mix(in srgb, #fff calc(var(--paint,0) * 100%), transparent)}}.br-btn{box-shadow:0 calc(var(--split,0) * 12px) calc(var(--split,0) * 24px) #00000040;transition:transform .3s var(--lu-ease);font-weight:600}.br-blank{color:var(--lu-text-3);text-align:center;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.br-side{flex-direction:column;gap:10px;min-width:0;padding:14px;display:flex;overflow:hidden}.br-steps{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.br-steps li{color:var(--lu-text-3);box-shadow:inset 0 0 0 1px var(--lu-border);border-radius:999px;padding:3px 9px;font-size:12px}.br-steps li[data-done]{color:var(--lu-text-2);background:var(--lu-surface-2);box-shadow:none}.br-steps li[data-on]{color:var(--lu-violet-ink);background:var(--lu-violet-soft);box-shadow:none;font-weight:600}.br-panel{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}.br-src{border:2px solid var(--code-border);border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);font-family:var(--lu-font-mono);white-space:pre-wrap;min-height:60px;margin:0;padding:8px 10px;font-size:11.5px;line-height:1.5}.br-tree{box-shadow:inset 0 0 0 1px var(--lu-border);font-family:var(--lu-font-mono);border-radius:6px;flex-direction:column;gap:3px;padding:8px 10px;font-size:12px;display:flex}.br-tree [data-out]{color:var(--lu-text-3);text-decoration:line-through}.br-tree em{font-style:normal;font-family:var(--lu-font);font-size:11px}.br-dim{color:var(--lu-text-2);font-size:11px}@container th (max-width:520px){.br{grid-template-rows:300px minmax(0,1fr);grid-template-columns:minmax(0,1fr)}}.ev{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);height:100%;display:grid}.ev-page{flex-direction:column;gap:12px;padding:20px;display:flex}.ev-title{align-items:center;gap:8px;margin:0;font-size:20px;font-weight:700;display:flex}.ev-form{gap:8px;display:flex}.ev-input{height:36px;box-shadow:inset 0 0 0 1px var(--lu-border-strong);border-radius:8px;flex:1;align-items:center;padding:0 10px;display:flex}.ev-ph{color:var(--lu-text-3)}.ev-add{background:var(--lu-violet);color:var(--lu-on-color);border-radius:8px;align-items:center;padding:0 14px;font-weight:600;display:inline-flex}.ev-list{box-shadow:inset 0 0 0 1.5px var(--lu-border);border-radius:10px;flex-direction:column;gap:6px;margin:0;padding:8px;list-style:none;transition:box-shadow .2s;display:flex}.ev-list[data-active]{box-shadow:inset 0 0 0 2px var(--lu-green-ink), 0 0 0 4px var(--lu-green-soft)}.ev-item{background:var(--lu-surface-2);border-radius:8px;justify-content:space-between;align-items:center;height:38px;padding:0 6px 0 12px;transition:box-shadow .2s;display:flex}.ev-item[data-active]{box-shadow:inset 0 0 0 2px var(--lu-violet)}.ev-del{width:28px;height:28px;color:var(--lu-text-2);border-radius:6px;place-items:center;display:grid;position:relative}.ev-del[data-active]{background:var(--lu-red-soft);color:var(--lu-red-ink);box-shadow:inset 0 0 0 2px var(--lu-red-ink)}.ev-del[data-clicked]:after{content:"";border:2px solid var(--lu-violet);animation:ev-ripple .7s var(--lu-ease) forwards;border-radius:50%;position:absolute;inset:-6px}@keyframes ev-ripple{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}.ev-code{border:2px solid var(--code-border);border-radius:var(--lu-r-sm);background:var(--code-bg);color:var(--code-foreground);flex-direction:column;padding:8px 10px;display:flex}.ev-code .sc-code{font-size:11.5px}.ev-side{border-left:1px solid var(--lu-border);background:var(--lu-surface-2);flex-direction:column;gap:10px;padding:20px 16px;display:flex}.ev-phase{background:var(--lu-bg);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.ev-phase[data-phase=capture]{background:var(--lu-blue-soft);color:var(--lu-blue-ink)}.ev-phase[data-phase=target]{background:var(--lu-red-soft);color:var(--lu-red-ink)}.ev-phase[data-phase=bubble]{background:var(--lu-green-soft);color:var(--lu-green-ink)}.ev-path{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.ev-path li{background:var(--lu-bg);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 10px;font-size:12px;transition:background-color .15s,box-shadow .15s;display:flex}.ev-path li[data-passed]{opacity:.6}.ev-path li[data-on]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 1.5px var(--lu-violet)}.ev-path li[data-handler][data-on]{background:var(--lu-green-soft);box-shadow:inset 0 0 0 1.5px var(--lu-green-ink)}.ev-badge{background:var(--lu-green-soft);color:var(--lu-green-ink);border-radius:4px;padding:0 6px;font-size:10.5px}.ev-log{background:var(--lu-bg);font-family:var(--lu-font-mono);border-radius:8px;flex:1;padding:8px 10px;font-size:11.5px}@container th (max-width:520px){.ev{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.ev-code{display:none}.ev-side{border-left:0;border-top:1px solid var(--lu-border);padding:12px 16px}.sc-page{height:54px}.sc-page-chip,.sc-page-cards,.dt-tab:not([data-on]){display:none}}}@media (pointer:coarse){.viz-chip{min-height:44px}}@media (prefers-reduced-motion:reduce){.viz-loading{animation:none}:is(.viz-btn,.viz-action,.viz-fire,.viz-token),:is(.viz-btn,.viz-action,.viz-fire):before{transition:none}.th-caret,.th-chapter-text{animation:none}}.shell-boost{border-radius:var(--lu-r-sm);background:var(--lu-yellow);color:var(--lu-loo-ink);font-family:var(--lu-font);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-black);box-shadow:0 2px 0 var(--lu-yellow-lip);animation:boost-pulse 1.6s var(--lu-ease) infinite;align-items:center;padding:2px 8px;display:inline-flex}@keyframes boost-pulse{50%{transform:scale(1.06)}}.boost-left{font-weight:var(--lu-fw-black);color:var(--lu-yellow-ink);align-items:center;gap:4px;display:inline-flex}.toast-gems{background:var(--lu-blue)}.toast-bucks{background:var(--lu-orange)}.quiz-option[data-pending]{transform:translateY(calc(var(--lu-lip) - 1px));box-shadow:0 1px 0 var(--o-lip);animation:quiz-pending .6s var(--lu-ease) infinite alternate}@keyframes quiz-pending{to{filter:brightness(.94)}}@media (prefers-reduced-motion:reduce){.quiz-option[data-pending]{animation:none}}.quiz-error{color:var(--lu-red-ink);font-family:var(--lu-font);font-weight:var(--lu-fw-bold);font-size:var(--lu-fs-sm);margin:8px 0 0}.hearts-row{justify-content:center;gap:6px;margin:6px 0 4px;display:flex}.hearts-out .lesson-summary-title{color:var(--lu-red-ink)}.lesson-hearts[data-off]{animation:heart-shake .5s var(--lu-ease) 1}@keyframes heart-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.shop-top{grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:start;gap:14px;margin-top:20px;display:grid}.shop-wallet{font-family:var(--lu-font);gap:10px;display:grid}.shop-wallet.lu-card{background:var(--lu-orange-soft)}.shop-wallet-label{font-size:var(--lu-fs-sm);color:var(--lu-text-2);font-weight:600}.shop-wallet-balances{flex-wrap:wrap;gap:10px 28px;display:flex}.shop-wallet-coin{grid-template-columns:auto auto;align-items:center;column-gap:8px;display:grid}.shop-wallet-coin strong{font:800 34px / 1 var(--lu-font-pixel)}.shop-wallet-coin[data-currency=bucks] strong{color:var(--lu-orange-ink)}.shop-wallet-coin[data-currency=gems] strong{color:var(--lu-blue-ink)}.shop-wallet-hint{font-size:var(--lu-fs-xs);color:var(--lu-text-2);grid-column:1/-1;font-weight:600}.shop-wallet-meta{color:var(--lu-text-2);flex-wrap:wrap;gap:6px 14px;font-weight:600;display:flex}.shop-wallet-meta>span{align-items:center;gap:4px;display:inline-flex}.shop-stage-card{z-index:2;position:sticky;top:76px}.shop-stage{font-family:var(--lu-font);justify-items:center;gap:8px;display:grid}.shop-stage-label{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--lu-text-2);margin:0}.shop-stage[data-trial] .shop-stage-label{color:var(--lu-violet-ink)}.shop-stage-stats{width:100%;font-size:var(--lu-fs-sm);gap:4px;margin:0;padding:0;font-weight:600;list-style:none;display:grid}.shop-stage-stats li{grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;display:grid}.shop-stat-name{color:var(--lu-text-2)}.shop-stat-diff{min-width:30px;font-weight:var(--lu-fw-black);text-align:right;color:var(--lu-red-ink)}.shop-stat-diff[data-up]{color:var(--lu-green-ink)}.lu-price{font-weight:var(--lu-fw-black);align-items:center;gap:4px;display:inline-flex}.shop-buy-label{align-items:center;gap:6px;display:inline-flex}.shop-need{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);gap:3px;display:grid}.shop-buy-off .lu-price{opacity:.85}.shop-grid{font-family:var(--lu-font);grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:12px;margin:0 0 8px;padding:0;list-style:none;display:grid}.shop-grid[data-kind=skins],.shop-grid[data-kind=gear]{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}.shop-grid>li{min-width:0;display:flex}.shop-item{text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.shop-item-art{border-radius:var(--lu-r-lg);background:var(--lu-violet-soft);place-items:center;width:72px;height:72px;margin-bottom:2px;display:grid}.shop-item-name{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);color:var(--lu-text);margin:0;line-height:1.25}.shop-item-desc{font-size:var(--lu-fs-sm);color:var(--lu-text-2);flex:1;margin:0;font-weight:500;line-height:1.5}.shop-item-status{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-green-ink);justify-content:center;align-items:center;gap:4px;margin:0;display:inline-flex}.shop-wear{--rar:var(--lu-text-3);--rar-soft:var(--lu-surface-2);position:relative}.shop-wear[data-rarity=rare]{--rar:var(--lu-blue);--rar-soft:var(--lu-blue-soft)}.shop-wear[data-rarity=epic]{--rar:var(--lu-purple);--rar-soft:var(--lu-purple-soft)}.shop-wear[data-rarity=legendary]{--rar:var(--lu-yellow);--rar-soft:var(--lu-yellow-soft)}.shop-wear.lu-card{border-color:var(--rar)}@supports (color:color-mix(in lab, red, red)){.shop-wear.lu-card{border-color:color-mix(in srgb, var(--rar) 55%, var(--lu-border))}}.shop-wear.lu-card{box-shadow:0 4px 0 var(--rar)}@supports (color:color-mix(in lab, red, red)){.shop-wear.lu-card{box-shadow:0 4px 0 color-mix(in srgb, var(--rar) 55%, var(--lu-border))}}.shop-wear .loo{box-sizing:content-box;border-radius:var(--lu-r-lg);background:var(--rar-soft);color:var(--lu-text-3);padding:6px}.shop-rarity{border-radius:var(--lu-r-xs);background:var(--rar-soft);font-size:12px;font-weight:var(--lu-fw-black);text-transform:uppercase;letter-spacing:.04em;color:var(--rar);align-self:stretch;padding:2px 6px}@supports (color:color-mix(in lab, red, red)){.shop-rarity{color:color-mix(in srgb, var(--rar) 70%, var(--lu-text))}}.shop-wear[data-on].lu-card{border-color:var(--lu-violet);box-shadow:0 4px 0 var(--lu-violet-lip)}.shop-wear[data-on] .shop-item-status{color:var(--lu-violet-ink)}.shop-stats{color:var(--lu-text-2);flex-wrap:wrap;justify-content:center;gap:4px;margin:0;padding:0;font-size:12px;font-weight:600;list-style:none;display:flex}.shop-stats li{border-radius:var(--lu-r-xs);background:var(--lu-surface-2);align-items:center;gap:3px;padding:1px 6px;display:inline-flex}.shop-stats strong{color:var(--lu-text)}.shop-item-rank{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);align-items:center;gap:4px;margin:0;display:inline-flex}.shop-item-rank[data-locked]{color:var(--lu-red-ink)}.shop-tryon{border-radius:var(--lu-r-sm);font:inherit;font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.shop-tryon:hover{background:var(--lu-violet-soft)}.shop-action{gap:4px;width:100%;margin-top:auto;display:grid}.shop-action .lu-btn{white-space:normal;min-width:0;padding-inline:8px}.shop-error{font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-red-ink)}.shop-slot{margin-top:14px}.shop-slot-title{font-family:var(--lu-font);font-size:var(--lu-fs-md);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);margin:0 0 8px}.shop-earn-cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;display:grid}.shop-earn{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);font-family:var(--lu-font);color:var(--lu-text-2);gap:8px;margin:0 0 40px;padding:14px 18px;font-weight:500;line-height:1.5;list-style:none;display:grid}.shop-earn li{align-items:center;gap:8px;display:flex}.leagues-page{font-family:var(--lu-font)}.league-hero{align-items:center;gap:18px;margin-top:28px;display:flex}.league-shield{width:96px;height:96px;filter:drop-shadow(0 4px 0 var(--tier-ink));flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.league-shield{filter:drop-shadow(0 4px 0 color-mix(in srgb, var(--tier-ink) 45%, transparent))}}.league-shield .lu-pxicon{width:100%;height:100%}.league-hero-text{min-width:0}.league-ends{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);color:var(--lu-text-2);margin-top:6px;padding:3px 10px;display:inline-block}.league-ladder{scrollbar-width:none;gap:6px;min-width:0;max-width:calc(100% + 12px);margin:20px -6px 8px;padding:6px;list-style:none;display:flex;overflow-x:auto}.league-ladder li{border-radius:var(--lu-r);flex:none;place-items:center;width:52px;height:52px;display:grid}.league-ladder li[data-state=locked] .lu-pxicon{filter:grayscale();opacity:.35}.league-ladder li[data-state=current]{background:var(--lu-violet-soft);box-shadow:inset 0 0 0 3px var(--lu-violet)}.league-last{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);align-items:center;gap:12px;margin:12px 0;padding:10px 14px;font-weight:600;line-height:1.45;display:flex}.league-last[data-result=promoted]{border-color:var(--lu-green);background:var(--lu-green-soft);color:var(--lu-green-ink)}.league-last[data-result=demoted]{border-color:var(--lu-red);background:var(--lu-red-soft);color:var(--lu-red-ink)}.league-last p{margin:0}.league-board{margin:16px 0 var(--lu-lip);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 var(--lu-lip) 0 var(--lu-border);padding:0;list-style:none;display:grid;overflow:hidden}.league-row{border-bottom:2px solid var(--lu-border);grid-template-columns:34px auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 14px;display:grid;position:relative}.league-row:last-child{border-bottom:0}.league-row[data-zone=promote]{background:var(--lu-green-soft)}@supports (color:color-mix(in lab, red, red)){.league-row[data-zone=promote]{background:color-mix(in srgb, var(--lu-green-soft) 55%, transparent)}}.league-row[data-zone=promote] .league-rank{color:var(--lu-green-ink)}.league-row[data-zone=demote]{background:var(--lu-red-soft)}@supports (color:color-mix(in lab, red, red)){.league-row[data-zone=demote]{background:color-mix(in srgb, var(--lu-red-soft) 55%, transparent)}}.league-row[data-zone=demote] .league-rank{color:var(--lu-red-ink)}.league-row[data-cut=promote]{border-bottom:3px dashed var(--lu-green)}.league-row[data-me]{background:var(--lu-violet-soft);box-shadow:inset 4px 0 0 var(--lu-violet)}.league-row[data-me] .lu-avatar[data-ring]{--lu-ring-color:var(--lu-violet);box-shadow:0 0 0 3px var(--lu-violet-soft), 0 0 0 6px var(--lu-ring-color)}.league-rank{font:800 var(--lu-fs-lg) / 1 var(--lu-font-pixel);text-align:center;color:var(--lu-text-2)}.league-rank[data-podium]{border-radius:var(--lu-r-sm);width:30px;height:30px;font-size:var(--lu-fs-md);place-items:center;display:grid;color:var(--lu-loo-ink)!important}.league-rank[data-podium="1"]{background:var(--lu-yellow);box-shadow:0 3px 0 var(--lu-yellow-lip)}.league-rank[data-podium="2"]{background:#c9c4dc;box-shadow:0 3px #8f88ab}.league-rank[data-podium="3"]{background:#f0a36b;box-shadow:0 3px #b8682f}.league-name{font-weight:var(--lu-fw-bold);text-overflow:ellipsis;white-space:nowrap;color:var(--lu-text);overflow:hidden}.league-me{color:var(--lu-violet-ink)}.league-xp{font-weight:var(--lu-fw-bold);color:var(--lu-text-2)}.league-alone{border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r-lg);justify-items:start;gap:14px;margin-top:18px;padding:16px;display:grid}.league-note{font-size:var(--lu-fs-xs);color:var(--lu-text-2);align-items:center;gap:6px;margin:18px 0 40px;font-weight:500;display:flex}@media (max-width:560px){.league-hero{gap:12px}.league-shield{width:72px;height:72px}.league-row{gap:10px;padding:8px 10px}.shop-wallet .loo{width:72px;height:72px}.shop-wallet-gems{font-size:30px}}.shop-page .gsection-title,.leagues-page .gsection-title{margin-top:28px}.toast[data-loo]{padding-left:64px}.toast-loo{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.loo-character{place-items:center;line-height:0;display:inline-grid}.loo-character[data-silhouette] .loo{filter:brightness(0)opacity(.22)}.shell-evo{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-family:var(--lu-font);font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px 2px 4px;text-decoration:none;display:inline-flex}.shell-evo:hover{background:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.shell-evo:hover{background:color-mix(in srgb, var(--lu-violet) 20%, var(--lu-violet-soft))}}@media (max-width:900px){.shell-evo{padding-right:4px}.shell-evo-title{display:none}}.sb-level-loo{position:relative}.sb-level-loo .tabular{border-radius:var(--lu-r-xs);background:var(--lu-violet);min-width:18px;box-shadow:0 2px 0 var(--lu-violet-lip);color:var(--lu-on-color);font:800 11px / 18px var(--lu-font-pixel);text-align:center;padding:0 4px;position:absolute;bottom:-4px;right:-4px}.st-hero-loo{align-self:center;place-items:center;display:inline-grid}.st-hero-evo{text-decoration:none}.evo-moment{z-index:200;background:radial-gradient(var(--lu-violet) 1.5px, transparent 2px) 0 0 / 24px 24px, radial-gradient(circle at 50% 40%, var(--lu-violet-soft) 0%, var(--lu-bg-sunk) 70%);place-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.evo-moment{background:radial-gradient(color-mix(in srgb, var(--lu-violet) 22%, transparent) 1.5px, transparent 2px) 0 0 / 24px 24px, radial-gradient(circle at 50% 40%, var(--lu-violet-soft) 0%, var(--lu-bg-sunk) 70%)}}.evo-moment{color:var(--lu-text);font-family:var(--lu-font);text-align:center;animation:evo-fade .35s var(--lu-ease) both}@keyframes evo-fade{0%{opacity:0}}.evo-stage{place-items:center;width:280px;height:260px;display:grid;position:relative}.evo-rays{background:repeating-conic-gradient(from 0deg, var(--lu-yellow) 0deg 10deg, transparent 10deg 30deg);position:absolute;inset:-40px}@supports (color:color-mix(in lab, red, red)){.evo-rays{background:repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--lu-yellow) 20%, transparent) 0deg 10deg, transparent 10deg 30deg)}}.evo-rays{border-radius:50%;animation:8s linear infinite evo-spin;-webkit-mask:radial-gradient(circle,#000 30%,#0000 70%);mask:radial-gradient(circle,#000 30%,#0000 70%)}@keyframes evo-spin{to{transform:rotate(360deg)}}.evo-eyebrow{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-bold);color:var(--lu-yellow-ink);margin:0}.evo-title{font-size:clamp(30px,7vw,46px);font-weight:var(--lu-fw-black);text-wrap:balance;margin:0;line-height:1.1}.evo-gems{font:800 var(--lu-fs-xl) / 1.2 var(--lu-font-pixel);color:var(--lu-blue-ink);justify-content:center;align-items:center;gap:8px;margin:0;display:flex}.evo-actions{gap:8px;width:min(320px,80vw);margin-top:10px;display:grid}@media (prefers-reduced-motion:reduce){.evo-rays{animation:none}}.loo-page{font-family:var(--lu-font)}.loo-hero{align-items:center;gap:24px;margin-top:24px;display:flex}.loo-hero.lu-card{--c-border:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.loo-hero.lu-card{--c-border:color-mix(in srgb, var(--lu-violet) 40%, var(--lu-border))}}.loo-hero.lu-card{background:var(--lu-violet-soft);box-shadow:0 var(--lu-lip) 0 var(--c-border);margin-bottom:var(--lu-lip)}.loo-hero-art{flex:none}.loo-hero-text{flex:1;min-width:0}.loo-eyebrow{font-size:var(--lu-fs-sm);font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);margin:0}.loo-title{font-size:clamp(30px,6vw,42px);font-weight:var(--lu-fw-black);color:var(--lu-text);flex-wrap:wrap;align-items:center;gap:10px;margin:2px 0 4px;line-height:1.1;display:flex}.loo-lead{color:var(--lu-text-2);margin:0 0 10px;font-weight:500;line-height:1.55}.loo-meta{color:var(--lu-text-2);flex-wrap:wrap;gap:8px;margin:0 0 12px;font-weight:600;display:flex}.loo-step,.loo-power{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);background:var(--lu-surface);align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.loo-gaps{font-size:var(--lu-fs-sm);color:var(--lu-text-2);margin:8px 0 0;font-weight:600}.loo-gap[data-met]{color:var(--lu-green-ink)}.loo-gap-gems{vertical-align:bottom;color:var(--lu-blue-ink);align-items:center;gap:3px;display:inline-flex}.loo-attrs{grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:16px;margin-top:12px;display:grid}.attr-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.attr-row{grid-template-columns:32px 120px minmax(0,1fr) 40px;align-items:center;gap:4px 10px;display:grid}.attr-icon{justify-self:center}.attr-name{font-weight:var(--lu-fw-bold);color:var(--lu-text)}.attr-row .attr-bar[data-tone=green]{--tone:var(--lu-violet)}.attr-row .attr-bar[data-tone=blue]{--tone:var(--lu-mint)}.attr-level{font:800 var(--lu-fs-lg) / 1 var(--lu-font-pixel);text-align:right;color:var(--lu-violet-ink)}.attr-hint{font-size:var(--lu-fs-xs);color:var(--lu-text-2);grid-column:2/-1;font-weight:500;line-height:1.4}.attr-radar-card{place-items:center;display:grid}.attr-radar{width:100%;max-width:280px;overflow:visible}.attr-radar-ring{fill:none;stroke:var(--lu-border);stroke-width:1.5px}.attr-radar-axis{stroke:var(--lu-border);stroke-width:1px}.attr-radar-shape{fill:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.attr-radar-shape{fill:color-mix(in srgb, var(--lu-violet) 28%, transparent)}}.attr-radar-shape{stroke:var(--lu-violet);stroke-width:3px;stroke-linejoin:miter}.loo-sw{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.loo-sw-title{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);align-items:center;gap:8px;margin:0 0 8px;display:flex}.loo-sw-list{gap:4px;margin:0;padding-left:20px;font-weight:600;display:grid}.loo-sw-list .lu-icon,.loo-sw-weak .lu-icon{vertical-align:-4px}.skill-source .lu-pxicon{vertical-align:-2px;display:inline-block}.loo-sw-weak{font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-black);margin:0}.loo-sw-tip{color:var(--lu-text-2);margin:4px 0 10px;font-weight:500;line-height:1.5}.skill-deck{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.skill-card{border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 4px 0 var(--lu-border);gap:4px;padding:14px 14px 20px;display:grid;position:relative;overflow:hidden}.skill-card[data-kind=section]{border-color:var(--lu-yellow);box-shadow:0 4px 0 var(--lu-yellow-lip);background:var(--lu-yellow-soft)}.skill-card:after{content:"";width:var(--power);background:var(--lu-violet);height:6px;position:absolute;bottom:0;left:0;-webkit-mask:repeating-linear-gradient(90deg,#000 0 9px,#0000 9px 12px);mask:repeating-linear-gradient(90deg,#000 0 9px,#0000 9px 12px)}.skill-name{font-size:var(--lu-fs-md);font-weight:var(--lu-fw-black);color:var(--lu-text)}.skill-source,.skill-course{font-size:var(--lu-fs-xs);color:var(--lu-text-2);font-weight:500}.skill-power{font-weight:var(--lu-fw-bold);color:var(--lu-violet-ink);align-items:center;gap:4px;display:inline-flex}.rank-ladder{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:12px 0 40px;padding:0;list-style:none;display:grid}.rank-rung{border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r);background:var(--lu-surface-2);grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:10px 12px;display:grid}.rank-rung[data-state=locked] .lu-pxicon{filter:grayscale();opacity:.5}.rank-rung[data-state=reached]{border-style:solid;border-color:var(--lu-violet)}@supports (color:color-mix(in lab, red, red)){.rank-rung[data-state=reached]{border-color:color-mix(in srgb, var(--lu-violet) 35%, var(--lu-border))}}.rank-rung[data-state=reached]{background:var(--lu-violet-soft)}.rank-rung[data-state=current]{border-style:solid;border-color:var(--lu-violet);background:var(--lu-surface);box-shadow:0 4px 0 var(--lu-violet-lip);transform:translateY(-2px)}.rank-rung-text{display:grid}.rank-rung-title{font-weight:var(--lu-fw-black);color:var(--lu-text)}.rank-rung[data-state=current] .rank-rung-title{color:var(--lu-violet-ink)}.rank-rung-sub{color:var(--lu-text-2);font-size:12px;font-weight:600}.rank-rung-pips{grid-column:1/-1;grid-template-columns:repeat(5,1fr);gap:3px;display:grid}.rank-rung-pips span{background:var(--lu-border);border-radius:2px;height:6px}.rank-rung-pips span[data-on]{background:var(--lu-violet)}.loo-courses{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;margin:0 0 24px;padding:0;list-style:none;display:grid}.loo-course{border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);grid-template-columns:auto 1fr auto;align-items:center;gap:6px 10px;padding:10px 12px;display:grid}.loo-course-title{min-width:0;font-weight:var(--lu-fw-bold)}.loo-course-rank{font-weight:var(--lu-fw-black);color:var(--lu-violet-ink);align-items:center;gap:4px;display:inline-flex}.loo-course-steps{grid-column:1/-1;grid-template-columns:repeat(6,1fr);gap:3px;display:grid}.loo-course-steps span{background:var(--lu-border);border-radius:2px;height:6px}.loo-course-steps span[data-on]{background:var(--lu-mint)}.loo-gear{grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:start;gap:14px;margin-bottom:24px;display:grid}.loo-gear-slots{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.loo-gear-slot{--rar:var(--lu-text-3);border:2px solid var(--rar);align-items:center;gap:10px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.loo-gear-slot{border:2px solid color-mix(in srgb, var(--rar) 50%, var(--lu-border))}}.loo-gear-slot{border-radius:var(--lu-r);background:var(--lu-surface)}.loo-gear-slot[data-rarity=rare]{--rar:var(--lu-blue)}.loo-gear-slot[data-rarity=epic]{--rar:var(--lu-purple)}.loo-gear-slot[data-rarity=legendary]{--rar:var(--lu-yellow)}.loo-gear-slot[data-empty]{background:var(--lu-surface-2);border-style:dashed}.loo-gear-slot[data-empty] .lu-pxicon{filter:grayscale();opacity:.45}.loo-gear-text{min-width:0;display:grid}.loo-gear-label,.loo-gear-rarity{color:var(--lu-text-2);font-size:12px;font-weight:600}.loo-gear-rarity{color:var(--rar)}@supports (color:color-mix(in lab, red, red)){.loo-gear-rarity{color:color-mix(in srgb, var(--rar) 70%, var(--lu-text))}}.loo-stats-card{gap:10px;display:grid}.loo-stats{gap:8px;margin:0;padding:0;list-style:none;display:grid}.loo-stat{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-weight:600;display:grid}.loo-stat-value{font-weight:var(--lu-fw-black)}@media (max-width:860px){.shop-top,.loo-gear{grid-template-columns:1fr}.shop-stage-card{position:static}}@media (max-width:720px){.loo-hero{text-align:center;flex-direction:column}.loo-title,.loo-meta{justify-content:center}.loo-attrs,.loo-sw{grid-template-columns:minmax(0,1fr)}.attr-row{grid-template-columns:28px 100px minmax(0,1fr) 34px}}:root,.lu-scheme-light,.lu-scheme-dark{--st-mark:var(--lightningcss-light,#7c4dff)var(--lightningcss-dark,#a68bff);--st-mark-wash:var(--lightningcss-light,#7c4dff1f)var(--lightningcss-dark,#a68bff29);--st-grid:var(--lu-border);--st-heat-0:var(--lightningcss-light,#ece6fb)var(--lightningcss-dark,#2a2350);--st-heat-1:var(--lightningcss-light,#d6c8ff)var(--lightningcss-dark,#3d2f7a);--st-heat-2:var(--lightningcss-light,#b49aff)var(--lightningcss-dark,#5a43b0);--st-heat-3:var(--lightningcss-light,#8c69ff)var(--lightningcss-dark,#8063e6);--st-heat-4:var(--lightningcss-light,#5a30d6)var(--lightningcss-dark,#b9a3ff)}.admin-grant{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.admin-grant .text-input{width:140px}.lang-audio{align-items:center;gap:var(--lu-s-2);vertical-align:middle;flex-wrap:wrap;display:inline-flex}.lang-audio-play,.lang-audio-slow{--s:40px;inline-size:var(--s);block-size:var(--s);border:2px solid var(--lu-violet-lip);border-radius:var(--lu-r);background:var(--lu-violet);color:var(--lu-on-color);box-shadow:0 3px 0 var(--lu-violet-lip);font-size:calc(var(--s) * .5);cursor:pointer;transition:transform var(--lu-dur-1) var(--lu-ease), box-shadow var(--lu-dur-1) var(--lu-ease);clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));place-items:center;display:inline-grid}.lang-audio-slow{background:var(--lu-mint-soft);border-color:var(--lu-mint-lip);color:var(--lu-mint-ink);box-shadow:0 3px 0 var(--lu-mint-lip)}.lang-audio-play:hover{background:var(--lu-violet-hover)}.lang-audio-play:active,.lang-audio-slow:active{transform:translateY(3px);box-shadow:0 0 #0000}.lang-audio[data-size=sm] .lang-audio-play,.lang-audio[data-size=sm] .lang-audio-slow{--s:30px}.lang-audio[data-size=lg] .lang-audio-play{--s:64px}.lang-audio[data-size=lg] .lang-audio-slow{--s:48px}.lang-audio[data-phase=playing] .lang-audio-play{animation:lang-pulse 1s var(--lu-ease) infinite}.lang-audio[data-phase=loading] .lang-audio-play{opacity:.7;cursor:progress}@keyframes lang-pulse{50%{transform:scale(1.06)}}.lang-audio-missing{gap:var(--lu-s-2);padding:var(--lu-s-2) var(--lu-s-3);border:2px dashed var(--lu-border-strong);border-radius:var(--lu-r);color:var(--lu-text-2);font-size:var(--lu-fs-sm)}.lang-audio-error{color:var(--lu-red-ink);font-size:var(--lu-fs-sm)}.lang-accent{border:2px solid var(--lu-border);border-radius:var(--lu-r-sm);display:inline-flex;overflow:hidden}.lang-accent button{background:var(--lu-surface);color:var(--lu-text-3);font:inherit;font-size:var(--lu-fs-xs);font-weight:var(--lu-fw-bold);cursor:pointer;border:0;padding:2px 8px}.lang-accent button[data-on]{background:var(--lu-violet-soft);color:var(--lu-violet-ink)}.lang-ipa{border-radius:var(--lu-r-sm);background:var(--lu-violet-soft);color:var(--lu-violet-ink);font-family:"Charis SIL", "Doulos SIL", "Gentium Plus", "Noto Sans", var(--lu-font);white-space:nowrap;align-items:baseline;gap:4px;padding:1px 8px;font-size:.95em;display:inline-flex}.lang-ipa-region{font-family:var(--lu-font);font-size:var(--lu-fs-2xs);font-weight:var(--lu-fw-bold);opacity:.7}.lang-word-front{align-items:center;gap:var(--lu-s-2) var(--lu-s-3);flex-wrap:wrap;display:flex}.lang-word-head{align-items:center;gap:var(--lu-s-2) var(--lu-s-3);flex-wrap:wrap;min-width:0;display:inline-flex}.lang-word-front[data-compact]{flex-wrap:nowrap;justify-content:space-between}.lang-word-front[data-compact] .lang-word-head{flex:1}.lang-word-front[data-compact] .lang-word-text{font-size:var(--lu-fs-xl);line-height:1.15}.lang-word-front[data-compact] .lang-audio{flex-wrap:nowrap;flex:none}.lang-word>summary{align-items:center}.lang-word>summary .toggle-arrow{margin-top:0}.lang-word-text{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);letter-spacing:-.01em}.lang-word-meta{align-items:center;gap:var(--lu-s-2);flex-wrap:wrap;display:inline-flex}.lang-word-pos{color:var(--lu-text-3);font-size:var(--lu-fs-sm);font-style:italic}.lang-word-back{gap:var(--lu-s-3);display:grid}.lang-word-tr{font-size:var(--lu-fs-xl);font-weight:var(--lu-fw-bold);margin:0}.lang-word-examples{gap:var(--lu-s-2);margin:0;padding:0;list-style:none;display:grid}.lang-word-examples li{align-items:flex-start;gap:var(--lu-s-2);display:flex}.lang-word-en{font-weight:600}.lang-word-ex-tr{color:var(--lu-text-2)}.lang-word-hl{background:var(--lu-yellow-soft);color:inherit;border-radius:3px;padding:0 2px}.lang-word-forms,.lang-word-note{color:var(--lu-text-2);margin:0}.lang-word>summary .lang-word-front{flex:1}.lang-word>.lang-word-back{padding:var(--lu-s-3) var(--lu-s-4) var(--lu-s-4)}.flashcard-question .lang-word-front,.lesson-question .lang-word-front{justify-content:center}.lang-listen{align-items:center;gap:var(--lu-s-2);padding:var(--lu-s-4);margin-block:var(--lu-s-2);border:2px solid var(--lu-pink-soft);border-radius:var(--lu-r-lg);background:var(--lu-surface-2);flex-direction:column;display:flex}.lang-listen-hint{color:var(--lu-text-3);font-size:var(--lu-fs-sm);text-align:center;margin:0}.lang-pair{border-color:var(--lu-orange-soft)}.lang-pair-option{align-items:center;gap:var(--lu-s-2);font-size:var(--lu-fs-lg);font-weight:var(--lu-fw-bold);display:inline-flex}.lang-dictation{gap:var(--lu-s-2);inline-size:100%;display:grid}.lang-dictation-input{resize:vertical;min-block-size:3.2em;inline-size:100%;font-size:var(--lu-fs-lg)}.lang-dictation-row{align-items:center;gap:var(--lu-s-3);display:flex}.lang-dictation-row .lang-dictation-input{flex:1;min-inline-size:0}.lang-mic.lang-mic-sm{block-size:56px;inline-size:56px;box-shadow:0 4px 0 var(--lu-mint-lip), 0 0 0 0 transparent;flex:none;font-size:26px}.lang-mic.lang-mic-sm[data-on]{box-shadow:0 4px 0 var(--lu-red-lip);animation:1.1s ease-in-out infinite lang-mic-pulse}.lang-dictation-status{color:var(--lu-text-2);font-size:var(--lu-fs-sm);margin:0}@keyframes lang-mic-pulse{50%{transform:scale(1.06)}}.lang-diff{font-size:var(--lu-fs-lg);flex-wrap:wrap;gap:4px 6px;margin:0;display:flex}.lang-diff-word{border-radius:var(--lu-r-xs);background:var(--lu-red-soft);color:var(--lu-red-ink);text-underline-offset:4px;padding:0 4px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.lang-diff-word[data-ok]{background:var(--lu-green-soft);color:var(--lu-green-ink);text-decoration:none}.lang-speak{gap:var(--lu-s-4);display:grid}.lang-speak-target{gap:var(--lu-s-2);padding:var(--lu-s-4);border:2px solid var(--lu-border);border-radius:var(--lu-r-lg);background:var(--lu-surface);box-shadow:0 4px 0 var(--lu-border);text-align:center;justify-items:center;display:grid}.lang-speak-text{font-size:var(--lu-fs-2xl);font-weight:var(--lu-fw-black);flex-wrap:wrap;justify-content:center;gap:4px 8px;margin:0;display:flex}.lang-speak-text .lang-diff-word{text-decoration-thickness:2px}.lang-speak-meta{align-items:center;gap:var(--lu-s-2);flex-wrap:wrap;justify-content:center;display:inline-flex}.lang-speak-tr{color:var(--lu-text-2);margin:0}.lang-speak-mic{justify-items:center;gap:var(--lu-s-3);display:grid}.lang-mic{--level:0;border:3px solid var(--lu-mint-lip);background:var(--lu-mint);block-size:84px;inline-size:84px;color:var(--lu-on-mint);box-shadow:0 5px 0 var(--lu-mint-lip), 0 0 0 calc(var(--level) * 18px) var(--lu-mint);border-radius:50%;place-items:center;font-size:38px;display:grid}@supports (color:color-mix(in lab, red, red)){.lang-mic{box-shadow:0 5px 0 var(--lu-mint-lip), 0 0 0 calc(var(--level) * 18px) color-mix(in srgb, var(--lu-mint) 35%, transparent)}}.lang-mic{cursor:pointer;transition:box-shadow 80ms linear, transform var(--lu-dur-1) var(--lu-ease)}.lang-mic[data-on]{background:var(--lu-red);border-color:var(--lu-red-lip);color:var(--lu-on-color);box-shadow:0 5px 0 var(--lu-red-lip), 0 0 0 calc(var(--level) * 18px) var(--lu-red)}@supports (color:color-mix(in lab, red, red)){.lang-mic[data-on]{box-shadow:0 5px 0 var(--lu-red-lip), 0 0 0 calc(var(--level) * 18px) color-mix(in srgb, var(--lu-red) 30%, transparent)}}.lang-mic:active{transform:translateY(4px)}.lang-mic:disabled{opacity:.55;cursor:default}.lang-meter{align-items:flex-end;gap:3px;block-size:14px;display:inline-flex}.lang-meter span{background:var(--lu-border);border-radius:1px;block-size:100%;inline-size:6px}.lang-meter span:nth-child(odd){block-size:70%}.lang-meter span[data-on]{background:var(--lu-mint)}.lang-speak-status{color:var(--lu-text-2);text-align:center;min-block-size:1.5em;margin:0}.lang-hints{padding:var(--lu-s-3) var(--lu-s-4) var(--lu-s-3) var(--lu-s-6);border-radius:var(--lu-r);background:var(--lu-yellow-soft);color:var(--lu-text);gap:var(--lu-s-1);margin:0;display:grid}.lang-speak-skip{font-size:var(--lu-fs-sm)}.lang-speak-fallback{gap:var(--lu-s-3);color:var(--lu-text-2);display:grid}.lang-speak-fallback p{margin:0}.lang-vocab{gap:var(--lu-s-2);content-visibility:auto;contain-intrinsic-size:auto 480px;margin:0;padding:0;list-style:none;display:grid}.lang-vocab li{align-items:center;gap:var(--lu-s-3);padding:var(--lu-s-2) var(--lu-s-3);border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);display:flex}.lang-vocab-word{font-weight:var(--lu-fw-black)}.lang-vocab-tr{color:var(--lu-text-2);text-align:end;margin-inline-start:auto}.lang-topics{gap:var(--lu-s-2);margin:0;padding:0;list-style:none;display:grid}.lang-topics a{gap:var(--lu-s-3);padding:var(--lu-s-2) var(--lu-s-3);border:2px solid var(--lu-border);border-radius:var(--lu-r);background:var(--lu-surface);color:inherit;align-items:center;text-decoration:none;display:flex}.lang-topics a:hover{border-color:var(--lu-violet)}.lang-topics small{color:var(--lu-text-3);margin-inline-start:auto}.cp-planned{color:var(--lu-text-3);font-size:var(--lu-fs-sm);margin:0}@media (prefers-reduced-motion:reduce){.lang-audio[data-phase=playing] .lang-audio-play{animation:none}.lang-mic{transition:none}.lang-mic.lang-mic-sm[data-on]{animation:none}}.placement-manual{gap:var(--lu-s-2);display:grid}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lu-bg);--sidebar:var(--lu-surface);--surface:var(--lu-surface);--sunk:var(--lu-surface-2);--t1:var(--lu-text);--t2:var(--lu-text-2);--t3:var(--lu-text-3);--hover:var(--lu-hover);--press:var(--lu-press);--border:var(--lu-border-strong);--rule:var(--lu-border);--table-line:var(--lu-border);--accent:var(--lu-violet);--accent-hover:var(--lu-violet-hover);--accent-ink:#fff;--accent-soft:var(--lu-violet-soft);--selection:var(--lightningcss-light,#7c4dff38)var(--lightningcss-dark,#8c69ff66);--code-bg:var(--lightningcss-light,#1e1640)var(--lightningcss-dark,#0f0b1f);--code-border:var(--lightningcss-light,#2e2459)var(--lightningcss-dark,#2a2250);--inline-code-bg:var(--lu-violet-soft);--inline-code:var(--lu-violet-ink);--gray:var(--lu-text-2);--gray-bg:var(--lu-surface-3);--brown:var(--lightningcss-light,#9a6a4f)var(--lightningcss-dark,#c99a80);--brown-bg:var(--lightningcss-light,#f6ece6)var(--lightningcss-dark,#3a2a22);--orange:var(--lu-orange-ink);--orange-bg:var(--lu-orange-soft);--yellow:var(--lu-yellow-ink);--yellow-bg:var(--lu-yellow-soft);--green:var(--lu-green-ink);--green-bg:var(--lu-green-soft);--blue:var(--lu-blue-ink);--blue-bg:var(--lu-blue-soft);--purple:var(--lu-violet-ink);--purple-bg:var(--lu-violet-soft);--pink:var(--lu-pink-ink);--pink-bg:var(--lu-pink-soft);--red:var(--lu-red-ink);--red-bg:var(--lu-red-soft);--tag-default:var(--lu-surface-3);--tag-gray:var(--lu-surface-3);--tag-brown:var(--brown-bg);--tag-orange:var(--lu-orange-soft);--tag-yellow:var(--lu-yellow-soft);--tag-green:var(--lu-green-soft);--tag-blue:var(--lu-blue-soft);--tag-purple:var(--lu-violet-soft);--tag-pink:var(--lu-pink-soft);--tag-red:var(--lu-red-soft);--tag-text:var(--lu-text);--success:var(--green);--success-soft:var(--green-bg);--danger:var(--red);--danger-soft:var(--red-bg);--warning:var(--orange);--warning-soft:var(--yellow-bg);--info:var(--blue);--info-soft:var(--blue-bg);--mark:var(--lu-yellow-soft);--code-foreground:#ece8ff;--code-token-keyword:#c4a1ff;--code-token-string:#7fe3d2;--code-token-string-expression:#7fe3d2;--code-token-constant:#ffb86b;--code-token-comment:#8a80b3;--code-token-function:#82b6ff;--code-token-parameter:#ffd479;--code-token-punctuation:#a99fd6;--code-token-link:#82b6ff;--code-token-inserted:#5fe09a;--code-token-deleted:#ff8a99;--code-token-changed:#ffae73;--code-ansi-black:var(--code-foreground);--code-line:#8c69ff29;--pop-a:var(--lightningcss-light,#2a21450d)var(--lightningcss-dark,#00000026);--pop-b:var(--lightningcss-light,#2a214514)var(--lightningcss-dark,#00000040);--pop-c:var(--lightningcss-light,#2a214524)var(--lightningcss-dark,#00000073);--pop-ring:var(--lu-border);--shadow-pop:0 0 0 2px var(--pop-ring), 0 4px 0 var(--lu-border), var(--pop-c) 0 12px 28px;--shadow-card:0 0 0 2px var(--lu-border), 0 3px 0 var(--lu-border);--shadow-card-color:var(--lu-border);--shadow-card-drop:var(--lu-border);--shadow-page:var(--shadow-card)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
