/* Terminus brand sequence — reference: film v9, 104–110 seconds.
   0.0–1.6: photographic field resolves; 0.45–3.1: four optical groups assemble;
   2.65–4.53: eight glyphs resolve; 3.0–4.85: optical-axis light; 5.0+: exact logo hold. */
.mosaic-hero{background:#0b0e14;min-height:680px;height:min(900px,calc(100svh - 121px));isolation:isolate;--hero-mx:0px;--hero-my:0px;--hero-sy:0px}.mosaic-hero:after{display:none}.mosaic-hero .hero-content{position:relative;z-index:3;padding:0 0 42px;transform:translate3d(calc(var(--hero-mx)*-.12),calc(var(--hero-my)*-.12),0)}.mosaic-space{position:absolute;inset:-14% -8%;z-index:-4;perspective:1200px;overflow:hidden;pointer-events:none;transform:translate3d(var(--hero-mx),calc(var(--hero-my) + var(--hero-sy)),0)}.mosaic-underlay{position:absolute;inset:0;background:url('assets/mosaic-photo-field.webp') center/cover;filter:saturate(.65);opacity:.24}.mosaic-plane{position:absolute;inset:0;display:grid;grid-template-columns:repeat(18,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:3px;transform-style:preserve-3d;transform:rotateX(14deg) rotateZ(-11deg) scale(1.18);animation:photo-plane-drift 32s ease-in-out infinite alternate;opacity:.7}.photo-tile{min-width:0;min-height:0;background-image:url('assets/mosaic-photo-field.webp');background-size:1800% 1000%;background-position:var(--bx) var(--by);border:1px solid #c6dbf61c;box-shadow:0 1px 10px #0005;backface-visibility:hidden;filter:saturate(.65);opacity:var(--tile-alpha,.65);position:relative}.photo-tile:after{content:"";position:absolute;inset:0;border:1px solid #cfebff66;background:linear-gradient(135deg,#cae6ff12,transparent 60%);opacity:0;animation:tile-breathe 13s ease-in-out infinite;animation-delay:var(--breathe-delay)}.mosaic-hero.is-animating .photo-tile{animation:tile-register 1.8s cubic-bezier(.16,.78,.24,1) var(--tile-delay) both}.mosaic-shade{position:absolute;z-index:-3;inset:0;background:radial-gradient(ellipse 40% 70% at 50% 45%,#0a0d15f5 0%,#0a0d15e5 35%,#0a0d1575 75%,#0a0d1510),linear-gradient(0deg,#0b0e14 0%,#0b0e1420 26%,#0b0e1420 80%,#0b0e1477);pointer-events:none}.ambient-glow{position:absolute;z-index:-2;pointer-events:none;width:85%;height:145%;top:-60%;border-radius:50%;opacity:.2;filter:blur(55px);mix-blend-mode:screen;transform-origin:50% 0;background:conic-gradient(from 155deg at 50% 0,transparent,#a5c4eb35 20deg,transparent 50deg);animation:ambient-sweep 38s ease-in-out infinite alternate}.ambient-glow-one{left:-40%}.ambient-glow-two{right:-35%;animation-duration:47s;animation-delay:-20s;opacity:.13}.construction-map{position:absolute;left:50%;top:47%;width:min(1120px,96vw);height:auto;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;fill:none;stroke:#b4cae6;opacity:.19;overflow:visible}.construction-static{stroke-width:.4;opacity:.45}.construction-rotor{transform-origin:500px 325px;animation:construction-orbit 50s linear infinite}.construction-arc{stroke-width:1;stroke-dasharray:14 10 8 16 20 32}.construction-ticks{stroke-width:3;stroke-dasharray:.12 1.88;opacity:.5}.construction-inner{transform-origin:500px 325px;animation:construction-orbit 65s linear infinite reverse;stroke-dasharray:2 15 7 32 1 43;stroke-width:.6;opacity:.6}.mosaic-hero.is-animating .construction-map{animation:construction-reveal 4.1s ease both}.logo-stage{position:relative;width:clamp(430px,48vw,680px);aspect-ratio:200/88.98;margin:0 auto;perspective:1000px;transform-style:preserve-3d;color:#fff}.logo-complete{display:block;width:100%;height:100%;object-fit:contain;position:relative;filter:drop-shadow(0 0 18px #c4ddff12)}.logo-assembly{display:none;position:absolute;inset:0;transform-style:preserve-3d}.logo-unit,.logo-tagline,.logo-wordmark{position:absolute;inset:0;transform-style:preserve-3d}.logo-unit svg,.logo-tagline svg,.logo-wordmark svg{display:block;width:100%;height:100%;overflow:visible}.logo-unit path{stroke-width:1}.logo-tagline{clip-path:inset(0 0 89% 0)}.logo-wordmark{overflow:visible}.mosaic-hero.is-animating .logo-assembly{display:block}.mosaic-hero.is-animating .logo-complete{animation:logo-master-handoff 5s linear both}.mosaic-hero.is-animating .logo-unit{animation:optical-assemble 2.85s cubic-bezier(.18,.72,.18,1) var(--unit-delay) both}.logo-unit-1{--entry-x:-160px;--entry-y:8px;--entry-z:160px;--entry-ry:-48deg;--entry-rz:-6deg;--unit-delay:.45s}.logo-unit-2{--entry-x:-65px;--entry-y:-10px;--entry-z:-130px;--entry-ry:36deg;--entry-rz:3deg;--unit-delay:.58s}.logo-unit-3{--entry-x:65px;--entry-y:8px;--entry-z:100px;--entry-ry:-38deg;--entry-rz:-3deg;--unit-delay:.69s}.logo-unit-4{--entry-x:160px;--entry-y:-6px;--entry-z:180px;--entry-ry:48deg;--entry-rz:6deg;--unit-delay:.52s}.mosaic-hero.is-animating .logo-unit path{stroke-dasharray:1;stroke-dashoffset:1;animation:optical-trace 1.95s cubic-bezier(.25,.6,.2,1) calc(var(--unit-delay) + .08s) both}.mosaic-hero.is-animating .logo-tagline{animation:logo-type-resolve 1s cubic-bezier(.2,.8,.25,1) 2.65s both}.wordmark-letter{transform-box:fill-box;transform-origin:50% 100%}.mosaic-hero.is-animating .wordmark-letter{animation:wordmark-letter-in .9s cubic-bezier(.16,.75,.2,1) calc(2.65s + var(--letter-index)*.14s) both}.lens-ray{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;mix-blend-mode:screen}.lens-axis,.lens-pulse{opacity:0}.mosaic-hero.is-animating .lens-axis{animation:lens-axis-appear 1.85s ease 3s both}.mosaic-hero.is-animating .lens-pulse{animation:lens-pulse-travel 1.85s cubic-bezier(.35,.05,.65,.95) 3s both}.mosaic-hero .hero-description{font-size:15px;line-height:2.05;letter-spacing:.12em;color:#d7dce4;margin-top:30px;text-shadow:none}.mosaic-hero .hero-action{font-size:11px;letter-spacing:.06em;gap:28px;margin-top:22px}.mosaic-hero.is-animating .hero-description{animation:hero-copy-resolve 1.1s var(--ease) 1.85s both}.mosaic-hero.is-animating .hero-action{animation:hero-copy-resolve 1.1s var(--ease) 2.15s both}.mosaic-hero .hero-bottom{z-index:4}.mosaic-hero .hero-location{color:#a4adb9;font-size:8px;letter-spacing:.2em}.mosaic-hero .hero-bottom a{color:#c6cfda}.mosaic-hero.is-offscreen *,.mosaic-hero.is-offscreen *:after{animation-play-state:paused!important}.mosaic-hero.is-reduced .mosaic-plane,.mosaic-hero.is-reduced .photo-tile,.mosaic-hero.is-reduced .photo-tile:after,.mosaic-hero.is-reduced .ambient-glow,.mosaic-hero.is-reduced .construction-rotor,.mosaic-hero.is-reduced .construction-inner{animation:none!important}.mosaic-hero.is-reduced .hero-content,.mosaic-hero.is-reduced .mosaic-space{transform:none}
@keyframes optical-assemble{0%{opacity:0;transform:translate3d(var(--entry-x),var(--entry-y),var(--entry-z)) rotateY(var(--entry-ry)) rotateZ(var(--entry-rz));filter:blur(5px)}18%{opacity:.85}70%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate3d(0,0,0) rotateY(0) rotateZ(0);filter:blur(0)}}@keyframes optical-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes logo-type-resolve{from{opacity:0;transform:translateY(6px) scaleX(1.04);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes logo-master-handoff{0%,96%{opacity:0}100%{opacity:1}}@keyframes wordmark-letter-in{0%{opacity:0;transform:translate(0,6px) rotate(-7deg) scale(.94);filter:blur(1.5px)}65%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1);filter:blur(0)}}@keyframes lens-axis-appear{0%,100%{opacity:0}15%{opacity:.45}70%{opacity:.4}90%{opacity:.15}}@keyframes lens-pulse-travel{0%{opacity:0;transform:translateX(-92px)}10%{opacity:1}82%{opacity:1}100%{opacity:0;transform:translateX(100px)}}@keyframes hero-copy-resolve{from{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes construction-reveal{0%{opacity:0;scale:.9}25%{opacity:.3}85%{opacity:.23}100%{opacity:.19;scale:1}}@keyframes construction-orbit{to{transform:rotate(360deg)}}@keyframes tile-register{from{opacity:0;transform:translate3d(var(--tile-x),var(--tile-y),var(--tile-z)) rotateY(var(--tile-turn));filter:blur(3px) saturate(.3)}to{opacity:var(--tile-alpha);transform:none;filter:blur(0) saturate(.65)}}@keyframes photo-plane-drift{0%{transform:rotateX(14deg) rotateZ(-11deg) translate(-1.5%,0) scale(1.18)}100%{transform:rotateX(19deg) rotateZ(-8deg) translate(1.5%,2%) scale(1.24)}}@keyframes tile-breathe{0%,55%,100%{opacity:0}72%{opacity:.65}80%{opacity:.2}}@keyframes ambient-sweep{from{transform:rotate(-18deg)}to{transform:rotate(22deg)}}
@media(max-width:1000px){.mosaic-hero{min-height:620px}.logo-stage{width:clamp(420px,58vw,600px)}.mosaic-shade{background:radial-gradient(ellipse 48% 65% at 50% 45%,#0a0d15f0 15%,#0a0d15ba 55%,#0a0d151a),linear-gradient(0deg,#0b0e14,transparent 35%)}.mosaic-plane{gap:2px}.construction-map{width:115vw}}
@media(max-width:720px){.mosaic-hero{min-height:620px;height:calc(100svh - 104px);max-height:850px}.mosaic-hero .hero-content{padding:0 0 32px}.logo-stage{width:min(118%,490px);margin-left:50%;transform:translateX(-50%)}.mosaic-hero .hero-description{font-size:12px;letter-spacing:.08em;margin-top:34px;line-height:2}.mosaic-hero .hero-action{font-size:10px;margin-top:18px;gap:20px}.mosaic-space{inset:-8% -58%}.mosaic-plane{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr))}.photo-tile{background-size:1200% 1000%}.mosaic-shade{background:radial-gradient(ellipse 68% 56% at 50% 44%,#0a0d15f2 10%,#0a0d15ce 50%,#0a0d1530 100%),linear-gradient(0deg,#0b0e14,transparent 30%)}.construction-map{width:170vw;max-width:none;top:45%;opacity:.15}.logo-unit-1{--entry-x:-95px;--entry-z:90px}.logo-unit-4{--entry-x:95px;--entry-z:110px}.logo-unit-2{--entry-x:-45px;--entry-z:-70px}.logo-unit-3{--entry-x:45px;--entry-z:70px}.mosaic-hero .hero-location{font-size:7px;max-width:140px}.ambient-glow{filter:blur(30px);opacity:.15}.ambient-glow-one{left:-45%}.ambient-glow-two{right:-45%}}
@media(prefers-reduced-motion:reduce){.mosaic-hero *,.mosaic-hero *:after{animation:none!important;transition:none!important}.mosaic-hero .logo-assembly{display:none!important}.mosaic-hero .logo-complete{opacity:1!important}.mosaic-hero .hero-content,.mosaic-hero .mosaic-space{transform:none}.mosaic-hero .hero-description,.mosaic-hero .hero-action{opacity:1;filter:none}}
