:root{color:#183044;font-synthesis:none;--navy:#12304a;--teal:#087f7a;--teal2:#d9f1ed;--orange:#f68b3c;--cream:#fffaf0;--line:#d7e2e5;--shadow:0 14px 40px #12304a1a;background:#f5f8f9;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:.65rem;padding:.75rem 1.05rem;font-weight:700}button:hover{filter:brightness(.94)}button:focus-visible,input:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #f6b73c}button:disabled{opacity:.45;cursor:not-allowed}.secondary{color:var(--navy);border:1px solid var(--line);background:#fff}.text-button,.back-link{color:var(--teal);background:0 0;padding:.35rem 0}.skip-link{z-index:20;color:var(--navy);background:#fff;padding:.75rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.app-header{z-index:10;border-bottom:1px solid var(--line);background:#fffffff5;align-items:center;gap:1rem;padding:.65rem clamp(1rem,4vw,4rem);display:flex;position:sticky;top:0}.logo{object-fit:contain;width:52px;height:52px}.logo-large{width:min(260px,56vw);height:auto}.brand{color:var(--navy);font-family:Literata,serif;font-size:1.08rem}.main-nav{gap:.3rem;margin-left:auto;display:flex}.main-nav button{color:#446070;background:0 0}.main-nav button.active{color:var(--teal);background:var(--teal2)}.student-menu{border-left:1px solid var(--line);align-items:center;gap:.6rem;padding-left:1rem;display:flex}.student-menu button{color:var(--teal);background:0 0;padding:.4rem .6rem}.page{max-width:1200px;margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem) clamp(1rem,4vw,2rem) 5rem}.page.narrow{max-width:850px}h1,h2,h3{color:var(--navy);font-family:Literata,serif;line-height:1.15}h1{margin:.35rem 0 1rem;font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.35rem,3vw,2rem)}p{line-height:1.65}.eyebrow,.step-label,.problem-id{text-transform:uppercase;letter-spacing:.12em;color:var(--teal);font-size:.78rem;font-weight:700}.entry-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.entry-brand{background:var(--navy);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem;display:flex}.entry-brand h1{color:#fff}.entry-brand p{color:#d9e7ef;max-width:480px}.entry-form{justify-content:center;align-items:center;padding:2rem;display:flex}.entry-form form{width:min(460px,100%);box-shadow:var(--shadow);background:#fff;border-radius:1rem;padding:clamp(1.5rem,5vw,3rem)}.entry-form label,.answer-field{gap:.45rem;font-weight:700;display:grid}.entry-form input,.answer-field input{border:1px solid #9fb2ba;border-radius:.55rem;width:100%;padding:.9rem}.entry-form button{width:100%;margin-top:1rem}.form-error{color:#a33228;font-weight:600}.privacy-note{color:#647983;font-size:.86rem}.hero{color:#fff;background:linear-gradient(135deg,#12304a,#18526b);border-radius:1.2rem;grid-template-columns:1.25fr .75fr;align-items:center;gap:3rem;padding:clamp(2rem,5vw,4.5rem);display:grid;overflow:hidden}.hero h1{color:#fff}.hero p{color:#d9e8ed}.hero-logo{justify-content:center;display:flex}.dashboard-grid{grid-template-columns:1fr 2fr;gap:1.4rem;margin-top:1.5rem;display:grid}.snapshot,.resume-card,.module-card,.tutorial-card,.challenge-card,.quiz-question,.progress-card{border:1px solid var(--line);background:#fff;border-radius:.9rem;padding:1.35rem;box-shadow:0 5px 18px #12304a0d}.snapshot{align-items:center;gap:1rem;display:flex}.progress-ring{--progress:0deg;aspect-ratio:1;background:conic-gradient(var(--teal) var(--progress),#e5edef 0);border-radius:50%;flex:none;place-items:center;width:104px;display:grid}.progress-ring>div{aspect-ratio:1;text-align:center;background:#fff;border-radius:50%;place-content:center;width:76px;display:grid}.progress-ring strong{font-size:1.3rem}.progress-ring span{font-size:.7rem}.module-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.5rem;display:grid}.module-card{position:relative;overflow:hidden}.module-card:before{content:attr(data-number);color:#ecf2f3;font-family:Literata;font-size:4rem;position:absolute;top:.3rem;right:1rem}.module-card>*{position:relative}.module-card h2{margin:.5rem 0}.module-meta{flex-wrap:wrap;gap:.5rem;display:flex}.tag,.score-pill{background:var(--teal2);color:#066862;border-radius:99px;padding:.35rem .65rem;font-size:.78rem;font-weight:700}.module-header{background:var(--cream);border-left:6px solid var(--orange);border-radius:.6rem;padding:2rem}.objective-list{grid-template-columns:repeat(2,1fr);gap:.6rem;padding-left:1.2rem;display:grid}.activity-list{gap:.8rem;display:grid}.activity-row{border:1px solid var(--line);background:#fff;border-radius:.75rem;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1rem;display:grid}.activity-number{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.activity-row h3{margin:0}.activity-row p{color:#5e7480;margin:.25rem 0}.tutorial-card,.challenge-card{margin-top:1.5rem;padding:clamp(1.3rem,4vw,2.5rem)}.callout,.completion-banner{background:var(--teal2);border-left:4px solid var(--teal);border-radius:.35rem;margin:1rem 0;padding:1rem}.button-row{justify-content:space-between;gap:.7rem;margin-top:1.3rem;display:flex}.activity-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.graph-frame{border:1px solid var(--line);background:#f8fbfb;border-radius:.75rem;padding:.6rem}.graph-canvas{width:100%;max-height:380px}.graph-edge{stroke:#66808d;stroke-width:1.5px}.graph-canvas marker path{fill:#66808d}.edge-weight{fill:#9a4d18;paint-order:stroke;stroke:#fff;stroke-width:2px;font-size:5px;font-weight:700}.vertex circle{fill:#fff;stroke:var(--teal);stroke-width:2px}.vertex text{text-anchor:middle;fill:var(--navy);pointer-events:none;font-size:5px;font-weight:700}.vertex[role=button]{cursor:pointer}.vertex.selected circle{fill:#ffd5a8;stroke:#b85110}.keyboard-vertices{flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.chip{color:var(--navy);border:1px solid var(--line);background:#fff;border-radius:99px;padding:.4rem .65rem}.chip.active{color:#71330e;background:#ffd5a8}.choices{border:0;gap:.55rem;margin:1rem 0;padding:0;display:grid}.choice{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:.6rem;align-items:flex-start;gap:.7rem;padding:.85rem;display:flex}.choice.selected{border-color:var(--teal);background:#effaf8}.choice:has(input:checked){border-color:var(--teal);background:#effaf8}.choice input{margin-top:.2rem}.feedback{border-radius:.55rem;grid-template-columns:auto 1fr;gap:.8rem;margin-top:1rem;padding:1rem;display:grid}.feedback.correct{color:#14643b;background:#e4f6ed}.feedback.incorrect{color:#8c351b;background:#fff0e8}.selection-readout{background:#eef4f5;border-radius:.5rem;padding:.8rem}.quiz-list{gap:1rem;display:grid}.quiz-question legend{font-family:Literata;font-size:1.08rem;font-weight:700}.quiz-question legend span{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;margin-right:.6rem;display:inline-grid}.answer-note{border-left:3px solid var(--orange);padding-left:.75rem}.answer-note.right{border-color:var(--teal)}.progress-summary{grid-template-columns:auto 1fr;align-items:center;gap:1.5rem;display:grid}.validation-code{letter-spacing:.08em;background:#eef4f5;border-radius:.4rem;padding:.65rem;font-family:monospace;font-size:1.4rem;display:inline-block}.progress-table{border-collapse:collapse;background:#fff;width:100%}.progress-table th,.progress-table td{text-align:left;border-bottom:1px solid var(--line);padding:.75rem}.progress-table th{background:var(--navy);color:#fff}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.entry-page{grid-template-columns:1fr}.entry-brand{padding:2rem}.entry-brand .logo-large{width:150px}.hero{grid-template-columns:1fr}.hero-logo{order:-1}.hero .logo-large{width:150px}.dashboard-grid,.module-grid,.objective-list{grid-template-columns:1fr}.app-header{flex-wrap:wrap}.brand{display:none}.main-nav{order:3;justify-content:center;width:100%}.main-nav button{flex:1}.student-menu{margin-left:auto}.activity-row{grid-template-columns:auto 1fr}.activity-row button{grid-column:1/-1}.activity-heading{align-items:start}.progress-summary{grid-template-columns:1fr}.table-wrap{overflow-x:auto}}@media print{body{background:#fff;font-size:10pt}.app-header,.back-link,.print-hide,.main-nav,.student-menu{display:none!important}.page{max-width:none;padding:0}.progress-card{box-shadow:none;border:0;padding:0}.progress-table th{color:#111!important;background:#eee!important}.progress-table th,.progress-table td{padding:5pt}.logo{width:55pt;height:55pt}.validation-code{border:1px solid #bbb}@page{size:Letter portrait;margin:.55in}}.graph-edge[role=button]{cursor:pointer;stroke-width:3px}.graph-edge.selected{stroke:var(--orange);stroke-width:4px}.matrix-workspace{grid-template-columns:1.2fr 1fr;align-items:center;gap:1rem;display:grid}.matrix{border-collapse:collapse;margin:auto}.matrix th{padding:.4rem}.matrix td{border:1px solid var(--line)}.matrix td button{color:var(--navy);background:#fff;border-radius:0;padding:.6rem}.matrix td button:hover{background:var(--teal2)}.builder-controls{flex-wrap:wrap;align-items:end;gap:.6rem;margin-top:.7rem;display:flex}.builder-controls label{gap:.25rem;font-size:.8rem;font-weight:700;display:grid}.builder-controls select{border:1px solid var(--line);background:#fff;border-radius:.4rem;padding:.55rem}@media (width<=760px){.matrix-workspace{grid-template-columns:1fr}}.trace-board{grid-template-columns:repeat(3,1fr);gap:.55rem;margin:1rem 0;display:grid}.trace-board>div{background:#edf5f6;border-radius:.5rem;gap:.25rem;padding:.75rem;display:grid}.trace-board span{text-transform:uppercase;letter-spacing:.08em;color:#55707b;font-size:.72rem}.comparison{background:#fffaf0;border:1px solid #f1d4b2;border-radius:.75rem;margin:1rem 0;padding:1rem}.comparison-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.comparison-grid>div{background:#fff;border-radius:.5rem;min-height:110px;padding:1rem}.organizer-board{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0;display:grid}.organizer-board>div{text-align:center;background:#edf5f6;border:2px dashed #93abb3;border-radius:.65rem;gap:.4rem;padding:1rem;display:grid}.organizer-board span{color:#55707b;font-size:.85rem}@media (width<=600px){.trace-board,.comparison-grid,.organizer-board{grid-template-columns:1fr}}.graph-canvas{aspect-ratio:1;width:100%;height:auto;min-height:260px;max-height:420px;display:block}.graph-edge{pointer-events:none;vector-effect:non-scaling-stroke}.edge-hit{stroke:#0000;stroke-width:12px;cursor:pointer;vector-effect:non-scaling-stroke}.edge-hit:focus{stroke:#f68b3c2e;outline:none}.edge-group.selected .graph-edge{stroke:var(--orange);stroke-width:4px}.vertex circle{vector-effect:non-scaling-stroke}.vertex.selected circle{filter:drop-shadow(0 0 2px #b851108c)}.tutorial-action{background:#eef7f6;border:1px solid #b8ded9;border-radius:.6rem;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.8rem 1rem;display:flex}.tutorial-action p{margin:0}.tutorial-observation{border-left:4px solid var(--orange);background:#fff6e8;border-radius:.35rem;margin-top:1rem;padding:.9rem 1rem}@media (width<=520px){.graph-canvas{min-height:220px}.tutorial-action{flex-direction:column;align-items:stretch}}.answer-field textarea{width:100%;color:var(--navy);resize:vertical;font:inherit;background:#fff;border:1px solid #9fb2ba;border-radius:.55rem;padding:.9rem;line-height:1.5}.matrix td button:disabled{opacity:1;color:#6c7d84;cursor:not-allowed;background:#e9eff1}.matrix td button.matrix-mismatch{color:#8c351b;background:#fff0e8;box-shadow:inset 0 0 0 2px #d66a42}.matrix-axis-help,.matrix-note,.matrix-relationships{color:#55707b;font-size:.88rem}.matrix-relationships{text-align:center;overflow-wrap:anywhere}.tutorial-secondary-nav{border-top:1px solid var(--line);margin-top:.35rem;padding-top:.65rem}
