:root{color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#202622;background:#fafafa;font-synthesis:none;line-height:1.55;--green:#176c52;--line:#dedfdb;--muted:#626962}
*{box-sizing:border-box}
body{margin:0}
[hidden]{display:none!important}
header{background:#151916;color:#fff;padding:22px 20px}
.page-width{max-width:820px;margin:auto}
header h1{font-size:20px;line-height:1.35;margin:0;font-weight:650}
header p{font-size:14px;color:#dce1db;margin:4px 0 0}
main{padding:30px 20px 52px}
.exercise{padding:30px;border:1px solid var(--line);border-radius:16px;background:#fff}
.topic-label{font-size:14px;color:var(--muted);margin:0 0 18px}
.statement{font-size:clamp(23px,3.3vw,29px);line-height:1.5;letter-spacing:-.015em;font-weight:550;margin:0 0 24px;overflow-wrap:anywhere}
button,select,input{font:inherit}
button{min-height:48px;border:1px solid #cbd0ca;border-radius:10px;padding:11px 19px;background:#fff;color:inherit;cursor:pointer;line-height:1.4;touch-action:manipulation}
button:hover{background:#f2f5f1;border-color:#859788}
button:disabled{cursor:default;opacity:.6}
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #b68013;outline-offset:4px}
.hint-toggle{background:#f1f5f1;border-color:#d6dfd6;font-size:17px}
.hint-panel{margin-top:22px;padding:20px 0 0;border-top:1px solid #e8ebe6}
.hint-prompt{font-size:18px;line-height:1.6;margin:0 0 16px}
.visual-host{min-width:0;overflow-wrap:anywhere}
.visual-host svg{display:block;width:100%;height:auto;max-height:410px;background:#fafcf9;border:1px solid #e0e6dd;border-radius:12px}
.visual-host svg text{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.visual-host label{display:block;font-size:16px;line-height:1.5}
.visual-host input[type=range]{width:100%;min-width:0;min-height:38px;accent-color:var(--green);touch-action:auto}
.visual-host output{font-variant-numeric:tabular-nums}
.visual-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 24px;margin-top:16px}
.visual-control{min-width:0}
.visual-readout{font-size:17px;line-height:1.7;margin:14px 0 0;font-variant-numeric:tabular-nums}
.t19-model-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px 24px;margin-top:18px}
.t19-model-control{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;min-width:0}
.t19-model-control input{grid-column:1/-1}
.t19-model-control output{font-size:17px;color:var(--green);font-weight:600}
.t19-model-readout{font-size:17px;line-height:1.75;margin:15px 0 0;padding-left:22px;font-variant-numeric:tabular-nums}
.answer-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px;max-width:410px}
.answer-actions button{font-size:19px;font-weight:600}
.answer-actions .yes{border-color:#48866a;color:#16563d}
.answer-actions .no{border-color:#ac817b;color:#783b34}
.answer-actions button[aria-pressed=true]{outline:2px solid currentColor;outline-offset:2px}
.answer-panel{margin-top:24px;border-left:4px solid var(--green);padding:4px 0 4px 18px}
.answer-panel[data-correct=false]{border-color:#ad7041}
.answer-panel h3{font-size:20px;margin:0 0 8px}
.answer-panel p{font-size:18px;line-height:1.65;margin:0;white-space:pre-line}
.next-row{margin-top:25px}
.next-row button{color:var(--green);border-color:#d3ded5}
.next-row button.ready{background:var(--green);border-color:var(--green);color:white}
.next-row button.ready:hover{background:#12533f}
.practice-settings{margin:22px 0 0;color:var(--muted)}
.practice-settings summary{cursor:pointer;width:fit-content;padding:9px 0;min-height:44px}
.settings-content{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:8px;color:#28352c}
.settings-content label{display:block;margin-bottom:12px}
.settings-content select{display:block;max-width:100%;width:100%;min-height:46px;border:1px solid #b8c3b7;background:#fff;border-radius:8px;padding:9px;margin-top:6px}
.settings-content input[type=checkbox]{width:19px;height:19px;vertical-align:middle;margin:0 7px 3px 0;accent-color:var(--green)}
.settings-content p{margin:14px 0 0;font-size:14px}
.settings-content a{color:var(--green);text-underline-offset:3px}
.storage-note{font-size:13px;color:var(--muted);line-height:1.6}
.empty-note{font-size:18px;line-height:1.6;padding:20px 0}
noscript p{max-width:760px;margin:30px auto;padding:20px}
@media(max-width:540px){header{padding:19px 16px}main{padding:18px 12px 35px}.exercise{padding:22px 17px}.statement{font-size:23px;line-height:1.5}.hint-panel{margin-top:18px}.hint-prompt{font-size:17px}.answer-actions{gap:12px}.answer-actions button{padding:11px 12px}.visual-controls,.t19-model-controls{grid-template-columns:1fr}.answer-panel p{font-size:17px}.hint-toggle{width:100%}.next-row button{width:100%}.visual-host svg{overflow:visible}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.t19-preserve{font-size:15px;color:var(--muted);margin:0 0 16px;line-height:1.7}
.t19-measure{display:block;margin-top:24px;background:var(--green);border-color:var(--green);color:#fff;min-height:48px}
.t19-measure:hover{background:#12533f;color:#fff}
.t19-model-reset{display:block;margin-top:14px;color:var(--green);border-color:#d3ded5}
.t19-observe{font-size:18px;line-height:1.7;margin:20px 0 4px}
.visual-host input[type=range]{min-height:48px}
@media(max-width:540px){.t19-measure,.t19-model-reset{width:100%}.t19-model-readout{padding-left:20px}}

/* Linked geometry remains usable with a mouse, touch, or keyboard. */
[data-geometry-group]{outline-offset:4px}
svg [data-geometry-group]{cursor:pointer}
svg .t19-linked-active{filter:drop-shadow(0 0 2px currentColor);animation:t19-emphasis 1.4s ease-in-out infinite}
.t19-model-readout .t19-linked-active,.t19-model-control.t19-linked-active{background:#edf5e8;border-radius:6px;outline:2px solid #82a776}
@keyframes t19-emphasis{0%,100%{opacity:1}50%{opacity:.55}}
.t19-angle-pulse{animation:t19-emphasis 2s ease-in-out infinite}
.t19-angle-pulse-second{animation-delay:1s}
.t19-model-control[data-pair]{padding:8px;border-left:3px solid #c9dacc;background:#f8fbf6;border-radius:6px}
.t19-reference{margin-top:24px;border-top:1px solid var(--line);padding-top:14px;font-size:16px;line-height:1.7}
.t19-reference summary{cursor:pointer;min-height:48px;padding:10px 0;color:var(--green)}
.t19-reference img{display:block;width:100%;height:auto;max-width:650px;margin:14px auto;background:#fff}
.t19-reference-crop{border:1px solid #e0e6dd;border-radius:8px}
.t19-reference a{color:var(--green);text-underline-offset:3px;overflow-wrap:anywhere}
.t19-reference p{margin:14px 0}
.t19-reference-sheet{margin:14px 0}
.t19-textbook{margin-top:22px;font-size:16px;line-height:1.8;overflow-wrap:anywhere}
.t19-textbook>summary{cursor:pointer;min-height:48px;padding:10px 0;color:var(--green);width:fit-content}
.t19-textbook[open]>summary{margin-bottom:10px}
.t19-textbook-content{border-top:1px solid var(--line);padding-top:4px}
.t19-textbook-content p{margin:16px 0}
.t19-textbook-note{color:var(--muted);font-size:15px}
.t19-textbook-topic{margin:24px 0}
.t19-textbook-topic h3{font-size:18px;line-height:1.6;margin:0 0 12px;font-weight:600}
.t19-textbook-sources{margin:18px 0;padding-left:22px}
.t19-textbook-sources li{margin:18px 0}
.t19-textbook a{color:var(--green);text-underline-offset:3px;text-decoration-thickness:1px}
.t19-textbook-edition{display:block;color:var(--muted);font-size:14px;margin-top:5px;line-height:1.7}
.t19-textbook-content .t19-textbook-quote-label{margin:18px 0 6px;font-size:14px;color:var(--muted)}
.t19-textbook-quote{margin:0 0 16px;padding:0 0 0 12px;border-left:3px solid var(--green);font-size:17px;line-height:1.6}
.t19-textbook-excerpt{margin:16px 0}
.t19-textbook-excerpt img{display:block;width:100%;height:auto;max-width:650px;background:#fff;border:1px solid var(--line);border-radius:6px}
.t19-textbook-excerpt figcaption{font-size:13px;line-height:1.6;color:var(--muted);margin-top:6px}
.t19-textbook-close{color:var(--green);border-color:#d3ded5;margin:2px 0 8px}
@media(max-width:540px){.t19-textbook-close{width:100%}.t19-textbook-sources{padding-left:19px}}
@media(prefers-reduced-motion:reduce){svg .t19-linked-active,.t19-angle-pulse{animation:none!important}svg .t19-linked-active{filter:drop-shadow(0 0 3px currentColor)}}
