.teacher-page{background:var(--gray-97);min-height:100vh;padding-bottom:120px}.teacher-page:focus{outline:none}.teacher-topbar{z-index:3;border-bottom:2px solid var(--gray-92);background:var(--gray-100);justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex;position:sticky;top:0}.teacher-wordmark{color:var(--blue-cta);font:700 22px/1 Unbounded,sans-serif}.teacher-user{color:var(--gray-32);align-items:center;gap:16px;font-size:14px;font-weight:600;display:flex}.teacher-logout{border:2px solid var(--gray-91);background:var(--gray-100);border-radius:12px;padding:6px 12px;font-weight:700}.teacher-body{max-width:1280px;margin:0 auto;padding:32px 28px 0}.teacher-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.teacher-heading h1{margin:0;font:700 30px/1.15 Unbounded,sans-serif}.teacher-subtitle{color:var(--gray-52);margin:8px 0 0;font-weight:600}.class-tabs{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.class-tab{border:2px solid var(--gray-91);background:var(--gray-100);min-height:40px;box-shadow:0 var(--depth-sm) 0 var(--gray-91);border-radius:14px;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex}.class-tab small{color:var(--gray-52);font-size:12px}.class-tab.is-active{border-color:var(--blue-65);color:var(--blue-54);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.class-tab.is-active small{color:var(--blue-54)}.teacher-page .prep-button--primary{border:2px solid var(--blue-cta-depth);min-height:48px;color:var(--gray-100);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth);white-space:nowrap;border-radius:14px;padding:0 22px;font-size:16px;font-weight:700}.teacher-page .prep-button--primary:disabled,.assign-dialog .prep-button--primary:disabled{opacity:.55;box-shadow:none}.teacher-page .prep-button--primary:not(:disabled):active,.assign-dialog .prep-button--primary:not(:disabled):active{box-shadow:none;transform:translateY(var(--depth-sm))}.teacher-page .prep-button--ghost{border:2px solid var(--gray-91);background:var(--gray-100);border-radius:12px;min-height:40px;padding:0 16px;font-weight:700}.teacher-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-bottom:12px;display:flex}.teacher-toolbar p{color:var(--gray-52);margin:0;font-size:14px}.mastery-legend{color:var(--gray-32);flex-wrap:wrap;gap:16px;margin:0;padding:0;font-size:13px;font-weight:600;list-style:none;display:flex}.mastery-legend li{align-items:center;gap:6px;display:flex}.mastery-legend i{border-radius:4px;width:14px;height:14px}.mastery--none{background:var(--gray-93)}.mastery--low{background:var(--red-65)}.mastery--mid{background:var(--yellow-81)}.mastery--high{background:var(--green-66)}.class-heatmap-scroll{border:2px solid var(--gray-92);background:var(--gray-100);border-radius:20px;overflow-x:auto}.class-heatmap{border-collapse:separate;border-spacing:0;width:100%}.class-heatmap th,.class-heatmap td{text-align:center;padding:4px 3px}.class-heatmap thead th{border-bottom:2px solid var(--gray-93);background:var(--gray-100);color:var(--gray-52);padding-top:14px;padding-bottom:8px;font-size:12px;font-weight:700;position:sticky;top:0}.class-heatmap tbody tr:first-child>*{padding-top:10px}.class-heatmap tbody tr:last-child>*{padding-bottom:14px}.class-heatmap tbody tr:hover>*{background:var(--gray-98)}.class-heatmap-student{z-index:1;background:var(--gray-100);white-space:nowrap;text-overflow:ellipsis;min-width:168px;max-width:220px;position:sticky;left:0;overflow:hidden;text-align:left!important;padding-left:20px!important}tbody .class-heatmap-student{font-size:15px;font-weight:700}.class-heatmap thead .class-heatmap-student{z-index:2}.class-heatmap-forecast{border-right:2px solid var(--gray-93);min-width:84px;padding-right:12px!important}.class-forecast{flex-direction:column;align-items:center;line-height:1.1;display:inline-flex}.class-forecast strong{font-size:17px}.class-forecast small{color:var(--gray-52);font-size:11px;font-weight:600}.class-forecast--rough strong{color:var(--gray-52)}.class-forecast--empty{color:var(--gray-72)}.class-column-button{width:34px;color:var(--gray-32);transition:background var(--motion-duration) var(--motion-easing);background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:4px 0;font-size:13px;font-weight:700;display:inline-flex}.class-column-button:hover{background:var(--gray-97)}.class-column-button[aria-pressed=true]{color:var(--blue-54);background:var(--blue-94)}.mastery-bar{border-radius:2px;width:20px;height:4px}.mastery-cell{width:30px;height:30px;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border:0;border-radius:8px;margin:0 auto;padding:0;display:block;box-shadow:inset 0 -3px oklch(0% 0 0/.12)}.mastery-cell.mastery--none{box-shadow:none}.mastery-cell--thin{opacity:.45}.mastery-cell:hover{transform:scale(1.08)}.mastery-cell[aria-pressed=true]{opacity:1;box-shadow:0 0 0 2px var(--gray-100), 0 0 0 5px var(--blue-cta);transform:scale(.9)}.teacher-empty{border:2px solid var(--gray-92);background:var(--gray-100);text-align:center;border-radius:20px;padding:56px 24px}.teacher-empty h2{margin:0 0 8px;font:700 20px/1.3 Unbounded,sans-serif}.teacher-empty p{max-width:420px;color:var(--gray-52);margin:0 auto 16px}.teacher-skeleton{background:linear-gradient(90deg, var(--gray-93), var(--gray-98), var(--gray-93));background-size:200% 100%;border-radius:20px;height:420px;animation:1.4s linear infinite teacher-shimmer}@keyframes teacher-shimmer{to{background-position:-200% 0}}.selection-bar{z-index:4;color:var(--gray-100);background:var(--gray-18);box-shadow:0 12px 32px var(--scrim-26);animation:selection-in var(--motion-screen-duration) var(--motion-screen-easing);border-radius:20px;align-items:center;gap:20px;padding:10px 10px 10px 24px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes selection-in{0%{opacity:0;transform:translate(-50%,16px)}}.selection-bar p{flex-direction:column;margin:0;line-height:1.25;display:flex}.selection-bar p span{color:var(--gray-80);font-size:13px}.selection-clear{color:var(--gray-80);background:0 0;border:0;border-radius:10px;padding:8px 10px;font-weight:700}.selection-clear:hover{color:var(--gray-100)}.assign-backdrop{z-index:10;background:var(--scrim-30);transition:opacity var(--motion-duration) var(--motion-easing);position:fixed;inset:0}.assign-backdrop[data-starting-style],.assign-backdrop[data-ending-style]{opacity:0}.assign-dialog{z-index:11;background:var(--gray-100);width:min(440px,100vw - 32px);box-shadow:0 24px 64px var(--scrim-26);transition:opacity var(--motion-duration) var(--motion-easing), transform var(--motion-screen-duration) var(--motion-screen-easing);border-radius:24px;padding:24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.assign-dialog[data-starting-style],.assign-dialog[data-ending-style]{opacity:0;transform:translate(-50%,-46%)scale(.97)}.assign-dialog:focus{outline:none}.assign-dialog .prep-button--primary{border:2px solid var(--blue-cta-depth);min-height:52px;color:var(--gray-100);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth);border-radius:14px;font-size:19px;font-weight:700}.assign-header{justify-content:space-between;align-items:center;display:flex}.assign-header h2,.assign-done h2{margin:0;font:700 22px/1.25 Unbounded,sans-serif}.assign-close{background:var(--gray-97);width:36px;height:36px;color:var(--gray-52);border:0;border-radius:12px;place-items:center;display:grid}.assign-recipients{color:var(--gray-52);margin:6px 0 0;font-weight:600}.assign-section{margin:22px 0}.assign-section h3{margin:0 0 10px;font-size:14px;font-weight:700}.assign-split{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.assign-split li{border:2px solid var(--gray-91);border-radius:14px;align-items:center;gap:6px;min-height:40px;padding:0 6px 0 14px;font-weight:700;display:inline-flex}.assign-split li:not(:has(button)){padding-right:14px}.assign-split small{color:var(--gray-52);font-size:13px}.assign-split button{width:26px;height:26px;color:var(--gray-61);background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.assign-split button:hover{background:var(--gray-97)}.assign-split svg,.assign-close svg{width:18px;height:18px}.assign-deadlines{flex-wrap:wrap;gap:8px;display:flex}.assign-chip,.assign-date input{border:2px solid var(--gray-91);background:var(--gray-100);border-radius:14px;min-height:40px;padding:0 14px;font-weight:700}.assign-chip.is-active{border-color:var(--blue-65);color:var(--blue-54);background:var(--blue-97)}.assign-error{color:var(--red-54);margin:0 0 12px;font-weight:600}.assign-done{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 0 0;display:flex}.assign-done>svg{width:64px;height:64px;color:var(--green-66)}.assign-done p{color:var(--gray-52);margin:0 0 16px;font-weight:600}.assign-done .prep-button{width:100%}@media (width<=720px){.teacher-heading{flex-direction:column;align-items:stretch}.teacher-body,.teacher-topbar{padding-left:16px;padding-right:16px}}@media (prefers-reduced-motion:reduce){.mastery-cell,.selection-bar,.assign-dialog,.teacher-skeleton{transition:none;animation:none}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/MontserratAlternates-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/MontserratAlternates-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/MontserratAlternates-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/MontserratAlternates-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/MontserratAlternates-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/MontserratAlternates-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/MontserratAlternates-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/MontserratAlternates-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/MontserratAlternates-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/MontserratAlternates-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/MontserratAlternates-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Alternates;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/MontserratAlternates-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Unbounded-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Unbounded-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Unbounded-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Unbounded-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Unbounded-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Unbounded-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Unbounded-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Unbounded-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Unbounded-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--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{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.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,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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))}}*{box-sizing:border-box}button:not(:disabled),[role=button]{cursor:pointer}:root{--motion-duration:.18s;--motion-screen-duration:.35s;--drawer-duration:.36s;--motion-easing:cubic-bezier(.2, .8, .2, 1);--motion-screen-easing:cubic-bezier(.32, .72, 0, 1);--depth-sm:2px;--depth-md:4px;--depth-lg:7px;--motion-press-depth:var(--depth-md)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--blue-56:oklch(55.6% .162 252.2);--blue-cta:oklch(64.9% .193 251.8);--blue-cta-depth:oklch(55.6% .162 252.2);--yellow-label:oklch(46% .105 82);--green-label:oklch(45% .11 158);--pink-label:oklch(45% .19 346);--purple-label:oklch(42% .13 300);--teal-label:oklch(45% .09 185);--red-label:oklch(45% .17 25);--orange-label:oklch(50% .15 50);--orange-66:oklch(70% .18 50);--orange-95:oklch(95.5% .035 60);--blue-65:oklch(64.9% .193 251.8);--blue-54:oklch(54.4% .165 252.5);--blue-90:oklch(90% .055 238.5);--blue-91:oklch(91.2% .048 239.7);--blue-94:oklch(93.8% .035 234.8);--gray-100:oklch(100% 0 89.9);--gray-14:oklch(14.5% 0 89.9);--gray-18:oklch(17.8% 0 89.9);--gray-32:oklch(31.5% 0 89.9);--gray-52:oklch(52.5% 0 89.9);--gray-56:oklch(55.6% 0 89.9);--gray-61:oklch(61% 0 89.9);--gray-68:oklch(68.3% 0 89.9);--gray-72:oklch(71.5% 0 89.9);--gray-79:oklch(78.9% 0 89.9);--gray-80:oklch(80.5% 0 89.9);--gray-83:oklch(83% 0 89.9);--gray-85:oklch(85.1% 0 89.9);--gray-86:oklch(85.8% 0 89.9);--gray-87:oklch(87.3% 0 89.9);--gray-90:oklch(90.1% 0 89.9);--gray-91:oklch(90.7% 0 89.9);--gray-92:oklch(92.2% 0 89.9);--gray-93:oklch(93.1% 0 89.9);--gray-97:oklch(96.7% 0 89.9);--gray-98:oklch(97.6% 0 89.9);--green-56:oklch(56% .129 156);--green-61:oklch(60.7% .129 158.8);--green-64:oklch(64.1% .133 157.7);--green-65:oklch(65% .138 158.6);--green-66:oklch(66.4% .142 158.5);--green-69:oklch(69.1% .15 158);--green-71:oklch(71.1% .116 160.3);--green-72:oklch(71.6% .113 160.3);--green-88:oklch(88% .059 159.6);--green-96:oklch(95.7% .034 157.6);--pink-93:oklch(92.6% .042 340.6);--purple-56:oklch(55.6% .183 305.9);--purple-59:oklch(59.2% .123 296.1);--purple-88:oklch(87.9% .066 295.5);--scrim-12:oklch(0% 0 0/.12);--scrim-14:oklch(0% 0 0/.14);--scrim-20:oklch(0% 0 0/.2);--scrim-26:oklch(0% 0 0/.26);--scrim-27:oklch(0% 0 0/.27);--scrim-30:oklch(0% 0 0/.3);--teal-65:oklch(64.9% .114 182);--teal-93:oklch(93.4% .042 179.8);--teal-98:oklch(98.2% .012 181.5);--veil-66:oklch(100% 0 89.9/.66);--veil-95:oklch(100% 0 89.9/.95);--yellow-69:oklch(69.3% .148 72.7);--yellow-81:oklch(80.7% .169 74.5);--yellow-83:oklch(83.1% .168 80.8);--yellow-90:oklch(90.3% .117 88.4);--yellow-56:oklch(56% .168 80.8);--pink-58:oklch(57.6% .208 346);--purple-54:oklch(54% .123 296.1);--teal-54:oklch(53.6% .114 182);--yellow-92:oklch(91.8% .184 100.9);--yellow-94:oklch(94.5% .103 97.9);--purple-95:oklch(95.4% .024 296.1);--red-95:oklch(95.4% .023 11);--blue-96:oklch(96.2% .021 236.8);--blue-97:oklch(97.1% .015 241.8);--yellow-99:oklch(98.6% .024 99.1);--green-99:oklch(99.4% .004 157.2);--pink-98:oklch(98.3% .009 341.8);--pink-62:oklch(61.7% .208 346);--pink-63:oklch(63.2% .221 350);--red-54:oklch(54.5% .188 24);--red-59:oklch(58.6% .199 23.5);--red-65:oklch(64.9% .198 21.9);--red-67:oklch(67.4% .214 22.7);--purple-93:oklch(93.3% .039 312.7);color:var(--gray-14);background:var(--gray-97);font-synthesis:none;text-rendering:optimizelegibility;font-family:Montserrat Alternates,Arial,sans-serif}html,body,#root{min-width:320px;min-height:100%}body{overflow-wrap:anywhere;margin:0;position:relative}button,input{color:inherit;font:inherit}input{box-shadow:none}button{-webkit-tap-highlight-color:transparent}:where(button,input,select,textarea,a):focus-visible,.prep-button:focus-visible{outline:3px solid var(--blue-90);outline-offset:2px}.skip-link{z-index:100;color:#fff;background:#0a0a0a;border-radius:8px;padding:8px 12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus-visible{transform:translateY(0)}h1,h2,p{margin:0}.analytics-consent-scrim{z-index:100;background:var(--scrim-20);position:fixed;inset:0}.analytics-consent-sheet{background:var(--gray-100);border-radius:24px 24px 0 0;padding:22px max(18px,50vw - 260px) 18px;position:absolute;bottom:0;left:0;right:0}.analytics-consent-sheet:focus-visible{outline:none}.analytics-consent-handle{background:var(--gray-85);border-radius:4px;width:40px;height:4px;margin:-10px auto 18px;display:block}.analytics-consent-sheet h2{font-size:15px;line-height:1.35}.analytics-consent-sheet p{color:var(--gray-56);margin-top:6px;font-size:13px;line-height:1.45}.analytics-consent-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.analytics-consent-actions button{min-height:52px;color:var(--gray-32);background:var(--gray-97);border:0;border-radius:13px;padding:0 15px;font-size:19px;font-weight:700}.analytics-consent-actions .analytics-consent-accept{color:var(--gray-100);background:var(--blue-cta);box-shadow:0 var(--depth-md) 0 var(--blue-cta-depth)}.student-shell{background:var(--gray-97);min-height:100dvh;display:block}.app-frame{--interaction-ink:oklch(17% 0 0);--interaction-muted:oklch(55% 0 0);--interaction-border:oklch(89% 0 0);--interaction-surface:oklch(100% 0 0);--interaction-subtle:oklch(98% 0 0);--interaction-accent:oklch(64% .19 246);--interaction-accent-soft:oklch(97% .025 246);--interaction-correct:oklch(65% .16 154);--interaction-correct-soft:oklch(96% .04 154);--interaction-incorrect:oklch(62% .22 24);--interaction-incorrect-soft:oklch(96% .04 24);--home-topbar-height:68px;--home-topbar-padding:12px 16px 24px;--control-topbar-height:56px;--control-topbar-padding:8px 16px;--topbar-fade-height:68px;--topbar-fade-overlap:24px;--topbar-gradient:linear-gradient(in oklab 180deg, oklab(100% 0 0) 60.27%, 93.81%, oklab(100% 0 0/0) 100%);--app-bottom-clearance:24px;background:var(--gray-100);width:100%;max-width:560px;height:100dvh;margin:0 auto;position:relative;overflow:hidden}@media (width>=600px){.app-frame{box-shadow:0 0 0 1px var(--gray-93)}}.app-screen{background:var(--gray-100);position:absolute;inset:0;overflow:hidden}::view-transition-group(root){animation-duration:var(--motion-screen-duration);animation-timing-function:var(--motion-screen-easing)}html:active-view-transition-type(screen-forward)::view-transition-old(root){animation:var(--motion-screen-duration) var(--motion-screen-easing) both screen-out-left}html:active-view-transition-type(screen-forward)::view-transition-new(root){animation:var(--motion-screen-duration) var(--motion-screen-easing) both screen-in-right}html:active-view-transition-type(screen-back)::view-transition-old(root){z-index:1;animation:var(--motion-screen-duration) var(--motion-screen-easing) both screen-out-right}html:active-view-transition-type(screen-back)::view-transition-new(root){animation:var(--motion-screen-duration) var(--motion-screen-easing) both screen-in-left}@keyframes screen-in-right{0%{transform:translate(100%)}}@keyframes screen-out-left{to{transform:translate(-25%)}}@keyframes screen-in-left{0%{transform:translate(-25%)}}@keyframes screen-out-right{to{transform:translate(100%)}}.non-student-screen{flex-direction:column;justify-content:center;gap:16px;height:100%;padding:48px 24px;font-family:Montserrat Alternates,sans-serif;display:flex}.non-student-screen h1{margin:0;font:700 24px/30px Unbounded,sans-serif}.non-student-screen p{color:var(--gray-56);margin:0 0 8px;font-size:16px;line-height:24px}.non-student-logout{--control-depth:var(--depth-sm);border:2px solid var(--gray-91);min-height:48px;color:var(--gray-14);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-91);transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:16px;font-weight:700}.prep-button{--control-depth:0px;transform-origin:50%;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing), opacity var(--motion-duration) var(--motion-easing);background:0 0;border:0;padding:0}.prep-button--default{min-height:44px}.prep-button--icon{place-items:center;width:40px;height:40px;display:grid}.prep-button--full{width:100%}.prep-button:disabled{box-shadow:none;transform:translateY(var(--control-depth));cursor:default}.login-home{background:linear-gradient(168deg, var(--blue-65) 0%, oklch(58% .17 268) 52%, var(--purple-59) 100%);min-height:100dvh;color:var(--gray-100);flex-direction:column;align-items:center;padding:72px 24px 40px;display:flex;position:relative;overflow:hidden}.login-deco{pointer-events:none;background:oklch(100% 0 0/.12);border-radius:50%;position:absolute}.login-deco--blob-a{width:200px;height:200px;top:-70px;left:-70px}.login-deco--blob-b{width:130px;height:130px;top:200px;right:-40px}.login-wordmark{letter-spacing:-.01em;font:700 44px/1 Unbounded,sans-serif;position:relative}.login-tagline{opacity:.9;text-align:center;margin-top:12px;font-size:15px;font-weight:500;position:relative}.login-card{background:var(--gray-100);border-radius:24px;width:min(100%,360px);margin-top:auto;padding:20px;position:relative;box-shadow:0 18px 40px oklch(30% .1 280/.35)}.login-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.login-label{color:var(--gray-56);font-size:12px;font-weight:700}.login-input{box-sizing:border-box;border:2px solid var(--gray-92);height:52px;color:var(--gray-14);background:var(--gray-100);font:inherit;transition:border-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:14px;outline:none;padding:0 14px;font-size:16px}.login-input:focus{border-color:var(--blue-65);box-shadow:0 0 0 4px var(--blue-94);outline:2px solid #0000}.login-input:-webkit-autofill{-webkit-text-fill-color:var(--gray-14);box-shadow:0 0 0 100px var(--gray-100) inset}.login-input:-webkit-autofill:focus{box-shadow:0 0 0 100px var(--gray-100) inset, 0 0 0 4px var(--blue-94)}.login-error{color:var(--red-54);text-align:center;margin:0 0 14px;font-size:13px;font-weight:600}.login-action{cursor:pointer;border:2px solid var(--blue-cta-depth);background:var(--blue-cta);width:100%;height:56px;color:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth);box-sizing:border-box;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:16px;justify-content:center;align-items:center;font-size:19px;font-weight:700;text-decoration:none;display:flex}.login-action:active{transform:translateY(var(--depth-sm));box-shadow:none}.login-action:disabled{opacity:.7;cursor:default}.login-action:focus-visible{outline:2px solid var(--blue-65);outline-offset:3px}.account-page{height:100%;padding-bottom:var(--app-bottom-clearance);scrollbar-width:none;background:var(--gray-97);overflow:auto}.account-page::-webkit-scrollbar{display:none}.account-header{height:var(--control-topbar-height);align-items:center;gap:12px;padding:12px 24px 0;display:flex}.account-header h1{margin:0;font:700 26px/32px Unbounded,sans-serif}.account-body{flex-direction:column;gap:20px;padding:16px 20px 24px;display:flex}.account-identity{border:2px solid var(--gray-92);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-92);border-radius:24px;align-items:center;gap:16px;padding:18px;display:flex}.account-identity>div{min-width:0}.account-avatar{border:3px solid var(--blue-56);width:64px;height:64px;color:var(--gray-100);background:var(--blue-65);box-shadow:0 var(--depth-sm) 0 var(--blue-56);border-radius:22px;flex:none;place-items:center;font:700 26px/1 Unbounded,sans-serif;display:grid}.account-name{text-overflow:ellipsis;white-space:nowrap;margin:0;font:700 18px/24px Unbounded,sans-serif;overflow:hidden}.account-meta{color:var(--gray-52);flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;font-size:13px;font-weight:600;display:flex}.account-chip{color:var(--blue-54);background:var(--blue-96);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.account-section-title{color:var(--gray-52);margin:0 4px 10px;font-size:13px;font-weight:700;line-height:18px}.rewards-hero{min-height:176px;color:var(--gray-100);background:var(--blue-54);box-shadow:0 var(--depth-sm) 0 oklch(46% .14 252.5);text-align:center;border:3px solid oklch(46% .14 252.5);border-radius:24px;justify-items:center;gap:2px;padding:22px 20px 20px;display:grid}.rewards-hero--skeleton{border-color:var(--gray-92);background:var(--gray-93);box-shadow:0 var(--depth-sm) 0 var(--gray-92)}.rewards-hero svg{width:40px;height:40px;margin-bottom:6px}.rewards-hero b{font:700 40px/44px Unbounded,sans-serif}.rewards-hero span{font-size:15px;font-weight:700}.account-row :is(b,small){font-variant-numeric:tabular-nums}.rewards-rule b{color:var(--gray-52);flex:none;font-weight:800}.rewards-note{color:var(--gray-52);margin:10px 4px 0;font-size:13px;font-weight:600;line-height:18px}.account-list{border:2px solid var(--gray-92);background:var(--gray-100);border-radius:18px;overflow:hidden}.account-row{width:100%;min-height:56px;color:var(--gray-14);font:inherit;text-align:left;transition:background-color var(--motion-duration) var(--motion-easing);background:0 0;border:0;align-items:center;gap:12px;padding:8px 14px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.account-row+.account-row{border-top:1px solid var(--gray-93)}.account-row:not(:disabled):active{background:var(--gray-97)}.account-row:focus-visible{outline:3px solid var(--blue-90);outline-offset:-3px}.account-row:disabled{cursor:default;opacity:.6}.account-row-icon{--row-accent:var(--blue-65);width:32px;height:32px;color:var(--gray-100);background:var(--row-accent);border-radius:10px;flex:none;place-items:center;display:grid}.account-row-icon.purple{--row-accent:var(--purple-59)}.account-row-icon.red{--row-accent:var(--red-59)}.account-row-icon.pink{--row-accent:var(--pink-58)}.account-row-icon.green{--row-accent:var(--green-64)}.account-row-icon.yellow{--row-accent:var(--yellow-81)}.account-row-icon.gray{--row-accent:var(--gray-72)}.account-row-icon.orange{--row-accent:var(--orange-66)}.account-row-hint{color:var(--gray-52);margin-top:2px;font-size:13px;font-weight:600;line-height:18px;display:block}.account-switch{background:var(--gray-90);width:46px;height:28px;transition:background-color var(--motion-duration) var(--motion-easing);border-radius:14px;flex:none;position:relative}.account-switch:after{content:"";background:var(--gray-100);width:22px;height:22px;transition:translate var(--motion-duration) var(--motion-easing);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px oklch(0% 0 0/.2)}[aria-checked=true]>.account-switch{background:var(--green-64)}[aria-checked=true]>.account-switch:after{translate:18px}.account-row-icon svg{stroke-width:2.25px;width:18px;height:18px}.account-row-label{flex:1;min-width:0}.account-row-count{min-width:22px;height:22px;color:var(--gray-100);background:var(--red-54);text-align:center;border-radius:11px;padding:0 7px;font-size:12px;line-height:22px}.account-row-chevron{width:20px;height:20px;color:var(--gray-72)}.account-row--danger{color:var(--red-54)}.account-success{color:var(--green-label);gap:6px;margin:10px 4px 0;font-size:13px;font-weight:600;line-height:18px;display:flex}.account-success svg{width:18px;height:18px;color:var(--green-64);flex:none}.account-error{color:var(--red-54);text-align:center;margin:0;font-size:13px;font-weight:600}.account-sheet-description{color:var(--gray-52);margin:-4px 0 16px;font-size:14px;line-height:20px}.account-form{flex-direction:column;gap:14px;display:flex}.account-form .login-field{margin-bottom:0}.account-field-hint{color:var(--gray-52);margin-top:6px;font-size:12px;font-weight:600;display:block}.primary-action{--control-depth:var(--depth-sm);transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing), opacity var(--motion-duration) var(--motion-easing);border:2px solid var(--blue-cta-depth);height:56px;color:var(--gray-100);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth);cursor:pointer;border-radius:14px;font-size:19px;font-weight:700}.primary-action:disabled{color:var(--gray-80);border-color:var(--gray-91);background:var(--gray-97);box-shadow:none}:is(.prep-button,.primary-action,.non-student-logout):not(:disabled):active{transform:translateY(min(var(--control-depth), var(--motion-press-depth)))}:is(.primary-action,.non-student-logout,.subject-option,.matching-choice-option):not(:disabled):active,.topic-option:not(:disabled):active{box-shadow:none}.matching-prompt-control:not(:disabled):active :is(.matching-prompt-label,.matching-prompt-answer){box-shadow:none;transform:translateY(min(var(--control-depth), var(--motion-press-depth)))}.prep-button[data-control-motion=enabled]{animation:control-enable var(--motion-duration) var(--motion-easing)}@keyframes control-enable{0%{transform:translateY(min(var(--control-depth), var(--motion-press-depth)));box-shadow:none}to{transform:translateY(0)}}.home-screen{height:100%;padding-bottom:var(--app-bottom-clearance);scrollbar-width:none;scroll-padding-bottom:var(--app-bottom-clearance);flex-direction:column;display:flex;position:relative;overflow:auto}.home-screen::-webkit-scrollbar{display:none}.home-top-bar{z-index:8;height:var(--home-topbar-height);background:var(--topbar-gradient);position:sticky;top:0}.home-header{height:var(--home-topbar-height);padding:var(--home-topbar-padding);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.home-header>:first-child{justify-self:start}.home-header>.home-avatar{justify-self:end}.home-avatar{border:1px solid var(--gray-100);outline:2px solid var(--gray-92);width:32px;height:32px;color:var(--blue-65);background:var(--blue-94);cursor:pointer;border-radius:12px;flex:none;place-items:center;font-size:12px;font-weight:700;text-decoration:none;display:grid;position:relative}.home-stat{font-variant-numeric:tabular-nums;border-radius:10px;align-items:center;gap:5px;height:32px;padding-inline:4px;font:700 14px/20px Unbounded,sans-serif;display:flex}.home-stat small{font-size:11px;font-weight:700}.home-stat svg{width:22px;height:22px}.home-stat.forecast{color:var(--green-61);text-decoration:none}.home-stat.forecast:focus-visible{outline-offset:2px;outline:3px solid #bde4ff}.home-stat.forecast small{color:var(--gray-56)}button.home-stat.streak{color:var(--gray-68);cursor:pointer;background:0 0;border:0}button.home-stat.streak.is-lit{color:var(--orange-66)}button.home-stat.streak:focus-visible{outline-offset:2px;outline:3px solid #bde4ff}.home-stat-streak-icon{display:grid;position:relative}.home-stat .streak-freeze-badge{width:14px;height:14px;color:var(--blue-54);background:var(--blue-94);box-shadow:0 0 0 2px var(--gray-100);border-radius:50%;padding:1px;position:absolute;bottom:-3px;right:-5px}.home-avatar-badge{color:#fff;background:var(--red-54);text-align:center;border:2px solid #fff;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:8px;font-weight:700;line-height:12px;position:absolute;top:-7px;right:-7px}.section-title{justify-content:space-between;align-items:center;height:32px;padding:0 24px;display:flex}.section-title h2{font:700 18px/32px Unbounded,sans-serif}.section-title>span{color:var(--gray-61);font-size:16px;font-weight:600}.deadline-badge{color:#767676;white-space:nowrap;background:#e8e8e8;justify-content:center;align-items:center;gap:4px;width:fit-content;display:inline-flex}.deadline-badge svg{stroke-width:2px;flex:none;width:16px;height:16px}.deadline-badge--warning{color:#ffad0a!important;background:#fff1c7!important}.deadline-badge--critical,.deadline-badge--overdue{color:var(--red-label)!important;background:#ffe1e3!important}.setup-screen{background:var(--gray-100);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.setup-top,.exercise-top{height:var(--control-topbar-height);padding:var(--control-topbar-padding);align-items:center}.setup-top{grid-template-columns:40px 1fr 40px;gap:12px;display:grid}.setup-body{flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.topic-screen .setup-body{padding-bottom:32px}.setup-eyebrow{color:var(--blue-54);margin:0 0 20px;font-size:14px;font-weight:700;line-height:24px}.setup-body>h1{margin:0;font:700 32px/32px Montserrat Alternates,sans-serif}.setup-lede{color:var(--gray-56);margin:20px 0 40px;font-size:14px;font-weight:600;line-height:24px}.subject-list{gap:14px;display:grid}.subject-option{--control-depth:var(--depth-sm);border:2px solid var(--gray-92);background:var(--gray-100);text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:48px 1fr 24px;align-items:center;gap:10px;min-height:80px;padding:14px;display:grid}.subject-option.selected{border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.subject-option:disabled{--control-depth:0;opacity:1;color:var(--gray-61);background:var(--gray-97)}.subject-icon{border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.subject-icon.blue{color:var(--blue-65);background:var(--blue-94)}.subject-icon.violet{color:var(--purple-56);background:var(--purple-93)}.subject-icon.green{color:var(--teal-65);background:var(--teal-93)}.subject-icon svg{width:24px;height:24px}.subject-option>span:nth-child(2){flex-direction:column;display:flex}.subject-option strong{font-size:16px;line-height:25px}.subject-option small{color:var(--gray-52);font-size:12px;font-weight:700;line-height:16px}.subject-option>i{border:2px solid var(--gray-79);background:var(--gray-100);border-radius:50%;justify-self:center;width:20px;height:20px}.subject-option.selected>i{border-color:var(--blue-65);box-shadow:inset 0 0 0 5px var(--blue-65)}.topic-search{border:1.5px solid var(--gray-90);height:48px;color:var(--gray-56);border-radius:12px;align-items:center;gap:9px;padding:0 13px;display:flex}.topic-search:focus-within{border-color:var(--blue-65);background:var(--blue-97)}.topic-search svg{width:20px;height:20px}.topic-search input{min-width:0;color:inherit;background:0 0;border:0;outline:0;flex:1;padding:0;font-family:inherit;font-size:14px;font-weight:500}.topic-list{gap:9px;margin-top:20px;display:grid}.topic-option{--control-depth:var(--depth-sm);border:1.5px solid var(--gray-92);background:var(--gray-100);text-align:left;min-height:72px;box-shadow:0 var(--depth-sm) 0 var(--gray-92);cursor:pointer;border-radius:14px;grid-template-columns:minmax(0,1fr) 54px 18px;align-items:center;gap:12px;padding:12px;display:grid}.topic-option.selected{border:2px solid var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.topic-title{text-overflow:ellipsis;align-self:center;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.topic-empty{color:var(--gray-61);text-align:center;margin:30px 10px;font-size:14px;line-height:21px}.topic-option .number-mastery{align-self:center;width:54px;margin-top:0}.topic-option>.number-check{place-self:center;position:static}.number-mastery{background:var(--gray-92);border-radius:999px;width:100%;height:4px;margin-top:auto;overflow:hidden}.number-mastery>i{border-radius:inherit;background:var(--red-65);height:100%;display:block}.number-mastery--empty>i{background:0 0}.number-mastery--amber>i{background:var(--yellow-81)}.number-mastery--green>i{background:var(--green-66)}.bottom-sheet.info.number-progress-info{min-height:0}.number-progress-info .feedback-sheet-content{gap:40px}.number-progress-info .feedback-sheet-heading{gap:20px}.number-progress-info .feedback-sheet-heading h2{align-items:center;gap:8px;display:flex}.number-progress-info .feedback-sheet-heading h2 svg{flex:0 0 24px;width:24px;height:24px}.number-progress-thresholds{flex-direction:column;gap:10px;display:flex}.number-progress-threshold{border:2px solid var(--gray-92);background:var(--gray-100);border-radius:14px;align-items:center;gap:12px;min-height:78px;padding:12px;display:flex}.number-progress-threshold>span:last-child{flex-direction:column;gap:4px;min-width:0;display:flex}.number-progress-threshold strong{font-size:14px;font-weight:700;line-height:20px}.number-progress-threshold small{color:var(--gray-61);font-size:12px;font-weight:500;line-height:17px}.number-progress-threshold .number-mastery{flex:0 0 72px;width:72px;height:8px;margin-top:0}.number-check{border:1.5px solid var(--gray-83);width:18px;height:18px;color:var(--gray-100);background:var(--gray-100);border-radius:5px;place-items:center;display:grid;position:absolute;top:7px;right:6px}.number-check svg,.number-check>svg{stroke-width:3px;width:13px;height:13px}.setup-state{border:1.5px dashed var(--gray-90);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:6px;margin-top:20px;padding:26px 16px;display:flex}.setup-state strong{font-size:15px;line-height:21px}.setup-state span{color:var(--gray-61);font-size:12px;line-height:18px}.setup-retry-action{color:var(--blue-65);margin-top:8px;font-size:12px;font-weight:700}.setup-footer{min-height:calc(88px + env(safe-area-inset-bottom,0px));padding:10px 24px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--gray-91);background:var(--gray-100);flex:none}.setup-footer .inline-error{text-align:center;margin:0 0 8px}.setup-footer .primary-action{width:100%;font-weight:700}.sheet-backdrop{z-index:43;background:var(--scrim-30);opacity:1;transition:opacity var(--drawer-duration) var(--motion-easing);position:absolute;inset:0}.drawer-portal-host{display:contents}.drawer-viewport{z-index:44;pointer-events:none;align-items:flex-end;display:flex;position:absolute;inset:0}.bottom-sheet{width:100%;padding:8px 24px max(31px, env(safe-area-inset-bottom,0px));background:var(--gray-100);pointer-events:auto;transition:transform var(--drawer-duration) var(--motion-easing);will-change:transform;border-radius:40px 40px 0 0;outline:none;position:relative;transform:translateY(0)}.drawer-content{display:contents}.sheet-backdrop[data-starting-style],.sheet-backdrop[data-ending-style]{opacity:0}.bottom-sheet[data-starting-style],.bottom-sheet[data-ending-style]{transform:translateY(100%)}.bottom-sheet[data-swiping]{transition-duration:0s}.sheet-handle{background:var(--gray-86);border-radius:10px;width:40px;height:5px;margin:0 auto 17px;display:block}.practice-sheet-title{justify-content:space-between;align-items:center;height:40px;display:flex}.practice-sheet-title h2{flex:1;min-width:0;margin:0;font-size:20px;font-weight:700;line-height:28px}.practice-sheet-title>button{border-radius:8px;width:24px;height:24px}.practice-sheet-title svg{width:24px;height:24px}.inline-error{color:var(--red-59);margin:-12px 0 10px;font-size:11px;font-weight:600}.exercise-screen{--exercise-cta-top-offset:calc(75px + env(safe-area-inset-bottom,0px));--exercise-feedback-summary-height:61px;--exercise-submitted-scroll-padding:81px;background:var(--gray-100);flex-direction:column;height:100%;display:flex;position:relative}.exercise-top{z-index:8;background:var(--gray-100);grid-template-columns:40px 1fr 40px;gap:12px;display:grid;position:relative}.exercise-top:after{content:"";z-index:-1;right:0;bottom:calc(-1 * var(--topbar-fade-overlap));height:var(--topbar-fade-height);background:var(--topbar-gradient);pointer-events:none;position:absolute;left:0}.exercise-progress{background:var(--blue-91);border-radius:10px;height:8px;overflow:hidden}.exercise-progress i{border-radius:inherit;background:var(--blue-65);height:100%;display:block}.exercise-content-viewport{flex:1;min-height:0;position:relative;overflow:hidden}.is-reviewed .exercise-content-viewport,.exercise-screen--submitted .exercise-content-viewport{margin-bottom:var(--exercise-feedback-summary-height)}.exercise-body{padding:40px 24px 16px;position:absolute;inset:0;overflow-y:auto}.is-reviewed .exercise-body,.exercise-screen--submitted .exercise-body{padding-bottom:var(--exercise-submitted-scroll-padding)}.past-mistake-tag{color:var(--orange-label);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;font-weight:800;line-height:16px;display:flex}.past-mistake-tag svg{width:16px;height:16px;color:var(--orange-66)}.exercise-body h1{margin:0 0 20px;font:700 30px/40px Unbounded,sans-serif}.exercise-task-content{gap:20px;margin:0 0 35px;font-size:14px;font-weight:500;line-height:20px;display:grid}.exercise-task-content p:first-child{font-size:16px;font-weight:600;line-height:24px}.exercise-task-content p{margin:0}.exercise-body>input{border:2px dashed var(--gray-91);background:var(--gray-100);border-radius:14px;outline:none;width:100%;height:56px;padding:0 12px;font-size:16px;font-weight:600}.exercise-body>input::placeholder{color:var(--gray-80);font-weight:500}.exercise-body>input:focus{border-style:solid;border-color:var(--blue-65);background:var(--blue-97)}.exercise-body>input.correct{color:var(--green-66);border:2px solid var(--green-66);background:var(--green-96)}.exercise-body>input.incorrect,.exercise-body>input.skipped,.interaction-text-input>input.incorrect,.interaction-options :is(input,select,button).incorrect{color:var(--interaction-incorrect);border:2px solid var(--interaction-incorrect);background:var(--interaction-incorrect-soft)}.interaction-text-input>input{border:2px dashed var(--interaction-border);width:100%;height:56px;color:var(--interaction-ink);background:var(--interaction-surface);border-radius:14px;outline:none;padding:0 12px;font-size:16px;font-weight:600}.interaction-text-input>input:focus-visible,.interaction-options input:focus-visible,.interaction-options :is(select,button):focus-visible,.interaction-matching button:focus-visible,.punctuation-sentences :is(button,select,input):focus-visible,.punctuation-markup-toolbar button:focus-visible{outline:3px solid var(--interaction-accent-soft);outline-offset:2px}.interaction-text-input>input:not(:placeholder-shown){border-style:solid}.interaction-text-input>input:focus{border-style:solid;border-color:var(--interaction-accent);background:var(--interaction-accent-soft)}.interaction-text-input>input.correct,.interaction-options :is(input,select,button).correct{border-color:var(--interaction-correct);color:var(--interaction-correct);background:var(--interaction-correct-soft)}.interaction-correction{color:var(--interaction-correct);margin-top:8px;font-size:13px;font-weight:700}.interaction-options{border:0;gap:8px;min-width:0;margin:0;padding:0 0 4px;display:grid}.choice-answer-block{color:var(--gray-14);border-radius:14px}.choice-answer{border:2px solid var(--gray-92);background:var(--gray-100);min-height:72px;box-shadow:0 var(--depth-sm) 0 var(--gray-92);cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:14px;align-items:flex-start;gap:10px;padding:14px 12px;display:flex;position:relative}.choice-answer:active{box-shadow:none;transform:translateY(var(--depth-sm))}.choice-answer-input{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.choice-picker-icon{width:24px;height:24px;color:var(--gray-80);flex:0 0 24px;place-items:center;display:grid}.selection-state-icon{width:24px;height:24px;display:block}.choice-answer.selected .choice-picker-icon svg path:first-child,:is(.fill-blank-option,.cycle-blank-option).selected :is(.fill-blank-picker,.cycle-blank-picker) svg path:first-child{fill:var(--blue-65);stroke:var(--blue-65)}.choice-answer.selected .choice-picker-icon svg path:last-child,:is(.fill-blank-option,.cycle-blank-option).selected :is(.fill-blank-picker,.cycle-blank-picker) svg path:last-child{stroke:var(--gray-100)}.choice-answer-block.correct .choice-picker-icon svg path:first-child,:is(.fill-blank-option,.cycle-blank-option).correct :is(.fill-blank-picker,.cycle-blank-picker) svg path:first-child{fill:var(--green-64);stroke:var(--green-64)}.choice-answer-block.correct .choice-picker-icon svg path:last-child,:is(.fill-blank-option,.cycle-blank-option).correct :is(.fill-blank-picker,.cycle-blank-picker) svg path:last-child{stroke:var(--green-96)}.choice-answer-block.incorrect .choice-picker-icon svg path:first-child,:is(.fill-blank-option,.cycle-blank-option).incorrect :is(.fill-blank-picker,.cycle-blank-picker) svg path:first-child{fill:var(--interaction-incorrect);stroke:var(--interaction-incorrect)}.choice-answer-block.incorrect .choice-picker-icon svg path:last-child,:is(.fill-blank-option,.cycle-blank-option).incorrect :is(.fill-blank-picker,.cycle-blank-picker) svg path:last-child{stroke:var(--interaction-incorrect-soft)}.choice-answer-input:focus-visible+.choice-picker-icon,:is(.fill-blank-picker,.cycle-blank-picker):focus-visible,.cycle-blank-control:focus-visible{outline:3px solid var(--blue-90);outline-offset:1px;border-radius:6px}.choice-answer.selected .choice-picker-icon,:is(.fill-blank-option,.cycle-blank-option).selected :is(.fill-blank-picker,.cycle-blank-picker){color:var(--blue-65)}.choice-answer-block:is(.correct,.missed-correct) .choice-picker-icon,:is(.fill-blank-option,.cycle-blank-option):is(.correct,.missed-correct) :is(.fill-blank-picker,.cycle-blank-picker){color:var(--green-64)}.choice-answer-block.missed-correct .choice-picker-icon{color:var(--green-71)}.choice-answer-block.incorrect .choice-picker-icon,:is(.fill-blank-option,.cycle-blank-option).incorrect :is(.fill-blank-picker,.cycle-blank-picker){color:var(--interaction-incorrect)}.choice-answer-copy{min-width:0;font-size:16px;font-weight:400;line-height:24px}.choice-answer.selected{color:var(--blue-65);border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.choice-answer-block.correct .choice-answer{color:var(--green-65);border-color:var(--green-65);background:var(--green-96);box-shadow:0 var(--depth-sm) 0 var(--green-65);cursor:default}.choice-answer-block.missed-correct .choice-answer{color:var(--green-65);border-color:var(--green-88);background:var(--green-99);box-shadow:0 var(--depth-sm) 0 var(--green-88);cursor:default}.choice-answer-block.incorrect .choice-answer{color:var(--interaction-incorrect);border-color:var(--interaction-incorrect);background:var(--interaction-incorrect-soft);box-shadow:0 var(--depth-sm) 0 var(--interaction-incorrect);cursor:default}.choice-answer-block .choice-answer:has(.choice-answer-input:disabled):active{transform:none}.choice-answer-explanation-reveal,.fill-blank-explanation-reveal,.cycle-blank-explanation-reveal{animation:interaction-explanation-reveal var(--motion-duration) var(--motion-easing) both;margin-top:8px;display:grid;overflow:hidden}@keyframes interaction-explanation-reveal{0%{opacity:0;grid-template-rows:0fr;transform:translateY(-12px)}to{opacity:1;grid-template-rows:1fr;transform:translateY(0)}}.choice-answer-explanation,.fill-blank-explanation,.cycle-blank-explanation{min-height:0;color:var(--gray-32);background:var(--gray-98);border-radius:16px;padding:12px 14px 14px;font-size:14px;font-weight:500;line-height:21px}:is(.choice-answer-explanation,.fill-blank-explanation,.cycle-blank-explanation) strong{color:var(--gray-14);margin-bottom:6px;font-size:14px;font-weight:700;display:block}:is(.choice-answer-explanation,.fill-blank-explanation,.cycle-blank-explanation) p,:is(.choice-answer-explanation,.fill-blank-explanation,.cycle-blank-explanation) ul{margin:0}:is(.fill-blank-explanation,.cycle-blank-explanation) ul{padding-left:17px}.fill-blanks-exercise-body,.cycle-blanks-exercise-body,.punctuation-exercise-body,.matching-exercise-body{padding-top:20px}.fill-blanks-task-instruction,.cycle-blanks-task-instruction,.punctuation-task-instruction,.matching-task-instruction{margin-bottom:20px}.fill-blank-option-list,.cycle-blank-option-list,.matching-prompt-list{gap:8px;padding-bottom:16px;display:grid}.fill-blank-option,.cycle-blank-option{color:var(--gray-14);border-radius:14px}.fill-blank-option-card,.cycle-blank-option-card{--control-depth:var(--depth-sm);border:2px solid var(--gray-92);background:var(--gray-97);min-width:0;min-height:0;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:14px;grid-template-columns:24px minmax(0,1fr);align-items:flex-start;gap:10px;padding:14px 12px;display:grid}:is(.fill-blank-option,.cycle-blank-option).incomplete :is(.fill-blank-option-card,.cycle-blank-option-card){box-shadow:none;transform:translateY(var(--control-depth))}:is(.fill-blank-option,.cycle-blank-option):is(.complete,.selected) :is(.fill-blank-option-card,.cycle-blank-option-card){cursor:pointer}:is(.fill-blank-option,.cycle-blank-option):is(.complete,.selected) :is(.fill-blank-option-card,.cycle-blank-option-card):active:not(:has(input:active,button:active)){box-shadow:none;transform:translateY(min(var(--control-depth), var(--motion-press-depth)));animation:none}:is(.fill-blank-option-card,.cycle-blank-option-card)[data-control-motion=enabled],:is(.cycle-blank-control,.punctuation-position)[data-control-motion=enabled]{animation:control-enable var(--motion-duration) var(--motion-easing)}:is(.fill-blank-option,.cycle-blank-option):is(.complete,.neutral) :is(.fill-blank-option-card,.cycle-blank-option-card){background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-92)}:is(.fill-blank-option,.cycle-blank-option).selected :is(.fill-blank-option-card,.cycle-blank-option-card){border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}:is(.fill-blank-option,.cycle-blank-option).correct :is(.fill-blank-option-card,.cycle-blank-option-card){color:var(--green-61);border-color:var(--green-64);background:var(--green-96);box-shadow:0 var(--depth-sm) 0 var(--green-64)}:is(.fill-blank-option,.cycle-blank-option).missed-correct :is(.fill-blank-option-card,.cycle-blank-option-card){border-color:var(--green-72);background:var(--green-99);box-shadow:0 var(--depth-sm) 0 var(--green-72)}:is(.fill-blank-option,.cycle-blank-option).incorrect :is(.fill-blank-option-card,.cycle-blank-option-card){color:var(--interaction-incorrect);border-color:var(--interaction-incorrect);background:var(--interaction-incorrect-soft);box-shadow:0 var(--depth-sm) 0 var(--interaction-incorrect)}.fill-blank-picker,.cycle-blank-picker{width:24px;height:24px;color:var(--gray-80);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}:is(.fill-blank-picker,.cycle-blank-picker):disabled{color:var(--gray-91);cursor:default}.fill-blank-option-copy,.cycle-blank-option-copy{min-width:0;font-size:14px;font-weight:400;line-height:42px}:is(.fill-blank-option-copy,.cycle-blank-option-copy)>span{white-space:pre-wrap}.fill-blank-option-copy>input{border:2px solid var(--gray-92);width:24px;height:32px;color:var(--gray-14);background:var(--gray-100);vertical-align:middle;text-align:center;text-transform:uppercase;caret-color:var(--blue-65);border-radius:8px;outline:0;margin:0 2px;padding:2px;font:500 16px/24px Montserrat Alternates,sans-serif}.fill-blank-option-copy>input:focus{border-color:var(--blue-65)}.cycle-blank-control{--control-depth:var(--depth-sm);border:2px solid var(--gray-92);min-height:32px;color:var(--gray-14);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-92);vertical-align:middle;text-transform:uppercase;cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:8px;margin:0 2px;padding:2px 6px;font:500 16px/24px Montserrat Alternates,sans-serif}.cycle-blank-control.placeholder{color:var(--gray-80);box-shadow:none;border-style:dashed}.cycle-blank-control:not(:disabled):active{box-shadow:none;transform:translateY(min(var(--control-depth), var(--motion-press-depth)))}.cycle-blank-control:disabled{cursor:default}.cycle-blank-control.correct{color:var(--green-61);border-color:var(--green-64);background:var(--gray-100);box-shadow:none}.cycle-blank-control.incorrect{color:var(--interaction-incorrect);border-color:var(--interaction-incorrect);background:var(--gray-100);box-shadow:none}.punctuation-sentence-list,.punctuation-rule-sentence-list{gap:12px;padding-bottom:16px;display:grid}.punctuation-sentence-card,.punctuation-rule-sentence{border:2px solid var(--gray-91);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-91);border-radius:14px;overflow:hidden}.punctuation-sentence-card.fill-blank-option,.punctuation-rule-sentence.fill-blank-option{box-shadow:none;background:0 0;border:0;overflow:visible}.punctuation-content-option{color:var(--gray-14);border-radius:14px}.punctuation-content-card{border-color:var(--gray-91);background:var(--gray-100);box-shadow:none;overflow:hidden}.punctuation-content-explanation-reveal{margin-top:-2px}.punctuation-content-explanation{border-color:var(--interaction-incorrect)}.punctuation-sentence-card-inner,.punctuation-rule-card{align-items:flex-start}.punctuation-option-copy{min-width:0;line-height:42px}.punctuation-option-number{margin-right:8px;display:inline}.punctuation-sentence-copy{margin:0;padding:14px 12px;font-size:16px;line-height:38px}.punctuation-token-group{display:inline}.punctuation-word{color:inherit;font:inherit;line-height:inherit;touch-action:pan-y;background:0 0;border:0;border-radius:4px;padding:2px 1px}.punctuation-word:disabled{cursor:default}.punctuation-word.selected{color:#075985;background:#bae6fd}.punctuation-word.role-subject{text-underline-offset:4px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-thickness:2px}.punctuation-word.role-predicate{text-underline-offset:4px;text-decoration-line:underline;text-decoration-style:double;text-decoration-thickness:2px}.punctuation-word.role-attribute{text-underline-offset:4px;text-decoration-line:underline;text-decoration-style:wavy;text-decoration-thickness:1.5px}.punctuation-word.role-object{text-underline-offset:4px;text-decoration-line:underline;text-decoration-style:dashed;text-decoration-thickness:2px}.punctuation-word.role-adverbial{background-image:repeating-linear-gradient(90deg,currentColor 0 8px,#0000 8px 11px,currentColor 11px 13px,#0000 13px 17px);background-position:0 calc(50% + .6em);background-repeat:repeat-x;background-size:auto 2px}.punctuation-ordinary-space{white-space:pre}.punctuation-position{--control-depth:var(--depth-sm);border:2px dashed var(--gray-83);width:30px;height:30px;color:var(--gray-72);background:var(--gray-97);vertical-align:middle;cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:8px;margin:0 2px;padding:0;position:relative}.punctuation-position.undecided:not(.numbered-position){border-style:solid;border-color:var(--gray-92);color:#0000;background:var(--gray-100);box-shadow:none}.punctuation-position b{font-size:19px;line-height:23px;display:block}.punctuation-position:is(.comma,.gap){border-style:solid;border-color:var(--blue-65);color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.punctuation-position.gap b{font-size:15px}.punctuation-position:not(:disabled):active{box-shadow:none;transform:translateY(min(var(--control-depth), var(--motion-press-depth)))}.punctuation-position.correct{border-color:var(--green-64);color:var(--green-61);background:var(--green-96);box-shadow:none}.punctuation-position.incorrect{border-color:var(--interaction-incorrect);color:var(--interaction-incorrect);background:var(--interaction-incorrect-soft);box-shadow:none}.punctuation-position.numbered-position{width:auto;min-width:38px;height:32px;margin:0 3px;padding:2px 7px;line-height:24px}.punctuation-position.numbered-position b{font-size:15px;line-height:24px}.punctuation-position.numbered-position.placeholder{color:var(--gray-80);box-shadow:none;border-style:dashed}.fill-blank-explanation ol,.cycle-blank-explanation ol{margin:0;padding-left:30px;list-style:decimal}:is(.fill-blank-explanation,.cycle-blank-explanation) ol li::marker{color:currentColor;font-weight:700}:is(.fill-blank-explanation,.cycle-blank-explanation) li+li{margin-top:4px}:is(.fill-blank-explanation,.cycle-blank-explanation) p{margin:6px 0 0}.punctuation-rule-card-content{width:100%;min-width:0}.punctuation-rule-copy{grid-template-columns:max-content minmax(0,1fr);gap:8px;width:100%;padding:0 0 12px;font-size:16px;line-height:27px;display:grid}.punctuation-rule-copy>b{color:var(--gray-56)}.punctuation-rule-copy p{overflow-wrap:anywhere;min-width:0;margin:0}.punctuation-rule-mapping{border:2px dashed var(--gray-83);width:100%;min-height:48px;color:var(--gray-56);background:var(--gray-98);text-align:left;cursor:pointer;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.punctuation-rule-mapping:not(:disabled):active{transform:scale(.98)}.punctuation-rule-mapping.complete:not(:disabled):active{transform:translateY(var(--depth-sm));box-shadow:none}.punctuation-rule-mapping.complete{border-style:solid;border-color:var(--blue-65);color:var(--blue-56);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.punctuation-rule-mapping.correct{border-style:solid;border-color:var(--green-64);color:var(--green-61);background:var(--gray-100)}.punctuation-rule-mapping.incorrect{border-style:solid;border-color:var(--interaction-incorrect);color:var(--interaction-incorrect);background:var(--gray-100)}.punctuation-markup-toolbar{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;width:100%;margin:8px 0 6px;display:grid}.punctuation-exercise-footer{z-index:25;position:relative}.punctuation-exercise-footer:has(.punctuation-markup-toolbar){min-height:calc(174px + env(safe-area-inset-bottom,0px));padding-bottom:calc(42px + env(safe-area-inset-bottom,0px));grid-template-rows:50px 56px}.punctuation-exercise-footer .punctuation-markup-toolbar{grid-column:1/-1;margin:0}.punctuation-markup-toolbar button{--control-depth:var(--depth-sm);border:1.5px solid var(--gray-83);min-width:0;height:40px;color:var(--gray-32);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-83);cursor:pointer;transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:9px;padding:0 3px;font:600 11px Montserrat Alternates,sans-serif}.punctuation-markup-toolbar button.active{border-color:var(--blue-cta-depth);color:var(--gray-14);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth)}.punctuation-markup-toolbar button:not(:disabled):active{box-shadow:none;transform:translateY(min(var(--control-depth), var(--motion-press-depth)))}.punctuation-markup-toolbar .role-subject{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.punctuation-markup-toolbar .role-predicate{text-underline-offset:3px;text-decoration-line:underline;text-decoration-style:double;text-decoration-thickness:2px}.punctuation-markup-toolbar .role-attribute{text-underline-offset:3px;text-decoration-line:underline;text-decoration-style:wavy;text-decoration-thickness:1.5px}.punctuation-markup-toolbar .role-object{text-underline-offset:3px;text-decoration-line:underline;text-decoration-style:dashed;text-decoration-thickness:2px}.punctuation-markup-toolbar .role-adverbial span{background-image:repeating-linear-gradient(90deg,currentColor 0 7px,#0000 7px 10px,currentColor 10px 12px,#0000 12px 16px);background-position:0 calc(50% + .6em);background-repeat:repeat-x;background-size:auto 2px}.punctuation-markup-toolbar .role-clear{color:var(--gray-14);font-size:18px}.punctuation-rule-sheet-title{white-space:normal;overflow-wrap:normal;word-break:normal;flex-wrap:wrap;align-items:baseline;column-gap:7px;width:100%;height:fit-content;max-height:none;display:flex;overflow:visible;line-height:28px!important}.punctuation-rule-sheet-title>b,.punctuation-rule-sheet-title>span{white-space:nowrap;display:inline-block}.punctuation-rule-sheet-title .punctuation-word{white-space:nowrap;word-break:keep-all;font-weight:600}.punctuation-drawer-markup-toolbar{flex:none;margin:4px 0 8px}.matching-prompt-list{gap:8px}.matching-prompt-control{--control-depth:var(--depth-sm);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 48px;gap:8px;width:100%;min-height:80px;padding:0;display:grid}.matching-prompt-control:disabled{--control-depth:0px;cursor:default}.matching-prompt-label,.matching-prompt-answer{border:2px solid var(--gray-91);background:var(--gray-100);min-height:80px;box-shadow:0 var(--depth-sm) 0 var(--gray-91);transition:color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:14px}.matching-prompt-label{align-items:center;padding:14px 10px;font-size:16px;font-weight:500;line-height:24px;display:flex}.matching-prompt-answer{color:var(--gray-85);border-color:var(--gray-85);background:var(--gray-97);box-shadow:none;border-style:dashed;place-items:center;font-size:18px;font-weight:700;display:grid}.matching-prompt.selected .matching-prompt-answer{color:var(--blue-65)}.matching-prompt.selected :is(.matching-prompt-label,.matching-prompt-answer){border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65);border-style:solid}.matching-prompt.correct :is(.matching-prompt-label,.matching-prompt-answer){color:var(--green-66);border-color:var(--green-66);background:var(--green-96);box-shadow:0 var(--depth-sm) 0 var(--green-66)}.matching-prompt.incorrect :is(.matching-prompt-label,.matching-prompt-answer){color:var(--interaction-incorrect);border-color:var(--interaction-incorrect);background:var(--interaction-incorrect-soft);box-shadow:0 var(--depth-sm) 0 var(--interaction-incorrect)}.matching-explanation-reveal{animation:explanation-reveal var(--motion-duration) var(--motion-easing) both;margin-top:4px;display:grid;overflow:hidden}.matching-explanation{color:var(--gray-32);background:var(--gray-98);border-radius:16px;margin-top:4px;padding:10px 14px 14px;font-size:14px;font-weight:500;line-height:21px}.matching-explanation strong{color:var(--gray-14);margin:6px 0;font-weight:700;display:block}.matching-explanation p{margin:0}.matching-correction{height:28px;color:var(--green-label);align-items:center;gap:10px;font-weight:700;display:flex}.bottom-sheet.matching-choice-sheet{height:calc(100% - 80px);padding:8px 24px 31px;overflow:hidden}.matching-choice-content{flex-direction:column;height:calc(100% - 22px);min-height:0;font-family:Montserrat Alternates,sans-serif;display:flex}.matching-choice-content>h2{flex:none;margin:0 0 20px;font-family:Montserrat Alternates,sans-serif;font-size:16px;font-weight:700;line-height:24px}.matching-choice-list{scrollbar-width:none;flex-direction:column;flex:1;align-items:stretch;gap:10px;min-height:0;padding:0 0 8px;display:flex;overflow-y:auto}.matching-choice-list::-webkit-scrollbar{display:none}.matching-choice-list{padding-bottom:32px;-webkit-mask-image:linear-gradient(#000 calc(100% - 32px),#0000);mask-image:linear-gradient(#000 calc(100% - 32px),#0000)}.matching-choice-used{color:var(--gray-56);flex:none;margin-left:auto;padding-top:3px;font-size:12px;font-weight:600}.matching-choice-option{--control-depth:var(--depth-sm);border:2px solid var(--gray-91);width:100%;height:fit-content;min-height:0;color:var(--gray-18);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-91);font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-shrink:0;align-items:flex-start;gap:10px;padding:14px 12px;display:flex}.matching-choice-option>span:last-child{padding-top:1px;font-size:16px;font-weight:500;line-height:24px}.matching-choice-option>span:last-child b{font-weight:500}.matching-choice-radio{border:2px solid var(--gray-80);background:var(--gray-100);border-radius:50%;flex:0 0 22px;width:22px;height:22px;margin-top:1px}.matching-choice-option.selected{border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.matching-choice-option.selected .matching-choice-radio{border:7px solid var(--blue-65)}.matching-choice-option:disabled{color:var(--gray-80);border-color:var(--gray-91);background:var(--gray-98);box-shadow:none;cursor:default;transform:translateY(var(--depth-sm))}.matching-choice-option:focus-visible,.matching-prompt-control:focus-visible{outline:3px solid var(--blue-90);outline-offset:2px}.passage-card{border:1.5px solid var(--gray-90);background:var(--gray-100);border-radius:14px;width:100%;height:clamp(180px,24dvh,240px);margin:-15px 0 40px;position:relative;overflow:hidden}.passage-scroll{overscroll-behavior:contain;scrollbar-color:var(--gray-68) transparent;scrollbar-width:auto;height:100%;padding:12px 24px 34px 12px;overflow-y:auto}.passage-scroll:focus-visible{outline:3px solid var(--blue-90);outline-offset:-3px}.passage-scroll::-webkit-scrollbar{width:10px}.passage-scroll::-webkit-scrollbar-track{background:0 0;margin:10px 0 34px}.passage-scroll::-webkit-scrollbar-thumb{background:var(--gray-68);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.passage-scroll p{white-space:pre-line;margin:0;font-size:13px;font-weight:500;line-height:18px}.passage-scroll .passage-copy p+p{margin-top:18px}.passage-toggle{width:28px;height:28px;color:var(--gray-56);background:var(--veil-95);box-shadow:0 0 10px 8px var(--gray-100);cursor:pointer;border:0;border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;bottom:8px;right:8px}.passage-toggle svg{width:22px;height:22px}.passage-toggle:focus-visible{outline:3px solid var(--blue-90);outline-offset:1px}.passage-overlay{z-index:35;pointer-events:none;position:absolute;inset:0}.passage-backdrop{background:var(--scrim-26);pointer-events:auto;animation:passage-backdrop-enter var(--motion-duration) var(--motion-easing) both;position:absolute;inset:0}.passage-card--expanded{z-index:1;width:auto;height:auto;box-shadow:0 16px 48px var(--scrim-20);pointer-events:auto;animation:passage-card-enter var(--motion-duration) var(--motion-easing) both;border-radius:20px;margin:0;position:absolute;inset:clamp(28px,7dvh,64px) 16px}.confetti-canvas{z-index:29;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}@keyframes passage-backdrop-enter{0%{opacity:0}}@keyframes passage-card-enter{0%{opacity:0;transform:scale(.96)}}.answer-explanation,.skipped-answer-review{animation:explanation-reveal var(--motion-duration) var(--motion-easing) both;gap:10px;margin-top:12px;display:grid}.skipped-answer-review{margin-top:16px}.correct-answer-card{border:2px solid var(--green-88);background:var(--green-96);border-radius:16px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.correct-answer-card>svg{width:22px;height:22px;color:var(--green-64);flex:none}.correct-answer-card>div{gap:2px;min-width:0;display:grid}.correct-answer-card span{color:var(--green-label);font-size:12px;font-weight:700;line-height:16px}.correct-answer-card strong{color:var(--green-label);overflow-wrap:anywhere;font-size:17px;font-weight:700;line-height:22px}.explanation-card{color:var(--gray-32);background:var(--gray-98);border-radius:16px;padding:12px 14px 14px;font-size:14px;font-weight:500;line-height:21px}.explanation-card>strong{color:var(--gray-14);align-items:center;gap:6px;margin-bottom:6px;font-size:14px;font-weight:700;display:flex}.explanation-card>strong svg{width:18px;height:18px;color:var(--yellow-81)}.explanation-card p{margin:0}.explanation-card p+p{margin-top:8px}.skipped-answer-explanation{animation:explanation-reveal var(--motion-duration) var(--motion-easing) both}@keyframes explanation-reveal{0%{opacity:0;transform:translateY(-12px)}}.exercise-footer{min-height:calc(88px + env(safe-area-inset-bottom,0px));padding:10px 24px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--gray-91);background:var(--gray-100);grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.exercise-footer--feedback-controls{z-index:25;background:0 0;border-top-color:#0000;position:relative}.practice-skip-action{--control-depth:var(--depth-sm);border:2px solid var(--gray-91);height:56px;color:var(--gray-52);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-91);cursor:pointer;border-radius:14px;padding:0 18px;font-size:17px;font-weight:700}.practice-skip-action:disabled{opacity:.5}.exercise-footer--feedback-controls>.primary-action{grid-column:1/-1}.exercise-feedback-panel{z-index:24;height:calc(var(--exercise-cta-top-offset) + 74px);pointer-events:none;animation:answer-feedback-enter var(--motion-duration) var(--motion-easing) both;position:absolute;bottom:0;left:0;right:0}.exercise-feedback-panel.correct{color:var(--green-56);background:var(--green-96)}.exercise-feedback-panel.incorrect{color:var(--interaction-incorrect);background:var(--interaction-incorrect-soft)}.exercise-feedback-panel.skipped{color:var(--blue-56);background:var(--blue-96)}.answer-feedback-summary{align-items:center;gap:10px;min-height:34px;font-size:20px;line-height:28px;display:flex;position:absolute;top:20px;left:24px;right:24px}.answer-feedback-summary>span{border:3px solid;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.answer-feedback-summary svg{stroke-width:2px;width:18px;height:18px}.exercise-footer--feedback-controls.correct .primary-action:not(:disabled){border-color:var(--green-56);background:var(--green-69);box-shadow:0 var(--depth-sm) 0 var(--green-56)}.exercise-footer--feedback-controls.incorrect .primary-action:not(:disabled){border-color:var(--red-54);background:var(--red-65);box-shadow:0 var(--depth-sm) 0 var(--red-54)}.exercise-footer--feedback-controls.skipped .primary-action:not(:disabled){border-color:var(--blue-cta-depth);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth)}@keyframes answer-feedback-enter{0%{transform:translateY(100%)}}.request-error{z-index:50;border:2px solid var(--red-59);color:var(--red-59);background:var(--gray-100);border-radius:14px;padding:12px;font-size:12px;position:absolute;bottom:112px;left:16px;right:16px}.request-error div{margin-top:8px}.request-error button{color:var(--red-59);background:0 0;border:0;font-weight:700}.bottom-sheet h2{align-items:center;gap:7px;margin:0;font-size:20px;font-weight:700;line-height:28px;display:flex}.bottom-sheet h2 svg{width:23px;height:23px}.bottom-sheet:is(.exit,.info,.task-report-sheet){font-family:Montserrat Alternates,sans-serif}.feedback-sheet-content{flex-direction:column;gap:20px;display:flex}.feedback-sheet-heading{flex-direction:column;gap:6px;display:flex}.feedback-sheet-heading p{margin:0;font-size:14px;font-weight:400;line-height:20px}.feedback-sheet-actions{flex-direction:column;gap:12px;display:flex}.bottom-sheet .primary-action{width:100%}.task-report{justify-content:center;margin-top:12px;display:flex}.review-item .task-report{justify-content:flex-start;margin-top:4px}.task-report-link{color:var(--gray-56);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:8px 4px;font-size:13px;font-weight:600;line-height:18px;text-decoration:underline}.task-report-link.is-sent{cursor:default;text-decoration:none}.task-report-reasons{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.task-report-reason{border:2px solid var(--gray-92);box-sizing:border-box;background:var(--gray-100);cursor:pointer;border-radius:14px;align-items:center;gap:12px;min-height:48px;padding:10px 14px;font-size:15px;font-weight:600;display:flex}.task-report-reason i{box-sizing:border-box;border:2px solid var(--gray-86);border-radius:50%;flex-shrink:0;width:20px;height:20px}.task-report-reason.is-selected{border-color:var(--blue-65);background:var(--blue-97)}.task-report-reason.is-selected i{border:6px solid var(--blue-65)}.task-report-reason:has(input:focus-visible){outline:3px solid var(--blue-90);outline-offset:2px}.task-report-comment{flex-direction:column;gap:6px;display:flex}.task-report-comment textarea{resize:none;height:auto;padding:12px 14px}.task-report-error{color:var(--red-54);margin:0;font-size:14px;font-weight:600}.task-report-thanks{text-align:center;align-items:center;gap:12px;padding:16px 0 24px}.task-report-thanks>svg{width:48px;height:48px;color:var(--green-61)}.exit-later-action{width:100%;height:44px;color:var(--blue-65);font-size:14px;font-weight:700}.bottom-sheet.exit{min-height:252px}.bottom-sheet.info{min-height:529px}.bottom-sheet dl{margin:0}.bottom-sheet dt{font-size:18px;font-weight:700;line-height:24px}.bottom-sheet dd{margin:2px 0 23px;font-size:14px;font-weight:500;line-height:20px}.completion-screen{background:var(--gray-100);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.completion-content{text-align:center;flex-direction:column;flex:1;align-items:center;min-height:0;padding:20px 24px;display:flex;overflow-y:auto}.completion-mascot{flex:0 0 171px;width:196px;height:171px}.completion-mascot .orbi-canvas{width:170%;height:195%;top:-39%;left:-25.5%}.completion-copy{width:100%;margin-top:36px}.completion-content h1{font:700 24px/30px Montserrat Alternates,sans-serif}.completion-lede{color:var(--gray-56);margin-top:8px;font-size:14px;font-weight:600;line-height:20px;display:block}.completion-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;margin-top:28px;display:grid}.streak-sheet-content{flex-direction:column;gap:24px;display:flex}.streak-hero{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.streak-hero>svg{width:64px;height:64px;color:var(--gray-86)}.streak-hero.is-lit>svg{color:var(--orange-66)}.streak-hero h2{align-items:baseline;gap:8px;margin:4px 0 0;font-size:18px;font-weight:700;display:flex}.streak-hero h2 b{font-variant-numeric:tabular-nums;font:700 40px/44px Unbounded,sans-serif}.streak-hero p{max-width:280px;color:var(--gray-56);margin:4px 0 0;font-size:14px;font-weight:600;line-height:20px}.streak-week{border:2px solid var(--gray-92);border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:14px 12px;list-style:none;display:grid}.streak-day{color:var(--gray-68);flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.streak-day-mark{background:var(--gray-97);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.streak-day-mark svg{width:18px;height:18px}.streak-day.is-done{color:var(--orange-label)}.streak-day.is-done .streak-day-mark{color:var(--gray-100);background:var(--orange-66)}.streak-day.is-today{color:var(--gray-14)}.streak-day.is-today .streak-day-mark{background:var(--gray-100);box-shadow:inset 0 0 0 2px var(--orange-66)}.streak-day.is-future .streak-day-mark{box-shadow:inset 0 0 0 2px var(--gray-92);background:0 0}.streak-day.is-frozen{color:var(--blue-54)}.streak-day.is-frozen .streak-day-mark{color:var(--blue-54);background:var(--blue-94)}.streak-freeze{color:var(--gray-56);text-align:left;justify-content:center;align-items:center;gap:6px;margin:-12px 0 0;font-size:13px;font-weight:600;line-height:18px;display:flex}.streak-freeze svg{flex:none;width:16px;height:16px}.streak-freeze.is-available{color:var(--blue-54)}.streak-facts{grid-template-columns:1fr 1fr;gap:12px;margin:0;display:grid}.streak-facts>div{border:2px solid var(--gray-92);border-radius:16px;padding:12px 14px}.streak-facts dt{color:var(--gray-56);font-size:12px;font-weight:700}.streak-facts dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font:700 20px/26px Unbounded,sans-serif}.streak-facts dd small{color:var(--gray-56);font-size:12px}.completion-forecast,.completion-streak{width:100%;color:var(--gray-52);align-items:center;gap:8px;margin-top:14px;padding:12px 0;font-size:14px;font-weight:700;display:flex}.completion-forecast+.completion-streak{border-top:1px solid var(--gray-91);margin-top:0}.completion-streak>svg{width:22px;height:22px;color:var(--orange-label);flex:none}.completion-streak>span{text-align:left;display:grid}.completion-streak small{color:var(--gray-56);font-size:13px;font-weight:600}.completion-streak b{white-space:nowrap;color:var(--orange-label);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font:700 18px/22px Unbounded,sans-serif}.completion-forecast svg{width:22px;height:22px;color:var(--green-61)}.completion-forecast b{color:var(--green-label);font-variant-numeric:tabular-nums;margin-left:auto;font:700 18px/22px Unbounded,sans-serif}.completion-forecast-delta{color:var(--green-label);font-size:13px}.completion-forecast-delta.is-down{color:var(--gray-52)}.completion-details{text-align:left;align-items:stretch;padding-top:4px}.completion-review-top{height:var(--control-topbar-height);padding:var(--control-topbar-padding);grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;display:grid}.completion-review-top h1{text-align:center;font:700 18px/24px Montserrat Alternates,sans-serif}.completion-details h2{margin:0;font:700 18px/24px Montserrat Alternates,sans-serif}.completion-late{color:var(--red-label);background:var(--red-95);border-radius:999px;align-self:flex-start;margin-bottom:12px;padding:4px 10px;font-size:12px;font-weight:700}.completion-topics-title{margin-top:28px!important}.review-list{gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.review-item{--review-accent:var(--green-64);--review-soft:var(--green-96);border:2px solid var(--gray-92);background:var(--gray-100);box-shadow:0 var(--depth-sm) 0 var(--gray-92);border-radius:18px}.review-item.tone-incorrect{--review-accent:var(--red-65);--review-soft:var(--red-95)}.review-item.tone-skipped{--review-accent:var(--gray-61);--review-soft:var(--gray-97)}.review-item>details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;min-height:64px;padding:12px 14px;list-style:none;display:flex}.review-item>details>summary::-webkit-details-marker{display:none}.review-item>details>summary:focus-visible{outline:3px solid var(--blue-90);border-radius:16px}.review-item-status{width:32px;height:32px;color:var(--gray-100);background:var(--review-accent);border-radius:50%;flex:none;place-items:center;display:grid}.review-item-status svg{stroke-width:3px;width:18px;height:18px}.review-item-title{flex:1;gap:2px;min-width:0;display:grid}.review-item-title strong{font-size:15px;font-weight:700;line-height:20px}.review-item-title small{color:var(--gray-56);gap:8px;font-size:12px;font-weight:600;line-height:16px;display:flex}.review-item-title small span:first-child{color:var(--review-accent)}@supports (color:color-mix(in lab, red, red)){.review-item-title small span:first-child{color:color-mix(in oklab, var(--review-accent) 75%, black)}}.review-item-title small span+span:before{content:"·";color:var(--gray-79);margin-right:8px}.review-item-xp{color:var(--blue-54);background:var(--blue-96);border-radius:999px;flex:none;padding:4px 8px;font-size:12px;font-weight:700}.review-item-chevron{width:20px;height:20px;color:var(--gray-68);transition:transform var(--motion-duration) var(--motion-easing);flex:none}.review-item>details[open] .review-item-chevron{transform:rotate(180deg)}.review-item-body{gap:10px;padding:0 14px 14px;display:grid}.review-answers{gap:8px;margin:0;display:grid}.review-answers>div{background:var(--green-96);border-radius:14px;padding:10px 12px}.review-answers>div.incorrect{background:var(--red-95)}.review-answers dt{color:var(--green-label);font-size:12px;font-weight:700;line-height:16px}.review-answers .incorrect dt{color:var(--red-label)}.review-answers dd{color:var(--gray-14);overflow-wrap:anywhere;margin:2px 0 0;font-size:15px;font-weight:700;line-height:20px}.review-answers .incorrect dd{color:var(--red-label);text-decoration:line-through;text-decoration-thickness:1.5px}.review-item .explanation-card p+p{margin-top:8px}.topic-outcomes{border:2px solid var(--gray-92);text-align:left;border-radius:18px;margin:12px 0 0;padding:4px 14px;list-style:none}.topic-outcomes li{--topic-accent:var(--green-64);gap:8px;padding:12px 0;display:grid}.topic-outcomes li+li{border-top:1px solid var(--gray-93)}.topic-outcomes li.tone-mid{--topic-accent:var(--yellow-81)}.topic-outcomes li.tone-low{--topic-accent:var(--red-65)}.topic-outcomes li>div{justify-content:space-between;align-items:flex-start;gap:12px;font-size:13px;font-weight:600;line-height:18px;display:flex}.topic-outcomes b{flex:none;font-weight:700}.topic-outcome-bar{background:var(--gray-93);border-radius:999px;height:8px;display:block;overflow:hidden}.topic-outcome-bar i{border-radius:inherit;background:var(--topic-accent);height:100%;display:block}.completion-stats>div{--stat-fill:var(--blue-65);background:var(--stat-fill);border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:4px;display:flex}.completion-stats .stat-correct{--stat-fill:var(--green-64)}.completion-stats .stat-time{--stat-fill:var(--yellow-83)}.completion-stats span{height:23px;color:var(--gray-100);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;place-items:center;font-size:12px;font-weight:800;line-height:15px;display:grid}.completion-stats>div>div{background:var(--gray-100);border-radius:10px;justify-content:center;align-items:center;gap:min(8px,6cqi);width:100%;height:60px;display:flex;container-type:inline-size}.completion-stats svg{width:min(28px,26cqi);height:min(28px,26cqi);color:var(--stat-fill);flex:none}.completion-stats b{color:var(--stat-fill);font:700 min(19px, calc(110cqi / var(--stat-value-length,4))) / 22px "Montserrat Alternates", sans-serif;white-space:nowrap}.completion-footer{min-height:calc(88px + env(safe-area-inset-bottom,0px));padding:10px 24px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--gray-91);background:var(--gray-100);align-items:center;gap:6px;display:grid}.completion-secondary{display:flex}.completion-secondary>*{flex:1}.completion-review-action{height:44px;color:var(--blue-54);letter-spacing:.02em;font-size:15px;font-weight:700}.completion-summary>:first-child{margin-top:auto}.completion-summary>:last-child{margin-bottom:auto}.completion-summary .completion-stats>div,.completion-summary .completion-forecast,.completion-summary .completion-streak,.completion-summary .mistakes-entry{animation:completion-beat-in .36s var(--motion-easing) both}.completion-summary .completion-stats>div:first-child{animation-delay:.25s}.completion-summary .completion-stats>div:nth-child(2){animation-delay:.4s}.completion-summary .completion-stats>div:nth-child(3){animation-delay:.55s}.completion-summary .completion-forecast{animation-delay:.75s}.completion-summary .completion-streak{animation-delay:.9s}.completion-summary .mistakes-entry{animation-delay:1.05s}.orbi{pointer-events:none;flex:none;display:block;position:relative}.orbi-canvas{width:212.8%;height:212.8%;position:absolute;top:-62.3%;left:-44.7%}.reminder-prompt{border:2px solid var(--gray-92);background:var(--gray-100);text-align:left;border-radius:18px;grid-template-columns:48px minmax(0,1fr) 28px;align-items:start;gap:12px;width:100%;margin-top:18px;padding:14px;display:grid}.completion-summary .reminder-prompt{animation:completion-beat-in .36s var(--motion-easing) both;animation-delay:1.2s}.reminder-prompt-art{width:32px;height:32px;color:var(--blue-54);margin:8px}.reminder-prompt h2{color:var(--gray-14);margin:2px 0 0;font-size:16px;font-weight:800;line-height:22px}.reminder-prompt p,.reminder-prompt-steps{color:var(--gray-52);margin:4px 0 0;font-size:14px;font-weight:600;line-height:20px}.reminder-prompt-steps{color:var(--gray-14);padding-left:18px;list-style:decimal;display:block}.reminder-prompt-steps li{display:list-item}.reminder-prompt-steps svg{vertical-align:-3px;width:18px;height:18px;color:var(--blue-54);display:inline-block}.reminder-prompt-action{width:100%;height:auto;min-height:44px;margin-top:12px;padding:8px 12px;font-weight:700;line-height:1.2}.reminder-prompt p.reminder-prompt-error{color:var(--red-54)}.reminder-prompt-close{width:28px;height:28px;color:var(--gray-72);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.reminder-prompt-close svg{width:20px;height:20px}@keyframes completion-beat-in{0%{opacity:0;transform:translateY(12px)scale(.92)}}.practice-status{text-align:center;background:var(--gray-100);place-content:center;gap:24px;height:100%;padding:24px;display:grid}.practice-status h1{font:700 20px/28px Unbounded,sans-serif}@media (prefers-reduced-motion:reduce){.prep-button,.sheet-backdrop,.bottom-sheet{transition-duration:0s!important}.exercise-feedback-panel,.answer-explanation,.skipped-answer-explanation,.choice-answer-explanation-reveal,.fill-blank-explanation-reveal,.cycle-blank-explanation-reveal,.passage-backdrop,.passage-card--expanded,.completion-summary .completion-stats>div,.completion-summary .completion-forecast,.completion-summary .completion-streak,.completion-summary .mistakes-entry,.completion-summary .reminder-prompt{animation:none!important}}.section-link{color:#767676;cursor:pointer;background:0 0;border:0;padding:0;font-size:16px;font-weight:600}.history-screen{--history-chrome-height:var(--control-topbar-height);background:#fff;height:100%;position:relative;overflow:hidden}.history-screen svg{stroke-width:2px}.history-chrome{z-index:8;height:var(--history-chrome-height);background:#fff;position:absolute;inset:0 0 auto}.history-chrome:after{content:"";z-index:-1;right:0;bottom:calc(-1 * var(--topbar-fade-overlap));height:var(--topbar-fade-height);background:var(--topbar-gradient);pointer-events:none;position:absolute;left:0}.history-topbar{height:var(--control-topbar-height);align-items:center;padding:12px 24px 0;display:flex}.history-topbar h1{margin:0;font:700 26px/32px Unbounded,sans-serif}.history-controls{z-index:9;background:#fff;align-items:center;gap:10px;height:54px;padding:12px 24px;display:flex;position:sticky;top:0}.history-controls:after{content:"";pointer-events:none;background:linear-gradient(oklab(100% 0 0),oklab(100% 0 0/0));height:16px;position:absolute;top:100%;left:0;right:0}.history-search-button:focus-visible,.history-search-close:focus-visible,.history-search button:focus-visible,.history-empty-reset:focus-visible,.history-result-toolbar>button:focus-visible,.history-compact-row:focus-visible,.history-controls select:focus-visible{outline-offset:2px;outline:3px solid #bde4ff}.history-controls .prep-select-trigger{appearance:none;width:auto;min-width:0;height:30px;box-shadow:none;cursor:pointer;border:0;border-radius:14px;padding:0 10px;font-size:14px;font-weight:600;line-height:18px}.history-controls .history-month-select{color:#fff;background:#0090ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center no-repeat;flex:0 auto;padding-right:24px}.history-controls .history-month-select:disabled{color:#767676;cursor:default;background:#f5f5f5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23838383' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center no-repeat;min-width:92px}.history-controls .history-source-select{color:#646464;background:#f5f5f5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23646464' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center no-repeat;flex:0 auto;min-width:0;padding-right:24px}.history-search-button,.history-search-close{color:#646464;width:30px;height:30px;box-shadow:none;cursor:pointer;background:#f5f5f5;border:0;border-radius:999px;flex:0 0 30px;place-items:center;margin-left:auto;padding:0;display:grid}.history-search-button svg,.history-search-close svg{stroke-width:2.5px;width:16px;height:16px}.history-search{min-width:0;height:30px;box-shadow:none;transition:box-shadow var(--motion-duration) var(--motion-easing);background:#f5f5f5;border:0;border-radius:999px;flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.history-search:focus-within{box-shadow:0 0 0 3px #dff2ff}.history-search>svg{color:#646464;stroke-width:2.5px;flex:none;width:16px;height:16px}.history-search input{color:#111;background:0 0;border:0;flex:1;min-width:0;height:100%;padding:0;font-size:15px;font-weight:600}.history-search input::placeholder{color:#989898}.history-search button{color:#767676;cursor:pointer;background:#f5f5f5;border:0;border-radius:9px;flex:none;place-items:center;width:28px;height:28px;padding:0;display:grid}.history-search button svg{width:17px;height:17px}.history-scroll{padding:var(--history-chrome-height) 0 var(--app-bottom-clearance);overscroll-behavior:contain;scrollbar-width:none;position:absolute;inset:0;overflow:hidden auto}.history-scroll::-webkit-scrollbar{display:none}.history-note{color:#767676;text-align:center;margin:0;font-size:12px;font-weight:600;line-height:18px}.history-group-list{touch-action:pan-y;flex-direction:column;gap:40px;padding:16px 24px 0;display:flex}.progress-section{margin:24px 24px 8px}.progress-section-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.progress-section-head h2,.history-work-title{color:var(--gray-52);margin:0;font-size:14px;font-weight:700}.history-work-section{margin-top:24px}.history-work-title{padding:0 24px}.mastery-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:10px 8px;margin:0;padding:0;list-style:none;display:grid}.mastery-tile{--face:var(--path-new-face);--depth:var(--path-new-depth);--ink:oklch(45% .016 255);aspect-ratio:1;width:100%;color:var(--ink);background:var(--face);box-shadow:inset 0 0 0 2px var(--depth), 0 4px 0 var(--depth);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:flex;position:relative}.mastery-tile.is-learning{--face:var(--path-learning-face);--depth:var(--path-learning-depth);--ink:oklch(33% .09 45)}.mastery-tile.is-practiced{--face:var(--path-practiced-face);--depth:var(--path-practiced-depth);--ink:oklch(31% .08 155)}.mastery-tile.is-mastered{--face:var(--path-mastered-face);--depth:var(--path-mastered-depth);--ink:oklch(35% .08 70)}.mastery-tile:not(:disabled):active{box-shadow:inset 0 0 0 2px var(--depth), 0 0 0 var(--depth);transform:translateY(4px)}.mastery-tile:focus-visible{outline:3px solid var(--blue-65);outline-offset:3px}.mastery-tile:disabled{cursor:default}.mastery-tile.is-soon{opacity:.55}.mastery-tile[aria-busy=true]{opacity:.7}.mastery-tile b{font-variant-numeric:tabular-nums;font:700 17px/20px Unbounded,sans-serif}.mastery-tile small{font-size:10px;font-weight:700;line-height:12px}.mastery-tile>svg{width:18px;height:18px;color:var(--path-mastered-depth);position:absolute;top:-8px;right:-6px}.mastery-grid-error{color:var(--red-54);margin:12px 0 0;font-size:13px;font-weight:600}.streak-calendar-count{color:var(--gray-52);align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.streak-calendar-count.is-lit{color:var(--orange-label)}.streak-calendar-count svg{width:18px;height:18px}.streak-calendar-count.is-lit svg{color:var(--orange-66)}.streak-calendar{border:2px solid var(--gray-92);border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:6px;padding:12px;display:grid}.streak-calendar ol{grid-column:1/-1;grid-template-columns:subgrid;row-gap:6px;margin:0;padding:0;list-style:none;display:grid}.streak-calendar-weekday{color:var(--gray-52);text-align:center;font-size:11px;font-weight:700}.streak-calendar-day{place-items:center;display:grid}.streak-calendar-day span{width:32px;height:32px;color:var(--gray-56);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.streak-calendar-day.is-done span{color:var(--gray-100);background:var(--orange-66)}.streak-calendar-day.is-today span{color:var(--gray-14);box-shadow:inset 0 0 0 2px var(--orange-66)}.streak-calendar-day.is-future span{color:var(--gray-52)}.streak-calendar-day.is-frozen span{color:var(--blue-54);background:var(--blue-94)}.forecast-card{align-items:stretch;gap:28px;margin:24px 24px 16px;padding:0 0 16px;display:flex}.forecast-card-head{flex-direction:column;flex-shrink:0;align-items:flex-start;display:flex}.forecast-card h2{color:var(--gray-52);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.forecast-card-score{flex-direction:column;align-items:flex-start;gap:6px;margin:18px 0 0;display:flex}.forecast-card-score b{color:var(--green-label);font-variant-numeric:tabular-nums;white-space:nowrap;font:700 clamp(26px,8vw,32px)/1 Unbounded,sans-serif}.forecast-card-score span{color:var(--gray-52);font-size:13px;font-weight:600}.forecast-card-facts{flex-direction:column;align-items:flex-start;gap:10px;margin:auto 0 0;padding:28px 0 0;list-style:none;display:flex}.forecast-card-facts li{white-space:nowrap;align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.forecast-card-facts svg{width:16px;height:16px}.forecast-fact-target{color:var(--yellow-label)}.forecast-fact-days{color:var(--purple-54)}.forecast-chart{flex:1;min-width:0;margin:0;display:flex}.forecast-chart-plot{flex:1;min-height:200px}.forecast-chart-glow{opacity:.45;transform:translateY(5px)}.forecast-chart-dot circle:first-child{fill:var(--color-score);opacity:.18}.forecast-chart-dot circle:last-child{fill:var(--color-score);stroke:var(--gray-100);stroke-width:3px}.chart{-webkit-tap-highlight-color:transparent;width:100%;font-size:12px}.chart .recharts-surface,.chart .recharts-layer,.chart .recharts-wrapper{outline:none}.chart .recharts-cartesian-axis-tick-value{fill:var(--gray-52);font-weight:600}.chart .recharts-cartesian-grid line{stroke:var(--gray-91)}.chart-tooltip{border:2px solid var(--gray-92);background:var(--gray-100);border-radius:12px;gap:6px;min-width:128px;padding:8px 10px;font-size:12px;display:grid}.chart-tooltip-label{color:var(--gray-32);font-weight:700}.chart-tooltip-row{align-items:center;gap:8px;display:flex}.chart-tooltip-indicator{border-radius:3px;flex-shrink:0;width:10px;height:10px}.chart-tooltip-name{color:var(--gray-52);flex:1;font-weight:600}.chart-tooltip-row b{color:var(--gray-18);font-variant-numeric:tabular-nums}.history-date-group{flex-direction:column;gap:20px;scroll-margin-top:16px;display:flex}.history-date-group>h3{margin:0;font:700 14px/24px Unbounded,sans-serif}.history-date-works{flex-direction:column;gap:10px;display:flex}.history-compact-row{--history-row-accent:#6645a3;--history-row-soft:#dacfff;--history-row-surface:#f1edff;color:#0a0a0a;background:var(--history-row-surface);text-align:left;cursor:pointer;border:0;border-radius:24px;grid-template-columns:42px minmax(0,1fr) minmax(32px,auto);align-items:center;gap:10px;width:100%;min-width:0;height:66px;padding:12px;display:grid}.history-compact-row.tone-assigned{--history-row-accent:#5f5f5f;--history-row-soft:#e4e4e4;--history-row-surface:#f5f5f5}.history-compact-row.tone-random{--history-row-accent:#755100;--history-row-soft:#ffee9c;--history-row-surface:#fefbe9}.history-row-icon{width:42px;height:42px;color:var(--history-row-accent);background:var(--history-row-soft);border-radius:12px;flex:none;place-items:center;font-size:12px;font-weight:700;line-height:16px;display:grid}.history-row-icon svg{width:24px;height:24px}.history-row-copy{flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:0 4px;display:flex}.history-row-copy strong{text-overflow:ellipsis;white-space:nowrap;font:700 12px/16px Unbounded,sans-serif;overflow:hidden}.history-row-copy small{color:var(--history-row-accent);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:16px;overflow:hidden}.history-row-result{min-width:32px;color:var(--history-row-accent);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 4px;font-size:12px;font-weight:600;line-height:16px}.history-load-sentinel{min-height:1px}.history-empty{text-align:center;background:#f7fbff;border:2px dashed #c6e7ff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-height:180px;padding:24px;display:flex}.history-empty>svg{color:#0090ff;background:#dff2ff;border-radius:50%;width:36px;height:36px;padding:8px}.history-empty strong{margin-top:12px;font:700 15px/22px Unbounded,sans-serif}.history-empty span{color:#646464;margin-top:5px;font-size:12px;line-height:18px}.history-empty-reset{color:#07c;min-height:38px;box-shadow:0 var(--depth-sm) 0 #8dceff;cursor:pointer;background:#fff;border:2px solid #8dceff;border-radius:12px;margin-top:14px;padding:0 14px;font-size:12px;font-weight:700}.history-result-backdrop{z-index:26}.bottom-sheet.history-result-drawer{z-index:27;border-radius:40px 40px 0 0;height:fit-content;max-height:calc(100% - 43px)}.history-result-drawer .drawer-content{flex-direction:column;height:100%;padding:5px 0 0;display:flex;overflow:hidden}.history-result-drawer .sheet-handle{background:#ccc;border-radius:999px;width:40px;height:5px;margin:0 auto 17px}.history-result-body{overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0;padding:0 0 8px;overflow-y:auto}.history-result-body>.primary-action{margin-top:20px}.history-result-body::-webkit-scrollbar{display:none}.history-result-toolbar{justify-content:space-between;align-items:center;gap:16px;height:40px;display:flex}.history-result-toolbar h2{margin:0;font-size:20px;font-weight:700;line-height:28px}.history-result-toolbar>button{color:#0a0a0a;cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;place-items:center;width:24px;height:24px;padding:0;display:grid}.history-result-toolbar>button svg{width:24px;height:24px}.history-result-description{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.history-result-identity{margin-top:16px}.history-result-identity-meta{color:var(--gray-52);justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:600;line-height:16px;display:flex}.history-result-identity-meta>div{align-items:center;gap:6px;display:flex}.history-result-identity-meta>div>span{background:var(--gray-97);white-space:nowrap;border-radius:999px;padding:4px 10px}.history-result-identity-meta time{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.history-result-identity-meta time svg{flex:none;width:16px;height:16px}.history-result-identity h3{overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:12px 0 0;font:700 22px/28px Unbounded,sans-serif;display:-webkit-box;overflow:hidden}.history-result-author{background:var(--gray-98);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;font-size:13px;line-height:18px;display:flex}.history-result-author strong{color:var(--gray-52);font-weight:600}.history-result-author>span{align-items:center;gap:8px;min-width:0;font-weight:700;display:flex}.history-result-author img{object-fit:cover;border-radius:50%;flex:none;width:28px;height:28px}.history-result-body .completion-stats{margin-top:20px}.history-topic-results{margin-top:24px}.history-topic-results>h4{margin:0;font:700 18px/24px Montserrat Alternates,sans-serif}.notifications-screen{--notifications-chrome-height:calc(var(--control-topbar-height) + 82px);background:#fff;height:100%;position:relative;overflow:hidden}.notifications-screen svg{stroke-width:2px}.notifications-chrome{z-index:8;height:var(--notifications-chrome-height);background:#fff;position:absolute;inset:0 0 auto}.notifications-chrome:after{content:"";z-index:-1;right:0;bottom:calc(-1 * var(--topbar-fade-overlap));height:var(--topbar-fade-height);background:var(--topbar-gradient);pointer-events:none;position:absolute;left:0}.notifications-topbar{height:var(--control-topbar-height);grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;padding:0 16px;display:grid}.notifications-topbar button{color:#0a0a0a;cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.notifications-topbar button:focus-visible,.notification-row:focus-visible,.notifications-state button:focus-visible,.notifications-inline-error button:focus-visible{outline-offset:2px;outline:3px solid #bde4ff}.notifications-topbar h1{text-align:center;margin:0;font:700 18px/24px Unbounded,sans-serif}.notifications-heading{justify-content:space-between;align-items:center;gap:16px;height:58px;padding:0 24px;display:flex}.notifications-heading>div{color:#646464;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.notifications-heading>div svg{color:#0090ff;width:22px;height:22px}.notifications-heading>strong{color:#07c;background:#dff2ff;border-radius:12px;place-items:center;min-width:32px;height:32px;padding:0 8px;font:700 12px/16px Unbounded,sans-serif;display:grid}.notifications-scroll{padding:var(--notifications-chrome-height) 0 28px;overscroll-behavior:contain;scrollbar-width:none;position:absolute;inset:0;overflow:hidden auto}.notifications-scroll::-webkit-scrollbar{display:none}.notifications-group-list{flex-direction:column;gap:32px;padding:16px 24px 0;display:flex}.notifications-date-group{flex-direction:column;gap:14px;display:flex}.notifications-date-group>h2{margin:0;font:700 14px/24px Unbounded,sans-serif}.notifications-rows{flex-direction:column;gap:10px;display:flex}.notifications-row-wrap{min-width:0}.notification-row{color:#0a0a0a;text-align:left;cursor:pointer;background:#f7fbff;border:2px solid #e6f4ff;border-radius:20px;grid-template-columns:42px minmax(0,1fr) auto 8px;align-items:center;gap:10px;width:100%;min-height:72px;padding:12px;display:grid;position:relative}.notification-row.is-read{background:#fafafa;border-color:#ededed}.notification-row:disabled{cursor:wait;opacity:.7}.notification-row-icon{color:#0090ff;background:#dff2ff;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.notification-row.is-read .notification-row-icon{color:#767676;background:#e9e9e9}.notification-row-icon svg{width:22px;height:22px}.notification-row-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.notification-row-copy strong,.notification-row-copy small{text-overflow:ellipsis;overflow:hidden}.notification-row-copy strong{white-space:nowrap;font:700 12px/16px Unbounded,sans-serif}.notification-row-copy small{color:#646464;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;font-weight:600;line-height:16px;display:-webkit-box}.notification-row time{color:#5f5f5f;white-space:nowrap;font-variant-numeric:tabular-nums;align-self:start;padding-top:2px;font-size:10px;font-weight:700;line-height:16px}.notification-unread-dot{background:#0090ff;border-radius:50%;width:8px;height:8px}.notification-opening{color:#07c;font-size:9px;font-weight:700;position:absolute;bottom:8px;right:12px}.notification-row-error{color:#e5484d;align-items:center;gap:8px;margin:6px 12px 0 64px;font-size:11px;font-weight:600;line-height:16px;display:flex}.notification-row-error span{min-width:0}.notification-row-error button{color:#c83238;cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:none;margin-left:auto;padding:3px 0;font-size:11px;font-weight:700}.notifications-load-sentinel{color:#767676;text-align:center;min-height:1px;padding:14px 24px 0;font-size:12px;font-weight:600}.notifications-load-sentinel p{margin:0}.notifications-state{text-align:center;background:#f7fbff;border:2px dashed #c6e7ff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-height:180px;margin:16px 24px 0;padding:24px;display:flex}.notifications-state>svg{color:#0090ff;background:#dff2ff;border-radius:50%;width:36px;height:36px;padding:8px}.notifications-state strong{margin-top:12px;font:700 15px/22px Unbounded,sans-serif}.notifications-state span{color:#646464;margin-top:5px;font-size:12px;line-height:18px}.notifications-state button,.notifications-inline-error button{color:#07c;box-shadow:0 var(--depth-sm) 0 #8dceff;cursor:pointer;background:#fff;border:2px solid #8dceff;border-radius:12px;margin-top:14px;padding:8px 14px;font-size:12px;font-weight:700}.notifications-inline-error{color:#e5484d;align-items:center;gap:7px;margin:12px 24px 0;font-size:11px;font-weight:600;display:flex}.notifications-inline-error svg{flex:none;width:16px;height:16px}.notifications-inline-error button{color:#c83238;box-shadow:0 var(--depth-sm) 0 #f1a4a7;border-color:#f1a4a7;margin:0 0 0 auto;padding:5px 9px}.notifications-skeleton{flex-direction:column;gap:10px;padding:16px 24px 0;display:flex}.notification-skeleton-row{background:#fbfdff;border:2px solid #eef8ff;border-radius:20px;grid-template-columns:42px 1fr;align-items:center;gap:10px;min-height:72px;padding:12px;display:grid}.notification-skeleton-row>span{background:#e6f4ff;border-radius:12px;width:42px;height:42px}.notification-skeleton-row>div{gap:8px;display:grid}.notification-skeleton-row i{background:#eaf2f7;border-radius:5px;height:10px}.notification-skeleton-row i:last-child{width:68%}.admin-page{box-sizing:border-box;max-width:720px;min-height:100%;margin:0 auto;padding:32px 20px 64px}.admin-header{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.admin-title{margin:0 0 16px;font-size:24px}.admin-section{margin-top:32px}.admin-form{background:var(--gray-100);border:2px solid var(--gray-92);border-radius:16px;flex-direction:column;gap:4px;margin-top:16px;padding:14px;display:flex}.admin-list{padding-left:20px}.admin-page .prep-button--primary{--control-depth:var(--depth-sm);border:2px solid var(--blue-cta-depth);min-height:44px;color:var(--gray-100);background:var(--blue-cta);box-shadow:0 var(--depth-sm) 0 var(--blue-cta-depth);cursor:pointer;border-radius:14px;padding:0 20px;font-weight:700}.admin-page .prep-button--primary:disabled{opacity:.6;box-shadow:none;cursor:default;transform:none}.admin-page .prep-button--primary:not(:disabled):active{box-shadow:none}.admin-page .prep-button--ghost{border:2px solid var(--gray-91);min-height:36px;color:var(--gray-14);background:var(--gray-100);cursor:pointer;border-radius:12px;padding:0 12px;font-weight:600}.admin-page .prep-button--danger{border:2px solid var(--red-54);min-height:36px;color:var(--red-54);background:var(--gray-100);cursor:pointer;border-radius:12px;padding:0 12px;font-weight:600}.admin-form .prep-button{align-self:flex-start;margin-top:8px}.invite-summary h2{margin:0 0 8px;font:700 18px/24px Unbounded,sans-serif}.invite-summary p{margin:0 0 8px;font-size:14px;line-height:20px}.invite-summary .invite-inviter,.invite-summary .invite-hint{color:var(--gray-56);font-size:13px}.invite-password-hint{color:var(--gray-56);margin-top:6px;font-size:12px;display:block}.matching-score{color:var(--gray-56);margin:0 0 4px;font-size:14px;font-weight:700}:is(.history-compact-row,.notification-row){--press-scale:.98}.home-avatar:focus-visible{outline:3px solid var(--blue-90);outline-offset:2px}.punctuation-word:not(:disabled,.selected):active{background:var(--blue-94)}.app-frame{--glass-fill:oklch(100% 0 0/.66);--glass-blur:blur(18px) saturate(180%);--glass-shadow:0 0 0 .5px oklch(0% 0 0/.1), 0 6px 20px oklch(0% 0 0/.08), inset 0 1px 0 oklch(100% 0 0/.9)}.app-frame.has-tab-bar{--app-bottom-clearance:calc(104px + env(safe-area-inset-bottom,0px))}:is(.setup-top>.prep-button--icon,.exercise-top>.prep-button--icon,.practice-sheet-title>button,.notifications-topbar button,.account-back,.history-result-toolbar>button){width:40px;height:40px;color:var(--gray-14);background:var(--glass-fill);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);transition:transform var(--motion-duration) var(--motion-easing);border:0;border-radius:50%;place-items:center;padding:0;display:grid}:is(.setup-top>.prep-button--icon,.exercise-top>.prep-button--icon,.practice-sheet-title>button,.notifications-topbar button,.account-back,.history-result-toolbar>button) svg{stroke-width:2.25px;width:22px;height:22px}:is(.setup-top>.prep-button--icon,.exercise-top>.prep-button--icon,.practice-sheet-title>button,.notifications-topbar button,.account-back,.history-result-toolbar>button):focus-visible{outline:3px solid var(--blue-90);outline-offset:2px}:is(.setup-top>.prep-button--icon,.exercise-top>.prep-button--icon,.practice-sheet-title>button,.notifications-topbar button,.account-back,.history-result-toolbar>button):not(:disabled):active{transform:scale(.9)}.bottom-sheet :is(.practice-sheet-title>button,.history-result-toolbar>button){background:var(--gray-97);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.tab-bar{z-index:20;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--glass-fill);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;width:max-content;padding:4px;display:grid;position:absolute;transform:translate(-50%);box-shadow:0 0 0 .5px oklch(0% 0 0/.1),0 10px 30px oklch(0% 0 0/.12),inset 0 1px oklch(100% 0 0/.9)}.tab-bar-item{min-width:96px;height:56px;color:var(--gray-52);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 8px;font-size:11px;font-weight:700;line-height:14px;text-decoration:none;display:flex}.tab-bar-item svg{width:24px;height:24px}.tab-bar-item.active{color:oklch(50% .16 252.5);background:oklch(64.9% .193 251.8/.12)}.tab-bar-item:active{transform:scale(.94)}.tab-bar-item:focus-visible{outline:3px solid var(--blue-90);outline-offset:1px}@media (prefers-reduced-transparency:reduce){.app-frame{--glass-fill:var(--gray-100)}}.onboarding-screen,.plan-screen{background:var(--gray-100);flex-direction:column;height:100%;display:flex;overflow:hidden}.onboarding-screen:focus,.plan-screen:focus{outline:none}.onboarding-top{min-height:var(--control-topbar-height);padding:var(--control-topbar-padding);grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;display:grid}.onboarding-top .prep-button{color:var(--gray-56)}.onboarding-progress{background:var(--gray-93);border-radius:10px;height:8px;overflow:hidden}.onboarding-progress i{border-radius:inherit;background:var(--blue-65);height:100%;transition:width .42s var(--motion-easing);display:block}.onboarding-viewport{flex:1;min-height:0;position:relative;overflow:hidden}.onboarding-body{flex-direction:column;gap:24px;height:100%;padding:16px 20px 24px;display:flex;position:relative;overflow-y:auto}.onboarding-body>.onboarding-mascot{position:absolute;top:16px;left:20px}.onboarding-speaker{grid-template-columns:56px 1fr;align-items:start;gap:14px;display:grid}.onboarding-step{flex-direction:column;gap:24px;display:flex}.onboarding-mascot{width:56px;height:56px;margin-top:6px}.onboarding-bubble{border:2px solid var(--gray-92);background:var(--gray-100);letter-spacing:-.01em;border-radius:20px;padding:14px 16px;font:700 18px/26px Unbounded,sans-serif;position:relative}.onboarding-bubble:before{content:"";border-bottom:2px solid var(--gray-92);border-left:2px solid var(--gray-92);background:var(--gray-100);border-radius:0 0 0 4px;width:14px;height:14px;position:absolute;top:24px;left:-9px;transform:rotate(45deg)}.onboarding-options{flex-direction:column;gap:12px;display:flex}.onboarding-option{--control-depth:var(--depth-sm);border:2px solid var(--gray-92);background:var(--gray-100);min-height:72px;box-shadow:0 var(--depth-sm) 0 var(--gray-92);cursor:pointer;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing);border-radius:18px;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.onboarding-option:not(.is-soon):active{box-shadow:none;transform:translateY(var(--control-depth))}.onboarding-option:has(input:focus-visible){outline:3px solid var(--blue-90);outline-offset:2px}.onboarding-option.is-selected{border-color:var(--blue-65);background:var(--blue-97);box-shadow:0 var(--depth-sm) 0 var(--blue-65)}.onboarding-option.is-soon{box-shadow:none;background:var(--gray-98);cursor:default}.onboarding-option-art{width:48px;height:48px;color:var(--gray-52);background:var(--gray-97);border-radius:14px;place-items:center;display:grid}.onboarding-option-art svg{width:26px;height:26px}.onboarding-option.is-selected .onboarding-option-art{color:var(--blue-54);background:var(--gray-100)}.onboarding-option-art.is-badge{color:var(--blue-54);background:var(--blue-94);font:700 16px/1 Unbounded,sans-serif}.onboarding-option.is-soon .onboarding-option-art{opacity:.55}.onboarding-option-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.onboarding-option-copy strong{font-size:17px;line-height:24px}.onboarding-option-copy small{color:var(--gray-52);font-size:13px;font-weight:600;line-height:18px}.onboarding-option.is-soon strong{color:var(--gray-56)}.onboarding-option>i{border:2px solid var(--gray-83);width:22px;height:22px;transition:border-color var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:50%}.onboarding-option.is-selected>i{border-color:var(--blue-65);box-shadow:inset 0 0 0 5px var(--blue-65)}.onboarding-soon{color:var(--gray-52);background:var(--gray-93);letter-spacing:.04em;text-transform:uppercase;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:700}.onboarding-date-field{background:var(--blue-97);color:var(--gray-52);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:-2px 0 2px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.onboarding-date-field input{border:2px solid var(--blue-91);min-height:40px;color:var(--gray-14);background:var(--gray-100);border-radius:10px;padding:0 10px;font-weight:700}.onboarding-note{color:var(--gray-52);text-align:center;font-size:13px;font-weight:600;line-height:19px}.onboarding-facts{border:2px solid var(--gray-92);border-radius:20px;margin:0;padding:6px 16px;list-style:none}.onboarding-facts li{grid-template-rows:auto auto;grid-template-columns:44px 1fr;align-items:center;column-gap:12px;padding:12px 0;display:grid}.onboarding-facts li+li{border-top:1px solid var(--gray-93)}.onboarding-facts span{width:44px;height:44px;color:var(--gray-52);background:var(--gray-97);border-radius:12px;grid-row:span 2;place-items:center;display:grid}.onboarding-facts span svg{width:22px;height:22px}.onboarding-facts b{font-size:16px;line-height:22px}.onboarding-facts small{color:var(--gray-52);font-size:13px;font-weight:600;line-height:18px}.onboarding-footer{padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px));background:var(--gray-100);gap:8px;display:grid}.onboarding-error{color:var(--red-label);text-align:center;font-size:14px;font-weight:600}.onboarding-skip{min-height:48px;color:var(--gray-52);font-size:16px;font-weight:700}.loading-screen-mascot,.plan-mascot{width:200px;height:200px}.loading-screen{text-align:center;background:var(--gray-100);flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;min-height:100dvh;padding:24px;display:flex;overflow:hidden}.app-screen .loading-screen{min-height:0}.loading-screen h1{margin-top:20px;font:700 22px/30px Unbounded,sans-serif}.loading-screen p{min-height:22px;color:var(--gray-52);font-size:15px;font-weight:600}.plan-ring{flex:none;width:200px;height:200px;position:relative}.plan-ring svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.plan-ring circle{fill:none;stroke-width:14px}.plan-ring-track{stroke:var(--blue-94)}.plan-ring-fill{stroke:var(--blue-65);stroke-linecap:round}.plan-ring .plan-ring-target{fill:var(--gray-100);stroke:var(--yellow-81);stroke-width:4px}.plan-ring-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.plan-reveal-content{text-align:center;flex-direction:column;flex:1;align-items:center;min-height:0;padding:40px 24px 24px;display:flex;overflow-y:auto}.plan-eyebrow{color:var(--blue-54);letter-spacing:.02em;margin-bottom:20px;font:700 15px/20px Unbounded,sans-serif}.plan-reveal .plan-ring{width:220px;height:220px}.plan-score{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font:700 64px/1 Unbounded,sans-serif}.plan-ring-center small{color:var(--gray-52);margin-top:6px;font-size:14px;font-weight:700}.plan-range{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;display:flex}.plan-range span{color:var(--gray-52);background:var(--gray-97);border-radius:999px;padding:7px 12px;font-size:14px;font-weight:700}.plan-range .plan-target svg{width:16px;height:16px}.plan-range .plan-target{color:var(--yellow-label);background:var(--yellow-99);box-shadow:inset 0 0 0 2px var(--yellow-94);align-items:center;gap:4px;display:inline-flex}.plan-range .plan-days{color:var(--purple-54);background:var(--gray-97);box-shadow:none}.plan-weak{border:2px solid var(--gray-92);border-radius:20px;width:100%;margin-top:32px;padding:18px 16px}.plan-weak h2{font:700 15px/22px Unbounded,sans-serif}.plan-weak ul{justify-content:center;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.plan-weak li{border:2px solid var(--pink-93);min-width:72px;color:var(--pink-58);background:var(--pink-98);box-shadow:0 var(--depth-sm) 0 var(--pink-93);border-radius:14px;padding:10px 14px;font:700 16px/1 Unbounded,sans-serif}.plan-note{color:var(--gray-52);margin-top:20px;font-size:14px;font-weight:600;line-height:20px}.plan-empty-title{margin-top:24px;font:700 24px/32px Unbounded,sans-serif}.plan-empty-note{max-width:290px;margin-top:8px;font-size:15px;line-height:22px}.forecast-suggestion{margin:12px 20px 0;position:relative}.forecast-suggestion-link{min-height:52px;color:var(--gray-100);background:linear-gradient(135deg, var(--blue-65), oklch(60% .18 268));box-shadow:0 var(--depth-md) 0 var(--blue-56);transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border-radius:18px;align-items:center;gap:10px;padding:0 48px 0 14px;text-decoration:none;display:flex}.forecast-suggestion-link:active{box-shadow:none;transform:translateY(var(--depth-md))}.forecast-suggestion-link>svg{flex:none;width:22px;height:22px}.forecast-suggestion-link strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:20px;overflow:hidden}.forecast-suggestion-close{color:var(--gray-100);opacity:.85;border-radius:50%;position:absolute;top:10px;right:8px;width:32px!important;height:32px!important}.forecast-suggestion-close svg{width:18px;height:18px}@media (prefers-reduced-motion:reduce){.onboarding-option,.onboarding-option>i,.onboarding-progress i,.forecast-suggestion-link{transition-duration:0s!important}}:root{--path-new-face:oklch(93% .006 255);--path-new-depth:oklch(83% .01 255);--path-new-ink:oklch(56% .016 255);--path-learning-face:oklch(75% .165 52);--path-learning-depth:oklch(64% .17 42);--path-learning-ink:oklch(44% .12 45);--path-practiced-face:oklch(76% .18 148);--path-practiced-depth:oklch(64% .15 156);--path-practiced-ink:oklch(41% .1 155);--path-mastered-face:oklch(86% .155 86);--path-mastered-depth:oklch(74% .16 70);--path-mastered-ink:oklch(47% .1 72);--path-ring:var(--blue-cta);--path-ring-track:var(--blue-94);--path-unit-text:oklch(64% .155 242);--path-unit-text-depth:oklch(53% .155 242);--path-unit-norms:oklch(64% .22 302);--path-unit-norms-depth:oklch(53% .22 302);--path-unit-orthography:oklch(64% .2 140);--path-unit-orthography-depth:oklch(53% .2 140);--path-unit-punctuation:oklch(64% .22 25);--path-unit-punctuation-depth:oklch(53% .22 25);--path-unit-essay:oklch(62% .01 255);--path-unit-essay-depth:oklch(51% .01 255)}.exam-path{flex-direction:column;gap:24px;padding:16px 20px 24px;display:flex}.exam-path-note{color:var(--yellow-label);background:var(--yellow-99);text-align:center;border-radius:14px;margin:0;padding:10px 14px;font-size:13px;font-weight:700;line-height:18px}.exam-path-unit,.unit-picker-item{--unit-face:var(--path-unit-text);--unit-depth:var(--path-unit-text-depth)}.exam-path-unit{scroll-margin-top:var(--home-topbar-height)}.exam-path-unit--norms{--unit-face:var(--path-unit-norms);--unit-depth:var(--path-unit-norms-depth)}.exam-path-unit--orthography{--unit-face:var(--path-unit-orthography);--unit-depth:var(--path-unit-orthography-depth)}.exam-path-unit--punctuation{--unit-face:var(--path-unit-punctuation);--unit-depth:var(--path-unit-punctuation-depth);--unit-label:oklch(53% .17 25)}.exam-path-unit--essay{--unit-face:var(--path-unit-essay);--unit-depth:var(--path-unit-essay-depth)}.exam-path-banner{top:var(--home-topbar-height);z-index:7;margin:0;position:sticky}.exam-path-banner:before{content:"";background:var(--gray-100);height:16px;position:absolute;bottom:100%;left:-20px;right:-20px}.exam-path-banner:has([data-popup-open]):after{content:"";z-index:-1;background:var(--gray-100);height:12px;position:absolute;top:100%;left:-20px;right:-20px}.exam-path-banner-button{width:100%;min-height:60px;color:var(--gray-100);background:var(--unit-face);box-shadow:0 var(--depth-md) 0 var(--unit-depth);font:inherit;text-align:left;-webkit-tap-highlight-color:transparent;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing);border:0;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:10px 16px;display:grid}.exam-path-banner-button:active,.exam-path-banner-button[data-pressed]{transform:translateY(var(--depth-md));box-shadow:none}.exam-path-banner-button:focus-visible{outline:3px solid var(--gray-100);outline-offset:-7px}.exam-path-banner-button span{opacity:.85;letter-spacing:.08em;text-transform:uppercase;grid-column:1;font-size:11px;font-weight:800;line-height:16px}.exam-path-banner-button strong{text-overflow:ellipsis;white-space:nowrap;grid-column:1;font:700 19px/26px Unbounded,sans-serif;overflow:hidden}.exam-path-banner-button svg{stroke-width:2.5px;width:24px;height:24px;transition:rotate var(--motion-duration) var(--motion-easing);grid-area:1/2/span 2}.exam-path-banner-button[data-popup-open] svg{rotate:180deg}.unit-picker{width:var(--anchor-width);max-height:var(--available-height);border:2px solid var(--gray-92);background:var(--gray-100);transition:opacity var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:18px;padding:6px;overflow:auto;box-shadow:0 12px 32px oklch(0% 0 0/.12)}.unit-picker[data-starting-style],.unit-picker[data-ending-style]{opacity:0;transform:translateY(-6px)}.unit-picker-list{margin:0;padding:0;list-style:none}.unit-picker-item{width:100%;min-height:56px;color:var(--gray-14);font:inherit;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.unit-picker-item:hover,.unit-picker-item:active{background:var(--gray-97)}.unit-picker-item:focus-visible{outline:3px solid var(--blue-65);outline-offset:-3px}.unit-picker-copy{flex-direction:column;min-width:0;display:flex}.unit-picker-copy span{color:var(--unit-label,var(--unit-depth));letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800;line-height:16px}.unit-picker-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;line-height:20px;overflow:hidden}.unit-picker-here{width:20px;height:20px;color:var(--path-ring)}.unit-picker-progress{color:var(--gray-52);font-variant-numeric:tabular-nums;grid-column:3;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.unit-picker-progress>span{background:var(--gray-92);border-radius:999px;width:44px;height:6px;overflow:hidden}.unit-picker-progress i{border-radius:inherit;background:var(--unit-face);height:100%;display:block}.exam-path-steps{flex-direction:column;align-items:center;gap:23px;margin:0;padding:28px 0 4px;list-style:none;display:flex}.exam-path-step{transform:translateX(var(--sway,0));justify-content:center;display:flex;position:relative}.exam-path-step--current{margin:44px 0 10px}.exam-path-node{--face:var(--path-new-face);--depth:var(--path-new-depth);--ink:var(--path-new-ink);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:70px;height:63px;padding:0;display:block;position:relative}:is(.exam-path-node,.exam-path-popover).is-learning{--face:var(--path-learning-face);--depth:var(--path-learning-depth);--ink:var(--path-learning-ink)}:is(.exam-path-node,.exam-path-popover).is-practiced{--face:var(--path-practiced-face);--depth:var(--path-practiced-depth);--ink:var(--path-practiced-ink)}:is(.exam-path-node,.exam-path-popover).is-mastered{--face:var(--path-mastered-face);--depth:var(--path-mastered-depth);--ink:var(--path-mastered-ink)}.exam-path-node:focus-visible{outline:none}.exam-path-focus{fill:none;stroke:var(--blue-65);stroke-width:3px;display:none}.exam-path-node:focus-visible .exam-path-focus{display:inline}.exam-path-coin{width:70px;height:63px;display:block;overflow:visible}.exam-path-side{fill:var(--depth)}.exam-path-face{fill:var(--face);transition:transform var(--motion-duration) var(--motion-easing)}.exam-path-node:not(.is-soon) .exam-path-face>ellipse{stroke:var(--depth);stroke-width:2px}.exam-path-face text{fill:var(--ink);text-anchor:middle;dominant-baseline:central;font:700 24px Unbounded,sans-serif}.exam-path-node:not(.is-soon):active .exam-path-face,.exam-path-node[data-pressed] .exam-path-face{transform:translateY(var(--depth-lg));transition-duration:80ms}.exam-path-node.is-empty .exam-path-coin{opacity:.5}.exam-path-node.is-soon .exam-path-side{display:none}.exam-path-node.is-soon .exam-path-face{fill:var(--gray-98);stroke:var(--gray-80);stroke-width:2px;stroke-dasharray:6 5;transform:translateY(calc(var(--depth-lg) / 2))}.exam-path-node.is-soon .exam-path-face text{fill:var(--gray-56);stroke:none}.exam-path-soon{color:var(--gray-32);background:var(--gray-92);text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:800;line-height:14px;display:inline-flex;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.exam-path-soon svg{width:12px;height:12px}.exam-path-ring-track,.exam-path-ring,.exam-path-halo{fill:none;pointer-events:none}.exam-path-ring-track{stroke:var(--path-ring-track);stroke-width:7px}.exam-path-ring{stroke:var(--path-ring);stroke-width:7px;stroke-linecap:round;transition:stroke-dasharray .6s var(--motion-easing)}.exam-path-halo{stroke:var(--path-ring);stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:exam-path-halo 2s var(--motion-easing) infinite}@keyframes exam-path-halo{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.exam-path-callout{z-index:1;border:2px solid var(--gray-92);color:var(--blue-54);background:var(--gray-100);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;transition:opacity var(--motion-duration) var(--motion-easing);border-radius:14px;padding:8px 14px;font-size:13px;font-weight:800;line-height:16px;animation:1.8s ease-in-out infinite exam-path-bob;position:absolute;bottom:calc(100% + 22px);left:50%;translate:-50%}.exam-path-callout:after{content:"";border:2px solid var(--gray-92);background:var(--gray-100);border-top:0;border-left:0;width:12px;height:12px;position:absolute;top:100%;left:50%;transform:translate(-50%,-5px)rotate(45deg)}.exam-path.has-popover .exam-path-callout{opacity:0}@keyframes exam-path-bob{50%{transform:translateY(-4px)}}.exam-path-crown,.exam-path-badge{border:2px solid var(--gray-100);pointer-events:none;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:-6px}.exam-path-crown{color:var(--path-mastered-depth);background:var(--gray-100);right:-6px}.exam-path-badge{color:var(--gray-100);background:var(--pink-58);left:-6px}.exam-path-crown svg,.exam-path-badge svg{width:15px;height:15px}.exam-path-positioner{z-index:30}.exam-path-popover{--face:var(--path-new-face);border:2px solid var(--face);width:min(300px,100vw - 32px);color:var(--gray-14);background:var(--gray-100);transform-origin:var(--transform-origin);transition:opacity var(--motion-duration) var(--motion-easing), transform var(--motion-duration) var(--motion-easing);border-radius:20px;padding:16px;position:relative}.exam-path-popover[data-starting-style],.exam-path-popover[data-ending-style]{opacity:0;transform:scale(.96)}.exam-path-popover-arrow{width:28px;height:13px}.exam-path-popover-arrow svg{width:28px;height:13px;display:block}.exam-path-popover-arrow[data-side=bottom]{top:-12px}.exam-path-popover-arrow[data-side=top]{bottom:-12px}.exam-path-popover-arrow[data-side=top] svg{transform:scaleY(-1)}.exam-path-popover-arrow-edge{fill:var(--face)}.exam-path-popover-arrow-fill{fill:var(--gray-100)}.exam-path-popover-title{margin:0;font:700 17px/22px Unbounded,sans-serif}.exam-path-popover-meta{color:var(--gray-52);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 14px;font-size:13px;font-weight:700;line-height:18px;display:flex}.exam-path-popover-meta:last-child{margin-bottom:0}.exam-path-popover-meta em{color:var(--pink-label);background:var(--pink-98);border-radius:999px;padding:1px 8px;font-size:11px;font-style:normal}.exam-path-popover-error{color:var(--red-label);text-align:center;margin:8px 0 0;font-size:12px;font-weight:600;line-height:16px}.exam-path-state{border:2px solid var(--gray-92);background:var(--gray-100);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:8px;margin:24px 20px;padding:20px;display:flex}.account-body .exam-path-state{margin:0}.exam-path-state svg{width:32px;height:32px;color:var(--gray-72)}.exam-path-state strong{font:700 16px/22px Unbounded,sans-serif}.exam-path-state span{color:var(--gray-52);font-size:13px;font-weight:600;line-height:18px}.exam-path--loading .exam-path-skeleton-banner{background:var(--gray-93);border-radius:16px;min-height:60px}.exam-path--loading .exam-path-node{--face:var(--gray-93);--depth:var(--gray-90)}.home-pinned{border:2px solid var(--gray-92);border-bottom-width:calc(2px + var(--depth-sm));background:var(--gray-100);transition:transform var(--motion-duration) var(--motion-easing);border-radius:18px;align-items:stretch;margin:12px 20px 0;display:flex}.home-pinned:has(.assignment-card:not(:disabled):active){margin-bottom:var(--depth-sm);transform:translateY(var(--depth-sm));border-bottom-width:2px}.home-pinned:has(.assignment-card:focus-visible){outline:3px solid var(--blue-65);outline-offset:2px}.home-pinned .assignment-card-wrap{flex:1;min-width:0}.home-pinned-all{align-items:center;gap:6px;padding:0 10px 0 4px;text-decoration:none;display:flex}.home-pinned-all:focus-visible{outline:3px solid var(--blue-65);outline-offset:-3px;border-radius:0 16px 16px 0}.home-pinned .assignment-card-error{margin:0 12px 10px}.home-inline-error{color:var(--red-label);background:var(--red-95);border-radius:14px;align-items:center;gap:8px;margin:12px 20px 0;padding:10px 12px;font-size:12px;font-weight:600;display:flex}.home-inline-error button{color:inherit;font:inherit;white-space:nowrap;background:0 0;border:0;margin-left:auto;padding:4px 0;font-weight:700}.assignment-card{border:2px solid var(--gray-92);border-bottom-width:calc(2px + var(--depth-sm));width:100%;min-height:76px;color:var(--gray-14);background:var(--gray-100);font:inherit;text-align:left;transition:transform var(--motion-duration) var(--motion-easing);border-radius:20px;grid-template-columns:44px minmax(0,1fr) 28px;align-items:center;gap:12px;padding:12px;display:grid}.assignment-card:not(:disabled):active{margin-bottom:var(--depth-sm);transform:translateY(var(--depth-sm));border-bottom-width:2px}.assignment-card:focus-visible{outline:3px solid var(--blue-65);outline-offset:3px}.assignment-card[aria-busy=true]{opacity:.7}.assignment-card-wrap.is-highlighted .assignment-card{border-color:var(--blue-65)}.assignment-card-icon{width:44px;height:44px;color:var(--purple-label);background:var(--purple-95);border-radius:14px;place-items:center;display:grid}.assignment-card--resume .assignment-card-icon{color:var(--blue-54);background:var(--blue-96)}.assignment-card-icon svg{width:24px;height:24px}.assignment-card-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.assignment-card-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:700;line-height:20px;display:-webkit-box;overflow:hidden}.assignment-card-copy em{-webkit-line-clamp:2;color:var(--gray-52);-webkit-box-orient:vertical;font-size:12px;font-style:normal;font-weight:600;line-height:16px;display:-webkit-box;overflow:hidden}.assignment-card-meta{color:var(--gray-52);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12px;font-weight:600;line-height:16px;display:flex}.assignment-card-meta .deadline-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.assignment-card-meta .deadline-badge svg{width:14px;height:14px}.assignment-card-progress{align-items:center;gap:8px;display:flex}.assignment-card-progress>span{background:var(--gray-92);border-radius:999px;flex:1;height:6px;overflow:hidden}.assignment-card-progress i{border-radius:inherit;background:var(--blue-65);height:100%;display:block}.assignment-card-progress b{color:var(--gray-52);font-size:11px;font-weight:700}.assignment-card-go{width:28px;height:28px;color:var(--gray-52);background:var(--gray-97);border-radius:50%;place-items:center;display:grid}.assignment-card-go svg{width:16px;height:16px}.assignment-card-error{color:var(--red-label);margin:8px 4px 0;font-size:12px;font-weight:600;line-height:16px}.assignments-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.assignments-skeleton{flex-direction:column;gap:14px;display:flex}.assignments-skeleton i{background:var(--gray-93);border-radius:20px;height:76px}.assignment-card.assignment-card--compact{background:0 0;border:0;border-radius:16px;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;min-height:52px;padding:8px 10px}.assignment-card.assignment-card--compact:focus-visible{outline:none}.assignment-card--resume.assignment-card--compact{grid-template-columns:32px minmax(0,1fr) auto 28px}.assignment-card.assignment-card--compact:not(:disabled):active{border-bottom-width:0;margin-bottom:0;transform:none}.assignment-card--compact .assignment-card-icon{border-radius:10px;width:32px;height:32px}.assignment-card--compact .assignment-card-icon svg{width:18px;height:18px}.assignment-card--compact .assignment-card-copy{gap:2px}.assignment-card--compact>strong,.assignment-card--compact .assignment-card-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:20px;overflow:hidden}.assignment-card--compact .deadline-badge{white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.assignment-card--compact .deadline-badge svg{width:14px;height:14px}.assignment-card-count{min-width:24px;color:var(--gray-52);background:var(--gray-97);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:800;line-height:16px}.assignment-card-count--alert{color:var(--gray-100);background:var(--red-59)}.mistakes-entry .home-pinned{margin:0}.home-screen>.mistakes-entry{margin:10px 20px 0}.completion-summary .mistakes-entry{text-align:left;width:100%;margin-top:18px}.assignment-card--mistakes.assignment-card--compact{grid-template-columns:32px minmax(0,1fr) auto 28px}.assignment-card--mistakes .assignment-card-icon{color:var(--gray-100);background:var(--orange-66)}@media (prefers-reduced-motion:reduce){.exam-path-halo,.exam-path-callout{animation:none!important}.exam-path-halo{opacity:0}.exam-path-face,.exam-path-ring,.exam-path-callout,.exam-path-popover,.exam-path-banner-button,.exam-path-banner-button svg,.unit-picker,.home-pinned,.assignment-card{transition-duration:0s!important}}.quality-report-filter{max-width:240px}.quality-report-list{flex-direction:column;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:flex}.quality-report{border:2px solid var(--gray-92);border-radius:16px;flex-direction:column;gap:8px;padding:14px;display:flex}.quality-report header{align-items:baseline;gap:12px;display:flex}.quality-report header time{color:var(--gray-56);margin-left:auto;font-size:13px}.quality-report p{margin:0}.quality-report dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:14px;display:grid}.quality-report dt{color:var(--gray-56)}.quality-report dd{overflow-wrap:anywhere;margin:0}.quality-report code{-webkit-user-select:all;user-select:all;font-size:12px}.quality-report-actions{gap:8px;display:flex}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
