:root{color-scheme:dark;--bg:#101b24;--ink:#e6ecec;--muted:#a5b6c0;--line:#b4ccd026;--accent:#ecaa80;--faint:#648091}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button,a,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{border:1px solid var(--line);background:transparent}button:hover{border-color:#e5ad7c80;background:#ecaa800c}button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}[hidden]{display:none!important}.preview-strip{height:34px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;font:9px monospace;letter-spacing:1px;background:#0a1219;color:#91a7b3}.preview-strip a:hover{color:var(--ink)}.site-header{height:86px;margin:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:25px Georgia,serif;display:flex;gap:12px;align-items:center;letter-spacing:-.6px}.brand span{color:var(--accent);margin-left:-8px}.site-header nav{display:flex;align-items:center;gap:34px}.location{font:9px monospace;letter-spacing:1px;color:var(--muted)}.contact{border:1px solid var(--line);padding:12px 18px;font-size:12px}.hero{display:grid;grid-template-columns:minmax(305px,.82fr) minmax(0,1.8fr);gap:20px;padding:0 3vw 0 4vw;min-height:720px;height:calc(100svh - 182px);max-height:1100px}.intro{align-self:center;padding:40px 0;z-index:1}.eyebrow{font:9px monospace;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:0 0 28px;display:flex;gap:10px;align-items:center}.eyebrow:before{content:"";width:20px;height:1px;background:var(--accent)}h1{font:400 clamp(54px,5.15vw,90px)/1.05 Georgia,'Times New Roman',serif;letter-spacing:-.055em;margin:0 0 26px}h1 em{color:var(--accent)}.lede{color:var(--muted);font-size:15px;line-height:1.75;max-width:330px;margin:0 0 28px}.primary{display:inline-flex;justify-content:space-between;gap:25px;align-items:center;padding:16px 20px;background:var(--accent);color:#111d25;font-size:12px;font-weight:700;transition:transform .2s}.primary:hover{transform:translateY(-2px)}.signature{font:9px monospace;color:var(--muted);margin:22px 0 33px}.study-note{display:flex;align-items:flex-start;gap:12px;padding-top:20px;border-top:1px solid var(--line);max-width:330px}.study-note strong{font-weight:400;font-size:12px}.study-note p{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 0}.small-cross{font:22px monospace;color:var(--accent);line-height:22px}.title-block{display:grid;grid-template-columns:1fr .8fr 1.3fr;max-width:330px;border:1px solid var(--line);margin-top:30px}.title-block div{padding:10px;border-right:1px solid var(--line);font:8px monospace;color:var(--muted)}.title-block div:last-child{border:0}.title-block b{font-weight:400;font-size:9px;color:var(--ink);display:block;margin-top:8px}.workbench{position:relative;min-width:0;min-height:0;background-image:linear-gradient(#95b9cf09 1px,transparent 1px),linear-gradient(90deg,#95b9cf09 1px,transparent 1px),radial-gradient(ellipse at 52% 42%,#24465730,transparent 68%);background-size:36px 36px,36px 36px,100% 100%;overflow:hidden}.viewport{position:absolute;inset:24px 0 96px}.viewport canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.viewport canvas:active{cursor:grabbing}.viewport canvas:focus-visible{outline-offset:-5px}.viewport img{position:absolute;inset:0;max-width:100%;height:100%;object-fit:contain;margin:auto;opacity:.22;pointer-events:none}.workbench.ready #poster{display:none}.workbench.loading canvas{opacity:0}.workbench.unavailable canvas{display:none}.workbench.unavailable #poster{opacity:.65}.workbench.unavailable .dock,.workbench.unavailable .orientation,.workbench.unavailable .viewer-hint{display:none}.workbench.unavailable #load-state{background:#101b24ee;max-width:380px;line-height:1.6;padding:22px;color:var(--ink)}#load-state{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:12px/1.5 monospace;text-align:center;color:var(--muted);width:80%}.ready #load-state{display:none}.viewer-heading{display:flex;justify-content:space-between;position:absolute;left:24px;right:24px;top:24px;z-index:2;font:9px monospace;letter-spacing:.1em;color:var(--muted);pointer-events:none}.viewer-heading i{color:var(--accent);font-style:normal;padding:0 10px}.drawing-border{position:absolute;inset:65px 24px 134px;border:1px solid #8faab511;pointer-events:none;z-index:0}.drawing-border span{position:absolute;font:22px monospace;color:#8faab554}.drawing-border span:nth-child(1){top:-13px;left:-7px}.drawing-border span:nth-child(2){top:-13px;right:-7px}.drawing-border span:nth-child(3){bottom:-12px;left:-7px}.drawing-border span:nth-child(4){bottom:-12px;right:-7px}.orientation{position:absolute;top:54px;left:24px;display:flex;z-index:3}.orientation button{padding:7px 10px;font:8px monospace;letter-spacing:.07em;border-color:transparent;color:var(--faint)}.orientation button.active{color:var(--accent);border-bottom:1px solid var(--accent)}.viewer-hint{position:absolute;left:50%;bottom:113px;transform:translateX(-50%);font:10px monospace;color:var(--muted);white-space:nowrap;display:flex;gap:10px;align-items:center;pointer-events:none}.viewer-hint i{font-style:normal;color:#496473}.hint-dot{width:4px;height:4px;background:var(--accent);border-radius:50%}.dock{position:absolute;bottom:19px;left:24px;right:24px;border:1px solid #8faab536;background:#101b24f5;z-index:6;box-shadow:0 12px 35px #0002}.tool-row{display:flex;gap:6px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.tool-row button{font-size:10px;padding:9px 11px;white-space:nowrap}.tool-row .accent{background:var(--accent);color:#16212a;border-color:var(--accent);min-width:77px}.tool-row .reset{margin-left:auto}.tool-row .expand{font-size:17px;padding:4px 9px;height:32px}.slider-row{padding:10px 14px;display:flex;align-items:center;gap:14px;font:8px monospace;letter-spacing:.05em;color:var(--muted)}.slider-row input{accent-color:var(--accent);width:100%;max-width:230px;height:12px;cursor:ew-resize}.slider-row output{min-width:31px;color:var(--accent)}.scale-note{margin-left:auto;white-space:nowrap;font-size:8px;color:#8da2ad}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.label{position:absolute;font:8px monospace;letter-spacing:.03em;color:#bad0da;transform:translate(18px,-50%);background:#101b24b3;padding:5px 7px;border-left:1px solid #ecaa8070;max-width:140px;white-space:nowrap;opacity:.85}.label:before{content:"";position:absolute;left:-14px;top:50%;width:14px;height:1px;background:#ecaa8070}.label.selected{color:var(--accent);border-color:var(--accent);z-index:1}.inspector{position:absolute;right:23px;top:92px;width:250px;background:#12222dee;border:1px solid #ebaa8050;z-index:5;padding:16px;box-shadow:0 8px 30px #0005;backdrop-filter:blur(10px)}.inspector-head{display:flex;justify-content:space-between;align-items:center;font:8px monospace;color:var(--accent);letter-spacing:.07em}.inspector-head button,.parts-heading button{border:0;font:22px/1 monospace;color:var(--muted);padding:0 2px}.inspector h2{font:400 23px/1.1 Georgia,serif;margin:12px 0}.inspector p{font-size:12px;line-height:1.65;color:var(--muted);margin:0 0 12px}.inspector #selected-material{font:8px monospace;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.inspector-actions{display:flex;gap:8px;margin-top:16px}.inspector-actions button{font-size:10px;padding:8px 10px}.parts-panel{position:absolute;top:92px;right:23px;bottom:136px;width:270px;background:#11202cf5;z-index:7;border:1px solid var(--line);padding:16px;display:flex;flex-direction:column;box-shadow:0 8px 30px #0006;backdrop-filter:blur(12px)}.parts-heading{display:flex;align-items:center;justify-content:space-between}.parts-heading h2{font:18px Georgia,serif;margin:0}.parts-panel>p{font-size:11px;color:var(--muted);margin:9px 0 12px}.parts-panel ol{padding:0;margin:0;list-style:none;overflow:auto;flex:1;min-height:0}.parts-panel li{border-top:1px solid var(--line);display:flex;align-items:center}.parts-panel li>button{border:0;font-size:11px;padding:12px 5px;text-align:left;flex:1;line-height:1.3;min-width:0}.parts-panel li>button span{font:8px monospace;color:var(--accent);margin-right:10px}.parts-panel li>button[aria-pressed=true]{color:var(--accent);background:#edaa8012}.parts-panel input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.parts-panel label{padding:9px;display:flex;align-items:center}.restore{margin-top:12px;padding:9px;font-size:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}footer{height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 4vw;border-top:1px solid var(--line);font:8px monospace;letter-spacing:.1em;color:var(--muted)}footer span:first-child{color:var(--accent)}footer i{padding:0 12px;color:#657f8d;font-style:normal}.workbench:fullscreen,.workbench.expanded{position:fixed;inset:0;width:100vw;height:100svh;z-index:100;background-color:var(--bg)}.workbench:fullscreen .viewport,.workbench.expanded .viewport{inset:30px 0 100px}.workbench:fullscreen .dock,.workbench.expanded .dock{max-width:850px;margin:0 auto}.workbench:fullscreen .viewer-hint,.workbench.expanded .viewer-hint{bottom:117px}
@media(min-width:1800px){.hero{max-width:2000px;margin:auto}.intro{padding-right:35px}}
@media(max-width:1200px){.hero{grid-template-columns:310px minmax(0,1fr);gap:5px;padding-right:15px}.tool-row{gap:4px;padding:8px}.tool-row button{padding:9px 7px;font-size:9px}.tool-row .accent{min-width:64px}.scale-note{display:none}.location{display:none}.dock{left:14px;right:14px}.viewer-hint{font-size:9px;gap:7px}.viewer-heading{left:17px;right:17px;font-size:8px}.title-block{max-width:280px}.lede{max-width:280px;font-size:14px}.intro{padding-right:10px}.eyebrow{font-size:8px}.inspector{width:230px;right:15px}}
@media(max-width:900px){.hero{grid-template-columns:260px minmax(0,1fr);min-height:720px}h1{font-size:53px}.tool-row{flex-wrap:wrap}.tool-row .reset{margin-left:0}.tool-row .expand{margin-left:auto}.tool-row button{flex-grow:1}.tool-row .expand{flex-grow:0}.dock{bottom:15px}.viewport{bottom:135px}.viewer-hint{bottom:153px;white-space:normal;width:80%;justify-content:center;font-size:8px;flex-wrap:wrap}.parts-panel{bottom:173px}.drawing-border{bottom:180px}.title-block div{font-size:7px}.title-block b{font-size:8px}.study-note p{font-size:11px}.inspector{top:100px}}
@media(max-width:680px){.preview-strip{padding:0 20px;font-size:8px;letter-spacing:.02em}.preview-strip>a{max-width:170px;text-align:right}.site-header{height:72px;margin:0 22px}.brand{font-size:22px;gap:9px}.brand svg{width:25px}.contact{font-size:11px;padding:10px 13px}.hero{display:flex;flex-direction:column;gap:0;height:auto;max-height:none;min-height:0;padding:0}.intro{padding:34px 25px 24px;align-self:stretch}.eyebrow{font-size:8px;letter-spacing:.04em;margin-bottom:20px}h1{font-size:58px;line-height:1.02;margin-bottom:20px}.lede{max-width:350px;font-size:14px;margin-bottom:20px;line-height:1.65}.primary{padding:15px 18px;font-size:12px}.signature{margin:18px 0 0;font-size:8px}.study-note,.title-block{display:none}.workbench{height:650px;min-height:650px;flex:none;margin:0 8px}.viewer-heading{top:17px;left:14px;right:14px;font-size:8px}.viewport{inset:35px -3px 137px}.orientation{top:40px;left:10px}.orientation button{font-size:7px;padding:7px 9px}.dock{left:8px;right:8px;bottom:13px}.tool-row{gap:5px;padding:9px}.tool-row button{font-size:10px;padding:9px 10px}.tool-row .reset{margin-left:auto;flex-grow:1}.slider-row{font-size:8px;padding:12px;gap:10px}.slider-row input{max-width:none}.viewer-hint{bottom:152px;font-size:8px;width:95%;gap:7px}.drawing-border{inset:65px 15px 182px}.label{font-size:7px;padding:3px 5px;max-width:110px}.inspector{top:87px;right:12px;width:210px;padding:13px}.inspector h2{font-size:21px}.inspector p{font-size:11px}.parts-panel{right:12px;top:85px;bottom:173px;width:250px}.parts-panel li>button{padding:10px 5px}.workbench:fullscreen,.workbench.expanded{margin:0;height:100svh;min-height:0}.workbench:fullscreen .viewport,.workbench.expanded .viewport{bottom:142px}.workbench:fullscreen .viewer-hint,.workbench.expanded .viewer-hint{bottom:157px}.workbench:fullscreen .dock,.workbench.expanded .dock{bottom:12px}footer{margin:0 24px;height:auto;min-height:70px;font-size:8px;gap:20px;padding:20px 0;line-height:1.5}footer span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(max-width:680px){#part-count{font-size:0}#part-count:after{content:attr(data-short);font-size:8px}}

#detail-toggle{display:block;width:100%;padding:10px;margin-top:14px;font-size:12px;border-color:var(--accent);color:var(--accent)}#detail-list{list-style:none;padding:0;margin:10px 0}#detail-list li{border-top:1px solid var(--line)}#detail-list button{width:100%;text-align:left;padding:10px 4px;border:0;font-size:11px;line-height:1.4}#detail-list button[aria-pressed=true]{color:var(--accent);background:#72c9bd15}.detail-label{font-size:10px!important;transform:translate(0,-50%);padding:5px!important;max-width:62px!important}.workbench:is(.detail-open,.isolated-view) .viewport{right:255px;bottom:130px}.workbench:is(.detail-open,.isolated-view) .inspector{width:230px;top:20px;max-height:calc(100% - 160px)}.workbench:is(.detail-open,.isolated-view) .viewer-hint{display:none}@media(max-width:600px){.workbench:is(.detail-open,.isolated-view) .viewport{right:0;bottom:335px}.workbench:is(.detail-open,.isolated-view) .inspector{top:auto;bottom:118px;left:5px;right:5px;width:auto;max-height:200px}.workbench:is(.detail-open,.isolated-view) .inspector>p,.workbench:is(.detail-open,.isolated-view) #selected-material,.workbench:is(.detail-open,.isolated-view) #part-record{display:none}.workbench:is(.detail-open,.isolated-view) .inspector h2{font-size:18px;margin:6px 0}.workbench:is(.detail-open,.isolated-view) #detail-toggle{margin-top:8px}.workbench:is(.detail-open,.isolated-view) #detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}}
