/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--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)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@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;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.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}}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.h-screen{height:100vh}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-left{text-align:left}.text-wrap{text-wrap:wrap}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.oldstyle-nums,.ordinal{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow,.shadow\/glow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow,.shadow\/glow{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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.invert{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,)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%)}.filter,.sepia{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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;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)}}@layer sf-base{*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:88px}body,html{background:var(--bg);color:var(--ink);font-family:var(--font-ui)}body{min-height:100dvh;font-size:var(--text-base);font-weight:500;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);overflow-wrap:normal;word-break:normal;text-wrap:balance;margin:0}h1{font-size:var(--text-2xl);letter-spacing:var(--tracking-display);font-weight:900;line-height:var(--leading-tight)}h2{font-size:var(--text-xl)}h2,h3{letter-spacing:-.02em;font-weight:800;line-height:1.05}h3{font-size:var(--text-lg)}h4{font-size:var(--text-base);font-weight:700;line-height:var(--leading-snug)}p{text-wrap:pretty;margin:0}a{color:inherit;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}img,svg{max-width:100%;display:block}svg{flex-shrink:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}ol,ul{padding:0}dd,dl,ol,ul{margin:0}fieldset{border:0;min-width:0;margin:0}fieldset,legend{padding:0}table{border-collapse:collapse;width:100%}hr{border:0;border-top:var(--stroke) solid var(--line);margin:var(--space-6) 0}::selection{background:var(--sun);color:var(--ink-fixed)}b,strong{font-weight:700}:where(label){gap:var(--space-2);color:var(--ink);font-size:var(--text-sm);font-weight:700;display:grid}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea){width:100%;min-height:48px;padding:10px var(--space-4);border-radius:var(--radius-sm);border:var(--stroke) solid var(--line);background:var(--surface);color:var(--ink);font-size:var(--text-base);transition:border-color var(--dur-fast),background-color var(--dur);font-weight:500;line-height:1.4;display:block}:where(textarea){resize:vertical;min-height:96px}:where(input,select,textarea)::placeholder{color:var(--muted);opacity:1}:where(input,select,textarea):disabled{background:var(--soft);color:var(--muted);cursor:not-allowed}:where(input,select,textarea)[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}:where(select){appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%;background-repeat:no-repeat;background-size:6px 6px;padding-right:40px}:where(input[type=checkbox],input[type=radio]){width:22px;height:22px;accent-color:var(--ink);cursor:pointer;flex:none;margin:0}}:root{--coral:#ff6f59;--lagoon:#5db8ff;--sun:#ffd23f;--kelp:#3dd68c;--ink-fixed:#17161c;--white:#fff;--swatch-ocean:#4f86ff;--swatch-teal:#22c3b4;--swatch-violet:#a78bfa;--swatch-amber:#ffa53d;--swatch-rose:#ff85b0}:root,:root[data-theme=light]{color-scheme:light;--bg:#fff8f0;--ink:#17161c;--body:#3b3842;--muted:#55515e;--surface:#fff;--soft:#fff8f0;--line:#17161c;--shadow:#17161c;--chip:#fff;--nav:#fff;--say-shadow:#17161c;--btn-shadow:#fff;--dash:#17161c;--seg-empty:#fff;--seg-line:#17161c;--seg-fill-line:#17161c;--active-line:#17161c;--band-bg:#17161c;--band-fg:#fff8f0;--btn-bg:#17161c;--btn-fg:#fff;--btn-line:#17161c;--deco:#17161c29;--blob:.22;--text:#17161c;--text-muted:#55515e;--text-inverse:#fff8f0;--surface-raised:#fff8f0;--surface-sunken:#f6ede2;--border:#17161c;--border-strong:#17161c;--accent:#17161c;--accent-hover:#17161c;--accent-active:#17161c;--on-accent:#fff;--accent-tint:#fff1c2;--link:#17161c;--focus:#17161c;--success:#1b7a50;--success-tint:#d9f5e6;--warning:#7a5600;--warning-tint:#fff1c2;--danger:#b23a2a;--danger-tint:#ffdcd5;--info:#1f5f99;--info-tint:#d7ecff;--band-urgent:#b23a2a;--band-urgent-tint:#ffdcd5;--band-high:#7a5600;--band-high-tint:#fff1c2;--band-medium:#1f5f99;--band-medium-tint:#d7ecff;--band-low:#55515e;--band-low-tint:#f6ede2;--course-outline:#17161c;--course-ocean:var(--swatch-ocean);--course-ocean-tint:#dce1f3;--course-teal:var(--swatch-teal);--course-teal-tint:#d3ede4;--course-violet:var(--swatch-violet);--course-violet-tint:#ede2f2;--course-amber:var(--swatch-amber);--course-amber-tint:#ffe7cc;--course-rose:var(--swatch-rose);--course-rose-tint:#ffe1e3;--shadow-1:2px 3px 0 var(--shadow);--shadow-2:3px 4px 0 var(--shadow);--shadow-3:4px 5px 0 var(--shadow);--scrim:#17161c8c}:root[data-theme=dark]{color-scheme:dark;--bg:#141318;--ink:#f5f1ea;--body:#d6d1dc;--muted:#b4aebd;--surface:#211f27;--soft:#141318;--line:#f5f1ea;--shadow:#f5f1ea;--chip:#f5f1ea;--nav:#1c1b21;--say-shadow:#ff6f59;--btn-shadow:#f5f1ea;--dash:#b4aebd;--seg-empty:transparent;--seg-line:#b4aebd;--seg-fill-line:#3dd68c;--active-line:#ff6f59;--band-bg:#0b0a0e;--band-fg:#f5f1ea;--btn-bg:#f5f1ea;--btn-fg:#17161c;--btn-line:#f5f1ea;--deco:#f5f1ea24;--blob:.12;--text:#f5f1ea;--text-muted:#b4aebd;--text-inverse:#17161c;--surface-raised:#141318;--surface-sunken:#0b0a0e;--border:#f5f1ea;--border-strong:#f5f1ea;--accent:#f5f1ea;--accent-hover:#f5f1ea;--accent-active:#f5f1ea;--on-accent:#17161c;--accent-tint:#3a3215;--link:#f5f1ea;--focus:#f5f1ea;--success:#3dd68c;--success-tint:#173a2b;--warning:#ffd23f;--warning-tint:#3a3215;--danger:#ff6f59;--danger-tint:#3e211c;--info:#5db8ff;--info-tint:#163247;--band-urgent:#ff6f59;--band-urgent-tint:#3e211c;--band-high:#ffd23f;--band-high-tint:#3a3215;--band-medium:#5db8ff;--band-medium-tint:#163247;--band-low:#b4aebd;--band-low-tint:#211f27;--course-outline:#f5f1ea;--course-ocean:var(--swatch-ocean);--course-ocean-tint:#233052;--course-teal:var(--swatch-teal);--course-teal-tint:#173f3f;--course-violet:var(--swatch-violet);--course-violet-tint:#393150;--course-amber:var(--swatch-amber);--course-amber-tint:#4f3721;--course-rose:var(--swatch-rose);--course-rose-tint:#4f2f3e;--shadow-1:2px 3px 0 var(--shadow);--shadow-2:3px 4px 0 var(--shadow);--shadow-3:4px 5px 0 var(--shadow);--scrim:#000000b3}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#141318;--ink:#f5f1ea;--body:#d6d1dc;--muted:#b4aebd;--surface:#211f27;--soft:#141318;--line:#f5f1ea;--shadow:#f5f1ea;--chip:#f5f1ea;--nav:#1c1b21;--say-shadow:#ff6f59;--btn-shadow:#f5f1ea;--dash:#b4aebd;--seg-empty:transparent;--seg-line:#b4aebd;--seg-fill-line:#3dd68c;--active-line:#ff6f59;--band-bg:#0b0a0e;--band-fg:#f5f1ea;--btn-bg:#f5f1ea;--btn-fg:#17161c;--btn-line:#f5f1ea;--deco:#f5f1ea24;--blob:.12;--text:#f5f1ea;--text-muted:#b4aebd;--text-inverse:#17161c;--surface-raised:#141318;--surface-sunken:#0b0a0e;--border:#f5f1ea;--border-strong:#f5f1ea;--accent:#f5f1ea;--accent-hover:#f5f1ea;--accent-active:#f5f1ea;--on-accent:#17161c;--accent-tint:#3a3215;--link:#f5f1ea;--focus:#f5f1ea;--success:#3dd68c;--success-tint:#173a2b;--warning:#ffd23f;--warning-tint:#3a3215;--danger:#ff6f59;--danger-tint:#3e211c;--info:#5db8ff;--info-tint:#163247;--band-urgent:#ff6f59;--band-urgent-tint:#3e211c;--band-high:#ffd23f;--band-high-tint:#3a3215;--band-medium:#5db8ff;--band-medium-tint:#163247;--band-low:#b4aebd;--band-low-tint:#211f27;--course-outline:#f5f1ea;--course-ocean:var(--swatch-ocean);--course-ocean-tint:#233052;--course-teal:var(--swatch-teal);--course-teal-tint:#173f3f;--course-violet:var(--swatch-violet);--course-violet-tint:#393150;--course-amber:var(--swatch-amber);--course-amber-tint:#4f3721;--course-rose:var(--swatch-rose);--course-rose-tint:#4f2f3e;--shadow-1:2px 3px 0 var(--shadow);--shadow-2:3px 4px 0 var(--shadow);--shadow-3:4px 5px 0 var(--shadow);--scrim:#000000b3}}:root{--font-display:var(--font-gabarito),"Gabarito",system-ui,sans-serif;--font-ui:var(--font-figtree),"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--font-read:var(--font-display);--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.3125rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--text-4xl:3.625rem;--text-5xl:clamp(3.375rem,7.6vw,6.75rem);--leading-tight:.98;--leading-snug:1.2;--leading-normal:1.4;--leading-relaxed:1.55;--tracking-display:-.03em;--tracking-title:-.04em;--tracking-label:.04em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--gutter:clamp(16px,4vw,48px);--content-max:1180px;--reading-max:66ch;--stroke:2.5px;--stroke-wide:3px;--radius-xs:10px;--radius-sm:14px;--radius-md:18px;--radius-lg:22px;--radius-xl:26px;--radius-2xl:40px;--radius-pill:999px;--offset-sm:2px 3px;--offset-md:3px 4px;--offset-lg:4px 5px;--offset-xl:8px 9px;--z-bg:0;--z-nav:20;--z-sticky:30;--z-backdrop:40;--z-drawer:45;--z-modal:50;--z-toast:60;--z-skip:70;--dur-instant:90ms;--dur-fast:.12s;--dur:.35s;--dur-slow:.42s;--dur-enter:.6s;--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-enter:cubic-bezier(.2,.9,.25,1.15);--ease-pop:cubic-bezier(.2,.9,.3,1.3);--ease-jump:cubic-bezier(.3,.7,.4,1);--ease-leave:cubic-bezier(.5,0,.75,0);--ease-overshoot:cubic-bezier(.3,1.45,.5,1);--tap:44px}:is(.ocean,.sky){--course:var(--swatch-ocean);--course-color:var(--swatch-ocean);--course-tint:var(--course-ocean-tint)}.teal{--course:var(--swatch-teal);--course-color:var(--swatch-teal);--course-tint:var(--course-teal-tint)}.violet{--course:var(--swatch-violet);--course-color:var(--swatch-violet);--course-tint:var(--course-violet-tint)}.amber{--course:var(--swatch-amber);--course-color:var(--swatch-amber);--course-tint:var(--course-amber-tint)}.rose{--course:var(--swatch-rose);--course-color:var(--swatch-rose);--course-tint:var(--course-rose-tint)}html.theme-switching,html.theme-switching *{transition:background-color var(--dur) ease,border-color var(--dur) ease,color var(--dur) ease,box-shadow var(--dur) ease!important}:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible,input:is([type=date],[type=time],[type=datetime-local]):focus-within{outline-offset:2px;outline:3px solid #0000;box-shadow:0 0 0 3px #fff,0 0 0 6px #17161c!important}:focus:not(:focus-visible){outline:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{top:var(--space-3);left:var(--space-3);z-index:var(--z-skip);padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--btn-line);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-display);transition:transform var(--dur-fast) var(--ease-out);font-weight:800;text-decoration:none;position:fixed;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}main[tabindex="-1"]:focus{outline:none;box-shadow:none!important}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reef-bg,.reef-burst,.reef-spark,.reef-typing{display:none!important}}.button{--btn-surface:var(--surface);--btn-ink:var(--ink);--btn-edge:var(--line);--btn-drop:var(--shadow);justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-5);border-radius:var(--radius-md);border:var(--stroke) solid var(--btn-edge);background:var(--btn-surface);color:var(--btn-ink);font-family:var(--font-ui);text-align:center;white-space:nowrap;cursor:pointer;box-shadow:var(--offset-sm) 0 var(--btn-drop);transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease,background-color var(--dur) ease,color var(--dur) ease,border-color var(--dur) ease;font-size:15px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.button svg{stroke-width:2.4px;flex:none}.button:is(:hover,.is-hover):not(:disabled,[aria-disabled=true]){transform:translate(-1px,-1px)}.button:is(:active,.is-active):not(:disabled,[aria-disabled=true]){box-shadow:none;transform:translate(2px,3px)}.button.primary{--btn-surface:var(--btn-bg);--btn-ink:var(--btn-fg);--btn-edge:var(--btn-line);--btn-drop:var(--coral);font-family:var(--font-display);box-shadow:var(--offset-md) 0 var(--btn-drop);font-size:17px;font-weight:800}.button.primary.on-tile,.on-tile .button.primary{--btn-surface:var(--ink-fixed);--btn-ink:#fff;--btn-edge:var(--ink-fixed);--btn-drop:var(--btn-shadow)}.button.secondary{--btn-surface:var(--surface)}.button.secondary.on-tile,.on-tile .button.secondary{--btn-surface:var(--chip);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed);box-shadow:none}.button.ghost{--btn-surface:transparent;--btn-edge:transparent;box-shadow:none;text-underline-offset:3px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.button.ghost:is(:hover,.is-hover):not(:disabled){text-decoration-thickness:3px;transform:none}.button.danger{--btn-surface:var(--coral);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed)}.button.danger-outline{--btn-surface:var(--surface);--btn-ink:var(--danger);--btn-edge:var(--danger);--btn-drop:var(--danger)}.button.small{min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius-sm);font-size:15px}.button.large{min-height:56px;padding:0 var(--space-8);border-radius:var(--radius-md);font-size:19px}.button.block{width:100%}.button:disabled,.button[aria-disabled=true]{opacity:.5;box-shadow:none;cursor:not-allowed}.button[aria-busy=true]{cursor:progress;box-shadow:none}.button-group{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.button.text{--btn-surface:transparent;--btn-edge:transparent;padding:0 var(--space-2);box-shadow:none;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.button.text:is(:hover,.is-hover):not(:disabled){text-decoration-thickness:3px;transform:none}.icon-button{width:var(--tap);height:var(--tap);border-radius:var(--radius-sm);color:var(--ink);background:var(--surface);border:var(--stroke) solid var(--line);box-shadow:var(--offset-sm) 0 var(--shadow);transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease,background-color var(--dur) ease,color var(--dur) ease,border-color var(--dur) ease;place-items:center;display:inline-grid}.icon-button svg{stroke-width:2.4px}.icon-button:is(:hover,.is-hover){transform:translate(-1px,-1px)}.icon-button:is(:active,.is-active){box-shadow:none;transform:translate(2px,3px)}.icon-button.quiet{box-shadow:none;background:0 0;border-color:#0000}.back-link,.text-link{align-items:center;gap:var(--space-1);min-height:var(--tap);color:var(--ink);text-underline-offset:3px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;display:inline-flex}.back-link:is(:hover,.is-hover),.text-link:is(:hover,.is-hover){text-decoration-thickness:3px}.back-link{color:var(--muted)}.back-link:is(:hover,.is-hover){color:var(--ink)}.danger-text{color:var(--danger);min-height:var(--tap);font-weight:700}.field{gap:var(--space-2);display:grid}.field small{color:var(--muted);font-size:var(--text-sm);font-weight:500}.field-error,.form-error{gap:var(--space-2);color:var(--danger);font-size:var(--text-sm);align-items:flex-start;margin:0;font-weight:700;display:flex}.field-error:before,.form-error:before{content:"!";border:2px solid var(--ink-fixed);background:var(--coral);width:20px;height:20px;color:var(--ink-fixed);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:13px;font-weight:900;display:inline-grid}.checkbox-label{align-items:flex-start;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) 0;font-weight:500;font-size:var(--text-base);cursor:pointer;display:flex}.checkbox-label input{margin-top:1px}.form-stack{gap:var(--space-5);display:grid}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.form-intro{color:var(--body)}label .optional{color:var(--muted);font-weight:500;font-size:var(--text-xs)}fieldset>legend{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:700}.course-picker{gap:var(--space-2);display:grid}.color-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.color-choice{width:var(--tap);height:var(--tap);border:var(--stroke) solid var(--course-outline);background:var(--course-color,var(--surface));color:var(--ink-fixed);cursor:pointer;transition:transform var(--dur-fast);border-radius:50%;place-items:center;display:grid}.color-choice:hover{transform:translate(-1px,-1px)}.color-choice.selected{box-shadow:var(--offset-sm) 0 var(--shadow);border-width:4px}.course-mark{box-sizing:border-box;background:var(--course-color,var(--muted));border:2px solid var(--course-outline);flex:none;display:inline-block}.course-mark-dot{vertical-align:-1px;border-radius:50%;width:12px;height:12px;margin-right:6px}.course-mark-stripe{border-width:0 2px 0 0;width:6px;position:absolute;top:0;bottom:0;left:0}.switch{align-items:center;gap:var(--space-3);min-height:var(--tap);font-weight:600;font-size:var(--text-base);cursor:pointer;display:inline-flex}.switch input{appearance:none;border-radius:var(--radius-pill);border:var(--stroke) solid var(--line);background:var(--surface);width:50px;height:30px;transition:background-color var(--dur) ease;position:relative}.switch input:after{content:"";background:var(--ink);width:19px;height:19px;transition:transform var(--dur-fast) ease;border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--kelp)}.switch input:checked:after{background:var(--ink-fixed);transform:translate(20px)}.switch input:disabled{opacity:.5}.segmented,.tabs{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:var(--surface);border:var(--stroke) solid var(--line);flex-wrap:wrap;display:inline-flex}.segmented>button,.tabs>:is(button,a){min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);align-items:center;gap:var(--space-2);transition:background-color var(--dur-fast),color var(--dur-fast);text-decoration:none;display:inline-flex}.segmented>:is(.selected,[aria-pressed=true]),.tabs>:is([aria-selected=true],[aria-current=page],.active){background:var(--btn-bg);color:var(--btn-fg)}.choice-group{gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}.choice-group legend{font-weight:700;font-size:var(--text-sm);margin-bottom:var(--space-2)}.card{background:var(--surface);color:var(--ink);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--offset-md) 0 var(--shadow);padding:clamp(var(--space-5),3vw,var(--space-8))}.card.raised{box-shadow:var(--offset-lg) 0 var(--shadow)}.card .card{box-shadow:none}.section-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.section-heading>div{gap:var(--space-1);min-width:0;display:grid}.section-heading h2{font-size:var(--text-xl)}.section-heading p{color:var(--muted);font-size:var(--text-sm)}.eyebrow{align-items:center;gap:var(--space-2);color:var(--ink);font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:800;display:inline-flex}.muted{color:var(--muted)}.inline-empty{padding:var(--space-5);border:var(--stroke) dashed var(--dash);border-radius:var(--radius-md);color:var(--body);text-align:center;font-size:var(--text-sm);margin:0;font-weight:600}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-header>div{gap:var(--space-2);max-width:720px;display:grid}.page-header h1{font-size:var(--text-2xl)}.page-header p{color:var(--body);font-size:var(--text-base)}.notice{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border:var(--stroke) solid var(--line);background:var(--surface);color:var(--ink);align-items:flex-start;font-weight:500;display:flex}.notice.info{background:var(--info-tint)}.notice.success{background:var(--success-tint)}.notice.warning{background:var(--warning-tint)}.notice.danger{background:var(--danger-tint)}.pill,.status-pill{border-radius:var(--radius-pill);border:var(--stroke) solid var(--line);background:var(--pill-bg,var(--surface));min-height:30px;color:var(--pill-fg,var(--ink));font-size:var(--text-sm);white-space:nowrap;text-transform:none;align-items:center;gap:6px;padding:2px 12px;font-weight:700;line-height:1.2;display:inline-flex}.pill svg,.status-pill svg{stroke-width:2.4px}.pill.neutral,.pill:is(.ocean,.sky,.teal,.violet,.amber,.rose){--pill-bg:var(--surface);--pill-fg:var(--ink)}.pill.priority-urgent{--pill-bg:var(--coral);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.pill.priority-high{--pill-bg:var(--sun);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.pill.priority-medium{--pill-bg:var(--lagoon);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.pill.priority-low{--pill-bg:var(--surface);--pill-fg:var(--ink)}.status-pill.ready{--pill-bg:var(--kelp);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.status-pill.processing{--pill-bg:var(--lagoon);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.status-pill.failed{--pill-bg:var(--coral);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.status-pill.open{--pill-bg:var(--sun);--pill-fg:var(--ink-fixed);border-color:var(--ink-fixed)}.demo-ai-notice,.review-warning{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);border:var(--stroke) solid var(--line);background:var(--info-tint);color:var(--ink);font-size:var(--text-sm);font-weight:500;line-height:var(--leading-snug)}.review-warning{background:var(--warning-tint)}.progress-bar{border-radius:var(--radius-pill);background:var(--surface);border:2px solid var(--line);height:14px;position:relative;overflow:hidden}.progress-bar>span{background:var(--progress-color,var(--ink));height:100%;transition:width .7s var(--ease-overshoot);display:block}.progress-ring{place-items:center;display:inline-grid;position:relative}.progress-ring svg{transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:7px}.progress-ring .track{stroke:var(--surface-sunken)}.progress-ring .value{stroke:var(--progress-color,var(--ink));stroke-linecap:round;transition:stroke-dashoffset .7s var(--ease-overshoot)}.progress-ring>span{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:800;position:absolute}.avatar{background:var(--sun);width:40px;height:40px;color:var(--ink-fixed);border:var(--stroke) solid var(--ink-fixed);font-family:var(--font-display);font-size:var(--text-md);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.empty-state{justify-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);text-align:center;display:grid}.empty-state .finn-wrap{margin-bottom:var(--space-2)}.empty-state h2,.empty-state h3{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em;font-weight:800}.empty-state p{color:var(--body);max-width:46ch}.empty-state .button{margin-top:var(--space-2)}.skeleton{border-radius:var(--radius-sm);background:var(--surface-sunken);border:2px solid var(--deco)}.skeleton-title{width:min(60%,420px);height:44px}.skeleton-card{border-radius:var(--radius-lg);height:180px}.skeleton-line{border-radius:var(--radius-pill);height:14px}.loading{padding:var(--space-2) 0}.loading,.loading-row{gap:var(--space-5);display:grid}.loading-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}dialog.modal{width:min(560px,calc(100vw - 2 * var(--space-4)));border:var(--stroke) solid var(--line);border-radius:var(--radius-xl);background:var(--surface);max-height:min(88vh,900px);color:var(--ink);box-shadow:var(--offset-lg) 0 var(--shadow);padding:0;overflow:auto}dialog.modal[open]{animation:reef-pop .45s var(--ease-pop) both}dialog.modal::backdrop{background:var(--scrim)}.modal-inner{padding:clamp(var(--space-5),4vw,var(--space-8));gap:var(--space-5);display:grid}@media (max-width:767px){dialog.modal{max-height:calc(100dvh - 2 * var(--space-3) - env(safe-area-inset-bottom))}.modal-inner{padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom))}}.modal-inner>.section-heading{align-items:center;margin-bottom:0}.modal-inner>.section-heading h2{font-size:var(--text-xl)}.toast{left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom));z-index:var(--z-toast);max-width:min(440px,calc(100vw - 2 * var(--space-4)));padding:var(--space-3) var(--space-5);border:var(--stroke) solid var(--btn-line);border-radius:var(--radius-pill);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);box-shadow:var(--offset-md) 0 var(--coral);animation:sf-toast-in var(--dur-slow) var(--ease-pop);position:fixed;transform:translate(-50%)}.tooltip-anchor{display:inline-flex;position:relative}.tooltip-anchor [role=tooltip]{z-index:var(--z-toast);width:max-content;max-width:240px;padding:var(--space-2) var(--space-3);border:2px solid var(--btn-line);border-radius:var(--radius-xs);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-xs);opacity:0;pointer-events:none;transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out);font-weight:600;line-height:1.4;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.tooltip-anchor:is(:hover,:focus-within,.is-hover) [role=tooltip]{opacity:1;transform:translate(-50%)}.rise-in{animation:sf-rise var(--dur-slow) var(--ease-out) both}@keyframes sf-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sf-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sf-toast-in{0%{opacity:0;transform:translate(-50%,12px)scale(.9)}to{opacity:1;transform:translate(-50%)}}@keyframes reef-enter{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:none}}.reef-enter{animation:reef-enter var(--dur-enter) var(--ease-enter) both}.reef-enter.d1{animation-delay:70ms}.reef-enter.d2{animation-delay:.14s}.reef-enter.d3{animation-delay:.21s}.reef-enter.d4{animation-delay:.28s}.reef-enter.d5{animation-delay:.35s}.reef-enter.d6{animation-delay:.42s}.reef-enter.d7{animation-delay:.49s}.reef-enter.d8{animation-delay:.56s}.reef-bg{z-index:var(--z-bg);pointer-events:none;position:fixed;inset:0;overflow:hidden}.reef-bg[data-paused] *{animation-play-state:paused}@keyframes reef-rise-a{0%{opacity:0;transform:translate(0)}8%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(22px,-120vh)}}@keyframes reef-rise-b{0%{opacity:0;transform:translate(0)}8%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(-26px,-120vh)}}.reef-bub{border:var(--stroke) solid var(--deco);border-radius:50%;animation:reef-rise-a 22s linear infinite;position:absolute;bottom:-60px}.reef-bub-b{animation-name:reef-rise-b}.reef-bub-t1{animation-duration:19s;animation-delay:-2s}.reef-bub-t2{animation-duration:26s;animation-delay:-9s}.reef-bub-t3{animation-duration:21s;animation-delay:-15s}.reef-bub-t4{animation-duration:30s;animation-delay:-5s}.reef-bub-t5{animation-duration:17s;animation-delay:-11s}.reef-bub-t6{animation-duration:24s;animation-delay:-19s}.reef-bub-t7{animation-duration:28s;animation-delay:-1s}.reef-bub-t8{animation-duration:20s;animation-delay:-7s}@keyframes reef-drift-1{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-18px,14px)rotate(10deg)}}@keyframes reef-drift-2{0%,to{transform:translate(0)}50%{transform:translate(16px,-12px)}}.reef-blob{opacity:var(--blob);position:absolute}.reef-blob-sun{background:var(--sun);border-radius:50%;width:190px;height:190px;animation:reef-drift-1 16s ease-in-out infinite;top:-50px;right:-60px}.reef-blob-ring{border:22px solid var(--lagoon);border-radius:50%;width:160px;height:160px;animation:reef-drift-2 13s ease-in-out infinite;top:48vh;left:-74px}.reef-blob-squiggle{animation:reef-drift-1 19s ease-in-out infinite reverse;top:78vh;right:-16px}@media (min-width:768px){.reef-blob-sun{width:360px;height:360px;top:-110px;right:-90px}.reef-blob-ring{border-width:34px;width:260px;height:260px;top:46vh;left:-120px}.reef-blob-squiggle{width:150px;height:70px;top:72vh;right:4vw}}@keyframes reef-swim{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-6px)rotate(2deg)}}@keyframes reef-wag{0%,to{transform:rotate(-10deg)}50%{transform:rotate(12deg)}}@keyframes reef-flap{0%,to{transform:rotate(-6deg)}50%{transform:rotate(16deg)}}@keyframes reef-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes reef-jump{0%{transform:none}30%{transform:translateY(-20px)rotate(-10deg)}58%{transform:translateY(0)scale(1.1,.88)}78%{transform:scale(.96,1.05)}to{transform:none}}@keyframes reef-hello{0%{transform:none}30%{transform:translateY(-18px)rotate(-8deg)}58%{transform:translateY(0)scale(1.08,.9)}78%{transform:scale(.97,1.04)}to{transform:none}}.finn{height:auto;overflow:visible}.finn .f-swim{transform-box:fill-box;transform-origin:50% 60%;animation:reef-swim 3.2s ease-in-out infinite}.finn .f-hello{animation:reef-hello .75s var(--ease-jump) .9s both}.finn .f-hello,.finn .f-jump{transform-box:fill-box;transform-origin:50% 100%}.finn .f-tail{transform-box:fill-box;transform-origin:100%;animation:reef-wag 1s ease-in-out infinite}.finn .f-pec{transform-box:fill-box;transform-origin:0 0;animation:reef-flap 1.5s ease-in-out infinite}.finn .f-eye{transform-box:fill-box;transform-origin:50%;animation:reef-blink 4.6s ease-in-out infinite}.finn .f-pupil{transition:transform .35s}.finn .f-eye-open,.finn .f-happy{transition:opacity .15s}.finn .f-happy{opacity:0}.finn.finn-cheer .f-happy{opacity:1}.finn.finn-cheer .f-eye-open{opacity:0}.finn.finn-cheer .f-jump{animation:reef-jump .7s var(--ease-jump)}.finn.finn-cheer .f-tail{animation-duration:.32s}.finn.finn-think .f-pupil{transform:translate(-2px,-3px)}.finn.finn-think .f-swim{animation-duration:5.5s}.finn.finn-still,.finn.finn-still *{animation:none!important}.finn-wrap{flex:none;line-height:0;display:inline-block;position:relative}.reef-spark{border:2px solid var(--ink-fixed);pointer-events:none;opacity:0;width:10px;height:10px;animation:none;position:absolute}@keyframes reef-sp1{0%{opacity:0;transform:scale(.2)rotate(0)}30%{opacity:1;transform:translate(6px,-8px)scale(1.2)rotate(45deg)}to{opacity:0;transform:translate(12px,-22px)scale(.8)rotate(90deg)}}@keyframes reef-sp2{0%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:translate(10px)scale(1.2)}to{opacity:0;transform:translate(22px,-6px)scale(.8)}}@keyframes reef-sp3{0%{opacity:0;transform:scale(.2)rotate(0)}30%{opacity:1;transform:translate(-8px,-6px)scale(1.2)rotate(-45deg)}to{opacity:0;transform:translate(-18px,-18px)scale(.8)rotate(-90deg)}}@keyframes reef-sp4{0%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:translateY(-10px)scale(1.2)}to{opacity:0;transform:translate(2px,-26px)scale(.8)}}.reef-spark.s1{background:var(--sun);border-radius:2px;animation-name:reef-sp1;top:2%;left:75%}.reef-spark.s2{background:var(--lagoon);border-radius:50%;animation-name:reef-sp2;animation-delay:60ms;top:30%;left:90%}.reef-spark.s3{background:var(--coral);border-radius:2px;animation-name:reef-sp3;animation-delay:.1s;top:8%;left:14%}.reef-spark.s4{background:var(--white);border-radius:50%;animation-name:reef-sp4;animation-delay:40ms;top:-6%;left:52%}@keyframes reef-say{0%{opacity:0;transform:translateY(6px)scale(.9)}60%{opacity:1;transform:scale(1.03)}to{opacity:1;transform:none}}.finn-say{background:var(--surface);min-width:0;color:var(--ink);border:var(--stroke) solid var(--line);box-shadow:3px 4px 0 var(--say-shadow);transform-origin:0 100%;border-radius:18px 18px 18px 4px;flex:1;padding:12px 14px;position:relative}.finn-say.say-a,.finn-say.say-b{animation:reef-say .45s var(--ease-pop) both}.finn-say p{font-weight:600;font-size:var(--text-base);margin:0;line-height:1.38}.finn-say-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.press{transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.press:hover:not(:disabled,[aria-disabled=true]){transform:translate(-1px,-1px)}.press:active:not(:disabled,[aria-disabled=true]){transform:translate(2px,3px);box-shadow:none!important}.reef-collapse{grid-template-rows:1fr;transition:grid-template-rows .34s .14s,margin-top .34s .14s;display:grid}.reef-collapse>.inner{min-height:0}.reef-collapse.leave{grid-template-rows:0fr;margin-top:0!important}.reef-collapse.leave>.inner{overflow:hidden}@keyframes reef-out-done{0%{opacity:1;transform:none}30%{opacity:1;transform:scale(.94)}to{opacity:0;transform:translateY(-24px)scale(.88)}}@keyframes reef-out-skip{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-110%)rotate(-8deg)}}@keyframes reef-out-move{0%{opacity:1;transform:none}to{opacity:0;transform:translate(110%)rotate(8deg)}}.leave-done>.inner>.reef-card,.leave-done>.reef-card{animation:reef-out-done .42s var(--ease-leave) both}.leave-skip>.inner>.reef-card,.leave-skip>.reef-card{animation:reef-out-skip .42s var(--ease-leave) both}.leave-move>.inner>.reef-card,.leave-move>.reef-card{animation:reef-out-move .42s var(--ease-leave) both}.reef-tile-wrap{flex:1 1 0;min-width:0;transition:flex-grow .36s .12s;position:relative}.reef-tile-wrap.leave{flex-grow:.0001}.reef-tile-wrap.leave .reef-card{overflow:hidden}.reef-burst{pointer-events:none;z-index:5;width:0;height:0;position:absolute;top:50%;left:50%}.reef-burst span{border:2px solid var(--ink-fixed);width:12px;height:12px;animation:none;position:absolute;top:-6px;left:-6px}@keyframes reef-q1{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translateY(-80px)rotate(120deg)}}@keyframes reef-q2{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(58px,-58px)rotate(-90deg)}}@keyframes reef-q3{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(84px)rotate(160deg)}}@keyframes reef-q4{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(58px,56px)rotate(-120deg)}}@keyframes reef-q5{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translateY(80px)rotate(90deg)}}@keyframes reef-q6{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(-58px,56px)rotate(140deg)}}@keyframes reef-q7{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(-84px)rotate(-150deg)}}@keyframes reef-q8{0%{opacity:1;transform:scale(.3)}70%{opacity:1}to{opacity:0;transform:translate(-58px,-58px)rotate(100deg)}}.reef-burst .q1{background:var(--sun);border-radius:50%;animation-name:reef-q1}.reef-burst .q2{background:var(--kelp);border-radius:3px;animation-name:reef-q2}.reef-burst .q3{background:var(--lagoon);border-radius:50%;animation-name:reef-q3}.reef-burst .q4{background:var(--white);border-radius:3px;animation-name:reef-q4}.reef-burst .q5{background:var(--sun);border-radius:3px;animation-name:reef-q5}.reef-burst .q6{background:var(--kelp);border-radius:50%;animation-name:reef-q6}.reef-burst .q7{background:var(--lagoon);border-radius:3px;animation-name:reef-q7}.reef-burst .q8{background:var(--white);border-radius:50%;animation-name:reef-q8}@keyframes reef-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:none}}.reef-pop{animation:reef-pop .45s var(--ease-pop) both}.reef-pop.late{animation-delay:.3s}@keyframes reef-draw{0%{stroke-dashoffset:18px}to{stroke-dashoffset:0}}.reef-chk{stroke-dasharray:18;animation:reef-draw .35s ease-out .55s both}.reef-fill{transition:width .7s var(--ease-overshoot)}@keyframes reef-typing-life{0%,85%{opacity:1}to{opacity:0}}@keyframes reef-dot{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.reef-typing{animation:reef-typing-life .75s linear both;position:absolute;top:0;left:0}.reef-typing i{background:var(--ink);border-radius:50%;width:7px;height:7px;margin:0 2px;animation:reef-dot .6s ease-in-out infinite;display:inline-block}.reef-typing i:nth-child(2){animation-delay:.1s}.reef-typing i:nth-child(3){animation-delay:.2s}.brand{align-items:center;gap:var(--space-2);min-height:var(--tap);color:var(--ink);text-decoration:none;display:inline-flex}.brand-word{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.5rem;font-weight:900;line-height:1}.finn-mark{flex:none}.app-content,.app-layout{min-height:100dvh;position:relative}.app-content{z-index:1;flex-direction:column;margin-left:248px;display:flex}.main-content{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));padding:var(--space-6) var(--gutter) var(--space-16);flex:1;margin:0 auto}.sidebar{z-index:var(--z-drawer);gap:var(--space-2);width:248px;padding:var(--space-5) var(--space-4) var(--space-4);background:var(--nav);border-right:var(--stroke) solid var(--line);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-brand{padding:0 var(--space-2) var(--space-4);justify-content:space-between;align-items:center;display:flex}.nav-group{gap:4px;display:grid}.nav-label{margin:var(--space-5) var(--space-3) var(--space-2);color:var(--muted);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:800;display:block}.nav-item,.nav-label{font-family:var(--font-display)}.nav-item{align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-3);border:var(--stroke) solid transparent;border-radius:var(--radius-md);color:var(--ink);transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-fast) ease;font-size:15px;font-weight:700;text-decoration:none;display:flex;position:relative}.nav-item svg{stroke-width:2.25px}.nav-item:is(:hover,.is-hover){text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2.5px}.nav-item.active{background:var(--coral);border-color:var(--active-line);color:var(--ink-fixed);font-weight:800;text-decoration:none}.sidebar-bottom{gap:var(--space-1);padding-top:var(--space-4);border-top:var(--stroke) solid var(--line);margin-top:auto;display:grid}.sidebar-bottom .theme-toggle{min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-md);box-shadow:none;color:var(--ink);font-family:var(--font-display);background:0 0;border-color:#0000;justify-content:flex-start;font-size:15px;font-weight:700}.sidebar-bottom .theme-toggle:is(:hover,.is-hover){text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2.5px;transform:none}.sidebar-bottom .theme-toggle:active{transform:none}.profile{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--ink);text-decoration:none;display:flex}.profile:is(:hover,.is-hover) .profile-text strong{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.profile-text{flex:1;min-width:0;display:grid}.profile strong{color:var(--ink);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.profile small{color:var(--muted);font-size:var(--text-xs);font-weight:600}.topbar{z-index:var(--z-sticky);justify-content:flex-end;align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-2) var(--gutter);background:var(--bg);display:flex;position:sticky;top:0}.topbar-brand{margin-right:auto}.topbar-right{display:flex}.local-badge,.topbar-right{align-items:center;gap:var(--space-2)}.local-badge{min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:var(--stroke) solid var(--line);background:var(--surface);color:var(--ink);font-size:var(--text-xs);font-weight:700;display:inline-flex}.local-badge i{border:2px solid var(--ink-fixed);background:var(--kelp);border-radius:50%;width:10px;height:10px}.local-badge[data-state=demo] i{background:var(--lagoon)}.local-badge[data-state=unsaved]{background:var(--coral);color:var(--ink-fixed);border-color:var(--ink-fixed)}.local-badge[data-state=unsaved] i{background:var(--white)}.app-footer{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);z-index:1;width:100%;padding:var(--space-5) max(var(--gutter),calc((100% - var(--content-max)) / 2)) var(--space-8);border-top:var(--stroke) solid var(--line);background:var(--bg);color:var(--body);font-size:var(--text-sm);margin:0 auto;font-weight:600;position:relative}.app-footer,.legal-links{flex-wrap:wrap;display:flex}.legal-links{gap:0 var(--space-4)}.legal-links a{min-height:var(--tap);color:var(--ink);font-size:var(--text-sm);text-underline-offset:3px;align-items:center;font-weight:600;text-decoration:underline;text-decoration-thickness:2px;display:inline-flex}.bottom-nav,.menu-backdrop,.mobile-only{display:none}@media (max-width:1023px) and (min-width:768px){.sidebar{width:212px}.app-content{margin-left:212px}}@media (max-width:767px){.mobile-only{display:inline-flex}.app-content{margin-left:0}.main-content{padding:var(--space-4) var(--space-4) calc(104px + env(safe-area-inset-bottom))}.topbar{min-height:60px;padding:var(--space-2) var(--space-4);justify-content:space-between}.topbar .local-badge{display:none}.topbar .local-badge[data-state=unsaved]{display:inline-flex}.sidebar{visibility:hidden;width:min(86vw,320px);transition:transform var(--dur) var(--ease-out),visibility 0s linear var(--dur);box-shadow:var(--offset-lg) 0 var(--shadow);background:var(--nav);transform:translate(-105%)}.sidebar.is-open{visibility:visible;transition:transform var(--dur) var(--ease-out);transform:none}.menu-backdrop{z-index:var(--z-backdrop);background:var(--scrim);animation:sf-fade-in var(--dur) var(--ease-out);display:block;position:fixed;inset:0}.bottom-nav{z-index:var(--z-nav);padding:8px 12px calc(12px + env(safe-area-inset-bottom));background:var(--nav);border-top:var(--stroke) solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid;position:fixed;inset:auto 0 0}.bottom-nav .nav-item{border-radius:var(--radius-md);min-height:56px;font-size:var(--text-xs);text-align:center;flex-direction:column;justify-content:center;gap:2px;padding:0 2px;font-weight:700}.bottom-nav .nav-item:is(:hover,.is-hover){text-decoration:none}.bottom-nav .nav-item.active{background:var(--coral);border-color:var(--active-line);color:var(--ink-fixed)}.app-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.toast{top:calc(8px + env(safe-area-inset-top));bottom:auto}body:has(dialog.modal[open]) .bottom-nav{visibility:hidden}}.today{position:relative}.tonight{gap:var(--space-5);max-width:1100px;display:grid}.tonight-head{align-items:flex-start;gap:var(--space-1);display:flex}.tonight-head .finn-say{margin-top:6px}.tonight-title{gap:var(--space-1);display:grid}.tonight-date{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;font-weight:600}.tonight-title h1{font-size:var(--text-4xl);letter-spacing:var(--tracking-title);margin-top:2px;font-weight:900;line-height:.92}.tonight-pills{gap:var(--space-2);flex-wrap:wrap;margin-top:14px;display:flex}.tonight-countdown,.tonight-progress{align-items:center;gap:var(--space-2);border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);min-height:40px;font-weight:700;font-size:var(--text-sm);padding:6px 12px;display:inline-flex}.tonight-progress{background:var(--sun);color:var(--ink-fixed);border-color:var(--ink-fixed)}.tonight-countdown{background:var(--surface);color:var(--ink)}.tonight-bar{border:2px solid var(--ink-fixed);background:var(--white);border-radius:6px;width:54px;height:10px;display:flex;overflow:hidden}.tonight-bar>span{background:var(--ink-fixed);height:100%;display:block}.tonight-tools{margin-top:var(--space-3);gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.tonight-title .field-error{margin-top:var(--space-2)}.plan-notes{gap:var(--space-2);display:grid}.tonight-loading{gap:14px;display:grid}.tonight-skeleton-main{border-radius:var(--radius-xl);height:268px}.tonight-skeleton-row{gap:12px;display:flex}.tonight-skeleton-tile{border-radius:var(--radius-lg);flex:1;height:176px}.tonight-empty{display:flex}.tonight-body{gap:var(--space-5);display:grid}.tonight-side,.tonight-work{gap:var(--space-4);min-width:0;display:grid}.tonight-side{align-content:start}.tonight-list{flex-wrap:wrap;gap:12px;list-style:none;display:flex}.tonight-main-wrap{flex:100%;margin:8px 0 0;position:relative}.tonight-tile-wrap{flex:calc(50% - 6px);min-width:min(100%,220px);position:relative}.tonight-main{background:var(--coral);color:var(--ink-fixed);border:var(--stroke) solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--offset-lg) 0 var(--shadow);margin:14px 4px 6px 0;padding:20px 18px 18px;position:relative}.tonight-label{background:var(--chip);color:var(--ink-fixed);border:var(--stroke) solid var(--ink-fixed);border-radius:var(--radius-xs);font-family:var(--font-display);font-weight:800;font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 36px);padding:5px 12px;position:absolute;top:-14px;left:18px;overflow:hidden;transform:rotate(-4deg)}.tonight-main-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-display);color:var(--ink-fixed);margin:8px 0 0;font-weight:900;line-height:.98}.tonight-reason{font-size:var(--text-base);max-width:60ch;margin:10px 0 0;font-weight:500;line-height:1.45}.tonight-meta{font-size:var(--text-sm);opacity:.9;margin:8px 0 0;font-weight:600}.tonight-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.tonight-actions .button.primary{min-height:50px}.tonight-actions .button.secondary{min-height:50px;padding:0 14px}.tonight-partial,.tonight-tile{color:var(--ink-fixed)}.tonight-tile{height:100%;min-height:176px;border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--offset-md) 0 var(--shadow);flex-direction:column;gap:8px;padding:16px 14px 14px;display:flex}.tonight-tile.tone-coral{background:var(--coral)}.tonight-tile.tone-lagoon{background:var(--lagoon)}.tonight-tile.tone-sun{background:var(--sun)}.tonight-tile-label{font-weight:700;font-size:var(--text-xs);margin:0}.tonight-tile h3{font-size:var(--text-lg);letter-spacing:-.02em;color:var(--ink-fixed);margin:0;font-weight:800;line-height:1.05}.tonight-tile-activity{font-size:var(--text-sm);margin:0;font-weight:500}.tonight-tile-foot{align-items:center;gap:8px;margin-top:auto;display:flex}.tonight-tile-min{font-family:var(--font-display);flex:1;font-size:17px;font-weight:800}.tonight-circle{border:var(--stroke) solid var(--ink-fixed);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.tonight-circle.is-start{background:var(--ink-fixed);color:#fff}.tonight-circle.is-done{color:var(--ink-fixed);box-shadow:2px 3px 0 var(--ink-fixed);background:#fff}.tonight-circle.is-more{color:var(--ink-fixed);background:0 0}.tonight-circle:disabled{opacity:.5}.tonight-tile-more{flex-wrap:wrap;gap:6px;display:flex}.tonight-tile-more .button{min-height:40px;padding:0 12px;font-size:14px}.tonight-alldone{background:var(--sun);color:var(--ink-fixed);border:var(--stroke) solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--offset-lg) 0 var(--shadow);padding:22px 20px}.tonight-alldone h2{font-size:var(--text-2xl);letter-spacing:var(--tracking-display);color:var(--ink-fixed);font-weight:900;line-height:1}.tonight-alldone p{font-size:var(--text-base);margin-top:10px;font-weight:500;line-height:1.45}.tonight-log{border:var(--stroke) dashed var(--dash);border-radius:var(--radius-md);padding:12px 14px}.tonight-log h2{margin:0 0 8px;font-size:15px;font-weight:800}.tonight-log ul{gap:8px;list-style:none;display:grid}.tonight-log-row{align-items:center;gap:10px;font-size:15px;display:flex}.tonight-log-mark{border:var(--stroke) solid var(--ink-fixed);width:28px;height:28px;color:var(--ink-fixed);border-radius:50%;flex:none;place-items:center;display:grid}.is-done .tonight-log-mark{background:var(--kelp)}.is-skip .tonight-log-mark{background:var(--white)}.is-move .tonight-log-mark{background:var(--lagoon)}.tonight-log-text{flex:1;min-width:0}.tonight-log-min{flex:none;font-weight:700}.tonight-ready{background:var(--surface);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);padding:14px 16px}.tonight-ready-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.tonight-ready h2{font-size:var(--text-md);font-weight:800}.tonight-ready .muted{font-weight:700;font-size:var(--text-sm)}.tonight-segments{gap:6px;margin-top:10px;display:flex}.tonight-segments span{background:var(--seg-empty);border:2px solid var(--seg-line);border-radius:7px;flex:1;height:14px}.tonight-segments span.is-solid{background:var(--kelp);border-color:var(--seg-fill-line)}.tonight-ready-note{font-size:var(--text-sm);color:var(--body);margin-top:10px;font-weight:500}.tonight-coming{background:var(--surface);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);gap:var(--space-2);padding:14px 16px;display:grid}.tonight-coming h2{font-size:var(--text-md);font-weight:800}.tonight-coming ul{gap:var(--space-2);list-style:none;display:grid}.tonight-coming li{gap:1px;display:grid}.tonight-coming-title{font-weight:700}.on-tile .course-mark,.tonight-label .course-mark{border-color:var(--ink-fixed)}.tonight-coming-meta{color:var(--muted);font-size:var(--text-sm);font-weight:600}.block-dialog{gap:var(--space-5);display:grid}.focus-content{justify-items:center;gap:var(--space-3);text-align:center;display:grid}.focus-content h2{font-size:var(--text-xl)}.focus-content p{color:var(--body);max-width:44ch}.focus-content blockquote{margin:var(--space-2) 0 0;padding:var(--space-4) var(--space-5);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);font-size:var(--text-base);line-height:var(--leading-normal);text-align:left;color:var(--ink)}.focus-content blockquote strong{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;margin-bottom:4px;display:block}.overview-card{align-items:center;gap:var(--space-3);padding:var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);display:flex;position:relative}.overview-card>div{flex:1;gap:2px;min-width:0;display:grid}.overview-card small{color:var(--muted);font-size:var(--text-xs);font-weight:700}.overview-card strong{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1}.overview-card strong span{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--muted);font-weight:600}.metric-icon{display:none}.task-row{align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4) 0;border-top:var(--stroke) solid var(--line);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.task-row:first-of-type{border-top:0}.task-check{width:var(--tap);height:var(--tap);border:var(--stroke) solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);transition:transform var(--dur-fast);border-radius:50%;place-items:center;display:grid}.task-check:is(:hover,.is-hover){transform:translate(-1px,-1px)}.task-check.checked{background:var(--kelp);color:var(--ink-fixed);border-color:var(--ink-fixed)}.task-info{gap:2px;min-width:0;display:grid}.task-info h3{font-size:var(--text-base);font-weight:800}.task-info small{color:var(--muted);font-size:var(--text-sm);font-weight:600}.task-row.is-complete h3{color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px}.task-duration{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:600;display:inline-flex}.task-actions{align-items:center;gap:var(--space-1);display:flex}.task-actions .icon-button{box-shadow:none;background:0 0;border-color:#0000}.course-text{color:var(--ink);font-size:var(--text-xs);font-weight:700}@media (max-width:767px){.task-row{grid-template-columns:auto minmax(0,1fr)}.task-actions,.task-duration{grid-column:2}}.studypal{align-items:flex-start;gap:var(--space-1);max-width:820px;display:flex}.studypal .finn-say{margin-top:6px}@media (min-width:900px){.tonight-body{gap:var(--space-6);grid-template-columns:minmax(0,1fr) 340px;align-items:start}.tonight-head .finn-say p{font-size:var(--text-md)}.tonight-main{padding:26px 26px 22px}.tonight-main-title{font-size:var(--text-2xl)}.tonight-tile-wrap{flex-basis:calc(33.333% - 8px)}}@media (max-width:767px){.tonight{gap:var(--space-4)}.tonight-head{gap:4px}.tonight-title h1{font-size:var(--text-4xl)}.tonight-pills{margin-top:8px}.tonight-tools{margin-top:var(--space-2)}.tonight-main{padding-top:18px}}.landing{z-index:1;min-height:100dvh;position:relative}.landing-inner{max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,48px);position:relative}.landing-hero-wrap{position:relative;overflow:hidden}.landing-nav{justify-content:space-between;gap:var(--space-4);padding:18px 0}.landing-links,.landing-nav{align-items:center;flex-wrap:wrap;display:flex}.landing-links{font-size:var(--text-base);gap:10px 26px}.navlink{color:var(--ink);min-height:var(--tap);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.navlink:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2.5px}.landing-nav .theme-toggle{box-shadow:var(--offset-sm) 0 var(--shadow)}.hero{grid-template-columns:repeat(auto-fit,minmax(min(480px,100%),1fr));align-items:center;gap:40px;padding:28px 0 96px;display:grid}.hero-copy{justify-items:start;gap:0;display:grid}.hero-sticker{background:var(--sun);color:var(--ink-fixed);border:var(--stroke) solid var(--line);font-family:var(--font-display);border-radius:12px;padding:7px 14px;font-size:15px;font-weight:800;display:inline-block}.hero h1{letter-spacing:-.045em;text-wrap:balance;margin-top:14px;font-size:clamp(3.375rem,6.7vw,6rem);font-weight:900;line-height:.9}.hero-know{background:var(--coral);color:var(--ink-fixed);border:var(--stroke-wide) solid var(--line);border-radius:20px;padding:0 12px 4px;display:inline-block;transform:rotate(-2deg)}.hero-lede{max-width:40ch;color:var(--body);text-wrap:pretty;margin-top:20px;font-size:20px;font-weight:500;line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;display:flex}.end-cta,.hero-cta{display:inline-flex}.end-cta .button,.hero-actions .button.large{min-height:56px;padding:0 28px;font-size:19px}.hero-stage{min-height:520px;position:relative}.sticker{position:absolute}.sticker.float1{width:min(330px,78%);animation:reef-float 6s ease-in-out infinite;top:6%;left:4%}.sticker.float2{width:min(250px,60%);animation:reef-float 7s ease-in-out -2.5s infinite;top:30%;right:2%}.sticker.float3{width:min(270px,64%);animation:reef-float 5.5s ease-in-out -4s infinite;bottom:4%;left:14%}@keyframes reef-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.sticker-card{color:var(--ink-fixed);border:var(--stroke-wide) solid var(--line);box-shadow:5px 6px 0 var(--shadow);border-radius:24px;padding:18px}.float1 .sticker-card{box-shadow:6px 7px 0 var(--shadow);border-radius:26px;padding:20px 20px 18px;transform:rotate(-4deg)}.float2 .sticker-card{transform:rotate(5deg)}.float3 .sticker-card{transform:rotate(-2deg)}.tone-coral{background:var(--coral)}.tone-lagoon{background:var(--lagoon)}.tone-sun{background:var(--sun)}.tone-kelp{background:var(--kelp)}.sticker-label{background:var(--white);border:var(--stroke) solid var(--ink-fixed);letter-spacing:.05em;text-transform:uppercase;border-radius:9px;padding:4px 10px;font-size:12px;display:inline-block}.sticker-label,.sticker-title{font-family:var(--font-display);font-weight:800}.sticker-title{margin-top:8px;font-size:24px;line-height:1.05}.float1 .sticker-title{letter-spacing:-.03em;margin-top:12px;font-size:30px;font-weight:900;line-height:1}.sticker-small{font-size:13px;font-weight:700}.sticker-meta{margin-top:8px;font-size:15px;font-weight:600}.sticker-min{font-family:var(--font-display);margin-top:10px;font-size:18px;font-weight:800}.hero-finn,.hero-stage>.finn-wrap{position:absolute;bottom:2%;right:0}.landing:has(.hero-cta:focus-within) .hero-stage .f-jump,.landing:has(.hero-cta:hover) .hero-stage .f-jump{animation:reef-jump .7s var(--ease-jump)}.landing:has(.hero-cta:focus-within) .hero-stage .f-happy,.landing:has(.hero-cta:hover) .hero-stage .f-happy{opacity:1}.landing:has(.hero-cta:focus-within) .hero-stage .f-eye-open,.landing:has(.hero-cta:hover) .hero-stage .f-eye-open{opacity:0}.landing:has(.end-cta:focus-within) .closing .f-jump,.landing:has(.end-cta:hover) .closing .f-jump{animation:reef-jump .7s var(--ease-jump)}.landing:has(.end-cta:focus-within) .closing .f-happy,.landing:has(.end-cta:hover) .closing .f-happy{opacity:1}.landing:has(.end-cta:focus-within) .closing .f-eye-open,.landing:has(.end-cta:hover) .closing .f-eye-open{opacity:0}.ink-band{background:var(--band-bg);color:var(--band-fg);border-top:var(--stroke-wide) solid var(--band-bg);border-bottom:var(--stroke-wide) solid var(--band-bg)}.ink-band ul{max-width:1200px;font-family:var(--font-display);flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin:0 auto;padding:22px clamp(20px,5vw,48px);font-size:clamp(18px,2vw,24px);font-weight:800;list-style:none;display:flex}.ink-band .is-sun{color:var(--sun)}.ink-band .is-lagoon{color:var(--lagoon)}.landing-section{max-width:1200px;margin:0 auto;padding:96px clamp(20px,5vw,48px) 40px}.landing-section>h2{letter-spacing:-.04em;max-width:16ch;font-size:clamp(40px,5vw,68px);font-weight:900;line-height:.95}@keyframes reef-reveal{0%{opacity:0;transform:translateY(48px)scale(.97)}to{opacity:1;transform:none}}html.reveal-armed .reveal:not(.is-visible){opacity:0}html.reveal-armed .reveal.is-visible{animation:reef-reveal .6s var(--ease-enter) both}.steps{flex-direction:column;gap:28px;margin-top:48px;list-style:none;display:flex}.step{background:var(--surface);border:var(--stroke-wide) solid var(--line);border-radius:30px;flex-wrap:wrap;align-items:center;gap:24px 40px;padding:28px;display:flex}.step:nth-child(2){margin-left:clamp(0px,4vw,56px)}.step:nth-child(3){margin-left:clamp(0px,8vw,112px)}.step-number{width:88px;height:88px;color:var(--ink-fixed);border:var(--stroke-wide) solid var(--line);font-family:var(--font-display);border-radius:26px;flex:none;place-items:center;font-size:48px;font-weight:900;display:grid}.step-number.is-round{border-radius:50%}.step-number.is-speech{border-radius:26px 26px 26px 6px}.step-text{flex:320px;min-width:0}.step-text h3{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1.05}.step-text p{max-width:52ch;color:var(--body);margin-top:8px;font-size:18px;font-weight:500;line-height:1.55}.step-demo{background:var(--soft);border:var(--stroke) solid var(--line);border-radius:18px;flex:0 300px;min-width:0;padding:14px 16px}.demo-label{color:var(--muted);font-size:13px;font-weight:700}.demo-title{font-family:var(--font-display);margin-top:4px;font-size:19px;font-weight:800}.date-demo .date-confirm{margin-top:10px}.demo-note{color:var(--muted);font-size:14px;font-weight:500}.confirm-date{--btn-surface:var(--kelp);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed)}.swap-demo{background:0 0;border:0;flex-basis:280px;padding:0}.swap-row{align-items:center;gap:10px;height:64px;display:flex}.swap-l,.swap-r{width:100px;color:var(--ink-fixed);border:var(--stroke) solid var(--line);border-radius:14px;padding:10px 0;font-weight:800}.swap-l,.swap-r,.swap-vs{text-align:center;font-family:var(--font-display);flex:none;font-size:18px}.swap-vs{width:36px;font-weight:900}@keyframes reef-swap-l{0%,30%{transform:translate(0)}38%{transform:translate(78px,-26px)rotate(6deg)}46%,76%{transform:translate(156px)}84%{transform:translate(78px,26px)rotate(-6deg)}92%,to{transform:translate(0)}}@keyframes reef-swap-r{0%,30%{transform:translate(0)}38%{transform:translate(-78px,26px)rotate(-6deg)}46%,76%{transform:translate(-156px)}84%{transform:translate(-78px,-26px)rotate(6deg)}92%,to{transform:translate(0)}}.swap-l{animation:reef-swap-l 6s cubic-bezier(.5,0,.3,1) infinite}.swap-r{animation:reef-swap-r 6s cubic-bezier(.5,0,.3,1) infinite}.swap-note{color:var(--muted);margin-top:6px;font-size:14px;font-weight:700}.finn-line-demo{background:var(--band-bg);color:var(--band-fg);border-radius:18px 18px 18px 4px}.finn-line-demo p{font-size:16px;font-weight:600;line-height:1.45}.finn-line-demo span{color:var(--sun);margin-top:8px;font-size:13px;font-weight:700;display:block}.meet-finn-wrap{padding:56px clamp(20px,5vw,48px)}.meet-finn{background:var(--lagoon);max-width:1200px;color:var(--ink-fixed);border:var(--stroke-wide) solid var(--line);box-shadow:8px 9px 0 var(--shadow);border-radius:40px;margin:0 auto;padding:clamp(28px,5vw,64px);position:relative;overflow:hidden}.meet-finn-bubbles{pointer-events:none;position:absolute;inset:0}.meet-finn-bubbles .reef-bub{border-color:#17161c38}.meet-finn-grid{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));align-items:center;gap:40px;display:grid;position:relative}.meet-finn h2{letter-spacing:-.04em;color:var(--ink-fixed);margin-top:16px;font-size:clamp(40px,5vw,64px);font-weight:900;line-height:.95}.meet-finn-grid>div>p{max-width:44ch;margin-top:18px;font-size:19px;font-weight:500;line-height:1.55}.chat-demo{background:var(--surface);color:var(--ink);border:var(--stroke-wide) solid var(--ink-fixed);border-radius:28px;flex-direction:column;gap:14px;padding:22px;display:flex}.chat-demo-you{background:var(--sun);max-width:80%;color:var(--ink-fixed);border:var(--stroke) solid var(--ink-fixed);transform-origin:100% 100%;border-radius:18px 18px 4px;align-self:flex-end;padding:12px 16px;font-size:16px;font-weight:600;line-height:1.45}.chat-demo-finn{background:var(--soft);border:var(--stroke) solid var(--line);transform-origin:0 100%;border-radius:18px 18px 18px 4px;max-width:92%;padding:14px 16px}.chat-demo-finn p{font-size:16px;font-weight:600;line-height:1.45}.chat-demo-finn .finn-say-actions{margin-top:12px}.chat-confirm{--btn-surface:var(--coral);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed);--btn-drop:var(--shadow);font-family:var(--font-display)}.chat-demo-reply{min-height:52px;position:relative}.chat-demo-reply .reef-typing{align-items:center;gap:2px;min-height:52px;display:flex;position:static}.chat-demo-reply .reef-pop{position:relative}.chat-demo .button.text{margin-top:6px;padding:0}.landing-section#promises{padding-top:80px;padding-bottom:80px}.promise-list{flex-wrap:wrap;gap:16px;margin-top:40px;list-style:none;display:flex}.promise-list .tilt-a{transform:rotate(-1.5deg)}.promise-list .tilt-b{transform:rotate(1deg)}.promise-list .tilt-c{transform:rotate(-1deg)}.promise-list .tilt-d{transform:rotate(1.5deg)}.promise{background:var(--surface);color:var(--ink);border:var(--stroke-wide) solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-display);padding:18px 24px;font-size:clamp(18px,2vw,24px);font-weight:800;display:inline-block}.promise.tone-sun{background:var(--sun);color:var(--ink-fixed)}.promise.tone-kelp{background:var(--kelp);color:var(--ink-fixed)}.promise.tone-coral{background:var(--coral);color:var(--ink-fixed)}@keyframes reef-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.promise:hover{animation:reef-wiggle .45s ease-in-out}.closing-wrap{padding:40px clamp(20px,5vw,48px) 80px}.closing{max-width:1200px;margin:0 auto;position:relative}.closing>.finn-wrap{position:absolute;top:-62px;right:clamp(24px,6vw,80px)}.closing-card{background:var(--coral);color:var(--ink-fixed);border:var(--stroke-wide) solid var(--line);box-shadow:8px 9px 0 var(--shadow);border-radius:40px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding:clamp(36px,6vw,80px) clamp(24px,5vw,64px);display:flex;position:relative}.closing-card h2{letter-spacing:-.045em;color:var(--ink-fixed);flex:420px;font-size:clamp(40px,5.4vw,76px);font-weight:900;line-height:.92}.end-cta .button.primary{--btn-drop:var(--btn-shadow)}.landing-footer{border-top:var(--stroke-wide) solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:28px clamp(20px,5vw,48px) 40px;font-size:15px;display:flex}.landing-footer .brand-word{font-size:20px}.landing-footer-line{color:var(--body);font-weight:600}.landing-footer .legal-links{gap:8px 22px}@media (max-width:767px){.hero{gap:28px;padding:24px 0 56px}.hero-actions .button{width:100%}.hero-stage{min-height:440px}.hero-stage>.finn-wrap{right:-10px}.landing-links{gap:8px 14px;font-size:15px}.landing-links .navlink[href^=\#]{display:none}.landing-section{padding:64px 20px 24px}.step{gap:16px 24px;padding:20px}.step-number{border-radius:20px;width:64px;height:64px;font-size:34px}.step-text h3{font-size:24px}.step-text p{font-size:16px}.step-demo{flex-basis:100%}.swap-row{justify-content:flex-start}.meet-finn{border-radius:28px}.closing>.finn-wrap{top:-50px;right:16px}.closing-card{border-radius:28px}}.plan-page,.progress-page{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.plan-page>.page-header,.progress-page>.page-header{margin-bottom:0}progress{appearance:none;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:100%;height:14px;color:var(--progress-color,var(--ink));display:block;overflow:hidden}progress::-webkit-progress-bar{background:var(--surface)}progress::-webkit-progress-value{background:var(--progress-color,var(--ink))}progress::-moz-progress-bar{background:var(--progress-color,var(--ink))}.figure-row,.plan-stats{gap:var(--space-3) var(--space-8);flex-wrap:wrap;display:flex}.figure-row>div,.plan-stats>div{gap:2px;display:grid}.figure-row dt,.plan-stats dt{color:var(--muted);font-size:var(--text-sm);font-weight:700}.figure-row dd,.plan-stats dd{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1}.plan-note{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-sm);align-items:flex-start;margin:0;font-weight:500;display:flex}.plan-note svg{stroke-width:2.4px;flex:none;margin-top:2px}.plan-note.is-overload{background:var(--sun);color:var(--ink-fixed);border-color:var(--ink-fixed);font-weight:600}.plan-note a{font-weight:700}.week-view{gap:var(--space-4);display:grid}.week-heading{flex-wrap:wrap;align-items:center;margin-bottom:0}.week-heading h2{font-size:var(--text-xl)}.week-heading>.week-nav{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.week-stats{padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft)}.week-days{gap:var(--space-2);list-style:none;display:grid}.week-day{align-items:start;gap:var(--space-3) var(--space-5);min-width:0;padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:170px minmax(0,1fr);display:grid}.week-day>.week-day-head{grid-area:1/1/span 3}.week-day>:not(.week-day-head){grid-column:2}.week-day.is-today{box-shadow:var(--offset-md) 0 var(--shadow)}.week-day.is-past{border-style:dashed;border-color:var(--dash);background:0 0}.week-day.is-quiet{align-items:center;gap:var(--space-2) var(--space-5);padding-block:var(--space-2);flex-wrap:wrap;display:flex}.week-day.is-quiet .week-day-head{align-items:baseline;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.week-day-head{gap:var(--space-2);display:grid}.week-day-head h3{align-items:baseline;gap:4px var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.week-day-name{color:var(--muted);font-weight:700;font-size:var(--text-sm)}.week-day-date{font-size:var(--text-xl);font-weight:900;line-height:1}.today-pill{min-height:26px;font-size:var(--text-xs);background:var(--coral);color:var(--ink-fixed);border-color:var(--ink-fixed);padding:0 10px}.week-day-minutes{color:var(--body);font-size:var(--text-sm);font-variant-numeric:tabular-nums;gap:0;font-weight:600;display:grid}.week-over{border:2px solid var(--ink-fixed);border-radius:var(--radius-xs);background:var(--sun);color:var(--ink-fixed);font-size:var(--text-sm);align-items:flex-start;gap:5px;margin:0;padding:4px 10px;font-weight:700;display:inline-flex}.week-over svg{margin-top:2px}.week-not-done{color:var(--muted);font-size:var(--text-sm);margin:0;font-weight:700}.week-assessments{gap:var(--space-2);flex-wrap:wrap;list-style:none;display:flex}.week-assessments li{border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-height:32px;font-size:var(--text-sm);overflow-wrap:anywhere;align-items:center;gap:6px;padding:0 12px;font-weight:700;display:inline-flex}.week-blocks{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));list-style:none;display:grid}.week-block{padding:var(--space-3) var(--space-3) var(--space-3);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);color:var(--ink-fixed);font-size:var(--text-sm);align-content:start;gap:3px;min-width:0;display:grid}.week-block.tone-coral{background:var(--coral)}.week-block.tone-lagoon{background:var(--lagoon)}.week-block.tone-sun{background:var(--sun)}.week-block strong{font-family:var(--font-display);font-size:var(--text-md);overflow-wrap:anywhere;font-weight:800;line-height:1.1}.week-block .course-text{color:var(--ink-fixed);font-size:var(--text-xs);font-weight:700}.week-block-meta{font-weight:500}.week-block-status{flex-wrap:wrap;align-items:center;gap:4px;font-weight:700;display:inline-flex}.week-block.is-done strong{text-decoration:line-through;text-decoration-thickness:2px}.week-block.is-inactive{color:var(--ink);border-style:dashed;border-color:var(--dash);background:0 0}.week-block.is-inactive .course-text{color:var(--muted)}.week-block{padding-left:calc(var(--space-3) + 10px);position:relative;overflow:hidden}.week-block:not(.is-inactive) .course-mark{border-color:var(--ink-fixed)}.week-empty{color:var(--body);font-size:var(--text-sm);align-self:center;margin:0;font-weight:600}.week-skeleton{gap:var(--space-2);display:grid}.week-skeleton .skeleton{border-radius:var(--radius-lg);height:64px}.plan-deadlines{gap:var(--space-3);display:grid}.plan-deadlines .section-heading{align-items:baseline;margin-bottom:0}.plan-group{gap:var(--space-1);display:grid}.plan-group h3{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-md);display:flex}.plan-quiet{color:var(--body);font-size:var(--text-sm);margin:0;font-weight:600}.plan-archive summary{align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-md);cursor:pointer;display:flex}.count,.plan-archive summary{font-family:var(--font-display);font-weight:800}.count{border:2px solid var(--ink-fixed);border-radius:var(--radius-pill);background:var(--sun);min-width:26px;height:26px;color:var(--ink-fixed);font-size:var(--text-xs);place-items:center;padding:0 8px;display:inline-grid}.plan-history{gap:var(--space-2);display:grid}.plan-history .section-heading{margin-bottom:var(--space-2)}.history-list{gap:0;list-style:none;display:grid}.history-list li{gap:var(--space-2) var(--space-4);padding:var(--space-3) 0;border-top:2px solid var(--line);grid-template-columns:11rem minmax(0,1fr) auto;align-items:baseline;display:grid}.history-list li:first-child{border-top:0}.history-kind{font-size:var(--text-sm);align-items:center;gap:6px;font-weight:700;display:inline-flex}.history-kind svg{stroke-width:2.4px}.history-reason{font-size:var(--text-base);line-height:var(--leading-snug);font-weight:500}.history-list time{color:var(--muted);font-size:var(--text-xs);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.plan-history>.button{margin-top:var(--space-2);justify-self:start}@media (max-width:639px){.week-day{grid-template-columns:1fr}.week-day>.week-day-head,.week-day>:not(.week-day-head){grid-area:auto/1}.week-blocks{grid-template-columns:1fr}.week-heading>.week-nav{width:100%}.week-nav>.button:nth-child(2){flex:1}.week-nav>.button:last-child{flex:100%}.history-list li{grid-template-columns:1fr;gap:2px}.week-day-minutes{gap:2px var(--space-3);flex-wrap:wrap;display:flex}.week-day-minutes span{white-space:nowrap}.figure-row,.plan-stats{gap:var(--space-2) var(--space-5)}}.plan-progress{gap:var(--space-4);display:grid}.plan-progress h2{font-size:var(--text-xl)}.plan-progress .plan-stats dd{font-size:var(--text-2xl)}.progress-skeleton{gap:var(--space-3);align-content:start;min-height:300px;display:grid}.progress-skeleton .skeleton:nth-child(2){height:72px}.progress-skeleton .skeleton:nth-child(3){height:180px}.progress-sentence{color:var(--body);font-size:var(--text-base);max-width:var(--reading-max);margin:0;font-weight:500}.how-counted{font-size:var(--text-sm)}.how-counted summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}.how-counted p{margin-top:var(--space-2);color:var(--body);max-width:var(--reading-max)}.progress-subtitle{font-size:var(--text-md);font-weight:800}.progress-weeks{gap:var(--space-3);list-style:none;display:grid}.progress-weeks li{align-items:center;gap:var(--space-2) var(--space-5);grid-template-columns:11rem minmax(0,1fr) minmax(14rem,auto);display:grid}.progress-week-label{font-weight:700;font-size:var(--text-sm)}.progress-weeks li.is-quiet{color:var(--muted);grid-template-columns:11rem minmax(0,1fr)}.progress-weeks li.is-quiet .progress-week-text{color:var(--muted)}.progress-week-text{color:var(--body);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600}.progress-allocation{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.progress-allocation td,.progress-allocation th{padding:var(--space-3) var(--space-3);text-align:left;border-bottom:2px solid var(--line)}.progress-allocation thead th{font-family:var(--font-display);font-size:var(--text-sm);font-weight:800}.progress-allocation tbody th{font-weight:700}.progress-allocation .num{text-align:right}.progress-allocation tbody tr:last-child td,.progress-allocation tbody tr:last-child th{border-bottom:0}.share{align-items:center;gap:var(--space-3);font-weight:600;display:inline-flex}.share-bar{border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:120px;height:12px;display:inline-block;overflow:hidden}.share-bar span{background:var(--ink);height:100%;display:block}.learning-change{gap:var(--space-3);display:grid}.learning-change h2{font-size:var(--text-xl)}.learning-change-list{gap:var(--space-2);list-style:none;display:grid}.learning-change-list>li{font-size:var(--text-base);line-height:var(--leading-normal);font-weight:500}.learning-change-list>li>strong{font-weight:700}.learning-change-list ul{padding-left:var(--space-4);font-size:var(--text-sm);color:var(--body);gap:2px;margin-top:4px;list-style:none;display:grid}.progress-tasks{gap:var(--space-3);display:grid}.progress-tasks h2{font-size:var(--text-xl)}.course-workload{gap:var(--space-2);display:grid}.course-workload .section-heading{margin-bottom:var(--space-2);align-items:baseline}.course-progress{gap:var(--space-2);padding:var(--space-3) 0;border-top:2px solid var(--line);display:grid}.course-workload .section-heading+.course-progress{border-top:0}.course-progress>div{justify-content:space-between;gap:var(--space-3);font-size:var(--text-base);display:flex}.course-progress a{min-height:0;font-weight:700}.course-progress span{color:var(--body);font-variant-numeric:tabular-nums;font-weight:600}.progress-more{color:var(--body);font-weight:500}.learning-progress{gap:var(--space-4);display:grid}.learning-progress .section-heading{align-items:center;margin-bottom:0}.learning-progress .overview-grid{gap:var(--space-3) var(--space-8);flex-wrap:wrap;display:flex}.learning-progress .overview-grid>div{gap:2px;display:grid}.learning-progress .overview-grid strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;line-height:1.1}.learning-progress .overview-grid p{color:var(--muted);font-size:var(--text-sm);font-weight:700}.learning-progress .concept-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learning-progress .concept-grid h3{margin-bottom:var(--space-2);font-size:var(--text-md)}.learning-progress .concept-grid p{padding:var(--space-1) 0;font-size:var(--text-sm);font-weight:500}.learning-progress .concept-grid a,.learning-progress>p a{font-weight:700}.learning-links{gap:var(--space-2) var(--space-5);padding-top:var(--space-3);border-top:2px solid var(--line);font-size:var(--text-sm);flex-wrap:wrap;font-weight:700;display:flex}.trend{gap:var(--space-3);display:grid}.trend h3{font-size:var(--text-md)}.trend-points{gap:var(--space-2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.trend-points>div{padding:var(--space-3);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);text-align:center;gap:2px;display:grid}.trend-points span{color:var(--muted);font-size:var(--text-xs);font-weight:700}.trend-points strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800}@media (max-width:1099px){.learning-change-list,.progress-weeks li{grid-template-columns:1fr}.progress-weeks li{gap:var(--space-1)}}@media (max-width:639px){.learning-progress .concept-grid{grid-template-columns:1fr}.trend-points{grid-template-columns:repeat(3,minmax(0,1fr))}.share-bar{display:none}.progress-allocation td,.progress-allocation th{padding:var(--space-2) var(--space-1)}.plan-progress .plan-stats dd{font-size:var(--text-xl)}}.practice-config{gap:var(--space-5);display:grid}.practice-config h2{font-size:var(--text-xl)}.practice-config .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.practice-start{gap:var(--space-2) var(--space-4)}.practice-sessions{margin-top:var(--space-6)}.practice-sessions h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}.session-list{display:grid}.session-row{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-top:2px solid var(--line);flex-wrap:wrap;display:flex}.session-row:first-child{border-top:0}.session-row>div{flex:14rem;min-width:0}.session-row strong{font-weight:700}.session-row p{color:var(--body);font-size:var(--text-sm);font-weight:500}.practice-card{gap:var(--space-5);max-width:760px;margin-inline:auto;display:grid}.practice-top{justify-content:space-between;align-items:center;gap:var(--space-3);margin:calc(-1 * var(--space-2)) 0;display:flex}.practice-card .eyebrow{color:var(--muted);font-size:var(--text-sm);letter-spacing:0;text-transform:none}.practice-card>progress{height:12px}.practice-meta{color:var(--muted);font-size:var(--text-sm);text-transform:capitalize;font-weight:700}.practice-prompt{font-family:var(--font-ui);letter-spacing:0;overflow-wrap:anywhere;font-size:1.375rem;font-weight:600;line-height:1.35}.practice-card form{gap:var(--space-5);justify-items:start;display:grid}.practice-card form>label{width:100%}.practice-card textarea{min-height:150px;font-size:var(--text-md)}.answer-options{gap:var(--space-3);border:0;width:100%;min-width:0;margin:0;padding:0;display:grid}.answer-options label{align-items:center;gap:var(--space-3) var(--space-4);min-height:56px;padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-md);font-weight:600;line-height:var(--leading-snug);cursor:pointer;transition:transform var(--dur-fast) ease,background-color var(--dur-fast) ease;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.answer-options label:hover:not(:has(input:disabled)){box-shadow:var(--offset-sm) 0 var(--shadow);transform:translate(-1px,-1px)}.answer-options label:has(input:focus-visible){outline-offset:2px;outline:3px solid #0000;box-shadow:0 0 0 3px #fff,0 0 0 6px #17161c!important}.answer-options input:focus-visible{outline:none;box-shadow:none!important}.answer-options label.selected{background:var(--sun);color:var(--ink-fixed);border-color:var(--ink-fixed)}.answer-options label:has(input:disabled){cursor:default}.option-text{overflow-wrap:anywhere}.option-tags{justify-content:flex-end;gap:var(--space-1);flex-wrap:wrap;display:flex}.option-tag{border:2px solid var(--ink-fixed);border-radius:var(--radius-pill);background:var(--white);min-height:26px;color:var(--ink-fixed);font-size:var(--text-xs);white-space:nowrap;align-items:center;padding:1px 9px;font-weight:700;display:inline-flex}.option-tag.expected{background:var(--kelp)}.answer-options label.expected{background:var(--kelp);color:var(--ink-fixed);border-color:var(--ink-fixed)}.answer-options label.missed{background:var(--surface);color:var(--ink);border-style:dashed;border-color:var(--dash)}.answer-feedback{gap:var(--space-3);padding:var(--space-5);border:var(--stroke) solid var(--ink-fixed);border-radius:var(--radius-lg);background:var(--sun);color:var(--ink-fixed);animation:reef-pop .45s var(--ease-pop) both;margin:0;display:grid}.answer-feedback.correct{background:var(--kelp)}.answer-feedback.partial{background:var(--sun)}.answer-feedback.incorrect{background:var(--coral)}.feedback-head{align-items:flex-start;gap:var(--space-3);display:flex}.feedback-icon{background:var(--white);width:40px;height:40px;color:var(--ink-fixed);border:var(--stroke) solid var(--ink-fixed);border-radius:50%;flex:none;place-items:center;display:grid}.feedback-icon svg{stroke-width:2.4px}.feedback-head>div{gap:2px;display:grid}.feedback-state{font-size:var(--text-sm)}.feedback-head strong,.feedback-state{font-family:var(--font-display);font-weight:800}.feedback-head strong{font-size:var(--text-lg);line-height:1.1}.answer-feedback p{overflow-wrap:anywhere;margin:0;font-weight:500;line-height:1.5}.answer-feedback b{font-weight:700}.feedback-expected{padding:var(--space-3) var(--space-4);border:2px solid var(--ink-fixed);border-radius:var(--radius-md);background:var(--white)}.practice-next{margin-top:calc(-1 * var(--space-1))}.source-links{gap:var(--space-1) var(--space-3);padding-top:var(--space-4);border-top:2px solid var(--line);color:var(--body);font-size:var(--text-sm);flex-wrap:wrap;margin:0;font-weight:500;display:flex}.source-links a{font-weight:700}.session-summary{gap:var(--space-4);max-width:640px;animation:reef-pop .5s var(--ease-pop) both;margin-inline:auto;display:grid}.session-summary h2{font-size:var(--text-2xl)}.session-summary p{color:var(--body);max-width:50ch;font-weight:500}.session-summary .summary-figures{color:var(--ink);font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:800}.mistake-filters{padding:var(--space-4) var(--space-5);box-shadow:none}.mistake-filters .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.learning-list{gap:var(--space-4);margin:var(--space-5) 0 0;display:grid}.mistake-card{gap:var(--space-3);display:grid}.mistake-top{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.mistake-category{color:var(--muted);font-size:var(--text-sm);text-transform:capitalize;font-weight:700}.lesson-prompt,.mistake-card h2{font-family:var(--font-ui);font-size:var(--text-lg);letter-spacing:0;overflow-wrap:anywhere;font-weight:600;line-height:1.35}.mistake-card p{overflow-wrap:anywhere;margin:0}.mistake-answer{padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);overflow-wrap:anywhere;font-weight:500}.mistake-pattern{font-size:var(--text-sm);font-weight:500}.mistake-card .button-group{margin-top:var(--space-1)}.finn-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr) 280px;align-items:start;display:grid;position:relative}.finn-chat{min-width:0}.chat-messages,.finn-chat{gap:var(--space-4);display:grid}.chat-messages{align-content:start}.chat-empty{max-width:680px}.chat-message{align-items:flex-start;gap:var(--space-2);max-width:min(100%,680px);animation:reef-pop .45s var(--ease-pop) both;transform-origin:0 100%;margin:0;display:flex}.chat-message.user{transform-origin:100% 100%;flex-direction:row-reverse;margin-left:auto}.chat-message>.finn-wrap{margin-top:4px}.chat-bubble{border:var(--stroke) solid var(--line);background:var(--surface);min-width:0;color:var(--ink);box-shadow:3px 4px 0 var(--say-shadow);border-radius:18px 18px 18px 4px;padding:12px 16px}.chat-message.user .chat-bubble{background:var(--sun);color:var(--ink-fixed);border-color:var(--ink-fixed);box-shadow:none;border-radius:18px 18px 4px}.chat-bubble p{font-size:var(--text-base);white-space:pre-wrap;overflow-wrap:anywhere;font-weight:600;line-height:1.45}.source-cards{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.source-cards span{border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--soft);color:var(--ink);font-size:var(--text-xs);padding:3px 10px;font-weight:700}.chat-bubble.is-suggestion{background:var(--lagoon);color:var(--ink-fixed);border-color:var(--ink-fixed);gap:var(--space-2);display:grid}.chat-bubble.is-suggestion h3{color:var(--ink-fixed);font-size:var(--text-sm);align-items:center;gap:6px;font-weight:800;display:inline-flex}.suggestion-title{font-family:var(--font-display);font-size:var(--text-md);margin:0;font-weight:800;line-height:1.2}.suggestion-effect{font-size:var(--text-sm);margin:0;font-weight:500}.suggestion-done{font-weight:700;font-size:var(--text-sm);margin:0}.chat-bubble.is-suggestion .button.primary{--btn-surface:var(--coral);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed);--btn-drop:var(--ink-fixed);font-family:var(--font-display)}.chat-bubble.is-suggestion .button.secondary{--btn-surface:var(--white);--btn-ink:var(--ink-fixed);--btn-edge:var(--ink-fixed);box-shadow:none}.chat-bubble.is-suggestion .field-error{color:var(--ink-fixed)}.practice-note{margin:calc(-1 * var(--space-2)) 0 0;color:var(--body);font-size:var(--text-sm);font-weight:600}.finn-composer{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.finn-composer textarea{min-height:56px;font-size:var(--text-md)}.finn-rules{color:var(--body);font-size:var(--text-sm);margin:0;font-weight:500}.conversation-list{gap:var(--space-3);padding:var(--space-4);box-shadow:none;align-content:start;display:grid}.conversation-list-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.conversation-list h2{font-size:var(--text-md)}.conversation-list h3{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--muted)}.conversation-empty{color:var(--body);font-size:var(--text-sm);font-weight:500}.conversation-item{border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.conversation-item.is-current{background:var(--sun);color:var(--ink-fixed)}.conversation-item .button.text{white-space:normal;text-align:left;color:inherit}.conversation-item .conversation-open{padding-block:var(--space-2);font-size:var(--text-sm);justify-content:flex-start;font-weight:700;text-decoration:none}.conversation-item .conversation-delete{font-size:var(--text-sm)}.finn-backdrop{display:none}.answer-feedback:focus:not(:focus-visible),.practice-prompt:focus:not(:focus-visible),.session-summary h2:focus:not(:focus-visible),.suggestion-outcome:focus:not(:focus-visible){outline:none;box-shadow:none!important}@media (max-width:1023px){.finn-layout{grid-template-columns:minmax(0,1fr) 240px}}@media (max-width:767px){.finn-layout{grid-template-columns:minmax(0,1fr)}.conversation-list{display:none}.conversation-list.is-open{z-index:var(--z-drawer);border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:80vh;box-shadow:0 -4px 0 var(--shadow);animation:reef-pop .35s var(--ease-pop) both;transform-origin:50% 100%;display:grid;position:fixed;inset:auto 0 0;overflow-y:auto}.finn-backdrop{display:block}.finn-composer{grid-template-columns:minmax(0,1fr)}.finn-composer .button{width:100%}.finn-composer{bottom:calc(86px + env(safe-area-inset-bottom));z-index:1;padding-top:var(--space-2);background:var(--bg);position:sticky}.chat-message>.finn-wrap{display:none}.practice-prompt{font-size:1.25rem}.answer-options label{grid-template-columns:auto minmax(0,1fr)}.option-tags{grid-column:2;justify-content:flex-start}.practice-card form>.button,.practice-next .button{width:100%}}.page-label{color:var(--muted);font-family:var(--font-display);margin-bottom:4px;font-weight:800;display:block}.page-label,.page-note{font-size:var(--text-sm)}.page-note{margin:calc(-1 * var(--space-3)) 0 var(--space-5);color:var(--body);max-width:var(--reading-max);font-weight:500}.courses-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));display:grid}.course-card{gap:var(--space-2);min-width:0;padding:var(--space-5);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--offset-md) 0 var(--shadow);color:var(--ink);transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease;flex-direction:column;text-decoration:none;display:flex}.course-card:hover{box-shadow:4px 5px 0 var(--shadow);transform:translate(-1px,-1px)}.course-card:active{box-shadow:none;transform:translate(2px,3px)}.course-code{color:var(--muted);font-family:var(--font-display);font-size:var(--text-sm);font-weight:800}.course-card h2{font-size:var(--text-xl);overflow-wrap:anywhere;line-height:1.05}.course-card>p{color:var(--body);font-size:var(--text-sm);font-weight:600}.course-deadlines{gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-3);border-top:2px solid var(--line);display:grid}.course-deadlines>div{gap:1px;display:grid}.course-deadlines dt{color:var(--muted);font-size:var(--text-xs);font-weight:700}.course-deadlines dd{font-size:var(--text-sm);overflow-wrap:anywhere;font-weight:700}.course-card-footer{padding-top:var(--space-3);color:var(--body);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-top:auto;font-weight:600}.add-course-card{align-content:center;place-items:center;gap:var(--space-2);min-height:200px;padding:var(--space-5);border:var(--stroke) dashed var(--dash);border-radius:var(--radius-lg);color:var(--ink);font-family:var(--font-display);font-size:var(--text-md);text-align:center;cursor:pointer;transition:transform var(--dur-fast) ease,background-color var(--dur-fast);background:0 0;font-weight:800;display:grid}.add-course-card:hover{background:var(--surface);transform:translate(-1px,-1px)}.learning-nav{gap:var(--space-1);margin:0 0 var(--space-5);padding:var(--space-1);border:var(--stroke) solid var(--line);background:var(--surface);flex-wrap:wrap;width:fit-content;max-width:100%;display:flex}.learning-nav,.learning-nav a{border-radius:var(--radius-pill)}.learning-nav a{min-height:40px;padding:0 var(--space-4);color:var(--ink);font-family:var(--font-display);font-size:var(--text-sm);align-items:center;font-weight:800;text-decoration:none;display:inline-flex}.learning-nav a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2.5px}.learning-nav a[aria-current=page]{background:var(--coral);color:var(--ink-fixed);text-decoration:none}.course-overview{margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft)}.course-overview .overview-card{background:0 0;border:0;gap:2px;padding:0;display:grid}.course-overview dt{color:var(--muted);font-size:var(--text-sm);font-weight:700}.course-overview dd{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;line-height:1.1}.course-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.course-panel{gap:var(--space-4);padding-block:var(--space-4);display:grid}.course-group{gap:var(--space-1);display:grid}.course-group h2{font-size:var(--text-md)}.course-more{align-items:center;gap:var(--space-2) var(--space-5);margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--stroke) solid var(--line);flex-wrap:wrap;display:flex}.course-more>.button{margin-left:auto}.upload-zone{justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);border:var(--stroke) dashed var(--dash);background:var(--surface);box-shadow:none;text-align:center;transition:background-color var(--dur-fast),border-color var(--dur-fast);display:grid}.upload-zone.dragging{background:var(--sun);border-style:solid}.upload-icon{border:var(--stroke) solid var(--line);background:var(--lagoon);width:56px;height:56px;color:var(--ink-fixed);border-radius:50%;place-items:center;display:grid}.upload-zone h2{font-size:var(--text-xl)}.upload-zone p{max-width:52ch;color:var(--body);font-weight:500}.upload-zone label:not(.file-picker){text-align:left;width:min(100%,300px)}.file-picker{cursor:pointer;position:relative;overflow:hidden}.file-picker input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-picker:focus-within{outline-offset:2px;outline:3px solid #0000;box-shadow:0 0 0 3px #fff,0 0 0 6px #17161c!important}.material-card{gap:var(--space-3);display:grid}.material-head{align-items:center;gap:var(--space-3);min-width:0;display:flex}.material-icon{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--soft);width:40px;height:40px;color:var(--ink);flex:none;place-items:center;display:grid}.material-card h2{min-width:0;font-size:var(--text-md);overflow-wrap:anywhere;flex:1}.material-card .status-pill{text-transform:capitalize}.material-card p{overflow-wrap:anywhere;margin:0}.material-card .muted{font-size:var(--text-sm);text-transform:none;font-weight:600}.review-rows{gap:var(--space-4);margin:var(--space-4) 0;display:grid}.review-rows fieldset{gap:var(--space-3);padding:var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);min-width:0;display:grid}.review-rows legend{padding:0 var(--space-2);font-family:var(--font-display);font-size:var(--text-sm);font-weight:800}.concept-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));display:grid}.concept-card{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.concept-card h2{font-size:var(--text-lg);overflow-wrap:anywhere;line-height:1.1}.concept-card p{font-size:var(--text-sm);line-height:var(--leading-snug);margin:0;font-weight:500}.mastery-value{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);color:var(--ink);font-weight:800}.mastery-meter{border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:100%;height:12px;display:block;overflow:hidden}.mastery-meter span{background:var(--kelp);height:100%;display:block}.concept-card .button{margin-top:auto}.readiness-card{gap:var(--space-3);display:grid}.readiness-head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.readiness-head h2{font-size:var(--text-xl);overflow-wrap:anywhere}.readiness-number{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-display);color:var(--ink);font-weight:900;line-height:1;display:block}.readiness-number.is-empty{font-size:var(--text-xl);color:var(--body)}.readiness-confidence{color:var(--body);font-size:var(--text-sm);font-weight:600}.readiness-card p{margin:0;font-weight:500;line-height:1.5}.readiness-card details{padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);font-size:var(--text-sm)}.readiness-card summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}.readiness-card details ul{gap:var(--space-1);margin:var(--space-2) 0;padding-left:var(--space-5);display:grid}.readiness-card .button-group{margin-top:var(--space-2)}.topic-choice{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) 0;border-bottom:2px solid var(--line);flex-wrap:wrap;display:flex}.topic-choice>label:not(.checkbox-label){width:9rem}@media (max-width:767px){.learning-nav{border-radius:var(--radius-lg);width:100%}.learning-nav a{flex:auto;justify-content:center}.course-more>.button{margin-left:0}.topic-choice{align-items:flex-start}}.grades-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.grade-form{gap:var(--space-4);display:grid}.grade-form h2{font-size:var(--text-xl)}.grade-form>p{color:var(--body)}.percent-input{position:relative}.percent-input input{font-size:var(--text-md);font-variant-numeric:tabular-nums;padding-right:40px}.percent-input>span{right:var(--space-4);color:var(--muted);pointer-events:none;font-weight:700;position:absolute;top:50%;transform:translateY(-50%)}.grade-form label small{color:var(--muted);font-size:var(--text-sm);font-weight:500}.grade-assumption{padding:var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);font-size:var(--text-sm);margin:0;font-weight:500}.grade-result{top:calc(64px + var(--space-5));gap:var(--space-4);padding:var(--space-6);border:var(--stroke) solid var(--line);border-radius:var(--radius-xl);background:var(--sun);color:var(--ink-fixed);box-shadow:var(--offset-lg) 0 var(--shadow);display:grid;position:sticky}.grade-result .finn-say{background:var(--surface);color:var(--ink)}.grade-result .finn-say p span[role=alert]{margin-top:4px;font-weight:700;display:block}.grade-figure{align-items:baseline;gap:var(--space-2) var(--space-3);flex-wrap:wrap;margin:0;font-weight:600;display:flex}.required-grade{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;font-weight:900;line-height:1}.required-grade>span{margin-left:2px;font-size:.6em}.grade-result-note{font-size:var(--text-sm);margin:0;font-weight:600}.settings-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr);max-width:760px;display:grid}.appearance-settings h2,.data-settings h2,.overrides-card h2,.settings-layout h2{font-size:var(--text-xl)}.overrides-card>p,.settings-layout .card>p{color:var(--body)}.settings-layout label small{color:var(--muted);font-size:var(--text-sm);font-weight:500}.settings-note{gap:var(--space-3);padding:var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);display:flex}.settings-note svg{stroke-width:2.25px;flex:none;margin-top:2px}.settings-note p{font-size:var(--text-sm);line-height:var(--leading-snug);font-weight:500}.settings-note strong{font-weight:700}.settings-save{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.availability{display:grid}.availability>label{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:2px solid var(--line);font-weight:600;font-size:var(--text-base);display:flex}.availability>label:last-child{border-bottom:0}.availability select{flex:none;width:150px}.fit-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.fit-grid.times{grid-template-columns:repeat(auto-fit,minmax(min(100%,125px),1fr))}.appearance-settings,.data-settings,.overrides-card{max-width:760px;margin-top:var(--space-5)}.override-list{list-style:none;display:grid}.override-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:2px solid var(--line);display:flex}.override-list li:last-child{border-bottom:0}.override-list li div{font-size:var(--text-sm);gap:2px;display:grid}.override-list li span{color:var(--muted);font-weight:600}.appearance-settings,.data-settings{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-6);flex-wrap:wrap;display:flex}.appearance-settings>div,.data-settings>div:first-child{gap:var(--space-1);max-width:520px;display:grid}.appearance-settings p,.data-settings p{color:var(--body);font-size:var(--text-sm)}.theme-choice{gap:var(--space-1) var(--space-5)}.onboarding-page{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}.onboarding-page>nav{justify-content:space-between;align-items:center;gap:var(--space-4);width:min(100%,1160px);padding:var(--space-5) var(--space-6);margin:0 auto;display:flex}.onboarding-layout{gap:var(--space-12);width:min(100%,1100px);padding:var(--space-6) var(--space-6) var(--space-12);flex:1;grid-template-columns:minmax(0,1fr) minmax(0,520px);align-items:center;margin:0 auto;display:grid}.onboarding-story{gap:var(--space-5);justify-items:start;display:grid}.onboarding-story>h1{letter-spacing:var(--tracking-title);max-width:12ch;font-size:clamp(2.5rem,5vw,3.6rem);line-height:.95}.onboarding-story>p{color:var(--body);font-size:var(--text-md);max-width:36ch;font-weight:500}.onboarding-steps{gap:var(--space-2);display:grid}.onboarding-steps>div{align-items:center;gap:var(--space-3);color:var(--muted);font-size:var(--text-sm);font-weight:600;display:flex}.onboarding-steps>div>span:first-child{border:var(--stroke) solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--ink);font-family:var(--font-display);font-size:var(--text-sm);border-radius:50%;place-items:center;font-weight:800;display:grid}.onboarding-steps>div.active{color:var(--ink);font-weight:700}.onboarding-steps>div.active>span:first-child{background:var(--coral);color:var(--ink-fixed);border-color:var(--ink-fixed)}.onboarding-steps>div.done>span:first-child{background:var(--kelp);color:var(--ink-fixed);border-color:var(--ink-fixed)}.onboarding-card{gap:var(--space-4);padding:clamp(var(--space-6),4vw,var(--space-10));border:var(--stroke) solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--offset-lg) 0 var(--shadow);display:grid}.step-progress{color:var(--muted);font-size:var(--text-sm);justify-content:flex-end;font-weight:700;display:flex}.onboarding-card>progress{height:10px;margin-bottom:var(--space-2)}.onboarding-card h2{font-size:var(--text-2xl);line-height:1}.onboarding-card form>p{color:var(--body)}.onboarding-card .small-note{color:var(--muted);font-size:var(--text-sm);font-weight:500}.onboarding-card .text-link{justify-self:start}.onboarding-page>footer{padding:0 var(--space-5) var(--space-6);text-align:center;color:var(--body);font-size:var(--text-sm);font-weight:600}.date-confirm{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.confirmed-chip{background:var(--kelp);min-height:44px;color:var(--ink-fixed);border:var(--stroke) solid var(--ink-fixed);border-radius:var(--radius-xs);align-items:center;gap:8px;padding:0 14px;font-size:15px;font-weight:700;display:inline-flex}.confirmed-chip .reef-chk{animation-delay:.2s}.date-confirm .button.secondary{background:var(--kelp);color:var(--ink-fixed);border-color:var(--ink-fixed)}@media (max-width:1023px){.grades-layout{grid-template-columns:minmax(0,1fr)}.grade-result{position:static}.onboarding-layout{gap:var(--space-8)}}@media (max-width:767px){.onboarding-layout{padding:var(--space-2) var(--space-4) var(--space-8);grid-template-columns:minmax(0,1fr)}.onboarding-story{display:none}.onboarding-page>nav{padding:var(--space-4)}.onboarding-card{padding:var(--space-6) var(--space-5)}.availability select{width:128px}.settings-save .button{width:100%}}.finn-line{align-items:flex-start;gap:var(--space-1);text-align:left;width:100%;max-width:640px;display:flex}.finn-line .finn-say{margin-top:6px}.auth-page{z-index:1;align-items:center;gap:var(--space-6);min-height:100dvh;padding:var(--space-8) var(--space-4) var(--space-12);flex-direction:column;display:flex;position:relative}.auth-card{justify-items:center;gap:var(--space-3);width:min(100%,460px);padding:clamp(var(--space-6),5vw,var(--space-10));border-radius:var(--radius-xl);box-shadow:var(--offset-lg) 0 var(--shadow);text-align:center;display:grid}.auth-card h1{font-size:var(--text-2xl);line-height:1}.auth-card form{gap:var(--space-4);width:100%;margin-top:var(--space-3);text-align:left;display:grid}.auth-card .notice,.auth-message{text-align:left}.auth-message{width:100%;padding:var(--space-3) var(--space-4);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft);font-size:var(--text-sm);font-weight:600}.consent-field{align-items:start;gap:var(--space-3);font-size:var(--text-sm);grid-template-columns:auto minmax(0,1fr);line-height:1.5;display:grid}.consent-field input{margin-top:2px}.consent-field label{font-weight:500;display:block}.auth-links{justify-content:center;gap:0 var(--space-4);margin-top:var(--space-3);width:100%;font-size:var(--text-sm);flex-wrap:wrap;display:flex}.auth-links a{min-height:var(--tap);color:var(--ink);align-items:center;font-weight:700;display:inline-flex}.legal-layout{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}.legal-header{padding:var(--space-4) clamp(var(--space-4),4vw,var(--space-10))}.legal-page{width:min(100% - 2 * var(--space-4),760px);margin:var(--space-4) auto var(--space-12);padding:clamp(var(--space-6),5vw,var(--space-12));border-radius:var(--radius-xl);border:var(--stroke) solid var(--line);background:var(--surface);box-shadow:var(--offset-md) 0 var(--shadow);overflow-wrap:anywhere;flex:1;line-height:1.7}.legal-page h1{font-size:var(--text-2xl);margin-bottom:var(--space-2);line-height:1}.legal-page h2{margin:var(--space-8) 0 var(--space-2);font-size:var(--text-lg)}.legal-page li,.legal-page p{max-width:var(--reading-max)}.legal-page p+p{margin-top:var(--space-3)}.legal-page ol,.legal-page ul{margin:var(--space-3) 0;padding-left:var(--space-6);list-style-position:outside}.legal-page ul{list-style-type:disc}.legal-page ol{list-style-type:decimal}.legal-page li{padding-left:var(--space-1);display:list-item}.legal-page li+li{margin-top:var(--space-2)}.legal-page li::marker{color:var(--muted)}.legal-page h2+ol,.legal-page h2+ul{margin-top:var(--space-2)}.legal-page ol ol,.legal-page ul ul{margin:var(--space-1) 0 0}.legal-meta{margin-bottom:var(--space-6);color:var(--muted);font-size:var(--text-sm);font-weight:600}.legal-meta strong{color:var(--muted);font-weight:700}.legal-summary{margin:var(--space-4) 0 var(--space-2);padding:var(--space-4) var(--space-5);border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--soft)}.legal-summary p{margin-bottom:var(--space-2);font-weight:700}.legal-summary ul{margin:0}.legal-table{margin:var(--space-3) 0;border:var(--stroke) solid var(--line);border-radius:var(--radius-md);max-width:100%;overflow-x:auto}.legal-table table{font-size:var(--text-sm);line-height:1.5}.legal-table td,.legal-table th{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top;border-bottom:2px solid var(--line)}.legal-table thead th{font-family:var(--font-display);font-size:var(--text-sm);background:var(--soft);font-weight:800}.legal-table tbody tr:last-child td{border-bottom:0}.legal-contact{margin-top:var(--space-3);font-weight:700}.legal-placeholder{margin-bottom:var(--space-6);padding:var(--space-4) var(--space-5);border:var(--stroke) dashed var(--dash);border-radius:var(--radius-md);background:var(--sun);color:var(--ink-fixed)}.legal-footer{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);padding:var(--space-5) clamp(var(--space-4),4vw,var(--space-10));border-top:var(--stroke) solid var(--line);color:var(--body);font-size:var(--text-sm);flex-wrap:wrap;font-weight:600;display:flex}.not-found{z-index:1;place-content:center;justify-items:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-8) var(--space-5);text-align:center;display:grid;position:relative}.not-found h1{font-size:var(--text-2xl);max-width:18ch}.not-found .button-group{justify-content:center}.storage-warning{z-index:var(--z-sticky,50);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-5);border-bottom:var(--stroke) solid var(--ink-fixed);background:var(--sun);color:var(--ink-fixed);font-size:var(--text-sm);font-weight:700;display:flex;position:relative}.storage-warning .icon-button{border-color:var(--ink-fixed);color:var(--ink-fixed);box-shadow:none;background:0 0;flex:none}.import-notice{right:var(--space-4);bottom:var(--space-4);z-index:var(--z-toast,80);gap:var(--space-3);max-width:min(460px,calc(100vw - 2 * var(--space-4)));animation:reef-pop .45s var(--ease-pop) both;justify-items:start;display:grid;position:fixed}.import-notice strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800}.import-notice p{color:var(--body);font-size:var(--text-sm)}.import-notice .button{margin-right:var(--space-2)}@media (max-width:767px){.legal-page{width:100%;box-shadow:none;border-inline:0;border-radius:0;margin:0}.import-notice{bottom:calc(92px + env(safe-area-inset-bottom))}}@media (max-width:560px){.legal-table thead{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.legal-table table,.legal-table tbody,.legal-table td,.legal-table tr{display:block}.legal-table tr{padding:var(--space-3);border-bottom:var(--stroke) solid var(--line)}.legal-table tr:last-child{border-bottom:0}.legal-table td{border-bottom:0;padding:2px 0}.legal-table td:first-child{font-family:var(--font-display);font-weight:800;font-size:var(--text-base);margin-bottom:4px}}@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-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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}