/* ============================================================
   CONCEPTO P — LAUNCH COVER
   MACRO Correo, zoomed & central, on a vertical shaft of light.
   Newsletter future = Alice fall: paper through the rabbit hole.
   Plate drilled. Flap only. Highest-res cast metal.
   ============================================================ */

body.launch-on{
  background:#0a0705;
  overflow:hidden;
}
body.launch-on #nav{ display:none !important; }
body.launch-on #app{
  min-height:100vh; min-height:100dvh;
  overflow:hidden;
  background:#0a0705;
}

.launch{
  --ease: cubic-bezier(.22,.68,.26,1);
  --digit-size: clamp(28px, 3.6vw, 46px);
  --zoom: 0.82;
  position:relative;
  min-height:100vh; min-height:100dvh;
  color:var(--paper);
  isolation:isolate;
  display:flex; flex-direction:column;
  align-items:center;
  justify-content:center;
  padding: 0;
  background:#0a0705;
  overflow:hidden;
}

.launch-void{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:#000;
}

/* Door place — the owned photograph, edge to edge.
   Light is in the picture: a thin catch on the left edge of each slat.
   No painted wash on top of it. */
.launch-shaft{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:0;
  overflow:hidden;
  background:#140e0b;
}
.launch.is-in .launch-shaft{ opacity:1; transition:opacity 1.2s var(--ease); }
.launch-shaft::before{
  content:"";
  position:absolute; inset:0; z-index:0;
  background:
    url("../img/launch-correo-door.jpg") center center / cover no-repeat;
  opacity:1;
}
.launch-shaft.is-door::before{ opacity:0; }
.launch-door{
  position:absolute;
  left:-7%; top:-7%;
  width:114%; height:114%;
  z-index:1;
  transform-origin:50% 46%;
  pointer-events:none;
}
.launch-shaft::after{
  content:"";
  position:absolute; inset:0; z-index:1;
  background:none;
  pointer-events:none;
}
.launch-shaft-img{
  /* Keep shaft photo only as faint depth grain — not the door face */
  position:absolute;
  left:50%; top:50%;
  width:min(100vw, 1100px);
  height:auto;
  min-height:120vh;
  object-fit:cover;
  object-position:50% 40%;
  transform:translate(-50%, -50%) scale(1.05);
  filter: none;
  opacity:0;
  z-index:2;
  mix-blend-mode:multiply;
}
.launch-shaft-fall{
  position:absolute; inset:0; z-index:3;
  background:none;
}
.launch-shaft-key{
  position:absolute; inset:0; z-index:4;
  background:none;
  opacity:0;
}
.launch.is-lit .launch-shaft-img,
.launch.is-card .launch-shaft-img,
.launch.is-fall .launch-shaft-img{ opacity:0; }
.launch.is-fall .launch-shaft-fall,
.launch.is-fall .launch-shaft::after{ background:none; }

.launch-well{
  position:fixed; inset:0; z-index:2; pointer-events:none;
  background:none;
  opacity:0;
}

.launch-veil{
  position:fixed; inset:0; z-index:8; pointer-events:none;
  background:#000;
  opacity:1;
  transition:opacity 1.2s var(--ease);
}
.launch.is-in .launch-veil{ opacity:0; }

.launch-mark{
  position:fixed; top:clamp(14px, 2.4vh, 24px); left:var(--gutter); z-index:9;
  font-size:clamp(26px, 3.6vw, 36px); line-height:1; letter-spacing:-.04em;
  color:rgba(236,234,229,.28);
  text-decoration:none;
  opacity:0;
  transition:color 350ms var(--ease), opacity 1s var(--ease) .3s;
}
.launch.is-in .launch-mark{ opacity:1; }
.launch-mark:hover{ color:rgba(236,234,229,.92); }

.launch-stage{
  position:relative; z-index:4;
  width:100%;
  height:100vh; height:100dvh;
  display:flex; flex-direction:column; align-items:center;
  justify-content:center;
  gap: clamp(6px, 1.2vh, 14px);
}

/* ============================================================
   CORREO — frontal centered POV. Cool cast metal on the door.
   ============================================================ */
.launch-buzon{
  --flap: 0;
  --flap-vis: 0;
  position:relative;
  width:min(720px, 52vw);
  aspect-ratio:1028 / 501;
  max-height:none;
  z-index:4;
  margin:0 auto;
  cursor:grab;
  touch-action:none;
  user-select:none;
  transform: scale(var(--zoom)) translate3d(0, -2vh, 0);
  transform-origin:50% 50%;
  will-change:transform;
}
.launch.is-card .launch-buzon{
  transform: scale(calc(var(--zoom) * 1.02)) translate3d(0, -2.5vh, 0);
  transition:transform .32s var(--ease);
}
.launch.is-fall .launch-buzon{
  transform: scale(calc(var(--zoom) * 1.04)) translate3d(0, -3vh, 0);
  transition:transform .4s var(--ease);
}
.launch-buzon.is-pulling{ cursor:grabbing; }
.launch-buzon.is-ready{ cursor:grab; }
.launch-buzon::after{
  content:"";
  position:absolute;
  left:22%; right:22%;
  top:42%; height:42%;
  z-index:6;
  cursor:grab;
}
.launch-buzon.is-pulling::after{ cursor:grabbing; }
.launch-buzon.is-ready::after{
  left:14%; right:14%;
  top:30%; height:54%;
}

.launch-buzon-rig{
  position:relative;
  width:100%; height:100%;
  transform:none;
  /* light rakes from the left, so the plate's shade falls short, down and to the right */
  filter: drop-shadow(3px 4px 2px rgba(0,0,0,.62));
}
/* When feeding: the open mouth throws a deeper shade onto the wood */
.launch.is-feeding .launch-buzon-rig,
.launch.is-fall .launch-buzon-rig{
  filter:
    drop-shadow(3px 4px 2px rgba(0,0,0,.62))
    drop-shadow(0 22px 28px rgba(0,0,0,.55));
}
/* cool gray cast wash — not champagne bronze */
.launch-buzon-rig::before{
  content:"";
  position:absolute; inset:0; z-index:3;
  pointer-events:none;
  background:
    linear-gradient(125deg,
      rgba(210,220,230,.18) 0%,
      rgba(120,128,136,.1) 36%,
      rgba(40,44,48,.22) 100%);
  mix-blend-mode:soft-light;
  opacity:0;
  -webkit-mask-image:var(--plate-mask, url("../img/launch-correo-closed.png"));
  mask-image:var(--plate-mask, url("../img/launch-correo-closed.png"));
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
/* left-rake rim catch + right-side depth — matches door photo light */
.launch-buzon-rig::after{
  content:"";
  position:absolute; inset:0; z-index:4;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(230,235,240,.14) 0%, transparent 28%, transparent 62%, rgba(0,0,0,.22) 100%),
    radial-gradient(ellipse 55% 50% at 18% 30%, rgba(220,228,236,.16) 0%, transparent 55%),
    radial-gradient(ellipse 90% 70% at 50% 100%, rgba(0,0,0,.32) 0%, transparent 50%);
  mix-blend-mode:soft-light;
  opacity:0;
  -webkit-mask-image:var(--plate-mask, url("../img/launch-correo-closed.png"));
  mask-image:var(--plate-mask, url("../img/launch-correo-closed.png"));
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}

.launch-buzon-mouth{
  position:absolute;
  left:20.5%; right:20.5%;
  top:38%; height:36%;
  border-radius:1px;
  z-index:5;
  pointer-events:none;
  /* The dark well — opens with the flap, no hinge squash */
  opacity:calc(var(--flap-vis) * 0.98);
  transform:
    perspective(900px)
    rotateX(calc(var(--flap-vis) * -12deg))
    scaleY(calc(0.55 + var(--flap-vis) * 0.45));
  transform-origin:50% 0%;
  background:
    linear-gradient(180deg,
      #1a1c20 0%,
      #0a0b0d 18%,
      #030304 48%,
      #000 100%);
  box-shadow:
    inset 0 50px 70px rgba(0,0,0,1),
    inset 0 -24px 40px rgba(0,0,0,.95),
    inset 56px 0 70px rgba(0,0,0,.9),
    inset -56px 0 70px rgba(0,0,0,.9),
    inset 0 2px 0 rgba(180,188,196,.28),
    0 1px 0 rgba(0,0,0,.85);
  overflow:hidden;
}
/* Metal lid — the hinge you watch open */
.launch-buzon-lid{
  position:absolute;
  left:20.5%; right:20.5%;
  top:38%; height:30%;
  z-index:6;
  pointer-events:none;
  transform-origin:50% 0%;
  transform:
    perspective(920px)
    rotateX(calc(var(--flap-vis) * -82deg))
    translateZ(calc(var(--flap-vis) * 14px));
  opacity:calc(var(--flap-vis) * 0.95);
  background:
    linear-gradient(180deg,
      #c4cad2 0%,
      #8a929c 18%,
      #5c646e 42%,
      #3a4048 68%,
      #22262c 100%);
  box-shadow:
    inset 0 1px 0 rgba(236,240,244,.55),
    inset 0 -8px 14px rgba(0,0,0,.45),
    inset 12px 0 18px rgba(0,0,0,.18),
    inset -12px 0 18px rgba(0,0,0,.18),
    0 calc(4px + var(--flap-vis) * 26px) calc(10px + var(--flap-vis) * 32px)
      rgba(0,0,0, calc(var(--flap-vis) * 0.62));
  border-radius:1px 1px 2px 2px;
  backface-visibility:hidden;
}
.launch-buzon-lid::before{
  content:"";
  position:absolute;
  left:6%; right:6%;
  top:18%; height:28%;
  background:
    linear-gradient(180deg,
      rgba(255,255,255,.22) 0%,
      rgba(255,255,255,.04) 40%,
      transparent 100%);
  border-radius:1px;
}
.launch-buzon-lid::after{
  /* pull tab on the free edge of the lid */
  content:"";
  position:absolute;
  left:50%;
  bottom:6%;
  width:14%;
  height:14%;
  transform:translateX(-50%);
  border-radius:1px;
  background:
    linear-gradient(180deg, #a8b0b8 0%, #6a727c 55%, #3e444c 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.35),
    0 2px 4px rgba(0,0,0,.45);
}
/* cool gunmetal lip — thickness + left-rake catch */
.launch-buzon-mouth::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:28%;
  background:
    linear-gradient(180deg,
      rgba(190,198,206,.55) 0%,
      rgba(110,118,126,.38) 28%,
      rgba(40,44,48,.3) 62%,
      transparent 100%);
  box-shadow:
    inset 0 1px 0 rgba(220,228,236,.28),
    inset 0 -6px 10px rgba(0,0,0,.55),
    0 6px 14px rgba(0,0,0,.65);
}
/* deep well floor */
.launch-buzon-mouth::after{
  content:"";
  position:absolute; left:5%; right:5%; top:24%; bottom:6%;
  border-radius:1px;
  background:
    radial-gradient(ellipse 70% 40% at 50% 0%, rgba(48,52,56,.55) 0%, transparent 50%),
    radial-gradient(ellipse 100% 100% at 50% 110%, #000 0%, #030304 45%, #000 100%);
  box-shadow:
    inset 0 0 40px rgba(0,0,0,1),
    inset 0 18px 36px rgba(0,0,0,.95),
    inset 24px 0 32px rgba(0,0,0,.8),
    inset -24px 0 32px rgba(0,0,0,.8);
  opacity:1;
}
.launch-buzon-throat{
  position:absolute;
  left:8%; right:8%;
  top:40%; bottom:8%;
  z-index:1;
  border-radius:1px;
  background:
    repeating-linear-gradient(
      180deg,
      transparent 0px,
      transparent 2px,
      rgba(0,0,0,.7) 2px,
      rgba(0,0,0,.7) 3px
    ),
    linear-gradient(180deg, #0a0b0c 0%, #000 100%);
  box-shadow:
    inset 0 24px 48px rgba(0,0,0,1),
    inset 0 -10px 20px rgba(0,0,0,.9);
  transform:scaleY(calc(0.35 + var(--flap-vis) * 0.65));
  transform-origin:50% 0%;
  opacity:calc(0.7 + var(--flap-vis) * 0.3);
}
.launch-buzon-lip{
  position:absolute;
  left:0; right:0;
  top:0; height:26%;
  z-index:2;
  background:
    linear-gradient(180deg,
      rgba(170,178,186,.5) 0%,
      rgba(80,86,92,.32) 38%,
      rgba(24,26,28,.16) 70%,
      transparent 100%);
  box-shadow:
    0 1px 0 rgba(0,0,0,.7),
    0 10px 18px rgba(0,0,0,.7),
    inset 0 1px 0 rgba(210,218,226,.28),
    inset 0 -4px 8px rgba(0,0,0,.4);
  pointer-events:none;
}

.launch-buzon-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:contain;
  object-position:center center;
  user-select:none;
  pointer-events:none;
  -webkit-user-drag:none;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: high-quality;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* cool gray-silver cast metal — kill bronze/sepia wash */
  filter:none;
  will-change:opacity;
}

.launch-buzon-closed{
  /* Keep the plate frame present — lid is the hinge */
  opacity:calc(1 - var(--flap-vis) * 0.72);
  z-index:2;
}
.launch-buzon-open{
  opacity:calc(var(--flap-vis) * 0.78);
  z-index:3;
}

/* Cast grain — cool worn metal surface */
.launch-buzon-grain{
  position:absolute; inset:0; z-index:3; pointer-events:none;
  opacity:0;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.05' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='0.65'/%3E%3C/svg%3E");
  background-size:96px 96px;
  -webkit-mask-image:url("../img/launch-correo-closed.png");
  mask-image:url("../img/launch-correo-closed.png");
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
/* mask swap is JS-only (hysteresis) — CSS swap fought the lerp */

/* Cast metal light — cool left-rake, soft right fall, quiet specular */
.launch-buzon-sheen{
  position:absolute; inset:0; z-index:4; pointer-events:none;
  opacity:0;
  background:
    radial-gradient(
      ellipse 30% 34% at var(--sx, 18%) var(--sy, 28%),
      rgba(230,236,242,.5) 0%,
      rgba(160,170,180,.16) 28%,
      transparent 58%
    ),
    radial-gradient(
      ellipse 42% 40% at 88% 58%,
      rgba(0,0,0,.18) 0%,
      transparent 60%
    ),
    linear-gradient(
      105deg,
      rgba(220,228,236,.14) 0%,
      transparent 32%,
      transparent 58%,
      rgba(0,0,0,.12) 100%
    ),
    linear-gradient(
      180deg,
      rgba(210,218,226,.06) 0%,
      transparent 22%,
      transparent 70%,
      rgba(0,0,0,.22) 100%
    );
  mix-blend-mode:soft-light;
  -webkit-mask-image:url("../img/launch-correo-closed.png");
  mask-image:url("../img/launch-correo-closed.png");
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
  transition:opacity .28s var(--ease);
}
.launch.is-awaiting .launch-buzon-sheen,
.launch.is-feeding .launch-buzon-sheen,
.launch.is-signup .launch-buzon-sheen,
.launch.is-lit .launch-buzon-sheen{ opacity:0; }

.launch:not(.is-in) .launch-buzon-rig{ opacity:0; filter:none; }
.launch.is-in .launch-buzon-rig{
  opacity:1;
  transition:opacity 1.1s var(--ease);
}

/* ============================================================
   ANALOG COUNTDOWN — em-based frame-counter wheels
   ============================================================ */
.launch-clock{
  position:absolute;
  left:50%;
  bottom: clamp(18px, 4.5vh, 48px);
  transform:translateX(-50%);
  display:flex; align-items:center; justify-content:center;
  width:min(640px, 86vw);
  opacity:0;
  z-index:5;
  pointer-events:none;
}
.launch.is-in .launch-clock{
  opacity:1;
  transition:opacity .8s var(--ease) .4s;
}
.launch.is-card .launch-clock,
.launch.is-fall .launch-clock{
  opacity:.22;
  transition:opacity .22s var(--ease);
}

.launch-ct{
  display:flex; align-items:flex-end; justify-content:center;
  gap: clamp(14px, 2.2vw, 28px);
  padding: 14px 20px 12px;
  border-radius:5px;
  background:
    linear-gradient(180deg, rgba(170,170,166,.26) 0%, rgba(90,90,86,.1) 48%, rgba(40,40,38,.06) 100%);
  box-shadow:
    inset 0 1px 8px rgba(0,0,0,.82),
    inset 0 -1px 0 rgba(255,255,255,.14),
    0 0 0 1px rgba(236,234,229,.12),
    0 8px 28px rgba(0,0,0,.35);
  font-family:var(--mono);
}

.launch-ct-unit{
  display:flex; flex-direction:column; align-items:center; gap:7px;
}
.launch-ct-win{
  position:relative;
  display:flex; align-items:stretch; gap:4px;
  padding:8px 9px;
  border-radius:3px;
  background:
    linear-gradient(180deg, #2a2a28 0%, #121210 42%, #050504 100%);
  box-shadow:
    inset 0 4px 10px rgba(0,0,0,.95),
    inset 0 -1px 0 rgba(255,255,255,.12),
    inset 1px 0 0 rgba(255,255,255,.04),
    0 0 0 1px rgba(236,234,229,.1);
}
/* split-flap hairline — dual edge */
.launch-ct-win::before{
  content:"";
  position:absolute; left:5px; right:5px; top:50%;
  height:1px;
  margin-top:-1px;
  background:rgba(255,255,255,.07);
  pointer-events:none; z-index:3;
}
.launch-ct-win::after{
  content:"";
  position:absolute; left:5px; right:5px; top:50%;
  height:1px;
  background:rgba(0,0,0,.75);
  box-shadow:0 1px 0 rgba(255,255,255,.04);
  pointer-events:none; z-index:3;
}
.launch-ct-label{
  font-size:8px; letter-spacing:.34em;
  color:rgba(236,234,229,.42);
}

.launch-digit{
  position:relative;
  flex:none;
  font-size:var(--digit-size);
  width:0.68em;
  height:1.15em;
  line-height:1;
}
.launch-slit{
  position:relative;
  height:1.15em;
  overflow:hidden;
  border-radius:1px;
  background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, transparent 18%, transparent 82%, rgba(0,0,0,.45) 100%);
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image:linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.launch-digit-track{
  display:block;
  will-change:transform;
  font-size:1em;
  line-height:1.15em;
  backface-visibility:hidden;
}
.launch-num{
  display:block;
  height:1.15em;
  font-size:1em;
  line-height:1.15em;
  letter-spacing:0;
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum";
  font-weight:500;
  color:rgba(252,249,242,.97);
  text-align:center;
  user-select:none;
  font-family:var(--mono);
  text-shadow:
    0 1px 0 rgba(0,0,0,.7),
    0 0 12px rgba(255,248,230,.06);
}
.launch-digit.is-rolling .launch-num{
  color:#fffef8;
  text-shadow:
    0 1px 0 rgba(0,0,0,.55),
    0 0 18px rgba(255,250,235,.18);
}
.launch-sep{
  flex:none;
  align-self:center;
  font-size:calc(var(--digit-size) * 0.42);
  line-height:1;
  color:rgba(236,234,229,.32);
  margin-bottom:1.35em;
  user-select:none;
  font-family:var(--mono);
  letter-spacing:0;
}

.launch-whisper{
  position:absolute;
  left:50%;
  bottom: clamp(96px, 14vh, 128px);
  transform:translateX(-50%);
  margin:0;
  font-size:10px; letter-spacing:.28em;
  color:rgba(236,234,229,.48);
  text-align:center;
  opacity:0;
  pointer-events:none;
  z-index:5;
  white-space:nowrap;
  transition:opacity .8s var(--ease), color .3s var(--ease);
}
.launch.is-list .launch-whisper{
  opacity:1; pointer-events:auto;
}
.launch-whisper.is-dim{ opacity:.12; }
.launch.is-fall .launch-whisper{ opacity:0; }

/* ============================================================
   STATIONERY CARD — frontal hero insert into the mouth
   ============================================================ */
.launch-station{
  position:absolute;
  left:50%;
  top:58%;
  z-index:12;
  width:min(520px, 72vw);
  transform:translate(-50%, 18%) scale(.94);
  opacity:0;
  pointer-events:none;
  transform-origin:50% 0%;
  transform-style: preserve-3d;
  will-change:transform, opacity, left, top, filter;
  perspective: 900px;
}
.launch-station[hidden]{ display:none !important; }
.launch.is-card .launch-station{
  display:block;
  pointer-events:auto;
}
.launch.is-feeding .launch-station,
.launch.is-fall .launch-station{
  pointer-events:none;
  z-index:7; /* above mouth while falling the shaft */
}

.launch-station-face{
  position:relative;
  width:100%;
  aspect-ratio:651 / 413;
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.62));
  transition:filter .2s var(--ease), transform .2s var(--ease);
  transform-style:preserve-3d;
}
.launch.is-card .launch-station-face.is-ready{
  filter:drop-shadow(0 18px 36px rgba(0,0,0,.7));
  transform:translateY(-1px);
}
.launch.is-feeding .launch-station-face,
.launch.is-fall .launch-station-face{
  filter:none;
  transform:none;
}
/* Paper slip that falls the well under the lid */
.launch-drop-slip{
  position:absolute;
  left:50%;
  top:0;
  width:90%;
  z-index:4; /* above throat / lip — readable in the well */
  pointer-events:none;
  transform-origin:50% 0%;
  will-change:transform, opacity, filter;
}
.launch-drop-slip-img{
  display:block;
  width:100%;
  height:auto;
  filter:contrast(1.12) brightness(1.08);
  box-shadow:
    0 10px 22px rgba(0,0,0,.75),
    0 2px 0 rgba(0,0,0,.4);
}
/* Cast shade the card throws into the mouth and down the shaft */
.launch-station-shade{
  position:absolute;
  left:8%; right:8%;
  top:88%;
  height:42%;
  z-index:-1;
  pointer-events:none;
  border-radius:50%;
  background:
    radial-gradient(ellipse 70% 55% at 50% 0%,
      rgba(0,0,0,.55) 0%,
      rgba(0,0,0,.22) 42%,
      transparent 72%);
  opacity:0;
  transform:scaleY(0.35) translateY(-6%);
  transform-origin:50% 0%;
  will-change:transform, opacity;
}
.launch.is-feeding .launch-station-shade,
.launch.is-fall .launch-station-shade{
  opacity:1;
}
.launch-station-paper{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  filter:contrast(1.1) brightness(1.03);
}
.launch-station-body{
  position:absolute;
  left:11%; right:11%;
  top:16%; bottom:12%;
  display:flex; flex-direction:column;
  gap:6px;
  z-index:1;
}
.launch-station-kicker{
  margin:0;
  font-size:clamp(22px, 4vw, 34px);
  line-height:1;
  font-style:italic;
  color:rgba(28,24,18,.55);
  transition:color .25s var(--ease), letter-spacing .35s var(--ease);
}
.launch-station.has-ink .launch-station-kicker{
  color:rgba(28,24,18,.78);
  letter-spacing:.01em;
}
.launch-station-ink{
  flex:1;
  width:100%;
  resize:none;
  border:0;
  background:transparent;
  outline:none;
  font-family:var(--display);
  font-style:italic;
  font-size:clamp(16px, 2.4vw, 22px);
  line-height:1.5;
  letter-spacing:.02em;
  color:#1a1610;
  padding:6px 0 8px;
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), caret-color .2s;
  caret-color:#1a1610;
}
.launch-station-ink:focus{
  border-bottom-color:rgba(40,34,28,.22);
}
.launch-station-ink::placeholder{
  color:rgba(40,34,28,.26);
  font-style:italic;
}
.launch-station-send{
  align-self:flex-end;
  margin-top:6px;
  padding:8px 0 0;
  border:0; background:transparent;
  font-size:10px; letter-spacing:.3em;
  color:rgba(40,34,28,.28);
  cursor:pointer;
  transition:color .2s var(--ease), letter-spacing .25s var(--ease), transform .14s var(--ease);
}
.launch-station.has-ink .launch-station-send{
  color:rgba(40,34,28,.72);
}
.launch-station-send:hover{
  color:#1a1610;
  letter-spacing:.36em;
}
.launch-station-send:active{ transform:translateY(1px); }
.launch-station-send:disabled{ opacity:.3; cursor:default; transform:none; }
.launch-station-note{
  margin:0;
  font-size:8px; letter-spacing:.22em;
  color:rgba(40,34,28,.42);
  text-align:right;
  opacity:0;
  min-height:1em;
  transition:opacity .2s var(--ease);
}
.launch-station-note.is-on{ opacity:1; }
.launch-station-close{
  display:block;
  margin:12px auto 0;
  padding:0; border:0; background:transparent;
  font-size:8px; letter-spacing:.26em;
  color:rgba(236,234,229,.32);
  cursor:pointer;
  transition:color .2s var(--ease);
}
.launch-station-close:hover{ color:rgba(236,234,229,.8); }

.launch-honey{
  position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; opacity:0;
}

.launch.is-open .launch-num{ color:rgba(236,234,229,.42); }

.launch.is-signup .launch-well,
.launch.is-lit .launch-well{
  background:
    radial-gradient(ellipse 52% 42% at 16% 28%, rgba(220,190,145,.1) 0%, transparent 62%),
    radial-gradient(ellipse 90% 70% at 50% 110%, rgba(0,0,0,.9) 0%, transparent 46%);
}

@media (max-width:720px){
  .launch{
    --digit-size: clamp(18px, 4.2vw, 28px);
    --zoom: 0.78;
    padding: 0;
  }
  .launch-buzon{
    width:min(88vw, 480px);
  }
  .launch-clock{ width:92vw; bottom:14px; }
  .launch-whisper{ bottom:72px; font-size:8px; letter-spacing:.22em; }
  .launch-station{ width:min(86vw, 380px); top:56%; }
  .launch-shaft-img{ width:120vw; }
}

@media (prefers-reduced-motion: reduce){
  .launch-veil,
  .launch-mark,
  .launch-buzon-rig,
  .launch-whisper,
  .launch-station,
  .launch-clock{
    opacity:1 !important; transform:none !important; filter:none !important;
    transition:none !important; animation:none !important;
    pointer-events:auto !important;
  }
  .launch-veil{ opacity:0 !important; }
  .launch-well{ transition:none; }
}
