/* ==========================================================================
   Alpha Airlines layer: what differs from the base styles. Loaded last.
   ========================================================================== */

/* ---------- hero: the jet is wide ---------- */
.hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.hero-product { width: 100%; aspect-ratio: 8 / 5; animation: arrive 1.6s var(--ease-out) both; }
.hero-product img { width: 132%; max-width: none; margin: -8% -20% 0 -12%; -webkit-mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%); mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%); }
.hero-claim { font-size: clamp(22px, 1.9vw, 30px); line-height: 1.2; color: var(--ink-2); max-width: 20em; margin-bottom: 32px; }
.hero-claim strong { display: block; margin-top: 8px; font-weight: 500; color: var(--ink); }
.hero-copy > * { animation: rise 1.2s var(--ease-out) both; }
.hero-copy > :nth-child(2) { animation-delay: .1s; }
.hero-copy > :nth-child(3) { animation-delay: .2s; }
.hero-copy > :nth-child(4) { animation-delay: .3s; }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } }
@keyframes arrive { from { opacity: 0; transform: translateX(32px); } }
.coords { font-size: 11px; }
.closing { padding-top: 140px; }

/* ---------- scene: our own renders keep their colour ---------- */
.frame img { filter: none; }
.seq { left: 50%; aspect-ratio: 8 / 5; height: auto; width: min(64vw, 130svh); -webkit-mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%); mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%); }
.slide-unit .panel { width: min(360px, 26vw); }
.spec { right: clamp(16px, 3vw, 48px); width: 210px; gap: 22px; }
.spec-item b { font-size: 18px; }
.slide-mission .grade { background: linear-gradient(90deg, rgba(3, 4, 8, .82) 0%, rgba(3, 4, 8, .5) 30%, rgba(3, 4, 8, 0) 52%); }
.grade::after { background: rgba(120, 10, 20, .22); }
.hl-wrap { background: #030408; --hairline-plate: #030408; }

/* ---------- the aircraft to one scale ---------- */
.slide.slide-fleet { background: var(--paper); color: var(--ink); }
.slide-fleet .panel { width: min(360px, 26vw); }
.slide-fleet .beat p { color: var(--ink-2); }
.scale-stage { position: absolute; z-index: 4; left: clamp(320px, 32vw, 520px); right: 48px; top: 96px; bottom: 96px; translate: calc(var(--o) * 18vw) 0; }
.solo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .5s var(--ease-out); }
.solo.is-on { opacity: 1; }
/* one scale: 72 metres across the stage; each side view spans 1.194 aircraft lengths */
.lineup { --span: 72; position: absolute; inset: 0 auto 0 0; width: min(100%, calc((100svh - 252px) * 1.48)); display: flex; flex-direction: column; justify-content: center; gap: 4px; opacity: 0; transition: opacity .5s var(--ease-out); }
.lineup.is-on { opacity: 1; }
.lineup figure { position: relative; margin: 0; width: calc(var(--m) * 1.194 / var(--span) * 100%); translate: -4.4% 0; }
.lineup img { display: block; width: 100%; height: auto; }
.lineup figcaption { position: absolute; left: 100%; bottom: 12%; margin-left: 8px; white-space: nowrap; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.lineup figure:last-of-type figcaption { left: 4.4%; bottom: auto; top: 28%; margin: 0; }
.scale-bar { display: grid; justify-items: start; gap: 8px; margin: 16px 0 0; font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.scale-bar b { display: block; width: calc(10 / var(--span) * 100%); height: 1px; background: var(--ink); }

/* ---------- aircraft page ---------- */
.fleet { display: grid; gap: 64px; }
.fleet-type { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.fleet-type img { width: 100%; height: auto; }
.fleet-spec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0 0; }
.fleet-spec dt { font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }
.fleet-spec dd { margin: 4px 0 0; font-size: clamp(20px, 2vw, 28px); font-weight: 300; font-variant-numeric: tabular-nums; }
.fleet-note { font-size: 12px; color: var(--ink-2); max-width: 44em; }

/* ---------- configurator ---------- */
.configure { background: var(--night); color: var(--white); padding: 96px 0 56px; }
.cfg {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.1fr); gap: 32px clamp(24px, 4vw, 64px);
  grid-template-areas: "intro stage" "parts stage" "other other" "fine fine";
  grid-template-rows: auto 1fr auto auto;
}
.cfg-intro { grid-area: intro; }
.cfg-stage { grid-area: stage; min-width: 0; }
.cfg-parts { grid-area: parts; }
.cfg-other { grid-area: other; }
.cfg-fine { grid-area: fine; font-size: 12px; color: var(--mist); max-width: 44em; }
.configure .eyebrow { color: var(--white); }
.configure .h2 { font-size: clamp(28px, 2.8vw, 44px); }
.configure .lead { color: var(--mist); margin-bottom: 24px; }
.cfg-figure { width: 100%; aspect-ratio: 16 / 9; --hairline-plate: #0A0E19; --hairline-stroke: 1.1; --hairline-hi: #F29A1F; --hairline-edge: #AEB3C2; --hairline-mid: #7A8092; --hairline-lo: #454B5C; }
.cfg-figure svg { overflow: visible; width: 100%; height: 100%; }

.cfg-airframe { margin: 0; display: grid; gap: 12px; }
.cfg-airframe dt { margin-bottom: 4px; font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--mist); }
.cfg-airframe dd { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cfg-photo { margin: 16px 0 0; background: var(--paper); border-radius: 4px; overflow: hidden; }
.cfg-photo img { display: block; width: 100%; height: auto; }
.cfg-groups { display: flex; gap: 24px; margin-bottom: 8px; border-bottom: 1px solid var(--hair); }
.cfg-airframe button, .cfg-tray button, .cfg-roles button, .cfg-clear, .cfg-groups button {
  cursor: pointer; background: none; color: var(--white); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  transition: border-color .3s, background .3s, color .3s;
}
.cfg-airframe button { min-height: 40px; padding: 0 16px; border: 1px solid var(--hair); border-radius: 999px; }
.cfg-airframe button:hover, .cfg-tray button:hover, .cfg-roles button:hover { border-color: var(--white); }
.cfg-airframe button[aria-pressed="true"] { background: var(--white); border-color: var(--white); color: var(--ink); }
.cfg-groups button { min-height: 40px; padding: 0; border: 0; border-bottom: 1px solid transparent; margin-bottom: -1px; color: var(--mist); }
.cfg-groups button[aria-pressed="true"] { color: var(--white); border-bottom-color: var(--orange); }
.cfg-tray { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cfg-tray button { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; padding: 0 12px; border: 1px solid var(--hair); border-radius: 4px; letter-spacing: .08em; text-align: left; touch-action: none; user-select: none; -webkit-user-select: none; }
.cfg-tray button.is-held { opacity: .4; }
.cfg-tray small { font-family: var(--mono); font-size: 10.5px; font-weight: 400; letter-spacing: .04em; text-transform: none; color: var(--mist); white-space: nowrap; }
.cfg-clear { margin-top: 8px; min-height: 40px; padding: 0; border: 0; border-bottom: 1px solid currentColor; }

.cfg-ends { display: flex; justify-content: space-between; margin-top: 8px; padding-bottom: 8px; font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--mist); }
.cfg-rail { --bays: 6; position: relative; height: 96px; border: 1px solid var(--hair); border-radius: 4px 24px 24px 4px; overflow: hidden; }
.cfg-slots { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--bays), minmax(0, 1fr)); }
.cfg-slot { display: grid; place-items: center; border-right: 1px dashed var(--hair); font-family: var(--mono); font-size: 11px; color: var(--mist); transition: background .2s; }
.cfg-slot:last-child { border-right: 0; }
.cfg-slot.is-target { background: rgba(242, 149, 12, .22); }
.cfg-blocks { position: absolute; inset: 0; }
.cfg-block {
  --at: 0; --span: 1; position: absolute; top: 8px; bottom: 8px;
  left: calc(var(--at) * 100% / var(--bays) + 4px); width: calc(var(--span) * 100% / var(--bays) - 8px);
  display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 0 4px 0 12px; overflow: hidden;
  background: var(--white); color: var(--ink); border-radius: 3px; cursor: grab;
  font-size: 12px; font-weight: 600; touch-action: none; user-select: none; -webkit-user-select: none;
  transition: left .4s cubic-bezier(.2, .8, .2, 1), opacity .2s;
}
.cfg-block span { min-width: 0; line-height: 1.15; }
.cfg-block.is-held { opacity: .25; }
.cfg-block:active { cursor: grabbing; }
.cfg-out { position: relative; flex: none; width: 24px; height: 32px; padding: 0; background: none; border: 0; cursor: pointer; }
.cfg-out::before, .cfg-out::after { content: ''; position: absolute; left: 6px; right: 6px; top: 50%; height: 1px; background: var(--ink); transform: rotate(45deg); }
.cfg-out::after { transform: rotate(-45deg); }
/* narrow bays: the name stands up, so nothing is cut off */
.cfg-rail.is-tight .cfg-block { flex-direction: column; justify-content: center; align-items: center; padding: 4px 0; font-size: 10.5px; text-align: center; }
.cfg-rail.is-tight .cfg-block[style*="--span: 1"] span { writing-mode: vertical-rl; rotate: 180deg; white-space: nowrap; }
.cfg-rail.is-tight .cfg-out { width: 20px; height: 20px; }
.cfg-rail.is-tight .cfg-out::before, .cfg-rail.is-tight .cfg-out::after { left: 4px; right: 4px; }
.cfg-ghost {
  position: fixed; left: 0; top: 0; z-index: 90; pointer-events: none; opacity: 0;
  display: flex; align-items: center; padding: 0 12px; background: var(--orange); color: var(--ink);
  border-radius: 3px; font-size: 12px; font-weight: 600; box-shadow: 0 12px 28px rgba(0, 0, 0, .5);
}
.cfg-ghost.is-on { opacity: 1; }
.cfg-readout { margin-top: 16px; font-size: clamp(15px, 1.5vw, 20px); font-weight: 300; font-variant-numeric: tabular-nums; }
.cfg-note { min-height: 24px; margin-top: 4px; font-size: 14px; color: var(--orange); }

.cfg-roles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cfg-roles button { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--hair); border-radius: 4px; text-align: left; letter-spacing: .08em; }
.cfg-roles button[aria-pressed="true"] { border-color: var(--orange); }
.cfg-roles small { margin-top: -8px; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--mist); }
.cfg-mini { --bays: 8; --len: 6; position: relative; display: block; height: 16px; width: calc(var(--len) * 100% / var(--bays)); border-bottom: 1px solid var(--hair); }
.cfg-mini b { position: absolute; top: 0; bottom: 2px; left: calc(var(--at) * 100% / var(--len) + 1px); width: calc(var(--span) * 100% / var(--len) - 2px); background: var(--white); border-radius: 1px; }
.cfg-mini b[data-group="People"], .cfg-key [data-group="People"]::before { background: var(--mist); }
.cfg-mini b[data-group="Goods"], .cfg-mini b[data-group="Freight"], .cfg-key [data-group="Goods"]::before { background: var(--hair); box-shadow: inset 0 0 0 1px var(--mist); }
.cfg-key { list-style: none; display: flex; gap: 24px; margin: 12px 0 0; padding: 0; font-size: 12px; color: var(--mist); }
.cfg-key li { display: flex; align-items: center; gap: 8px; }
.cfg-key li::before { content: ''; width: 16px; height: 8px; background: var(--white); border-radius: 1px; }

/* ---------- content pages ---------- */
.page-hero-bg { filter: none; object-position: 70% 50%; }
.split-media img, .sector-card img { filter: none; }
.sector-card::after { background: linear-gradient(transparent 45%, rgba(3, 4, 8, .9)); }
.pillars { margin-bottom: 0; }
.num { text-transform: uppercase; }

@media (max-width: 760px), (orientation: portrait) and (max-width: 1100px) {
  .hero { grid-template-columns: 1fr; padding-bottom: 72px; }
  .hero-product { order: -1; width: 100%; }
  .hero-product img { width: 112%; margin: 0 -6%; }
  .coords { display: block; position: static; transform: none; margin-top: 16px; }
  .scroll-cue { display: none; }
  .seq { left: 50%; top: 32%; width: 118vw; }
  .slide-unit .panel { width: auto; }
  .slide-fleet .panel { width: auto; background: linear-gradient(transparent, var(--paper) 26%); }
  .scale-stage { left: 16px; right: 16px; top: 88px; bottom: 40%; }
  .lineup figcaption { font-size: 10px; letter-spacing: .08em; }
  .fleet-type { grid-template-columns: minmax(0, 1fr); }
  .hl-stage { top: 104px; }
  .configure { padding-top: 88px; }
  .cfg { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-template-areas: "intro" "stage" "parts" "other" "fine"; gap: 24px; }
  .cfg-intro .lead { display: none; }
  .cfg-airframe { order: 2; }
  .cfg-rail { height: 120px; }
  .cfg-block { flex-direction: column; justify-content: center; align-items: center; gap: 2px; padding: 4px 0; font-size: 10.5px; text-align: center; }
  .cfg-block[style*="--span: 1"] span { writing-mode: vertical-rl; rotate: 180deg; white-space: nowrap; }
  .cfg-out { height: 24px; }
  .cfg-roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-product, .hero-copy > * { animation: none; }
}
/* short phones: the story text needs the room */
@media (max-width: 760px) and (max-height: 760px) {
  .beats { min-height: 136px; }
}
