@font-face{font-family:Halcyon Mono;src:url('./fonts/DejaVuSansMono.ttf') format('truetype');font-display:swap}
.viewer-modes .engineering-link{color:var(--cyan);border:1px solid var(--rule);padding:10px 14px;text-decoration:none;font-size:12px}.viewer-modes .engineering-link:hover{border-color:var(--cyan)}
:root{--paper:#0a0f17;--ink:#e8e3d6;--muted:#a39c8c;--rule:#33404e;--wash:#131a26;--gold:#d4a574;--cyan:#4dd0e1;--rule-strong:#52606c;--mono:'Halcyon Mono',monospace}
[hidden]{display:none!important}
button:disabled{opacity:.45;cursor:wait}
#scalar_toggle button,#scenario_selector button{border:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font:10px/1.4 var(--mono);letter-spacing:0;text-transform:none;padding:7px 10px;box-shadow:none;width:auto;flex:none}
#scalar_toggle button.active,#scenario_selector button.active,#playback_controls #btn_play_pause{background:var(--cyan);border-color:var(--cyan);color:var(--paper)}
#playback_controls #speed_slider{accent-color:var(--ink);background:var(--rule)}#playback_controls #speed_value{color:var(--ink)}
#color-scale{height:5px;width:150px;background:linear-gradient(90deg,#4dd0e1,#d4a574);margin-top:5px;border:1px solid #e8e3d633}#color-scale[data-mode=kinetic]{background:linear-gradient(90deg,#405775,#b39ddb)}#color-scale[data-mode=both]{background:linear-gradient(90deg,#4dd0e1,#d4a574)}.scale-ticks{width:150px;display:flex;justify-content:space-between;margin-bottom:12px}
html,body{background:var(--paper);color:var(--ink);font-family:var(--mono);overflow:auto;height:auto;min-height:100%}
button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.workbench{min-height:100vh;display:flex;flex-direction:column;border:1px solid var(--rule-strong)}
.embedded .workbench{min-height:0}
#lattice-viewport{position:absolute;inset:0}#lattice-viewport canvas{display:block;cursor:grab}#lattice-viewport canvas:active{cursor:grabbing}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 24px;border-bottom:2px solid var(--rule-strong)}
.sheet-kicker{font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.sheet-head h1{font:400 22px/1.2 var(--mono);letter-spacing:-1px}.sheet-head h1 span{color:var(--muted)}
.sheet-number{font-size:10px;line-height:1.8;text-align:right;white-space:nowrap}.sheet-number b{font-weight:normal;color:var(--gold)}
.sheet-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 20px;border-bottom:1px solid var(--rule);background:#0f1620}
.tool-group{display:flex;align-items:center;gap:6px}.tool-label{font-size:9px;letter-spacing:.1em;text-transform:uppercase;margin-right:7px;color:var(--muted)}
.workbench button,#btn_generate_report{border:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);padding:7px 10px;font-size:10px;line-height:1.3;letter-spacing:0;text-transform:none;box-shadow:none;min-height:30px}
.workbench button:hover{border-color:var(--cyan);background:#1b2b3a}.workbench button.active{background:var(--cyan);border-color:var(--cyan);color:var(--paper)}
.sheet-main{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:540px;flex:1}
#drawing-stage{position:relative;min-width:0;min-height:540px;overflow:hidden;background:linear-gradient(#4dd0e110 1px,transparent 1px),linear-gradient(90deg,#4dd0e110 1px,transparent 1px);background-size:24px 24px}
#drawing-stage::after{content:'';position:absolute;inset:16px;border:1px solid #e8e3d62e;pointer-events:none}
#drawing-stage>canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab;outline-offset:-5px}#drawing-stage>canvas:active{cursor:grabbing}
.stage-heading{position:absolute;left:32px;top:31px;z-index:1;pointer-events:none}.stage-heading strong{font-size:11px;font-weight:normal;letter-spacing:.12em}.stage-heading p{font-size:9px;color:var(--muted);margin-top:7px;line-height:1.8}
.stage-scale{position:absolute;right:32px;top:31px;font-size:9px;line-height:1.8;text-align:right;color:var(--muted);pointer-events:none}
.stage-foot{position:absolute;left:32px;bottom:32px;font-size:9px;line-height:1.9;color:var(--muted);pointer-events:none}
.stage-foot b{color:var(--ink);font-weight:normal}.axis-triad{position:absolute;right:25px;bottom:22px;width:94px;height:94px;pointer-events:none}.axis-triad line{stroke:var(--ink);stroke-width:1}.axis-triad text{font:10px var(--mono);fill:var(--ink)}
#link-callout{position:absolute;left:32px;top:100px;font-size:9px;line-height:1.8;color:var(--ink);border-left:2px solid var(--gold);padding-left:10px;pointer-events:none}#link-callout span{display:block;color:var(--muted)}
.panel{position:static;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}
#info{position:static;min-width:0;max-width:none;width:auto;max-height:540px;padding:18px 16px;border-left:1px solid var(--rule-strong);overflow-y:auto;scrollbar-color:var(--rule) transparent;font-family:var(--mono);font-size:10px}
#info .title{font-size:10px;color:var(--ink);border-bottom:1px solid var(--rule-strong);padding-bottom:12px;letter-spacing:.14em}
#info .section_head{color:var(--gold);font-size:9px;margin:19px 0 7px;border-color:var(--rule);padding-bottom:6px;letter-spacing:.12em}
#info .row{gap:8px;padding:5px 0;margin:0;align-items:flex-start}#info .label{font-size:9px;letter-spacing:0;text-transform:none;color:var(--muted);flex:1}#info .value{color:var(--ink);font-size:9px;text-align:right;max-width:145px;overflow-wrap:anywhere}
#info .chev{color:var(--muted)!important}#info .row.drill_header:hover{background:var(--wash)}
#info .drill_body{border-color:var(--rule);background:var(--wash);border-radius:0;margin-left:0;color:var(--ink)}
#info .drill_body .dd_note,#info .drill_body .dd_formula,#info .drill_body .dd_title,#info .drill_body .dd_val,#info .drill_body th,#info .drill_body td{color:var(--ink);border-color:var(--rule)}
#info .drill_body svg text{fill:var(--ink)}#info .drill_body button{color:var(--ink);border-color:var(--rule)}
#scalar_toggle{display:flex!important;gap:3px;position:static;transform:none;padding:0;background:none;border:0}
#legend,#damping_toggle,#advanced_drawer,#hint{display:none!important}
.sheet-data{border-top:1px solid var(--rule-strong);padding:14px 20px;display:grid;grid-template-columns:1fr auto;gap:15px;background:#0f1620}
.scenario-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap}#scenario_selector{display:flex;gap:4px;position:static;padding:0;border:0;background:none}
#playback_controls{display:flex;align-items:center;gap:9px;position:static;background:none;border:0;padding:0;flex-wrap:wrap}#playback_controls button{padding:7px 10px;border-radius:0;color:var(--ink);background:transparent;border:1px solid var(--rule)}#playback_controls .speed_label,#speed_value{color:var(--muted);font-size:10px}
#speed_slider{width:70px;accent-color:var(--ink)}
.timeline-row{grid-column:1/-1;display:flex;gap:15px;align-items:center;font-size:9px;color:var(--muted)}#timeline{flex:1;min-width:40px;accent-color:var(--ink);cursor:ew-resize}#timeline-time{min-width:108px;text-align:right}
.sheet-footer{border-top:1px solid var(--rule-strong);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;line-height:1.8}.sheet-footer p{color:var(--muted);max-width:560px}
#source_tag,#source_tag.real{position:static;transform:none;padding:0;background:transparent;color:var(--ink);border:0;border-radius:0;font:9px/1.8 var(--mono);letter-spacing:0}
#loading{position:absolute;z-index:30;top:45%;left:40%;transform:translate(-50%,-50%);background:var(--paper);color:var(--ink);padding:20px;border:1px solid var(--rule-strong);font:12px var(--mono);max-width:80%}
#audit_modal{background:#03060bd9;backdrop-filter:blur(3px)}#audit_modal .card{background:var(--paper);border:1px solid var(--rule-strong);border-radius:0;color:var(--ink)}#audit_modal .head{background:var(--wash);border-color:var(--rule)}#audit_modal h2,#audit_modal h3,#audit_modal .sub,#audit_modal .note,#audit_modal th,#audit_modal td,#audit_modal .muted{color:var(--ink)}#audit_modal .block,#audit_modal .metric,#audit_modal pre{background:var(--wash);border-color:var(--rule);border-radius:0;color:var(--ink)}#audit_modal .close{background:var(--cyan);color:var(--paper);border-radius:0}
@media(min-height:850px) and (min-width:801px){.sheet-main{min-height:620px}#drawing-stage{min-height:620px}#info{max-height:620px}}
@media(max-width:800px){.sheet-head{padding:16px}.sheet-head h1{font-size:18px}.sheet-number{font-size:8px}.sheet-toolbar{padding:10px 14px}.sheet-main{grid-template-columns:1fr}#drawing-stage{min-height:440px}#info{border-left:0;border-top:1px solid var(--rule-strong);max-height:260px;padding:16px}.sheet-data{grid-template-columns:1fr;padding:14px}.sheet-footer{align-items:flex-start;padding:14px}.sheet-footer p{max-width:400px}.stage-heading,.stage-foot,#link-callout{left:28px}.stage-scale{right:28px}}
@media(max-width:450px){.sheet-head{gap:12px}.sheet-head h1{font-size:16px}.sheet-kicker{font-size:8px}.sheet-number{font-size:7px}.tool-label{font-size:8px;margin-right:4px}.workbench button{padding:7px 8px;font-size:9px}#drawing-stage{min-height:410px}.stage-scale{top:auto;bottom:127px;font-size:8px}.stage-heading p{max-width:210px}.sheet-footer{flex-direction:column}.timeline-row{gap:7px}#timeline-time{min-width:98px;font-size:8px}}
@media(max-width:800px){#drawing-stage{min-height:580px}#lattice-viewport{inset:130px 12px 140px}.stage-scale{top:31px;bottom:auto}#link-callout{top:98px}.stage-heading p{font-size:8px;max-width:250px}.stage-foot{font-size:8px}.stage-scale{display:none}}
#audit_modal .card h2,#audit_modal .card .sub{color:var(--ink);letter-spacing:.05em}#audit_modal .card .close{background:var(--cyan);color:var(--paper);border-radius:0}#audit_modal .section_head{color:var(--gold);border-color:var(--rule)}#audit_modal .verdict_PASS{color:#8bc7af}#audit_modal .verdict_FAIL{color:#e57bb0}#audit_modal .verdict_DECLARED_VARIANT,#audit_modal .verdict_NOT_RUN{color:#d4a574}#audit_modal .actions a{color:var(--ink);border-color:var(--rule);background:var(--wash);border-radius:0}
.experiment-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;background:#0f1620;border-bottom:1px solid var(--rule-strong)}.experiment-bar h2{font:400 19px/1.35 var(--mono);letter-spacing:-.6px}.experiment-bar p{font:11px/1.7 var(--mono);color:var(--muted);margin-top:8px;max-width:760px}.workbench #run-experiment{background:var(--cyan);color:var(--paper);font-size:12px;white-space:nowrap;padding:13px 16px;border:1px solid var(--rule-strong)}
.experiment-readout{display:grid;grid-template-columns:1fr 1fr 1.6fr;border-top:1px solid var(--rule-strong);background:#131a26}.experiment-metric{padding:18px 24px;border-right:1px solid var(--rule)}.experiment-metric>span,.experiment-trace>div{font:9px/1.5 var(--mono);letter-spacing:.06em;color:var(--muted)}.experiment-metric strong{display:block;font:400 34px/1.3 var(--mono);color:var(--ink);margin:7px 0}.experiment-metric small{font:9px/1.6 var(--mono);color:var(--muted)}.experiment-trace{padding:16px 24px;min-width:0}.experiment-trace>div{display:flex;justify-content:space-between;gap:10px}#experiment-plot{display:block;width:100%;height:90px;overflow:visible;margin-top:8px}#trace-grid{stroke:var(--rule);stroke-width:.6;fill:none}#trace-full{stroke:#627889;stroke-width:1;fill:none;stroke-dasharray:3 3}#trace-progress{stroke:#d4a574;stroke-width:2.5;fill:none}#trace-cursor{stroke:var(--ink);stroke-width:1}#trace-dot{fill:#d4a574;stroke:var(--paper);stroke-width:2}
#color-scale{background:linear-gradient(90deg,#4dd0e1,#d4a574,#e57bb0)}#color-scale[data-mode=both]{background:linear-gradient(90deg,#4dd0e1,#d4a574,#e57bb0)}
@media(max-width:800px){.experiment-bar{padding:18px 16px;align-items:flex-start;flex-direction:column;gap:14px}.experiment-bar h2{font-size:17px}.experiment-readout{grid-template-columns:1fr 1fr}.experiment-metric{padding:16px}.experiment-metric strong{font-size:28px}.experiment-trace{grid-column:1/-1;border-top:1px solid var(--rule);padding:14px 16px}.experiment-bar p{font-size:10px}}
@media(min-width:801px){.sheet-main,#drawing-stage{min-height:500px}#info{max-height:500px}}
.scenario-guide{padding:16px 24px;border-bottom:1px solid var(--rule)}.scenario-guide #scenario_selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.scenario-guide #scenario_selector button{display:block;white-space:normal;text-align:left;padding:13px 15px;min-width:0;width:100%;background:#131a26;border:1px solid var(--rule);color:var(--ink)}.scenario-guide #scenario_selector button.active{background:#142c36;border-color:var(--cyan);box-shadow:inset 0 3px var(--cyan);color:var(--ink)}.scenario-guide button strong{display:block;font:600 11px/1.5 var(--mono);margin-bottom:6px}.scenario-guide button span{display:block;font:12px/1.5 var(--mono);margin-bottom:5px}.scenario-guide button small{display:block;font:10px/1.7 var(--mono);color:#b6afa1}
.plain-language{font:11px/1.7 var(--mono);margin-top:10px;max-width:780px}.plain-language summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.plain-language p{padding:5px 0}.experiment-bar #scenario-playback-note{font-size:10px;color:var(--gold)}
#lattice-viewport #relax-meter{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}#relax-meter circle{fill:none;stroke-width:5}.meter-track{stroke:#33404e;stroke-dasharray:2 3}#relax-arc{stroke:#d4a574;stroke-width:9!important;stroke-linecap:butt}
#relax-label{position:absolute;top:100px;right:32px;text-align:right;pointer-events:none;color:var(--ink)}#relax-label span,#relax-label small{display:block;font:9px/1.7 var(--mono)}#relax-label strong{font:400 30px/1.4 var(--mono);color:#d4a574}.relaxing .stage-scale{display:none}
@media(max-width:800px){.scenario-guide{padding:16px}.scenario-guide #scenario_selector{grid-template-columns:1fr;gap:7px}.scenario-guide #scenario_selector button{padding:10px 12px}.scenario-guide button strong{margin:0 0 3px}.scenario-guide button span{font-size:11px;margin:0}.scenario-guide button small{font-size:10px}.relaxing #link-callout{display:none}#relax-label{top:110px;right:28px;left:28px;text-align:left}#relax-label strong{font-size:24px}#relax-label small{position:absolute;right:0;bottom:4px;max-width:130px;text-align:right}.relaxing #lattice-viewport{top:185px;bottom:125px}.relaxing #drawing-stage{min-height:660px}}
@media(max-width:600px){#audit_modal{padding:12px}#audit_modal .card{padding:16px;max-height:94vh}#audit_modal .card h2{font-size:13px}#audit_modal .card .sub{font-size:8px;overflow-wrap:anywhere}#audit_modal td,#audit_modal th{font-size:9px;padding:6px 4px;overflow-wrap:anywhere}#audit_modal table{table-layout:fixed}}
.viewer-modes{display:flex;align-items:center;gap:8px;padding:12px 24px;border-bottom:1px solid var(--rule-strong)}.viewer-modes button{font-size:12px;padding:10px 14px}.viewer-modes button[aria-pressed=true]{color:var(--paper);background:var(--cyan);border-color:var(--cyan)}.viewer-modes>span{font-size:10px;color:var(--muted);margin-left:12px}
.response-only{display:none}.response-mode .response-only{display:block}.response-mode .scenario-guide,.response-mode .experiment-bar,.response-mode .experiment-readout,.response-mode .sheet-data,.response-mode #info,.response-mode #scalar-slot,.response-mode .stage-heading,.response-mode .stage-foot,.response-mode #link-callout,.response-mode #relax-meter,.response-mode #relax-label,.response-mode .stage-scale,.response-mode .field-scope,.response-mode #source_tag{display:none!important}
.response-mode .response-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;background:#0f1620;border-bottom:1px solid var(--rule-strong)}.response-intro h2{font:400 21px/1.4 var(--mono);letter-spacing:-.5px}.response-intro p{font:11px/1.8 var(--mono);color:var(--muted);max-width:720px;margin-top:8px}.response-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:230px}.workbench #response-pulse{background:var(--cyan);color:var(--paper);padding:12px;font-size:12px;flex-basis:100%}.response-actions>button{flex:1}.response-mode .sheet-toolbar{justify-content:flex-end}
.response-stage-heading{position:absolute;top:31px;left:32px;right:22px;pointer-events:none}.response-stage-heading strong{font:11px/1.6 var(--mono)}.response-stage-heading p{font:9px/1.8 var(--mono);color:var(--muted);margin-top:7px}.gold-key{color:#d4a574}.blue-key{color:#4dd0e1}.response-stage-foot{position:absolute;bottom:32px;left:32px;right:110px;pointer-events:none}.response-stage-foot strong{font:10px/1.7 var(--mono);font-weight:normal}.response-stage-foot p{font:9px/1.8 var(--mono);color:var(--muted);margin-top:5px}
#response-info{padding:20px 18px;border-left:1px solid var(--rule-strong);max-height:500px;overflow:auto;font:11px/1.6 var(--mono)}#response-info label{display:block;margin:12px 0 6px}#response-info p{font:10px/1.7 var(--mono);color:var(--muted);margin:8px 0}.response-slider{display:flex;align-items:center;gap:14px}.response-slider input{flex:1;width:100px;accent-color:var(--gold)}#response-inertia-value{font-size:24px;color:var(--gold)}.response-ratio{display:flex;align-items:center;gap:14px;padding:12px 0;margin:12px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.response-ratio strong{font-size:27px;font-weight:400}.response-ratio span{font-size:9px;color:var(--muted)}.response-values{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:9px}.response-values dt{color:var(--muted)}.response-values dd{text-align:right}.response-assumptions{margin:18px 0;font-size:10px}.response-assumptions summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.response-plot-panel{border-top:1px solid var(--rule-strong);padding:18px 24px;background:#131a26}.response-plot-title{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 var(--mono);color:var(--muted)}#response-chart{display:block;width:100%;height:180px;margin:12px 0}#response-chart text{font:10px var(--mono);fill:var(--muted)}#response-chart path{fill:none}.response-grid{stroke:var(--rule);stroke-width:.7}#response-reference-path{stroke:#4dd0e1;stroke-width:2;stroke-dasharray:5 4}#response-assumed-path{stroke:#d4a574;stroke-width:2.5}#response-cursor{stroke:var(--ink);stroke-width:1}#response-normal-dot{fill:#4dd0e1}#response-model-dot{fill:#d4a574}.response-plot-panel p{font:10px/1.8 var(--mono);color:var(--muted);max-width:1000px}.sheet-footer a{color:var(--ink)}
@media(max-width:800px){.viewer-modes{padding:12px 16px;flex-wrap:wrap}.viewer-modes>span{margin:4px 0 0;font-size:9px;width:100%}.viewer-modes button{font-size:10px;padding:10px}.response-mode .response-intro{display:block;padding:16px}.response-intro h2{font-size:18px}.response-intro p{font-size:10px}.response-actions{margin-top:16px}.response-mode #response-info{max-height:none;border-left:0;border-top:1px solid var(--rule-strong)}.response-mode #drawing-stage{min-height:550px}.response-mode #lattice-viewport{inset:115px 12px 120px}.response-stage-heading{left:28px;right:28px}.response-stage-heading strong{font-size:10px}.response-stage-heading p{font-size:8px}.response-stage-foot{left:28px;right:100px;bottom:28px}.response-stage-foot strong{font-size:9px}.response-stage-foot p{font-size:8px}.response-plot-panel{padding:16px}.response-plot-title{flex-direction:column;font-size:9px}#response-chart{height:auto;min-height:120px}.response-mode .sheet-toolbar{justify-content:flex-start}}
