/* 3D presentation surfaces; the original editorial typography remains intact. */
.model-viewport{position:relative;isolation:isolate;min-width:0;overflow:hidden}
.three-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab;outline-offset:-3px!important}
.three-canvas.is-dragging{cursor:grabbing}
.model-info{position:absolute;left:22px;right:22px;top:20px;display:flex;justify-content:space-between;align-items:center;gap:15px;pointer-events:none;z-index:2;font-size:9px;letter-spacing:.12em;color:var(--brass)}
.model-instruction{color:var(--muted);letter-spacing:.03em;font-size:10px}
.model-toolbar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:3px;padding:4px 8px;border:1px solid #c6b68730;background:#171a15ec;border-radius:4px;z-index:5;white-space:nowrap}
.model-toolbar button{height:32px;min-width:32px;padding:3px 9px;border-radius:2px;font-size:21px;color:#d8d8c8}
.model-toolbar button:hover{background:#d9a44122;color:var(--brass)}
.model-toolbar button[data-3d-action="section"]{font-size:11px;letter-spacing:.04em;border-left:1px solid #c6b68730;margin-left:5px;border-radius:0;padding:0 12px}
.model-toolbar button[aria-pressed="true"]{color:var(--brass)}
.zoom-value{min-width:42px;text-align:center;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--muted)}
.toolbar-rule{height:14px;width:1px;background:#c6b68730;margin:0 5px}
.model-viewport[data-render-mode="unavailable"] .three-status{padding:30px;max-width:440px;font-size:14px;line-height:1.6;text-transform:none;letter-spacing:0}
.model-viewport[data-render-mode="unavailable"] .model-instruction{display:none}
.hero-copy{top:24%;pointer-events:none}
.hero h1{font-size:clamp(5rem,8.5vw,10.2rem)}
.hero-engine{width:67%;height:66vh;right:-2.5%;bottom:calc(var(--rail-h) + 50px)}
.hero-engine .model-viewport{height:100%;width:100%}
.hero-engine figcaption{display:none}
.hero-engine .model-info{left:28%;right:12%;top:8%}
.hero-engine .model-toolbar{left:57%;bottom:5px}
.hero-engine .model-instruction{font-size:10px}
.hero-subtitle{max-width:355px;font-size:clamp(1rem,1.2vw,1.4rem)}
.hero-year{top:14%;right:3%;color:#b99c550b}
.hero:after{content:"";position:absolute;width:45vw;height:45vw;border-radius:50%;border:1px solid #d9a4410d;right:3%;top:13%;z-index:-1}
.hero-bottom{bottom:calc(var(--rail-h) + 25px)}
.hero-edition{font-size:9px}
.hero-engine .model-viewport:before{content:"";position:absolute;inset:14% 5% 8% 12%;border-radius:50%;background:radial-gradient(ellipse,#b1904021,transparent 66%);z-index:-1}
.piston-figure{align-self:center;width:100%}
#piston-3d{height:38vh;min-height:270px;width:100%;overflow:visible}
.piston-figure figcaption{margin-top:12px}
.context-layout{grid-template-columns:36% 64%;margin-top:4vh}
.context-copy{min-height:300px}
.mechanism-layout{grid-template-columns:26% 74%;margin-top:0}
#cutaway-locomotive{height:49vh;min-height:310px;overflow:visible}
.cutaway-art .model-info{left:0;right:0;top:6px}
.cutaway-art .model-toolbar{bottom:0}
.cutaway-art:before{content:"";position:absolute;inset:8% 5% 10%;background:radial-gradient(ellipse,#ba8a3020,transparent 65%);z-index:-1}
.mechanism-labels{z-index:2;pointer-events:none}
.mechanism-scene .section-heading h2{font-size:clamp(3.4rem,5.2vw,6.2rem)}
.static-motion #piston-3d,.static-motion #cutaway-locomotive{height:420px}
.static-motion .model-toolbar{display:flex}
@media(min-width:1600px){.hero-engine{height:67vh;bottom:calc(var(--rail-h) + 65px)}.hero-engine .model-info{top:6%}.hero-bottom{bottom:calc(var(--rail-h) + 48px)}.model-info{font-size:11px}.model-instruction{font-size:12px}.model-toolbar button{height:38px;min-width:36px}.model-toolbar{padding:5px 10px}.model-toolbar button[data-3d-action="section"]{font-size:12px}.zoom-value{font-size:12px}#cutaway-locomotive{height:51vh}.context-layout{margin-top:6vh}#piston-3d{height:40vh}}
@media(max-height:780px) and (min-width:801px){.hero-engine{height:67vh;bottom:calc(var(--rail-h) + 47px)}.hero-copy{top:24%}.hero h1{margin-top:24px;margin-bottom:25px}.hero-engine .model-info{top:3%}.context-layout{margin-top:2vh}#piston-3d{height:37vh;min-height:270px}.context-copy{min-height:265px}#cutaway-locomotive{height:46vh;min-height:320px}.mechanism-layout{margin-top:0}.mechanism-labels{min-height:245px}}
@media(max-width:800px){.hero{min-height:760px}.hero-copy{top:18%}.hero h1{font-size:clamp(4.1rem,11.9vw,7rem)}.hero-subtitle{font-size:14px;max-width:310px}.hero-engine{width:112%;height:43vh;min-height:320px;right:-6%;bottom:calc(var(--rail-h) + 77px)}.hero-engine .model-info{left:11%;right:11%;top:15px}.hero-engine .model-toolbar{left:50%;bottom:0}.hero-engine .model-instruction{font-size:9px}.hero-bottom{bottom:calc(var(--rail-h) + 22px)}.hero-year{top:42%;font-size:40vw}.hero:after{width:80vw;height:80vw;top:42%;right:-20%}.model-info{font-size:8px;left:0;right:0;top:0}.model-instruction{font-size:9px}.model-toolbar{padding:3px 6px;gap:0;bottom:0}.model-toolbar button{height:30px;min-width:30px;font-size:20px;padding:2px 7px}.model-toolbar button[data-3d-action="section"]{font-size:10px;padding:0 8px}.zoom-value{font-size:9px;min-width:35px}.toolbar-rule{margin:0 4px}.context-layout{display:flex;margin-top:16px;gap:20px}#piston-3d{height:230px;min-height:230px}.piston-figure{max-width:none}.context-copy{min-height:215px}.context-step h3{font-size:20px}.context-step>p:last-child{font-size:14px}.large-year{font-size:49px}.mechanism-layout{gap:22px;margin-top:13px}.mechanism-scene .section-heading h2{font-size:clamp(2.5rem,8.4vw,4rem)}#cutaway-locomotive{height:270px;min-height:270px;overflow:visible}.cutaway-art .model-info{top:0}.mechanism-labels{min-height:150px}.mechanism-step h3{font-size:33px}.mechanism-step p{font-size:14px;margin-top:10px}.part-number{margin-bottom:8px}.static-motion #piston-3d,.static-motion #cutaway-locomotive{height:300px}.model-viewport[data-render-mode="unavailable"] .three-status{padding:25px 5px;font-size:12px}}
@media(max-width:800px) and (max-height:740px){.hero-engine{height:300px;min-height:300px;bottom:calc(var(--rail-h) + 67px)}.hero-copy{top:16%}.hero h1{font-size:11.7vw}.hero-subtitle{font-size:13px}.hero{min-height:760px}}
@media(max-width:800px){.hero-engine{top:46%;bottom:auto;height:35%;min-height:0}.hero-engine .model-info{top:8px}}
@media(max-width:800px) and (max-height:740px){.hero{min-height:820px}}
@media print{.model-toolbar,.model-info{display:none}.hero-engine{display:none!important}}
