
:root{--ink:#142e3b;--muted:#546772;--paper:#f6f7f5;--line:#d9e1df;--mint:#007b74;--gold:#a76b1b;--violet:#6c4a94}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font:clamp(18px,1.55vw,24px)/1.44 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;min-height:44px;padding:9px 14px;border:1px solid #c7d3d2;border-radius:8px;background:#fff;color:var(--ink);font-size:14px;font-weight:650}button:hover{background:#e4efeb}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b57d25;outline-offset:3px}header{min-height:60px;padding:8px 3.5vw;display:flex;gap:16px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff;font-size:12px}header b{letter-spacing:.1em}.tools{display:flex;gap:9px;align-items:center}.tools select{width:310px;max-width:46vw;font-size:14px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}main{max-width:1600px;margin:auto;padding:22px 4vw 94px}h1{font-size:clamp(30px,3.0vw,49px);line-height:1.12;letter-spacing:-.035em;margin:0 0 21px;font-weight:680}h2{font-size:1.02em;line-height:1.25;margin:0 0 14px}p{margin:0 0 15px}.eyebrow{font-size:12px;color:var(--mint);letter-spacing:.15em;font-weight:750;margin:0 0 9px}.layout{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.layout>*,.reference-grid>*,.exit-grid>*{min-width:0}.intro{font-size:1.25em;line-height:1.35}.question{font-weight:670;margin:19px 0}.quiet{font-size:.73em;color:var(--muted)}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;margin-bottom:15px}.card p:last-child{margin-bottom:0}.route{border-block:1px solid var(--line);display:grid;gap:12px;margin:22px 0;padding:18px 0}.equation{font:1.16em/1.6 Cambria,Georgia,serif;margin:15px 0;overflow-wrap:anywhere}.matrix{display:inline-grid;grid-template-columns:1fr 1fr;gap:1px 20px;vertical-align:middle;border-inline:2px solid currentColor;border-radius:4px;padding:3px 12px;margin:0 8px;text-align:center;line-height:1.5}.tasklines{border-left:3px solid var(--line);padding:4px 0 4px 17px;margin:16px 0}.tasklines p{margin:0 0 9px}.tasklines p:last-child{margin:0}.reveal{display:flex;width:100%;justify-content:space-between;text-align:left;gap:14px;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:13px 0;margin:6px 0 0;font-size:16px}.reveal span{color:var(--mint)}a{color:var(--mint)}.visual{background:#112d3a;color:#e7f2f2;border-radius:17px;padding:12px;overflow:hidden;box-shadow:0 12px 32px #122c3b0d}.visual svg{display:block;width:100%;height:290px;touch-action:none}.visual text{font-family:system-ui,sans-serif}.drawing{height:290px}.widget .readouts{height:62px;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;background:#234552;padding:8px 11px;border-radius:8px;font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums}.readouts>div{min-width:0;white-space:nowrap}.visual .caption{color:#bfd3d6;font-size:12px;line-height:1.45;margin:8px 2px 0}.angle-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:14px;align-items:end;margin:8px 0}.angle-row label{font-size:12px;color:#d5e6e8;min-width:0}.angle-row input[type=range]{width:100%;min-height:32px;accent-color:#85e3c5;display:block}.angle-row input[type=text]{width:100%;height:36px;font-size:15px;border:1px solid #7998a1;border-radius:6px;background:#fff;padding:7px;color:var(--ink);display:block;margin-top:3px}.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0 0}.controls.four{grid-template-columns:repeat(3,minmax(0,1fr))}.controls.two{grid-template-columns:repeat(2,minmax(0,1fr))}.visual button{font-size:12px;line-height:1.2;background:#234552;color:#f0f9f8;border-color:#50707b;height:42px;min-height:42px;padding:7px}.visual button:hover,.visual button[aria-pressed=true]{background:#315967;border-color:#85e3c5}.status{height:37px;overflow:auto;font-size:12px;color:#f1d49c;line-height:1.4;margin:7px 2px 0}.transform .drawing,.transform svg{height:240px}.transform .readouts{font-size:14px}.tracePlots{display:grid;grid-template-columns:.78fr 1.5fr;gap:10px;height:270px}.tracePlots svg{height:270px}.graph .readouts{grid-template-columns:repeat(4,1fr);height:48px}.graph .angle-row{grid-template-columns:1fr 160px}.graph .controls{grid-template-columns:repeat(7,1fr)}.graph .status{height:19px}.graph .caption{display:none}.graph .angle-row{margin:3px 0}.graph .status{margin-top:3px}.graph-slide .taskline{font-size:.9em;margin:0 0 10px}.graph-slide .reveal{margin-top:5px;padding:10px 0}.reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.exit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.slide{margin:0 0 65px}.js .slide{display:none;margin:0}.js .slide.active{display:block}.js #answerBank{display:none}footer{display:none}.js footer{position:fixed;bottom:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3.5vw;background:#f6f7f5f5;border-top:1px solid var(--line);z-index:5}footer span{font-size:14px;color:var(--muted)}#progress{height:3px;position:fixed;top:0;left:0;background:var(--mint);z-index:10}dialog{width:820px;max-width:92vw;max-height:85vh;border:0;border-radius:17px;padding:24px 30px;color:var(--ink);background:#fff;box-shadow:0 30px 100px #0004;overscroll-behavior:contain}dialog::backdrop{background:#10222cc7;backdrop-filter:blur(3px)}.dialogTop{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.dialogTop h2{margin:0;color:var(--mint);font-size:16px}#answerBody{font-size:clamp(19px,1.6vw,24px)}table{border-collapse:collapse;width:100%;font-size:.88em;margin:14px 0}td,th{padding:10px;border-bottom:1px solid var(--line);text-align:left}svg .label{paint-order:stroke;stroke:#112d3a;stroke-width:5px;stroke-linejoin:round}svg .grid{stroke:#284955;stroke-width:1}svg .axis{stroke:#95afb9;stroke-width:1.3}.noscript{padding:20px;background:#fff3d3}.noscript details{padding:12px;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(min-width:1000px) and (max-height:800px){body{font-size:20px}main{padding-top:18px}h1{font-size:36px;margin-bottom:17px}.question{margin:15px 0}.card{padding:18px}.drawing,.visual svg{height:239px}.transform .drawing,.transform svg{height:190px}.tracePlots,.tracePlots svg{height:225px}.equation{margin:11px 0}.route{margin:17px 0;padding:13px 0}.graph-slide .taskline{font-size:18px}.graph .readouts{height:40px}}@media(max-width:850px){body{font-size:20px}header{padding:10px 18px;flex-wrap:wrap}.tools{width:100%}.tools select{width:auto;max-width:none;min-width:0;flex:1}main{padding:22px 18px 90px}h1{font-size:32px}.layout,.reference-grid,.exit-grid{grid-template-columns:1fr;gap:20px}.drawing,.visual svg{height:270px}.transform .drawing,.transform svg{height:255px}.widget .readouts{font-size:13px;height:65px}.visual{padding:10px}.visual button{font-size:12px}.angle-row{grid-template-columns:1fr 112px;gap:10px}.tracePlots{grid-template-columns:1fr;height:460px;gap:0}.tracePlots svg{height:230px}.graph .readouts{grid-template-columns:1fr 1fr;height:66px}.graph .controls{grid-template-columns:repeat(3,1fr)}.graph .status{height:36px}.graph .angle-row{grid-template-columns:1fr 112px}.controls.four{grid-template-columns:repeat(2,minmax(0,1fr))}dialog{padding:20px}footer{padding:0 14px!important;gap:8px}footer button{padding:8px 10px}.cover .intro{font-size:1.13em}.card{padding:19px}.graph-slide .taskline{font-size:19px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media print{body{font-size:11pt;background:#fff}header,footer,#progress,button,dialog,.angle-row,.controls,.status,.caption{display:none!important}.slide,.js .slide{display:block!important;break-before:page;margin:0}.slide:first-child{break-before:auto}main{padding:0}.layout{grid-template-columns:1fr 1fr;gap:20px}h1{font-size:24pt}.visual{print-color-adjust:exact;-webkit-print-color-adjust:exact}.drawing,.visual svg{height:230px}.graph .tracePlots,.graph .tracePlots svg{height:210px}.exit-grid{grid-template-columns:1fr}.card{break-inside:avoid}.noscript{display:none}@page{size:A4 landscape;margin:12mm}}
