/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.grid{display:grid}.table{display:table}.lowercase{text-transform:lowercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--navy-950:#04111f;--navy-900:#071a2b;--navy-800:#0a2c4a;--blueprint:#0c3d73;--rule:#4f7593;--cyan:#9bc5d8;--cream:#f2e9d2;--paper:#fff8e8;--paper-rule:#c8baa0;--orange:#f06a24;--yellow:#f4c542;--teal:#168982;--red:#b63b2e}*{box-sizing:border-box}html{background:var(--navy-950)}body{background:var(--navy-950);min-width:320px;color:var(--cream);margin:0;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif}button{font:inherit;-webkit-tap-highlight-color:transparent}.blueprint-app{min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:linear-gradient(#295d8833 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#295d8833 1px,#0000 1px) 0 0/28px 28px,radial-gradient(circle at 18% 0,#2965974d,#0000 35%),#071b2f}.lab-header,.lesson-strip,.reference-panel,.drawing-card,.action-deck,.lab-footer{border:1px solid var(--rule);box-shadow:inset 0 0 0 2px #010c16bf,0 4px #00000059}.lab-header{background:radial-gradient(circle at 12px 12px, #9b8f73 0 2px, #292720 3px 5px, transparent 6px), radial-gradient(circle at calc(100% - 12px) 12px, #9b8f73 0 2px, #292720 3px 5px, transparent 6px), linear-gradient(180deg, #1c4c7047, transparent), var(--navy-900);border-radius:5px;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.35fr) minmax(190px,.65fr);min-height:86px;display:grid}.brand{border-right:1px solid var(--rule);align-items:center;gap:12px;min-width:0;padding:12px 22px;display:flex}.brand>span{color:var(--yellow);font-size:25px}.brand h1{color:var(--cream);letter-spacing:.025em;white-space:nowrap;transform-origin:0;margin:0;font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(34px,3.6vw,54px);font-weight:900;line-height:.9;transform:scaleX(.82)}.brand p{color:var(--cyan);letter-spacing:.19em;margin:7px 0 0;font-family:Courier New,monospace;font-size:9px;font-weight:800}.progress{border-right:1px solid var(--rule);align-items:center;gap:20px;min-width:0;padding:14px 24px;display:flex}.progress>div:first-child{flex:none;font-family:Courier New,monospace}.progress strong,.progress small{display:block}.progress strong{font-size:14px}.progress small{color:var(--yellow);letter-spacing:.13em;margin-top:5px;font-size:9px;font-weight:900}.progress-track{flex:1;gap:4px;min-width:150px;padding:3px;display:flex;overflow-x:auto}.progress-track button{color:#0000;cursor:pointer;background:#06192a;border:1px solid #577c99;flex:1 0 18px;min-width:18px;max-width:42px;height:24px;padding:0}.progress-track button.current{background:var(--yellow);border-color:var(--yellow);box-shadow:0 0 12px #f4c54252}.progress-track button.complete:not(.current){border-color:var(--cyan);background:#236c77}.progress-track button span{font-size:0}.progress-track button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.shape-readout{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;padding:10px 22px;font-family:Courier New,monospace;display:flex}.shape-readout span,.shape-readout small{color:var(--cyan);letter-spacing:.12em;font-size:8px}.shape-readout strong{color:var(--yellow);letter-spacing:.04em;margin:4px 0;font-size:14px}.header-actions{justify-content:flex-end;gap:5px;display:flex}.shape-readout button{color:var(--cream);letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #5e829d;padding:3px 7px;font-family:Courier New,monospace;font-size:7px;font-weight:900}.lesson-strip{background:#071f34f2;border-radius:3px;justify-content:space-between;align-items:center;gap:22px;min-height:60px;margin-top:11px;padding:8px 18px;display:flex}.lesson-copy{align-items:center;gap:13px;display:flex}.lesson-copy>span{color:var(--yellow);font-family:Impact,sans-serif;font-size:28px}.lesson-copy strong{letter-spacing:.06em;max-width:620px;font-family:Courier New,monospace;font-size:11px;display:block}.lesson-copy p{color:var(--cyan);margin:4px 0 0;font-family:Courier New,monospace;font-size:9px}.lesson-strip ol{color:var(--cyan);white-space:nowrap;gap:16px;margin:0;padding:0;font-family:Courier New,monospace;font-size:9px;font-weight:800;list-style:none;display:flex}.lesson-strip li{align-items:center;gap:6px;display:flex}.lesson-strip i{width:21px;height:21px;color:var(--yellow);border:1px solid #5c819d;border-radius:50%;place-items:center;font-style:normal;display:grid}.workspace{grid-template-columns:minmax(300px,.82fr) minmax(620px,1.78fr);gap:11px;min-width:0;margin-top:11px;display:grid}.reference-panel{background-color:#083053f7;background-image:linear-gradient(#2f69943b 1px,#0000 1px),linear-gradient(90deg,#2f69943b 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:4px;flex-direction:column;min-width:0;min-height:605px;padding:13px;display:flex;position:relative}.reference-panel>header{z-index:2;border:1px solid var(--navy-900);background:var(--cream);min-height:40px;color:var(--navy-900);letter-spacing:.06em;outline:1px solid #c9b78f;justify-content:space-between;align-items:center;padding:7px 14px;font-family:Courier New,monospace;font-size:14px;font-weight:900;display:flex;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 3px #0000004d}.reference-panel>header small{opacity:.6;font-size:9px}.model-stage{flex:1;min-height:0;padding-top:45px;position:relative}.model-stage>svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;min-height:420px}.model-solid{filter:drop-shadow(0 8px 4px #0003)}.model-face{stroke:none;shape-rendering:geometricprecision}.surface-grid line{stroke:#19374247;stroke-width:.85px;stroke-linecap:round;pointer-events:none}.feature-edges line{stroke:#051b2ab8;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.feature-edges line.silhouette{stroke-width:2px}.feature-edges line.crease{stroke-width:1.4px}.axis line{stroke:var(--cyan);stroke-width:2px}.axis circle{fill:var(--yellow);stroke:var(--navy-900);stroke-width:1px}.axis text{fill:var(--cyan);font-family:Courier New,monospace;font-size:17px;font-weight:900}.iso-tip{width:max-content;max-width:94%;color:var(--cyan);letter-spacing:.05em;pointer-events:none;background:#041829d6;border:1px solid #8cb8d073;padding:6px 9px;font-family:Courier New,monospace;font-size:8px;font-weight:900;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.model-controls{border:1px solid var(--rule);background:#061a2b;grid-template-columns:repeat(2,1fr);display:grid}.model-controls button,.view-lock{border:0;border-right:1px solid var(--rule);min-height:60px;color:var(--cream);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:5px;font-family:Courier New,monospace;font-size:8px;font-weight:900;display:flex}.model-controls button{cursor:pointer}.model-controls button:last-child{border-right:0}.model-controls span{color:var(--cyan);font-size:19px;line-height:1}.model-controls strong{letter-spacing:.05em;margin-top:2px}.model-controls small{color:var(--cyan);letter-spacing:.05em;font-size:6px}.view-lock{border-right:1px solid var(--rule)}.model-controls button.pressed{box-shadow:inset 0 0 0 2px var(--yellow);background:#123f64}.drawing-workspace{flex-direction:column;gap:10px;min-width:0;display:flex}.view-tabs{display:none}.drawing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;display:grid}.drawing-card{background:var(--cream);border-color:#cfbd94;border-radius:4px;min-width:0;padding:8px;transition:box-shadow .14s,border-color .14s}.drawing-card.active{border-color:var(--yellow);box-shadow:inset 0 0 0 2px var(--orange), 0 4px 0 #00000059}.drawing-card>header{min-height:32px;color:var(--navy-900);justify-content:space-between;align-items:center;gap:5px;padding:0 3px 5px;display:flex}.drawing-card h3{letter-spacing:.06em;margin:0;font-family:Impact,Arial Narrow,sans-serif;font-size:19px}.drawing-card>header span{background:var(--yellow);border:1px solid #c17b15;padding:4px 5px 3px;font-family:Courier New,monospace;font-size:7px;font-weight:900}.paper{background:radial-gradient(circle at 18% 28%, #6e53270d, transparent 30%), var(--paper);border:1px solid #b6a987;overflow:hidden;box-shadow:inset 0 0 16px #5b431b14,0 2px #00000024}.paper svg{aspect-ratio:1;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline:none;width:100%;display:block}.paper svg:focus-visible{box-shadow:inset 0 0 0 4px var(--orange)}.grid-lines line{stroke:#cec3aa;stroke-width:.8px}.grid-lines g:nth-child(7) line{stroke:#a89a7b;stroke-width:1.2px;stroke-dasharray:5 3}.grid-nodes circle{fill:#b7a98b}.student-line{stroke:var(--navy-900);stroke-width:3.2px;stroke-linecap:square}.student-line.correct{stroke:var(--teal)}.student-line.extra{stroke:var(--red)}.endpoint{fill:var(--orange);stroke:var(--navy-900);stroke-width:.8px;pointer-events:none}.missing-line{stroke:var(--orange);stroke-width:2.5px;stroke-dasharray:4 4;pointer-events:none}.preview-line{stroke:var(--orange);stroke-width:3px;stroke-dasharray:7 3;pointer-events:none}.preview-node{fill:var(--yellow);stroke:var(--orange);stroke-width:2px;pointer-events:none;animation:.85s ease-in-out infinite pulse}.anchor{fill:#f06a2433;stroke:var(--orange);stroke-width:2px;animation:.85s ease-in-out infinite pulse}.drawing-card>footer{color:#5e5138;letter-spacing:.03em;text-align:center;text-transform:uppercase;justify-content:center;align-items:center;min-height:25px;padding-top:6px;font-family:Courier New,monospace;font-size:7px;font-weight:900;display:flex}.action-deck{background:#061b2dfa;border-radius:4px;grid-template-columns:auto minmax(145px,.62fr) minmax(240px,1.15fr);gap:10px;min-height:118px;padding:10px;display:grid}.edit-buttons{grid-template-columns:repeat(2,minmax(82px,1fr));gap:8px;display:grid}.edit-buttons button,.check-button{cursor:pointer;border:1px solid #537895;border-radius:4px;min-height:76px;box-shadow:inset 0 0 0 2px #031321,0 4px #020c14}.edit-buttons button{min-width:88px;color:var(--cream);background:#0a2842;flex-direction:column;justify-content:center;align-items:center;padding:5px 9px;display:flex}.edit-buttons button span{color:var(--yellow);font-size:27px;line-height:.8}.edit-buttons button strong{letter-spacing:.06em;margin-top:7px;font-family:Impact,sans-serif;font-size:13px}.edit-buttons button small{color:var(--cyan);margin-top:2px;font-family:Courier New,monospace;font-size:6px}.edit-buttons button:disabled{cursor:not-allowed;opacity:.4}.check-button{background:repeating-linear-gradient(-45deg, #782f051f 0 4px, transparent 4px 9px), var(--orange);color:var(--navy-900);border-color:#662b08;flex-direction:column;justify-content:center;align-items:center;padding:9px 16px;display:flex;box-shadow:inset 0 0 0 3px #f99a39,0 5px #6c2b08}.check-button span,.check-button strong{letter-spacing:.06em;font-family:Impact,sans-serif;line-height:1}.check-button span{font-size:18px}.check-button strong{font-size:25px}.edit-buttons button:active,.check-button:active,.model-controls button:active{transform:translateY(2px)}.score-panel{border:1px solid var(--rule);background:var(--navy-900);grid-template-columns:minmax(82px,.65fr) minmax(135px,1.35fr);align-items:center;min-width:0;display:grid;box-shadow:inset 0 0 0 2px #020f1b}.score-panel.scored{border-color:var(--yellow)}.score-number{border-right:1px solid var(--rule);color:var(--yellow);text-align:center;padding:9px;font-family:Impact,sans-serif;font-size:clamp(48px,5.5vw,76px);line-height:.85}.score-number span{font-size:.4em}.score-panel>div:last-child{min-width:0;padding:10px 14px;font-family:Courier New,monospace}.score-panel strong{letter-spacing:.05em;font-size:12px}.score-panel hr{background:repeating-linear-gradient(90deg, var(--cyan) 0 6px, transparent 6px 10px);border:0;height:1px;margin:7px 0}.score-panel span,.score-panel small{color:var(--cyan);letter-spacing:.04em;font-size:7px;font-weight:900;display:block}.score-panel small{color:#ef9e8e;margin-top:5px}.level-nav{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;min-height:40px;font-family:Courier New,monospace;display:grid}.level-nav button{border:1px solid var(--rule);background:var(--navy-800);min-height:40px;color:var(--cream);cursor:pointer;padding:7px 11px;font-size:9px;font-weight:900}.level-nav button:last-child{justify-self:end}.level-nav button:disabled{opacity:.32;cursor:not-allowed}.level-nav span{color:var(--cyan);font-size:8px;font-weight:900}.lab-footer{min-height:58px;color:var(--cyan);background:#061c2ff7;border-radius:3px;justify-content:space-between;align-items:center;gap:20px;margin-top:11px;padding:9px 18px;font-family:Courier New,monospace;display:flex}.lab-footer>div:first-child{align-items:center;gap:12px;display:flex}.lab-footer>div:first-child>span{border:1px solid var(--rule);place-items:center;width:34px;height:34px;font-size:23px;display:grid}.lab-footer p{letter-spacing:.03em;margin:0;font-size:8px}.lab-footer p strong{color:var(--cream)}.legend{white-space:nowrap;gap:16px;font-size:7px;font-weight:900;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{width:15px;height:7px;display:inline-block}.node-key{background:var(--orange);width:8px!important;height:8px!important}.missing-key{border-top:2px dashed var(--orange)}.extra-key{border-top:2px solid var(--red)}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020d17c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.help-modal{outline:4px solid var(--navy-900);background:linear-gradient(#c8b8963d 1px, transparent 1px), linear-gradient(90deg, #c8b8963d 1px, transparent 1px), var(--paper);width:min(720px,100%);color:var(--navy-900);background-size:22px 22px;border:2px solid #d5c39a;padding:34px;position:relative;box-shadow:0 18px 60px #00000073}.import-modal{outline:4px solid var(--navy-900);background:linear-gradient(#c8b8963d 1px, transparent 1px), linear-gradient(90deg, #c8b8963d 1px, transparent 1px), var(--paper);width:min(650px,100%);color:var(--navy-900);background-size:22px 22px;border:2px solid #d5c39a;padding:34px;position:relative;box-shadow:0 18px 60px #00000073}.modal-close{border:1px solid var(--navy-900);background:var(--cream);width:44px;height:44px;color:var(--navy-900);cursor:pointer;font-size:27px;position:absolute;top:12px;right:12px}.eyebrow{color:#8b5a18;letter-spacing:.15em;font-family:Courier New,monospace;font-size:10px;font-weight:900}.help-modal h2,.import-modal h2{letter-spacing:.03em;max-width:560px;margin:8px 0 24px;font-family:Impact,sans-serif;font-size:clamp(32px,6vw,52px);line-height:.95}.help-steps{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.help-steps article{background:#f2e9d2db;border:1px solid #a89877;min-height:170px;padding:18px;position:relative}.help-steps b{background:var(--orange);width:30px;height:30px;color:var(--navy-900);border-radius:50%;place-items:center;font-family:Courier New,monospace;display:grid}.help-steps h3{letter-spacing:.06em;margin:18px 0 6px;font-family:Impact,sans-serif;font-size:20px}.help-steps p,.help-note{margin:0;font-family:Courier New,monospace;font-size:10px;line-height:1.55}.help-note{border-left:4px solid var(--yellow);background:#f4c54229;margin:18px 0;padding:12px}.modal-start{background:var(--orange);width:100%;min-height:52px;color:var(--navy-900);letter-spacing:.08em;cursor:pointer;border:1px solid #6d2c08;font-family:Impact,sans-serif;font-size:20px}.import-modal>p{margin:0 0 16px;font-family:Courier New,monospace;font-size:10px;line-height:1.6}.import-spec{grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;display:grid}.import-spec span{text-align:center;background:#f2e9d2db;border:1px solid #a89877;padding:10px 6px;font-family:Courier New,monospace;font-size:8px;font-weight:900}.step-note{border-left:4px solid var(--yellow);background:#f4c54229;padding:12px}.import-error{border:1px solid var(--red);color:#8b2118;background:#b63b2e1f;padding:10px;font-weight:900}.import-actions{grid-template-columns:minmax(150px,.75fr) minmax(200px,1.25fr);gap:10px;display:grid}.example-button{border:1px solid var(--navy-900);background:var(--cream);min-height:52px;color:var(--navy-900);cursor:pointer;padding:8px;font-family:Courier New,monospace;font-size:9px;font-weight:900}.file-input{display:none}@keyframes pulse{50%{opacity:.5}}@media (width<=1180px){.lab-header{grid-template-columns:minmax(260px,.85fr) minmax(330px,1.15fr) minmax(170px,.55fr)}.brand{padding-inline:16px}.progress{gap:12px;padding-inline:16px}.workspace{grid-template-columns:minmax(300px,.9fr) minmax(430px,1.3fr)}.view-tabs{border:1px solid var(--rule);background:var(--navy-900);grid-template-columns:repeat(3,1fr);display:grid}.view-tabs button{border:0;border-right:1px solid var(--rule);min-height:48px;color:var(--cyan);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;font-family:Courier New,monospace;font-size:10px;font-weight:900;display:flex}.view-tabs button:last-child{border-right:0}.view-tabs button[aria-selected=true]{background:var(--cream);color:var(--navy-900);box-shadow:inset 0 -4px var(--orange)}.view-tabs button span{color:var(--orange)}.drawing-grid{display:block}.drawing-card.inactive{display:none}.drawing-card{width:min(100%,540px);margin-inline:auto}.action-deck{grid-template-columns:auto minmax(135px,.55fr) minmax(220px,1.1fr);gap:8px}}@media (width<=900px){.blueprint-app{padding:9px}.lab-header{grid-template-columns:1fr auto}.brand{grid-row:span 2}.progress{border-right:0;border-bottom:1px solid var(--rule)}.shape-readout{text-align:left;align-items:flex-start;padding:8px 16px}.shape-readout small,.lesson-strip ol{display:none}.workspace{grid-template-columns:1fr}.reference-panel{min-height:min(490px,47dvh)}.model-stage>svg{min-height:330px}.action-deck{grid-template-columns:auto minmax(145px,.62fr) minmax(240px,1.15fr)}}@media (width<=650px){.lab-header{grid-template-columns:1fr}.brand{border-right:0;border-bottom:1px solid var(--rule);grid-row:auto}.progress{min-height:60px}.shape-readout{border-top:1px solid var(--rule);text-align:left;align-items:flex-start;min-height:64px}.header-actions{justify-content:flex-start}.lesson-copy strong{font-size:10px}.lesson-copy p{max-width:290px}.reference-panel{min-height:430px}.model-stage>svg{min-height:300px}.action-deck{grid-template-columns:1fr 1fr}.edit-buttons{grid-column:1}.check-button{grid-column:2}.score-panel{grid-column:1/-1;min-height:104px}.level-nav{grid-template-columns:1fr 1fr}.level-nav span{display:none}.lab-footer{flex-direction:column;align-items:flex-start}.legend{justify-content:space-between;width:100%}.help-modal,.import-modal{padding:26px 18px 18px}.help-steps{grid-template-columns:1fr}.help-steps article{min-height:auto}.import-spec,.import-actions{grid-template-columns:1fr}}@media (width<=420px){.brand h1{font-size:31px}.brand p{letter-spacing:.11em}.progress-track{min-width:100px}.reference-panel{min-height:385px}.model-stage>svg{min-height:260px}.action-deck{flex-direction:column;display:flex}.check-button{min-height:86px}.legend{flex-direction:column;align-items:flex-start}}@media (height<=820px) and (width>=901px){.lab-header{min-height:72px}.lesson-strip{min-height:48px}.reference-panel{min-height:520px}.model-stage>svg{min-height:340px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.teacher-qr-trigger{color:#fff7e5;letter-spacing:.08em;white-space:nowrap;cursor:pointer;background:#092631;border:2px solid #d99a2b;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:7px 11px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:10px;font-weight:950;display:inline-flex}.teacher-qr-trigger:hover{background:#143d48}.teacher-qr-trigger:focus-visible{outline-offset:3px;outline:3px solid #d99a2b}.teacher-qr-trigger.is-compact{min-height:32px;padding:5px 9px;font-size:8px}.qr-mini{color:#f0bc4d;font-size:17px;line-height:1}.teacher-modal-backdrop{z-index:10000;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#04151cd1;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.teacher-modal{color:#092631;text-align:left;background:radial-gradient(circle at 12% 18%,#09263109 0 1px,#0000 1.6px) 0 0/15px 15px,#fff7e5;border:3px solid #c98a23;border-radius:22px;grid-template-columns:minmax(0,1.08fr) minmax(270px,.92fr);width:min(850px,100%);max-height:calc(100dvh - 32px);display:grid;position:relative;overflow:auto;box-shadow:0 22px 70px #0000006b,inset 0 0 0 5px #f5ddb0}.teacher-modal-close{z-index:2;color:#092631;cursor:pointer;background:#fff7e5;border:2px solid #092631;border-radius:50%;width:34px;height:34px;padding:0;font-size:23px;font-weight:900;line-height:1;position:absolute;top:10px;right:12px}.teacher-modal-copy{padding:38px 34px 32px}.teacher-eyebrow{color:#b9572f;letter-spacing:.16em;margin:0 0 7px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:10px;font-weight:950}.teacher-modal-copy h2{color:#092631;max-width:420px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,4vw,43px);line-height:1.02}.teacher-modal-copy>p:not(.teacher-eyebrow):not(.teacher-form-error){color:#4f625c;max-width:460px;margin:13px 0 20px;font-family:Arial,sans-serif;font-size:14px;line-height:1.5}.teacher-field-label{color:#765c2f;letter-spacing:.13em;margin-bottom:6px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:9px;font-weight:950;display:block}.teacher-text-field{color:#092631;background:#fffdf6;border:2px solid #9e8150;border-radius:10px;outline:none;width:100%;min-height:47px;padding:10px 13px;font-family:Arial,sans-serif;font-size:16px}.teacher-text-field:focus{border-color:#b9572f;box-shadow:0 0 0 3px #b9572f29}.teacher-snapshot-preview{background:#f1dfb6;border-left:5px solid #d99a2b;border-radius:0 10px 10px 0;gap:4px;margin:14px 0;padding:12px 14px;display:grid}.teacher-snapshot-preview span,.teacher-snapshot-preview small{color:#765c2f;letter-spacing:.08em;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:9px;font-weight:900}.teacher-snapshot-preview strong{color:#092631;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.2}.teacher-form-error{color:#a43826;margin:0 0 10px;font-family:Arial,sans-serif;font-size:13px;font-weight:700}.teacher-primary-button{color:#fff7e5;letter-spacing:.12em;cursor:pointer;background:#b9572f;border:2px solid #092631;border-radius:10px;width:100%;min-height:45px;padding:10px 16px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:12px;font-weight:950;box-shadow:0 4px #092631}.teacher-primary-button:disabled{opacity:.58;cursor:wait}.teacher-qr-display{text-align:center;background:#efd9aa;border-left:2px dashed #a98f62;flex-direction:column;justify-content:center;align-items:center;min-height:430px;padding:46px 30px 30px;display:flex}.teacher-qr-display img{width:min(290px,100%);height:auto;image-rendering:pixelated;border:8px solid #fff7e5;border-radius:13px;box-shadow:0 5px #09263129}.teacher-qr-display>strong{color:#2f5138;letter-spacing:.1em;margin-top:13px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:12px;font-weight:950}.teacher-qr-display>span{color:#092631;margin-top:5px;font-family:Georgia,serif;font-size:18px;font-weight:700}.teacher-qr-display>small{color:#6f6b57;margin-top:3px;font-family:Arial,sans-serif;font-size:11px}.teacher-summary-open-link{color:#092631;letter-spacing:.1em;border:1px solid #092631;border-radius:8px;margin-top:12px;padding:8px 12px;font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;font-size:9px;font-weight:950;text-decoration:none}.teacher-qr-placeholder{color:#765c2f;place-items:center;gap:12px;display:grid}.teacher-qr-placeholder span{font-size:90px;line-height:1}.teacher-qr-placeholder strong{letter-spacing:.13em;font-size:10px}@media (width<=680px){.teacher-modal{grid-template-columns:1fr;max-height:none}.teacher-modal-copy{padding:34px 22px 22px}.teacher-qr-display{border-top:2px dashed #a98f62;border-left:0;min-height:350px;padding:26px 22px}.teacher-qr-display img{width:min(300px,86vw)}}.status-page{background:var(--deep,var(--navy-950,#092631));color:#092631;place-items:start center;min-height:100dvh;padding:14px;font-family:Arial,sans-serif;display:grid}.phone-summary{background:#e8dcc1;border:1px solid #e2c889;border-radius:23px;width:min(100%,430px);min-height:calc(100dvh - 28px);overflow:hidden;box-shadow:0 20px 50px #00000057}.summary-phone-header{color:#fff7e5;background:#092631;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;min-height:76px;padding:12px;display:grid}.summary-mark{background:#b9572f;border:2px solid #f2d39a;border-radius:50%;place-items:center;width:44px;height:44px;font-family:Georgia,serif;font-weight:900;display:grid}.summary-phone-header>div{gap:2px;display:grid}.summary-phone-header small{color:#aab5aa;letter-spacing:.11em;font-size:.5rem;font-weight:900}.summary-phone-header strong{color:#fff7e5;font-family:Georgia,serif;font-size:1.03rem}.live-dot{background:#79a777;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #79a7772e}.student-banner{background:#fcf2d9;padding:19px 18px 15px}.student-banner p{color:#b9572f;letter-spacing:.12em;margin:0;font-size:.54rem;font-weight:950}.student-banner h1{color:#2f5138;letter-spacing:-.04em;margin:3px 0 9px;font-family:Georgia,serif;font-size:2.2rem;line-height:1}.student-banner>div{gap:8px;display:flex}.student-banner span{color:#73674f;background:#f0e2c3;border:1px solid #b69762;border-radius:99px;padding:5px 8px;font-size:.57rem;font-weight:900}.status-headline{color:#fff7e5;background:#b9572f;padding:14px 18px}.status-headline>span{letter-spacing:.12em;font-size:.52rem;font-weight:950}.status-headline h2{color:#fff7e5;margin:4px 0 0;font-family:Georgia,serif;font-size:1.2rem;line-height:1.15}.phone-metrics{grid-template-columns:1fr 1fr;gap:7px;padding:10px;display:grid}.phone-metrics>div{background:#fcf2d9;border:1px solid #b69762;border-radius:13px;align-content:center;gap:2px;min-height:78px;padding:10px;display:grid}.phone-metrics span{color:#7a715d;letter-spacing:.1em;font-size:.5rem;font-weight:950}.phone-metrics strong{color:#2f5138;font-family:Georgia,serif;font-size:1.35rem;line-height:1}.phone-metrics .tone-good{border-top:4px solid #79a777}.phone-metrics .tone-warn{border-top:4px solid #b74a37}.phone-metrics .tone-accent{border-top:4px solid #d99a2b}.phone-section{background:#fcf2d9;border:1px solid #b69762;border-radius:14px;margin:0 10px 9px;overflow:hidden}.phone-section h3{color:#fff7e5;letter-spacing:.1em;text-transform:uppercase;background:#2f5138;margin:0;padding:9px 11px;font-size:.58rem}.phone-section>div{display:grid}.phone-section article{border-top:1px solid #d0b888;gap:2px;padding:10px 11px;display:grid}.phone-section article:first-child{border-top:0}.phone-section article>span{color:#7d725a;letter-spacing:.06em;text-transform:uppercase;font-size:.52rem;font-weight:950}.phone-section article>strong{color:#092631;font-family:Georgia,serif;font-size:.9rem;line-height:1.22}.phone-section article>p{color:#696a59;margin:2px 0 0;font-size:.69rem;line-height:1.35}.phone-section article.tone-good{box-shadow:inset 4px 0 #79a777}.phone-section article.tone-warn{box-shadow:inset 4px 0 #b74a37}.phone-section article.tone-accent{box-shadow:inset 4px 0 #d99a2b}.summary-footer{color:#6e715e;letter-spacing:.1em;justify-content:space-between;padding:9px 12px 13px;font-size:.48rem;font-weight:900;display:flex}.status-loading,.status-error{color:#fff7e5;text-align:center;margin-top:18vh}.status-loading{letter-spacing:.13em;font-size:.64rem;font-weight:900}.status-error{max-width:360px}.status-error>span{background:#b9572f;border:2px solid #e9c888;border-radius:50%;place-items:center;width:70px;height:70px;margin:auto;font-family:Georgia,serif;font-size:2rem;display:grid}.status-error h1{color:#fff7e5;font-family:Georgia,serif;font-size:2rem}.status-error p{color:#c8d0c4}@media (width<=500px){.status-page{padding:7px}.phone-summary{border-radius:16px;min-height:calc(100dvh - 14px)}}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
