/* Hero-only 3D volumes. The homepage does not load this file.
   Every object shares the homepage's shallow camera and green satin materials. */
.hero-series{transform:none}
.hero-series:before,.hero-series .orbit-b,.hero-series .float-label{animation:none}
.h3d-stage{position:absolute;inset:0;pointer-events:none}
.h3d-world{position:absolute;left:50%;top:52%;width:360px;height:330px;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateY(clamp(-1.5deg,var(--scene-y,0deg),1.5deg)) rotateX(calc(53deg + clamp(-1.5deg,var(--scene-x,0deg),1.5deg))) rotateZ(-35deg);transition:transform .8s cubic-bezier(.22,1,.36,1)}
.h3d-object,.h3d-contact{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);transform:translateZ(var(--z)) rotateZ(var(--angle,0deg));transform-style:preserve-3d}
.h3d-object{border-radius:var(--radius);--top-start:#d3efdf;--top-end:#118d62}
.h3d-skin,.h3d-top{position:absolute;inset:0;border-radius:inherit;backface-visibility:hidden}
.h3d-skin{display:block;background:var(--slice-color);transform:translateZ(calc(var(--slice)*var(--thickness)/6));border:1px solid #0c684840}
.h3d-skin:first-child{inset:1px}
.h3d-top{background:linear-gradient(135deg,var(--top-start),var(--top-end));border:1px solid #3f9b70;transform:translateZ(var(--thickness));overflow:hidden;display:grid;place-items:center;color:#0c4e38}
.h3d-top:before{content:'';position:absolute;inset:1px;border:1px solid #e6f5ee70;border-radius:inherit;pointer-events:none}
.h3d-inset{position:absolute;inset:8px;border:1px solid #e6f5ee80;border-radius:calc(var(--radius) - 4px);pointer-events:none}
.h3d-mint{--top-start:#f7fff9;--top-end:#b6e4ca}.h3d-dark{--top-start:#458d63;--top-end:#0b3b27}.h3d-metal{--top-start:#83b89b;--top-end:#0d714e}
.h3d-contact{border-radius:var(--shadow-radius,18px);background:#0b2d1f;opacity:var(--shadow-opacity);filter:blur(var(--blur));transform:translateZ(var(--z)) rotateZ(var(--angle,0deg));pointer-events:none}
.h3d-glyph{width:48%;height:48%;max-height:60px;stroke:#0d714e;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;position:relative;z-index:1;background:#e6f5ee;border:1px solid #76b991;border-radius:10px;padding:8px;box-shadow:-2px 3px 0 #0d714e30}
.h3d-seal .h3d-glyph{border:0;background:transparent;padding:0;box-shadow:none}
.h3d-board-label{position:absolute;left:16px;bottom:12px;font-size:12px;line-height:16px;letter-spacing:.06em;color:#e6f5ee;font-weight:400}
.h3d-plate-caption{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:12px;line-height:16px;letter-spacing:.02em;color:#0c4e38;font-weight:600}
.h3d-leds{position:absolute;right:10px;bottom:10px;display:flex;gap:4px}.h3d-leds i{width:3px;height:3px;background:#e6f5ee;border-radius:50%;box-shadow:0 0 4px #e6f5ee50}
.h3d-circuit{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#0d714e50;stroke-width:1.3}
.h3d-floor-routes{position:absolute;inset:0;width:360px;height:330px;transform:translateZ(-8px);fill:none;stroke:#29ae87;stroke-width:1.8;stroke-dasharray:8 20;animation:h3d-flow 6s linear infinite;animation-play-state:paused}
.h3d-slot-line{position:absolute;inset:7px;border:1px solid #118d6240;border-radius:3px}
.h3d-resource-lines{position:absolute;inset:10px;display:grid;gap:8px}.h3d-resource-lines i{border-radius:2px;background:#118d6230;height:3px;align-self:center}
.h3d-plan-copy{position:absolute;inset:14px 11px;display:flex;flex-direction:column;gap:8px;text-align:left}
.h3d-plan-copy small{font-size:12px;line-height:16px;letter-spacing:0;font-weight:400;white-space:nowrap}.h3d-plan-copy strong{font-size:16px;line-height:20px;letter-spacing:-.02em;font-weight:600;white-space:nowrap}.h3d-plan-copy span{display:block;width:90%;height:3px;background:#118d6266;border-radius:3px}.h3d-plan-copy span:nth-of-type(2){width:65%}.h3d-plan-copy b{font-size:16px;line-height:20px;color:#0d714e}
.h3d-voucher .h3d-skin,.h3d-voucher .h3d-top{mask:radial-gradient(circle at 0 50%,transparent 8px,#000 8.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 8px,#000 8.5px) right/51% 100% no-repeat}
.h3d-voucher-copy{position:absolute;inset:24px 22px;display:flex;flex-direction:column;gap:12px;text-align:left;align-items:flex-start}.h3d-voucher-copy strong{font-size:24px;line-height:28px;font-weight:600;letter-spacing:-.025em}.h3d-voucher-copy small{font-size:12px;line-height:16px;letter-spacing:.02em;white-space:nowrap}.h3d-voucher-copy span{height:4px;width:100px;border-radius:4px;background:#118d6260}.h3d-perforation{position:absolute;inset:10px 38px 10px auto;border-left:1px dashed #118d6266}
/* One controlled physical assembly, then a stable rest state. */
.hero-series[data-entered=true] .h3d-object{animation:h3d-assemble 1s cubic-bezier(.22,1,.36,1) calc(var(--order)*70ms) 1 both;animation-play-state:paused}
.hero-series[data-motion-active=true] .h3d-object,.hero-series[data-motion-active=true] .h3d-floor-routes{animation-play-state:running}
@keyframes h3d-assemble{from{translate:0 0 14px}to{translate:0 0 0}}
@keyframes h3d-flow{to{stroke-dashoffset:-56}}
@media(min-width:1500px){.h3d-world{scale:1.08}}
@media(max-width:900px){.h3d-world{scale:.94}}
@media(max-width:600px){.h3d-world{scale:.92;top:52%}}
@media(prefers-reduced-motion:reduce){.hero-series .h3d-object,.hero-series .h3d-floor-routes{animation:none!important;translate:none!important}.hero-series .h3d-world{transition:none!important}}
