.detail-scroll{scroll-behavior:smooth}
.detail-hero{min-height:100svh;padding:12svh 7cqw 10svh;display:flex;flex-direction:column;align-items:center;gap:8px}
.detail-nav{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:14px;font:11px Demoness,Arial,sans-serif;letter-spacing:.13em;position:relative;z-index:2}
.detail-nav a{color:#e5e4ec;text-decoration:none;text-shadow:0 1px 6px #000}.colors{display:flex;gap:20px}.colors a[aria-current=true]{border-bottom:1px solid #e5e4ec;padding-bottom:5px}
.viewer{--media-height:clamp(300px,54svh,650px);position:relative;width:min(100%,calc(var(--media-height)*.75));aspect-ratio:3/4;flex:none;touch-action:pan-y}
.viewer>.fallback,.viewer>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;object-fit:contain}
.viewer>canvas{touch-action:none}.viewer>.fallback{pointer-events:none}.viewer>.motion-canvas:not(.transition-canvas){z-index:1}.viewer>.motion-canvas{opacity:0;cursor:grab}.viewer>.motion-canvas:active{cursor:grabbing}.viewer.loaded>.fallback{visibility:hidden}.viewer.loaded>.motion-canvas:not(.transition-canvas){opacity:1}
.motion-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;clip-path:inset(100%);bottom:0;left:0}
.viewer>.transition-canvas{opacity:0;visibility:hidden;pointer-events:none;z-index:2}
.viewer.transform-mode>.motion-canvas:not(.transition-canvas),.viewer.transform-mode>.fallback{visibility:hidden}
.viewer.transform-mode>.transition-canvas{opacity:1;visibility:visible}
.viewer>.robot-canvas{z-index:3;opacity:0;pointer-events:none;transition:opacity .36s ease;touch-action:none}
.viewer:not([data-state=robot])>.robot-canvas,.viewer>.robot-canvas[hidden]{display:none!important}
.viewer.robot-mode>.robot-canvas{opacity:1;pointer-events:auto}
.viewer.robot-mode>.transition-canvas{opacity:0;visibility:visible;transition:opacity .36s ease;pointer-events:none}
.view-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;width:min(100%,360px);margin:0;text-align:center}
.view-controls button{border:0;border-bottom:1px solid transparent;padding:7px 2px;background:none;color:#a3a6b1;font:10px Demoness,Arial,sans-serif;letter-spacing:.16em}.view-controls button:first-child{justify-self:start}.view-controls button:last-child{justify-self:end}.view-controls button[aria-pressed=true]{color:#fff;border-bottom-color:#fff}
.rotate-hint{font:9px Demoness,Arial,sans-serif;letter-spacing:.12em;color:#bbbcc8;text-shadow:0 1px 4px #000;white-space:nowrap}
.transform-controls{display:flex;justify-content:center;gap:28px;margin:0}.transform-controls button{font:12px Demoness,Arial,sans-serif;border:0;background:none;color:#eee;padding:7px}.transform-controls button:disabled,.model-controls button:disabled{opacity:.4}
.detail-title{width:100%;text-align:center;color:#fff;text-shadow:0 2px 10px #000;margin:12px 0 0}.detail-title h1{font:400 clamp(18px,1.7cqw,32px)/1.2 Demoness,Arial,sans-serif;margin:0;text-align:center}.detail-title p{font:10px Demoness,Arial,sans-serif;letter-spacing:.14em;margin:12px 0 0;text-align:center}
.gallery{width:min(100%,1200px);margin-inline:auto;padding:3svh 5cqw 16svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4cqw}
.gallery figure{margin:0;min-width:0;display:flex;flex-direction:column;align-items:center}.gallery figure>img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain}.gallery figcaption{width:100%;text-align:center;color:#ddd;font:10px Demoness,Arial,sans-serif;letter-spacing:.18em;margin-top:12px}
.gallery .model-photo{grid-column:1/-1;width:min(100%,600px);justify-self:center}.model-motion{grid-column:1/-1;display:grid;justify-items:center;width:100%}.model-viewer{--media-height:clamp(380px,70svh,780px)}.model-controls{display:flex;justify-content:center;align-items:center;gap:28px;color:#eee;font:12px Demoness,Arial,sans-serif}.model-controls button{background:none;border:0;color:inherit;font:inherit;padding:10px}
button,a,input,select,textarea{font-family:Demoness,Arial,sans-serif}a:focus-visible,button:focus-visible{outline:1px solid #ddd;outline-offset:5px}
@media(max-width:700px){.detail-hero{padding:15svh 4cqw 12svh}.detail-nav{font-size:9px;margin-bottom:8px}.colors{gap:12px}.viewer{--media-height:55svh}.model-viewer{--media-height:68svh}.view-controls{gap:12px}.rotate-hint{font-size:8px}.gallery{padding:3svh 3cqw 15svh;gap:4cqw}.detail-title h1{font-size:20px}.detail-title p{font-size:9px}.model-controls{gap:18px;font-size:10px}}

/* The three existing chrome recesses are the controls, without extra button plates. */
.frame-controls{position:absolute;inset:0;z-index:12;pointer-events:none}
.frame-key{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);width:8%;height:6.8%;padding:0;border:0;border-radius:50%;background:transparent;color:#d9def8;text-decoration:none;font:400 clamp(6px,.64cqw,13px)/1 Demoness,Arial,sans-serif;letter-spacing:.02em;text-shadow:0 1px 3px #000,0 0 7px #8098ff;pointer-events:auto;cursor:pointer;transition:color .15s,text-shadow .15s}
.frame-color{left:41.4%;top:94.8%}.frame-transform{left:49.8%;top:96.2%;font-size:clamp(5px,.56cqw,11px)}.frame-back{left:58.3%;top:94.8%}
.frame-key:hover,.frame-key:focus-visible{color:#fff;text-shadow:0 0 5px #bdc8ff,0 0 11px #718dff;outline:0}.frame-key:focus-visible{box-shadow:inset 0 0 0 1px #a5b9f8}.frame-key:active{filter:brightness(1.5)}.frame-key:disabled{color:#a6abc4;opacity:.6;cursor:wait}.frame-transform[aria-pressed=true]{color:#fff}
.detail-hero{padding-top:16svh}.detail-title{margin-top:12px}
