:root {
  color-scheme: dark;
  --bg: #000;
  --panel: #050505;
  --ink: #f2f3f5;
  --muted: #a1a1a1;
  --soft: #737373;
  --line: rgba(255, 255, 255, .16);
  --blue: #e5e5e5;
  --cyan: #f4f4f4;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
  --mono: 'DM Mono', monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 94px; }
body { position: relative; isolation: isolate; margin: 0; overflow-x: hidden; background: var(--bg); color: var(--ink); font: 400 15px/1.6 var(--sans); cursor: url("assets/cursor-rocket.svg") 29 3, auto; }
main { position: relative; z-index: 1; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
a, button, [role="button"] { cursor: pointer; }
input, textarea { cursor: text; }
::selection { color: #000000; background: var(--blue); }

.grain { position: fixed; z-index: 30; inset: 0; pointer-events: none; opacity: .035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); }
.site-cosmos { position: fixed; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; background: radial-gradient(1px 1px at 8% 28%, rgba(255,255,255,.72) 98%, transparent), radial-gradient(1px 1px at 23% 76%, rgba(255,255,255,.56) 98%, transparent), radial-gradient(1.5px 1.5px at 47% 18%, rgba(255,255,255,.74) 98%, transparent), radial-gradient(1px 1px at 82% 62%, rgba(255,255,255,.58) 98%, transparent), radial-gradient(1px 1px at 67% 91%, rgba(255,255,255,.45) 98%, transparent), #000; }
.site-cosmos::before { position: absolute; inset: -20%; background: radial-gradient(ellipse at 76% 30%, rgba(76,91,131,.12), transparent 28%), radial-gradient(ellipse at 22% 78%, rgba(63,47,84,.1), transparent 34%); content: ''; animation: cosmic-haze-drift 52s ease-in-out infinite alternate; }
.ambient-planet { position: absolute; top: 12vh; right: 8vw; width: min(24vw, 310px); aspect-ratio: 1; border: 1px solid rgba(220,230,255,.12); border-radius: 50%; background: radial-gradient(circle at 30% 29%, #697286 0, #3b4355 15%, #1c2230 51%, #090c13 73%); box-shadow: inset -22px -18px 42px rgba(0,0,0,.82), 0 0 65px rgba(111,132,177,.12); opacity: .48; animation: ambient-planet-drift 46s ease-in-out infinite alternate; }
.ambient-planet::before { position: absolute; inset: 28% -23%; border: 1px solid rgba(214,224,246,.23); border-radius: 50%; content: ''; transform: rotate(-19deg); }
.ambient-eclipse { position: absolute; top: 23%; left: 20%; width: 45%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 63% 42%, #000 0 47%, rgba(221,231,255,.35) 51%, transparent 68%); opacity: 0; animation: ambient-eclipse-pass 34s ease-in-out 5s infinite; }
.meteor-flightfield { --meteor-period: 20s; position: fixed; z-index: 2; inset: 0; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.meteor-flightfield i { position: absolute; display: block; width: clamp(145px, 17vw, 250px); height: 22px; opacity: 0; filter: drop-shadow(0 0 5px rgba(177,209,255,.72)); animation-duration: var(--meteor-period); animation-iteration-count: infinite; animation-timing-function: linear; }
.meteor-flightfield i::before { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(168,200,255,.04) 38%, rgba(191,216,255,.46) 82%, #fff 100%); clip-path: polygon(0 50%, 74% 43%, 92% 44%, 100% 50%, 92% 56%, 74% 57%); content: ''; }
.meteor-flightfield i::after { position: absolute; top: 50%; right: 0; width: 4px; height: 4px; border-radius: 50%; background: #fff; box-shadow: 0 0 5px 2px rgba(255,255,255,.95), 0 0 13px 4px rgba(168,204,255,.72); content: ''; transform: translateY(-50%); }
.meteor-flightfield i:nth-child(1) { top: 13%; left: 13%; animation-name: site-meteor-cross; }
.meteor-flightfield i:nth-child(2) { top: 29%; left: 54%; animation-name: site-meteor-reverse; }
.meteor-flightfield i:nth-child(3) { top: 58%; left: 5%; animation-name: site-meteor-cross; }
.meteor-flightfield i:nth-child(4) { top: 72%; left: 72%; width: clamp(120px, 14vw, 205px); animation-name: site-meteor-reverse; }
.meteor-flightfield i:nth-child(5) { top: 42%; left: 26%; width: clamp(130px, 15vw, 225px); animation-name: site-meteor-cross; }
.meteor-flightfield[data-count="0"] i { display: none; }
.meteor-flightfield[data-count="1"] i:nth-child(n+2), .meteor-flightfield[data-count="2"] i:nth-child(n+3), .meteor-flightfield[data-count="3"] i:nth-child(n+4), .meteor-flightfield[data-count="4"] i:nth-child(n+5) { display: none; }
@keyframes ambient-planet-drift { from { transform: translate3d(0,0,0) rotate(-8deg); } to { transform: translate3d(-3vw,3vh,0) rotate(9deg); } }
@keyframes ambient-eclipse-pass { 0%,14%,100% { transform: translate3d(135%,-52%,0) scale(.62); opacity: 0; } 25% { opacity: .95; } 58% { transform: translate3d(-12%,56%,0) scale(1); opacity: .95; } 76% { transform: translate3d(-165%,160%,0) scale(.7); opacity: 0; } }
@keyframes site-meteor-cross { 0%,8% { transform: translate3d(-22vw,-18vh,0) rotate(36deg); opacity: 0; } 10% { opacity: 1; } 16% { transform: translate3d(92vw,100vh,0) rotate(36deg); opacity: .98; } 21%,100% { transform: translate3d(92vw,100vh,0) rotate(36deg); opacity: 0; } }
@keyframes site-meteor-reverse { 0%,8% { transform: translate3d(22vw,-18vh,0) rotate(144deg); opacity: 0; } 10% { opacity: 1; } 16% { transform: translate3d(-92vw,100vh,0) rotate(144deg); opacity: .98; } 21%,100% { transform: translate3d(-92vw,100vh,0) rotate(144deg); opacity: 0; } }
@keyframes cosmic-haze-drift { from { transform: translate3d(-1%,0,0) scale(1); } to { transform: translate3d(1%,2%,0) scale(1.06); } }
.site-header { position: absolute; z-index: 20; top: 0; left: 0; display: flex; width: 100%; height: 88px; align-items: center; justify-content: space-between; padding: 0 6vw; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand { display: inline-flex; align-items: center; }
.brand-logo { display: block; width: 82px; height: 54px; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 42px); color: #e0e3ed; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.main-nav a { transition: color .2s ease; }
.main-nav a:hover, .footer-links a:hover { color: var(--blue); }
.nav-contact { padding: 10px 15px; border: 1px solid var(--line); }
.nav-contact span { padding-left: 7px; color: var(--blue); }
.menu-toggle { display: none; }

.hero { position: relative; display: flex; min-height: 740px; height: min(980px, 100svh); align-items: center; overflow: hidden; padding: 130px 12vw 190px; isolation: isolate; background: transparent; }
.hero-background, .hero-video-wash, #starfield { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-background { z-index: -3; object-fit: cover; filter: grayscale(1) contrast(1.12); opacity: .66; }
.hero-video-wash { z-index: -2; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.88) 30%, rgba(0,0,0,.48) 58%, rgba(0,0,0,.14) 100%), linear-gradient(0deg, #000 0%, rgba(0,0,0,.65) 13%, transparent 63%, rgba(0,0,0,.55) 100%); pointer-events: none; }
#starfield { z-index: -1; pointer-events: none; }
.orbit { position: absolute; z-index: -1; border: 1px solid rgba(230,230,230,.17); border-radius: 50%; pointer-events: none; }
.orbit::before { position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; margin: -3px; border-radius: 50%; background: #fff; box-shadow: 0 0 9px 2px rgba(255,255,255,.62); content: ''; animation: orbit-satellite 24s linear infinite; }
.orbit-one { --satellite-radius: min(32vw, 460px); top: 15%; right: -6%; width: min(69vw, 1000px); height: min(34vw, 475px); transform: rotate(-19deg); animation: orbit-drift-one 32s ease-in-out infinite alternate; }
.orbit-two { --satellite-radius: min(23vw, 330px); top: 27%; right: 7%; width: min(51vw, 720px); height: min(25vw, 350px); transform: rotate(26deg); border-color: rgba(245,245,245,.14); animation: orbit-drift-two 42s ease-in-out infinite alternate; }
.hero-copy { position: relative; z-index: 3; width: min(630px, 58%); }
.eyebrow, .section-kicker, .hero-index, .control-label, .control-hint, .scroll-cue, .gallery-item figcaption, .works-intro, .work-titles, .contact-coordinate, .footer-copy, .footer-links { font-family: var(--mono); letter-spacing: .12em; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #d0d5e2; font-size: 10px; }
.status-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 10px rgba(245,245,245,.9); }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { margin: 27px 0 22px; font-size: clamp(62px, 8vw, 112px); font-weight: 500; line-height: .91; letter-spacing: -.075em; }
.hero h1 em, h2 em { color: var(--blue); font-family: var(--serif); font-weight: 500; letter-spacing: -.055em; }
.hero-lede { margin-bottom: 0; color: #f0f0f0; font-size: 17px; letter-spacing: .02em; }
.hero-actions { display: flex; align-items: center; gap: 27px; margin-top: 29px; }
.hero-reel-button { position: absolute; z-index: 4; top: 50%; right: 12vw; display: inline-flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid rgba(255,255,255,.2); background: rgba(0,0,0,.44); color: #fff; text-align: left; transform: translateY(-50%); backdrop-filter: blur(8px); transition: border-color .2s, background .2s; }
.hero-reel-button:hover, .hero-reel-button:focus-visible { border-color: rgba(255,255,255,.7); background: rgba(0,0,0,.72); }
.hero-reel-play { position: relative; display: grid; width: 58px; height: 58px; flex: 0 0 auto; place-items: center; padding-left: 3px; border: 1px solid rgba(255,255,255,.85); border-radius: 50%; font-size: 14px; transition: color .2s, background .2s, transform .25s; }
.hero-reel-play::before, .hero-reel-play::after { position: absolute; content: ''; pointer-events: none; }
.hero-reel-play::before { inset: -8px -15px; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; transform: rotate(-28deg); }
.hero-reel-play::after { top: -10px; right: 8px; width: 5px; height: 5px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px rgba(255,255,255,.85); transform-origin: -17px 40px; animation: reel-satellite 8s linear infinite; }
.hero-reel-button:hover .hero-reel-play, .hero-reel-button:focus-visible .hero-reel-play { transform: scale(1.08); background: #fff; color: #000; }
.hero-reel-button b, .hero-reel-button small { display: block; }
.hero-reel-button b { font-size: 12px; font-weight: 500; }
.hero-reel-button small { margin-top: 4px; color: #bcbcbc; font: 8px var(--mono); letter-spacing: .14em; }
.hero-film-credit { margin: 34px 0 0; color: #b6b6b6; font: 8px var(--mono); letter-spacing: .14em; }
.hero-film-credit span { padding: 0 7px; color: #fff; }
.text-link { color: #e0e3ed; font-size: 12px; }
.text-link span { margin-left: 8px; color: var(--blue); }
.hero-index { position: absolute; right: 6vw; bottom: 177px; left: 6vw; display: flex; justify-content: space-between; color: #bbc1d0; font-size: 9px; }
.universe-controls { position: absolute; right: 6vw; bottom: 42px; left: 6vw; display: flex; min-height: 94px; align-items: center; justify-content: space-between; gap: 28px; border-top: 1px solid var(--line); }
.control-intro { display: grid; gap: 6px; }
.field-mode-group { display: flex; align-items: center; gap: clamp(18px, 3vw, 42px); }
.control-label, .control-hint { color: #a8afc0; font-size: 9px; }
.control-label { margin: 0; }
.field-mode { padding: 10px 0; border: 0; background: transparent; color: #b1b7c6; cursor: pointer; font-size: 11px; }
.field-mode:hover, .field-mode.is-active { color: #fff; }
.field-mode.is-active { text-decoration: underline; text-decoration-color: var(--blue); text-underline-offset: 6px; }
.control-hint { font-size: 8px; }
.meteor-control { width: 210px; flex: 0 0 210px; margin-left: auto; padding-left: 16px; border-left: 1px solid var(--line); }
.meteor-control-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #bfc7d8; font: 7px var(--mono); letter-spacing: .12em; }
.meteor-control-head output { color: #fff; font-size: 8px; }
.meteor-control-body { display: flex; align-items: center; gap: 10px; margin-top: 7px; }
.meteor-dial { position: relative; width: 44px; height: 25px; flex: 0 0 44px; overflow: hidden; }
.meteor-dial::before { position: absolute; inset: 0 3px; border: 1px solid rgba(205,216,238,.65); border-bottom: 0; border-radius: 44px 44px 0 0; content: ''; }
.meteor-dial i { position: absolute; bottom: 0; left: 50%; width: 1px; height: 19px; transform: rotate(-90deg); transform-origin: 50% 100%; background: #fff; box-shadow: 0 0 5px rgba(205,221,255,.8); transition: transform .2s ease; }
.meteor-dial b { position: absolute; bottom: -2px; left: calc(50% - 2px); width: 5px; height: 5px; border-radius: 50%; background: #fff; }
.meteor-control-scale { min-width: 0; flex: 1; }
.meteor-control-scale input { display: block; width: 100%; height: 14px; margin: 0; appearance: none; background: transparent; cursor: ew-resize; }
.meteor-control-scale input::-webkit-slider-runnable-track { height: 2px; background: linear-gradient(90deg, #e8edf8, rgba(232,237,248,.22)); }
.meteor-control-scale input::-moz-range-track { height: 2px; background: linear-gradient(90deg, #e8edf8, rgba(232,237,248,.22)); }
.meteor-control-scale input::-webkit-slider-thumb { width: 9px; height: 9px; margin-top: -3.5px; appearance: none; border: 1px solid #fff; border-radius: 50%; background: #111827; box-shadow: 0 0 8px rgba(215,228,255,.75); }
.meteor-control-scale input::-moz-range-thumb { width: 8px; height: 8px; border: 1px solid #fff; border-radius: 50%; background: #111827; box-shadow: 0 0 8px rgba(215,228,255,.75); }
.meteor-control-scale input:focus-visible { outline: 1px solid rgba(220,230,255,.7); outline-offset: 4px; }
.meteor-scale-labels { display: flex; justify-content: space-between; color: #8992a4; font: 6px var(--mono); letter-spacing: .08em; }
.meteor-status { margin: 5px 0 0; color: #a7b0c1; font: 7px var(--mono); letter-spacing: .06em; }
.scroll-cue { position: absolute; right: 6vw; bottom: 143px; display: flex; align-items: center; gap: 10px; color: #d2d6e2; font-size: 8px; }
.scroll-cue span { width: 27px; height: 1px; background: var(--blue); }
.hero-dialog { width: min(1100px, 94vw); max-width: 1100px; padding: 0; border: 1px solid rgba(255,255,255,.35); background: #000; color: #fff; }
.hero-dialog::backdrop { background: rgba(0,0,0,.9); backdrop-filter: blur(9px); }
.hero-dialog-top { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 18px; border-bottom: 1px solid var(--line); color: #e5e5e5; font: 9px var(--mono); letter-spacing: .12em; }
.hero-dialog-close { padding: 8px 0 8px 8px; border: 0; background: none; color: #eee; cursor: pointer; font: inherit; }
.hero-dialog-film { display: block; width: 100%; max-height: 78vh; aspect-ratio: 16/9; object-fit: contain; background: #000; }
@keyframes orbit-drift-one { from { transform: rotate(-19deg) scale(1); } to { transform: rotate(-13deg) scale(1.045); } }
@keyframes orbit-drift-two { from { transform: rotate(26deg) scale(1); } to { transform: rotate(32deg) scale(1.055); } }
@keyframes reel-satellite { to { transform: rotate(1turn); } }
.hero[data-field-mode="nebula"] .orbit { border-style: dotted; border-color: rgba(255,255,255,.3); filter: drop-shadow(0 0 8px rgba(255,255,255,.16)); }
.hero[data-field-mode="nebula"] .orbit-one { animation: nebula-drift-one 18s ease-in-out infinite alternate; }
.hero[data-field-mode="nebula"] .orbit-two { animation: nebula-drift-two 23s ease-in-out infinite alternate; }
.hero[data-field-mode="chaos"] .orbit { border-style: dashed; border-color: rgba(255,255,255,.3); }
.hero[data-field-mode="chaos"] .orbit-one, .hero[data-field-mode="chaos"] .orbit-two { animation-duration: 9s; }
@keyframes nebula-drift-one { from { transform: rotate(-25deg) scale(.91); opacity: .42; } to { transform: rotate(-12deg) scale(1.08); opacity: 1; } }
@keyframes nebula-drift-two { from { transform: rotate(20deg) scale(.92); opacity: .38; } to { transform: rotate(36deg) scale(1.1); opacity: .94; } }
@keyframes orbit-satellite { from { transform: rotate(0turn) translateX(var(--satellite-radius)); } to { transform: rotate(1turn) translateX(var(--satellite-radius)); } }

.section-wrap { padding-right: 12vw; padding-left: 12vw; }
.section-kicker { display: flex; gap: 20px; color: #adb2c0; font-size: 9px; white-space: nowrap; }
.section-kicker span:first-child { color: var(--blue); }
.info { position: relative; overflow: hidden; padding-top: 126px; padding-bottom: 145px; background: rgba(5,5,5,.76); }
.info-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr); align-items: center; gap: 8vw; margin-top: 44px; }
.info-copy { position: relative; z-index: 1; max-width: 680px; }
.info-copy .eyebrow { margin-bottom: 24px; color: #bec7dd; }
.info h2, .heading-row h2 { margin-bottom: 27px; font-size: clamp(41px, 5.4vw, 72px); font-weight: 400; line-height: 1.05; letter-spacing: -.065em; }
.body-copy { max-width: 550px; margin-bottom: 15px; color: #c1c5cf; font-size: 14px; line-height: 1.85; }
.info h3 { margin: 38px 0 14px; font-size: 21px; font-weight: 500; line-height: 1.35; letter-spacing: -.03em; }
.service-orbit { --orbit-radius: 145px; position: relative; display: grid; width: min(35vw, 420px); min-width: 300px; aspect-ratio: 1; justify-self: end; place-items: center; border: 1px solid rgba(230,230,230,.19); border-radius: 50%; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.045), transparent 56%); }
.service-orbit::before, .service-orbit::after { position: absolute; inset: 12%; border: 1px solid rgba(245,245,245,.17); border-radius: 50%; content: ''; }
.service-orbit::before { background: radial-gradient(circle at 50% 0, #fff 0 2px, transparent 4px); animation: service-satellite 24s linear infinite; }
.service-orbit::after { inset: 24%; transform: rotate(-33deg) scaleX(1.5); border-color: rgba(230,230,230,.18); animation: service-ellipse 18s ease-in-out infinite alternate; }
.service-orbit > span { position: absolute; z-index: 1; top: 50%; left: 50%; width: 0; height: 0; color: #e0e5f3; font: 8px/1.5 var(--mono); letter-spacing: .07em; text-align: center; transform-origin: 0 0; animation: orbit-label-route 38s linear infinite; }
.service-orbit > span > span { position: absolute; display: block; width: max-content; max-width: 105px; color: inherit; animation: orbit-label-upright 38s linear infinite; }
.service-orbit > span:nth-child(1) { --start-angle: 0deg; }
.service-orbit > span:nth-child(2) { --start-angle: 60deg; }
.service-orbit > span:nth-child(3) { --start-angle: 120deg; }
.service-orbit > span:nth-child(4) { --start-angle: 180deg; }
.service-orbit > span:nth-child(5) { --start-angle: 240deg; }
.service-orbit > span:nth-child(6) { --start-angle: 300deg; }
.orbit-mark { position: relative; z-index: 1; display: grid; width: 94px; aspect-ratio: 1; place-items: center; border: 1px solid rgba(230,230,230,.35); border-radius: 50%; background: #050505; color: var(--blue); font: 11px var(--mono); letter-spacing: .16em; }
.orbit-mark i { position: absolute; top: 4px; right: 14px; width: 6px; height: 6px; border-radius: 50%; background: white; box-shadow: 0 0 12px var(--blue); }
@keyframes service-satellite { to { transform: rotate(1turn); } }
@keyframes service-ellipse { from { transform: rotate(-33deg) scaleX(1.5); } to { transform: rotate(-21deg) scaleX(1.5); } }
@keyframes orbit-label-route { from { transform: rotate(var(--start-angle)) translateX(var(--orbit-radius)); } to { transform: rotate(calc(var(--start-angle) + 1turn)) translateX(var(--orbit-radius)); } }
@keyframes orbit-label-upright { from { transform: translate(-50%,-50%) rotate(calc(0deg - var(--start-angle))); } to { transform: translate(-50%,-50%) rotate(calc(0deg - var(--start-angle) - 1turn)); } }

.gallery { padding-top: 105px; padding-bottom: 108px; border-top: 1px solid rgba(255,255,255,.1); background: rgba(5,5,5,.76); }
.gallery .section-heading, .gallery-featured, .gallery-archive, .gallery-note { max-width: 1240px; margin-right: auto; margin-left: auto; }
.section-heading { margin-bottom: 43px; }
.heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; margin-top: 35px; }
.heading-row h2 { margin: 0; }
.heading-row > p { max-width: 270px; margin: 0 0 8px; color: #bdc1cc; font-size: 13px; line-height: 1.8; }
.gallery-grid { display: grid; gap: 14px; }
.gallery-featured { grid-template-columns: repeat(12, minmax(0,1fr)); grid-auto-rows: clamp(125px, 12.5vw, 168px); }
.gallery-item { position: relative; min-width: 0; min-height: 0; overflow: hidden; margin: 0; background: #050505; }
.gallery-item::after { position: absolute; inset: 45% 0 0; background: linear-gradient(0deg, rgba(0,0,0,.78), transparent); content: ''; pointer-events: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .5s; }
.gallery-item:hover img { transform: scale(1.035); filter: saturate(1.08); }
.gallery-featured .gallery-item:nth-child(1) { grid-column: span 7; grid-row: span 2; }
.gallery-featured .gallery-item:nth-child(2), .gallery-featured .gallery-item:nth-child(3) { grid-column: span 5; }
.gallery-featured .gallery-item:nth-child(n+4) { grid-column: span 6; }
.gallery-item figcaption { position: absolute; z-index: 1; right: 16px; bottom: 14px; left: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: white; font: 8px var(--mono); letter-spacing: .12em; }
.gallery-item figcaption span { color: #c2c9d9; }
.gallery-item figcaption .gallery-tag { display: inline-flex; align-items: center; gap: 7px; color: #fff; }
.gallery-tag::before { width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%; background: #e6e6e6; box-shadow: 0 0 8px rgba(255,255,255,.5); content: ''; }
.gallery-archive { margin-top: 22px; border-top: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); }
.gallery-archive summary { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; }
.gallery-archive summary::-webkit-details-marker { display: none; }
.gallery-archive summary strong, .gallery-archive summary small { display: block; }
.gallery-archive summary strong { font-size: 13px; font-weight: 500; }
.gallery-archive summary small { margin-top: 3px; color: #9da3ad; font: 8px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.gallery-archive summary i { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-style: normal; font-size: 17px; transition: transform .3s ease, background .3s ease; }
.gallery-archive[open] summary i { transform: rotate(45deg); background: rgba(255,255,255,.1); }
.gallery-archive-grid { grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: clamp(110px, 12vw, 150px); padding-bottom: 18px; }
.gallery-note { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin: 25px 0 0; color: #aeb4c2; font-size: 11px; }
.gallery-item { cursor: zoom-in; }
.gallery-item:focus-visible { outline: 1px solid #dce7ff; outline-offset: 3px; }
.photo-dialog { position: fixed; width: min(1100px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 24px); overflow: visible; padding: 42px 24px 12px; border: 0; background: transparent; color: white; opacity: 0; transform: scale(.93) rotate(-1deg); transition: opacity .35s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
.photo-dialog[open] { display: grid; justify-items: center; }
.photo-dialog.is-visible { opacity: 1; transform: scale(1) rotate(0); }
.photo-dialog::backdrop { background: radial-gradient(ellipse at center, rgba(15,20,35,.83), rgba(0,0,0,.96)); backdrop-filter: blur(10px); }
.photo-dialog-content { display: grid; justify-items: center; gap: 18px; margin: 0; }
.photo-orbit { --photo-orbit-radius: min(43vw, 440px); position: relative; display: grid; place-items: center; padding: 10px; }
.photo-orbit::before { position: absolute; inset: 0 -10px; border: 1px solid rgba(220,230,255,.4); border-radius: 50%; content: ''; transform: rotate(-12deg); }
.photo-orbit::after { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; margin: -3.5px; border-radius: 50%; background: #fff; box-shadow: 0 0 14px 4px rgba(190,210,255,.7); content: ''; animation: photo-satellite 18s linear infinite; }
.photo-orbit img { display: block; max-width: min(82vw, 1020px); max-height: min(74dvh, 820px); border: 1px solid rgba(255,255,255,.22); background: #050505; object-fit: contain; box-shadow: 0 24px 100px rgba(0,0,0,.7); }
.photo-dialog-content figcaption { min-height: 1em; color: #e1e6f1; font: 9px var(--mono); letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.photo-dialog-close { position: absolute; z-index: 2; top: 0; right: 8px; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; font-size: 24px; line-height: 1; transition: background .2s ease, transform .2s ease; }
.photo-dialog-close:hover { transform: rotate(90deg); background: rgba(255,255,255,.15); }
.photo-dialog-hint { margin: 8px 0 0; color: #a6adbd; font: 8px var(--mono); letter-spacing: .16em; text-align: center; }
@keyframes photo-satellite { from { transform: rotate(0turn) translateX(var(--photo-orbit-radius)); } to { transform: rotate(1turn) translateX(var(--photo-orbit-radius)); } }

.works { padding-top: 112px; padding-bottom: 118px; background: rgba(0,0,0,.78); }
.works-intro { display: flex; justify-content: space-between; margin: 35px 0 16px; color: #c0c0c0; font-size: 9px; }
.work-category { display: block; padding: 0 0 8px; border-top: 1px solid var(--line); scroll-margin-top: 100px; }
.work-category-coming p { margin: 0; color: #9b9b9b; font-size: 13px; }
.work-category-heading { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 20px; margin: 0; padding: 12px 0; color: #fff; cursor: pointer; font: 9px var(--mono); letter-spacing: .13em; list-style: none; }
.work-category-heading::-webkit-details-marker { display: none; }
.work-category-heading span:last-child { color: #8d8d8d; text-align: right; }
.work-category-heading i { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; color: #fff; font: normal 17px var(--sans); transition: transform .25s ease, background .25s ease; }
.work-category[open] > .work-category-heading { margin-bottom: 18px; }
.work-category[open] > .work-category-heading i { transform: rotate(45deg); background: rgba(255,255,255,.1); }
.work-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
#work-events .work-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.work-card { position: relative; display: flex; min-height: 365px; flex-direction: column; align-items: flex-start; justify-content: flex-end; overflow: hidden; padding: 25px; border: 1px solid rgba(255,255,255,.17); background: #050505; color: #fff; cursor: pointer; text-align: left; isolation: isolate; }
.work-card:only-child { min-height: 420px; grid-column: 1 / -1; }
.work-card::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.55) 48%,rgba(0,0,0,.02) 100%); content: ''; }
.work-card-art { position: absolute; z-index: -2; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 67% 35%, #303030 0, #111 35%, #000 76%); transition: transform .5s ease, filter .5s ease; }
.work-card-art img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .5s ease; }
.work-card-art.art-pub img { object-fit: contain; padding: 1rem; background: #080808; }
.work-card-art::before, .work-card-art::after, .work-card-art i, .work-card-art b { position: absolute; display: block; content: ''; }
.work-card-art::before { top: 8%; left: 51%; width: 49%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 34% 30%, #777, #343434 17%, #101010 60%, #050505 74%); box-shadow: 0 0 90px rgba(255,255,255,.08); }
.work-card-art::after { top: 30%; left: 46%; width: 60%; height: 23%; transform: rotate(-24deg); border: 1px solid rgba(255,255,255,.42); border-radius: 50%; }
.work-card-art i { top: 7%; right: 8%; width: 3px; height: 3px; border-radius: 50%; background: #fff; box-shadow: -90px 55px #fff, -220px 15px #ddd, -260px 110px #aaa, -120px 190px #fff; }
.work-card-art b { top: 18%; left: 11%; width: 30%; height: 1px; transform: rotate(-20deg); background: rgba(255,255,255,.26); }
.art-video { background: radial-gradient(ellipse at 67% 35%, #353535, #101010 45%, #000 78%); }
.art-halloween { background: radial-gradient(ellipse at 67% 35%, #444, #151515 40%, #000 80%); }
.art-figa { background: radial-gradient(ellipse at 67% 35%, #555, #111 43%, #000 77%); }
.art-isla { background: radial-gradient(ellipse at 67% 35%, #383838, #101010 43%, #000 78%); }
.art-fresh { background: radial-gradient(ellipse at 67% 35%, #484848, #151515 43%, #000 78%); }
.art-pub { background: radial-gradient(ellipse at 67% 35%, #333, #111 43%, #000 78%); }
.work-card:hover .work-card-art, .work-card:focus-visible .work-card-art { transform: scale(1.035); filter: brightness(1.3); }
.work-card-index { color: #c2c2c2; font: 8px var(--mono); letter-spacing: .12em; }
.work-card-title { max-width: min(700px,88%); margin-top: 9px; font-size: clamp(20px,3vw,39px); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }
.work-card-play { position: absolute; top: 21px; left: 21px; display: grid; width: 42px; height: 42px; place-items: center; padding-left: 2px; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: #fff; font-size: 12px; transition: color .2s, background .2s, transform .2s; }
.work-card:hover .work-card-play, .work-card:focus-visible .work-card-play { transform: scale(1.07); background: #fff; color: #000; }
.works-note { margin: 22px 0 0; color: #aaa; font-size: 11px; }
.work-dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; overflow: hidden; padding: 24px; border: 0; background: transparent; color: #fff; opacity: 0; transform: scale(.985); transition: opacity .45s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.work-dialog[open] { display: grid; place-items: center; }
.work-dialog.is-visible { opacity: 1; transform: scale(1); }
.work-dialog::backdrop { background: rgba(0,0,0,.84); backdrop-filter: blur(5px); }
.work-cosmos { position: absolute; inset: 0; overflow: hidden; pointer-events: none; background: radial-gradient(ellipse at 75% 47%, rgba(49,61,91,.24), transparent 30%), radial-gradient(ellipse at 26% 76%, rgba(52,39,71,.16), transparent 37%), radial-gradient(1px 1px at 12% 18%, rgba(255,255,255,.84) 98%, transparent), radial-gradient(1px 1px at 33% 71%, rgba(255,255,255,.54) 98%, transparent), radial-gradient(1.5px 1.5px at 59% 22%, rgba(255,255,255,.8) 98%, transparent), radial-gradient(1px 1px at 87% 78%, rgba(255,255,255,.6) 98%, transparent), radial-gradient(1px 1px at 71% 58%, rgba(255,255,255,.5) 98%, transparent), #030408; background-size: auto, auto, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, auto; }
.cosmos-planet { position: absolute; top: 8%; right: 7%; width: min(38vw, 460px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 31% 28%, #a8adbb 0, #697184 13%, #343a4a 39%, #151a27 68%, #06080d 78%); box-shadow: inset -32px -20px 58px rgba(0,0,0,.85), 0 0 70px rgba(115,139,190,.18); opacity: .64; animation: planet-drift 36s ease-in-out infinite alternate; }
.cosmos-planet::before { position: absolute; inset: 30% -22%; border: 1px solid rgba(202,214,241,.3); border-radius: 50%; content: ''; transform: rotate(-18deg); }
.cosmos-planet::after { position: absolute; top: 24%; left: 18%; width: 46%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 64% 42%, #020307 0 47%, rgba(195,207,236,.4) 51%, transparent 67%); content: ''; opacity: 0; animation: eclipse-pass 27s ease-in-out 2s infinite; }
.cosmos-meteor { position: absolute; top: -12%; left: 67%; width: clamp(100px, 17vw, 250px); height: 2px; border-radius: 50%; background: linear-gradient(90deg, transparent, rgba(211,226,255,.12) 52%, #fff 100%); box-shadow: 0 0 12px rgba(192,216,255,.72); opacity: 0; transform: rotate(38deg); animation: meteor-cross 19s linear 3s infinite; }
.cosmos-meteor-two { top: 22%; left: 110%; width: clamp(85px, 12vw, 170px); height: 1px; animation-duration: 31s; animation-delay: 11s; }
.work-dialog-content { position: relative; z-index: 1; width: min(1000px, calc(100vw - 48px)); padding: clamp(15px, 2.2vw, 30px); border: 1px solid rgba(226,235,255,.21); background: rgba(2,3,7,.78); box-shadow: 0 30px 120px rgba(0,0,0,.68); backdrop-filter: blur(10px); }
.dialog-topline { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 0 12px; }
.dialog-project-title, .dialog-close { color: #eee; font: 9px var(--mono); letter-spacing: .12em; }
.dialog-close { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(0,0,0,.55); cursor: pointer; font: 24px/1 sans-serif; transition: background .2s ease, transform .2s ease; }
.dialog-close:hover { transform: rotate(90deg); background: rgba(255,255,255,.15); }
.dialog-video { width: 100%; aspect-ratio: 16/9; border: 1px solid rgba(255,255,255,.14); background: #000; }
.dialog-video video { display: block; width: 100%; height: 100%; object-fit: contain; background: #000; }
.work-dialog-hint { margin: 12px 0 0; color: #a6adbd; font: 8px var(--mono); letter-spacing: .16em; text-align: right; }
.work-dialog-handle { display: none; }
@keyframes planet-drift { from { transform: translate3d(0,0,0) rotate(-7deg); } to { transform: translate3d(-3vw,2vh,0) rotate(8deg); } }
@keyframes eclipse-pass { 0%,12%,100% { transform: translate3d(125%,-55%,0) scale(.62); opacity: 0; } 24% { opacity: 1; } 58% { transform: translate3d(-15%,55%,0) scale(1); opacity: 1; } 75% { transform: translate3d(-165%,155%,0) scale(.72); opacity: 0; } }
@keyframes meteor-cross { 0%,67% { transform: translate3d(16vw,-14vh,0) rotate(38deg); opacity: 0; } 69% { opacity: .95; } 80% { transform: translate3d(-82vw,96vh,0) rotate(38deg); opacity: 0; } 100% { transform: translate3d(-82vw,96vh,0) rotate(38deg); opacity: 0; } }

.contact { position: relative; display: flex; min-height: 680px; align-items: center; justify-content: center; overflow: hidden; padding: 60px 6vw 90px; background: radial-gradient(ellipse at 52% 54%, rgba(255,255,255,.045), transparent 57%), rgba(0,0,0,.78); text-align: center; }
#contact-stars { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.contact-inner { position: relative; z-index: 1; max-width: 760px; }
.contact-inner > .eyebrow { justify-content: center; }
.contact h2 { margin: 30px 0; font-size: clamp(56px, 8vw, 102px); font-weight: 400; line-height: .99; letter-spacing: -.07em; }
.contact-email { display: inline-block; padding-bottom: 8px; border-bottom: 1px solid rgba(230,230,230,.7); font-size: 15px; }
.contact-email span { margin-left: 12px; color: var(--blue); }
.contact-line { margin: 28px 0 0; color: #c0c5d2; font-size: 13px; line-height: 1.8; }
.contact-notice { max-width: 600px; margin: 35px auto 0; color: #9299a9; font-size: 11px; line-height: 1.8; }
.contact-coordinate { position: absolute; right: 0; bottom: 27px; left: 0; color: #a0a7b8; font-size: 8px; }
.site-footer { position: relative; z-index: 1; display: flex; min-height: 105px; align-items: center; justify-content: space-between; gap: 25px; padding: 23px 6vw; border-top: 1px solid var(--line); background: rgba(0,0,0,.82); }
.footer-copy, .footer-links { color: #a0a5b2; font-size: 8px; }
.footer-links { display: flex; gap: 24px; }

@media (min-width: 901px) and (max-width: 1200px) {
  .hero h1 { font-size: clamp(60px, 7.4vw, 90px); }
  .hero-reel-button { right: 8vw; }
  .service-orbit { --orbit-radius: 110px; }
}

@media (max-width: 900px) {
  .hero { display: flex; height: auto; min-height: 780px; padding: 135px 8vw 190px; }
  .universe-controls { display: grid; grid-template-columns: minmax(0,1fr) 210px; gap: 9px 18px; padding-top: 10px; }
  .control-intro { grid-column: 1; }
  .field-mode-group { grid-column: 1; grid-row: 2; gap: clamp(14px, 2.5vw, 24px); }
  .meteor-control { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; }
  .hero-copy { width: min(600px, 72%); }
  .hero-film-credit { display: none; }
  .hero h1 { font-size: clamp(62px, 9vw, 96px); }
  .hero-reel-button { right: 8vw; top: auto; bottom: 205px; transform: none; }
  .hero-index { bottom: 175px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr) minmax(0,1fr); align-items: center; gap: 10px; }
  .hero-index span { white-space: nowrap; }
  .hero-index span:nth-child(2) { text-align: center; }
  .hero-index span:last-child { text-align: right; }
  .hero-index, .universe-controls { right: 8vw; left: 8vw; }
  .scroll-cue { right: 8vw; }
  .section-wrap { padding-right: 8vw; padding-left: 8vw; }
  .info-grid { grid-template-columns: 1fr; gap: 55px; }
  .service-orbit { --orbit-radius: 135px; width: min(65vw, 390px); justify-self: center; }
  .gallery-featured { grid-auto-rows: clamp(140px, 19vw, 175px); }
  .gallery-archive-grid { grid-template-columns: repeat(3, minmax(0,1fr)); grid-auto-rows: clamp(120px, 16vw, 160px); }
  .work-grid { gap: 11px; }
  #work-events .work-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .work-card { min-height: 310px; }
  .work-card:only-child { min-height: 350px; }
}

@media (max-width: 600px) {
  html { scroll-padding-top: 72px; }
  .site-header { height: 70px; padding: 0 6vw; }
  .ambient-planet { top: 14vh; right: -12vw; width: 44vw; opacity: .34; }
  .meteor-flightfield i { width: 145px; height: 18px; }
  .meteor-flightfield i:nth-child(4) { width: 125px; }
  .menu-toggle { display: flex; width: 39px; height: 38px; flex-direction: column; justify-content: center; gap: 6px; padding: 10px; border: 1px solid var(--line); background: rgba(0,0,0,.78); }
  .menu-toggle span { width: 100%; height: 1px; background: #f1f3f9; }
  .main-nav { position: absolute; top: 69px; right: 0; left: 0; display: none; align-items: flex-start; gap: 19px; padding: 22px 7vw 26px; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.98); }
  .main-nav.is-open { display: flex; flex-direction: column; }
  .nav-contact { padding: 0; border: 0; }
  .hero { height: 100svh; min-height: 800px; padding: 100px 7vw 245px; }
  .hero-copy { width: 100%; }
  .hero h1 { margin-top: 25px; font-size: clamp(54px, 12vw, 72px); }
  .hero-lede { font-size: 15px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; margin-top: 27px; }
  .hero-reel-button { right: 7vw; bottom: 210px; left: 7vw; justify-content: flex-start; transform: none; }
  .hero-reel-play { width: 45px; height: 45px; }
  .hero-index { right: 7vw; bottom: 280px; left: 7vw; font-size: 8px; }
  .hero-index span:nth-child(2) { display: none; }
  .universe-controls { right: 7vw; bottom: 20px; left: 7vw; display: grid; min-height: 150px; grid-template-columns: 1fr; gap: 3px; align-content: start; padding-top: 10px; }
  .control-intro { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .field-mode-group { display: flex; justify-content: space-between; gap: 7px; }
  .field-mode { justify-self: start; font-size: 10px; }
  .control-hint { margin: 0; font-size: 7px; text-align: right; }
  .meteor-control { width: 100%; grid-column: 1; grid-row: 3; align-self: stretch; padding: 8px 0 0; border-top: 1px solid rgba(255,255,255,.12); border-left: 0; }
  .meteor-control-body { gap: 12px; margin-top: 5px; }
  .meteor-dial { width: 42px; height: 23px; flex-basis: 42px; }
  .meteor-dial i { height: 17px; }
  .meteor-control-scale input { height: 24px; }
  .meteor-status { margin-top: 3px; }
  .scroll-cue { display: none; }
  .orbit-one { --satellite-radius: 35vw; top: 24%; right: -45%; width: 118vw; height: 58vw; border-color: rgba(255,255,255,.3); }
  .orbit-two { --satellite-radius: 27vw; display: block; top: 36%; right: -35%; width: 102vw; height: 49vw; border-color: rgba(255,255,255,.23); animation-duration: 34s; }
  .orbit::before { width: 5px; height: 5px; margin: -2.5px; }
  .section-wrap { padding-right: 7vw; padding-left: 7vw; }
  .info { padding-top: 82px; padding-bottom: 94px; }
  .section-kicker { gap: 12px; font-size: 8px; }
  .info-grid { gap: 45px; margin-top: 36px; }
  .info h2, .heading-row h2 { font-size: clamp(39px, 10vw, 58px); }
  .body-copy { font-size: 13px; }
  .service-orbit { --orbit-radius: 115px; width: min(78vw, 350px); min-width: 0; }
  .service-orbit > span { font-size: 7px; }
  .orbit-mark { width: 74px; font-size: 9px; }
  .gallery { padding-top: 83px; padding-bottom: 90px; }
  .section-heading { margin-bottom: 32px; }
  .heading-row { display: block; margin-top: 27px; }
  .heading-row > p { margin-top: 16px; }
  .gallery-featured { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: clamp(108px, 31vw, 132px); gap: 9px; }
  .gallery-featured .gallery-item:nth-child(1) { grid-column: 1 / -1; grid-row: span 2; }
  .gallery-featured .gallery-item:nth-child(2) { grid-column: 1; grid-row: 3; }
  .gallery-featured .gallery-item:nth-child(3) { grid-column: 2; grid-row: 3; }
  .gallery-featured .gallery-item:nth-child(4) { grid-column: 1; grid-row: 4; }
  .gallery-featured .gallery-item:nth-child(5) { grid-column: 2; grid-row: 4; }
  .gallery-item figcaption { right: 10px; bottom: 10px; left: 10px; gap: 7px; font-size: 7px; letter-spacing: .08em; }
  .gallery-archive { margin-top: 16px; }
  .gallery-archive summary { min-height: 66px; }
  .gallery-archive summary strong { font-size: 12px; }
  .gallery-archive summary small { font-size: 7px; }
  .gallery-archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: clamp(105px, 34vw, 138px); gap: 9px; }
  .gallery-note { margin-top: 17px; font-size: 10px; line-height: 1.6; }
  .photo-dialog { width: calc(100vw - 12px); padding: 42px 4px 10px; }
  .photo-orbit { --photo-orbit-radius: min(38vw, 200px); padding: 7px; }
  .photo-orbit img { max-width: calc(100vw - 54px); max-height: 68dvh; }
  .photo-dialog-close { right: 7px; }
  .work-dialog { inset: 0; width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 14px; overflow: hidden; border: 0; border-radius: 0; transform: scale(.96); }
  .work-dialog[open] { display: grid; place-items: center; }
  .work-dialog.is-visible { transform: scale(1); }
  .work-dialog-content { width: min(720px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); overflow: auto; padding: 14px; border: 1px solid rgba(226,235,255,.24); border-radius: 12px; background: rgba(2,3,7,.9); box-shadow: 0 22px 80px rgba(0,0,0,.7); }
  .work-dialog-handle { display: none; }
  .dialog-topline { min-height: 38px; padding: 0 2px 8px; }
  .dialog-project-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dialog-video { max-height: min(54dvh, 440px); }
  .work-dialog-hint { margin-top: 8px; }
  .cosmos-planet { top: 10%; right: -8%; width: min(53vw, 240px); }
  .cosmos-meteor { width: 120px; }
  .works { padding-top: 83px; padding-bottom: 90px; }
  .works-intro { gap: 15px; font-size: 7px; }
  .work-category { padding: 0 0 6px; }
  .work-category-heading { min-height: 62px; align-items: center; gap: 10px; font-size: 8px; }
  .work-category-heading span:last-child { max-width: 42%; font-size: 8px; line-height: 1.5; }
  .work-grid { grid-template-columns: 1fr; gap: 11px; }
  #work-events .work-grid { grid-template-columns: 1fr; }
  .work-card { min-height: 280px; padding: 19px; }
  .work-card:only-child { min-height: 310px; }
  .contact { min-height: 630px; padding: 60px 7vw 90px; }
  .contact h2 { font-size: clamp(51px, 12.6vw, 74px); }
  .contact-email { font-size: 12px; }
  .contact-notice { margin-top: 28px; font-size: 10px; }
  .site-footer { min-height: 130px; flex-wrap: wrap; gap: 18px; padding: 24px 7vw; }
  .site-footer .brand, .footer-copy { width: calc(50% - 10px); }
  .footer-copy { text-align: right; }
  .footer-links { width: 100%; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--line); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation: none !important; }
}

/* Misión de bienvenida: el visitante es la tripulación. */
.launch-intro {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  overflow: hidden;
  isolation: isolate;
  color: #f4f6fb;
  background:
    radial-gradient(ellipse at 68% 44%, rgba(29, 43, 73, .24), transparent 34%),
    radial-gradient(ellipse at 14% 90%, rgba(30, 42, 69, .18), transparent 35%),
    #03050a;
  transition: opacity .75s ease, visibility .75s ease;
}
.launch-intro[hidden] { display: none; }
.launch-intro::before, .launch-intro::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
}
.launch-intro::before {
  opacity: .6;
  background-image:
    radial-gradient(1px 1px at 8% 22%, #fff 55%, transparent 100%),
    radial-gradient(1px 1px at 38% 12%, #dce7ff 55%, transparent 100%),
    radial-gradient(1px 1px at 56% 76%, #fff 55%, transparent 100%),
    radial-gradient(1.5px 1.5px at 84% 64%, #fff 55%, transparent 100%),
    radial-gradient(1px 1px at 92% 20%, #dce7ff 55%, transparent 100%);
  background-size: 230px 190px, 310px 270px, 360px 300px, 290px 240px, 410px 330px;
  animation: launch-star-drift 35s linear infinite;
}
.launch-intro::after {
  background: linear-gradient(90deg, rgba(2,4,9,.22), transparent 68%), linear-gradient(0deg, rgba(2,4,9,.4), transparent 38%);
}
.launch-nebula {
  position: absolute;
  z-index: -1;
  inset: -20%;
  opacity: .58;
  background: radial-gradient(ellipse at 72% 48%, rgba(54,72,117,.21), transparent 28%), radial-gradient(ellipse at 48% 75%, rgba(83,54,101,.11), transparent 25%);
  filter: blur(38px);
  animation: launch-nebula-breathe 12s ease-in-out infinite alternate;
}
.launch-logo { position: absolute; top: clamp(24px, 5vh, 52px); left: clamp(24px, 6vw, 82px); z-index: 2; width: clamp(118px, 14vw, 180px); height: auto; object-fit: contain; }
.launch-copy { position: absolute; z-index: 3; top: 25%; left: clamp(28px, 11.5vw, 170px); width: min(600px, 57vw); }
.launch-kicker, .launch-footnote, .launch-coordinate, .launch-countdown small { font-family: var(--mono, "DM Mono", monospace); letter-spacing: .15em; }
.launch-kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 26px; color: rgba(233,239,250,.64); font-size: 9px; }
.launch-kicker span { width: 6px; height: 6px; border-radius: 50%; background: #cad9ff; box-shadow: 0 0 14px #a9c4ff; }
.launch-copy h2 { margin: 0; font-size: clamp(48px, 6.2vw, 88px); font-weight: 500; letter-spacing: -.065em; line-height: .98; }
.launch-copy h2 em { color: #aabbdc; font-family: "Playfair Display", Georgia, serif; font-weight: 500; }
.launch-description { margin: 22px 0 30px; color: rgba(237,241,249,.7); font-size: clamp(13px, 1.15vw, 16px); line-height: 1.75; }
.launch-start { display: inline-flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 35px; padding: 0 19px; border: 1px solid rgba(226,235,255,.55); border-radius: 2px; color: #f6f8fc; background: rgba(11,16,27,.58); font: 500 10px/1 var(--mono, "DM Mono", monospace); letter-spacing: .14em; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.launch-start b { color: #8294b6; font-weight: 400; }
.launch-start i { font-size: 17px; font-style: normal; }
.launch-start:hover, .launch-start:focus-visible { transform: translateY(-2px); border-color: #f2f5fc; color: #090c13; background: #f2f5fc; outline: none; }
.launch-start:disabled { cursor: wait; opacity: .66; }
.launch-footnote { margin: 13px 0 0; color: rgba(227,234,246,.38); font-size: 8px; }
.launch-moon { position: absolute; top: 12%; right: 12%; width: clamp(185px, 27vw, 360px); aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 34% 28%, #f2f3f5 0, #b8c0ce 27%, #697386 58%, #252d3d 79%, #0a0d16 100%); box-shadow: inset -28px -15px 60px rgba(0,0,0,.64), 0 0 70px rgba(133,157,205,.17), 0 0 180px rgba(94,119,173,.12); transition: filter .8s ease, box-shadow .8s ease; }
.launch-moon::before { position: absolute; inset: -15%; content: ""; border-radius: inherit; background: radial-gradient(ellipse at 35% 30%, rgba(255,255,255,.26), transparent 38%), radial-gradient(ellipse at 72% 73%, rgba(5,9,19,.58), transparent 50%); }
.launch-moon i { position: absolute; top: 17%; left: 20%; width: 13%; aspect-ratio: 1; border-radius: 50%; background: rgba(61,70,86,.16); box-shadow: 44px 58px 0 -8px rgba(42,49,62,.19), 88px 8px 0 -14px rgba(255,255,255,.13), 115px 113px 0 -5px rgba(39,47,63,.2), 20px 145px 0 -12px rgba(255,255,255,.17); }
.launch-rocket { position: absolute; z-index: 4; left: 24%; bottom: 10%; width: clamp(52px, 7vw, 90px); filter: drop-shadow(0 5px 22px rgba(151,183,255,.4)); transform-origin: 50% 50%; animation: launch-rocket-idle 3.2s ease-in-out infinite; }
.launch-rocket svg { display: block; width: 100%; height: auto; overflow: visible; }
.rocket-flame, .rocket-flame-core { transform-origin: 48px 143px; opacity: .45; }
.rocket-flame { animation: launch-flame-flicker .42s ease-in-out infinite alternate; }
.rocket-flame-core { animation: launch-flame-flicker .25s ease-in-out infinite alternate-reverse; }
.launch-countdown { position: absolute; z-index: 5; right: clamp(28px, 12vw, 170px); bottom: 19%; display: grid; justify-items: center; gap: 9px; min-width: 116px; color: #eef3ff; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease; }
.launch-countdown > span { display: grid; width: 72px; height: 72px; place-items: center; border: 1px solid rgba(221,232,255,.3); border-radius: 50%; background: rgba(12,17,29,.56); font-size: 36px; font-weight: 400; box-shadow: 0 0 36px rgba(128,159,224,.11); }
.launch-countdown small { color: rgba(227,234,248,.67); font-size: 8px; white-space: nowrap; }
.launch-intro.is-counting .launch-countdown, .launch-intro.is-launching .launch-countdown { opacity: 1; transform: translateY(0); }
.launch-intro.is-counting .launch-copy { animation: launch-copy-count 3s ease forwards; }
.launch-intro.is-counting .launch-start { pointer-events: none; }
.launch-coordinate { position: absolute; right: clamp(22px, 4vw, 56px); bottom: 30px; display: grid; gap: 7px; color: rgba(228,235,247,.65); font-size: 9px; text-align: right; }
.launch-coordinate span { color: rgba(228,235,247,.35); font-size: 7px; }
.launch-intro.is-launching .launch-moon { filter: brightness(1.18); box-shadow: inset -28px -15px 60px rgba(0,0,0,.56), 0 0 90px rgba(161,187,239,.34), 0 0 210px rgba(115,147,216,.2); }
.launch-intro.is-launching .launch-rocket { animation: launch-flight 2.25s cubic-bezier(.48,.02,.76,.48) forwards; }
.launch-intro.is-launching .rocket-flame, .launch-intro.is-launching .rocket-flame-core { opacity: 1; }
.launch-intro.is-fading { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes launch-star-drift { to { background-position: 230px 190px, -310px 270px, 360px -300px, -290px -240px, 410px 330px; } }
@keyframes launch-nebula-breathe { to { transform: translate3d(2%, -1%, 0) scale(1.06); opacity: .82; } }
@keyframes launch-rocket-idle { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-10px) rotate(2deg); } }
@keyframes launch-flame-flicker { from { transform: scaleY(.65); } to { transform: scaleY(1.25); } }
@keyframes launch-copy-count { to { opacity: .18; transform: translateY(-8px); } }
@keyframes launch-flight { 0% { transform: translate3d(0,0,0) rotate(-4deg) scale(1); opacity: 1; } 75% { opacity: 1; } 100% { transform: translate3d(51vw,-62vh,0) rotate(32deg) scale(.18); opacity: .3; } }
@media (max-width: 700px) {
  .launch-logo { top: 23px; left: 22px; width: 112px; }
  .launch-moon { top: 11%; right: -12%; width: min(54vw, 245px); }
  .launch-copy { top: 30%; left: 7vw; width: 86vw; }
  .launch-kicker { max-width: 80%; margin-bottom: 19px; font-size: 7px; }
  .launch-copy h2 { font-size: clamp(43px, 11vw, 68px); }
  .launch-description { margin: 17px 0 23px; font-size: 12px; }
  .launch-start { min-height: 49px; gap: 23px; font-size: 9px; }
  .launch-footnote { font-size: 7px; }
  .launch-rocket { left: 12%; bottom: 12%; width: 54px; }
  .launch-countdown { right: 8%; bottom: 14%; min-width: 96px; }
  .launch-countdown > span { width: 62px; height: 62px; font-size: 30px; }
  .launch-countdown small { font-size: 7px; }
  .launch-coordinate { right: 18px; bottom: 18px; font-size: 7px; }
  .launch-coordinate span { font-size: 6px; }
  @keyframes launch-flight { 0% { transform: translate3d(0,0,0) rotate(-4deg) scale(1); opacity: 1; } 75% { opacity: 1; } 100% { transform: translate3d(73vw,-64vh,0) rotate(32deg) scale(.16); opacity: .3; } }
}

/* Mantiene las etiquetas FNS / PRESENTACIÓN fuera del marco del botón en móvil. */
@media (max-width: 600px) {
  .hero-index { bottom: 330px; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero-index span:last-child { justify-self: end; }
}

/* Cinematic pass: gravitational lens, restrained type and a metal launch vehicle. */
.launch-intro {
  background: radial-gradient(ellipse at 72% 35%, rgba(70,79,98,.12), transparent 33%), #020306;
}
.launch-intro::before { opacity: .36; }
.launch-nebula {
  opacity: .42;
  background: radial-gradient(ellipse at 72% 34%, rgba(95,73,72,.2), transparent 19%), radial-gradient(ellipse at 69% 39%, rgba(52,63,93,.17), transparent 34%);
  filter: blur(54px);
}
.launch-kicker { color: rgba(238,239,241,.52); font-size: 8px; }
.launch-kicker span { width: 5px; height: 5px; background: #e4b680; box-shadow: 0 0 10px rgba(228,182,128,.6); }
.launch-kicker i { color: rgba(238,239,241,.26); font-style: normal; }
.launch-copy { top: 27%; width: min(580px, 54vw); }
.launch-copy h2 { font-size: clamp(46px, 5.4vw, 76px); font-weight: 400; letter-spacing: -.055em; line-height: 1.02; }
.launch-copy h2 em { color: #c4b8aa; }
.launch-description { color: rgba(237,238,240,.58); }
.launch-start { min-height: 49px; border-color: rgba(231,231,232,.35); background: rgba(12,13,17,.55); font-size: 9px; letter-spacing: .17em; backdrop-filter: blur(12px); }
.launch-start:hover, .launch-start:focus-visible { border-color: #eee; color: #0b0c0e; background: #eee; }
.launch-start b { color: #aa8c6f; }
.launch-footnote { color: rgba(227,229,234,.28); font-size: 7px; }
.launch-blackhole {
  position: absolute;
  z-index: 1;
  top: 11%;
  right: 9%;
  width: clamp(215px, 29vw, 390px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, #000 0 25%, #050609 37%, rgba(3,4,7,.88) 53%, transparent 72%);
  filter: drop-shadow(0 0 55px rgba(144,112,91,.13));
  transform-origin: 50% 50%;
  transition: transform 1s cubic-bezier(.2,.75,.2,1), filter 1s ease;
}
.launch-blackhole::before {
  position: absolute;
  z-index: -1;
  top: 35%;
  left: -25%;
  width: 150%;
  height: 36%;
  border: 1px solid rgba(231,185,137,.62);
  border-radius: 50%;
  content: "";
  background: linear-gradient(180deg, transparent 17%, rgba(204,132,83,.2) 39%, rgba(242,205,160,.8) 48%, rgba(124,127,149,.4) 53%, transparent 75%);
  box-shadow: 0 0 12px rgba(240,174,111,.58), 0 0 45px rgba(185,119,83,.38), inset 0 0 17px rgba(236,191,143,.4);
  transform: rotate(-18deg);
  animation: hole-disk 20s linear infinite;
}
.launch-blackhole::after {
  position: absolute;
  inset: 5%;
  border: 1px solid rgba(185,197,222,.13);
  border-radius: 50%;
  content: "";
  box-shadow: 0 0 38px rgba(164,184,221,.11), inset 0 0 32px rgba(138,157,198,.08);
}
.launch-blackhole i {
  position: absolute;
  z-index: 2;
  inset: 30%;
  border-radius: 50%;
  background: #000;
  box-shadow: 0 0 16px 8px #000, 0 0 30px 10px rgba(5,6,9,.95);
}
.launch-blackhole b {
  position: absolute;
  z-index: 3;
  top: 29%;
  left: 26%;
  width: 48%;
  height: 42%;
  border-top: 2px solid rgba(255,222,178,.92);
  border-radius: 50%;
  content: "";
  filter: drop-shadow(0 0 8px rgba(255,191,119,.9));
  transform: rotate(-19deg);
}
.launch-rocket { left: 23%; bottom: 9%; width: clamp(42px, 5vw, 65px); filter: drop-shadow(0 0 9px rgba(255,201,139,.24)); animation-duration: 5.5s; }
.launch-rocket svg { filter: saturate(.62); }
.rocket-flame, .rocket-flame-core { transform-origin: 48px 151px; opacity: .1; }
.rocket-flame { fill: url(#engine); }
.rocket-flame-core { fill: #fff1dc; }
.launch-countdown { right: clamp(28px, 12vw, 170px); bottom: 16%; }
.launch-countdown > span { border-color: rgba(222,207,191,.28); background: rgba(9,10,13,.68); font-family: var(--serif); font-size: 34px; }
.launch-countdown small { color: rgba(227,226,223,.49); font-size: 7px; }
.launch-coordinate { color: rgba(228,227,224,.48); font-size: 8px; }
.launch-coordinate span { color: rgba(228,227,224,.27); }
.launch-warp {
  position: absolute;
  z-index: 6;
  top: 25.5%;
  left: 76%;
  width: 160vmax;
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  background: repeating-conic-gradient(from 5deg, transparent 0deg 5deg, rgba(220,225,237,.11) 5.15deg 5.3deg, transparent 5.7deg 12deg);
  mask-image: radial-gradient(circle, transparent 0 7%, #000 12% 36%, transparent 58%);
  transform: translate(-50%,-50%) scale(.015);
}
.launch-intro.is-counting .launch-blackhole::before { animation-duration: 9s; }
.launch-intro.is-launching .launch-blackhole { filter: drop-shadow(0 0 70px rgba(203,154,113,.28)); }
.launch-intro.is-launching .launch-rocket { animation: launch-flight-pro 2.25s cubic-bezier(.48,.02,.76,.48) forwards; }
.launch-intro.is-launching .rocket-flame, .launch-intro.is-launching .rocket-flame-core { opacity: 1; }
.launch-intro.is-entering .launch-blackhole { transform: scale(9); filter: brightness(1.55); }
.launch-intro.is-entering .launch-warp { opacity: .7; animation: launch-warp-in .72s ease-in forwards; }
.launch-intro.is-entering .launch-copy, .launch-intro.is-entering .launch-logo, .launch-intro.is-entering .launch-coordinate, .launch-intro.is-entering .launch-countdown { opacity: 0; transition: opacity .36s ease; }
.launch-intro.is-fading { transition-duration: .55s; }
@keyframes hole-disk { to { rotate: 342deg; } }
@keyframes launch-flight-pro { 0% { transform: translate3d(0,0,0) rotate(-3deg) scale(1); opacity: 1; } 70% { opacity: 1; } 100% { transform: translate3d(53vw,-63vh,0) rotate(25deg) scale(.09); opacity: .85; } }
@keyframes launch-warp-in { 0% { transform: translate(-50%,-50%) scale(.015) rotate(0); opacity: 0; } 22% { opacity: .8; } 100% { transform: translate(-50%,-50%) scale(1) rotate(35deg); opacity: .24; } }
@media (max-width: 700px) {
  .launch-copy { top: 30%; left: 7vw; width: 86vw; }
  .launch-copy h2 { font-size: clamp(42px, 10.5vw, 64px); }
  .launch-blackhole { top: 10%; right: -12%; width: min(56vw, 255px); }
  .launch-rocket { left: 12%; bottom: 12%; width: 43px; }
  .launch-countdown { right: 8%; bottom: 14%; }
  .launch-warp { top: 24%; left: 85%; }
  @keyframes launch-flight-pro { 0% { transform: translate3d(0,0,0) rotate(-3deg) scale(1); opacity: 1; } 70% { opacity: 1; } 100% { transform: translate3d(73vw,-64vh,0) rotate(25deg) scale(.08); opacity: .85; } }
}
.launch-astronaut {
  position: absolute;
  z-index: 3;
  right: -1.5%;
  bottom: -14%;
  width: auto;
  height: 89vh;
  max-width: 49vw;
  object-fit: contain;
  object-position: bottom right;
  filter: drop-shadow(-22px 10px 36px rgba(0,0,0,.48));
  opacity: .96;
  transition: filter .55s ease, transform .55s ease, opacity .35s ease;
}
.launch-intro.is-counting .launch-astronaut { filter: drop-shadow(-12px 0 32px rgba(239,174,112,.26)); }
.launch-camera-rec {
  position: absolute;
  z-index: 5;
  top: 49%;
  right: clamp(230px, 31vw, 470px);
  display: flex;
  align-items: center;
  gap: 7px;
  color: rgba(242,237,231,.82);
  font: 500 8px/1 var(--mono, monospace);
  letter-spacing: .14em;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity .25s ease, transform .25s ease;
}
.launch-camera-rec i { width: 6px; height: 6px; border-radius: 50%; background: #ff443d; box-shadow: 0 0 11px rgba(255,68,61,.9); }
.launch-camera-rec span { color: rgba(242,237,231,.38); }
.launch-intro.is-counting .launch-camera-rec, .launch-intro.is-launching .launch-camera-rec { opacity: 1; transform: translateY(0); }
.launch-intro.is-counting .launch-camera-rec i, .launch-intro.is-launching .launch-camera-rec i { animation: camera-rec-pulse .8s steps(2,end) infinite; }
.launch-exhaust {
  position: absolute;
  z-index: 3;
  left: 20%;
  bottom: 17%;
  width: 64vw;
  height: 3px;
  border-radius: 100%;
  background: linear-gradient(90deg, transparent, rgba(242,174,106,.08) 18%, rgba(247,197,143,.75) 70%, #fff5df 92%, transparent);
  box-shadow: 0 0 10px rgba(255,192,129,.8), 0 0 32px rgba(234,154,92,.36);
  filter: blur(2px);
  opacity: 0;
  transform: rotate(-48deg) scaleX(0);
  transform-origin: 0 50%;
}
.launch-intro.is-launching .launch-exhaust { animation: launch-trail .85s ease-out .35s forwards; }
.launch-intro.is-entering .launch-astronaut { transform: translate3d(8%,4%,0) scale(.97); opacity: .38; }
.launch-intro.is-entering .launch-camera-rec { opacity: 0; }
@keyframes camera-rec-pulse { to { opacity: .28; } }
@keyframes launch-trail { 0% { opacity: 0; transform: rotate(-48deg) scaleX(0); } 22% { opacity: .9; } 100% { opacity: .28; transform: rotate(-48deg) scaleX(1); } }
@media (max-width: 700px) {
  .launch-astronaut { right: -11%; bottom: -5%; height: min(63vh, 550px); max-width: 72vw; }
  .launch-camera-rec { top: auto; right: 41vw; bottom: 39%; font-size: 7px; }
  .launch-exhaust { left: 10%; bottom: 19%; width: 92vw; }
}

/* Calmer scale and a longer, more deliberate camera move into the portal. */
.launch-astronaut {
  right: 1%;
  bottom: -8%;
  height: 58vh;
  max-width: 34vw;
  animation: astronaut-observe 8s ease-in-out infinite;
  transform-origin: 76% 58%;
}
.launch-intro.is-counting .launch-astronaut {
  animation: astronaut-track 3s cubic-bezier(.2,.7,.25,1) forwards;
  filter: drop-shadow(-12px 0 26px rgba(239,174,112,.22));
}
.launch-intro.is-launching .launch-astronaut {
  animation: astronaut-follow 4.4s cubic-bezier(.24,.62,.28,1) forwards;
}
.launch-intro.is-entering .launch-astronaut {
  animation: astronaut-pull 2.4s cubic-bezier(.4,0,.2,1) forwards;
}
.launch-blackhole { transition-duration: 2.7s; transition-timing-function: cubic-bezier(.18,.72,.2,1); }
.launch-intro.is-entering .launch-blackhole { transform: scale(8); filter: brightness(1.28); }
.launch-warp {
  background:
    radial-gradient(ellipse, transparent 0 7%, rgba(1,2,4,.94) 8% 10%, transparent 11% 17%, rgba(227,174,125,.2) 18%, rgba(177,189,213,.12) 19%, transparent 22%),
    repeating-conic-gradient(from 5deg, transparent 0deg 7deg, rgba(220,225,237,.07) 7.15deg 7.3deg, transparent 7.7deg 15deg);
  mask-image: radial-gradient(circle, transparent 0 4%, rgba(0,0,0,.68) 10% 21%, #000 34% 47%, transparent 64%);
}
.launch-intro.is-entering .launch-warp {
  opacity: .62;
  animation: launch-warp-in 3.2s cubic-bezier(.16,.68,.22,1) forwards;
}
.launch-intro.is-entering::before {
  opacity: .9;
  background: radial-gradient(ellipse at 76% 27%, rgba(223,164,119,.22) 0, rgba(125,101,128,.2) 11%, rgba(74,91,128,.17) 23%, rgba(15,20,33,.12) 38%, transparent 58%);
  background-size: 100% 100%;
  animation: launch-nebula-arrive 3.4s cubic-bezier(.16,.68,.22,1) forwards;
}
.launch-intro.is-fading { transition-duration: 1.35s; }
.launch-intro.is-entering .launch-copy, .launch-intro.is-entering .launch-logo, .launch-intro.is-entering .launch-coordinate, .launch-intro.is-entering .launch-countdown {
  opacity: 0;
  transition: opacity 1.1s ease;
}
.launch-intro.is-entering .launch-camera-rec { opacity: 0; transition: opacity .8s ease; }
.launch-rocket { animation-duration: 7s; }
.launch-intro.is-launching .launch-rocket { animation: launch-flight-pro 4.4s cubic-bezier(.42,.02,.34,.98) forwards; }
.launch-intro.is-launching .launch-exhaust { animation: launch-trail 2.2s ease-out .55s forwards; }
@keyframes astronaut-observe { 0%,100% { transform: translate3d(0,0,0) rotate(0); } 50% { transform: translate3d(-.5%,-.7%,0) rotate(.45deg); } }
@keyframes astronaut-track { 0% { transform: translate3d(0,0,0) rotate(0); } 58% { transform: translate3d(-2%,-1%,0) rotate(-1.2deg); } 100% { transform: translate3d(-1.4%,-.6%,0) rotate(-.7deg); } }
@keyframes astronaut-follow { 0% { transform: translate3d(-1.4%,-.6%,0) rotate(-.7deg); } 45% { transform: translate3d(-3%,-1.2%,0) rotate(-1.8deg); } 100% { transform: translate3d(-4%,-1.8%,0) rotate(-2.4deg); } }
@keyframes astronaut-pull { 0% { transform: translate3d(-4%,-1.8%,0) rotate(-2.4deg) scale(1); opacity: .96; } 100% { transform: translate3d(-13%,-6%,0) rotate(-6deg) scale(.84); opacity: .06; } }
@keyframes launch-flight-pro { 0% { transform: translate3d(0,0,0) rotate(-3deg) scale(1); opacity: 1; } 65% { transform: translate3d(31vw,-35vh,0) rotate(11deg) scale(.62); opacity: 1; } 88% { opacity: .95; } 100% { transform: translate3d(53vw,-63vh,0) rotate(25deg) scale(.09); opacity: .74; } }
@keyframes launch-warp-in { 0% { transform: translate(-50%,-50%) scale(.01) rotate(0); opacity: 0; } 18% { opacity: .12; } 72% { opacity: .68; } 100% { transform: translate(-50%,-50%) scale(1) rotate(26deg); opacity: .34; } }
@keyframes launch-nebula-arrive { 0% { transform: scale(.3); filter: blur(40px); opacity: 0; } 34% { opacity: .74; } 100% { transform: scale(1.45); filter: blur(72px); opacity: .88; } }
@media (max-width: 700px) {
  .launch-astronaut { right: 0; bottom: -3%; height: 43vh; max-width: 45vw; }
  .launch-camera-rec { top: auto; right: 22vw; bottom: 29%; }
  .launch-intro.is-entering .launch-blackhole { transform: scale(8); }
  @keyframes launch-flight-pro { 0% { transform: translate3d(0,0,0) rotate(-3deg) scale(1); opacity: 1; } 65% { transform: translate3d(42vw,-35vh,0) rotate(11deg) scale(.6); opacity: 1; } 88% { opacity: .95; } 100% { transform: translate3d(73vw,-64vh,0) rotate(25deg) scale(.08); opacity: .74; } }
}
