/*
Copyright 2018 The Fraunces Project Authors (https://github.com/undercasetype/Fraunces)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

*/
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/fraunces-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/fraunces-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*
Copyright 2016 The Nunito Sans Project Authors (https://github.com/Fonthausen/NunitoSans)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

*/
@font-face {
  font-family: "Nunito Sans";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Nunito Sans";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--ink:#1B3A5C;--muted:#4A6383;--paper:#FBFAF5;--surface:#EEF2F7;--accent:#F5C843;--body-font:Nunito Sans;--heading-font:Fraunces;--content-width:1120px;--section-space:80px;--radius:16px;--text-size:18px;--heading-scale:1;color-scheme:light}
*,*::before,*::after{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth;scroll-padding-top:24px;scrollbar-gutter:stable}body{margin:0;overflow-wrap:anywhere;background:var(--paper);color:var(--ink);font-family:var(--body-font),system-ui,sans-serif;font-size:var(--text-size);line-height:1.55;-webkit-font-smoothing:antialiased}main{display:block}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:.18em}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading-font),Georgia,serif;font-weight:700;letter-spacing:-.01em;text-wrap:balance}h1{font-size:clamp(calc(2.4rem * var(--heading-scale)),calc(5.5vw * var(--heading-scale)),calc(4.25rem * var(--heading-scale)));line-height:1.05}h2{font-size:clamp(calc(1.9rem * var(--heading-scale)),calc(3.8vw * var(--heading-scale)),calc(2.75rem * var(--heading-scale)));line-height:1.12}h3{font-size:clamp(calc(1.25rem * var(--heading-scale)),calc(2vw * var(--heading-scale)),calc(1.375rem * var(--heading-scale)));line-height:1.25}p,li,h1,h2,h3,a,label,summary{overflow-wrap:anywhere}button,input,select,textarea{max-width:100%}.wrap{width:min(var(--content-width),calc(100% - 48px));margin-inline:auto}.section{padding-block:var(--section-space)}.space-compact{padding-block:calc(var(--section-space) * .65)}.space-roomy{padding-block:calc(var(--section-space) * 1.3)}.tone-paper{background:var(--paper)}.tone-white{background:#fff}.tone-soft{background:var(--surface)}.tone-ink{background:var(--ink);color:var(--paper);--local-muted:var(--paper)}.align-center>.wrap>.section-heading,.align-center>.wrap>.feature-ending{text-align:center;margin-inline:auto}.stack{display:flex;flex-direction:column;gap:20px;min-width:0}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:start}.split>*{min-width:0}.muted{color:var(--local-muted,var(--muted))}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.82em;font-weight:800}.section-heading{max-width:800px;margin-bottom:36px}.section-heading p{margin-top:18px}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:12px 28px;border:2px solid transparent;border-radius:calc(var(--radius) * .625);background:var(--accent);color:var(--ink);font-family:var(--body-font),system-ui,sans-serif;font-weight:800;font-size:.95em;line-height:1.25;text-align:center;text-decoration:none;white-space:normal}.button:hover{filter:brightness(.97)}.text-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;border:0;background:none;color:inherit;text-decoration:underline;font:inherit}.card{padding:28px;border:2px solid var(--ink);border-radius:var(--radius);background:#fff;color:var(--ink);--local-muted:var(--muted)}
.site-header{padding-block:14px;border-bottom:2px solid var(--ink)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;min-height:46px}.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:var(--heading-font),Georgia,serif;font-size:1.22em;font-weight:700;text-decoration:none}.brand img{width:34px;height:30px;object-fit:contain}.header-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.header-actions nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.header-actions nav:empty{display:none}.header-actions .button{padding:10px 20px}.header-actions .button,.header-actions .text-link,.header-actions .quiet-button{min-height:46px;border:2px solid transparent;font-family:var(--body-font),system-ui,sans-serif;font-size:.95em;line-height:1.25}.header-actions .text-link,.header-actions .quiet-button{padding:10px 0;font-weight:400}
.brand img.brand-wordmark{width:224px;max-width:100%;height:auto}
.hero .split{align-items:center;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:40px}.hero-copy{gap:24px}.hero-body{font-size:1.22em;line-height:1.45;max-width:560px}.hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.hero-caption{font-size:.89em}.hero-art{display:flex;justify-content:center;align-items:center}.hero-art img{width:min(100%,420px)}
.story{border-block:2px solid var(--ink)}.story .split{grid-template-columns:minmax(0,.85fr) minmax(0,1.1fr)}.story-copy p:first-of-type{font-size:1.06em}.story-copy p:last-child{font-size:.9em}.note{padding:28px 32px;border-radius:calc(var(--radius) * 1.125);box-shadow:8px 8px 0 var(--ink)}.note-title{font-family:var(--heading-font),Georgia,serif;font-size:1.33em;font-weight:700}.note-meta{font-size:.83em;margin-top:4px;margin-bottom:20px}.note-copy{display:flex;flex-direction:column;gap:14px}
.steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.step{display:flex;flex-direction:column;gap:14px;min-width:0}.step img{width:44px;height:44px;object-fit:contain;margin-bottom:4px}.step img.illustration{width:80px;height:72px}.step p{font-size:.95em}
.preview-section{border-block:2px solid var(--ink)}.preview-heading-row{display:flex;align-items:start;justify-content:space-between;gap:24px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border:1px solid currentColor;border-radius:999px;padding:6px 12px;font-size:.78em;white-space:normal}.preview-label{font-size:.78em;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.preview-caption{font-size:.86em;color:var(--muted);margin-top:16px}.dashboard-card{padding:24px;border-width:3px}.dashboard-card{border-radius:calc(var(--radius) * 1.125)}.mock-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82em}.mock-progress{height:8px;background:var(--surface);border-radius:999px;overflow:hidden;margin:20px 0 26px}.mock-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.hint{display:flex;gap:12px;align-items:start;margin-top:22px;padding:16px;background:var(--surface);border-radius:calc(var(--radius) * .625);font-size:.9em}.hint img{width:11px;height:22px;flex:none;margin-top:3px}.mock-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:24px}.mock-bottom>span{font-size:.8em;color:var(--muted)}.dashboard-title{font-family:var(--heading-font),Georgia,serif;font-size:1.22em;font-weight:700}.mock-tabs{display:flex;gap:18px;flex-wrap:wrap;font-size:.83em;margin-top:18px;padding-bottom:14px;border-bottom:1px solid var(--muted)}.mock-tabs span:first-child{font-weight:800}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.metric{padding:12px;border:2px solid var(--ink);background:transparent;border-radius:calc(var(--radius) * .75);min-width:0}.metric:last-child{background:color-mix(in srgb,var(--accent) 20%,#fff)}.metric dt{font-size:.72em;color:var(--muted)}.metric dd{font-family:var(--heading-font),Georgia,serif;font-weight:700;font-size:1.12em;margin:4px 0 0}.skills{display:flex;flex-direction:column;gap:14px}.skill-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;font-size:.84em}.skill .mock-progress{height:7px;margin:7px 0 0}.saved-question{display:flex;flex-direction:column;align-items:start;gap:8px;font-size:.83em;border-top:1px solid var(--muted);padding-top:18px;margin-top:24px}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.feature-card{background:var(--paper);display:flex;flex-direction:column;gap:16px}.feature-card img{width:44px;height:44px;object-fit:contain}.feature-card .feature-note{font-size:.89em;color:var(--muted)}.feature-ending{max-width:850px;display:flex;flex-direction:column;gap:18px;margin-top:40px}.feature-ending p:first-child{font-family:var(--heading-font),Georgia,serif;font-size:1.55em;line-height:1.25}.feature-ending p:last-child{font-weight:700}.feature-checklist{display:flex;flex-direction:column;gap:20px}.feature-check{display:flex;gap:14px;align-items:start}.feature-check img{width:22px;height:22px;flex:none;margin-top:4px}.feature-check img.illustration{width:88px;height:72px;object-fit:contain;margin-top:0}.feature-check h3{display:inline;font-family:var(--body-font),system-ui,sans-serif;font-size:1em;letter-spacing:0}.feature-check p{display:inline}.features-checklist .split{grid-template-columns:minmax(0,.75fr) minmax(0,1.1fr)}
.faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px;align-items:start}.faq-item{border-top:1px solid var(--ink);padding-top:16px}.faq-item summary{cursor:pointer;min-height:44px;font-family:var(--heading-font),Georgia,serif;font-size:1.1em;font-weight:700;line-height:1.35;padding:8px 24px 8px 0}.faq-item p{padding:10px 0 20px;color:var(--muted)}
.signup{border-top:2px solid var(--ink)}.signup .split{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.price{font-family:var(--heading-font),Georgia,serif;font-size:2.6em;font-weight:700;line-height:1.2}.price span{font-family:var(--body-font),system-ui,sans-serif;font-size:.38em;font-weight:400}.price-note{font-size:.83em;color:var(--muted)}.benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.benefits li{display:flex;align-items:start;gap:12px;font-size:.94em}.benefits img{width:22px;height:22px;flex:none;margin-top:3px}.benefit-mark{width:22px;height:22px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ink);border-radius:50%;background:var(--accent);font-size:14px;font-weight:800;margin-top:3px}.signup-form{display:flex;flex-direction:column;gap:20px;padding:32px}.field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:.85em;font-weight:700}.field input,.field select,.field textarea{min-width:0;width:100%;min-height:52px;padding:12px 14px;border:2px solid var(--ink);border-radius:calc(var(--radius) * .625);background:#fff;color:var(--ink);font-size:1.05em;font-weight:400}.field textarea{min-height:120px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}.form-note,.preview-notice{font-size:.78em;text-align:center;color:var(--muted)}.preview-notice{border-top:1px solid var(--surface);padding-top:12px}.signup-caption{font-size:.9em}
.site-footer{padding-block:28px;border-top:2px solid var(--ink);font-size:.84em}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap}.footer-brand{font-family:var(--heading-font),Georgia,serif;font-weight:700}.footer-row nav{display:flex;gap:20px;flex-wrap:wrap}
.journey-layout{max-width:min(var(--content-width),960px)}.journey-stack{display:flex;flex-direction:column;gap:24px}.journey-heading{display:flex;flex-direction:column;gap:18px}.journey-heading h1{font-size:clamp(calc(2.125rem * var(--heading-scale)),calc(4vw * var(--heading-scale)),calc(3rem * var(--heading-scale)));line-height:1.15}.journey-copy{font-size:1.16em;white-space:pre-line}.journey-layout .button{min-height:56px;font-family:var(--body-font),system-ui,sans-serif;font-size:1em;font-weight:800}.journey-action{display:flex;justify-content:flex-start}.align-center .journey-action{justify-content:center}.journey-footer{margin-top:30px;font-size:.83em}.journey-card{padding:32px;border:1.5px solid var(--ink);border-radius:var(--radius);background:#fff;color:var(--ink);--local-muted:var(--muted)}.journey-shadow{box-shadow:5px 6px 0 var(--ink)}.journey-login-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:center}.journey-login-intro h2{font-size:clamp(calc(2.125rem * var(--heading-scale)),calc(4.2vw * var(--heading-scale)),calc(3.25rem * var(--heading-scale)));white-space:pre-line}.journey-login-intro img{width:min(100%,350px);margin-inline:auto}.journey-login-card .field{font-size:.89em}.journey-login-card input{min-height:56px;font-size:1.125em}.journey-login-card .button{width:100%}.journey-preview-note{font-size:.78em}
@media(max-width:780px){.journey-login-grid{grid-template-columns:1fr;gap:32px}.journey-login-intro{max-width:600px}.journey-login-intro img{width:min(70%,260px)}.journey-login-card{width:100%;max-width:600px;margin-inline:auto}.journey-card{padding:28px}.journey-copy{font-size:1.06em}}
@media(max-width:520px){.journey-card{padding:24px}.journey-layout{width:calc(100% - 48px)}.journey-action .button{width:100%}.journey-copy{font-size:1em}}
.weekly-layout h1,.exercise-layout h1,.day-feedback-layout h1,.day-complete-layout h1,.gallery-layout h1{font-size:clamp(calc(2.125rem * var(--heading-scale)),calc(4vw * var(--heading-scale)),calc(3rem * var(--heading-scale)));line-height:1.15}.weekly-days{list-style:none;display:grid;gap:20px;padding:0;margin:36px 0 0}.weekly-day{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;width:100%;min-height:84px;padding:22px 28px;border:2px solid color-mix(in srgb,var(--ink) 20%,transparent);border-radius:var(--radius);background:#fff;color:var(--ink);text-decoration:none;font-family:var(--body-font),system-ui,sans-serif;font-size:1.1em;font-weight:700;line-height:1.35;text-align:left}.weekly-day-label{flex:1 1 10ch}.weekly-day.is-current{border-color:var(--ink)}.weekly-day.is-current::before{content:"";position:absolute;inset-block-start:-3px;inset-inline-start:28px;width:min(72px,calc(100% - 56px));height:6px;border-radius:999px;background:var(--accent)}.weekly-current{padding:6px 10px;border-radius:999px;background:var(--accent);font-size:.72em;font-weight:800}
.weekly-day.is-locked{background:var(--surface);color:var(--muted)}.weekly-locked{font-size:.72em;font-weight:700}
.weekly-completed{padding:6px 10px;border-radius:999px;background:var(--ink);color:var(--surface);font-size:.8em;font-weight:800}
.exercise-return{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;margin-bottom:16px;font-size:.9em;text-underline-offset:.2em}.exercise-topline{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.exercise-count{color:var(--local-muted,var(--muted));font-size:.9em}.exercise-progress{height:5px;background:color-mix(in srgb,currentColor 12%,transparent);border-radius:999px;margin:20px 0 32px;overflow:hidden}.exercise-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.exercise-template-slot{display:grid;place-items:center;width:100%;min-height:clamp(240px,28vw,380px);padding:32px;border:2px dashed color-mix(in srgb,var(--ink) 35%,transparent);border-radius:var(--radius);background:#fff;color:var(--muted);font-size:1.05em}.exercise-bottomline{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:24px}.exercise-question-feedback{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.exercise-feedback-options{display:flex;gap:8px;flex:none}.exercise-choice{position:relative;display:inline-flex;cursor:pointer}.exercise-native-choice{position:absolute;inset-inline-start:50%;inset-block-start:50%;width:1px;height:1px;margin:0;padding:0;opacity:0}.exercise-choice-face{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:calc(var(--radius) * .625);background:transparent;color:inherit;line-height:1.2}.exercise-choice-face svg{display:block;width:21px;height:21px;flex:none}.exercise-choice input:checked+.exercise-choice-face{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor;background:color-mix(in srgb,var(--surface) 75%,transparent)}.exercise-choice input:checked+.exercise-choice-face::after{content:"✓";position:absolute;inset-block-start:-.55em;inset-inline-end:-.35em;display:grid;place-items:center;width:1.25em;height:1.25em;border-radius:50%;background:var(--ink);color:var(--paper);font-size:.7em;font-weight:800}.exercise-choice input:focus-visible+.exercise-choice-face{outline:3px solid currentColor;outline-offset:4px}.exercise-navigation{display:flex;justify-self:end;gap:12px;flex-wrap:wrap}.exercise-navigation .button{min-width:108px;font-family:var(--body-font),system-ui,sans-serif;font-size:.95em;font-weight:800}.exercise-previous{border-color:currentColor;background:transparent}.exercise-navigation button:disabled{cursor:default;filter:none}
.exercise-feedback-comment{width:100%;min-width:0}.exercise-feedback-comment summary{display:flex;align-items:center;gap:8px;min-height:44px;width:fit-content;max-width:100%;padding:6px 0;list-style:none;font-size:.85em;color:var(--local-muted,var(--muted));cursor:pointer}.exercise-feedback-comment summary::-webkit-details-marker{display:none}.exercise-feedback-comment summary>span{display:inline-block;flex:none}.exercise-feedback-comment[open] summary>span{transform:rotate(90deg)}.exercise-feedback-comment .field{margin-top:12px}.exercise-feedback-comment textarea{min-height:104px}.day-feedback-layout h1{margin-bottom:36px}.day-feedback-card{display:grid;gap:24px;padding:28px;border:1px solid color-mix(in srgb,var(--ink) 25%,transparent);border-radius:var(--radius);background:#fff;color:var(--ink)}.day-feedback-card fieldset{padding:0;margin:0;border:0}.day-feedback-scale{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(44px,2.4em),1fr));gap:12px;max-width:400px}.day-feedback-scale .exercise-choice-face{width:100%;min-height:52px;font-weight:700}.day-feedback-labels{display:flex;justify-content:space-between;gap:20px;max-width:400px;margin-top:10px;font-size:.78em;color:var(--muted)}.day-feedback-labels span:last-child{text-align:right}.day-feedback-card .field{max-width:720px}.day-feedback-card .button{justify-self:start;font-family:var(--body-font),system-ui,sans-serif;font-size:.95em}.day-feedback-card button:disabled{cursor:default;filter:none}.day-feedback-card textarea{min-height:104px}.day-feedback-return{margin-top:24px}
@media(max-width:520px){.day-feedback-card{padding:16px}.day-feedback-scale{gap:8px}.day-feedback-card .button{width:100%;justify-self:stretch}}
@media(max-width:520px){.exercise-template-slot{padding:24px}.exercise-navigation{width:100%}.exercise-navigation .button{flex:1}}
.align-center{text-align:center}.align-center .hero-actions{justify-content:center}.align-center .step,.align-center .feature-card,.align-center .story-copy{align-items:center}.site-header.space-compact{padding-block:10px}.site-header.space-roomy{padding-block:22px}.site-footer.space-compact{padding-block:18px}.site-footer.space-roomy{padding-block:40px}.faq-item p,.preview-caption,.price-note,.signup-caption{color:var(--local-muted,var(--muted))}
@media(max-width:1000px){.steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-section .split{grid-template-columns:1fr}.preview-column{max-width:680px;width:100%;margin-inline:auto}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}}
@media(max-width:780px){.section{padding-block:calc(var(--section-space) * .7)}.space-compact{padding-block:calc(var(--section-space) * .5)}.space-roomy{padding-block:var(--section-space)}.split,.hero .split,.story .split,.features-checklist .split,.signup .split{grid-template-columns:1fr;gap:32px}.hero-art{order:2}.hero-art img{width:min(80%,340px)}.hero-body{font-size:1.1em}.story-copy{max-width:650px}.note{box-shadow:4px 4px 0 var(--ink);padding:24px}.features-checklist .section-heading{margin-bottom:0}.faq-list{grid-template-columns:1fr}}
@media(max-width:520px){.feature-check img.illustration{width:80px}.wrap{width:calc(100% - 32px)}.header-row{gap:10px 16px}.header-actions{width:100%;justify-content:flex-end;gap:12px}.header-actions nav{gap:16px}.header-actions .button{padding:10px 14px}.steps-grid{grid-template-columns:1fr;gap:30px}.hero-art img{width:min(80%,300px)}.hero-actions{align-items:stretch}.hero-actions .button{width:100%}.card{padding:20px}.signup-form{padding:20px}.metrics{grid-template-columns:1fr}.metric{display:flex;justify-content:space-between;align-items:center;gap:12px}.metric dd{margin:0}.mock-bottom .button{width:100%}.feature-ending p:first-child{font-size:1.3em}.footer-row{align-items:start;flex-direction:column}.section-heading{margin-bottom:28px}.note{margin-right:4px}.preview-heading-row{gap:0}.preview-heading-row .badge{margin-bottom:24px}}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.mc-card{--mc-question-size:1.6em;--mc-answer-size:1.4em;--mc-gap:16px;--mc-padding:24px;--mc-radius:28px;--mc-answer-radius:12px;--mc-border:2px;container-type:inline-size;padding:var(--mc-padding);border:var(--mc-border) solid var(--ink);border-radius:var(--mc-radius);background:var(--paper);color:var(--ink)}
.mc-card .mc-fieldset{padding:0;margin:0;border:0;min-inline-size:0;width:100%}.mc-card .mc-legend{display:block;float:left;width:100%;padding:0;margin:0 0 24px}.mc-card .mc-legend+*{clear:both}.mc-card .exercise-question{font-family:var(--heading-font),Georgia,serif;font-size:var(--mc-question-size);font-weight:700;line-height:1.3;margin:0;white-space:pre-line;text-wrap:pretty;overflow-wrap:anywhere}.mc-card .answer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--mc-gap)}.mc-card[data-columns="one"] .answer-options{grid-template-columns:1fr}.mc-card .answer-option{display:flex;align-items:center;gap:12px;min-height:78px;width:100%;border:var(--mc-border) solid var(--ink);border-radius:var(--mc-answer-radius);padding:16px;background:var(--paper);color:var(--ink);font-family:var(--heading-font),Georgia,serif;font-size:var(--mc-answer-size);line-height:1.3;text-align:left;overflow-wrap:anywhere;cursor:pointer}.mc-card .answer-option input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--ink)}.mc-card .answer-option:has(input:checked){background:color-mix(in srgb,var(--accent) 28%,var(--paper));box-shadow:inset 0 0 0 1px var(--ink)}.mc-card .answer-option:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:4px}.mc-card .answer-option input:focus-visible{outline:none}.mc-card .answer-option>span{flex:1;min-width:0}.mc-card .hint{margin-top:22px}.mc-card .hint.mc-hint-above{margin:0 0 22px}.mc-card .mc-hint-copy{min-width:0}.mc-card .mc-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:24px}.mc-card .mc-actions>.mc-timing{font-size:.8em;color:var(--muted)}.mc-card .mc-actions>.button{margin-inline-start:auto}.mc-card[data-action-align="stretch"] .mc-actions>.button{flex-basis:100%;width:100%}.mc-card button:disabled{opacity:.55;cursor:default}.exercise-workspace>.mc-card{width:100%}
@container(max-width:420px){.mc-card .answer-options{grid-template-columns:1fr}.mc-card .mc-actions>.button{flex-basis:100%;width:100%}}
@media(max-width:520px){.mc-card{padding:min(var(--mc-padding),20px)}.mc-card .answer-options{grid-template-columns:1fr}.mc-card .mc-actions>.button{flex-basis:100%;width:100%}.mc-card .answer-option{padding:14px}}



/* Authored template styles from Forma. */

.template-card{width:100%}
.template-card .template-prompt{margin:0 0 24px;font-family:var(--heading-font),Georgia,serif;font-size:var(--mc-question-size);font-weight:700;line-height:1.3;white-space:pre-line;overflow-wrap:anywhere}.template-card p{white-space:pre-line}.template-card .template-content{margin-bottom:24px}.template-card .template-passage{padding:20px;border-inline-start:4px solid var(--accent);background:var(--surface)}.template-card .template-media{margin:24px 0}.template-card .template-media img{width:auto;max-width:100%;max-height:65vh;margin-inline:auto;object-fit:contain}.template-card .template-table-wrap{margin:24px 0;max-width:100%;overflow-x:auto}.template-card table{width:100%;border-collapse:collapse;table-layout:fixed}.template-card th,.template-card td{border:1px solid var(--muted);padding:12px;text-align:left;overflow-wrap:anywhere}.template-card th{background:var(--surface)}.template-card .template-answer{padding:0;margin:0;border:0;min-inline-size:0}.template-card .template-answer>legend{font-weight:700;margin-bottom:14px}.template-card .template-boxes{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.template-card .template-character{flex:0 0 2.25em;width:2.25em;min-height:54px;padding:8px;border:var(--mc-border) solid var(--ink);border-radius:var(--mc-answer-radius);background:var(--paper);color:var(--ink);text-align:center;font-size:1.15em}.template-card .template-affix{font-size:1.2em}.template-card .template-writing,.template-card .template-notes{display:grid;gap:12px}.template-card .template-notes{margin-top:24px}.template-card .template-writing textarea,.template-card .template-notes textarea{width:100%;min-height:200px;resize:vertical;padding:18px;border:var(--mc-border) solid var(--ink);border-radius:var(--mc-answer-radius);background:var(--paper);color:var(--ink)}.template-card .template-notes textarea{min-height:140px}.template-card .template-writing textarea::placeholder{color:var(--muted);opacity:1}.template-card .template-limit{font-size:.85em;color:var(--muted)}.template-card .template-sections{display:grid;gap:24px}.template-card .template-sections h3{font-size:1.2em;margin-bottom:10px}.template-card .template-steps{display:grid;gap:20px;padding-inline-start:1.5em;margin:0}.template-card .template-steps li{padding-inline-start:8px}.template-card .template-sort{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--mc-gap)}.template-card .template-sort label{display:grid;gap:12px;padding:18px;border:var(--mc-border) solid var(--ink);border-radius:var(--mc-answer-radius)}.template-card .template-sort select{width:100%;min-height:52px;padding:12px;border:1px solid var(--ink);border-radius:8px;background:var(--paper);color:var(--ink)}.template-card .template-hint{margin-top:24px;padding:0 18px;border:1px solid var(--muted);border-radius:var(--mc-answer-radius);background:var(--surface)}.template-card .template-hint summary{padding-block:14px;min-height:48px;cursor:pointer;font-weight:700}.template-card .template-hint p{padding-bottom:18px}.template-card .template-selection-note{font-size:.85em;color:var(--muted);margin-bottom:16px}
@container(max-width:420px){.template-card .template-sort{grid-template-columns:1fr}}
@media(max-width:520px){.template-card .template-sort{grid-template-columns:1fr}.template-card th,.template-card td{padding:8px}}

/* Production controls; public marketing is the authored Forma reading copy. */
[hidden]{display:none!important}button:disabled{opacity:.65;cursor:default}.skip-link{position:absolute;left:16px;top:-100px;background:var(--paper);padding:14px;z-index:20;border:2px solid var(--ink)}.skip-link:focus{top:12px}.quiet-button{border:0;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:.2em;padding:10px 12px;min-height:44px;font-size:.9em;text-align:left}.error-panel{padding:20px;border:2px solid #8f3434;background:#fff6f2;border-radius:12px;color:#702828;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.error-panel p{flex:1 1 100%}.error-panel .quiet-button{color:inherit}.validation-error{color:#702828;margin:0;padding:12px;border-inline-start:3px solid currentColor}.empty-message{margin-top:12px}.day-status{font-size:.8em;font-weight:600}.runtime-progress{width:100%;height:5px;border:0;border-radius:999px;display:block;appearance:none;background:color-mix(in srgb,currentColor 12%,transparent);margin:20px 0 32px;overflow:hidden}.runtime-progress::-webkit-progress-bar{background:color-mix(in srgb,currentColor 12%,transparent)}.runtime-progress::-webkit-progress-value{background:var(--accent);border-radius:inherit}.runtime-progress::-moz-progress-bar{background:var(--accent);border-radius:inherit}.question-element{display:flex;flex-direction:column;gap:24px;padding:clamp(18px,3vw,32px);border:2px solid var(--ink);border-radius:28px;background:white;min-width:0}.question-prompt{font-family:var(--heading-font),Georgia,serif;font-size:clamp(1.5rem,3vw,1.8rem);line-height:1.3;white-space:pre-wrap}.question-passage{white-space:pre-wrap}.question-media{max-height:480px;width:auto;align-self:center;object-fit:contain}.question-controls{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:20px}.question-controls:disabled{opacity:.7}.question-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.question-option{display:flex;gap:14px;align-items:center;min-height:62px;border:2px solid var(--ink);border-radius:12px;padding:16px 20px;cursor:pointer;background:var(--paper)}.question-option:has(input:checked){background:var(--accent);box-shadow:inset 0 0 0 1px var(--ink)}.question-option input{width:22px;height:22px;accent-color:var(--ink);flex:none;margin:0}.question-option:focus-within{outline:3px solid var(--ink);outline-offset:3px}.question-option span{white-space:pre-wrap;font-size:1.15em}.selection-instruction,.input-help{font-size:.9em;color:var(--muted)}.box-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.box-input{font-family:ui-monospace,monospace;font-size:1.5rem;letter-spacing:.5ch;width:calc(var(--box-count) * 1.5ch + 1ch);max-width:100%;padding:12px .25ch;border:2px solid var(--ink);border-radius:8px;color:var(--ink);background:repeating-linear-gradient(to right,transparent 0,transparent calc(1.5ch - 1px),#d8dfe6 calc(1.5ch - 1px),#d8dfe6 1.5ch);background-position:.25ch 0;min-height:56px}.sorting-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,1fr);align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid #cbd3df}.sorting-row select{width:100%;min-height:48px;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:8px;padding:10px}.teaching-part{display:flex;flex-direction:column;gap:12px}.teaching-part h3{font-size:1.25em}.teaching-part p,.worked-steps li,.question-hint p{white-space:pre-wrap}.worked-steps{padding-left:1.8em;margin:0;display:grid;gap:20px}.question-hint{border-top:1px solid #cbd3df;padding-top:12px}.question-hint summary{cursor:pointer;min-height:44px;padding:8px 0}.question-hint p{margin-top:12px}.question-table{max-width:100%;overflow:auto}.question-table table{border-collapse:collapse;min-width:100%;font-size:.95em}.question-table th,.question-table td{text-align:left;padding:12px;border:1px solid #cbd3df;white-space:pre-wrap}.question-table th{background:var(--surface)}.unsure-choice{display:flex;align-items:center;align-self:start;gap:12px;min-height:44px;cursor:pointer}.unsure-choice input{width:22px;height:22px;accent-color:var(--ink)}button.exercise-choice-face[aria-pressed=true]{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor;background:color-mix(in srgb,var(--surface) 75%,transparent)}button.exercise-choice-face[aria-pressed=true]::after{content:"✓";position:absolute;inset-block-start:-.55em;inset-inline-end:-.35em;display:grid;place-items:center;width:1.25em;height:1.25em;border-radius:50%;background:var(--ink);color:var(--paper);font-size:.7em;font-weight:800}button.exercise-choice-face:focus-visible{outline:3px solid currentColor;outline-offset:4px}.feedback-status{font-size:.88em}.feedback-status:empty{display:none}.exercise-feedback-comment .quiet-button{margin-top:8px}.day-feedback-card legend{font-size:.9em;padding:0;margin-bottom:16px}.day-feedback-labels span{display:block}.footer-row [aria-disabled=true]{color:var(--muted);text-decoration:none}.footer-row [aria-disabled=true]::after{content:' (unavailable)';font-size:.85em}.question-controls textarea{width:100%;min-height:160px}.header-row{align-items:center}.runtime-layout a.button{align-self:start}@media(max-width:520px){.sorting-row{grid-template-columns:1fr}.question-option{padding:14px}.question-element{border-radius:20px}.box-row{gap:8px}.question-table th,.question-table td{padding:8px}}
button.exercise-choice-face .thumb-down{transform:rotate(180deg)}
/* Route headings receive programmatic focus for navigation, without a control outline. */
#runtime h1[tabindex="-1"]:focus{outline:none}

/* Public catalogue, using the same question elements as assigned work. */
.gallery-layout{display:grid;gap:32px}
.template-gallery{display:grid;gap:32px;min-width:0}
.template-card .template-number-entry{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0}
.template-card .template-number{width:12ch;max-width:100%;min-width:0;flex:0 1 12ch;min-height:54px;padding:10px 14px;border:var(--mc-border) solid var(--ink);border-radius:var(--mc-answer-radius);background:var(--paper);color:var(--ink);font:inherit;font-size:1.15em;font-variant-numeric:tabular-nums}
.template-card .template-number-entry .template-affix{min-width:0;overflow-wrap:anywhere}
.template-card .template-number::placeholder{color:var(--muted);opacity:1}
.template-card .template-number-format{font-size:.85em;margin-top:8px;color:var(--muted)}
.template-gallery-options{display:flex;align-items:end;gap:16px 24px;flex-wrap:wrap}
.template-gallery-controls{display:grid;gap:8px;max-width:360px;flex:1 1 240px}
.template-gallery-hint{display:inline-flex;align-items:center;gap:10px;min-height:52px;cursor:pointer}
.template-gallery-hint input{width:22px;height:22px;margin:0;accent-color:var(--ink)}
.template-gallery-controls label{font-weight:700}
.template-gallery-controls select{width:100%;min-height:52px;padding:10px 14px;border:2px solid var(--ink);border-radius:10px;background:var(--paper);color:var(--ink);font:inherit}
.template-gallery-preview{min-width:0}
.template-gallery-editor{display:grid;gap:20px;min-width:0}
.template-gallery-editor-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px}
.template-gallery-editor-fields>div{display:grid;gap:8px;min-width:0}
.template-gallery-editor label{font-weight:700}
.template-gallery-editor textarea{width:100%;min-width:0;min-height:240px;resize:vertical;padding:14px;border:2px solid var(--ink);border-radius:10px;background:var(--paper);color:var(--ink);font:14px/1.6 ui-monospace,monospace;tab-size:2}
.template-gallery-editor textarea[aria-invalid=true]{border-color:#702828}
.template-gallery-editor-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.template-gallery-editor-actions .button{min-width:110px}
@media(max-width:700px){.template-gallery-editor-fields{grid-template-columns:minmax(0,1fr)}}
.template-gallery-json{min-width:0;border-top:1px solid var(--muted);padding-top:20px}
.template-gallery-json summary{width:fit-content;min-height:44px;cursor:pointer;font-weight:700}
.template-gallery-json-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:12px 0}
.template-gallery-json-tools>code{font-size:.85em;color:var(--muted)}
.template-gallery-copy-status,.template-gallery-preview-status{font-size:.85em}
.template-gallery-copy-fallback{width:100%;margin-bottom:12px;padding:14px;border:1px solid var(--muted);border-radius:10px;background:var(--surface);color:var(--ink);font:14px/1.6 ui-monospace,monospace;resize:vertical}
.template-gallery-json pre{max-width:100%;margin:0;padding:20px;border:1px solid var(--muted);border-radius:10px;background:var(--surface);font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}
@media(max-width:520px){.gallery-layout,.template-gallery{gap:24px}.template-gallery-controls{max-width:none}.template-gallery-json pre{padding:14px}}

/* Exercises start with navigation and progress, leaving room for the question. */
.section.exercise-section{padding-block:16px 32px}
.exercise-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.exercise-section .exercise-topline{align-items:center;flex-wrap:nowrap}
.exercise-section .exercise-return{margin-bottom:0}
.exercise-section .exercise-count{white-space:nowrap}
.exercise-section .runtime-progress{margin:8px 0 20px}

/* Optional writing support stays inside the question element. */
.template-card .template-writing-workspace{display:grid;gap:24px;min-width:0}
.template-card .template-writing textarea{overflow-y:auto;line-height:1.6}
.template-card .template-writing-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.85em;color:var(--muted);font-variant-numeric:tabular-nums}
.template-card .template-writing-status{font-size:.85em;color:var(--ink)}
.template-card .template-writing-status:empty,.template-card .template-writing-time-message:empty{display:none}
.template-card .template-writing-time{display:grid;gap:8px;font-size:.9em}
.template-card .template-writing-timer{font-variant-numeric:tabular-nums;color:var(--muted)}
.template-card .template-writing-time-message{color:var(--ink)}
.template-card .template-planning{padding:0 18px;border:1px solid var(--muted);border-radius:var(--mc-answer-radius);background:var(--surface)}
.template-card .template-planning summary{padding-block:14px;min-height:48px;cursor:pointer;font-weight:700}
.template-card .template-planning .template-notes{margin:0 0 18px}
.template-card .template-planning textarea{overflow-y:auto;line-height:1.6}

/* Per-question support and a small maths working space. */
.question-help{display:flex;align-items:center;gap:12px;min-height:44px;margin-top:16px;width:fit-content;cursor:pointer;font-size:.95em}
.question-help input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--ink)}
.question-help:has(input:disabled){cursor:default;opacity:.65}
.template-working{margin-top:24px;display:grid;gap:12px;min-width:0}
.working-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.working-modes,.working-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.working-modes button,.working-tools button{min-height:44px;padding:8px 14px;border:1px solid var(--muted);border-radius:8px;color:var(--ink);background:var(--paper);font:inherit;font-size:.9em;cursor:pointer}
.working-modes button[aria-pressed=true],.working-tools button[aria-pressed=true]{border-color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink)}
.working-modes button:focus-visible,.working-tools button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.working-draw{display:grid;gap:12px;min-width:0}
.working-canvas{display:block;width:100%;height:auto;aspect-ratio:5/3;background:#fff;border:1px solid var(--muted);border-radius:8px;touch-action:none;cursor:crosshair}
.working-canvas[aria-disabled=true]{cursor:default;opacity:.65}
.template-card .working-type{margin-top:0}
.working-status{font-size:.85em;color:var(--ink)}
.working-status:empty{display:none}

/* The accepted end of a day, after any optional whole-day feedback. */
.day-complete-layout{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding-block:20px}
.day-complete-mark{display:grid;place-items:center;width:80px;height:80px;margin-bottom:4px;border-radius:50%;background:var(--accent);color:var(--ink);font-size:44px;font-weight:800;line-height:1}
.day-complete-message{font-size:1.1em;font-weight:700}
.day-complete-layout .button{margin-top:12px;align-self:center}
.completion-confetti{position:fixed;inset:0;z-index:30;overflow:hidden;pointer-events:none;user-select:none;contain:strict}
.confetti-piece{position:absolute;top:-24px;left:var(--confetti-left);width:9px;height:15px;border-radius:2px;background:var(--accent);opacity:0;animation:completion-confetti-fall 2s var(--confetti-delay) ease-in forwards}
.confetti-piece:nth-child(3n){background:var(--ink)}
.confetti-piece:nth-child(3n + 1){background:#6CA9B9}
.confetti-piece:nth-child(4n){width:12px;height:8px;border-radius:50%}
@keyframes completion-confetti-fall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--confetti-drift),105vh,0) rotate(var(--confetti-turn))}}
@media(prefers-reduced-motion:reduce){.completion-confetti{display:none}.confetti-piece{animation:none}}
