.explorer{padding-bottom:40px}.return-link{font-size:14px;text-decoration:underline;text-underline-offset:5px}.explorer-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;padding:38px 0 30px}.explorer-heading h1{font-size:clamp(45px,4.8vw,70px)}.explorer-heading .eyebrow{margin-bottom:15px}.explorer-heading>p{font-size:15px;max-width:380px}.stage{position:relative;background:radial-gradient(ellipse at 50% 40%,#f5f5ef,#e6e9df);height:610px;isolation:isolate;overflow:hidden}.stage-heading{position:absolute;z-index:2;top:22px;left:27px;right:27px;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.09em;color:#5e6d61;pointer-events:none;text-transform:uppercase}.stage canvas{width:100%;height:100%;display:block}.scene-caption{position:absolute;bottom:27px;left:30px;right:30px;pointer-events:none}.scene-caption h2{font-size:34px;letter-spacing:-.035em}.scene-caption p{font-size:14px;line-height:1.6;margin-top:9px;max-width:640px}.load-state{position:absolute;inset:0;background:#e9ece4;display:grid;place-content:center;padding:40px;text-align:center;font-size:14px;z-index:4}[hidden]{display:none!important}.timeline{height:2px;background:#d5dccf}.timeline>span{display:block;height:2px;background:#587253;transform-origin:left;width:100%;transform:scaleX(0)}.playback-row{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#657163;padding:9px 0}.playback-row>div{display:flex;gap:24px}.playback button{border:0;background:none;color:var(--ink);font-size:13px;padding:10px 0;min-height:44px}.playback button:disabled{opacity:.4;cursor:default}.explorer-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:25px;padding-top:27px;border-top:1px solid var(--line)}.explorer-notes .eyebrow{font-size:10px;margin-bottom:13px}.explorer-notes h3{font:27px/1.15 var(--serif)}.explorer-notes p{font-size:14px;margin-top:11px}.explorer-bottom{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.explorer-bottom p{font-size:12px;line-height:1.8}.model-note{font-size:11px;color:#7b8579;margin-top:20px}.fallback-copy{padding:20px;font-size:14px}
/* Caption stays outside the 3D viewport, so it cannot cover a moving part. */
.animation-shell{position:relative;padding-bottom:0}.stage{overflow:visible;margin-bottom:106px}.stage canvas{border-radius:inherit}.scene-caption{bottom:-91px;left:0;right:0;min-height:72px}.stage:has(.load-state:not([hidden])) .scene-caption{visibility:hidden}
@media(max-width:820px){.explorer-heading{display:block;padding:30px 0}.explorer-heading>p{margin-top:16px;max-width:550px}.stage{height:560px}.explorer-notes{gap:25px}}
@media(max-width:540px){.explorer-heading{padding:26px 0 24px}.explorer-heading h1{font-size:45px}.explorer-heading .eyebrow{font-size:10px}.explorer-heading>p{font-size:14px;margin-top:14px}.explorer-heading>p br{display:none}.stage{height:530px;border-radius:10px}.stage-heading{top:16px;left:16px;right:16px;font-size:9px;flex-direction:column;gap:5px}.scene-caption{bottom:19px;left:18px;right:18px}.scene-caption h2{font-size:28px}.scene-caption p{font-size:12px;margin-top:8px}.explorer-notes{grid-template-columns:1fr;gap:22px;margin-top:22px}.explorer-notes .eyebrow{margin-bottom:8px}.explorer-notes p{margin-top:8px}.explorer{padding-bottom:30px}.explorer-bottom{flex-direction:column;align-items:flex-start;gap:17px}.playback-row{font-size:11px}.playback-row>div{gap:22px}.playback button{font-size:12px}}
@media(max-width:540px){.stage{height:430px;margin-bottom:120px}.scene-caption{bottom:-108px;left:0;right:0;min-height:90px}}
.embedded .header,.embedded .explorer-heading,.embedded .explorer-notes,.embedded .explorer-bottom,.embedded .model-note{display:none}.embedded .explorer{width:100%;max-width:none;padding:0}.embedded .stage{height:540px}.embedded{background:transparent}.embedded .scene-caption{padding:0 2px}.embedded .playback-row{padding-left:2px;padding-right:2px}@media(max-width:540px){.embedded .stage{height:430px}}
.stage.unavailable{background:#e9ece4 url('./poster.webp') center/contain no-repeat}.stage.unavailable canvas{visibility:hidden}.stage.unavailable .load-state{background:transparent;display:block;padding:15px;font-size:12px;top:auto;bottom:0}.stage.unavailable .stage-heading{display:none}.explorer-heading>p br:after{content:' '}
.hero-mode,.hero-mode .explorer,.hero-mode .animation-shell{height:100%;margin:0;padding:0;overflow:hidden}
.hero-mode .stage{height:100vh;margin:0;border-radius:0;overflow:hidden;background:radial-gradient(ellipse at 48% 35%,#f5f5ef,#e6e9df)}
.hero-mode .stage-heading,.hero-mode .scene-caption,.hero-mode .timeline,.hero-mode #phase-label,.hero-mode #replay,.hero-mode .fallback-copy{display:none}
.hero-mode .playback{position:absolute;top:8px;right:18px;z-index:5}
.hero-mode .playback-row{padding:0}
.hero-mode .playback button{min-width:48px;color:#536157;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.hero-mode .playback button:focus-visible{outline:2px solid #214238;outline-offset:2px}
.hero-mode .stage.unavailable{background:#e9ece4 url('./poster.webp') center/contain no-repeat}
.cycle-dissolve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
