/*! 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-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:"Geist",sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-900:oklch(38.6% .063 188.416);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-pink-800:oklch(45.9% .187 3.815);--color-pink-900:oklch(40.8% .153 2.432);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--font-weight-semibold:600;--ease-out:cubic-bezier(0,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}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.container\!{width:100%!important}@media (min-width:40rem){.container\!{max-width:40rem!important}}@media (min-width:48rem){.container\!{max-width:48rem!important}}@media (min-width:64rem){.container\!{max-width:64rem!important}}@media (min-width:80rem){.container\!{max-width:80rem!important}}@media (min-width:96rem){.container\!{max-width:96rem!important}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-1{width:var(--spacing);height:var(--spacing)}.h-40{height:calc(var(--spacing) * 40)}.w-full{width:100%}.max-w-xs{max-width:var(--container-xs)}.flex-shrink,.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-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-2{gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow{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%)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[answer\:\%o\]{answer:%o}.\[event\:\%o\]{event:%o}.\[group\:\"\)\.concat\(this\.groupId\,\"\]{group:").concat(this.groupId,"}.\[id\:\"\.concat\(this\.id\,\"\]{id:".concat(this.id,"}.\[mid\:\%s\]{mid:%s}.\[offer\:\%o\]{offer:%o}.\[options\:\%o\]{options:%o}.\[pair\:\%o\]{pair:%o}.\[params\:\%o\]{params:%o}.\[role\:\%s\]{role:%s}.\[state\:\%s\]{state:%s}.\[track\:\%o\]{track:%o}@media (hover:hover){.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}}}.account-page,.books-page{max-width:1260px;margin-inline:auto}.account-page>h1,.books-page h1,.legal-page>h1,.pricing-page>h1{letter-spacing:-.055em;font-size:clamp(32px,4.5vw,58px);line-height:1.08}.pricing-page>h1{max-width:14ch}.account-page{max-width:1120px}.account-page>h1{font-size:clamp(28px,3.2vw,42px)}.account-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start;gap:24px;margin-top:36px;display:grid}.account-profile-group{background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}.account-profile-group>.account-card{background:0 0;border:0;border-radius:0}.account-profile-group>.account-card+.account-card{border-top:1px solid var(--line)}.account-sidebar{gap:24px;min-width:0;display:grid}.account-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px}.account-card h2{letter-spacing:-.035em;margin:0 0 10px;font-size:21px}.account-card p{color:var(--muted);overflow-wrap:anywhere;max-width:62ch;line-height:1.8}.account-card form{gap:10px;margin-top:24px;display:grid}.account-card .field-label{margin-top:10px}.account-card .text-input{resize:vertical;width:100%}.account-card .button{width:fit-content;margin-top:12px}.account-links{gap:14px;margin-top:22px;display:grid}.account-links .text-button{justify-content:space-between}.account-tools{justify-items:start;gap:18px;padding-top:24px;display:grid}.account-session-actions,.account-tools{border-top:1px solid var(--line);margin-top:24px}.account-session-actions{flex-wrap:wrap;align-items:center;gap:16px;padding-top:20px;display:flex}.account-session-actions .button,.account-tools .button{margin-top:0}@media (max-width:850px){.account-grid{grid-template-columns:minmax(0,1fr)}}.account-error{color:var(--red)!important}.account-feedback{border:1px solid var(--line);color:var(--green);border-radius:12px;margin-top:20px;padding:16px 20px}.guest-import{justify-content:space-between;align-items:center;gap:30px;margin-top:24px;display:flex}.guest-import .button{flex-shrink:0}.signin-card{border:1px solid var(--line);background:var(--surface);border-radius:22px;max-width:580px;margin:32px auto 60px;padding:48px}.signin-card h1{letter-spacing:-.05em;margin:20px 0;font-size:clamp(30px,3.2vw,43px)}.signin-card h1 span{color:var(--green)}.signin-card p{color:var(--muted);margin-bottom:24px;line-height:1.85}.signin-card>.text-button{margin:24px 0;display:flex}.signin-card>small{color:var(--muted);margin-top:24px;display:block}.signin-card .section-kicker{margin-top:24px}.signin-card form{margin-block:28px}.signin-options{gap:12px;display:grid}.signin-options .button{width:100%}.account-emblem{width:72px;height:72px;color:var(--green);background:var(--surface-raised);border:1px solid var(--line);border-radius:22px;justify-content:center;align-items:center;display:inline-flex}.guest-account-prompt{border-top:1px solid var(--line);margin-top:26px;padding-top:18px}.guest-account-prompt p{color:var(--muted)}.save-progress-prompt{border:1px solid var(--line);color:var(--green);background:var(--surface);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;padding:18px 22px;display:flex}.save-progress-prompt span{color:var(--muted)}.save-progress-prompt .text-button{margin-left:auto}.sync-message{background:var(--surface-raised);border-bottom:1px solid var(--line);color:var(--orange);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;font-size:12px;display:flex}.sync-message>div{gap:18px;display:flex}.connection-help{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:480px;display:flex}.connection-help p:empty{display:none}.books-hero{grid-template-columns:1.25fr 1fr;align-items:center;gap:64px;padding:40px 0 60px;display:grid}.books-hero h1{margin:20px 0 24px;font-size:clamp(38px,4.7vw,65px)}.books-hero h1 span{color:var(--green)}.books-hero>div>p{max-width:49ch;color:var(--muted);font-size:16px;line-height:1.9}.books-hero .button{margin-top:20px}.books-hero .books-release-note{max-width:47ch;margin-top:24px;font-size:12px}.featured-book{background:radial-gradient(at 50% 45%,#acc96616,#0000 70%);border-radius:20px;flex-direction:column;align-items:center;padding:30px 24px 22px;display:flex;position:relative}.featured-book-caption{letter-spacing:.12em;white-space:nowrap;color:var(--text);align-items:center;gap:8px;margin-top:18px;font-size:10px;display:inline-flex}.featured-book-caption svg{flex-shrink:0;transition:transform .15s}.featured-book:hover .featured-book-caption svg{transform:translate(3px)}.featured-book .book-cover{aspect-ratio:17/22;object-fit:contain;border-radius:2px 5px 5px 2px;width:214px;max-width:100%;height:auto;display:block}.book-cover-large{width:286px}.books-principles{border-block:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:20px;padding:26px 0;font-size:11px;display:flex}.books-principles>span{align-items:center;gap:8px;display:flex}.books-principles svg{color:var(--green);margin-right:4px}.books-principles strong{color:var(--text);font-weight:500}.books-catalog-heading{justify-content:space-between;align-items:center;gap:24px;margin:56px 0 24px;display:flex}.book-inside h2,.book-sample h2,.books-catalog-heading h2{letter-spacing:-.045em;margin:8px 0 0;font-size:29px;line-height:1.2}.books-search{border:1px solid var(--line);color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:12px 14px;display:flex}.books-search input{width:180px;color:var(--text);background:0 0;border:0;font-size:12px}.books-tabs{white-space:nowrap;overflow-x:auto}.books-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;margin-top:30px;display:grid}.book-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-width:0;transition:border-color .2s,transform .2s;overflow:hidden}.book-card:hover{border-color:var(--subtle);transform:translateY(-4px)}.book-card-cover{background:var(--surface-raised);justify-content:center;align-items:center;padding:34px 24px 40px;display:flex;position:relative}.book-card-cover .book-cover{max-width:100%;transform:rotate(-3deg);box-shadow:8px 10px #0002}.book-status{background:var(--surface);border:1px solid var(--line);width:fit-content;color:var(--muted);border-radius:6px;padding:5px 10px;font-size:10px;font-weight:500;display:inline-flex}.book-card-cover .book-status{position:absolute;bottom:12px;right:12px}.book-card-info{padding:24px}.book-card-info .section-kicker{font-size:9px}.book-card-info h3{letter-spacing:-.035em;margin:10px 0 8px;font-size:20px;line-height:1.2}.book-card-info p{color:var(--muted);min-height:42px;font-size:12px;line-height:1.7}.book-card-action{color:var(--green);margin-top:24px;font-size:12px}.book-card-action,.books-practice-callout{justify-content:space-between;align-items:center;display:flex}.books-practice-callout{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:30px;margin-top:56px;padding:34px}.books-practice-callout h2{letter-spacing:-.04em;margin:10px 0;font-size:25px}.books-practice-callout p{color:var(--muted);margin:0}.books-practice-callout .button{flex-shrink:0}.book-detail-hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:64px;padding:40px 0 48px;display:grid}.book-detail-cover{background:var(--surface);border:1px solid var(--line);border-radius:20px;justify-content:center;align-items:center;padding:40px 20px;display:flex}.book-detail-cover .book-cover{transform:rotate(-4deg);box-shadow:12px 14px #0002}.book-detail-copy{align-content:center;gap:20px;min-width:0;display:grid}.book-detail-copy .page-eyebrow,.book-detail-copy h1,.book-detail-copy p{margin:0}.book-detail-hero .book-subtitle{color:var(--green);max-width:44ch;font-size:18px;line-height:1.5}.book-detail-hero p{color:var(--muted);line-height:1.9}.book-detail-copy .book-description{max-width:60ch}.book-release-card{border-top:1px solid var(--line);justify-items:start;gap:14px;margin-top:4px;padding-top:24px;display:grid}.book-release-card p{max-width:58ch;font-size:13px;line-height:1.75}.book-release-card .button{min-height:42px;margin-top:2px}.book-inside{border-block:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;padding:40px 0;scroll-margin-top:100px;display:grid}.book-inside-copy{align-content:start;justify-items:start;gap:14px;display:grid}.book-inside-copy h2,.book-inside-copy p{margin:0}.book-inside-copy p{max-width:40ch}.book-inside p{color:var(--muted);line-height:1.9}.book-inside ol{margin:0;padding:0;list-style:none}.book-inside li{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:20px;padding:15px 0;display:flex}.book-inside li span{color:var(--subtle);font-family:monospace;font-size:11px}.book-sample{padding:46px 0 0}.book-sample>p{max-width:74ch;color:var(--muted);font-size:15px;line-height:1.95}.book-sample h2{margin-bottom:26px}.search-illustration{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:30px 0;display:grid}.search-illustration>div{border:1px solid var(--line);background:var(--surface);border-radius:9px;flex-direction:column;gap:18px;min-width:0;padding:18px 14px;display:flex}.search-illustration>.found{color:var(--lime-ink);background:var(--lime);border-color:var(--lime)}.search-illustration small,.search-illustration span{opacity:.7;font-size:10px}.search-illustration strong{overflow-wrap:anywhere;font-size:12px}@media (max-width:1100px){.book-detail-hero,.books-hero{gap:30px}.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.books-principles{justify-content:flex-start}}@media (max-width:700px){.account-grid,.book-detail-hero,.book-inside,.books-hero{grid-template-columns:1fr}.account-card,.signin-card{padding:24px}.books-catalog-heading,.books-practice-callout,.guest-import{flex-direction:column;align-items:flex-start}.signin-card{margin-top:10px}.books-hero{gap:20px;padding-top:20px}.books-hero h1{font-size:45px}.featured-book{padding-block:35px 10px}.book-detail-hero{gap:35px;padding-block:30px}.book-detail-cover{max-width:100%}.books-search,.books-search input{width:100%}.books-grid{gap:20px 14px}.book-card-cover{padding:22px 10px 34px}.book-card-cover .book-cover{width:100%;max-width:214px}.book-card-info{padding:16px}.book-card-info h3{font-size:17px}.book-card-action{font-size:11px}.book-card-action svg{flex-shrink:0}.books-practice-callout{padding:24px}.book-inside{gap:20px;padding-block:35px}.search-illustration{grid-template-columns:1fr}.search-illustration>div{flex-direction:row;justify-content:space-between;align-items:center}.search-illustration strong{flex:1}.save-progress-prompt .text-button{margin-left:0}}@media (prefers-reduced-motion:reduce){.book-card,.featured-book .book-cover{transition:none}}.books-search:focus-within{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}.books-search input{padding:0 2px}.books-search input:focus-visible{outline:none}.plan-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--surface-raised);color:var(--muted);border-radius:10px;align-items:center;margin-right:8px;padding:2px 8px;font-size:9px;font-weight:600;display:inline-flex}.plan-badge.pro{background:var(--lime);color:var(--lime-ink)}.billing-status{flex-wrap:wrap;align-items:center;display:flex}.upgrade-pill{color:var(--lime);border-color:#dfff6a40}.billing-banner{color:var(--text);background:#dca87818;border-bottom:1px solid #dca87850;align-items:center;gap:10px;padding:10px 24px;font-size:11px;display:flex}.billing-banner svg{color:var(--orange);flex-shrink:0}.billing-banner .text-button{white-space:nowrap;margin-left:auto}.page-content.pricing-page{max-width:960px}.pricing-interval{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:4px;margin:8px 0 26px;padding:4px;display:inline-flex}.pricing-interval button{color:var(--muted);border-radius:6px;align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.pricing-interval button.selected{background:var(--surface-raised);color:var(--text)}.pricing-interval button span{background:var(--lime);color:var(--lime-ink);border-radius:10px;padding:1px 7px;font-size:9px}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:stretch;gap:18px;display:grid}.pricing-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:14px;padding:26px;display:flex}.pricing-card.featured{box-shadow:0 0 0 1px #dfff6a30,var(--shadow);border-color:#dfff6a60}.pricing-card h2{letter-spacing:-.04em;align-items:baseline;gap:8px;margin:0;font-size:34px;display:flex}.pricing-card h2 small{color:var(--muted);font-size:11px;font-weight:400}.pricing-card>p{color:var(--muted);margin:0;font-size:11px;line-height:1.7}.pricing-card ul{gap:9px;margin:4px 0 8px;padding:0;font-size:11px;list-style:none;display:grid}.pricing-card li{align-items:center;gap:8px;display:flex}.pricing-card li svg{color:var(--green);flex-shrink:0}.pricing-card .button{justify-content:center;margin-top:auto}.pricing-current{text-align:center;color:var(--subtle);margin-top:auto;padding:10px 0;font-size:11px}.pricing-faq{margin-top:40px}.pricing-faq h2{margin-bottom:14px;font-size:16px}.pricing-faq dt{margin-top:16px;font-size:12px;font-weight:550}.pricing-faq dd{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.7}.page-content.legal-page{max-width:720px}.legal-page section{margin-top:28px}.legal-page h2{margin:0 0 8px;font-size:15px}.legal-page p{color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.8}.legal-page a,.pricing-terms a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.legal-page>.text-button{margin-top:28px}.pricing-terms{margin-top:18px}.danger-link{color:var(--red);margin-top:6px}.danger-link:hover{color:var(--red);text-decoration:underline}.submission-feedback{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:12px;padding:12px 16px;animation:submission-enter .28s ease-out;display:flex;position:relative;overflow:hidden}.submission-symbol{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);background:var(--surface-raised);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.submission-copy{z-index:1;flex:1;min-width:0;position:relative}.submission-copy .section-kicker{letter-spacing:.12em;font-size:8px}.submission-copy h3{letter-spacing:-.045em;margin:3px 0 2px;font-size:15px;line-height:1.2}.submission-copy p{color:var(--muted);margin:0;font-size:10px;line-height:1.7}.submission-passed{background:linear-gradient(105deg,#b1d65016,#0000);border-bottom-color:#b1d65040}.submission-passed .submission-symbol{background:var(--lime);border-color:var(--lime);color:var(--lime-ink);animation:success-pop .4s cubic-bezier(.18,.8,.3,1.4);box-shadow:0 0 32px #b1d65020}.submission-passed .section-kicker{color:var(--green)}.submission-failed .submission-symbol{color:var(--orange);background:#dca8780a;border-color:#dca87840}.submission-failed .section-kicker{color:var(--orange)}.submission-revealing .submission-symbol,.submission-running .submission-symbol{color:var(--green)}.submission-progress{background:var(--line);border-radius:3px;width:160px;max-width:100%;height:3px;margin-top:8px;display:block;overflow:hidden}.submission-progress i{background:var(--green);width:35%;height:100%;animation:submission-sweep 1s ease-in-out infinite;display:block}.submission-actions{z-index:1;position:relative}.submission-actions .button{white-space:nowrap;font-size:10px}.submission-complete{color:var(--green);align-items:center;gap:7px;font-size:10px;display:flex}.success-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.success-particles i{left:calc(8% + var(--particle) * 10%);background:var(--green);opacity:0;width:4px;height:8px;animation:success-particle .85s ease-out forwards;animation-delay:calc(var(--particle) * 25ms);border-radius:1px;position:absolute;top:55%}.success-particles i:nth-child(3n){background:var(--orange)}.success-particles i:nth-child(3n+1){background:var(--purple);width:5px;height:5px}.room-presence{border-bottom:1px solid var(--line);background:var(--bg);gap:10px;padding:14px 20px;display:flex;overflow-x:auto}.presence-person{border:1px solid var(--line);background:var(--surface);border-radius:9px;flex:1;align-items:center;gap:9px;min-width:210px;max-width:300px;padding:11px 12px;display:flex}.presence-person>div{flex:1;min-width:0}.presence-person strong{font-size:10px;font-weight:550;display:block}.presence-person>div>span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:9px;display:block;overflow:hidden}.presence-time{color:var(--muted);flex-shrink:0;align-items:center;gap:5px;font-family:Consolas,monospace;font-size:10px;display:flex}.presence-time .status-dot{width:4px;height:4px}.presence-complete{border-color:#b1d65045}.presence-complete .presence-time,.room-celebration{color:var(--green)}.room-celebration{background:#b1d6500d;border-bottom:1px solid #b1d65030;align-items:center;gap:10px;padding:12px 20px;font-size:12px;animation:submission-enter .28s ease-out;display:flex}.room-celebration>span{flex:1}.room-activity-feed{padding:24px 16px;overflow-y:auto}.completion-event{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:20px 0;animation:submission-enter .3s ease-out;display:flex}.completion-event-icon{width:29px;height:29px;color:var(--green);background:#b1d65012;border:1px solid #b1d65030;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.completion-event strong{font-size:11px;font-weight:550}.completion-event p{color:var(--muted);margin:4px 0 9px;font-size:10px}.completion-event div>span{color:var(--green);align-items:center;gap:5px;font-size:10px;display:flex}.completion-event small{color:var(--subtle);font-size:8px}.activity-empty{text-align:center;color:var(--muted);padding:32px 8px}.activity-empty svg{color:var(--green)}.activity-empty h3{color:var(--text);margin:16px 0 8px;font-size:15px}.room-side .panel-tabs{gap:14px}.room-activity-feed>.form-note{margin-top:24px;line-height:1.8}@keyframes submission-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes success-pop{0%{transform:scale(.75)}60%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes submission-sweep{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes success-particle{0%{opacity:0;transform:translateY(15px)rotate(0)}20%{opacity:.8}to{opacity:0;transform:translateY(-70px)rotate(120deg)}}@media (max-width:1100px){.submission-feedback{flex-wrap:wrap;gap:12px;padding:20px}.submission-actions{margin-left:62px}}@media (max-width:700px){.submission-copy h3{font-size:19px}.room-presence{padding-inline:12px}.room-celebration{padding-inline:14px;font-size:11px}.submission-symbol{border-radius:13px;width:42px;height:42px}.submission-actions{margin-left:54px}}@media (prefers-reduced-motion:reduce){.completion-event,.room-celebration,.submission-feedback,.submission-progress i,.submission-symbol{animation:none!important}.success-particles{display:none}}.room-status-dot{margin-right:10px}.presence-avatar{border-radius:50%;display:inline-flex}.presence-avatar+.presence-avatar{margin-left:-7px}.presence-avatar .avatar{border:2px solid var(--surface)}.presence-avatar:nth-child(2n) .avatar{color:#483651;background:#c5addc}.presence-avatar:nth-child(3n) .avatar{color:#5b3b20;background:#ddb58d}.presence-avatar.done .avatar{box-shadow:0 0 0 2px var(--lime)}.presence-more{color:var(--muted);margin-left:4px;font-size:9px}.results-tab .submission-feedback{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;gap:10px;margin:0 19px;padding:12px 0 10px;animation:none}.results-tab .success-particles{display:none}.results-tab .submission-symbol{width:auto;height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;animation:none}.results-tab .submission-symbol svg{width:16px;height:16px}.results-tab .submission-passed .submission-symbol{color:var(--green)}.results-tab .submission-failed .submission-symbol{color:var(--orange)}.results-tab .submission-copy{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.results-tab .submission-copy .section-kicker{display:none}.results-tab .submission-copy h3{letter-spacing:-.02em;margin:0;font-size:12px}.results-tab .submission-passed .submission-copy h3{color:var(--green)}.results-tab .submission-failed .submission-copy h3{color:var(--orange)}.results-tab .submission-copy p{margin:0;font-size:10px;line-height:1.5}.results-tab .submission-progress{width:100%;margin-top:4px}.results-tab .submission-failed .submission-actions{display:none}.results-tab .submission-actions .button{min-height:28px;padding:4px 10px;font-size:10px}.results-tab .submission-complete{font-size:10px}.room-activity-feed{padding:16px}.room-activity-feed>.section-kicker{font-size:8px}.activity-empty{text-align:left;padding:14px 4px 6px}.activity-empty svg{width:18px;height:18px}.activity-empty h3{margin:8px 0 4px;font-size:13px}.activity-empty p{font-size:10px;line-height:1.6}.room-activity-feed>.form-note{margin-top:16px;font-size:9px}.sound-header-control{border:1px solid var(--line);border-radius:7px;flex-shrink:0;align-items:center;padding:1px;display:flex}.sound-header-control .sound-settings-trigger{width:20px}.sound-toggle[aria-pressed=true]{color:var(--text)}.sound-preference-row{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:18px 0;display:flex}.sound-preference-row strong{font-size:13px;display:block}.sound-preference-row span{color:var(--muted);margin-top:5px;font-size:11px;display:block}.sound-switch{border:1px solid var(--line);background:var(--surface-raised);border-radius:20px;flex-shrink:0;width:40px;height:24px;padding:3px}.sound-switch span{background:var(--muted);border-radius:50%;width:16px;height:16px;margin:0;transition:transform .15s}.sound-switch[aria-checked=true]{background:var(--lime);border-color:var(--lime)}.sound-switch[aria-checked=true] span{background:var(--lime-ink);transform:translate(16px)}.sound-volume-row{align-items:center;gap:14px;padding:16px 0 6px;font-size:12px;display:flex}.sound-volume-row output{text-align:right;min-width:36px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.sound-volume{height:24px;accent-color:var(--lime);cursor:pointer;flex:1;margin:0}.sound-previews{flex-wrap:wrap;align-items:center;gap:6px;padding:10px 0 4px;display:flex}.sound-previews>span{color:var(--subtle);margin-right:6px;font-size:10px}.sound-preview{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);border-radius:20px;align-items:center;gap:5px;padding:5px 10px;font-size:10px;transition:background .15s,border-color .15s;display:inline-flex}.sound-preview svg{color:var(--green)}.sound-preview:hover:not(:disabled){background:var(--surface-hover);border-color:var(--subtle)}.sound-preview:disabled{opacity:.4;cursor:default}.sound-footnote{color:var(--muted);margin:14px 0 0;font-size:10px;line-height:1.8}@media (max-width:700px){.topbar .topbar-actions{gap:6px}.sound-header-control .sound-toggle{width:26px}.sound-header-control .sound-settings-trigger{width:18px}.sound-previews{grid-template-columns:1fr}}.topbar .breadcrumb{min-width:0}.topbar .breadcrumb>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (prefers-reduced-motion:reduce){.sound-switch span{transition:none}}.page-content.learning-page{max-width:1200px;margin-inline:auto}.page-content.reading-page{max-width:920px;margin-inline:auto}.reading-header{max-width:800px;margin-bottom:40px}.reading-header h1{letter-spacing:-.045em;overflow-wrap:anywhere;margin:18px 0 22px;font-size:clamp(32px,4.8vw,56px);line-height:1.12}.reading-header h1 span{color:var(--green)}.reading-header>p{color:var(--muted);max-width:72ch;margin:14px 0;font-size:17px;line-height:1.85}.reading-header .form-note,.reading-header .reading-prerequisites{font-size:13px}.reading-breadcrumb{color:var(--muted);flex-wrap:wrap;gap:8px;margin-bottom:30px;font-size:12px;display:flex}.learning-callout a:not(.button),.reading-breadcrumb a,.reading-content a,.reading-page p a{color:var(--green);text-underline-offset:3px;text-decoration:underline}.reading-content{min-width:0;font-size:16px;line-height:1.9}.reading-content section{margin-block:42px;scroll-margin-top:30px}.reading-content h2{margin:0 0 20px;font-size:clamp(23px,3vw,30px);line-height:1.3}.reading-content h3{margin:30px 0 14px;font-size:20px}.reading-content p{color:var(--muted);margin:16px 0}.reading-content li{color:var(--muted);margin-bottom:10px;padding-left:4px}.reading-content pre{background:var(--surface);padding:22px;font-size:13px;line-height:1.8}.reading-content pre,.reading-table-wrap{border:1px solid var(--line);border-radius:12px;max-width:100%;margin-block:24px;overflow-x:auto}.reading-table-wrap table{border-collapse:collapse;text-align:left;width:100%;min-width:480px;font-size:13px;line-height:1.65}.reading-table-wrap td,.reading-table-wrap th{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 18px}.reading-table-wrap thead{background:var(--surface)}.reading-table-wrap td{color:var(--muted)}.reading-table-wrap tbody tr:last-child>*{border-bottom:0}.reading-content pre:focus-visible,.reading-table-wrap:focus-visible,details>summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}.learning-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;margin-block:30px;display:grid}.learning-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;min-width:0;padding:28px;text-decoration:none;display:flex}a.learning-card:hover{border-color:var(--green);background:var(--surface-hover)}.learning-card h2,.learning-card h3,.learning-card h4{margin:14px 0;font-size:22px;line-height:1.35}.learning-card h4{font-size:19px}.learning-card p{color:var(--muted);margin-bottom:22px;line-height:1.85}.learning-card-action{color:var(--green);margin-top:auto;font-size:13px}.learning-callout{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-block:36px;padding:30px}.learning-callout h2{margin:0 0 16px;font-size:25px;line-height:1.3}.learning-callout p{color:var(--muted);max-width:75ch;margin-block:14px;line-height:1.85}.learning-callout .section-kicker{margin-bottom:12px;display:block}.learning-callout .button{margin-top:8px}.problem-learning{max-width:1160px;margin:20px auto 30px;padding:40px}.learning-section-heading h2{margin:12px 0;font-size:clamp(25px,3vw,36px)}.learning-section-heading p{color:var(--muted);max-width:70ch;line-height:1.85}.explanation-disclosure{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:24px}.explanation-disclosure>summary{cursor:pointer;color:var(--green);padding:20px 24px;font-weight:550}.explanation-body{padding:0 28px 28px}.explanation-body>h3:first-child{margin-top:12px}.complexity-grid{flex-wrap:wrap;gap:18px 50px;margin:20px 0;display:flex}.complexity-grid dt{color:var(--muted);font-size:12px}.complexity-grid dd{margin:5px 0 0;font-family:Consolas,monospace;font-size:15px}.problem-learning>h3{margin-top:30px;font-size:21px}.related-practice{margin-top:18px}.reading-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-block:22px;display:flex}.workspace-preview{margin:36px 0}.workspace-preview img{border:1px solid var(--line);border-radius:12px;width:100%;height:auto;display:block}.sample-pages figcaption,.workspace-preview figcaption{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.8}.learning-steps h2{font-size:28px}.learning-steps ol{padding-left:24px}.learning-steps li{margin-block:22px;padding-left:10px}.learning-steps strong{font-size:18px}.learning-steps p{color:var(--muted);max-width:80ch;margin-top:8px;line-height:1.85}.room-guide-details{max-width:78ch;margin-block:40px}.room-questions>h2{font-size:28px}.room-questions details{border-bottom:1px solid var(--line);padding:20px 0}.room-questions summary{cursor:pointer;font-size:16px}.room-questions details p{color:var(--muted);max-width:80ch;margin:18px 18px 0;line-height:1.85}.room-questions a{color:var(--green);text-decoration:underline}.home-learning{border-top:1px solid var(--line);margin-top:55px;padding-top:40px}.lobby-page .footer-nav{flex-wrap:wrap}.home-learning-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:30px 0;padding:0;list-style:none;display:grid}.home-learning-steps li>span{color:var(--green);font-family:Consolas,monospace;font-size:12px}.home-learning-steps h3{margin:12px 0;font-size:20px}.home-learning-steps p{color:var(--muted);margin:0 0 14px;line-height:1.85}.home-learning-steps a{color:var(--green);text-underline-offset:3px;font-size:12px;text-decoration:underline}.book-sample-teaser{border-block:1px solid var(--line);grid-template-columns:1fr 280px;align-items:center;gap:40px;margin:25px 0 40px;padding:35px 0;display:grid}.book-sample-teaser h2{margin:16px 0;font-size:30px;line-height:1.3}.book-sample-teaser p{color:var(--muted);margin-block:16px;line-height:1.85}.book-sample-teaser img{max-width:100%;height:auto;box-shadow:var(--shadow);border-radius:8px;display:block}.book-sample-teaser .button{margin-top:10px}.sample-download{border-block:1px solid var(--line);margin:30px 0;padding:28px 0}.sample-download h2{margin:0 0 14px;font-size:25px}.sample-download p{color:var(--muted);margin-bottom:22px;line-height:1.85}.sample-download .text-button{margin:16px;display:inline-flex}.sample-pages figure{margin:30px 0 45px}.sample-pages img{border:1px solid var(--line);border-radius:6px;width:100%;height:auto;display:block}.contributors-page .contributor p{color:var(--muted);max-width:30ch;margin:10px 0 0;line-height:1.7}.contributors-page .contributor{flex-direction:column;align-items:flex-start;gap:4px}.contributors-page .contributor img{margin-bottom:10px}.contributors-page .contributor .section-kicker{letter-spacing:0;text-transform:none;color:var(--green);margin-top:0;font-size:12px;font-weight:500}.contributors-page .learning-callout a{overflow-wrap:anywhere}@media (max-width:760px){.reading-header{margin-bottom:28px}.reading-content,.reading-header>p{font-size:15px}.reading-content pre{padding:16px;font-size:12px}.reading-header h1{overflow-wrap:normal}.reading-breadcrumb{font-size:11px}.learning-callout,.learning-card{padding:22px}.problem-learning{margin-top:10px;padding:24px 18px}.explanation-disclosure>summary{padding:18px}.explanation-body{padding:0 18px 20px}.home-learning-steps{grid-template-columns:1fr;gap:24px}.book-sample-teaser{grid-template-columns:minmax(0,1fr);gap:25px}.book-sample-teaser>a{max-width:300px;margin-inline:auto}.sample-download .text-button{margin-left:0}.home-learning-links{grid-template-columns:minmax(0,1fr)}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{color-scheme:dark;--bg:#151715;--sidebar:#101210;--surface:#1c1f1b;--surface-raised:#22251f;--surface-hover:#292d25;--line:#30342c;--line-soft:#272b24;--text:#eeefe8;--muted:#92998c;--subtle:#838b7e;--lime:#dfff6a;--lime-ink:#172008;--green:#b6d480;--orange:#dca878;--purple:#b4a0d6;--red:#ee9c91;--red-ink:#2b100c;--lime-text:#dfff6a;--shadow:0 20px 90px #0005}:root[data-theme=light]{color-scheme:light;--bg:#f6f6ef;--sidebar:#eeefe6;--surface:#fffef8;--surface-raised:#eeefe5;--surface-hover:#e5e9d9;--line:#d6dacb;--line-soft:#e4e6da;--text:#24291d;--muted:#68705e;--subtle:#657057;--lime:#dfff6a;--lime-ink:#283b08;--green:#4a6b26;--orange:#975c2a;--purple:#7652a2;--red:#b4473e;--red-ink:#fff;--lime-text:#597127;--shadow:0 20px 90px #33401b18}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Geist,Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a,button{color:inherit}a{text-decoration:none}button,input,select,textarea{outline:none}:focus-visible{outline:2px solid var(--lime);outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}::selection{background:#c8e86845}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.035em;font-weight:580}svg{flex-shrink:0}button{background:0 0;border:0}.muted{color:var(--muted)}.small{font-size:12px}.mono,code,kbd{font-family:Consolas,SFMono-Regular,monospace}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;color:var(--lime-ink);background:var(--lime);border-radius:6px;padding:12px 20px;transition:top .15s;position:fixed;top:-100px;left:20px}.skip-link:focus{top:16px}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--line-soft);overscroll-behavior:contain;flex-direction:column;height:100dvh;padding:28px 18px 0;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar>*{flex-shrink:0}.brand{letter-spacing:-.8px;white-space:nowrap;align-items:center;gap:11px;margin:3px 6px 32px;font-size:19px;font-weight:700;display:flex}.brand>span{line-height:1.1}.brand-light{font-weight:420}.brand small{letter-spacing:1.2px;color:var(--muted);margin-top:8px;font-size:7.5px;font-weight:450;display:block}.sidebar-create{color:var(--lime);background:#dfff6a09;border:1px solid #dfff6a42;border-radius:6px;justify-content:center;align-items:center;gap:9px;margin-bottom:31px;padding:12px;font-size:12px;font-weight:550;transition:background .15s,border-color .15s,color .15s;display:flex}:root[data-theme=light] .sidebar-create{color:var(--lime-ink);background:var(--lime)}.sidebar-create:hover{background:#dfff6a19}.nav-label{letter-spacing:1.5px;color:var(--subtle);white-space:nowrap;margin-bottom:12px;padding:0 12px;font-size:9px;font-weight:550}.nav-item{width:100%;color:var(--muted);text-align:left;white-space:nowrap;border-radius:5px;align-items:center;gap:12px;margin-bottom:5px;padding:12px;font-size:12px;transition:color .15s,background .15s;display:flex}.nav-item svg{opacity:.8}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item.active{color:var(--lime);background:#dfff6a0f}:root[data-theme=light] .nav-item.active{color:var(--lime-ink);background:#cee47969}.nav-item small{color:var(--subtle);margin-left:auto;font-family:Consolas,monospace;font-size:10px}.sidebar-divider{background:var(--line-soft);height:1px;margin:22px 11px 25px}.tiny-dot{background:var(--green);border-radius:100%;width:5px;height:5px;margin-left:auto}.sidebar-note{color:var(--subtle);margin-top:auto;padding:50px 13px 35px}.sidebar-note>svg{color:var(--muted);margin-bottom:12px}.sidebar-note p{letter-spacing:-.4px;color:var(--muted);font-size:17px;line-height:1.55}.sidebar-note strong{color:var(--text);font-weight:450}.sidebar-note>span{margin-top:10px;font-size:10px;display:block}.sidebar-bottom{border-top:1px solid var(--line-soft);margin:0 -18px;padding:17px 16px}.profile-button{text-align:left;align-items:center;gap:10px;width:100%;display:flex}.profile-button>span:not(.avatar){flex:1}.profile-button strong{font-size:11px;font-weight:550;display:block}.profile-button small{color:var(--subtle);white-space:nowrap;margin-top:4px;font-size:9px;display:block}.profile-button small i{background:var(--green);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin-right:3px;display:inline-block}.profile-button>svg{color:var(--muted)}.avatar{color:#27351b;background:#c5d993;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:33px;height:33px;font-size:13px;font-weight:600;display:inline-flex}.avatar-small{width:25px;height:25px;font-size:10px}.avatar-stack{align-items:center;display:flex}.avatar-stack .avatar+.avatar{border:2px solid var(--surface);margin-left:-7px}.avatar-stack .avatar:nth-child(2n){color:#483651;background:#c5addc}.avatar-stack .avatar:nth-child(3n){color:#5b3b20;background:#ddb58d}.avatar-stack>span:last-child:not(.avatar){text-transform:capitalize;color:var(--muted);margin-left:9px;font-size:10px}.main-frame{min-width:0}.topbar{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:18px;height:70px;padding:0 34px}.breadcrumb,.topbar{align-items:center;display:flex}.breadcrumb{white-space:nowrap;gap:16px;font-size:11px}.breadcrumb-brand{color:var(--subtle)}.breadcrumb-slash{color:var(--line)}.breadcrumb strong{color:var(--muted);font-weight:450}.topbar-actions{align-items:center;gap:20px;display:flex}.search-trigger{color:var(--subtle);align-items:center;gap:9px;font-size:10px;transition:color .15s;display:flex}.search-trigger:hover{color:var(--text)}kbd{border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:1px 5px;font-size:9px;font-weight:400}.search-trigger kbd{margin-left:17px}.preview-badge{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:5px 9px;font-size:10px;display:flex}.preview-badge i,.status-dot{background:var(--green);border-radius:100%;flex-shrink:0;width:5px;height:5px;transition:background .2s;display:inline-block}.status-dot.pulsing{background:var(--orange);animation:dot-pulse 1.2s ease-in-out infinite}@keyframes dot-pulse{50%{opacity:.35}}.icon-button{width:30px;height:30px;color:var(--muted);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-button:hover{background:var(--surface-hover);color:var(--text)}.mobile-menu,.nav-backdrop{display:none}.page-content{max-width:1560px;margin:auto;padding:39px 37px 0}.page-eyebrow{color:var(--muted);letter-spacing:1.8px;align-items:center;gap:8px;font-size:9px;font-weight:450;display:flex}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:20px;min-height:310px;padding:24px 0 25px;display:grid}.hero h1{letter-spacing:-2.5px;font-size:clamp(36px,3.5vw,56px);font-weight:560;line-height:1.12}.hero h1>span{color:var(--lime)}:root[data-theme=light] .hero h1>span{color:#597127}.hero-copy>p{color:var(--muted);margin-top:20px;font-size:12px;line-height:1.85}.hero-actions{margin-top:24px;display:flex}.button,.hero-actions{align-items:center;gap:13px}.button{white-space:nowrap;border:1px solid #0000;border-radius:5px;justify-content:center;min-height:39px;padding:10px 17px;font-size:11px;font-weight:580;transition:background .15s,color .15s,border-color .15s,opacity .15s,transform .15s;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button-primary{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}.button-primary:hover:not(:disabled){background:#ecff9a;border-color:#ecff9a}.button-quiet{color:var(--text);padding-left:7px;font-weight:450}.button-quiet:hover{color:var(--lime-text)}.button-secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.button-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--muted)}.button-small{gap:7px;min-height:32px;padding:6px 12px;font-size:10px}.full-width{width:100%}.hero-footnote{color:var(--subtle);align-items:center;gap:7px;margin-top:20px;font-size:9px;display:flex}.hero-art{isolation:isolate;padding:33px 8px 45px 30px;position:relative;overflow:clip}.orbit{z-index:-1;border:1px solid #dfff6a15;border-radius:100%;width:280px;height:280px;position:absolute;top:-5px;left:70px}.orbit-two{opacity:.6;border-style:dashed;width:340px;height:340px;top:-34px;left:41px}.floating-label{color:var(--muted);align-items:center;gap:7px;font-size:9px;display:flex;position:absolute;top:4px;right:22px}.illustration-window{background:var(--surface);border:1px solid #48533a;border-radius:9px;overflow:hidden;transform:rotate(-2deg);box-shadow:0 14px 35px #0002}.window-chrome{border-bottom:1px solid var(--line);color:var(--subtle);justify-content:space-between;align-items:center;padding:11px 13px;font-family:Consolas,monospace;font-size:8px;display:flex}.window-dots{gap:4px;display:flex}.window-dots i{background:#536047;border-radius:100%;width:5px;height:5px}.window-dots i:nth-child(2){background:#7e8f63}.window-dots i:nth-child(3){background:#bdd687}.illustration-code{white-space:pre;color:var(--muted);padding:19px 13px 21px;font-family:Consolas,monospace;font-size:clamp(8px,.82vw,12px);line-height:2}.illustration-code>div{gap:17px;display:flex}.illustration-code b{color:var(--subtle);font-size:8px;font-weight:400}.syntax-muted{color:var(--subtle)}.illustration-code em{color:var(--purple);font-style:normal}.illustration-code strong{color:var(--green);font-weight:400}.illustration-code i{color:var(--orange);font-style:normal}.illustration-bottom{border-top:1px solid var(--line);color:var(--subtle);justify-content:space-between;align-items:center;padding:8px 13px;font-size:8px;display:flex}.illustration-bottom>span:first-child{color:var(--green);align-items:center;gap:6px;display:flex}.floating-comment{border:1px solid var(--line);background:var(--surface-raised);gap:11px;padding:13px 15px;position:absolute;bottom:10px;left:5px;right:25px;transform:rotate(1deg);box-shadow:0 8px 25px #0002}.comment-icon,.floating-comment{border-radius:7px;align-items:center;display:flex}.comment-icon{width:29px;height:29px;color:var(--green);background:#dfff6a16;justify-content:center}.floating-comment strong{font-size:10px;font-weight:450;display:block}.floating-comment div>span{color:var(--subtle);margin-top:2px;font-size:8px;display:block}.comment-spark{color:var(--lime-text);margin-left:auto;font-size:25px}.workspace-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:25px;margin-top:9px;padding:15px 0;font-size:9px;display:flex}.workspace-stats>span{align-items:center;gap:6px;display:flex}.workspace-stats svg{color:var(--subtle);margin-right:3px}.workspace-stats strong{color:var(--text);font-weight:500}.workspace-stats .stats-right{color:var(--subtle);margin-left:auto;font-size:8px}.lobby-columns{grid-template-columns:minmax(0,1fr) 255px;gap:30px;margin-top:32px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;display:flex}.section-kicker{letter-spacing:1.4px;color:var(--subtle);align-items:center;gap:7px;font-size:8px;font-weight:550;display:flex}.section-heading h2{margin-top:5px;font-size:24px}.section-heading h3{letter-spacing:-.2px;font-size:13px;font-weight:500}.text-button{color:var(--muted);align-items:center;gap:6px;padding:3px 0;font-size:10px;transition:color .15s;display:inline-flex}.text-button:hover{color:var(--text)}.section-tabs{border-bottom:1px solid var(--line);gap:23px;display:flex}.section-tabs button{color:var(--subtle);align-items:center;gap:8px;padding:0 0 12px;font-size:10px;transition:color .15s;display:flex;position:relative}.section-tabs button.selected{color:var(--text)}.section-tabs button.selected:after{content:"";background:var(--lime);height:2px;position:absolute;bottom:-1px;left:0;right:0}.section-tabs button>span{background:var(--surface-raised);color:var(--muted);border-radius:3px;padding:1px 5px;font-size:8px}.room-empty{border:1px dashed var(--line);border-radius:7px;gap:17px;margin:18px 0 26px;padding:23px 17px}.empty-room-icon,.room-empty{align-items:center;display:flex}.empty-room-icon{background:var(--surface-raised);width:43px;height:43px;color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center}.room-empty h3{letter-spacing:-.15px;font-size:12px;font-weight:450}.room-empty p{color:var(--subtle);margin-top:5px;font-size:10px}.room-empty>.icon-button{margin-left:auto}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 26px;display:grid}.room-card{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:18px;transition:border .15s;display:block}.room-card:hover{border-color:#a8c45b}.room-card-top{justify-content:space-between;margin-bottom:15px}.room-card-top,.room-symbol{align-items:center;display:flex}.room-symbol{width:40px;height:40px;color:var(--green);background:#9fb96215;border-radius:10px;justify-content:center}.symbol-orange{color:var(--orange);background:#d4a26c15}.room-visibility{color:var(--subtle);align-items:center;gap:5px;font-size:9px;display:flex}.room-card h3{letter-spacing:-.5px;font-size:17px}.room-card p{color:var(--muted);margin-top:6px;font-size:10px}.room-card-bottom{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.room-card-bottom>svg{color:var(--subtle)}.compact{margin-bottom:14px}.compact .small{font-size:9px}.template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.template-card{border:1px solid var(--line);text-align:left;background:var(--surface);border-radius:7px;padding:0;transition:transform .15s,border .15s;display:block;overflow:hidden}.template-card:hover{border-color:var(--subtle);transform:translateY(-3px)}.template-art{border-bottom:1px solid var(--line-soft);justify-content:center;align-items:center;height:89px;display:flex;position:relative;overflow:hidden}.template-art:before{content:"";opacity:.2;border:1px solid;border-radius:100%;width:66px;height:66px;position:absolute}.template-art:after{content:"";opacity:.12;border:1px dashed;border-radius:100%;width:110px;height:110px;position:absolute}.template-art>svg{transform:rotate(-12deg)}.art-green{color:var(--green);background:#9cae5c0b}.art-orange{color:var(--orange);background:#c99a6410}.art-purple{color:var(--purple);background:#9473b510}.art-plus{opacity:.5;font-size:18px;position:absolute;top:15px;right:20%}.art-dot{opacity:.4;background:currentColor;border-radius:50%;width:4px;height:4px;position:absolute}.dot-a{top:24px;left:22%}.dot-b{width:3px;height:3px;bottom:19px;right:24%}.template-copy{padding:16px 13px 14px}.template-label{letter-spacing:.8px;color:var(--subtle);margin-bottom:9px;font-size:6.5px;font-weight:550;display:block}.template-copy h3{letter-spacing:-.4px;justify-content:space-between;align-items:center;font-size:14px;display:flex}.template-copy h3>svg{color:var(--subtle);width:13px}.template-copy p{color:var(--muted);margin-top:8px;font-size:9px;line-height:1.7}.template-meta{color:var(--subtle);gap:8px;margin-top:15px;display:flex}.difficulty,.template-meta{align-items:center;font-size:8px}.difficulty{white-space:nowrap;border-radius:3px;justify-content:center;padding:2px 7px;font-weight:500;line-height:1.6;display:inline-flex}.difficulty.easy{color:var(--green);background:#b4cd7c12}.difficulty.medium{color:var(--orange);background:#d4a26c12}.difficulty.hard{color:var(--purple);background:#ac91d112}.community-strip{border-top:1px solid var(--line);align-items:center;gap:15px;margin-top:28px;padding:22px 0;display:flex}.community-strip-icon{width:42px;height:42px;color:var(--muted);border:1px solid var(--line);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.community-strip strong{font-size:11px;font-weight:450}.community-strip p{color:var(--subtle);margin-top:4px;font-size:9px}.strip-asterisk{color:var(--muted);opacity:.6;margin-left:auto;font-size:30px}.lobby-right{border-left:1px solid var(--line);padding-left:25px}.warmup-card{padding:18px 0 23px}.warmup-card .section-kicker{color:var(--green);letter-spacing:1.2px}.warmup-card h3{letter-spacing:-.6px;margin-top:15px;font-size:20px;line-height:1.3}.warmup-card p{color:var(--muted);margin-top:11px;font-size:10px;line-height:1.8}.number-puzzle{align-items:center;gap:7px;margin:23px 0 18px;font-family:Consolas,monospace;display:flex}.number-puzzle span{border:1px solid var(--line);background:var(--surface);width:30px;height:34px;color:var(--muted);border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex}.number-puzzle .puzzle-selected{color:var(--green);background:#dfff6a08;border-color:#dfff6a6b}.number-puzzle b{color:var(--subtle);font-size:10px;font-weight:400}.warmup-meta{color:var(--subtle);align-items:center;gap:8px;margin-bottom:19px;font-size:8px;display:flex}.how-card{border-top:1px solid var(--line);padding:24px 0 0}.how-card>h3{letter-spacing:-.2px;margin-bottom:23px;font-size:13px;font-weight:450;line-height:1.5}.how-step{align-items:flex-start;gap:11px;margin-bottom:22px;display:flex}.how-step>span{width:21px;height:21px;color:var(--subtle);border:1px solid var(--line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Consolas,monospace;font-size:9px;display:flex}.how-step strong{font-size:10px;font-weight:450}.how-step p{color:var(--subtle);margin-top:4px;font-size:9px;line-height:1.65}.contributors-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;max-width:640px;margin:32px 0;padding:0;list-style:none;display:grid}.contributor{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:16px;padding:20px;display:flex}.contributor h2{font-size:17px;font-weight:500}.contributor img{object-fit:cover;border:1px solid var(--line);border-radius:50%;flex-shrink:0}.sidebar-footnote{color:var(--muted);padding-top:10px;font-size:9px;line-height:1.9}.peer-sharing-panel{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:24px;padding:16px}.peer-sharing-panel strong{font-size:13px}.peer-sharing-panel p{color:var(--muted);margin:10px 0;font-size:12px;line-height:1.6}.sidebar-footnote .status-dot{width:4px;height:4px;margin-right:5px}.sidebar-footnote>span:last-child{color:var(--subtle);padding-left:10px}.page-footer{border-top:1px solid var(--line-soft);color:var(--subtle);justify-content:space-between;align-items:center;gap:24px;margin-top:18px;padding:22px 0;font-size:8px;display:flex}.footer-brand{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.footer-wordmark{letter-spacing:1px;color:var(--text);font-size:7px}.footer-tagline:before{content:"·";margin-right:10px}.footer-nav{flex-shrink:0;align-items:center;gap:16px;display:flex}.footer-nav .footer-link{letter-spacing:0;font-size:9px;transition:color .15s}.footer-nav .footer-icon{color:var(--subtle);transition:color .15s;display:inline-flex}.footer-nav .footer-icon:hover,.footer-nav .footer-link:hover,.modal{color:var(--text)}.modal{width:min(470px,100% - 32px);max-height:calc(100dvh - 60px);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin:auto;padding:25px;position:fixed;inset:0;overflow-y:auto}.modal-wide{width:min(565px,100% - 32px)}.modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#080b08b3}.modal[open]{animation:modal-in .18s ease-out}.modal[open]::backdrop{animation:fade-in .18s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes fade-in{0%{opacity:0}}.modal-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.modal-heading h2{font-size:23px;line-height:1.25}.modal-intro{margin-top:-5px;margin-bottom:22px;font-size:12px}.modal>p:not(.modal-intro){color:var(--muted);margin:15px 0;font-size:12px;line-height:1.8}.field-label{margin:20px 0 9px;font-size:11px;font-weight:500;display:block}.checkbox-label{cursor:pointer;align-items:center;gap:8px;width:fit-content;display:flex}.checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--lime);cursor:pointer;flex-shrink:0;margin:0}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed}.select-input,.text-input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:5px;width:100%;padding:11px 12px;font-size:12px;transition:border-color .15s,box-shadow .15s}.text-input::placeholder{color:var(--subtle)}.review-select,.select-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2392998c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:36px}.review-select{background-position:right 9px center;padding-right:28px}:root[data-theme=light] .review-select,:root[data-theme=light] .select-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2368705e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}.mode-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-option{border:1px solid var(--line);text-align:left;border-radius:6px;flex-direction:column;gap:5px;padding:16px;transition:border-color .15s,background .15s;display:flex;position:relative}.mode-option>svg{color:var(--muted);margin-bottom:5px;transition:color .15s}.mode-option.selected{background:#dfff6a06;border-color:#b7d46b}.mode-option.selected>svg{color:var(--green)}.mode-option strong{font-size:12px;font-weight:500}.mode-option small{color:var(--subtle);font-size:10px}.radio-mark{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;transition:background .15s,border-color .15s,color .15s;display:flex;position:absolute;top:12px;right:12px}.mode-option.selected .radio-mark{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}.duration-field{justify-content:space-between;align-items:center;display:flex}.duration-field select{width:150px;padding:7px 10px}.field-label-row{justify-content:space-between;align-items:center;display:flex}.field-label-row>span{color:var(--subtle);font-size:10px;font-weight:400}.problem-picker{border:1px solid var(--line);border-radius:6px;overflow:hidden}.problem-picker label{cursor:pointer;align-items:center;gap:10px;padding:10px 13px;font-size:11px;transition:background .15s;display:flex}.problem-picker label:hover{background:var(--surface-hover)}.problem-picker label+label{border-top:1px solid var(--line-soft)}.problem-picker input{accent-color:var(--lime);width:14px;height:14px}.problem-picker .difficulty{margin-left:auto}.form-note{color:var(--subtle);align-items:center;gap:7px;margin-top:15px;font-size:10px;line-height:1.7;display:flex}.form-error{color:var(--red);margin-top:10px;font-size:11px}.modal-submit{margin-top:20px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.modal-actions .delete-confirm{background:var(--red);border-color:var(--red);color:var(--red-ink)}.about-mark{background:var(--sidebar);border-radius:10px;justify-content:center;margin:20px 0;padding:25px;display:flex}.search-field{border:1px solid var(--line);background:var(--bg);color:var(--subtle);border-radius:6px;align-items:center;gap:9px;padding:0 12px;display:flex}.search-field input{width:100%;min-width:0;height:42px;color:var(--text);background:0 0;border:0;outline:none;font-size:12px}.search-field:focus-within{border-color:var(--green)}.search-results{margin-top:14px}.search-results>a{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:13px 6px;transition:background .15s;display:flex}.search-results>a:hover{background:var(--surface-hover)}.search-results>a>svg{color:var(--subtle)}.search-results>a>span:not(.difficulty){flex:1;font-size:12px}.search-results small{color:var(--subtle);margin-top:3px;font-size:10px;display:block}.empty-message{text-align:center;color:var(--muted);padding:25px 0;font-size:12px}.toast{z-index:100;opacity:0;pointer-events:none;border:1px solid var(--line);background:var(--surface-raised);max-width:calc(100% - 32px);box-shadow:var(--shadow);color:var(--text);border-radius:7px;align-items:center;gap:10px;padding:14px 20px;font-size:12px;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px)}.toast.visible{opacity:1;transform:translate(-50%)}.toast>svg{color:var(--green)}.page-title-row{justify-content:space-between;align-items:center;gap:20px;margin:20px 0 32px;display:flex}.page-title-row h1,.progress-page>h1{letter-spacing:-1.6px;font-size:42px;line-height:1.2}.page-title-row h1>span,.progress-page>h1>span{color:var(--green)}.page-description{color:var(--muted);margin-top:13px;font-size:12px}.problem-summary{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:35px;margin-bottom:30px;padding:23px;display:flex}.problem-summary>div{align-items:center;gap:15px;display:flex}.summary-icon{width:45px;height:45px;color:var(--green);border:1px solid var(--line);background:#b4cd7c0a;border-radius:10px;justify-content:center;align-items:center;display:flex}.problem-summary strong{font-size:23px;font-weight:500;line-height:1.2;display:block}.problem-summary small{color:var(--subtle);margin-top:5px;font-size:10px;display:block}.problem-summary .summary-explanation{color:var(--muted);gap:13px;margin-left:auto;font-size:10px}.summary-explanation strong{color:var(--text);margin-top:4px;font-size:10px;font-weight:400}.problem-toolbar{gap:10px;margin-bottom:20px;display:flex}.problem-toolbar .search-field{flex:1}.problem-toolbar>.select-input{width:auto;max-width:170px;font-size:11px}.problem-table-wrap{border:1px solid var(--line);border-radius:7px;overflow:hidden}.problem-table{border-collapse:collapse;text-align:left;width:100%}.problem-table th{text-transform:uppercase;letter-spacing:1px;color:var(--subtle);background:var(--surface);border-bottom:1px solid var(--line);padding:13px;font-size:9px;font-weight:450}.problem-table td{border-bottom:1px solid var(--line-soft);padding:19px 13px;font-size:12px}.problem-table tbody>tr:last-child td{border-bottom:0}.problem-table tbody>tr{transition:background .15s}.problem-table tbody>tr:hover{background:var(--surface)}.problem-status-cell{width:43px}.problem-table td:first-child{padding-right:0}.unattempted-dot{border:1px solid var(--line);border-radius:50%;width:13px;height:13px;margin-left:3px;display:inline-block}.passed-icon{width:21px;height:21px;color:var(--green);background:#b4cd7c15;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.problem-table strong{font-weight:500}.problem-index{color:var(--subtle);margin-right:15px;font-family:Consolas,monospace;font-size:10px}.topic-tags{flex-wrap:wrap;gap:7px;display:flex}.topic-tags button{color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:3px 7px;font-size:9px;transition:border-color .15s,color .15s}.topic-tags button:hover{border-color:var(--muted)}.table-mobile-topics{display:none}.table-footnote{color:var(--subtle);justify-content:space-between;gap:15px;padding:13px 0;font-size:9px}.table-empty,.table-footnote{align-items:center;display:flex}.table-empty{color:var(--muted);flex-direction:column;gap:10px;padding:50px 15px}.table-empty h3{color:var(--text);font-size:20px}.table-empty p{font-size:12px}.bottom-invitation{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:35px;padding:30px 0;display:flex}.bottom-invitation h2{margin:9px 0;font-size:24px}.bottom-invitation p{color:var(--muted);font-size:11px}.progress-page>h1{margin-top:20px}.progress-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:35px 0 40px;display:grid}.progress-cards>div{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:24px}.progress-cards>div>svg{color:var(--green);margin-bottom:22px}.progress-cards strong{letter-spacing:-1px;font-size:37px;font-weight:500;display:block}.progress-cards strong>small{color:var(--subtle);font-size:17px}.progress-cards span{color:var(--muted);font-size:11px}.progress-cards p{color:var(--subtle);margin-top:19px;font-size:10px}.progress-bar{background:var(--line);border-radius:5px;height:3px;margin-top:24px}.progress-bar>i{background:var(--lime);border-radius:5px;height:100%;display:block}.progress-empty{border:1px dashed var(--line);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:22px 24px;display:flex}.progress-empty p{margin:0}.progress-empty-art{border:1px solid var(--line);color:var(--green);border-radius:50%;justify-content:center;align-items:center;width:85px;height:85px;margin:0 auto 24px;display:flex}.progress-empty h2{font-size:25px}.progress-empty p{color:var(--muted);font-size:12px;line-height:1.8}.progress-list{border:1px solid var(--line);border-radius:7px;overflow:hidden}.progress-list>a{align-items:center;gap:17px;padding:20px;transition:background .15s;display:flex}.progress-list>a+a{border-top:1px solid var(--line)}.progress-list>a:hover{background:var(--surface)}.progress-list>a>span:nth-child(2){flex:1}.progress-list strong{font-size:12px;font-weight:500}.progress-list small{color:var(--subtle);margin-top:5px;font-size:10px;display:block}.is-workspace{grid-template-columns:72px minmax(0,1fr)}.is-workspace .sidebar{align-items:center;padding:24px 12px 0}.is-workspace .brand{margin:0 0 28px}.is-workspace .brand>span,.is-workspace .nav-item>small,.is-workspace .nav-item>span,.is-workspace .nav-label,.is-workspace .profile-button>span:not(.avatar),.is-workspace .profile-button>svg,.is-workspace .sidebar-create>span,.is-workspace .sidebar-note{display:none}.is-workspace .sidebar-create{width:38px;height:38px;margin-bottom:22px;padding:0}.is-workspace nav{width:100%}.is-workspace .nav-item{justify-content:center;padding:13px 0}.is-workspace .sidebar-divider{width:25px;margin:18px 0}.is-workspace .sidebar-bottom{align-self:stretch;width:auto;margin:auto -12px 0;padding:19px 0}.is-workspace .profile-button{justify-content:center}.is-workspace .topbar{height:56px;padding:0 23px}.workspace-heading{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:13px 20px;display:flex}.workspace-heading>div{align-items:center;gap:13px;display:flex}.workspace-heading strong{font-size:13px;font-weight:550}.workspace-heading .muted,.workspace-heading>.muted{font-size:10px}.workspace-heading-divider{background:var(--line);width:1px;height:18px}.solo-workspace .workbench{min-height:calc(100dvh - 122px)}.workbench{min-width:0;height:var(--workbench-height,70dvh);flex-direction:column;min-height:480px;display:flex}.dock{position:relative}.dock,.dock-split{flex:1;min-width:0;min-height:0;display:flex}.dock-row{flex-direction:row}.dock-column{flex-direction:column}.dock-cell{display:flex}.dock-cell,.dock-cell>*{min-width:0;min-height:0}.dock-cell>*{flex:1}.dock-row>.dock-cell+.dock-cell,.dock-row>.split-handle+.dock-cell{border-left:1px solid var(--line)}.dock-column>.dock-cell+.dock-cell,.dock-column>.split-handle+.dock-cell{border-top:1px solid var(--line)}.dock-panel{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.dock-strip{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;min-height:43px;padding:0 6px 0 10px;display:flex}.dock-tabs{scrollbar-width:none;flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}.dock-tabs::-webkit-scrollbar{display:none}.dock-tab{height:43px;color:var(--subtle);white-space:nowrap;cursor:grab;touch-action:none;border-radius:0;align-items:center;gap:7px;padding:0 11px;font-size:10px;display:flex;position:relative}.dock-tab.selected,.dock-tab:hover{color:var(--text)}.dock-tab.selected:after{content:"";background:var(--lime);height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.dock-tab.dragging-source{opacity:.35}.dock-tab>span:not(.dock-tab-label){background:var(--surface-raised);color:var(--muted);border-radius:10px;padding:1px 6px;font-size:9px}.dock-tab>.result-count{background:0 0}.dock-compact .dock-tab{cursor:pointer}.dock-menu-anchor{flex:none;margin-left:4px;position:relative}.dock-menu-button{width:28px;height:28px;color:var(--subtle)}.dock-menu-button:hover,.dock-menu-button[aria-expanded=true]{color:var(--text)}.dock-menu{z-index:30;background:var(--surface-raised);border:1px solid var(--line);min-width:240px;box-shadow:var(--shadow);border-radius:9px;padding:6px;position:absolute;top:34px;right:0}.dock-menu-title{letter-spacing:1px;text-transform:uppercase;color:var(--subtle);padding:6px 10px 8px;font-size:9px}.dock-menu [role=menuitem]{text-align:left;width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:11px;display:block}.dock-menu [role=menuitem]:focus-visible,.dock-menu [role=menuitem]:hover{background:var(--surface-hover);outline:none}.dock-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.dock-body>.statement-content{flex:none}.dock-ghost{z-index:60;color:var(--text);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:7px;align-items:center;gap:7px;padding:7px 11px;font-size:10px;display:flex}.dock-drop-indicator,.dock-ghost{pointer-events:none;position:fixed}.dock-drop-indicator{z-index:55;border:2px solid var(--lime);background:#dfff6a22;border-radius:5px;transition:left 70ms,top 70ms,width 70ms,height 70ms}.dock-drop-indicator.line{background:var(--lime);border:0;border-radius:2px}body.is-docking,body.is-docking *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}body.is-docking iframe,body.is-docking textarea{pointer-events:none}.code-tab,.room-panel-fill{flex-direction:column;flex:1;min-height:0;display:flex}.results-tab{flex-direction:column;flex:none;display:flex}.results-tab>*{flex:none}.code-tab .code-editor{flex:1;height:auto;min-height:120px;max-height:none}.code-tab .editor-footer,.code-tab .editor-toolbar,.code-tab .sync-message{flex:none}.editor-footer{border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:6px 10px 6px 16px;display:flex}.editor-save-state{min-width:0;color:var(--subtle);white-space:nowrap;text-overflow:ellipsis;flex:160px;align-items:center;gap:6px;font-size:8px;display:flex;overflow:hidden}.editor-footer .run-button{min-height:32px;padding:6px 11px}.room-panel-fill .room-chat{flex:1;min-height:0;overflow:auto}.room-panel-fill .people-panel,.room-panel-fill .room-activity-feed{overflow:auto}.room-workspace-layout.docked{grid-template-columns:minmax(0,1fr)}.statement-panel{background:var(--bg);border-right:1px solid var(--line);min-width:0}.panel-tabs{border-bottom:1px solid var(--line);gap:20px;min-height:43px;padding:0 18px}.panel-tabs,.panel-tabs>button{align-items:center;display:flex}.panel-tabs>button{height:43px;color:var(--subtle);white-space:nowrap;justify-content:center;gap:7px;padding:0;font-size:10px;transition:color .15s;position:relative}.panel-tabs>button.selected{color:var(--text)}.panel-tabs>button.selected:after{content:"";background:var(--lime);height:2px;position:absolute;bottom:-1px;left:0;right:0}.statement-content{padding:28px 25px 20px}.statement-heading h1{letter-spacing:-1px;margin:10px 0 14px;font-size:27px;line-height:1.3}.statement-heading>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.statement-topic{color:var(--subtle);font-size:9px}.statement-heading .section-kicker{letter-spacing:1.2px;font-size:7px}.problem-description{color:var(--muted);margin-top:28px;font-size:12px;line-height:1.95}.statement-rule{background:var(--line-soft);height:1px;margin:24px 0}.example-block{margin-bottom:25px}.constraints-title,.example-block h3{letter-spacing:0;margin-bottom:12px;font-size:12px;font-weight:500}.example-data{background:var(--surface);border-left:2px solid var(--line);border-radius:0 5px 5px 0;padding:13px}.example-data>span{letter-spacing:1.2px;color:var(--subtle);margin-bottom:7px;font-size:7px;display:block}.example-data>code{color:var(--text);word-break:break-word;white-space:pre-wrap;font-size:11px;display:block}.example-data>code+span{margin-top:13px}.example-block>p{color:var(--subtle);margin-top:12px;font-size:10px;line-height:1.8}.constraints{color:var(--muted);margin:0;padding-left:17px;font-size:10px;line-height:1.9;list-style:outside}.statement-footer{color:var(--subtle);border-top:1px solid var(--line-soft);align-items:center;gap:7px;margin-top:38px;padding-top:20px;font-size:9px;display:flex}.hint-card{border:1px solid var(--line);background:var(--surface);border-radius:7px;margin-top:28px;padding:22px}.hint-card>svg{color:var(--green);margin-bottom:17px}.hint-card>h3{font-size:17px}.hint-card>p{color:var(--muted);margin:15px 0 20px;font-size:12px;line-height:1.9}.hint-card>span{color:var(--subtle);font-size:10px}.editor-panel{background:var(--sidebar);flex-direction:column;min-width:0;display:flex}.editor-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;height:44px;padding:0 14px 0 19px;display:flex}.editor-toolbar>span{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.editor-toolbar>div{align-items:center;gap:9px;display:flex}.language-label{color:var(--muted);align-items:center;gap:7px;font-size:9px;display:flex}.editor-size-control select{color:var(--subtle);background:0 0;border:0;width:47px;font-size:9px}.code-editor{min-height:160px;height:var(--editor-height,clamp(270px,37dvh,470px));flex:none;max-height:calc(100% - 330px);font-family:Consolas,SFMono-Regular,monospace;line-height:24px;display:flex;position:relative;overflow:hidden}.line-gutter{text-align:right;width:50px;color:var(--subtle);-webkit-user-select:none;user-select:none;flex-shrink:0;padding-top:20px;padding-right:17px;font-size:10px;overflow:hidden}.line-gutter span{height:24px;display:block}.editor-input-area{flex:1;min-width:0;position:relative;overflow:hidden}.code-highlight,.code-input{width:100%;height:100%;font:inherit;white-space:pre;tab-size:2;letter-spacing:0;border:0;border-radius:0;margin:0;padding:20px 20px 20px 0;line-height:24px;position:absolute;top:0;left:0}.code-highlight{pointer-events:none;width:max-content;min-width:100%;color:var(--text)}.code-input{color:#0000;caret-color:var(--text);resize:none;-webkit-text-fill-color:transparent;background:0 0;outline:none;overflow:auto}.code-input:focus-visible{outline:none}.code-editor:has(.code-input:focus-visible){box-shadow:inset 0 0 0 2px var(--lime)}.code-input::selection{background:#b4cd7c35}.code-comment{color:var(--subtle)}.code-string{color:var(--green)}.code-keyword{color:var(--purple)}.code-value{color:var(--orange)}.editor-status{height:30px;color:var(--subtle);border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:15px;padding:0 16px;font-size:8px;display:flex}.editor-status>span:first-child{align-items:center;gap:5px;display:flex}.editor-status b{margin-left:10px;font-weight:400}.execution-toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.execution-toolbar>div{color:var(--subtle);align-items:center;gap:7px;font-size:9px;display:flex}.run-button{gap:8px;min-height:34px;padding:8px 12px;font-size:10px}.run-button kbd{color:var(--lime-ink);border-color:#17200826;font-size:8px}.results-panel{background:var(--bg);flex:1;min-height:0;overflow:auto}.results-content{padding:17px 19px}.sample-tabs{gap:10px;display:flex}.sample-tabs button{color:var(--subtle);border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:5px 10px;font-size:10px;transition:background .15s,border-color .15s,color .15s;display:flex}.sample-tabs button.selected{background:var(--surface-raised);border-color:var(--line);color:var(--text)}.sample-tabs i{border-radius:50%;width:5px;height:5px}.sample-pass{background:var(--green)}.sample-fail{background:var(--red)}.sample-values{gap:10px;margin-top:17px;display:grid}.sample-values>div{background:var(--surface);border:1px solid var(--line-soft);border-radius:4px;padding:10px 12px}.sample-values>div>span{letter-spacing:1px;color:var(--subtle);margin-bottom:6px;font-size:7px;display:block}.sample-values code{overflow-wrap:anywhere;white-space:pre-wrap;font-size:11px;display:block}.sample-values>.sample-error{color:var(--red);background:#ee9c9108;border-color:#ee9c9130}.sample-values>.sample-success{color:var(--green);background:#b4cd7c08;border-color:#b4cd7c30}.sample-note{color:var(--subtle);align-items:center;gap:5px;margin-top:17px;font-size:8px;display:flex}.result-count{border-radius:3px;padding:0 5px;font-size:8px}.result-count.passed{color:var(--green);background:#b4cd7c15}.result-count.failed{color:var(--red);background:#ee9c9115}.run-empty{height:150px;color:var(--subtle);flex-direction:column;justify-content:center;align-items:center;gap:13px;font-size:11px;display:flex}.workspace-mobile-tabs{display:none}.split-handle{z-index:3;touch-action:none;flex:none;position:relative}.split-handle:after{content:"";background:0 0;border-radius:2px;transition:background .12s;position:absolute}.split-vertical{cursor:col-resize;justify-self:start;width:10px;margin-left:-5px;margin-right:-5px}.dock-row>.split-vertical{align-self:stretch}.split-vertical:after{width:2px;top:0;bottom:0;left:4px}.split-horizontal{cursor:row-resize;width:100%;height:10px;margin:-5px 0}.split-horizontal:after{height:2px;top:4px;left:0;right:0}.split-handle:before{content:"";background:var(--muted);opacity:.55;pointer-events:none;border-radius:3px;transition:opacity .12s,background .12s;position:absolute}.split-vertical:before{width:4px;height:36px;margin-top:-18px;top:50%;left:3px}.split-horizontal:before{width:36px;height:4px;margin-left:-18px;top:3px;left:50%}.split-handle.dragging:before,.split-handle:focus-visible:before,.split-handle:hover:before{opacity:0}.split-handle.dragging:after,.split-handle:focus-visible:after,.split-handle:hover:after{background:var(--lime)}.split-handle:focus-visible{outline:none}body.is-resizing-columns,body.is-resizing-columns *{-webkit-user-select:none;user-select:none;cursor:col-resize!important}body.is-resizing-rows,body.is-resizing-rows *{-webkit-user-select:none;user-select:none;cursor:row-resize!important}body.is-resizing-columns iframe,body.is-resizing-columns textarea,body.is-resizing-rows iframe,body.is-resizing-rows textarea{pointer-events:none}.room-workspace-layout{grid-template-columns:minmax(0,1fr) 0 clamp(220px,var(--side-size,260px),520px);display:grid}.room-center{min-width:0}.room-mode{color:var(--green);background:#b4cd7c10;border:1px solid #b4cd7c20;border-radius:4px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;display:flex}.room-clock{font-family:Consolas,monospace;font-size:11px}.local-room-note,.room-clock{align-items:center;gap:7px;display:flex}.local-room-note{color:var(--muted);border-bottom:1px solid var(--line);background:var(--bg);padding:9px 20px;font-size:9px}.local-room-note>span:last-child{color:var(--subtle);margin-left:auto;font-size:8px}.room-side{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;height:calc(100dvh - 156px);min-height:400px;display:flex;position:sticky;top:0}.room-side .panel-tabs{gap:18px;padding:0 14px}.room-side .panel-tabs button{gap:5px;font-size:9px}.room-side .panel-tabs button>span{color:var(--subtle);font-size:8px}.room-chat{flex:1;padding:15px;overflow:auto}.chat-welcome{border-bottom:1px solid var(--line);margin-bottom:28px;padding:20px 0 25px}.chat-welcome>span{border:1px solid var(--line);width:42px;height:42px;color:var(--green);border-radius:12px;justify-content:center;align-items:center;margin-bottom:15px;display:flex}.chat-welcome>strong{font-size:14px;font-weight:500}.chat-welcome>p{color:var(--subtle);margin-top:7px;font-size:10px;line-height:1.8}.chat-message{align-items:flex-start;gap:9px;margin-bottom:20px;display:flex}.chat-message>div{flex:1;min-width:0}.chat-message-heading{justify-content:space-between;align-items:center;gap:7px;display:flex}.chat-message-heading strong{font-size:9px;font-weight:500}.chat-message-heading em{color:var(--subtle);margin-left:4px;font-size:7px;font-style:normal}.chat-message-heading time{color:var(--subtle);white-space:nowrap;font-size:7px}.chat-message p{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:5px;font-size:11px;line-height:1.75}.chat-form{border:1px solid var(--line);background:var(--bg);border-radius:6px;align-items:center;gap:5px;margin:10px 12px;padding:5px 7px 5px 10px;display:flex}.chat-form:focus-within{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}.chat-form input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;height:30px;padding:0 4px;font-size:10px;line-height:30px}.chat-form input:focus-visible{outline:none}.chat-form button{background:var(--lime);width:27px;height:27px;color:var(--lime-ink);border-radius:5px;flex-shrink:0}.chat-footer,.chat-form button{justify-content:center;align-items:center;display:flex}.chat-footer{color:var(--subtle);gap:5px;padding:0 0 12px;font-size:8px}.people-panel{padding:22px 15px}.player-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:18px 0;display:flex}.player-row>span:nth-child(2){flex:1;min-width:0}.player-row strong{text-overflow:ellipsis;font-size:10px;font-weight:500;display:block;overflow:hidden}.player-row small{color:var(--subtle);margin-top:4px;font-size:8px;display:block}.player-progress{color:var(--green);text-align:right;font-size:11px}.people-note,.player-progress small{color:var(--subtle)}.people-note{align-items:flex-start;gap:8px;margin-top:25px;font-size:10px;line-height:1.8;display:flex}.waiting-room{text-align:center;flex-direction:column;min-height:calc(100dvh - 156px);padding:65px 30px 30px}.waiting-art,.waiting-room{align-items:center;display:flex}.waiting-art{width:110px;height:110px;color:var(--green);border:1px solid #dfff6a40;border-radius:50%;justify-content:center;margin-bottom:33px;position:relative}.waiting-orbit{border:1px dashed var(--line);border-radius:50%;position:absolute;inset:-15px}.waiting-room h1{letter-spacing:-1.5px;margin:12px 0;font-size:42px}.waiting-room>p{color:var(--muted);max-width:390px;font-size:12px;line-height:1.9}.waiting-stats{gap:24px;margin:25px 0 28px;display:flex}.waiting-stats>span{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.waiting-problems{border-top:1px solid var(--line);width:min(430px,100%);margin-top:40px}.waiting-problems>div{border-bottom:1px solid var(--line-soft);align-items:center;gap:15px;padding:15px 0;display:flex}.waiting-problems span{color:var(--subtle);font-family:Consolas,monospace;font-size:9px}.waiting-problems strong{font-size:11px;font-weight:450}.waiting-problems svg{color:var(--subtle);margin-left:auto}.waiting-host{color:var(--green)!important}.room-problem-tabs{border-bottom:1px solid var(--line);background:var(--surface);gap:0;overflow:auto}.room-problem-tabs,.room-problem-tabs>button{align-items:center;padding:0 10px;display:flex}.room-problem-tabs>button{color:var(--subtle);white-space:nowrap;border-bottom:2px solid #0000;gap:6px;height:41px;font-size:9px;transition:color .15s,border-color .15s}.room-problem-tabs>button.selected{color:var(--text);border-bottom-color:var(--lime)}.room-problem-tabs>button>span{color:var(--subtle);font-size:8px}.room-problem-tabs>button>svg{color:var(--green)}.room-header-actions .delete-room{color:var(--red)}.room-header-actions .delete-room:hover:not(:disabled){border-color:var(--red)}.room-problem-tabs>.end-session{color:var(--muted);margin-left:auto;font-size:8px}.session-finished{color:var(--green);border-bottom:1px solid var(--line);background:#b4cd7c0a;align-items:center;gap:10px;padding:12px 18px;font-size:10px;display:flex}.session-finished .text-button{white-space:nowrap;margin-left:auto}.review-select{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:4px;max-width:190px;padding:5px 7px;font-size:10px}.review-banner{color:var(--green);border-bottom:1px solid var(--line);background:#b4cd7c0a;align-items:center;gap:7px;padding:8px 18px;font-size:10px;display:flex}.workspace-loading{min-height:65dvh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:15px;font-size:12px;animation:fade-in .3s ease-out .12s both;display:flex}.loading-mark{color:var(--green);animation:loading-nudge 1.1s ease-in-out infinite;display:inline-block}.room-not-found{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:90px 30px;display:flex}.room-not-found>svg{color:var(--green)}.room-not-found h1{font-size:36px}.room-not-found p{max-width:480px;color:var(--muted);font-size:12px;line-height:1.9}.room-not-found>div{align-items:center;gap:12px;display:flex}.spinning{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes loading-nudge{50%{transform:translate(3px,-3px)}}@media (min-width:1600px){.app-shell:not(.is-workspace){grid-template-columns:260px minmax(0,1fr)}.page-content{padding:50px 55px 0}.hero{min-height:350px;padding:35px 0}.lobby-columns{grid-template-columns:minmax(0,1fr) 280px;gap:40px}.template-art{height:115px}.template-copy{padding:20px 17px}.template-copy h3{font-size:17px}.template-copy p{font-size:11px}.template-label{font-size:8px}.template-meta{font-size:10px}.difficulty{font-size:9px}.warmup-card h3{font-size:24px}}@media (max-width:1200px){.app-shell:not(.is-workspace){grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-inline:13px}.brand{gap:9px;margin-inline:4px;font-size:16px}.brand img{width:29px;height:30px}.brand small{letter-spacing:.9px;font-size:6.5px}.sidebar-bottom{margin-inline:-13px;padding-inline:13px}.page-content,.topbar{padding-inline:26px}.hero h1{letter-spacing:-1.8px;font-size:43px}.hero-actions{gap:7px}.hero-actions .button{padding-inline:12px;font-size:10px}.hero-art{padding-left:10px}.lobby-columns{grid-template-columns:minmax(0,1fr) 215px;gap:22px}.lobby-right{padding-left:22px}.workspace-stats{gap:15px}.workspace-stats .stats-right{display:none}.template-grid{gap:9px}.template-copy{padding-inline:10px}.template-copy h3{font-size:12px}.template-copy p{font-size:8px}.template-label{letter-spacing:.4px;font-size:6px}.template-meta{gap:5px;font-size:7px}.template-meta .difficulty{padding-inline:5px;font-size:7px}.problem-summary{gap:20px}.problem-summary .summary-explanation{display:none}.problem-toolbar{flex-wrap:wrap}.problem-toolbar .search-field{min-width:180px}.room-workspace-layout{grid-template-columns:minmax(0,1fr) 0 clamp(220px,var(--side-size,230px),480px)}.statement-content{padding-inline:20px}.execution-toolbar>div>span{display:none}}@media (max-width:1000px){.lobby-columns{grid-template-columns:minmax(0,1fr)}.lobby-right{border-left:0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:28px;padding:0;display:grid}.warmup-card{padding-top:25px}.warmup-card h3{font-size:21px}.how-card{border-top:0;padding-top:25px}.sidebar-footnote{display:none}.template-copy h3{font-size:15px}.template-copy p{font-size:10px}.template-label{font-size:7px}.template-meta{font-size:9px}.template-meta .difficulty{font-size:8px}.hero{grid-template-columns:1fr;gap:0;min-height:auto;padding-bottom:25px}.hero-art{display:none}.hero h1{letter-spacing:-2px;font-size:51px}.hero-actions .button{padding-inline:17px;font-size:11px}.search-trigger kbd,.search-trigger>span{display:none}.topbar-actions{gap:15px}.problem-toolbar>.select-input{max-width:unset}.problem-table td:nth-child(4),.problem-table th:nth-child(4){display:none}.table-mobile-topics{color:var(--subtle);margin:5px 0 0 30px;font-size:9px;display:block}.page-title-row{flex-direction:column;align-items:flex-start}.progress-cards{gap:10px}.progress-cards>div{padding:18px}.progress-cards span{font-size:10px}.room-workspace-layout{grid-template-columns:minmax(0,1fr)}.room-workspace-layout>.split-handle{display:none}.room-side{border-left:0;border-top:1px solid var(--line);height:330px;min-height:330px;position:static}.room-chat{padding:15px 22px}.chat-welcome{margin-bottom:15px;padding:5px 0 15px}.chat-welcome>p br,.chat-welcome>span{display:none}.chat-welcome>p{margin-top:3px}.chat-message{max-width:600px}.chat-message-heading{justify-content:flex-start}.chat-message-heading time{margin-left:10px}.waiting-room{min-height:550px}.local-room-note>span:last-child{display:none}.people-panel{overflow:auto}.player-row{max-width:450px}}@media (max-width:1024px){.app-shell,.app-shell.is-workspace,.app-shell:not(.is-workspace){grid-template-columns:minmax(0,1fr)}.is-workspace .sidebar,.sidebar{z-index:50;visibility:hidden;width:238px;box-shadow:var(--shadow);align-items:stretch;padding:28px 18px 0;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.nav-open .sidebar{visibility:visible;transform:translate(0)}.nav-open .nav-backdrop{z-index:49;background:#0007;animation:fade-in .2s ease-out;display:block;position:fixed;inset:0}.is-workspace .brand>span,.is-workspace .nav-item>small,.is-workspace .nav-item>span,.is-workspace .profile-button>span:not(.avatar),.is-workspace .sidebar-create>span{display:initial}.is-workspace .brand{margin:3px 6px 32px;font-size:19px}.is-workspace .brand img{width:34px;height:35px}.is-workspace .brand small{letter-spacing:1.2px;font-size:7.5px}.is-workspace .nav-label,.is-workspace .sidebar-note{display:block}.is-workspace .sidebar-create{width:100%;height:auto;margin-bottom:31px;padding:12px}.is-workspace .nav-item{justify-content:flex-start;padding:12px}.is-workspace .sidebar-divider{width:auto;margin:22px 11px 25px}.is-workspace .sidebar-bottom{width:auto;margin:auto -18px 0;padding:17px 16px}.is-workspace .profile-button>svg{display:block}.mobile-menu{width:40px;height:40px;display:flex}}@media (max-width:760px){.is-workspace .topbar,.topbar{height:61px;padding:0 19px}.breadcrumb{gap:10px}.topbar-actions{gap:12px}.breadcrumb-brand,.breadcrumb-slash{display:none}.preview-badge{padding:4px 7px;font-size:9px}.page-content{padding:28px 22px 0}.page-eyebrow{letter-spacing:1.4px;font-size:8px}.hero{padding:24px 0 29px}.hero h1{letter-spacing:-1.9px;font-size:clamp(37px,8vw,55px)}.hero-copy>p{margin-top:18px;font-size:12px}.hero-actions{margin-top:22px}.hero-actions .button{padding-inline:13px;font-size:10px}.hero-footnote{font-size:8px}.workspace-stats{flex-wrap:wrap;gap:10px 17px;padding:13px 0;font-size:8px}.workspace-stats svg{width:13px;margin:0}.lobby-columns{gap:12px;margin-top:27px}.section-heading h2{font-size:24px}.room-empty{gap:12px;padding:20px 12px}.room-empty h3{font-size:11px}.room-empty p{font-size:9px}.empty-room-icon{width:37px;height:37px}.room-empty>.icon-button{width:22px}.template-grid{gap:10px}.template-copy h3{font-size:13px}.template-copy h3>svg{display:none}.template-copy p{font-size:9px}.template-label{letter-spacing:.4px;font-size:6px}.template-copy{padding:15px 10px}.template-meta{flex-wrap:wrap;gap:6px;font-size:7px}.template-meta .difficulty{font-size:7px}.template-art{height:80px}.community-strip{margin-top:23px;padding:20px 0}.community-strip strong{font-size:10px}.community-strip p{font-size:8px}.strip-asterisk{display:none}.page-footer{flex-direction:column;align-items:flex-start;gap:14px;font-size:7px}.footer-tagline{flex-basis:100%}.footer-tagline:before{display:none}.problem-summary{gap:25px;padding:18px}.summary-icon{width:35px;height:35px}.summary-icon svg{width:20px}.problem-summary>div{gap:10px}.problem-summary small{font-size:8px}.problem-summary strong{font-size:22px}.page-title-row h1,.progress-page>h1{font-size:36px}.problem-toolbar .search-field{flex-basis:100%}.problem-toolbar>.select-input{flex:1;min-width:0;padding:10px 7px;font-size:9px}.problem-table th{padding:12px 8px;font-size:8px}.problem-table td{padding:17px 8px;font-size:11px}.problem-status-cell{width:28px}.problem-index{margin-right:8px;font-size:8px}.table-mobile-topics{margin-left:20px;font-size:8px}.table-footnote{align-items:flex-start;font-size:8px}.table-footnote>span:last-child{text-align:right;max-width:190px}.bottom-invitation{flex-direction:column;align-items:flex-start;gap:18px;margin-top:23px}.bottom-invitation h2{font-size:22px}.bottom-invitation p{font-size:10px}.progress-cards{grid-template-columns:1fr;gap:12px;margin:28px 0}.progress-cards>div{padding:20px 20px 20px 72px;position:relative}.progress-cards>div>svg{position:absolute;top:28px;left:22px}.progress-cards strong{font-size:32px}.progress-cards p{margin-top:9px}.progress-bar{margin-top:16px}.progress-empty{padding:35px 16px}.progress-empty h2{font-size:22px}.progress-empty p{font-size:11px}.workspace-heading{flex-wrap:wrap;gap:8px;min-height:60px;padding:11px 13px}.workspace-heading>div{gap:8px}.workspace-heading strong{font-size:11px}.workspace-heading .muted{display:none}.workspace-heading>.button{font-size:9px}.room-workspace-layout .workbench,.workbench{flex-direction:column;display:flex}.editor-panel>.split-handle,.workbench>.split-handle{display:none}.workbench{min-height:420px}.dock-strip{padding-left:4px}.dock-tab{padding:0 9px}.workspace-mobile-tabs{border-bottom:1px solid var(--line);background:var(--surface);gap:10px;padding:0 18px;display:flex}.workspace-mobile-tabs button{color:var(--subtle);border-bottom:2px solid #0000;padding:12px 15px;font-size:11px;transition:color .15s,border-color .15s}.workspace-mobile-tabs button.selected{border-color:var(--lime);color:var(--text)}.mobile-code .statement-panel,.mobile-problem .editor-panel{display:none}.statement-panel{border-right:0}.statement-content{padding:25px}.solo-workspace .workbench{min-height:calc(100dvh - 121px)}.code-editor{height:350px;min-height:350px}.editor-toolbar{padding-inline:15px}.editor-status{gap:5px;padding-inline:10px;font-size:7px}.editor-status>span:last-child{display:none}.execution-toolbar>div>span{font-size:8px;display:block}.results-content{padding:15px}.room-header-actions{margin-left:auto}.room-header-actions .avatar-stack{display:none}.room-header-actions .button{padding-inline:8px;font-size:8px}.room-clock{gap:5px;font-size:9px}.room-mode{gap:4px;padding:2px 5px;font-size:8px}.room-mode>svg{width:11px}.local-room-note{padding-inline:15px;font-size:8px}.room-side{height:320px}.waiting-room{min-height:520px;padding:50px 25px 25px}.waiting-room h1{font-size:35px}.waiting-room>p{font-size:11px}.waiting-stats{gap:14px}.waiting-stats>span{gap:5px;font-size:8px}.waiting-stats svg{width:14px}.waiting-art{width:90px;height:90px}.waiting-art svg{width:42px}.waiting-room .section-kicker{font-size:6px}.room-not-found{padding:70px 25px}.room-not-found h1{font-size:29px}.room-not-found>div{flex-wrap:wrap;justify-content:center}.session-finished{flex-wrap:wrap;gap:7px;font-size:9px}.session-finished .text-button{font-size:9px}}@media (max-width:430px){.template-grid{grid-template-columns:1fr;gap:11px}.template-card{grid-template-columns:92px 1fr;display:grid}.template-art{border-bottom:0;border-right:1px solid var(--line-soft);height:100%}.template-copy{padding:15px}.template-copy h3{font-size:16px}.template-copy h3>svg{display:block}.template-copy p{font-size:10px}.template-copy p br{display:none}.template-label{margin-bottom:6px;font-size:6px}.template-meta{margin-top:10px;font-size:8px}.template-meta .difficulty{font-size:8px}.lobby-right{grid-template-columns:1fr;gap:0}.warmup-card{padding-bottom:25px}.warmup-card h3{font-size:24px}.number-puzzle span{width:42px;height:42px;font-size:16px}.how-card{border-top:1px solid var(--line)}.topbar-actions{gap:7px}.topbar-actions .search-trigger{display:none}.mode-option{padding:13px}.mode-option strong{font-size:11px}.mode-option small{font-size:9px}.section-tabs{gap:20px}.section-tabs button{font-size:9px}.room-grid{grid-template-columns:1fr}.room-mode{display:none}.execution-toolbar>div>span{max-width:100px}.run-button{gap:6px;font-size:9px}.run-button kbd{display:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--subtle:#838c79}:root[data-theme=light]{--subtle:#67715c}:root[data-theme=light] .brand img{filter:brightness(.38)saturate(1.3)}.hero-copy>p{font-size:14px}.hero-footnote{font-size:10px}.nav-item{font-size:13px}.template-copy p{font-size:11px}.template-label{font-size:8px}.how-step strong,.warmup-card p{font-size:12px}.how-step p{font-size:11px}.problem-description{font-size:13px}@media (max-width:1200px){.template-label{font-size:7px}.template-copy p{font-size:10px}}@media (max-width:760px){.hero-copy>p{font-size:13px}.hero-footnote{font-size:9px}.template-copy p{font-size:10px}.template-label{font-size:6px}}.review-select:focus-visible,.select-input:focus-visible,.text-input:focus-visible{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime);outline:none}.editor-size-control{border-radius:5px;align-items:center;padding:2px 3px;display:inline-flex}.editor-size-control:focus-within{box-shadow:0 0 0 2px var(--lime)}.editor-size-control select:focus-visible{outline:none}.dock-tab:focus-visible,.panel-tabs>button:focus-visible,.room-problem-tabs>button:focus-visible{outline-offset:-3px}.sound-header-control button:focus-visible{outline-offset:0}.dock-panel{container-type:inline-size}.dock-compact>.dock-panel{flex:auto;min-width:0}@container (max-width:330px){.dock-tab{gap:5px;padding:0 8px}.dock-tab>svg{display:none}}.chat-empty{color:var(--subtle);margin:6px 0 14px;font-size:11px}.progress-stats{flex-wrap:wrap;gap:8px 44px;margin-top:28px;display:flex}.progress-stats>div{flex-direction:column;gap:2px;display:flex}.progress-stats strong{letter-spacing:-1px;font-size:28px;font-weight:500;line-height:1.1}.progress-stats strong>small{color:var(--subtle);margin-left:2px;font-size:13px}.progress-stats span{color:var(--muted);font-size:11px}.progress-page>.progress-bar{margin:18px 0 36px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}