:root{--colour-page:#fffdf7;--colour-surface:#fff;--colour-text:#1a2233;--colour-muted:#4a5468;--colour-brand:#0b5fd0;--colour-on-brand:#fff;--colour-accent:#ffc233;--colour-good:#1b7a3a;--colour-attention:#b42318;--colour-focus:#1a2233;--colour-xp:#6d28d9;--colour-xp-tint:#f3edff;--colour-streak:#c2410c;--colour-streak-tint:#fff1e6;--colour-protected:#0f766e;--colour-sunny:#fff8dc;--radius:.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--measure:44rem;--wide:72rem;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}body{background:var(--colour-page);color:var(--colour-text);font-family:var(--font-body);font-size:var(--text-base);margin:0;line-height:1.5}h1,h2,h3{line-height:1.25}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}a{color:var(--colour-brand);text-underline-offset:.15em}:focus-visible{outline:.1875rem solid var(--colour-focus);outline-offset:.125rem}button,.button{min-width:2.75rem;min-height:2.75rem;padding:var(--space-2) var(--space-4);border:.125rem solid var(--colour-brand);border-radius:var(--radius);background:var(--colour-brand);color:var(--colour-on-brand);font:inherit;cursor:pointer;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}button:disabled,button[aria-disabled=true]{border-color:var(--colour-muted);background:var(--colour-surface);color:var(--colour-muted);cursor:not-allowed}input:not([type=radio],[type=checkbox]),select,textarea{max-width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:.125rem solid var(--colour-muted);border-radius:var(--radius);background:var(--colour-surface);color:inherit;font:inherit}input[type=checkbox]{font-size:inherit;vertical-align:-.2em;width:1.25em;height:1.25em}.page{max-width:var(--wide);padding:var(--space-4);margin:0 auto}.state{justify-items:start;gap:var(--space-3);display:grid}.site-header{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);padding:var(--space-2) var(--space-4);border-bottom:.25rem solid var(--colour-accent);background:var(--colour-surface);flex-wrap:wrap;display:flex}.wordmark,.account-links a:not(.button){align-items:center;min-height:2.75rem;display:inline-flex}.wordmark{color:var(--colour-text);font-size:var(--text-xl);font-weight:800;text-decoration:none}.account-links{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.account-name{font-weight:600}.account-links button{background:var(--colour-surface);color:var(--colour-brand)}.course-home{gap:var(--space-6);display:grid}@media (min-width:64rem){.course-home{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.course-switcher ul{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.course-switcher a{align-items:center;min-height:2.75rem;display:inline-flex}.course-switcher a[aria-current=page]{color:var(--colour-text);font-weight:700;text-decoration:none}.question-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.question-list button{gap:var(--space-2);background:var(--colour-surface);color:var(--colour-brand)}.question-list button[aria-current=step]{background:var(--colour-brand);color:var(--colour-on-brand);text-underline-offset:.2em;text-decoration:underline}.actions{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.banner:empty{margin:0}.banner:not(:empty){padding:var(--space-2) var(--space-4);border:.125rem solid var(--colour-text);border-radius:var(--radius);background:var(--colour-accent);font-weight:600}.aceready-drag-card{gap:var(--space-1);flex-direction:column}.aceready-drag-count{font-size:var(--text-sm);font-weight:400}.aceready-drop-zone{background:var(--colour-surface);color:var(--colour-brand);border-style:dashed}.practice-finish{margin-top:var(--space-6);padding-top:var(--space-4);border-top:.125rem solid var(--colour-muted)}html:has(.aceready-calculator){scroll-padding-bottom:70vh}body:has(.aceready-calculator){padding-bottom:70vh}.aceready-calculator{z-index:5;max-height:70vh;padding:var(--space-3) var(--space-4) var(--space-4);border-top:.25rem solid var(--colour-text);background:var(--colour-surface);position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -.25rem 1rem #0003}.aceready-calculator h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.aceready-calculator-display{padding:var(--space-2) var(--space-3);border:.125rem solid var(--colour-muted);border-radius:var(--radius);background:var(--colour-page);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:right}.aceready-calculator-display p{margin:0}.aceready-calculator-expression{min-height:1.5em;color:var(--colour-muted)}.aceready-calculator-result{font-size:var(--text-xl);font-weight:700}.aceready-calculator-error{color:var(--colour-attention);font-weight:700}.aceready-calculator-note{font-size:var(--text-sm);text-align:left;font-weight:600}.aceready-calculator-row{gap:var(--space-1);margin-top:var(--space-2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.aceready-calculator-row>:nth-child(4):last-child{grid-column:span 2}.aceready-calculator-row button{background:var(--colour-surface);min-width:0;color:var(--colour-brand);font-size:var(--text-sm);padding-inline:0}.aceready-calculator-close{margin-top:var(--space-3)}@media (min-width:64rem){.aceready-question{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1fr);grid-auto-columns:20rem;grid-auto-flow:column;display:grid}html:has(.aceready-calculator){scroll-padding-bottom:auto}body:has(.aceready-calculator){padding-bottom:0}.aceready-calculator-row{gap:var(--space-2)}.aceready-calculator-row button{font-size:var(--text-base)}.aceready-calculator{inset:var(--space-4) auto auto;z-index:auto;max-height:calc(100vh - 2 * var(--space-4));border:.125rem solid var(--colour-text);border-radius:var(--radius);box-shadow:none;position:sticky}}.celebrate{padding-bottom:var(--space-1);border-bottom:.25rem solid var(--colour-accent);display:inline-block}@media (prefers-reduced-motion:no-preference){.celebrate{animation:.6s ease-out both celebrate-in}}@keyframes celebrate-in{0%{opacity:0;transform:translateY(.75rem)scale(.9)}60%{transform:translateY(0)scale(1.04)}to{opacity:1;transform:none}}.history-attempts{margin:0;padding:0;list-style:none}.history-attempts li{align-items:center;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.history-attempts a{align-items:center;min-height:2.75rem;display:inline-flex}.mark{padding:0 var(--space-2);border-radius:var(--radius);background:var(--colour-surface);color:var(--colour-text);font-size:var(--text-sm);border:.125rem solid;font-weight:700;display:inline-block}.visually-hidden,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-2);left:var(--space-2);z-index:10;padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--colour-accent);color:var(--colour-text);font-weight:700;position:absolute}section.explain-more{margin-top:var(--space-4);padding-left:var(--space-4);border-left:.25rem solid var(--colour-brand)}section.explain-more .note{color:var(--colour-muted);font-size:var(--text-sm)}.support-contact{max-width:var(--wide);margin:var(--space-6) auto var(--space-4);padding:0 var(--space-4);color:var(--colour-muted)}.report{margin-top:var(--space-4)}.report-panel{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border:.125rem solid var(--colour-muted);border-radius:var(--radius);background:var(--colour-surface)}.report-panel fieldset{margin:0 0 var(--space-3);border:none;padding:0}.report-choice{gap:var(--space-2);margin:var(--space-2) 0;align-items:baseline;display:flex}.report-panel textarea{width:100%;min-height:5rem;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.glyph{vertical-align:-.2em;flex-shrink:0;width:1.25em;height:1.25em}.rewards-card{align-items:center;gap:var(--space-3) var(--space-4);margin-block:var(--space-4);padding:var(--space-3) var(--space-4);border:.125rem solid var(--colour-accent);background:var(--colour-sunny);border-radius:1rem;flex-wrap:wrap;display:flex}.rewards-card>div{gap:var(--space-1);display:grid}.rewards-name{font-size:var(--text-lg);margin:0;font-weight:700}.rewards-links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.character{border:.25rem solid var(--colour-accent);object-fit:cover;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.character-small{width:4.5rem;height:4.5rem}.character-large{width:10rem;height:10rem}.character-letter{background:var(--colour-brand);color:var(--colour-on-brand);font-size:var(--text-xl);font-weight:700}.character-large.character-letter{font-size:4rem}.xp-pill,.streak-chip,.goal-status{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:999px;margin:0;font-weight:700;display:inline-flex}.xp-pill{background:var(--colour-xp-tint);color:var(--colour-xp)}.streak-chip{background:var(--colour-streak-tint);color:var(--colour-streak)}.streak-chip.streak-none{color:var(--colour-muted);background:0 0;font-weight:400}.goal-met{color:var(--colour-good)}.today-panel{justify-items:start;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-4);border:.125rem solid var(--colour-accent);background:var(--colour-sunny);border-radius:1rem;display:grid}.today-panel h2,.today-panel p{margin:0}.day-strip{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.day{justify-items:center;gap:var(--space-1);font-size:var(--text-sm);display:grid}.day-mark{border:.125rem solid var(--colour-muted);width:2.25rem;height:2.25rem;color:var(--colour-on-brand);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.day-met .day-mark{border-color:var(--colour-good);background:var(--colour-good)}.day-protected .day-mark{border-color:var(--colour-protected);background:var(--colour-protected)}.day-missed .day-mark{border-style:dashed}.day-today .day-mark{border:.1875rem solid var(--colour-streak)}.day-none .day-mark{border-color:#c8ccd4}.grace-note{align-items:center;gap:var(--space-2);color:var(--colour-protected);font-size:var(--text-sm);display:inline-flex}.reward-area{align-items:center;gap:var(--space-3);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.badge-burst{justify-items:center;gap:var(--space-1);padding:var(--space-6) var(--space-4);background:radial-gradient(circle, #fff3c4 0%, var(--colour-sunny) 55%, transparent 75%) center / 100% 100% no-repeat;text-align:center;border-radius:1.5rem;flex-basis:100%;display:grid}.badge-burst p{margin:0}.badge-new{width:11rem;height:11rem}.badge-title{font-size:var(--text-xl);font-weight:700}.badge-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));margin:0;padding:0;list-style:none;display:grid}.badge{justify-items:center;gap:var(--space-1);padding:var(--space-3);text-align:center;border-radius:1rem;display:grid}.badge p{margin:0}.badge-earned{background:var(--colour-sunny)}.badge-picture{width:6rem;height:6rem}.badge-unearned .badge-picture{filter:grayscale();opacity:.45}.badge-name{font-weight:700}.rewards-character{justify-items:start;gap:var(--space-2);display:grid}.character-grid{gap:var(--space-4);border:0;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));margin:0;padding:0;display:grid}.character-card{justify-items:center;gap:var(--space-1);padding:var(--space-4);background:var(--colour-surface);text-align:center;cursor:pointer;border:.125rem solid #d5d9e0;border-radius:1rem;display:grid;position:relative}.character-card:has(:checked){border:.25rem solid var(--colour-brand);background:#eef4ff}.character-card:has(:checked) .character-card-name:after{content:" ✓"}.character-card:has(:focus-visible){outline:.1875rem solid var(--colour-focus);outline-offset:.125rem}.character-radio{opacity:0;width:.0625rem;height:.0625rem;position:absolute}.character-card-name{font-size:var(--text-lg);font-weight:700}.character-card-personality{color:var(--colour-muted);font-size:var(--text-sm)}@media (prefers-reduced-motion:no-preference){.reward-pop{animation:.5s ease-out both reward-pop}.reward-pop:nth-child(2){animation-delay:.15s}.reward-pop:nth-child(3){animation-delay:.3s}.badge-new{animation:.9s cubic-bezier(.2,1.4,.4,1) .4s both badge-in}.badge-burst{animation:1.6s ease-out .4s both burst-glow}}@keyframes reward-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes badge-in{0%{opacity:0;transform:scale(.3)rotate(-25deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes burst-glow{0%{background-size:10% 10%}to{background-size:100% 100%}}.table-scroll{overflow-x:auto}.table-scroll table{border-collapse:collapse}.table-scroll th,.table-scroll td{text-align:start;vertical-align:top;padding:.375rem 1rem .375rem 0}
