:root{--ink:#16374b;--muted:#647887;--line:#d6e0e6;--blue:#1d516b;--gold:#b38b50;--paper:#f4f7f8;--white:#fff}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,select,input{font:inherit;color:inherit}button,a,summary,input,select{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:1px solid var(--line);border-radius:6px;background:white;padding:10px 14px;min-height:44px;font-size:14px;transition:background .18s,color .18s}button:hover{background:#e9f0f4}button.active,button[aria-pressed=true]{color:white;background:var(--ink);border-color:var(--ink)}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:2px}[hidden]{display:none!important}header{padding:20px max(24px,4vw);display:flex;align-items:center;gap:32px;background:var(--ink);color:white;border-bottom:2px solid #c2a373}.brand{text-decoration:none;line-height:1.2}.brand strong{display:block;font-size:23px;letter-spacing:3px}.brand span{font-size:12px;letter-spacing:4px;color:#b5c9d5}.projectType{margin-left:auto;font-size:12px;letter-spacing:1.5px;color:#bfd0db}.pdfLink{text-decoration:none;border-left:1px solid #527080;padding-left:26px;font-size:14px}.pdfLink span{margin-left:8px;color:#dcc6a1}main{max-width:1680px;margin:auto;padding:28px 4% 30px}.intro{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}.eyebrow,.controlKicker{font-size:12px;font-weight:600;letter-spacing:1.5px;margin:0;color:#687f8e}.intro h1{font-size:40px;line-height:1.15;font-weight:500;letter-spacing:-1.4px;margin:8px 0}.intro p:last-child{color:var(--muted);margin:8px 0 0}.introMeta{padding-left:26px;border-left:1px solid var(--line);min-width:220px}.introMeta span,.introMeta small{display:block;color:var(--muted);font-size:13px}.introMeta b{display:block;font-size:24px;font-weight:500;margin:2px 0 4px}.journey{display:flex;align-items:center;border-bottom:1px solid var(--line);margin-bottom:18px;overflow:auto;gap:20px;scrollbar-width:thin}.journey button{white-space:nowrap;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);padding:12px 3px;font-size:14px}.journey button span{font-size:12px;color:var(--gold);margin-right:6px}.journey button.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.documentNav{display:none;gap:8px;margin:14px 0;overflow:auto}.documentNav button{white-space:nowrap}.documentNav.visible{display:flex}.tab{display:none}.tab.active{display:block}.workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.workspace>aside{display:none}.technicalOpen .workspace{grid-template-columns:280px minmax(0,1fr)}.technicalOpen .workspace>aside{display:block}.viewport{min-width:0;background:white;border:1px solid #ccd9e1;border-radius:12px;box-shadow:0 12px 35px #15354d0c;overflow:visible;position:relative}.viewerBar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;background:white;position:relative;z-index:6}.modeControl{display:flex;gap:3px;background:#eef3f6;border-radius:7px;padding:4px;overflow:auto;scrollbar-width:none}.modeControl button{border:0;background:transparent;white-space:nowrap;padding:8px 14px;font-size:14px;min-height:40px}.modeControl button.active{background:var(--ink);box-shadow:0 2px 5px #17374b21}.menuGroup{display:flex;gap:8px}.viewerMenu{position:relative}.viewerMenu summary{font-size:14px;min-width:95px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:6px;list-style:none}.viewerMenu summary::-webkit-details-marker{display:none}.viewerMenu[open] summary{background:#edf3f6}.menuBody{position:absolute;right:0;top:calc(100% + 8px);width:244px;max-height:65vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;box-shadow:0 12px 40px #17374b29;display:grid;gap:3px}.menuBody button{text-align:left;border:0}.menuBody label{font-size:14px;margin:8px;padding:7px 0;border-top:1px solid var(--line)}select{width:100%;margin-top:6px;padding:10px 8px;border:1px solid #bfced8;border-radius:5px;background:white;font-size:14px}.canvasStage{display:flex;min-height:530px;height:clamp(530px,64vh,840px);background:radial-gradient(ellipse at 48% 45%,#fff 0%,#edf2f5 62%,#dce5eb 100%)}.renderSurface{position:relative;min-width:0;flex:1;height:100%;overflow:hidden}canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}#depthScene{z-index:0;pointer-events:none}#scene{z-index:1}.modelBadge{position:absolute;top:20px;left:24px;z-index:2;pointer-events:none}.modelBadge span{font-size:12px;letter-spacing:1.8px;font-weight:600;display:block;color:#526e80}.modelBadge small{font-size:12px;display:block;margin-top:3px;color:#7b8e9b}.gestureHint{position:absolute;bottom:17px;left:24px;font-size:12px;color:#698394;z-index:2;pointer-events:none}.gestureHint span{margin:0 7px}.navigationDock{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 16px;background:white}.navigationDock button{font-size:14px}.homeButton{border:0;background:#eaf1f5;white-space:nowrap}.homeButton span{font-size:20px;vertical-align:-1px;margin-right:6px}.navActions{display:flex;gap:5px}.navActions button{border-color:transparent}.navActions button:hover{border-color:var(--line)}#quickPlus,#quickMinus{font-size:23px;line-height:1;min-width:44px}.viewerFootnote{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:10px 20px 14px;border-radius:0 0 12px 12px;color:var(--muted);background:white}.viewerFootnote p{font-size:12px;line-height:1.5;max-width:930px;margin:0}.viewerFootnote>span{font-size:11px;letter-spacing:1px;white-space:nowrap;color:#927442}.componentCard{position:absolute;z-index:4;right:20px;top:20px;background:#ffffffed;border:1px solid #c5d3dd;border-left:3px solid var(--gold);border-radius:8px;width:280px;padding:18px;box-shadow:0 8px 22px #25485e16;backdrop-filter:blur(10px)}.componentCard h2{font-size:18px;font-weight:600;line-height:1.25;margin:8px 0}.componentCard p{font-size:14px;color:#5c7383;line-height:1.55;margin:0}.componentCard .eyebrow{font-size:11px;padding-right:20px}.componentCard>button{position:absolute;right:4px;top:4px;border:0;background:transparent;font-size:22px;padding:4px;min-width:34px;min-height:34px}.beforePanel{width:36%;flex-shrink:0;background:#f8fafb;padding:18px;border-right:1px solid var(--line);display:flex;flex-direction:column}.photoHeading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.photoHeading b{font-size:14px;font-weight:600}.photoHeading button{font-size:12px;min-height:36px;padding:6px 10px}.beforePanel img{min-height:0;flex:1;width:100%;object-fit:contain;background:#e5ebef;border-radius:6px}.beforePanel p{font-size:12px;line-height:1.5;margin:10px 0 0;color:var(--muted)}.viewport:fullscreen,.viewport.expandedView{position:fixed;inset:0;width:100%;height:100dvh;border:0;border-radius:0;z-index:1000;display:flex;flex-direction:column;background:white}.viewport:fullscreen .canvasStage,.viewport.expandedView .canvasStage{height:auto;flex:1;min-height:0}.viewport:fullscreen .viewerFootnote,.viewport.expandedView .viewerFootnote{border-radius:0}.noScroll{overflow:hidden}aside{background:white;border:1px solid var(--line);border-radius:8px;padding:20px;max-height:850px;overflow:auto}aside h2{font-size:16px;margin:5px 0 16px}aside label{display:block;font-size:14px;margin:14px 0}aside .check{display:flex;gap:8px;align-items:flex-start}.check input{margin-top:4px;width:17px;height:17px;flex-shrink:0;accent-color:var(--blue)}input[type=range]{width:100%;accent-color:var(--blue)}output{float:right}.modeGrid,.buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.modeGrid button,.buttons button{font-size:13px;padding:8px 6px}.minor,#panelInfo{font-size:13px;color:var(--muted);line-height:1.6}#panelInfo{padding:10px;background:#f0f5f8;border-radius:5px}.assumptions{margin:16px 0;padding:12px 0;border-block:1px solid var(--line)}.assumptions summary{font-size:14px}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.prose{background:white;border:1px solid var(--line);border-radius:10px;padding:30px}.prose h2{font-size:21px;margin:25px 0 12px}.prose h2:first-child{margin-top:0}.prose p{color:#566e7e;max-width:1080px}.prose table{border-collapse:collapse;font-size:14px;width:100%;display:block;overflow:auto}.prose td,.prose th{padding:13px;text-align:left;border-bottom:1px solid var(--line);min-width:125px}.prose th{background:#eff4f7}.sheetbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0}.sheetbar label{font-size:14px;min-width:310px}#drawing,.stairSheet{display:block;width:100%;border:1px solid var(--line);border-radius:6px}.sources{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sources figure{margin:0;background:white;padding:18px;border:1px solid var(--line);border-radius:8px}.sources img{width:100%;height:65vh;object-fit:contain}.sources figcaption{font-size:14px;color:var(--muted);margin-top:12px}.notice{font-size:14px;padding:14px 18px;background:#fff8e9;border-left:3px solid #b68c45;color:#78592c;margin:12px 0}.stairWorkspace{display:grid;grid-template-columns:280px minmax(0,1fr)}.stairWorkspace>aside{display:block}.stairWorkspace .viewport{min-height:630px;overflow:hidden;background:#ecf2f6}.sceneTag{position:absolute;left:20px;top:20px;font-size:12px;pointer-events:none}.sceneTag small{display:block;color:var(--muted);margin-top:5px}#stairCaption{position:absolute;bottom:0;left:0;right:0;padding:14px 20px;background:#fff8e9e8;font-size:13px;color:#7c6038}#stairStats{display:grid;gap:8px;margin:16px 0}.stairMetric{padding:12px;background:#eff4f7;border:1px solid var(--line);border-radius:6px}.stairMetric span{display:block;font-size:12px;color:var(--muted)}.stairMetric b{display:block;font-size:28px;font-weight:500}.stairMetric small,.stairFormula{font-size:12px;color:#88693f}.drawingDetails{margin-top:20px;border:1px solid var(--line);background:white;border-radius:8px}.drawingDetails summary{padding:16px;font-size:14px}footer{display:flex;justify-content:space-between;gap:20px;padding:0 4% 24px;font-size:12px;color:#748795}
@media(min-width:1600px){.canvasStage{height:72vh;max-height:880px}}
@media(max-width:1000px){main{padding:20px 20px 26px}.intro h1{font-size:34px}.viewerBar{gap:8px;padding:10px}.modeControl button{padding:9px;font-size:14px}.menuGroup{gap:5px}.viewerMenu summary{min-width:78px;padding:9px}.navActions button{padding:8px 9px}.technicalOpen .workspace{display:flex;flex-direction:column-reverse}.technicalOpen .workspace>aside{max-height:none}.beforePanel{width:40%}.projectType{display:none}}
@media(max-width:700px){header{padding:15px 16px;gap:18px}.brand strong{font-size:18px;letter-spacing:2.4px}.brand span{font-size:10px;letter-spacing:3px}.pdfLink{margin-left:auto;font-size:13px;padding-left:18px}main{padding:18px 10px 25px}.intro{margin:0 6px 17px}.eyebrow{font-size:10px;letter-spacing:1px}.intro h1{font-size:30px;margin:7px 0}.intro p:last-child{font-size:14px;max-width:290px}.introMeta{display:none}.journey{gap:20px;margin:0 6px 13px}.journey button{font-size:13px}.journey button span{display:none}.viewerBar{flex-wrap:wrap;padding:9px 10px;gap:8px}.modeControl{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.modeControl button{padding:9px 3px;font-size:12px;min-height:43px}.menuGroup{width:100%;justify-content:space-between;gap:8px}.viewerMenu{flex:1}.viewerMenu summary{padding:8px 13px}.viewerMenu .menuBody{left:0;right:auto;width:min(280px,84vw)}.viewerMenu:last-child .menuBody{left:auto;right:0}.canvasStage{height:58svh;min-height:420px;max-height:650px}.modelBadge{left:15px;top:16px}.modelBadge span{font-size:10px;letter-spacing:1px}.modelBadge small{display:none}.gestureHint{left:15px;bottom:14px;font-size:11px}.navigationDock{padding:8px;flex-direction:column;gap:4px}.homeButton{width:100%;min-height:42px}.navActions{width:100%;justify-content:space-between;gap:3px}.navActions button{font-size:13px;min-height:44px;padding:8px}#quickMinus,#quickPlus{font-size:23px}.viewerFootnote{padding:10px 14px}.viewerFootnote p{font-size:11px}.viewerFootnote>span{display:none}.componentCard{top:auto;bottom:15px;left:12px;right:12px;width:auto;padding:15px}.componentCard h2{font-size:17px}.componentCard p{font-size:13px}.componentCard:not([hidden])~.gestureHint{display:none}.compareActive .canvasStage{height:auto;max-height:none;display:block}.beforePanel{width:100%;height:250px;padding:12px;border-right:0;border-bottom:1px solid var(--line)}.photoHeading{margin-bottom:6px}.beforePanel p{margin:6px 0 0;font-size:11px}.compareActive .renderSurface{height:460px}.viewport:fullscreen .canvasStage,.viewport.expandedView .canvasStage{min-height:0;max-height:none}.viewport:fullscreen .viewerFootnote,.viewport.expandedView .viewerFootnote{display:none}.viewport:fullscreen.compareActive .canvasStage,.viewport.expandedView.compareActive .canvasStage{overflow:auto}.viewport:fullscreen .componentCard,.viewport.expandedView .componentCard{bottom:10px}.prose{padding:20px 16px}.prose h2{font-size:19px}.sources{grid-template-columns:1fr}.sources img{height:auto;max-height:75vh}.sheetbar{display:block}.sheetbar label{min-width:0;display:block;margin-bottom:12px}.sheetbar a{font-size:14px}.stairWorkspace{display:flex;flex-direction:column-reverse}.stairWorkspace .viewport{min-height:490px}.stairWorkspace>aside{max-height:none}footer{display:block;font-size:11px;padding:0 16px 20px}footer span{display:block;margin:5px 0}.documentNav button{font-size:13px}}
@media(max-height:560px) and (orientation:landscape){.viewport:fullscreen .viewerBar,.viewport.expandedView .viewerBar{padding:5px 10px;flex-wrap:nowrap}.viewport:fullscreen .modeControl,.viewport.expandedView .modeControl{width:auto;display:flex}.viewport:fullscreen .menuGroup,.viewport.expandedView .menuGroup{width:auto}.viewport:fullscreen .navigationDock,.viewport.expandedView .navigationDock{flex-direction:row;padding:4px 10px}.viewport:fullscreen .homeButton,.viewport.expandedView .homeButton{width:auto}.viewport:fullscreen .navActions,.viewport.expandedView .navActions{width:auto}.viewport:fullscreen .viewerFootnote,.viewport.expandedView .viewerFootnote{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}button{transition:none}}
@media print{header,.intro,.journey,.documentNav,footer,#model,#stairs,#sources,#drawings{display:none!important}#analysis{display:block!important}body{background:white}}

.layerLegend{display:flex;align-items:center;gap:7px;padding:12px 18px;border-top:1px solid var(--line);flex-wrap:wrap;background:#f8fafb}.layerLegend>span{font-size:12px;color:var(--muted);margin-right:5px}.layerLegend button{font-size:13px;min-height:38px;padding:6px 10px;border-left:3px solid #bca071}.layerLegend button[data-layer=membrane]{border-left-color:#568da9}.layerLegend button[data-layer=insulation]{border-left-color:#d7bd70}.layerLegend button[data-layer=gypsum]{border-left-color:#bac5cb}@media(max-width:700px){.modeControl{grid-template-columns:repeat(2,minmax(0,1fr))}.modeControl button{font-size:14px}.viewerFootnote p{font-size:12px}.layerLegend{padding:10px;gap:5px}.layerLegend button{min-height:44px;font-size:14px}.componentCard p{font-size:14px}.componentCard{max-height:55%;overflow:auto}}
