:root{--colour-surface: #fdfcfa;--colour-surface-subtle: #f2efe9;--colour-text: #1c1b19;--colour-text-muted: #575249;--colour-border: #c9c3b7;--colour-border-strong: #8d867a;--colour-action: #1d4f73;--colour-action-hover: #163d59;--colour-action-text: #ffffff;--colour-success: #1f5c3d;--colour-caution: #7a4f10;--colour-error: #8a2622;--colour-info: #2a4f6e;--colour-scrim: #1c1b1999;--colour-focus-ring: #7a3c00;--colour-target-language: #21343f;--colour-support-language: #575249;--font-family-ui: system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-mono: ui-monospace, "Cascadia Mono", "Consolas", monospace;--font-size-sm: .8rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.563rem;--font-size-2xl: 1.953rem;--line-height-tight: 1.25;--line-height-body: 1.6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--measure-reading: 62ch;--radius-sm: 3px;--radius-md: 6px;--target-min: 2.75rem;--border-width: 1px;--focus-ring-width: 2px;--focus-ring-offset: 2px;--duration-fast: .12s;--duration-base: .2s}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-base: 0ms}}@media (forced-colors: active){:root{--colour-border: CanvasText;--colour-border-strong: CanvasText;--colour-focus-ring: Highlight}}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-family-ui);line-height:var(--line-height-body);color-scheme:light}body{margin:0;background:var(--colour-surface);color:var(--colour-text);font-size:var(--font-size-base)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-ring-width) solid var(--colour-focus-ring);outline-offset:var(--focus-ring-offset)}h1,h2,h3{line-height:var(--line-height-tight);margin:0 0 var(--space-3)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-4);max-width:var(--measure-reading)}a{color:var(--colour-action)}a:hover{color:var(--colour-action-hover)}button{font:inherit;min-height:var(--target-min);padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--colour-action);border-radius:var(--radius-md);background:var(--colour-action);color:var(--colour-action-text);cursor:pointer;transition:background var(--duration-fast) ease}button:hover{background:var(--colour-action-hover)}.skip-link{position:absolute;left:var(--space-2);top:var(--space-2);z-index:10;padding:var(--space-2) var(--space-3);background:var(--colour-surface);color:var(--colour-text);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-sm);transform:translateY(-200%)}.skip-link:focus{transform:none}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.app-header{border-bottom:var(--border-width) solid var(--colour-border);background:var(--colour-surface-subtle);padding:var(--space-3) var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:baseline}.app-wordmark{font-size:var(--font-size-lg);font-weight:600;margin:0}.app-nav ul{display:flex;gap:var(--space-2);list-style:none;margin:0;padding:0}.app-nav a{display:inline-flex;align-items:center;min-height:var(--target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-decoration:none;color:var(--colour-text)}.app-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;font-weight:600}.app-main{padding:var(--space-6) var(--space-5)}.page{max-width:var(--measure-reading)}.page-note{color:var(--colour-text-muted);border-left:3px solid var(--colour-border);padding-left:var(--space-4)}.notice{max-width:var(--measure-reading);padding:var(--space-4) var(--space-5);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md);background:var(--colour-surface-subtle)}.notice h2{margin-top:0}.notice-steps{padding-left:var(--space-5)}.notice-detail{color:var(--colour-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.notice-error{border-color:var(--colour-error)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.field label{font-weight:600}.field-hint{margin:0;color:var(--colour-text-muted);font-size:var(--font-size-sm);max-width:var(--measure-reading)}.cloze-blank{display:inline-block;min-width:3em;border-bottom:var(--border-width) solid var(--colour-text);text-align:center}.field input{font:inherit;min-height:var(--target-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--colour-border-strong);border-radius:var(--radius-sm);background:var(--colour-surface);color:var(--colour-text);max-width:20rem}.field-group{border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5)}.field-group legend{font-weight:600;padding:0 var(--space-2)}.disclosure-confirm{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-2) 0;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md);background:var(--colour-surface-subtle)}.app-nav-secondary{margin-left:auto}.panel{max-width:var(--measure-reading);margin:0 0 var(--space-6);padding:var(--space-5);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md)}.panel-destructive{border-color:var(--colour-error)}.panel-result{margin-top:var(--space-5);padding-top:var(--space-4);border-top:var(--border-width) solid var(--colour-border)}.panel h4{font-size:var(--font-size-base);margin:var(--space-4) 0 var(--space-2)}.plain-list{list-style:none;margin:0 0 var(--space-4);padding:0 0 0 var(--space-4);border-left:2px solid var(--colour-border);max-width:var(--measure-reading)}.plain-list li{margin-bottom:var(--space-2)}.plain-list code,.panel code{font-family:var(--font-family-mono);font-size:var(--font-size-sm);overflow-wrap:anywhere}.entry-digest{color:var(--colour-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-sm);overflow-wrap:anywhere}.button-destructive{background:var(--colour-surface);color:var(--colour-error);border-color:var(--colour-error)}.button-destructive:hover{background:var(--colour-surface-subtle)}.dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-5);background:var(--colour-scrim);overflow-y:auto;z-index:20}.dialog{max-width:var(--measure-reading);width:100%;padding:var(--space-5);border:var(--border-width) solid var(--colour-error);border-radius:var(--radius-md);background:var(--colour-surface)}.dialog-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.app-account{margin-left:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:baseline}.app-account-error{flex-basis:100%;margin:0;color:var(--colour-text)}.handwriting{unicode-bidi:isolate;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 var(--space-3)}.handwriting bdo{unicode-bidi:isolate-override}.invisible-char{font-family:var(--font-family-mono);font-size:var(--font-size-sm);border:var(--border-width) solid var(--colour-border-strong);border-radius:var(--radius-sm);padding:0 var(--space-1);white-space:nowrap}.region-list{list-style:none;margin:0 0 var(--space-5);padding:0}.region{max-width:var(--measure-reading);margin:0 0 var(--space-4);padding:var(--space-4) var(--space-5);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md)}.region h3{font-size:var(--font-size-base);margin:0 0 var(--space-2)}.region-state{margin:0 0 var(--space-3);color:var(--colour-text-muted);font-size:var(--font-size-sm)}.region-excluded{margin-bottom:var(--space-3);color:var(--colour-text-muted);text-decoration:line-through}.region-question{margin:var(--space-3) 0;font-weight:600}.region-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-3)}.region-label p{margin:0}.region-label-name{font-weight:600;color:var(--colour-text)}.readings{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-4);margin-bottom:var(--space-3)}.reading-label{margin:0 0 var(--space-2);font-weight:600}.region-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.field textarea{font:inherit;min-height:var(--target-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--colour-border-strong);border-radius:var(--radius-sm);background:var(--colour-surface);color:var(--colour-text);width:100%;max-width:var(--measure-reading);box-sizing:border-box}.button-quiet{background:var(--colour-surface);color:var(--colour-action)}.button-quiet:hover{background:var(--colour-surface-subtle);color:var(--colour-action-hover)}.homework button:disabled{background:var(--colour-surface-subtle);color:var(--colour-text-muted);border-color:var(--colour-border);cursor:not-allowed}.feedback-page{display:grid;gap:var(--space-5)}.feedback-page-image{display:block;width:100%;max-width:var(--measure-reading);height:auto;border:var(--border-width) solid var(--colour-border);background:var(--colour-surface)}.feedback-frame rect{fill:none;stroke:var(--colour-info);stroke-width:4}.feedback-frame-refuted rect{stroke:var(--colour-error)}.feedback-frame circle{fill:var(--colour-surface);stroke:var(--colour-text);stroke-width:2}.feedback-frame text{fill:var(--colour-text);font-family:var(--font-family-ui)}.feedback-note{border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);max-width:var(--measure-reading)}.feedback-note h4{margin:0 0 var(--space-2)}.feedback-note-number{font-family:var(--font-family-mono)}.feedback-note blockquote{margin:var(--space-2) 0;padding-left:var(--space-3);border-left:3px solid var(--colour-border-strong)}.feedback-reading-error{border-left:3px solid var(--colour-error);padding-left:var(--space-2)}.feedback-rungs dt{font-weight:600}.feedback-rungs dd{margin:0 0 var(--space-2)}.feedback-pull button{margin-right:var(--space-2)}.feedback-table{border-collapse:collapse}.feedback-table th,.feedback-table td{border:var(--border-width) solid var(--colour-border);padding:var(--space-1) var(--space-2);text-align:left;vertical-align:top}
