/** Shopify CDN: Minification failed

Line 2128:2 Unexpected "@media"

**/
/* proto/sections/01-announce.html */
  /* A "Flight Deck" announce: one slim night bar (#070B12) at the very top, Geist Mono capitals in white, the two promises
     split by a small cyan light that blinks like a cabin indicator. The whole bar is a link down to the buy box.
     Colours are this file's own names (spec values), so the bar keeps its look whatever the base tokens say. */
  .rg-announce {
    --rg-an-ground: #070B12; --rg-an-ink: #fff; --rg-an-glow: #5BE3FF; --rg-an-glow-rgb: 91, 227, 255;
    position: relative; z-index: 2; padding: 0; background: var(--rg-an-ground);
  }
  .rg-announce__link {
    position: relative; display: flex; align-items: center; justify-content: center;
    min-height: 36px; padding: 0 16px; color: var(--rg-an-ink); text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }
  .rg-announce__msg {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center; column-gap: 12px; row-gap: 2px;
    padding: 8px 0; text-align: center;
    font-family: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 500;
    font-size: 10.5px; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase;
  }
  .rg-announce__part {
    background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat;
    background-position: 0 100%; background-size: 0 1px; padding-bottom: 2px; margin-bottom: -2px;
    transition: background-size .35s cubic-bezier(.2, .7, .2, 1);
  }
  .rg-announce__dot {
    flex: none; width: 4px; height: 4px; border-radius: 50%; background: var(--rg-an-glow);
    box-shadow: 0 0 8px rgba(var(--rg-an-glow-rgb), .9);
    animation: rg-announce-blink 2.2s ease-in-out infinite;
  }
  .rg-announce__link:hover .rg-announce__part { background-size: 100% 1px; }
  .rg-announce__link:focus-visible { outline: 2px solid var(--rg-an-glow); outline-offset: -3px; border-radius: 6px; }
  @keyframes rg-announce-blink { 0%, 100% { opacity: 1; } 50% { opacity: .15; } }
  @media (min-width: 400px) {
    .rg-announce__msg { font-size: 11px; letter-spacing: .09em; column-gap: 14px; }
  }
  @media (min-width: 750px) {
    .rg-announce__link { min-height: 36px; }
    .rg-announce__msg { font-size: 11.5px; column-gap: 16px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .rg-announce__dot { animation: none; }
    .rg-announce__part { transition: none; }
  }
/* proto/sections/02-header.html */
  /* Clean sticky header on a frosted white bar (the glass sits on a pseudo element):
       left   the menu button: the photoreal passport with MENU in Geist Mono capitals under it, opening the side
              drawer below (core.js modal "menu");
       centre the CEYLA wordmark in Michroma capitals, same .35em tracking, drawn a touch bolder with a hairline text
              stroke in its own colour (Michroma has one weight);
       right  the photoreal silver carry-on with the pack count, opening the cart drawer (91-cart, data-rg-modal="pack").
     Both buttons are the same size so the wordmark stays centred. Nothing moves on hover or at rest (Henri), only the
     drawer slides in when asked. The drawer sits beside the header (not inside it) so it layers above the sticky bar. */
  .rg-header {
    --rg-hd-ink: #0B0F14; --rg-hd-mut: #56606E; --rg-hd-a: #0A5CFF;
    position: sticky; top: 0; z-index: 40; padding: 0; color: var(--rg-hd-ink);
    font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  .rg-header::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: rgba(255, 255, 255, .88); border-bottom: 1px solid rgba(11, 15, 20, .07);
    -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  }
  .rg-header__bar {
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
    max-width: 1240px; margin: 0 auto; height: 60px; padding: 0 10px;
  }
  .rg-header__start { display: flex; justify-content: flex-start; }
  .rg-header__end { display: flex; justify-content: flex-end; }
  .rg-header__brand {
    justify-self: center; color: var(--rg-hd-ink); text-decoration: none;
    display: flex; flex-direction: column; align-items: center;
    font-family: "Michroma", "Geist", system-ui, sans-serif; font-weight: 400; font-size: 17px; line-height: 1;
  }
  .rg-header__word {
    letter-spacing: .35em; margin-right: -.35em; text-transform: uppercase;
    -webkit-text-stroke: .8px currentColor; paint-order: stroke fill;
  }
  /* slogan under the wordmark (Henri 10-18), small mono capitals */
  .rg-header__slogan {
    margin-top: 5px; white-space: nowrap;
    font-family: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace; font-weight: 500;
    font-size: 8px; line-height: 1; letter-spacing: .16em; margin-right: -.16em; text-transform: uppercase;
    color: var(--rg-hd-mut, #56606E);
  }
  .rg-header__brand:hover { color: var(--rg-hd-ink); }

  /* the two icon buttons: one size, no frame, no hover motion */
  .rg-header__btn {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 52px; height: 52px; padding: 0; margin: 0; border: 0; background: none; color: var(--rg-hd-ink); cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .rg-header__pass { display: block; width: 32px; height: 32px; max-width: none; object-fit: contain; }
  .rg-header__mlabel {
    display: block; margin-top: 1px;
    font-family: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace; font-weight: 500;
    font-size: 9.5px; line-height: 1; letter-spacing: .14em; margin-right: -.14em; text-transform: uppercase;
  }
  .rg-header__suit { display: block; width: 34px; height: 34px; max-width: none; object-fit: contain; }
  .rg-header__count {
    position: absolute; top: 2px; right: 2px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px;
    display: grid; place-items: center; background: var(--rg-hd-a); color: #fff; box-shadow: 0 0 0 2px #fff;
    font-family: "Geist", system-ui, sans-serif; font-weight: 700; font-size: 11px; line-height: 1; font-variant-numeric: tabular-nums;
  }
  .rg-header__count[hidden] { display: none; }
  .rg-header__brand:focus-visible, .rg-header__btn:focus-visible { outline: 2px solid var(--rg-hd-a); outline-offset: 2px; border-radius: 10px; }

  @media (min-width: 750px) {
    .rg-header__bar { height: 68px; padding: 0 24px; }
    .rg-header__brand { font-size: 21px; }
    .rg-header__word { -webkit-text-stroke-width: 1px; }
    .rg-header__slogan { font-size: 9.5px; margin-top: 6px; }
    .rg-header__btn { width: 56px; height: 56px; }
    .rg-header__pass { width: 34px; height: 34px; }
    .rg-header__mlabel { font-size: 10px; }
    .rg-header__suit { width: 36px; height: 36px; }
  }

  /* the menu drawer: a white panel from the left over a soft scrim (core.js adds is-open, locks the page,
     traps focus, closes on Escape, on the scrim, on the cross and when a link is followed) */
  .rg-header__drawer {
    position: fixed; inset: 0; z-index: 1200; display: flex; justify-content: flex-start;
    visibility: hidden; pointer-events: none; transition: visibility 0s linear .3s;
    color: var(--rg-hd-ink, #0B0F14); font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  .rg-header__drawer.is-open { visibility: visible; pointer-events: auto; transition: none; }
  .rg-header__scrim { position: absolute; inset: 0; background: rgba(7, 11, 18, .42); opacity: 0; transition: opacity .3s; }
  .rg-header__drawer.is-open .rg-header__scrim { opacity: 1; }
  .rg-header__panel {
    position: relative; z-index: 1; display: flex; flex-direction: column; width: min(360px, 86vw); height: 100%;
    padding: 18px 22px 26px; overflow-y: auto; overscroll-behavior: contain; background: #fff;
    box-shadow: 20px 0 60px -30px rgba(11, 15, 20, .45);
    transform: translate3d(-100%, 0, 0); transition: transform .3s cubic-bezier(.2, .7, .2, 1);
  }
  .rg-header__drawer.is-open .rg-header__panel { transform: none; }
  .rg-header__panel:focus { outline: none; }
  .rg-header__dhead {
    display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; margin-bottom: 6px;
    border-bottom: 1px solid rgba(11, 15, 20, .08);
  }
  .rg-header__dmark {
    font-family: "Michroma", "Geist", system-ui, sans-serif; font-size: 15px; line-height: 1; letter-spacing: .35em;
    text-transform: uppercase; -webkit-text-stroke: .7px currentColor; paint-order: stroke fill; color: #0B0F14;
  }
  .rg-header__x {
    position: relative; width: 40px; height: 40px; margin-right: -8px; padding: 0; border: 0; background: none; cursor: pointer;
    color: #0B0F14;
  }
  .rg-header__x span::before, .rg-header__x span::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 1.6px; margin: -.8px 0 0 -9px;
    border-radius: 2px; background: currentColor; transform: rotate(45deg);
  }
  .rg-header__x span::after { transform: rotate(-45deg); }
  .rg-header__links { margin: 0; padding: 0; list-style: none; }
  .rg-header__link {
    display: flex; align-items: center; min-height: 54px; border-bottom: 1px solid rgba(11, 15, 20, .07);
    color: #0B0F14; text-decoration: none; font-size: 19px; font-weight: 500; letter-spacing: -.015em;
  }
  .rg-header__link:hover { color: #0B0F14; }
  .rg-header__x:focus-visible, .rg-header__link:focus-visible { outline: 2px solid #0A5CFF; outline-offset: 2px; border-radius: 6px; }
  .rg-header__note {
    margin: auto 0 0; padding-top: 24px;
    font-family: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace; font-size: 10.5px; line-height: 1.5;
    letter-spacing: .1em; text-transform: uppercase; color: #56606E;
  }
  @media (prefers-reduced-motion: reduce) {
    .rg-header__scrim, .rg-header__panel { transition: none; }
  }
/* proto/sections/03-ticker.html */
  /* Flags band under the header (redesign 2026-10-18, Henri: the first version looked busy). One slim, calm band:
     the faintest sky tint between two hairlines, a fixed label on the left in Geist Mono capitals
     ("WORKS IN 45 COUNTRIES · 5 CONTINENTS", stacked on phones), then a slow continuous marquee of every country the
     adapter fits (countries.json, fit yes), Asian countries first: a rounded 4:3 flag with a fine border and soft shadow,
     the name in Geist, a small dot between countries. Site fonts only.
     Pure CSS: the list is written twice and the track moves by half its width, so the loop never shows a gap.
     Shows without script. Hover or focus pauses it. Reduced motion: no movement, a row you can swipe, the loop copy hidden. */
  .rg-ticker {
    --rg-tk-ink: #0B0F14; --rg-tk-mut: #56606E; --rg-tk-hair: rgba(11, 15, 20, .07); --rg-tk-dot: #C3CDDA;
    --rg-tk-ground: rgba(250, 252, 255, .82);   /* light glass strip over the flight world (kit/GLASS.md) */
    position: relative; z-index: 1; padding: 0; margin-top: -1px; color: var(--rg-tk-ink);   /* top hairline tucks under the header's own line */
    font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  .rg-ticker__band {
    display: flex; align-items: center; height: 60px; overflow: hidden;
    background: var(--rg-tk-ground); border-top: 1px solid var(--rg-tk-hair); border-bottom: 1px solid var(--rg-tk-hair);
    -webkit-backdrop-filter: saturate(1.35) blur(16px); backdrop-filter: saturate(1.35) blur(16px);
  }
  .rg-ticker__label {
    flex: none; display: flex; flex-direction: column; justify-content: center; gap: 3px; align-self: stretch;
    margin: 0; padding: 0 14px 0 16px; border-right: 1px solid var(--rg-tk-hair);
    font-family: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace; font-weight: 500;
    font-size: 9.5px; line-height: 1; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap;
    color: var(--rg-tk-mut);
  }
  .rg-ticker__lb { color: var(--rg-tk-ink); font-weight: 600; }
  .rg-ticker__la { color: var(--rg-tk-ink); font-weight: 800; }
  .rg-ticker__sep { display: none; }
  .rg-ticker__view {
    position: relative; flex: 1; min-width: 0; height: 100%; overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 44px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 44px), transparent);
  }
  .rg-ticker__track { display: flex; width: max-content; height: 100%; animation: rg-ticker-run 160s linear infinite; }
  .rg-ticker__band:hover .rg-ticker__track, .rg-ticker__band:focus-within .rg-ticker__track { animation-play-state: paused; }
  .rg-ticker__list { display: flex; flex: none; align-items: center; margin: 0; padding: 0; list-style: none; }
  .rg-ticker__item {
    position: relative; display: flex; align-items: center; gap: 10px; flex: none; margin-right: 52px;
    white-space: nowrap;
  }
  /* the small dot between two countries, centred in the gap */
  .rg-ticker__item::after {
    content: ""; position: absolute; right: -28px; top: 50%; width: 4px; height: 4px; margin-top: -2px; border-radius: 50%;
    background: var(--rg-tk-dot);
  }
  .rg-ticker__flag {
    display: block; flex: none; width: 37px; height: 28px; max-width: none; border-radius: 4px; object-fit: cover;
    box-shadow: 0 0 0 1px rgba(11, 15, 20, .10), 0 3px 8px -3px rgba(11, 15, 20, .22);
  }
  .rg-ticker__name { font-size: 15px; font-weight: 500; line-height: 1; letter-spacing: -.01em; color: var(--rg-tk-ink); }
  @keyframes rg-ticker-run { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
  @media (min-width: 750px) {
    .rg-ticker__band { height: 64px; }
    .rg-ticker__label {
      flex-direction: row; align-items: center; gap: 0; padding: 0 28px 0 32px;
      font-size: 11px; letter-spacing: .12em;
    }
    .rg-ticker__la { margin-right: .6em; }
    .rg-ticker__sep { display: inline; margin: 0 .7em; color: var(--rg-tk-dot); }
    .rg-ticker__item { margin-right: 60px; }
    .rg-ticker__item::after { right: -32px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .rg-ticker__track { animation: none; width: auto; }
    .rg-ticker__view { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    .rg-ticker__view::-webkit-scrollbar { display: none; }
    .rg-ticker__list { padding-left: 20px; }
    .rg-ticker__dup { display: none; }
  }
/* proto/sections/04-buy.html */
.rg-buy {
  padding-block: 18px 56px; z-index: 1;
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
  margin-top: clamp(10px, 1.6vw, 22px);
}
.rg-buy__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 44px; align-items: start; }

/* ---- gallery ---- */
.rg-buy__sticky { position: sticky; top: 110px; }
.rg-buy__stage { position: relative; border-radius: 24px; overflow: hidden; background: #fff; box-shadow: var(--rg-shadow-lg); }
.rg-buy__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; outline: none; }
.rg-buy__track::-webkit-scrollbar { display: none; }
.rg-buy__slide { position: relative; flex: 0 0 100%; aspect-ratio: 1 / 1; scroll-snap-align: start; scroll-snap-stop: always; background: var(--rg-sky); }
.rg-buy__slide img, .rg-buy__slide video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rg-buy__slide--film { background: #0A1424; }
.rg-buy__slide--film video { opacity: 0; transition: opacity .5s; }
.rg-buy__slide--film.is-playing video { opacity: 1; }
.rg-buy__count { position: absolute; right: 14px; bottom: 14px; z-index: 2; font-size: 11px; background: rgba(11, 15, 20, .72); color: #fff; border-radius: 999px; padding: 5px 10px; }
.rg-buy__count b { font-weight: 600; }
.rg-buy__arrow { position: absolute; top: 50%; z-index: 2; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--rg-text); font-size: 26px; line-height: 1; display: grid; place-items: center; padding: 0 0 3px; box-shadow: 0 6px 18px -8px rgba(11, 15, 20, .4); }
.rg-buy__arrow--prev { left: 12px; }
.rg-buy__arrow--next { right: 12px; }
.rg-buy__thumbs { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.rg-buy__thumb { position: relative; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; background: #fff; aspect-ratio: 1 / 1; }
.rg-buy__thumb img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.rg-buy__thumb.is-on { border-color: var(--rg-accent); }
.rg-buy__play { position: absolute; inset: 0; margin: auto; width: 24px; height: 24px; border-radius: 50%; background: rgba(11, 15, 20, .72); color: #fff; font-size: 9px; display: grid; place-items: center; padding-left: 2px; }

/* ---- the box ---- */
.rg-buy__box { background: rgba(255, 255, 255, .95); border: 1px solid rgba(11, 15, 20, .06); border-radius: 28px; padding: 30px 30px 26px; box-shadow: var(--rg-shadow-lg); }
.rg-buy__eyebrow { font-size: 11px; font-weight: 600; color: var(--rg-accent-text); margin-bottom: 10px; }
.rg-buy__title { font-family: var(--rg-font-head); font-size: clamp(30px, 3.6vw, 50px); line-height: .98; letter-spacing: -.045em; font-weight: 700; text-wrap: balance; }
.rg-buy__proof { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; text-decoration: none; color: var(--rg-text-2); font-size: 13.5px; line-height: 1.3; }
.rg-buy__faces { display: flex; }
.rg-buy__faces img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; border: 2px solid #fff; margin-left: -10px; box-shadow: 0 0 0 1px rgba(11, 15, 20, .08); }
.rg-buy__faces img:first-child { margin-left: 0; }
.rg-buy__proof-txt { display: flex; flex-direction: column; }
.rg-buy__stars { color: var(--rg-star); letter-spacing: 1px; font-size: 13px; }
.rg-buy__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: 16px; }
.rg-buy__now { font-size: 34px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.rg-buy__save { align-self: center; font-size: 12px; font-weight: 700; color: #fff; background: var(--rg-accent); border-radius: 999px; padding: 5px 11px; }
.rg-buy__lede { margin-top: 10px; font-size: 15.5px; line-height: 1.45; color: var(--rg-text-2); }
.rg-buy__bens { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.rg-buy__bens li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.2; padding: 6px 10px 6px 6px; border-radius: 14px; background: var(--rg-sky); }
.rg-buy__bens img { width: 42px; height: 42px; object-fit: contain; flex: none; }

/* ---- version ---- */
.rg-buy__ver { margin-top: 18px; }
.rg-buy__pills { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rg-buy__pill { min-height: 46px; padding: 8px 12px; border-radius: 999px; border: 1.5px solid var(--rg-line); background: #fff; font-size: 14px; font-weight: 600; transition: border-color .2s, box-shadow .2s; }
.rg-buy__pill em { font-style: normal; font-family: var(--rg-font-mono); font-size: 11px; font-weight: 600; color: var(--rg-accent-text); letter-spacing: .03em; }
.rg-buy__pill.is-active { border-color: var(--rg-accent); box-shadow: 0 0 0 3px rgba(var(--rg-accent-rgb), .12); }
.rg-buy__colours { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.rg-buy__colours .rg-mono { font-size: 10.5px; color: var(--rg-muted); margin-right: 2px; }
.rg-buy__colours[hidden], .rg-buy__pro-note[hidden] { display: none; }
.rg-buy__dot { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 8px; border-radius: 999px; border: 1.5px solid var(--rg-line); background: #fff; font-size: 13px; font-weight: 600; }
.rg-buy__dot.is-active { border-color: var(--rg-accent); }
.rg-buy__sw { width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .22); }
.rg-buy__sw--w { background: #fff; }
.rg-buy__sw--b { background: #14161a; }
.rg-buy__pro-note { margin-top: 8px; font-size: 12.5px; color: var(--rg-muted); }

/* ---- the three windows: the card IS the porthole ---- */
.rg-buy__wins { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.rg-buy__win { position: relative; display: block; padding: 0; border: 0; background: none; text-align: center; border-radius: 50% / 36%; transition: transform .25s var(--rg-ease); -webkit-tap-highlight-color: transparent; }
.rg-buy__bezel {
  position: relative; display: block; aspect-ratio: 3 / 5.3; padding: 8.5%;
  border-radius: 50% / 36%;
  background: linear-gradient(160deg, #fbfcfd 0%, #eceff3 55%, #dfe3e8 100%);
  box-shadow: 0 16px 30px -18px rgba(11, 15, 20, .45), 0 2px 5px rgba(11, 15, 20, .10),
              inset 0 2px 1px rgba(255, 255, 255, .95), inset 0 -3px 6px rgba(11, 15, 20, .10);
  transition: box-shadow .3s;
}
.rg-buy__glass {
  position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden;
  border-radius: 50% / 35%;
  background: #3E8EE6;
  box-shadow: 0 0 0 3px #d4d9df, 0 0 0 4px rgba(11, 15, 20, .12), inset 0 4px 10px rgba(11, 15, 20, .28);
}
.rg-buy__sky { position: absolute; inset: 0; width: 100%; background: url('/cdn/shop/files/ceyla-travel-sky-above-clouds-1d69becd.jpg?v=1792362714') 50% 4% / auto 175% no-repeat; }
.rg-buy__shade { position: absolute; left: 0; right: 0; top: 0; height: 9%; background: linear-gradient(180deg, #e7eaee, #d3d8de); box-shadow: 0 2px 4px rgba(11, 15, 20, .22); border-radius: 0 0 40% 40% / 0 0 100% 100%; }
.rg-buy__glass::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(125deg, rgba(255, 255, 255, .35) 0%, rgba(255, 255, 255, 0) 38%); pointer-events: none; }
.rg-buy__prods { position: relative; z-index: 1; flex: 1 1 0; min-height: 0; margin: 14% 9% 5%; display: grid; place-content: center; justify-items: center; align-items: center; }
/* centred in the free space between the shade and the plate, whatever the plate's height (Henri 10-18: "center them") */
.rg-buy__wp { max-height: 100%; }
.rg-buy__wp { position: static; display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(11, 15, 20, .3)); }
.rg-buy__wp[hidden] { display: none; }
.rg-buy__win--1 .rg-buy__prods { grid-template-columns: 66%; }
.rg-buy__win--2 .rg-buy__prods { grid-template-columns: repeat(2, 50%); }
.rg-buy__win--4 .rg-buy__prods { grid-template-columns: repeat(2, 41%); }
.rg-buy__info {
  /* white plate at the foot of the glass (Henri 10-18: "go back to when there was no clouds and just white") */
  position: relative; z-index: 1; flex: none; padding: 8px 5% 14%;
  display: flex; flex-direction: column; align-items: center; gap: 1px;
  border-radius: 16px 16px 0 0; background: rgba(255, 255, 255, .94);
  box-shadow: 0 -8px 18px -10px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9);
  color: var(--rg-text);
}
.rg-buy__plate { display: contents; }
.rg-buy__wname { font-weight: 700; font-size: 13px; line-height: 1.1; }
.rg-buy__wcount { font-size: 11.5px; color: var(--rg-text-2); }
.rg-buy__wprice { margin-top: 3px; font-size: 21px; font-weight: 700; letter-spacing: -.025em; line-height: 1.05; }
.rg-buy__wrow { display: flex; flex-wrap: nowrap; align-items: baseline; justify-content: center; column-gap: 4px; margin-top: 3px; white-space: nowrap; }
.rg-buy__wrow .rg-buy__wprice { margin-top: 0; }
.rg-buy__wwas { font-size: 11px; font-weight: 500; color: var(--rg-text-2); text-decoration-thickness: 1.5px; font-variant-numeric: tabular-nums; }
.rg-buy__weach { font-size: 11.5px; font-weight: 600; color: var(--rg-text-2); }
.rg-buy__weach--pad { visibility: hidden; }
.rg-buy__wsave { text-shadow: none; box-shadow: 0 4px 10px -4px rgba(10, 92, 255, .55); margin-top: 4px; font-family: var(--rg-font-mono); font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: #fff; background: var(--rg-accent); border-radius: 999px; padding: 3px 8px; }
.rg-buy__tag { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); z-index: 3; white-space: nowrap; font-family: var(--rg-font-mono); font-size: 9.5px; font-weight: 600; letter-spacing: .08em; padding: 4px 10px; border-radius: 999px; background: var(--rg-text); color: #fff; }
.rg-buy__win.is-active .rg-buy__tag { background: var(--rg-accent); }
.rg-buy__win.is-active .rg-buy__bezel {
  box-shadow: 0 0 0 3px var(--rg-accent), 0 0 26px 4px rgba(var(--rg-accent-rgb), .45), 0 18px 34px -16px rgba(var(--rg-accent-rgb), .6),
              inset 0 2px 1px rgba(255, 255, 255, .95), inset 0 -3px 6px rgba(11, 15, 20, .10);
}
.rg-buy__win:focus-visible { outline: 2px solid var(--rg-accent); outline-offset: 4px; }

/* ---- countdown: Henri's reference box, branded ---- */
.rg-buy__cd { display: grid; grid-template-columns: auto minmax(28px, 1fr) auto; align-items: center; gap: 14px; margin-top: 18px; padding: 12px 16px; border: 1.5px solid var(--rg-accent); border-radius: 14px; background: #F7FAFF; }
.rg-buy__cd-l, .rg-buy__cd-r { display: flex; flex-direction: column; gap: 2px; line-height: 1.1; }
.rg-buy__cd-r { align-items: flex-end; text-align: right; }
.rg-buy__cd-k { font-family: var(--rg-font-body); font-size: 14px; font-weight: 500; color: var(--rg-text-2); white-space: nowrap; }
.rg-buy__cd-t { font-family: var(--rg-font-mono); font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .01em; color: var(--rg-text); line-height: 1.05; }
.rg-buy__cd-d { font-family: var(--rg-font-body); font-size: 22px; font-weight: 700; color: var(--rg-accent); letter-spacing: -.01em; white-space: nowrap; }
.rg-buy__cd-arrow { position: relative; display: flex; align-items: center; justify-content: center; min-height: 44px; }
.rg-buy__cd-arrow::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1.5px dashed rgba(var(--rg-accent-rgb), .35); }
.rg-buy__cd-arrow img { position: relative; width: 56px; height: 56px; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(11, 15, 20, .18)); }
.rg-buy__cd-note { margin-top: 3px; font-family: var(--rg-font-body); font-size: 12px; font-weight: 600; color: var(--rg-accent); white-space: nowrap; }

.rg-buy__add { margin-top: 12px; font-size: 18px; }

.rg-buy__guar { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 12px; padding: 10px 14px; border: 1px solid var(--rg-line); border-radius: 14px; background: #fff; }
.rg-buy__guar img { width: 52px; height: 52px; object-fit: contain; }
.rg-buy__guar b { display: block; font-size: 15px; letter-spacing: -.01em; }
.rg-buy__guar span span { font-size: 13px; color: var(--rg-muted); }
.rg-buy__guar-a { font-size: 13px; font-weight: 600; color: var(--rg-accent-text); text-decoration: underline; text-underline-offset: 3px; padding: 12px 2px; }
.rg-buy__pay { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 12px; }
.rg-buy__pay img { height: 24px; width: 38px; object-fit: contain; border: 1px solid var(--rg-line); border-radius: 5px; background: #fff; padding: 2px; }

/* ---- delivery: flight itinerary strip, graphite on white, hairlines ---- */
.rg-buy__itin { display: grid; grid-template-columns: auto minmax(18px, 1fr) auto minmax(18px, 1fr) auto; align-items: center; gap: 10px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--rg-line); border-radius: 14px; background: #fff; }
.rg-buy__stop { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rg-buy__stop:nth-child(3) { align-items: center; text-align: center; }
.rg-buy__stop:last-child { align-items: flex-end; text-align: right; }
.rg-buy__code { font-family: var(--rg-font-mono); font-size: 10px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--rg-muted); white-space: nowrap; }
.rg-buy__stop b { font-family: var(--rg-font-mono); font-size: 14px; font-weight: 600; color: var(--rg-text); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rg-buy__what { font-size: 12px; color: var(--rg-text-2); white-space: nowrap; }
.rg-buy__route { position: relative; height: 1px; background: rgba(11, 15, 20, .3); }
.rg-buy__route::before, .rg-buy__route::after { content: ""; position: absolute; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: var(--rg-text); }
.rg-buy__route::before { left: -2px; } .rg-buy__route::after { right: -2px; }
.rg-buy__jet { position: absolute; right: 8px; top: 50%; width: 22px; height: 22px; object-fit: contain; transform: translateY(-50%); }
.rg-buy__free { margin-top: 8px; text-align: center; font-size: 10.5px; color: var(--rg-muted); }

@keyframes rg-buy-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-24%, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
  .rg-buy__sky { animation: none; }
}

/* ---- phone ---- */
@media (max-width: 999px) {
  .rg-buy { padding-block: 10px 40px; }
  .rg-buy__grid { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .rg-buy__box { display: flex; flex-direction: column; }
  .rg-buy__guar { order: 1; }
  .rg-buy__pay { order: 2; }
  .rg-buy__bens { display: none; }   /* Henri 10-18: not on phone */
  .rg-buy__proof { order: 4; margin-top: 12px; }
  .rg-buy__itin, .rg-buy__free { order: 5; }
  .rg-buy__sticky { position: static; }
  .rg-buy__stage { border-radius: 20px; }
  .rg-buy__arrow { display: none; }
  .rg-buy__thumbs { gap: 5px; margin-top: 6px; }
  .rg-buy__thumb { border-radius: 8px; border-width: 2px; }
  .rg-buy__play { width: 16px; height: 16px; font-size: 7px; }
  .rg-buy__box { padding: 8px 12px 18px; border-radius: 22px; }
  .rg-buy__eyebrow { display: none; }
  .rg-buy__title { font-size: 24px; line-height: 1.02; }
  .rg-buy__proof { font-size: 12px; gap: 8px; flex-wrap: nowrap; }
  .rg-buy__proof .rg-sample { font-size: 9px; padding: 2px 7px; margin-left: auto; }
  .rg-buy__faces img { width: 26px; height: 26px; }
  .rg-buy__price { margin-top: 4px; }
  .rg-buy__now { font-size: 27px; }
  .rg-buy__lede { display: none; }
  .rg-buy__bens { gap: 5px; }
  .rg-buy__bens li { padding: 3px 5px 3px 2px; font-size: 10.5px; gap: 3px; border-radius: 11px; min-height: 36px; }
  .rg-buy__bens img { width: 28px; height: 28px; }
  .rg-buy__ver { margin-top: 8px; }
  .rg-buy__pill { min-height: 38px; font-size: 12.5px; padding: 4px 8px; }
  .rg-buy__pill em { font-size: 10.5px; }
  .rg-buy__pill { white-space: nowrap; }
  .rg-buy__colours { margin-top: 8px; }
  .rg-buy__dot { min-height: 38px; font-size: 12px; padding: 0 10px 0 6px; gap: 6px; }
  .rg-buy__colours { flex-wrap: nowrap; gap: 6px; }
  .rg-buy__colours .rg-mono { display: none; }
  .rg-buy__sw { width: 20px; height: 20px; }
  .rg-buy__pro-note { margin-top: 6px; font-size: 11.5px; }
  .rg-buy__wins { gap: 8px; margin-top: 12px; }
  .rg-buy__wname { font-size: 10px; line-height: 1.05; letter-spacing: -.02em; }
  .rg-buy__wcount, .rg-buy__weach { font-size: 10px; }
  .rg-buy__wprice { font-size: 15px; margin-top: 1px; }
  .rg-buy__wsave { font-size: 8.5px; padding: 2px 6px; letter-spacing: .04em; }
  .rg-buy__tag { font-size: 8px; padding: 3px 7px; top: -9px; }
  .rg-buy__info { padding: 5px 4% 13%; gap: 0; border-radius: 12px 12px 0 0; }
  .rg-buy__prods { margin: 13% 8% 4%; }
  .rg-buy__win--4 .rg-buy__prods { grid-template-columns: repeat(2, 41%); }
  .rg-buy__bezel { aspect-ratio: 3 / 5.4; }
  .rg-buy__weach { display: none; }
  .rg-buy__wrow { flex-direction: column; align-items: center; margin-top: 1px; }
  .rg-buy__wwas { font-size: 9.5px; text-decoration-thickness: 1px; }
  .rg-buy__cd { gap: 10px; padding: 10px 12px; margin-top: 14px; }
  .rg-buy__cd-k { font-size: 13px; }
  .rg-buy__cd-t { font-size: 25px; }
  .rg-buy__cd-d { font-size: 19px; }
  .rg-buy__itin { gap: 6px; padding: 11px 10px; }
  .rg-buy__code { font-size: 9px; letter-spacing: .06em; }
  .rg-buy__stop b { font-size: 12px; }
  .rg-buy__what { font-size: 11px; }
  .rg-buy__jet { width: 18px; height: 18px; right: 2px; }
  .rg-buy__guar { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; padding: 8px 12px; }
  .rg-buy__guar img { width: 48px; height: 48px; }
}
@media (max-width: 360px) {
  .rg-buy__pill { font-size: 12px; padding: 4px 6px; }
  .rg-buy__pill em { font-size: 9.5px; letter-spacing: 0; }
  .rg-buy__bens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rg-buy__cd-arrow { visibility: hidden; }
  .rg-buy__cd-t { font-size: 22px; }
}
/* proto/sections/05-press.html */
  /* A "Flight Deck" press strip: "As Seen in" with a small dashed "Sample" tag (the names are stand-ins until real
     coverage exists), then six publication names as TEXT wordmarks, each set in a face that suits it (no logo files):
     a Didone serif, serif capitals, a rounded heavy sans, spaced sans capitals, wide heavy capitals, a tight bold sans.
     Desktop (1200 px and up, where all six fit beside the title): one calm row. Below that: the names glide as a marquee (the row written twice,
     the copy hidden from screen readers). Reduced motion: no glide, a row you can swipe. */
  .rg-press {
    --rg-pr-ink: #0B0F14; --rg-pr-mut: #56606E; --rg-pr-line: #E2E8F0; --rg-pr-line2: #C3CDDA;
    --rg-pr-name: rgba(11, 15, 20, .62);
    --rg-pr-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    position: relative; z-index: 1; padding: 26px 0;
    /* glass panel over the flight world (kit/GLASS.md) */
    margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
    border-radius: var(--rg-pane-r, 28px);
    background: var(--rg-pane-light, rgba(255, 255, 255, .88));
    -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
    border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
    box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
    color: var(--rg-pr-ink); font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  .rg-press__in {
    display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
    max-width: 1240px; margin: 0 auto; padding: 0 16px;
  }
  .rg-press__head { display: flex; align-items: center; gap: 10px; flex: none; }
  .rg-press__title { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--rg-pr-ink); }
  .rg-press__tag {
    display: inline-flex; align-items: center; padding: 3px 9px; border: 1px dashed var(--rg-pr-line2); border-radius: 999px;
    font-family: var(--rg-pr-mono); font-size: 10px; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase;
    color: var(--rg-pr-mut); white-space: nowrap;
  }
  .rg-press__view {
    position: relative; width: 100%; overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 20px, #000 calc(100% - 20px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 20px, #000 calc(100% - 20px), transparent);
  }
  .rg-press__track { display: flex; width: max-content; animation: rg-press-run 36s linear infinite; }
  .rg-press__view:hover .rg-press__track { animation-play-state: paused; }
  .rg-press__row {
    display: flex; flex: none; align-items: center; gap: 34px; margin: 0; padding: 4px 34px 4px 0; list-style: none;
  }
  .rg-press__n { flex: none; white-space: nowrap; color: var(--rg-pr-name); font-size: 19px; line-height: 1.1; transition: color .25s; }
  .rg-press__view:hover .rg-press__n:hover { color: var(--rg-pr-ink); }
  /* each publication in its own face */
  .rg-press__cnt {
    font-family: "Bodoni 72", "Didot", "Bodoni MT", "Playfair Display", Georgia, "Times New Roman", serif;
    font-weight: 400; font-size: 20px; letter-spacing: .01em;
  }
  .rg-press__tl {
    font-family: "Times New Roman", Times, Georgia, serif;
    font-weight: 400; font-size: 15px; letter-spacing: .16em; text-transform: uppercase;
  }
  .rg-press__lp {
    font-family: "Arial Rounded MT Bold", "Nunito", "Varela Round", "Geist", system-ui, sans-serif;
    font-weight: 800; font-size: 20px; letter-spacing: -.03em;
  }
  .rg-press__tpg { font-weight: 600; font-size: 13.5px; letter-spacing: .2em; text-transform: uppercase; }
  .rg-press__wired { font-weight: 800; font-size: 18px; letter-spacing: .32em; margin-right: -.32em; text-transform: uppercase; }
  .rg-press__tr { font-weight: 700; font-size: 19px; letter-spacing: -.02em; }
  @keyframes rg-press-run { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

  @media (min-width: 600px) { .rg-press__in { padding: 0 32px; } }
  @media (min-width: 900px) { .rg-press { padding: 30px 0; } }
  @media (min-width: 1200px) {
    .rg-press__in { flex-direction: row; align-items: center; gap: 36px; }
    .rg-press__view { flex: 1; width: auto; -webkit-mask-image: none; mask-image: none; }
    .rg-press__track { width: 100%; animation: none; }
    .rg-press__row { flex: 1; justify-content: space-between; gap: 28px; padding: 0; }
    .rg-press__dup { display: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    .rg-press__track { animation: none; }
    .rg-press__view { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    .rg-press__view::-webkit-scrollbar { display: none; }
    .rg-press__dup { display: none; }
    .rg-press__n { transition: none; }
  }
/* proto/sections/06-deadphone.html */
.rg-deadphone {
  --dp-ink: #0B0F14;
  --dp-ink2: #2B3440;
  --dp-mut: #56606E;
  --dp-blue: #0A5CFF;
  --dp-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --dp-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --dp-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;   /* the phone's own font */
  --dp-w: 300px;   /* phone width */
  position: relative; overflow: hidden; color: var(--dp-ink); font-family: var(--dp-sans);
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-deadphone.rg-sec { padding-block: 40px 48px; }
.rg-deadphone__grid { display: grid; gap: 28px; }
.rg-deadphone__head { max-width: 640px; }
.rg-deadphone__eyebrow { margin: 0 0 14px; font-family: var(--dp-mono); font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: .1em; text-transform: uppercase; color: var(--dp-blue); }
.rg-deadphone__h2 {
  margin: 0; font-family: var(--dp-sans); font-weight: 700; font-size: clamp(36px, 5vw, 68px); line-height: 1; letter-spacing: -.045em;
  text-wrap: balance; color: var(--dp-ink);
}
.rg-deadphone__h2 em { display: block; font-style: normal; color: #6B7686; }
.rg-deadphone__sub { margin: 16px 0 0; font-size: 17px; line-height: 1.45; color: var(--dp-mut); }

/* the phone: titanium frame, black bezel, the screen inside */
.rg-deadphone__stage { display: flex; justify-content: center; }
.rg-deadphone__phone {
  position: relative; width: var(--dp-w); aspect-ratio: 9 / 19.2; padding: 9px; border-radius: calc(var(--dp-w) * .155);
  background: linear-gradient(145deg, #3B3F46, #17191D 45%, #2A2D33);
  box-shadow: 0 0 0 1.5px #5A5F67, inset 0 0 0 2px #0B0C0E, 0 50px 90px -40px rgba(11, 15, 20, .55), 0 18px 36px -18px rgba(11, 15, 20, .45);
}
.rg-deadphone__phone::before, .rg-deadphone__phone::after { content: ""; position: absolute; width: 3px; border-radius: 2px; background: #2A2D33; }
.rg-deadphone__phone::before { left: -3px; top: 22%; height: 9%; box-shadow: 0 calc(var(--dp-w) * .2) 0 #2A2D33; }
.rg-deadphone__phone::after { right: -3px; top: 27%; height: 14%; }
.rg-deadphone__screen {
  position: relative; height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: calc(var(--dp-w) * .155 - 9px);
  background: #EFEAE2; font-family: var(--dp-ui); color: #111B21;
}
.rg-deadphone__island { position: absolute; z-index: 4; top: 9px; left: 50%; width: 31%; height: 25px; transform: translateX(-50%); border-radius: 20px; background: #000; }
.rg-deadphone__bar {
  flex: none; height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 6px 22px 0 26px;
  background: #008069; color: #fff; font-size: 13px; font-weight: 600; letter-spacing: -.01em;
}
.rg-deadphone__sys { display: inline-flex; align-items: center; gap: 5px; }
.rg-deadphone__sig { display: inline-flex; align-items: flex-end; gap: 1.5px; height: 10px; }
.rg-deadphone__sig i { width: 3px; border-radius: 1px; background: #fff; }
.rg-deadphone__sig i:nth-child(1) { height: 4px; } .rg-deadphone__sig i:nth-child(2) { height: 6px; }
.rg-deadphone__sig i:nth-child(3) { height: 8px; } .rg-deadphone__sig i:nth-child(4) { height: 10px; }
.rg-deadphone__pct { font-size: 11px; font-weight: 700; color: #fff; transition: color .4s ease; }
.rg-deadphone__bat { position: relative; display: block; width: 23px; height: 11px; padding: 1.5px; border: 1.2px solid rgba(255, 255, 255, .8); border-radius: 3.5px; }
.rg-deadphone__bat::after { content: ""; position: absolute; right: -3.5px; top: 3px; width: 2px; height: 3.5px; border-radius: 0 1px 1px 0; background: rgba(255, 255, 255, .8); }
.rg-deadphone__bat i { display: block; height: 100%; width: 100%; border-radius: 1.5px; background: #34C759; transition: width .9s ease, background .4s ease; }
.rg-deadphone__phone.is-low .rg-deadphone__bat i { width: 6%; background: #FF3B30; }
.rg-deadphone__phone.is-low .rg-deadphone__pct { color: #FF6B60; }

/* the chat header */
.rg-deadphone__top { flex: none; display: flex; align-items: center; gap: 8px; padding: 6px 12px 9px 6px; background: #008069; color: #fff; }
.rg-deadphone__top svg, .rg-deadphone__input svg { display: block; width: 20px; height: 20px; flex: none; }
.rg-deadphone__back svg { width: 22px; height: 22px; }
.rg-deadphone__ava { flex: none; width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: #DFE5E7; }
.rg-deadphone__who { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.rg-deadphone__who b { font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rg-deadphone__st { font-size: 11.5px; opacity: .85; }
.rg-deadphone__phone.is-typing-in .rg-deadphone__st { font-style: italic; opacity: 1; }
.rg-deadphone__acts { display: inline-flex; gap: 16px; }

/* the thread on the patterned wallpaper; it sits on the bottom, the oldest bubble goes up */
.rg-deadphone__thread {
  flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 5px; overflow: hidden; padding: 8px 12px 8px 14px;
  background-color: #EFEAE2;
  background-image:
    radial-gradient(circle at 22% 28%, rgba(84, 101, 111, .07) 0 2.5px, transparent 3px),
    radial-gradient(circle at 70% 64%, transparent 0 5px, rgba(84, 101, 111, .06) 5.5px 6.5px, transparent 7px),
    radial-gradient(circle at 48% 86%, rgba(84, 101, 111, .06) 0 1.8px, transparent 2.3px),
    linear-gradient(45deg, transparent 46%, rgba(84, 101, 111, .05) 47% 53%, transparent 54%);
  background-size: 44px 44px, 56px 56px, 32px 32px, 24px 24px;
}
.rg-deadphone__day { align-self: center; margin: 0 0 4px; }
.rg-deadphone__day span { display: inline-block; padding: 4px 10px; border-radius: 8px; background: #fff; font-size: 11px; font-weight: 500; color: #54656F; box-shadow: 0 1px .5px rgba(11, 20, 26, .1); }
.rg-deadphone__msg {
  position: relative; max-width: 82%; margin: 3px 0 0; padding: 6px 8px 6px 9px; border-radius: 8px;
  font-size: 14px; line-height: 1.3; color: #111B21; overflow-wrap: break-word; box-shadow: 0 1px .5px rgba(11, 20, 26, .13);
}
.rg-deadphone__msg::before { content: ""; position: absolute; top: 0; width: 8px; height: 12px; background: inherit; }
.rg-deadphone__msg--in { align-self: flex-start; background: #fff; border-top-left-radius: 0; }
.rg-deadphone__msg--in::before { left: -7px; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.rg-deadphone__msg--out { align-self: flex-end; background: #D9FDD3; border-top-right-radius: 0; }
.rg-deadphone__msg--out::before { right: -7px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.rg-deadphone__meta { float: right; display: inline-flex; align-items: center; gap: 3px; margin: 6px 0 -3px 10px; font-size: 10.5px; line-height: 1; color: #667781; }
.rg-deadphone__tk { font-style: normal; font-size: 10.5px; letter-spacing: -.38em; padding-right: .38em; color: #8696A0; transition: color .3s ease; }
.rg-deadphone__msg.is-read .rg-deadphone__tk { color: #53BDEB; }
.rg-deadphone__msg--photo { width: 168px; padding: 3px; }
.rg-deadphone__msg--photo img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 6px; background: #CFE9C8; }
.rg-deadphone__msg--photo .rg-deadphone__meta { position: absolute; right: 9px; bottom: 8px; float: none; margin: 0; color: #fff; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); }
.rg-deadphone__msg--photo.is-read .rg-deadphone__tk { color: #9DE1FF; }

/* typing: three dots in a bubble (hers left, mine right), only while the script plays */
.rg-deadphone__typing { display: none; align-items: center; gap: 4px; margin: 3px 0 0; padding: 10px 12px; border-radius: 8px; box-shadow: 0 1px .5px rgba(11, 20, 26, .13); }
.rg-deadphone__typing--in { align-self: flex-start; background: #fff; border-top-left-radius: 0; }
.rg-deadphone__typing--out { align-self: flex-end; background: #D9FDD3; border-top-right-radius: 0; }
.rg-deadphone__typing i { width: 7px; height: 7px; border-radius: 50%; background: #8696A0; animation: rg-dp-dot 1s ease-in-out infinite; }
.rg-deadphone__typing i:nth-child(2) { animation-delay: .15s; }
.rg-deadphone__typing i:nth-child(3) { animation-delay: .3s; }
@keyframes rg-dp-dot { 0%, 60%, 100% { transform: none; opacity: .45; } 30% { transform: translateY(-3px); opacity: 1; } }
.rg-deadphone__phone.is-typing-in .rg-deadphone__typing--in, .rg-deadphone__phone.is-typing-out .rg-deadphone__typing--out { display: inline-flex; }
/* while it plays: bubbles not yet sent are out of the thread, a new one pops in from its corner */
.rg-deadphone__phone.is-armed [data-rg-dp-msg]:not(.is-on) { display: none; }
.rg-deadphone__phone.is-armed [data-rg-dp-msg].is-on { animation: rg-dp-pop .28s cubic-bezier(.2, .9, .3, 1.2) both; }
.rg-deadphone__msg--in.is-on { transform-origin: 0 0; }
.rg-deadphone__msg--out.is-on { transform-origin: 100% 0; }
@keyframes rg-dp-pop { from { opacity: 0; transform: scale(.86); } to { opacity: 1; transform: none; } }

/* the input bar and the home indicator */
.rg-deadphone__input { flex: none; position: relative; display: flex; align-items: center; gap: 6px; padding: 6px 8px 22px; background: #EFEAE2; }
.rg-deadphone__input::after { content: ""; position: absolute; left: 50%; bottom: 7px; width: 34%; height: 4px; border-radius: 3px; background: #111; transform: translateX(-50%); }
.rg-deadphone__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; border-radius: 20px; background: #fff; color: #8696A0; }
.rg-deadphone__ph { flex: 1; font-size: 14.5px; color: #8696A0; }
.rg-deadphone__mic { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #00A884; color: #fff; }
.rg-deadphone__mic svg { width: 19px; height: 19px; }

@media (min-width: 1000px) {
  .rg-deadphone { --dp-w: 340px; }
  .rg-deadphone.rg-sec { padding-block: 72px; }
  .rg-deadphone__grid { grid-template-columns: minmax(0, 1fr) var(--dp-w); gap: 64px; align-items: center; }
  .rg-deadphone__sub { font-size: 18px; }
  .rg-deadphone__msg { font-size: 14.5px; }
  .rg-deadphone__msg--photo { width: 190px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-deadphone__typing i, .rg-deadphone__phone.is-armed [data-rg-dp-msg].is-on { animation: none; }
  .rg-deadphone__bat i, .rg-deadphone__pct, .rg-deadphone__tk { transition: none; }
}
/* proto/sections/07-inside.html */
.rg-inside {
  --in-night: #070B12;
  --in-night2: #0E1626;
  --in-glow: #5BE3FF;
  --in-glow-rgb: 91, 227, 255;
  --in-green: #16C784;
  --in-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --in-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  position: relative; overflow: hidden; color: #fff; font-family: var(--in-sans);
  background:
    radial-gradient(55% 45% at 50% 56%, rgba(var(--in-glow-rgb), .12), rgba(var(--in-glow-rgb), 0) 70%),
    linear-gradient(rgba(255, 255, 255, .035) 1px, rgba(255, 255, 255, 0) 1px) 0 0 / 100% 64px,
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, rgba(255, 255, 255, 0) 1px) 0 0 / 64px 100%,
    var(--rg-pane-dark, rgba(7, 11, 18, .80));
  padding-block: 44px 72px;
  /* dark glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
  box-shadow: var(--rg-pane-dark-shadow, 0 40px 90px -45px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .06));
}
/* faint stars: two fixed sheets of tiny dots, the second one breathing slowly */
.rg-inside__sky, .rg-inside__sky::after { position: absolute; inset: 0; pointer-events: none; }
.rg-inside__sky {
  background:
    radial-gradient(1px 1px at 7% 12%, rgba(255, 255, 255, .75), transparent 60%),
    radial-gradient(1px 1px at 19% 64%, rgba(255, 255, 255, .5), transparent 60%),
    radial-gradient(1.5px 1.5px at 31% 22%, rgba(255, 255, 255, .6), transparent 60%),
    radial-gradient(1px 1px at 44% 86%, rgba(255, 255, 255, .45), transparent 60%),
    radial-gradient(1px 1px at 58% 8%, rgba(255, 255, 255, .7), transparent 60%),
    radial-gradient(1.5px 1.5px at 71% 38%, rgba(255, 255, 255, .5), transparent 60%),
    radial-gradient(1px 1px at 83% 74%, rgba(255, 255, 255, .6), transparent 60%),
    radial-gradient(1px 1px at 93% 18%, rgba(255, 255, 255, .55), transparent 60%),
    radial-gradient(1px 1px at 12% 92%, rgba(255, 255, 255, .4), transparent 60%),
    radial-gradient(1px 1px at 66% 94%, rgba(255, 255, 255, .45), transparent 60%);
}
.rg-inside__sky::after {
  content: "";
  background:
    radial-gradient(1.5px 1.5px at 14% 36%, rgba(var(--in-glow-rgb), .8), transparent 60%),
    radial-gradient(1px 1px at 37% 52%, rgba(255, 255, 255, .8), transparent 60%),
    radial-gradient(1.5px 1.5px at 62% 24%, rgba(255, 255, 255, .7), transparent 60%),
    radial-gradient(1px 1px at 78% 58%, rgba(var(--in-glow-rgb), .7), transparent 60%),
    radial-gradient(1.5px 1.5px at 90% 88%, rgba(255, 255, 255, .6), transparent 60%),
    radial-gradient(1px 1px at 4% 70%, rgba(255, 255, 255, .7), transparent 60%);
  animation: rg-in-twinkle 6s ease-in-out infinite alternate;
}
@keyframes rg-in-twinkle { from { opacity: .25; } to { opacity: 1; } }
.rg-inside > .rg-wrap { position: relative; z-index: 1; }

.rg-inside__head { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 820px; margin: 0 auto; }
.rg-inside__eyebrow {
  margin: 0 0 14px; font-family: var(--in-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--in-glow);
}
.rg-inside__h2 {
  margin: 0; font-family: var(--in-sans); font-weight: 700; font-size: clamp(36px, 4.6vw, 64px); line-height: 1; letter-spacing: -.045em;
  text-wrap: balance; color: #fff;
}
.rg-inside__h2 em { display: block; font-style: normal; color: rgba(255, 255, 255, .62); }
.rg-inside__sub { margin: 16px 0 0; max-width: 560px; font-size: 17px; line-height: 1.45; color: rgba(255, 255, 255, .72); }

/* stage, phones first: window on top, then the 6 callouts as one 2-column grid */
.rg-inside__stage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; margin-top: 34px; align-items: start; }
.rg-inside__col { display: contents; list-style: none; margin: 0; padding: 0; }
.rg-inside__co { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.rg-inside__co-t { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.rg-inside__ic { width: 40px; height: 40px; object-fit: contain; margin-bottom: 8px; filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .5)); }
.rg-inside__n { font-family: var(--in-mono); font-size: 10px; letter-spacing: .12em; color: var(--in-glow); }
.rg-inside__co-t b { margin-top: 2px; font-size: 15.5px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: #fff; }
.rg-inside__d { margin-top: 3px; font-size: 13.5px; line-height: 1.4; color: rgba(255, 255, 255, .66); }
.rg-inside__ln { display: none; }
.rg-inside__dot {
  order: -1; flex: none; width: 9px; height: 9px; margin-top: 4px; border-radius: 50%; background: var(--in-glow);
  animation: rg-in-ping 2.4s ease-out infinite;
}
.rg-inside__co:nth-child(2) .rg-inside__dot { animation-delay: .8s; }
.rg-inside__co:nth-child(3) .rg-inside__dot { animation-delay: 1.6s; }
@keyframes rg-in-ping {
  0% { box-shadow: 0 0 0 0 rgba(var(--in-glow-rgb), .55), 0 0 16px rgba(var(--in-glow-rgb), .85); }
  100% { box-shadow: 0 0 0 12px rgba(var(--in-glow-rgb), 0), 0 0 16px rgba(var(--in-glow-rgb), .85); }
}

/* the tall glowing window */
.rg-inside__win {
  grid-column: 1 / -1; order: -1; position: relative; margin: 0 auto 10px; width: min(300px, 78%); aspect-ratio: 9 / 16;
  border-radius: 150px / 130px; overflow: hidden; background: #0A1424;
  box-shadow: 0 0 0 10px rgba(255, 255, 255, .05), 0 0 0 11px rgba(var(--in-glow-rgb), .4), 0 0 110px -10px rgba(var(--in-glow-rgb), .45);
  animation: rg-in-breathe 5s ease-in-out infinite;
}
.rg-inside__win::after {
  content: ""; position: absolute; inset: 9px; border-radius: 140px / 120px; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(var(--in-glow-rgb), .28), inset 0 -40px 60px -30px rgba(7, 11, 18, .6);
}
@keyframes rg-in-breathe {
  0%, 100% { box-shadow: 0 0 0 10px rgba(255, 255, 255, .05), 0 0 0 11px rgba(var(--in-glow-rgb), .4), 0 0 110px -10px rgba(var(--in-glow-rgb), .4); }
  50% { box-shadow: 0 0 0 10px rgba(255, 255, 255, .06), 0 0 0 11px rgba(var(--in-glow-rgb), .55), 0 0 140px -6px rgba(var(--in-glow-rgb), .55); }
}
.rg-inside__vid { display: block; width: 100%; height: 100%; object-fit: cover; }
.rg-inside__hud {
  position: absolute; left: 50%; top: 26px; z-index: 1; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; white-space: nowrap;
  padding: 5px 10px; border-radius: 999px; border: 1px solid rgba(var(--in-glow-rgb), .35); background: rgba(7, 11, 18, .62);
  font-family: var(--in-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #fff;
}
.rg-inside__hud i { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--in-green); animation: rg-in-blink 1.4s ease-in-out infinite; }
@keyframes rg-in-blink { 0%, 100% { opacity: 1; } 50% { opacity: .15; } }

/* stats: 5 continents · 3 devices at once · 30 days money back */
.rg-inside__stats {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 36px auto 0; max-width: 880px;
  background: rgba(255, 255, 255, .1); border-radius: 18px; overflow: hidden;
}
.rg-inside__stats div { background: var(--in-night2); padding: 16px 10px; text-align: center; }
.rg-inside__stats dt { margin-bottom: 4px; font-family: var(--in-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--in-glow); }
.rg-inside__stats dd { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: #fff; text-wrap: balance; }

@media (min-width: 700px) {
  .rg-inside__stage { gap: 26px 28px; }
  .rg-inside__ic { width: 46px; height: 46px; }
  .rg-inside__stats div { padding: 20px 16px; }
  .rg-inside__stats dd { font-size: 20px; }
}
/* desktop: callouts | window | callouts, the lines reaching for the window */
@media (min-width: 1000px) {
  .rg-inside { padding-block: 60px 96px; }
  .rg-inside__sub { font-size: 18px; }
  .rg-inside__stage { grid-template-columns: minmax(0, 1fr) 360px minmax(0, 1fr); gap: 36px; align-items: center; margin-top: 56px; }
  .rg-inside__col { display: flex; flex-direction: column; gap: 64px; }
  .rg-inside__win { grid-column: auto; order: 0; width: 360px; margin: 0; border-radius: 170px / 150px; }
  .rg-inside__win::after { inset: 10px; border-radius: 160px / 140px; }
  .rg-inside__co { align-items: center; gap: 12px; }
  .rg-inside__col--l .rg-inside__co { text-align: right; }
  .rg-inside__col--l .rg-inside__ic { margin-left: auto; }
  .rg-inside__col--r .rg-inside__co { flex-direction: row-reverse; text-align: left; }
  .rg-inside__ic { width: 56px; height: 56px; }
  .rg-inside__co-t b { font-size: 17px; }
  .rg-inside__d { font-size: 14px; }
  .rg-inside__ln { display: block; flex: none; width: 56px; height: 1px; background: linear-gradient(90deg, rgba(var(--in-glow-rgb), .15), rgba(var(--in-glow-rgb), .95)); }
  .rg-inside__col--r .rg-inside__ln { background: linear-gradient(270deg, rgba(var(--in-glow-rgb), .15), rgba(var(--in-glow-rgb), .95)); }
  .rg-inside__dot { order: 0; margin-top: 0; width: 10px; height: 10px; }
  .rg-inside__stats { margin-top: 60px; }
  .rg-inside__stats dd { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-inside__sky::after, .rg-inside__dot, .rg-inside__win, .rg-inside__hud i { animation: none; }
}
/* proto/sections/08-trip.html */
.rg-trip {
  --tp-night: #070B12;
  --tp-ink: #0B0F14;
  --tp-ink2: #2B3440;
  --tp-mut: #56606E;
  --tp-blue: #0A5CFF;
  --tp-blue-rgb: 10, 92, 255;
  --tp-gold: #E3B860;
  --tp-gold-rgb: 227, 184, 96;
  --tp-gold-deep: #7A5713;   /* gold for text on the light / cream glass (about 5:1 even with night behind the glass) */
  --tp-cream: #F4EEE3;
  --tp-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --tp-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --tp-edge: calc(max(0px, (100% - var(--rg-max, 1240px)) / 2) + var(--rg-gutter, 16px));   /* content edge, inside a full-width box */
  position: relative; font-family: var(--tp-sans); color: var(--tp-ink);   /* no ground: the flight world shows between the panels */
}
.rg-trip, .rg-trip * { box-sizing: border-box; }
.rg-trip.rg-sec { padding-block: 0; }
.rg-trip__wrap { width: 100%; max-width: var(--rg-max, 1240px); margin-inline: auto; padding-inline: var(--rg-gutter, 16px); }
/* every part is its own glass panel over the flight world (kit/GLASS.md); the sky shows in the gaps.
   overflow: hidden rounds the full-bleed photos (no sticky children here). */
.rg-trip__intro, .rg-trip__ch {
  position: relative; overflow: hidden;
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
}
.rg-trip__intro, .rg-trip__ch--split {
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-trip__ch--full, .rg-trip__ch--fin {
  border: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
  box-shadow: var(--rg-pane-dark-shadow, 0 40px 90px -45px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .06));
}
.rg-trip :is(h2, h3, p) { overflow-wrap: break-word; }

/* intro (light, in the clouds) */
.rg-trip__intro { background: var(--rg-pane-light, rgba(255, 255, 255, .88)); padding: 52px 0 40px; }
.rg-trip__eyebrow { margin: 0 0 14px; font-family: var(--tp-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tp-blue); }
.rg-trip__h2 { margin: 0; max-width: 860px; font-weight: 700; font-size: clamp(34px, 5vw, 68px); line-height: 1; letter-spacing: -.045em; text-wrap: balance; color: var(--tp-ink); }
.rg-trip__sub { margin: 16px 0 0; max-width: 600px; font-size: 17px; line-height: 1.45; color: var(--tp-mut); }
.rg-trip__route { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; list-style: none; margin: 28px 0 0; padding: 0; max-width: 760px; }
.rg-trip__route li { position: relative; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rg-trip__route li::after {
  content: ""; position: absolute; top: 8px; left: 42px; right: 4px; height: 2px;
  background: repeating-linear-gradient(90deg, rgba(var(--tp-blue-rgb), .5) 0 4px, rgba(var(--tp-blue-rgb), 0) 4px 8px);
}
.rg-trip__route li:last-child::after { display: none; }
.rg-trip__route b { font-family: var(--tp-mono); font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: .06em; color: var(--tp-ink); }
.rg-trip__route span { font-size: 13px; line-height: 1.25; color: var(--tp-ink2); }
.rg-trip__route i { font-style: normal; font-family: var(--tp-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--tp-blue); }

/* shared: stop label, headline, story line, benefit chip */
.rg-trip__k { margin: 0; font-family: var(--tp-mono); font-size: 11px; font-weight: 600; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; color: var(--tp-gold); }
.rg-trip__t { margin: 10px 0 0; font-weight: 700; font-size: clamp(26px, 7vw, 34px); line-height: 1.05; letter-spacing: -.035em; text-wrap: balance; color: #fff; }
.rg-trip__t em { font-style: normal; color: var(--tp-gold); }
.rg-trip__line { margin: 10px 0 0; max-width: 560px; font-size: 16.5px; line-height: 1.45; color: rgba(255, 255, 255, .86); }
.rg-trip__win {
  display: inline-flex; align-items: center; gap: 9px; max-width: 100%; margin: 16px 0 0; padding: 7px 14px 7px 7px; border-radius: 999px;
  border: 1px solid rgba(var(--tp-gold-rgb), .6); background: rgba(7, 11, 18, .5);
  font-size: 15px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: #fff;
}
.rg-trip__win b { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--tp-gold); color: var(--tp-night); font-size: 12px; font-weight: 800; line-height: 1; }
/* light ground (Paris cream glass) */
.rg-trip__ch--split .rg-trip__k { color: var(--tp-gold-deep); }
.rg-trip__ch--split .rg-trip__t { color: var(--tp-ink); }
.rg-trip__ch--split .rg-trip__t em { color: var(--tp-gold-deep); }
.rg-trip__ch--split .rg-trip__line { color: var(--tp-ink2); }
.rg-trip__ch--split .rg-trip__win { background: #fff; border-color: rgba(122, 87, 19, .45); color: var(--tp-ink); }
.rg-trip__ch--split .rg-trip__win b { background: var(--tp-gold-deep); color: #fff; }

/* photos: a frame with the picture covering it, the stamp inside the frame */
.rg-trip__photo { position: relative; background: #0E1626; }
.rg-trip__photo > img:not(.rg-trip__stamp) { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--tp-pos, 62% 50%); }
.rg-trip__photo--cun { --tp-pos: 64% 50%; }
.rg-trip__photo--cdg { --tp-pos: 14% 50%; }
.rg-trip__photo--syd { --tp-pos: 56% 50%; }

/* the passport stamp: a real rubber stamp (web/stamp-*.png) laid on a corner of the photo, rotated a little, landing once.
   Compact, never in its own column: it overlaps the photo edge only into padding the layout already has. */
.rg-trip .rg-trip__stamp { position: absolute; z-index: 3; display: block; height: auto; max-width: none; opacity: 1; rotate: var(--tp-tilt, -6deg); pointer-events: none; }
.rg-trip__stamp--cun { width: 96px; --tp-tilt: -8deg; }
.rg-trip__stamp--cdg { width: 124px; --tp-tilt: 5deg; }
.rg-trip__stamp--syd { width: 120px; --tp-tilt: -5deg; }
/* full ink, no blending; each stamp sits where its ink reads: Cancún red on the bright view, Paris blue on the cream text
   column (header row, overlapping the photo edge a little on desktop), Sydney green on the bright harbour sky */
.rg-trip__khead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rg-trip .rg-trip__ch--split .rg-trip__stamp { position: relative; flex: none; margin: -6px 0 -4px; }
/* no transform in the transition: the kit's first-load hold parks lazy pictures off screen with a transform, and a
   transitioned transform would make the stamp fly in from there */
.rg-trip .rg-trip__stamp[data-rg-reveal] { transition: opacity .4s ease, scale .55s cubic-bezier(.3, 1.45, .5, 1); }
:where(.rg-reveal) .rg-trip .rg-trip__stamp[data-rg-reveal]:not(.is-in) { transform: none; scale: 1.4; opacity: 0; }

/* legs between stops: a graphite strip, the flight */
.rg-trip__leg {
  position: relative; z-index: 1; width: fit-content; max-width: calc(100% - 2 * var(--rg-pane-inset, 12px));
  margin: calc(var(--rg-pane-gap, 64px) * -.5) auto; padding: 9px 18px; border-radius: 999px;
  background: var(--rg-pane-dark, rgba(7, 11, 18, .80));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
  box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .6);
}
.rg-trip__leg .rg-trip__wrap { max-width: none; padding: 0; }
.rg-trip__leg p {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; margin: 0;
  font-family: var(--tp-mono); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .6);
}
.rg-trip__leg b { font-weight: 700; color: #fff; }
.rg-trip__leg i { width: 40px; height: 2px; background: repeating-linear-gradient(90deg, var(--tp-gold) 0 4px, transparent 4px 8px); }
.rg-trip__leg span { margin-left: 4px; color: var(--tp-gold); }

/* 1 · Cancún, phones: the photo, then the text on night; the photo melts into it */
.rg-trip__ch--full { background: var(--rg-pane-dark, rgba(7, 11, 18, .80)); color: #fff; }
.rg-trip__ch--full .rg-trip__photo { aspect-ratio: 1 / 1; }
.rg-trip__ch--full .rg-trip__photo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom, rgba(7, 11, 18, 0) 60%, var(--rg-pane-dark, rgba(7, 11, 18, .80)) 100%);
}
.rg-trip__ch--full .rg-trip__stamp { left: 12px; top: 12px; }
.rg-trip__fullcopy { position: relative; z-index: 1; padding: 6px 0 36px; }

/* 2 · Paris, phones: text on cream, then the photo */
.rg-trip__ch--split { background: rgba(244, 238, 227, .94); color: var(--tp-ink); }
.rg-trip__splitcopy { padding: 36px var(--rg-gutter, 16px) 36px; }
.rg-trip__ch--split .rg-trip__photo { aspect-ratio: 4 / 3; }


/* 3 · Sydney, phones: text, the panorama, the landing */
.rg-trip__ch--fin { color: #fff; background: radial-gradient(70% 40% at 50% 100%, rgba(var(--tp-gold-rgb), .12), rgba(var(--tp-gold-rgb), 0) 70%), var(--rg-pane-dark, rgba(7, 11, 18, .80)); }
.rg-trip__fincopy { padding-top: 40px; padding-bottom: 32px; text-align: center; }
.rg-trip__fincopy .rg-trip__line { margin-inline: auto; }
.rg-trip__ch--fin .rg-trip__photo { aspect-ratio: 4 / 3; }
.rg-trip__ch--fin .rg-trip__stamp { left: 14px; top: 14px; }
.rg-trip__finale { padding-top: 32px; padding-bottom: 48px; text-align: center; }
.rg-trip__end-k { margin: 0; font-family: var(--tp-mono); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tp-gold); }
.rg-trip__end-h { margin: 12px auto 0; max-width: 760px; font-weight: 700; font-size: clamp(30px, 8vw, 56px); line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; color: #fff; }
.rg-trip__end-sub { margin: 12px auto 0; max-width: 560px; font-size: 16px; line-height: 1.45; color: rgba(255, 255, 255, .76); }
.rg-trip__cta { margin-top: 24px; }
.rg-trip .rg-trip__btn {
  width: min(380px, 100%); min-height: 56px; gap: 12px; border-radius: 999px; background: var(--tp-blue); border-color: var(--tp-blue); color: #fff;
  font-family: var(--tp-sans); font-size: 17px; font-weight: 700; letter-spacing: -.01em; text-transform: none;
  box-shadow: 0 14px 34px -14px rgba(var(--tp-blue-rgb), .8);
}
.rg-trip .rg-trip__btn:hover { background: #fff; border-color: #fff; color: var(--tp-ink); }
.rg-trip__btn b { font-weight: 700; transition: transform .3s ease; }
.rg-trip__btn:hover b { transform: translateX(4px); }

/* tablets: same stacks, wider pictures */
@media (min-width: 700px) {
  .rg-trip__intro { padding: 84px 0 52px; }
  .rg-trip__t { font-size: clamp(32px, 4.6vw, 48px); }
  .rg-trip__line { font-size: 18px; }
  .rg-trip__ch--full .rg-trip__photo { aspect-ratio: 16 / 9; }
  .rg-trip__ch--split .rg-trip__photo, .rg-trip__ch--fin .rg-trip__photo { aspect-ratio: 16 / 9; }
  .rg-trip__splitcopy { padding-inline: var(--tp-edge); }
  .rg-trip__stamp--cun { width: 128px; }
  .rg-trip__stamp--cdg { width: 160px; }
  .rg-trip__stamp--syd { width: 156px; }
  .rg-trip__ch--full .rg-trip__stamp { left: 20px; top: 20px; }
  .rg-trip__leg { padding: 11px 22px; }
  .rg-trip__leg p { font-size: 12px; }
  .rg-trip__leg i { width: 64px; }
}

/* desktop: three different compositions */
@media (min-width: 1000px) {
  .rg-trip__intro { padding: 110px 0 64px; }
  .rg-trip__sub { font-size: 18px; }
  .rg-trip__route { margin-top: 40px; }
  .rg-trip__t { font-size: clamp(36px, 3.6vw, 54px); }
  .rg-trip__line { font-size: 19px; }
  .rg-trip__win { margin-top: 22px; font-size: 16px; padding: 8px 16px 8px 8px; }
  .rg-trip__win b { width: 24px; height: 24px; font-size: 13px; }

  /* 1 · Cancún: the photo fills the screen, the text sits on its dark lower edge, the stamp top left over the view */
  .rg-trip__fullgrid { display: grid; min-height: clamp(620px, 86vh, 900px); }
  .rg-trip__fullgrid > * { grid-area: 1 / 1; }
  .rg-trip__ch--full .rg-trip__photo { aspect-ratio: auto; }
  .rg-trip__ch--full .rg-trip__photo::after {
    background:
      linear-gradient(to top, rgba(7, 11, 18, .9) 0%, rgba(7, 11, 18, .6) 28%, rgba(7, 11, 18, 0) 56%);
  }
  .rg-trip__stamp--cun { width: 148px; }
  .rg-trip__stamp--cdg { width: 180px; }
  .rg-trip__stamp--syd { width: 176px; }
  .rg-trip__ch--full .rg-trip__stamp { left: calc(var(--tp-edge) + 4px); top: 32px; }
  .rg-trip__fullcopy { align-self: end; padding: 0 0 64px; }
  .rg-trip__ch--full .rg-trip__copy { max-width: 620px; }

  /* 2 · Paris: split screen, text on cream at the left, the photo running off the right edge */
  .rg-trip__splitgrid { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); padding-left: var(--tp-edge); }
  .rg-trip__splitcopy { align-self: center; padding: 56px 64px 56px 0; }
  .rg-trip__ch--split .rg-trip__photo { aspect-ratio: 4 / 3; }
  .rg-trip__stamp--cdg { width: 200px; }
  .rg-trip .rg-trip__ch--split .rg-trip__stamp { margin: -10px -104px 8px 0; }   /* 64px column padding + about 20% of the stamp over the photo */


  /* 3 · Sydney: centred text, a wide panorama edge to edge, the landing line and the button */
  .rg-trip__fincopy { padding-top: 64px; padding-bottom: 44px; }
  .rg-trip__fincopy .rg-trip__copy { max-width: 820px; margin-inline: auto; }
  .rg-trip__ch--fin .rg-trip__photo { aspect-ratio: 2 / 1; max-height: 640px; width: 100%; }
  .rg-trip__ch--fin .rg-trip__stamp { left: calc(var(--tp-edge) + 4px); top: 28px; }
  .rg-trip__finale { padding-top: 48px; padding-bottom: 64px; }
  .rg-trip__end-sub { font-size: 18px; }
  .rg-trip__cta { margin-top: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-trip .rg-trip__stamp[data-rg-reveal] { transition: none; scale: none; }
  .rg-trip__btn b { transition: none; }
}
/* proto/sections/09-board.html */
.rg-board {
  --bd-sig: #FFC400;          /* signage yellow: this section only */
  --bd-part: #ffa77a;
  --bd-panel: #050608;
  --bd-mut: #a9b1bd;
  --bd-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bd-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --tw: 20px;                 /* one flap tile (phones); wider below */
  --tg: 2px;                  /* gap between tiles */
  --gg: 6px;                  /* gap between groups (phones: flag + 5 pin + 7 status tiles must fit under the 14 name tiles) */
  position: relative; overflow: hidden; color: #fff; font-family: var(--bd-sans);
  /* dark glass panel over the flight world (kit/GLASS.md); the faint signage glow stays as the top layer */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: radial-gradient(120% 70% at 85% 0%, rgba(255, 196, 0, .07), rgba(255, 196, 0, 0) 60%), var(--rg-pane-dark, rgba(7, 11, 18, .80));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
  box-shadow: var(--rg-pane-dark-shadow, 0 40px 90px -45px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .06));
}
.rg-board__top { display: grid; gap: 26px; }
.rg-board__kick { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font-family: var(--bd-mono); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #e9edf2; }
.rg-board__kick b { padding: 4px 8px 3px; border-radius: 3px; background: var(--bd-sig); color: #0B0F14; font-weight: 700; letter-spacing: .1em; }
.rg-board__h2 { margin: 0; font-family: var(--bd-sans); font-weight: 700; font-size: clamp(36px, 4.6vw, 64px); line-height: 1; letter-spacing: -.04em; color: #fff; text-wrap: balance; }
.rg-board__asia { margin: 18px 0 0; padding: 10px 14px; border-left: 2px solid var(--bd-sig); border-radius: 0 10px 10px 0; background: rgba(255, 255, 255, .05); font-size: 15px; line-height: 1.45; color: #eef1f5; max-width: 520px; }
.rg-board__asia strong { color: #fff; font-weight: 700; }

.rg-board__label { display: block; margin-bottom: 8px; font-family: var(--bd-mono); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--bd-sig); }
.rg-board__q {
  display: block; width: 100%; height: 56px; padding: 0 18px; border-radius: 12px; border: 1.5px solid rgba(255, 255, 255, .3);
  background: #12161d; color: #fff; font: 600 18px/1 var(--bd-mono); letter-spacing: .03em; -webkit-appearance: none; appearance: none;
}
.rg-board__q::placeholder { color: #7f8792; }
.rg-board__q:focus { outline: none; border-color: var(--bd-sig); box-shadow: 0 0 0 3px rgba(255, 196, 0, .25); }
.rg-board__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.rg-board__chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 13px; border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .28); background: transparent; color: #fff; font: 600 13.5px/1 var(--bd-sans); cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
}
.rg-board__chip:hover { border-color: rgba(255, 255, 255, .6); }
.rg-board__chip:focus-visible { outline: 2px solid var(--bd-sig); outline-offset: 2px; }
.rg-board__chip img { width: 20px; height: 15px; border-radius: 2px; object-fit: cover; flex: none; }
.rg-board__chip.is-on { background: var(--bd-sig); border-color: var(--bd-sig); color: #0B0F14; }
/* a name the board does not know gets the general answer, never a dead end */
.rg-board__nomatch { margin: 12px 0 0; padding: 10px 14px; border-left: 2px solid var(--bd-sig); border-radius: 0 10px 10px 0; background: rgba(255, 196, 0, .08); font-size: 14.5px; line-height: 1.45; color: #fff; }
.rg-board__nomatch[hidden] { display: none; }

/* the board */
.rg-board__board { margin-top: 26px; padding: 12px 12px 14px; border-radius: 16px; background: var(--bd-panel); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09), 0 30px 60px -30px rgba(0, 0, 0, .8); }
.rg-board__in { container-type: inline-size; }
.rg-board__bhead { display: none; }
.rg-board__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px var(--gg); padding: 9px 0; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.rg-board__row:last-child { border-bottom: 0; }
.rg-board__row.is-live { margin: 0 -6px 8px; padding: 10px 6px; border-radius: 10px; border-bottom: 0; background: #11141a; box-shadow: inset 0 0 0 1.5px rgba(255, 196, 0, .55); }
.rg-board__flag { width: 24px; height: 18px; border-radius: 3px; object-fit: cover; flex: none; }
.rg-board__flag.is-noflag { visibility: hidden; }
.rg-board__g { display: flex; flex-wrap: wrap; gap: var(--tg); flex: none; }
.rg-board__g--de { order: -1; width: calc(var(--tw) * 14 + var(--tg) * 13); }
.rg-board__g--ty { display: none; }
.rg-board__t {
  position: relative; display: grid; place-items: center; width: var(--tw); height: calc(var(--tw) * 1.42); border-radius: calc(var(--tw) * .14);
  background: linear-gradient(#202329 0 50%, #191b20 50% 100%); color: #f3f4f6;
  font: 600 calc(var(--tw) * .74)/1 var(--bd-mono); text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 1px 0 rgba(0, 0, 0, .6); transform-origin: 50% 50%; backface-visibility: hidden;
}
.rg-board__t::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid #040405; }
/* an empty flap stays quiet so the name reads first */
.rg-board__t:empty { background: linear-gradient(#16181c 0 50%, #121317 50% 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025); }
.rg-board__t--2 { display: none; }
.rg-board__row.is-two .rg-board__t--2 { display: grid; }
.rg-board__g--st .rg-board__t { color: var(--bd-sig); }
.rg-board__row.is-part .rg-board__g--st .rg-board__t { color: var(--bd-part); }
.rg-board__row.is-live .rg-board__g--de .rg-board__t { color: #fff; }

.rg-board__foot { display: grid; gap: 18px; justify-items: start; }
.rg-board__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 26px; border-radius: 14px;
  background: var(--bd-sig); color: #0B0F14; text-decoration: none; font-weight: 700; font-size: 16.5px; letter-spacing: -.01em;
  box-shadow: 0 14px 34px -16px rgba(255, 196, 0, .6); transition: filter .15s, transform .15s;
}
.rg-board__btn:hover { filter: brightness(1.06); color: #0B0F14; }
.rg-board__btn:active { transform: translateY(1px); }
.rg-board__btn i { width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.rg-board__note { margin: 16px 0 0; max-width: 820px; font-size: 15px; line-height: 1.5; color: #e6e9ee; }
.rg-board__note small { display: block; margin-top: 6px; font-size: 13px; line-height: 1.45; color: var(--bd-mut); }

/* phones: tile width from the board's own width (14 tiles across), px value above for browsers without container units */
.rg-board { --tw: min(26px, calc((100cqi - 26px) / 14)); }
@supports not (width: 1cqi) { .rg-board { --tw: 20px; } }

@media (min-width: 700px) {
  .rg-board { --tg: 3px; --gg: 14px; }
  .rg-board__board { padding: 16px 18px 18px; }
  .rg-board__row { flex-wrap: nowrap; gap: var(--gg); }
  .rg-board__row.is-live { margin: 0 -10px 8px; padding: 10px; }
  .rg-board__g--de { order: 0; }
  .rg-board__flag { width: 34px; height: 25px; }
  .rg-board__bhead { display: flex; gap: var(--gg); padding: 0 0 10px; font-family: var(--bd-mono); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--bd-sig); }
  .rg-board__bhead span { flex: none; }
  .rg-board__h-flag { width: 34px; }
  .rg-board__h-de { width: calc(var(--tw) * 14 + var(--tg) * 13); }
  .rg-board__h-ty { display: none; width: calc(var(--tw) * 9 + var(--tg) * 8); }
  .rg-board__h-pi { width: calc(var(--tw) * 5 + var(--tg) * 4); }
  .rg-board__h-st { width: calc(var(--tw) * 7 + var(--tg) * 6); }
  /* flag + 14 + 5 + 7 tiles, three group gaps, twenty-three tile gaps */
  .rg-board { --tw: min(30px, calc((100cqi - 34px - 42px - 69px) / 26)); }
  @supports not (width: 1cqi) { .rg-board { --tw: 22px; } }
}
@media (min-width: 1000px) {
  .rg-board__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: end; }
  .rg-board__board { margin-top: 36px; padding: 18px 22px 20px; }
  .rg-board__q { height: 60px; font-size: 20px; }
  .rg-board__note { font-size: 16px; }
  .rg-board__foot { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px; }
}
@media (min-width: 1100px) {
  .rg-board { --gg: 16px; }
  .rg-board__g--ty { display: flex; }
  .rg-board__h-ty { display: block; }
  /* flag + 14 + 9 + 5 + 7 tiles, four group gaps, thirty-one tile gaps */
  .rg-board { --tw: min(30px, calc((100cqi - 34px - 64px - 93px) / 35)); }
  @supports not (width: 1cqi) { .rg-board { --tw: 26px; } }
}
@media (prefers-reduced-motion: reduce) {
  .rg-board__chip, .rg-board__btn { transition: none; }
}
/* proto/sections/10-gate.html */
.rg-gate {
  --gt-ink: #0B0F14;
  --gt-mut: #56606E;
  --gt-blue: #0A5CFF;
  --gt-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gt-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --gt-gap: 12px;            /* between cards */
  position: relative; overflow: hidden; color: var(--gt-ink); font-family: var(--gt-sans);
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-gate__head { max-width: 760px; margin: 0 0 26px; }
.rg-gate__eyebrow { margin: 0 0 12px; font-family: var(--gt-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gt-blue); }
.rg-gate__h2 { margin: 0; font-weight: 700; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; }
.rg-gate__sub { margin: 14px 0 0; max-width: 560px; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.5; color: var(--gt-mut); }

/* phones and tablets: a swipe carousel, full width of the panel, the next card peeking */
.rg-gate__track {
  list-style: none; margin: 0 calc(-1 * var(--rg-gutter, 18px)); padding: 4px var(--rg-gutter, 18px) 10px;
  display: grid; grid-auto-flow: column; grid-auto-columns: 76%; gap: var(--gt-gap);
  overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory; scroll-padding-inline: var(--rg-gutter, 18px); scrollbar-width: none;
}
.rg-gate__track::-webkit-scrollbar { display: none; }
.rg-gate__track:focus-visible { outline: 2px solid var(--gt-blue); outline-offset: -2px; border-radius: 12px; }
.rg-gate__stop { position: relative; min-width: 0; scroll-snap-align: start; }

/* the card: a tall photo, the words on a dark scrim at its foot */
.rg-gate__card {
  position: relative; margin: 0; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 24px; background: #1A2230;
  box-shadow: 0 24px 46px -28px rgba(11, 15, 20, .55), 0 0 0 1px rgba(11, 15, 20, .06);
}
.rg-gate__card img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.rg-gate__card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(5, 8, 14, .88) 0%, rgba(5, 8, 14, .62) 26%, rgba(5, 8, 14, .18) 48%, rgba(5, 8, 14, 0) 62%);
}
.rg-gate__cap { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 0 18px 18px; color: #fff; }
.rg-gate__k { display: block; font-family: var(--gt-mono); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .78); }
.rg-gate__t { margin: 6px 0 0; font-weight: 700; font-size: 21px; line-height: 1.12; letter-spacing: -.025em; color: #fff; text-wrap: balance; }
.rg-gate__ben { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, .22); font-weight: 500; font-size: 14px; line-height: 1.3; color: rgba(255, 255, 255, .94); }
.rg-gate__p { margin: 12px 4px 0; font-size: 14.5px; line-height: 1.45; color: var(--gt-mut); }

.rg-gate__count { margin: 10px 0 0; text-align: right; font-family: var(--gt-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--gt-mut); }
.rg-gate__now { color: var(--gt-ink); }

/* under the cards: three benefits and the way to the buy box */
.rg-gate__foot { display: grid; gap: 16px; justify-items: start; margin-top: 26px; padding-top: 22px; border-top: 1px solid #E2E8F0; }
.rg-gate__bens { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0; padding: 0; }
.rg-gate__bens li { position: relative; padding-left: 24px; font-weight: 600; font-size: 15px; line-height: 1.35; }
.rg-gate__bens li::before {
  content: "\2713\FE0E"; position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%;
  background: var(--gt-blue); color: #fff; font-size: 11px; font-weight: 700; line-height: 1;
}
.rg-gate__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 26px; border-radius: 16px;
  background: var(--gt-blue); color: #fff; text-decoration: none; font-weight: 600; font-size: 16.5px; letter-spacing: -.01em;
  box-shadow: 0 14px 34px -14px rgba(10, 92, 255, .75), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.rg-gate__btn:hover { filter: brightness(1.08); color: #fff; }
.rg-gate__btn i { width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }

@media (min-width: 700px) {
  .rg-gate { --gt-gap: 16px; }
  .rg-gate__track { grid-auto-columns: 40%; }
  .rg-gate__foot { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .rg-gate__bens li { font-size: 16px; }
}
/* desktop: one row of five, a static dashed line joining the cards at their middle */
@media (min-width: 1000px) {
  .rg-gate { --gt-gap: 18px; }
  .rg-gate__head { margin-bottom: 40px; }
  .rg-gate__track {
    margin: 0; padding: 0; grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-columns: auto;
    overflow: visible; scroll-snap-type: none;
  }
  .rg-gate__stop:not(:last-child)::after {
    /* margin-top in % follows the stop's width: 66.667% = half the height of a 3:4 card */
    content: ""; position: absolute; z-index: 0; top: 0; left: 100%; width: var(--gt-gap);
    margin-top: 66.667%; border-top: 1.5px dashed rgba(11, 15, 20, .32);
  }
  .rg-gate__count { display: none; }
  .rg-gate__cap { padding: 0 16px 16px; }
  .rg-gate__t { font-size: 18px; }
  .rg-gate__ben { font-size: 13.5px; }
  .rg-gate__p { font-size: 14px; }
  .rg-gate__foot { margin-top: 40px; padding-top: 26px; }
}
@media (min-width: 1240px) {
  .rg-gate__t { font-size: 20px; }
  .rg-gate__ben { font-size: 14px; }
}
/* proto/sections/11-couple.html */
.rg-couple {
  --cu-ink: #0B0F14;
  --cu-ink2: #2B3440;
  --cu-mut: #56606E;
  --cu-line: #E2E8F0;
  --cu-blue: #0A5CFF;
  --cu-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cu-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  position: relative; color: var(--cu-ink); font-family: var(--cu-sans);
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-couple__grid { display: grid; gap: 28px; align-items: center; }

/* the picture, with the benefit on it */
.rg-couple__media { position: relative; margin: 0; overflow: hidden; border-radius: 24px; aspect-ratio: 1 / 1; background: #E9EEF5; box-shadow: 0 30px 60px -34px rgba(12, 24, 48, .55); }
.rg-couple__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rg-couple__media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46%; background: linear-gradient(rgba(11, 15, 20, 0), rgba(11, 15, 20, .62)); pointer-events: none; }
.rg-couple__tags { position: absolute; z-index: 1; left: 12px; right: 12px; bottom: 12px; display: flex; justify-content: space-between; gap: 8px; margin: 0; }
.rg-couple__tag {
  display: grid; gap: 2px; max-width: 49%; padding: 8px 11px 9px; border-radius: 14px;
  background: rgba(255, 255, 255, .92); color: var(--cu-ink); font-weight: 600; font-size: 13px; line-height: 1.25; letter-spacing: -.01em;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 8px 20px rgba(0, 0, 0, .22);
}
.rg-couple__tag b { font-family: var(--cu-mono); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cu-blue); }
.rg-couple__tag--r { text-align: right; }

.rg-couple__eyebrow { margin: 0 0 12px; font-family: var(--cu-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cu-blue); }
.rg-couple__h2 { margin: 0; font-weight: 700; font-size: clamp(36px, 4.6vw, 62px); line-height: 1; letter-spacing: -.045em; text-wrap: balance; }
.rg-couple__sub { margin: 12px 0 0; font-weight: 600; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.25; letter-spacing: -.02em; color: var(--cu-ink2); text-wrap: balance; }
.rg-couple__body { margin: 14px 0 0; max-width: 520px; font-size: 16px; line-height: 1.55; color: var(--cu-mut); }

/* the two nudges: a pack each, price bound to the offer */
.rg-couple__packs { display: grid; gap: 12px; margin-top: 24px; }
.rg-couple__pack {
  position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 14px; align-items: center; gap: 12px;
  padding: 14px 14px 14px 12px; border-radius: 18px; border: 1.5px solid var(--cu-line); background: #fff; color: var(--cu-ink); text-decoration: none;
  box-shadow: 0 10px 26px -18px rgba(12, 24, 48, .45); transition: border-color .2s, box-shadow .2s, transform .2s;
}
.rg-couple__pack:hover { border-color: var(--cu-blue); color: var(--cu-ink); box-shadow: 0 16px 34px -18px rgba(10, 92, 255, .5); }
.rg-couple__pack:focus-visible { outline: 2px solid var(--cu-blue); outline-offset: 3px; }
.rg-couple__pack.is-active { border-color: var(--cu-blue); box-shadow: 0 0 0 3px rgba(10, 92, 255, .14), 0 16px 34px -18px rgba(10, 92, 255, .5); }
.rg-couple__pop {
  position: absolute; top: -10px; left: 16px; padding: 4px 9px 3px; border-radius: 999px; background: var(--cu-ink); color: #fff;
  font-family: var(--cu-mono); font-size: 9.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
}
.rg-couple__pack.is-active .rg-couple__pop { background: var(--cu-blue); }
.rg-couple__units { position: relative; display: block; width: 64px; height: 56px; }
.rg-couple__units img { position: absolute; width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(11, 15, 20, .25)); }
.rg-couple__units--2 img:nth-child(1) { left: 0; top: 12px; }
.rg-couple__units--2 img:nth-child(2) { left: 22px; top: 2px; }
.rg-couple__units--4 img { width: 32px; height: 32px; }
.rg-couple__units--4 img:nth-child(1) { left: 0; top: 0; }
.rg-couple__units--4 img:nth-child(2) { left: 30px; top: 0; }
.rg-couple__units--4 img:nth-child(3) { left: 2px; top: 26px; }
.rg-couple__units--4 img:nth-child(4) { left: 30px; top: 24px; }
.rg-couple__pk { display: grid; gap: 2px; min-width: 0; }
.rg-couple__pk b { font-weight: 700; font-size: 16.5px; line-height: 1.15; letter-spacing: -.015em; }
.rg-couple__pk small { font-size: 13px; line-height: 1.35; color: var(--cu-mut); }
.rg-couple__price { display: grid; justify-items: end; gap: 1px; text-align: right; }
.rg-couple__price b { font-weight: 700; font-size: 20px; line-height: 1.1; letter-spacing: -.025em; }
.rg-couple__price small { font-size: 12px; color: var(--cu-mut); white-space: nowrap; }
.rg-couple__price em {
  margin-top: 3px; padding: 3px 7px 2px; border-radius: 999px; background: rgba(10, 92, 255, .1); color: var(--cu-blue); font-style: normal;
  font-family: var(--cu-mono); font-size: 9.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap;
}
.rg-couple__pack.is-active .rg-couple__price em { background: var(--cu-blue); color: #fff; }
.rg-couple__go { width: 8px; height: 8px; border-top: 2px solid var(--cu-ink); border-right: 2px solid var(--cu-ink); transform: rotate(45deg); justify-self: end; }
.rg-couple__fine { margin: 14px 0 0; font-family: var(--cu-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--cu-mut); }

@media (min-width: 700px) {
  .rg-couple__tags { left: 18px; right: 18px; bottom: 18px; }
  .rg-couple__tag { padding: 10px 14px 11px; font-size: 14.5px; }
}
@media (min-width: 1000px) {
  .rg-couple__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; }
  .rg-couple__media { border-radius: 30px; }
  .rg-couple__body { font-size: 17px; }
  .rg-couple__packs { margin-top: 30px; }
  .rg-couple__pack { grid-template-columns: 72px minmax(0, 1fr) auto 14px; padding: 16px 18px 16px 14px; }
  .rg-couple__units { width: 72px; }
  .rg-couple__pk b { font-size: 18px; }
  .rg-couple__price b { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-couple__pack { transition: none; }
  .rg-couple__pack:hover { transform: none; }
}
/* proto/sections/12-compare.html */
.rg-compare {
  --cm-ink: #0B0F14;
  --cm-ink2: #2B3440;
  --cm-mut: #56606E;           /* the lightest text allowed on a light glass panel (GLASS.md) */
  --cm-blue: #0A5CFF;
  --cm-grey: #EEF1F5;
  --cm-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cm-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --cm-gap: 10px;            /* between the two cards */
  --cm-px: 12px;             /* inside a card */
  position: relative; color: var(--cm-ink); font-family: var(--cm-sans);
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-compare__head { max-width: 860px; margin: 0 auto; text-align: center; }
.rg-compare__eyebrow { margin: 0 0 12px; font-family: var(--cm-mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cm-blue); }
.rg-compare__h2 { margin: 0; font-weight: 700; font-size: clamp(34px, 4.6vw, 62px); line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
.rg-compare__quote { margin: 16px auto 0; max-width: 560px; }
.rg-compare__quote blockquote { margin: 0; font-size: 15px; line-height: 1.45; font-style: italic; color: var(--cm-ink2); text-wrap: balance; }
.rg-compare__quote figcaption { margin-top: 5px; font-family: var(--cm-mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-mut); }

/* the two cards: one grid, so every row lines up across them */
.rg-compare__vs {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto repeat(7, auto);
  column-gap: var(--cm-gap); max-width: 880px; margin: 64px auto 0;
}
.rg-compare__card { grid-row: 1 / -1; position: absolute; inset: 0; z-index: 0; }   /* out of the flow: spans its column, takes no cell */
.rg-compare__card--us {
  grid-column: 1 / 2; inset: -18px 0; border-radius: 22px;   /* both lines named: an out-of-flow item's auto end line is the grid's edge */
  background: linear-gradient(170deg, #3B82FF 0%, #0A5CFF 38%, #0849C9 100%);
  box-shadow: 0 34px 60px -26px rgba(10, 92, 255, .65), inset 0 1px 0 rgba(255, 255, 255, .28);
}
.rg-compare__card--them { grid-column: 2 / 3; border-radius: 18px; background: var(--cm-grey); box-shadow: inset 0 0 0 1px #E0E5EC; }
.rg-compare__top, .rg-compare__cell { position: relative; z-index: 1; margin: 0; }
.rg-compare__top--us, .rg-compare__cell--us { grid-column: 1; color: #fff; }
.rg-compare__top--them, .rg-compare__cell--them { grid-column: 2; color: var(--cm-mut); }

/* card tops */
.rg-compare__top { display: grid; justify-items: center; align-content: end; padding: 0 var(--cm-px) 14px; text-align: center; }
.rg-compare__prod { display: block; width: 104px; height: 104px; margin: -58px 0 2px; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(4, 20, 60, .45)); }
.rg-compare__brand { margin: 0; font-family: "Michroma", var(--cm-sans); font-size: 16px; letter-spacing: .35em; margin-right: -.35em; line-height: 1.2; }
.rg-compare__name { margin: 4px 0 0; font-size: 12px; font-weight: 500; line-height: 1.3; color: rgba(255, 255, 255, .82); }
.rg-compare__pic { display: block; width: 56px; height: 56px; margin: 14px 0 8px; overflow: hidden; border-radius: 14px; box-shadow: 0 6px 14px -6px rgba(11, 15, 20, .35); }
.rg-compare__pic img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); }
.rg-compare__them-name { margin: 0; font-weight: 700; font-size: 13px; line-height: 1.25; color: var(--cm-ink2); text-wrap: balance; }

/* rows */
.rg-compare__cell { display: flex; align-items: flex-start; gap: 8px; padding: 12px var(--cm-px); font-size: 13px; line-height: 1.3; }
.rg-compare__cell--us { font-weight: 700; border-top: 1px solid rgba(255, 255, 255, .2); }
.rg-compare__cell--them { font-weight: 500; border-top: 1px solid rgba(11, 15, 20, .08); }
.rg-compare__mk {
  flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; color: var(--cm-blue);
  font-family: system-ui, sans-serif; font-size: 13px; font-weight: 800; line-height: 1; box-shadow: 0 3px 8px rgba(4, 20, 60, .3);
}
.rg-compare__x {
  flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #DCE1E8; color: #7A8491;
  font-family: system-ui, sans-serif; font-size: 12px; font-weight: 700; line-height: 1;
}
.rg-compare__cell > span:last-child { padding-top: 2px; min-width: 0; }
.rg-compare__cell--price { justify-content: center; text-align: center; padding-bottom: 16px; }
.rg-compare__cell--price > span:last-child { display: grid; gap: 2px; padding-top: 0; }
.rg-compare__cell--price small { font-family: var(--cm-mono); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.rg-compare__cell--price b { font-weight: 700; font-size: 22px; line-height: 1.1; letter-spacing: -.03em; }
.rg-compare__cell--them.rg-compare__cell--price b { color: var(--cm-ink2); }

.rg-compare__cta { display: grid; gap: 10px; justify-items: center; margin-top: 44px; text-align: center; }
.rg-compare__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 0 30px; border-radius: 16px;
  background: var(--cm-blue); color: #fff; text-decoration: none; font-weight: 600; font-size: 17px; letter-spacing: -.01em;
  box-shadow: 0 14px 34px -14px rgba(10, 92, 255, .75), inset 0 1px 0 rgba(255, 255, 255, .25); transition: filter .15s, transform .15s;
}
.rg-compare__btn:hover { filter: brightness(1.08); color: #fff; }
.rg-compare__btn:active { transform: translateY(1px); }
.rg-compare__btn i { width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.rg-compare__fine { margin: 0; font-family: var(--cm-mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-mut); }

@media (min-width: 700px) {
  .rg-compare { --cm-gap: 18px; --cm-px: 22px; }
  .rg-compare__vs { margin-top: 84px; }
  .rg-compare__card--us { inset: -24px 0; border-radius: 28px; }
  .rg-compare__card--them { border-radius: 22px; }
  .rg-compare__prod { width: 150px; height: 150px; margin-top: -84px; }
  .rg-compare__brand { font-size: 22px; }
  .rg-compare__name { font-size: 14px; }
  .rg-compare__pic { width: 84px; height: 84px; margin-top: 22px; border-radius: 18px; }
  .rg-compare__them-name { font-size: 17px; }
  .rg-compare__cell { gap: 12px; padding: 16px var(--cm-px); font-size: 16px; }
  .rg-compare__mk { width: 28px; height: 28px; font-size: 16px; }
  .rg-compare__x { width: 26px; height: 26px; font-size: 13px; }
  .rg-compare__cell--price b { font-size: 30px; }
  .rg-compare__quote blockquote { font-size: 16px; }
}
@media (min-width: 1000px) {
  .rg-compare__cell { font-size: 17.5px; padding: 18px var(--cm-px); }
  .rg-compare__cell--price { padding-bottom: 22px; }
  .rg-compare__cta { margin-top: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-compare__btn { transition: none; }
}
/* proto/sections/13-crew.html */
/* 13 crew: pale sky section (A's crew band), four passports. Each one is a spread twice a page wide: the book
   (one page wide) sits on the right half; closed, it is slid half a page left so the closed passport is centred, and as
   it opens it slides back while the cover turns -180deg on its left edge. Data page text is sized in container units
   (cqw) so the page reads the same at every width.
   Phone: one spread per row (page = half the screen). 600+: spreads up to 580 px. Desktop (1000+): 2 x 2. */
.rg-crew {
  --cw-ink: #0B0F14; --cw-ink2: #2B3440; --cw-mut: #56606E; --cw-line: #E2E8F0; --cw-line2: #C3CDDA; --cw-a: #0A5CFF;
  --cw-gold: #B8913A; --cw-paper: #F3EEE3;
  --cw-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cw-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --cw-ease: cubic-bezier(.62, .04, .26, 1);
  padding-block: 36px 56px; color: var(--cw-ink); font-family: var(--cw-sans); overflow-x: clip;
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-crew__wrap { max-width: 1240px; margin: 0 auto; padding-inline: 16px; }
.rg-crew__head { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.rg-crew__eyebrow { margin: 0 0 12px; font-family: var(--cw-mono); font-size: 12px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--cw-a); }
.rg-crew__h2 { margin: 0; max-width: 820px; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.04em; font-weight: 700; text-wrap: balance; }
.rg-crew__sub { margin: 14px 0 0; max-width: 540px; font-size: 16px; line-height: 1.5; color: var(--cw-mut); }
.rg-crew__tag {
  display: inline-flex; align-items: center; padding: 3px 9px; border: 1px dashed var(--cw-line2); border-radius: 999px;
  font-family: var(--cw-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--cw-mut); white-space: nowrap;
}

.rg-crew__grid { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 30px; margin-top: 30px; }
.rg-crew__item { width: 100%; max-width: 580px; }
.rg-crew__spread { position: relative; width: 100%; aspect-ratio: 1328 / 1000; }

/* the book: one page wide, right half of the spread; its children turn in its perspective, seen from the hinge */
.rg-crew__book {
  position: absolute; top: 0; bottom: 0; left: 50%; width: 50%;
  perspective: 1900px; perspective-origin: 0% 50%; transform-style: preserve-3d;
  transition: transform 1.25s var(--cw-ease);
}
.rg-crew__page {
  position: absolute; inset: 0; overflow: hidden; container-type: inline-size; isolation: isolate;
  border-radius: 2px 10px 10px 2px; background: var(--cw-paper);
  box-shadow: 1px 1px 0 #ebe4d4, 2px 2px 0 #ddd4c0, 3px 3px 0 #d2c8b2, 0 26px 40px -22px rgba(11, 15, 20, .55);
}
.rg-crew__page::after {      /* the fold: shade at the gutter */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(11, 15, 20, .22), rgba(11, 15, 20, .06) 5%, rgba(11, 15, 20, 0) 12%);
}
.rg-crew__paper { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rg-crew__face {
  position: absolute; left: 6.6%; top: 9.6%; width: 30.4%; height: 23.7%; object-fit: cover; object-position: 50% 28%;
  filter: saturate(.9) contrast(1.02); mix-blend-mode: multiply;
}
.rg-crew__id { position: absolute; left: 42%; right: 5%; top: 9.4%; display: flex; flex-direction: column; min-width: 0; }
.rg-crew__brand { margin-bottom: 4.6cqw; font-family: var(--cw-mono); font-size: max(10px, 3.3cqw); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cw-a); }
.rg-crew__k { font-family: var(--cw-mono); font-size: max(10px, 2.9cqw); letter-spacing: .1em; text-transform: uppercase; color: #6B7482; }
.rg-crew__name { margin: .6cqw 0 3.4cqw; font-size: max(13px, 7.2cqw); line-height: 1.04; letter-spacing: -.02em; font-weight: 700; color: var(--cw-ink); overflow-wrap: anywhere; }
.rg-crew__role { margin-top: .6cqw; font-size: max(10px, 4.9cqw); line-height: 1.15; font-weight: 600; color: var(--cw-ink2); }
.rg-crew__fields { position: absolute; left: 6.6%; right: 6.6%; top: 39%; display: grid; grid-template-columns: 1fr 1fr; gap: 3cqw; margin: 0; }
.rg-crew__fields div { display: flex; flex-direction: column; gap: .8cqw; padding-top: 2.2cqw; border-top: 1px solid rgba(11, 15, 20, .14); }
.rg-crew__fields dt { font-family: var(--cw-mono); font-size: max(10px, 2.9cqw); letter-spacing: .06em; text-transform: uppercase; color: #6B7482; }
.rg-crew__fields dd { margin: 0; font-size: max(10px, 4.6cqw); line-height: 1.2; font-weight: 600; color: var(--cw-ink); }
.rg-crew__stamp {
  position: absolute; right: 9%; top: 60%; padding: 1.6cqw 3.2cqw; border: .7cqw solid rgba(10, 92, 255, .72); border-radius: 2cqw;
  font-family: var(--cw-mono); font-size: max(10px, 4.4cqw); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(10, 92, 255, .78);
  transform: rotate(-11deg); mix-blend-mode: multiply;
}
.rg-crew__mrz {
  position: absolute; left: 6%; right: 5%; bottom: 5.5%; margin: 0; display: flex; flex-direction: column; gap: 1.2cqw;
  font-family: var(--cw-mono); font-size: max(10px, 3.35cqw); line-height: 1; letter-spacing: .02em; color: rgba(11, 15, 20, .78); white-space: nowrap; overflow: hidden;
}

/* the cover: turns on its left edge; front = the CEYLA cover, back = the inside cover (left page once open) */
.rg-crew__cover {
  position: absolute; inset: 0; transform-origin: 0 50%; transform-style: preserve-3d;
  transform: rotateY(-180deg); transition: transform 1.25s var(--cw-ease);
}
.rg-crew__front, .rg-crew__inside { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.rg-crew__front { overflow: hidden; border-radius: 2px 10px 10px 2px; background: #0E1B33; box-shadow: 0 22px 34px -20px rgba(11, 15, 20, .6); }
.rg-crew__front img { width: 100%; height: 100%; object-fit: cover; }
.rg-crew__front::after {     /* the spine and a soft light across the leather */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(0, 0, 0, .45), rgba(255, 255, 255, .1) 2.2%, rgba(0, 0, 0, 0) 6%), linear-gradient(115deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, 0) 42%);
}
.rg-crew__inside {
  transform: rotateY(180deg); container-type: inline-size; overflow: hidden;
  display: flex; flex-direction: column; justify-content: center; padding: 14% 13% 18% 12%;   /* % of the page width: cqw on the container itself would read the viewport */
  border-radius: 10px 2px 2px 10px;
  background:
    linear-gradient(270deg, rgba(11, 15, 20, .2), rgba(11, 15, 20, .05) 5%, rgba(11, 15, 20, 0) 12%),
    repeating-radial-gradient(circle at 50% 46%, rgba(10, 92, 255, .05) 0 1px, rgba(10, 92, 255, 0) 1px 7px),
    var(--cw-paper);
  box-shadow: -1px 1px 0 #ebe4d4, -2px 2px 0 #ddd4c0, 0 26px 40px -22px rgba(11, 15, 20, .55);
}
.rg-crew__inside::before {   /* a thin gold frame */
  content: ""; position: absolute; inset: 5cqw 6cqw 5cqw 5cqw; border: 1px solid rgba(184, 145, 58, .45); border-radius: 2px; pointer-events: none;
}
.rg-crew__pick { margin-bottom: 5cqw; font-family: var(--cw-mono); font-size: max(10px, 3.5cqw); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cw-a); }
.rg-crew__quote { margin: 0; font-size: min(8.2cqw, 23px); line-height: 1.3; letter-spacing: -.012em; font-weight: 500; color: var(--cw-ink); text-wrap: pretty; }
.rg-crew__mark { position: absolute; left: 0; right: 0; bottom: 8.5cqw; text-align: center; font-family: "Michroma", var(--cw-sans); font-size: max(10px, 3.6cqw); letter-spacing: .35em; text-indent: .35em; color: var(--cw-gold); }

/* CLOSED: only while armed (page scrolls, motion allowed) and not yet reached */
.rg-crew.is-armed .rg-crew__item:not(.is-open) .rg-crew__book { transform: translateX(-50%); }
.rg-crew.is-armed .rg-crew__item:not(.is-open) .rg-crew__cover { transform: rotateY(0deg); }
.rg-crew__item.is-open .rg-crew__book, .rg-crew__item.is-open .rg-crew__cover { transition-delay: var(--rg-crew-d, 0s); }

/* phone (page about 165 to 200 px wide): no text under 10 px. The labels that cannot fit at 10 px (pass title, Name /
   Occupation keys, MRZ lines) are dropped; everything else is held at 10 px minimum by max(10px, ...cqw). */
@media (max-width: 599px) {
  .rg-crew__brand, .rg-crew__id .rg-crew__k, .rg-crew__mrz { display: none; }
  .rg-crew__id { top: 9.6%; }
  .rg-crew__name { margin-bottom: 2cqw; }
  .rg-crew__fields { top: 38%; }
  .rg-crew__stamp { top: 70%; }
}
@media (min-width: 600px) {
  .rg-crew__wrap { padding-inline: 32px; }
  .rg-crew__head { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 20px; }
  .rg-crew__sub { font-size: 18px; }
  .rg-crew__grid { gap: 40px; margin-top: 40px; }
}
@media (min-width: 1000px) {
  .rg-crew { padding-block: 64px 96px; }
  .rg-crew__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .rg-crew__book, .rg-crew__cover { transition: none; }
}
/* proto/sections/15-guarantee.html */
/* 15 guarantee: night band (#070B12), cyan glow only here and on the other night bands.
   Desktop (900+): the film fills the band, a dark wash from the left carries the seal + copy over it.
   Phone: the film on top (16:10) fading into the night, the seal and copy below. */
.rg-guarantee {
  --gx-night: #070B12; --gx-glow: #5BE3FF; --gx-a: #0A5CFF;
  --gx-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gx-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  padding-block: 0 64px; color: #fff; font-family: var(--gx-sans);
  /* dark glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-dark, rgba(7, 11, 18, .80));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
  box-shadow: var(--rg-pane-dark-shadow, 0 40px 90px -45px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .06));
}
.rg-guarantee__media { position: relative; aspect-ratio: 16 / 10; background: #0b1220; overflow: hidden; }
.rg-guarantee__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 42% 50%; display: block; }
.rg-guarantee__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(7, 11, 18, 0) 42%, rgba(7, 11, 18, .7) 78%, #070B12); }

.rg-guarantee__wrap {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px;
  width: 100%; max-width: 1240px; margin: -56px auto 0; padding-inline: 16px;
}
.rg-guarantee__seal { position: relative; margin: 0; width: 112px; display: grid; justify-items: center; gap: 8px; }
.rg-guarantee__seal img { position: relative; width: 104px; height: 104px; object-fit: contain; filter: drop-shadow(0 10px 22px rgba(0, 0, 0, .55)) drop-shadow(0 0 22px rgba(91, 227, 255, .22)); }
.rg-guarantee__ring {
  position: absolute; left: 50%; top: 52px; width: 128px; height: 128px; margin: -64px 0 0 -64px; border-radius: 50%;
  border: 1px solid rgba(91, 227, 255, .38); box-shadow: 0 0 30px rgba(91, 227, 255, .16), inset 0 0 22px rgba(91, 227, 255, .1);
  animation: rg-guarantee-breathe 4.8s ease-in-out infinite;
}
@keyframes rg-guarantee-breathe { 0%, 100% { opacity: .7; } 50% { opacity: 1; } }
.rg-guarantee__cap { font-family: var(--gx-mono); font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gx-glow); text-align: center; white-space: nowrap; }

.rg-guarantee__eyebrow { margin: 0 0 14px; font-family: var(--gx-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gx-glow); }
.rg-guarantee__h2 { margin: 0; font-size: clamp(36px, 4.6vw, 64px); line-height: 1.02; letter-spacing: -.04em; font-weight: 700; text-wrap: balance; }
.rg-guarantee__p { margin: 16px 0 0; max-width: 500px; font-size: 16px; line-height: 1.55; color: rgba(255, 255, 255, .8); }
.rg-guarantee__checks { list-style: none; margin: 22px 0 0; padding: 0; max-width: 440px; border-top: 1px solid rgba(255, 255, 255, .12); }
.rg-guarantee__checks li {
  display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 12px;
  padding: 11px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 15px; font-weight: 600;
}
.rg-guarantee__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gx-glow); box-shadow: 0 0 10px rgba(91, 227, 255, .9); }
.rg-guarantee__st { font-family: var(--gx-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(91, 227, 255, .85); }
.rg-guarantee__offer {
  display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 24px 0 0; padding: 8px 12px;
  border: 1px solid rgba(91, 227, 255, .35); border-radius: 10px; background: rgba(91, 227, 255, .07);
  font-size: 14px; line-height: 1.35; color: rgba(255, 255, 255, .88);
}
.rg-guarantee__offer b { font-family: var(--gx-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gx-glow); }
.rg-guarantee__btn {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; max-width: 380px; height: 60px; margin-top: 14px;
  border: 0; border-radius: 16px; background: var(--gx-a); color: #fff; cursor: pointer;
  font: 600 17px/1 var(--gx-sans); letter-spacing: -.01em;
  box-shadow: 0 14px 34px -14px rgba(10, 92, 255, .85), inset 0 1px 0 rgba(255, 255, 255, .25); transition: transform .15s, filter .15s;
}
.rg-guarantee__btn:hover { filter: brightness(1.1); }
.rg-guarantee__btn:active { transform: translateY(1px); }
.rg-guarantee__btn:focus-visible { outline: 2px solid var(--gx-glow); outline-offset: 3px; }
.rg-guarantee__terms { margin: 14px 0 0; font-size: 13px; color: rgba(255, 255, 255, .62); }
.rg-guarantee__terms a { color: rgba(255, 255, 255, .78); text-underline-offset: 3px; }
.rg-guarantee__terms a:hover { color: #fff; }
.rg-guarantee__terms a:focus-visible { outline: 2px solid var(--gx-glow); outline-offset: 3px; border-radius: 3px; }

@media (min-width: 600px) {
  .rg-guarantee__wrap { padding-inline: 32px; }
  .rg-guarantee__p { font-size: 18px; }
}
@media (min-width: 900px) {
  .rg-guarantee { min-height: min(100vh, 780px); justify-content: center; padding-block: 110px; }
  .rg-guarantee__media { position: absolute; inset: 0; aspect-ratio: auto; }
  .rg-guarantee__shade { background: linear-gradient(90deg, rgba(7, 11, 18, .97) 0%, rgba(7, 11, 18, .92) 42%, rgba(7, 11, 18, .6) 62%, rgba(7, 11, 18, .18) 84%, rgba(7, 11, 18, .08) 100%), linear-gradient(to bottom, rgba(7, 11, 18, .5), rgba(7, 11, 18, 0) 18%, rgba(7, 11, 18, 0) 82%, rgba(7, 11, 18, .6)); }
  .rg-guarantee__wrap { grid-template-columns: 180px minmax(0, 600px); gap: 44px; align-items: center; margin-top: 0; }
  .rg-guarantee__copy {      /* a dark glass scrim under the words, so they read over the bright cabin whatever the frame */
    padding: 34px 36px 30px; border: 1px solid rgba(91, 227, 255, .16); border-radius: 22px;
    background: rgba(7, 11, 18, .78); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7);
  }
  .rg-guarantee__seal { width: 180px; gap: 12px; }
  .rg-guarantee__seal img { width: 150px; height: 150px; }
  .rg-guarantee__ring { top: 75px; width: 184px; height: 184px; margin: -92px 0 0 -92px; }
  .rg-guarantee__cap { font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) { .rg-guarantee__ring { animation: none; } }
/* proto/sections/16-faq.html */
/* 16 FAQ: white section (A's FAQ): hairline rows, a sky disc with a small chevron that turns blue when open.
   Phone: heading, button, rows. Desktop (1000+): heading + offer left (sticky), rows right. */
.rg-faq {
  --fq-ink: #0B0F14; --fq-ink2: #2B3440; --fq-mut: #56606E; --fq-line: #E2E8F0; --fq-sky: #EEF6FF; --fq-a: #0A5CFF;
  --fq-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fq-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  padding-block: 36px 56px; color: var(--fq-ink); font-family: var(--fq-sans);
  /* glass panel over the flight world (kit/GLASS.md) */
  margin: var(--rg-pane-gap, 64px) max(var(--rg-pane-inset, 12px), calc((100% - var(--rg-pane-max, 1360px)) / 2));
  border-radius: var(--rg-pane-r, 28px);
  background: var(--rg-pane-light, rgba(255, 255, 255, .88));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border: 1px solid var(--rg-pane-light-line, rgba(255, 255, 255, .72));
  box-shadow: var(--rg-pane-light-shadow, 0 40px 90px -50px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9));
}
.rg-faq__wrap { max-width: 1240px; margin: 0 auto; padding-inline: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; align-items: start; }
.rg-faq__eyebrow { margin: 0 0 12px; font-family: var(--fq-mono); font-size: 12px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--fq-a); }
.rg-faq__h2 { margin: 0; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.04em; font-weight: 700; text-wrap: balance; }
.rg-faq__sub { margin: 14px 0 0; max-width: 460px; font-size: 16px; line-height: 1.5; color: var(--fq-mut); }
.rg-faq__btn {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; max-width: 380px; height: 56px; margin-top: 22px;
  border: 0; border-radius: 16px; background: var(--fq-a); color: #fff; cursor: pointer; font: 600 16px/1 var(--fq-sans); letter-spacing: -.01em;
  box-shadow: 0 14px 34px -14px rgba(10, 92, 255, .75), inset 0 1px 0 rgba(255, 255, 255, .25); transition: transform .15s, filter .15s;
}
.rg-faq__btn:hover { filter: brightness(1.08); }
.rg-faq__btn:active { transform: translateY(1px); }
.rg-faq__btn:focus-visible { outline: 2px solid var(--fq-ink); outline-offset: 3px; }
.rg-faq__trust { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13.5px; color: var(--fq-mut); }
.rg-faq__tick { position: relative; width: 16px; height: 16px; flex: none; border-radius: 50%; background: var(--fq-a); }
.rg-faq__tick::after { content: ""; position: absolute; left: 5.5px; top: 3.5px; width: 4px; height: 7px; border: solid #fff; border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }

.rg-faq__list { border-top: 1px solid var(--fq-line); }
.rg-faq__item { border-bottom: 1px solid var(--fq-line); }
.rg-faq__h { margin: 0; font: inherit; }
.rg-faq__q {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; min-height: 44px; padding: 18px 0;
  border: 0; background: none; color: var(--fq-ink); text-align: left; cursor: pointer;
  font: 600 16px/1.3 var(--fq-sans); letter-spacing: -.01em;
}
.rg-faq__q:focus-visible { outline: 2px solid var(--fq-a); outline-offset: 2px; border-radius: 6px; }
.rg-faq__ic { position: relative; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--fq-sky); transition: transform .25s, background .25s; }
.rg-faq__ic::after {        /* a tiny chevron */
  content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; margin: -6px 0 0 -4px;
  border: solid var(--fq-ink); border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); transition: border-color .25s;
}
.rg-faq__item.is-open .rg-faq__ic { transform: rotate(180deg); background: var(--fq-a); }
.rg-faq__item.is-open .rg-faq__ic::after { border-color: #fff; }
.rg-faq__a-pad { display: grid; gap: 10px; padding: 0 0 20px; font-size: 15px; line-height: 1.6; color: var(--fq-ink2); }
.rg-faq__a-pad p { margin: 0; }
.rg-faq__a-pad a { color: var(--fq-a); font-weight: 600; text-underline-offset: 3px; }

@media (min-width: 600px) {
  .rg-faq__wrap { padding-inline: 32px; }
  .rg-faq__sub { font-size: 18px; }
}
@media (min-width: 1000px) {
  .rg-faq { padding-block: 64px 96px; }
  .rg-faq__wrap { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; }
  .rg-faq__side { position: sticky; top: 96px; }
  .rg-faq__q { font-size: 18px; padding: 22px 0; }
  .rg-faq__a-pad { padding: 0 50px 22px 0; font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .rg-faq__ic, .rg-faq__ic::after { transition: none; } }
/* proto/sections/18-footer.html */
/* 18 footer: night (#070B12). The cockpit film sits behind the top of the band (min(100vh, 820px) tall,
   560 px on phones) and fades into the night; the landing block sits low over it, then the link grid on the night.
   Phone: landing block, brand + email full width, link columns two by two. Desktop (1000+): brand + five columns. */
.rg-footer {
  --ox-night: #070B12; --ox-glow: #5BE3FF; --ox-a: #0A5CFF;
  --ox-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ox-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  position: relative; overflow: hidden; padding-block: 0 110px; color: #fff; font-family: var(--ox-sans);
  /* the landing: dark glass, full width, open sky above it (kit/GLASS.md) */
  margin-top: var(--rg-pane-gap, 64px);
  border-radius: var(--rg-pane-r, 28px) var(--rg-pane-r, 28px) 0 0;
  background: var(--rg-pane-dark, rgba(7, 11, 18, .80));
  -webkit-backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px)); backdrop-filter: var(--rg-pane-blur, saturate(1.35) blur(20px));
  border-top: 1px solid var(--rg-pane-dark-line, rgba(255, 255, 255, .09));
}
.rg-footer__media { position: absolute; left: 0; right: 0; top: 0; height: 560px; background: #101827; overflow: hidden; }
.rg-footer__poster, .rg-footer__vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.rg-footer__vid { opacity: 0; transition: opacity .6s ease; }
.rg-footer.is-playing .rg-footer__vid { opacity: 1; }
.rg-footer__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(7, 11, 18, .45) 0%, rgba(7, 11, 18, .25) 34%, rgba(7, 11, 18, .7) 72%, #070B12 100%); }

.rg-footer__wrap { position: relative; max-width: 1240px; margin: 0 auto; padding-inline: 16px; }
.rg-footer__land { display: flex; flex-direction: column; align-items: flex-start; padding: 110px 0 56px; }
.rg-footer__status {
  display: flex; align-items: center; gap: 10px; margin: 0 0 16px;
  font-family: var(--ox-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ox-glow);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .5);
}
.rg-footer__ping { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--ox-glow); animation: rg-footer-ping 1.8s ease-out infinite; }
@keyframes rg-footer-ping { 0% { box-shadow: 0 0 0 0 rgba(91, 227, 255, .55), 0 0 12px rgba(91, 227, 255, .85); } 100% { box-shadow: 0 0 0 11px rgba(91, 227, 255, 0), 0 0 12px rgba(91, 227, 255, .85); } }
.rg-footer__big {
  margin: 0; max-width: 1000px; font-size: clamp(44px, 7vw, 104px); line-height: .95; letter-spacing: -.05em; font-weight: 700; text-wrap: balance;
  text-shadow: 0 2px 30px rgba(0, 0, 0, .35);
}
.rg-footer__pun { margin: 18px 0 0; max-width: 620px; font-size: 18px; line-height: 1.45; color: rgba(255, 255, 255, .86); }
.rg-footer__offer {
  display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 24px 0 0; padding: 8px 12px;
  border: 1px solid rgba(91, 227, 255, .38); border-radius: 10px; background: rgba(7, 11, 18, .55);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 14px; line-height: 1.35; color: rgba(255, 255, 255, .9);
}
.rg-footer__offer b { font-family: var(--ox-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ox-glow); }
.rg-footer__btn {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; max-width: 380px; height: 60px; margin-top: 14px;
  border: 0; border-radius: 16px; background: var(--ox-a); color: #fff; cursor: pointer; font: 600 17px/1 var(--ox-sans); letter-spacing: -.01em;
  box-shadow: 0 14px 34px -14px rgba(10, 92, 255, .85), inset 0 1px 0 rgba(255, 255, 255, .25); transition: transform .15s, filter .15s;
}
.rg-footer__btn:hover { filter: brightness(1.1); }
.rg-footer__btn:active { transform: translateY(1px); }
.rg-footer__btn:focus-visible { outline: 2px solid var(--ox-glow); outline-offset: 3px; }
.rg-footer__safe { display: flex; align-items: center; gap: 10px; margin: 14px 0 0; font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, .88); }
.rg-footer__safe img { width: 34px; height: 34px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .5)); }

.rg-footer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; padding-top: 44px; border-top: 1px solid rgba(255, 255, 255, .12); }
.rg-footer__brand { grid-column: 1 / -1; }
.rg-footer__logo { margin: 0; font-family: "Michroma", var(--ox-sans); font-size: 30px; font-weight: 400; line-height: 1; letter-spacing: .35em; text-transform: uppercase; }
.rg-footer__tag { margin: 14px 0 22px; font-family: var(--ox-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.rg-footer__form { margin: 0; max-width: 400px; }
.rg-footer__mail { display: flex; align-items: center; height: 54px; padding: 0 5px 0 16px; border: 1px solid rgba(91, 227, 255, .5); border-radius: 14px; }
.rg-footer__mail:focus-within { border-color: var(--ox-glow); box-shadow: 0 0 0 3px rgba(91, 227, 255, .18); }
.rg-footer__mail input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: #fff; font: 400 16px/1 var(--ox-sans); }
.rg-footer__mail input::placeholder { color: rgba(255, 255, 255, .6); font-family: var(--ox-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.rg-footer__mail button { width: 44px; height: 44px; flex: none; border: 0; border-radius: 10px; background: var(--ox-a); color: #fff; cursor: pointer; font-size: 18px; line-height: 1; }
.rg-footer__mail button:focus-visible { outline: 2px solid var(--ox-glow); outline-offset: 2px; }
.rg-footer__fine, .rg-footer__thanks { margin: 10px 0 0; font-size: 12.5px; color: rgba(255, 255, 255, .62); }
.rg-footer__thanks { color: var(--ox-glow); font-weight: 600; }
.rg-footer__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rg-footer__col { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rg-footer__h { margin: 0 0 6px; font-family: var(--ox-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.rg-footer__col a { padding: 6px 0; font-size: 14.5px; color: rgba(255, 255, 255, .74); text-decoration: none; }
.rg-footer__col a:hover { color: #fff; }
.rg-footer__col a:focus-visible { outline: 2px solid var(--ox-glow); outline-offset: 2px; border-radius: 3px; }
.rg-footer__legal {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; margin-top: 48px; padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .12); font-size: 12px; line-height: 1.5; color: rgba(255, 255, 255, .6);
}

@media (min-width: 600px) {
  .rg-footer__wrap { padding-inline: 32px; }
  .rg-footer__pun { font-size: 20px; }
  .rg-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
  .rg-footer { padding-bottom: 100px; }
  .rg-footer__media { height: min(100vh, 820px); }
  .rg-footer__land { min-height: min(80vh, 640px); justify-content: flex-end; padding: 140px 0 80px; }
  .rg-footer__grid { grid-template-columns: minmax(0, 2fr) repeat(5, minmax(0, 1fr)); gap: 28px; padding-top: 56px; }
  .rg-footer__brand { grid-column: auto; }
  .rg-footer__logo { font-size: clamp(28px, 2.6vw, 40px); }
  .rg-footer__legal { margin-top: 56px; }
}
@media (prefers-reduced-motion: reduce) { .rg-footer__ping { animation: none; } .rg-footer__vid { transition: none; } }
/* proto/sections/90-sticky.html */
  /* 90-sticky: the bar and the choice sheet. Flight Deck look: frosted white bar, graphite type, one electric blue for every
     action, Geist (text) + Geist Mono (labels, data). The section itself takes no room; the bar and the sheet are fixed.
     Under 1000 px the bar shows what is chosen (version + pack) and the button; both open the sheet (version pills, the Pro
     colours, three airplane windows, the add). 1000 px and wider: version pills + colour dots + a mini window per pack inline,
     and the button adds. Colours are this file's own names (the base tokens are not re-keyed for this page). */
  .rg-sec.rg-sticky {
    position: static; padding: 0;
    --rgs-ink: #0B0F14; --rgs-ink2: #2B3440; --rgs-mut: #56606E; --rgs-line: #E2E8F0; --rgs-line2: #C3CDDA;
    --rgs-sky: #EEF6FF; --rgs-tint: #F3F8FF; --rgs-a: #0A5CFF; --rgs-a-hi: #0040C9; --rgs-a-rgb: 10, 92, 255;
    --rgs-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
    --rgs-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    --rgs-ease: cubic-bezier(.2, .7, .2, 1);
  }
  .rg-sticky [hidden] { display: none !important; }
  .rg-sticky button { font-family: var(--rgs-sans); }
  .rg-sticky :focus-visible { outline: 2px solid var(--rgs-a); outline-offset: 2px; }

  /* ---------- the bar ---------- */
  .rg-sticky__bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
    border-top: 1px solid rgba(11, 15, 20, .08); box-shadow: 0 -12px 30px -20px rgba(11, 15, 20, .3);
    color: var(--rgs-ink); font-family: var(--rgs-sans);
    transform: translateY(100%); opacity: 0; visibility: hidden;
    transition: transform .45s var(--rgs-ease), opacity .45s ease, visibility 0s linear .45s;
  }
  .rg-sticky__bar.is-visible, .no-js .rg-sticky__bar { transform: none; opacity: 1; visibility: visible; transition-delay: 0s; }
  .rg-sticky__inner { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; gap: 10px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .rg-sticky__prod, .rg-sticky__vers, .rg-sticky__packs, .rg-sticky__btn.rg-sticky__add { display: none; }

  /* under 1000 px: the summary chip (version + pack) opens the sheet */
  .rg-sticky__sum {
    position: relative; flex: 0 1 auto; min-width: 0; max-width: 46%; height: 52px;
    display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px;
    padding: 0 30px 0 12px; border: 1.5px solid var(--rgs-line); border-radius: 14px; background: #fff; color: var(--rgs-ink); text-align: left;
    transition: border-color .2s;
  }
  .rg-sticky__sum:hover { border-color: var(--rgs-line2); }
  .rg-sticky__sum::after { content: ""; position: absolute; right: 13px; top: 50%; width: 7px; height: 7px; margin-top: -6px;
    border: solid var(--rgs-ink); border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }
  .rg-sticky__sum-k { display: flex; align-items: center; gap: 5px; max-width: 100%; font-family: var(--rgs-mono); font-size: 9.5px; line-height: 1;
    letter-spacing: .09em; text-transform: uppercase; color: var(--rgs-mut); white-space: nowrap; overflow: hidden; }
  .rg-sticky__sum-dot { display: none; flex: none; width: 9px; height: 9px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .3); }
  .rg-sticky[data-version="contrail"] .rg-sticky__sum-dot { display: block; background: #fff; }
  .rg-sticky[data-version="blackbox"] .rg-sticky__sum-dot { display: block; background: #14161a; }
  .rg-sticky__sum-v { max-width: 100%; font-size: 14px; font-weight: 600; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* the button: "Add to suitcase · $price" */
  .rg-sticky__btn {
    flex: 1 1 auto; min-width: 0; height: 52px; display: flex; align-items: center; justify-content: center; gap: 7px;
    padding: 0 14px; border: 0; border-radius: 14px; background: var(--rgs-a); color: #fff;
    font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: -.01em; white-space: nowrap; overflow: hidden;
    box-shadow: 0 14px 30px -16px rgba(var(--rgs-a-rgb), .8), inset 0 1px 0 rgba(255, 255, 255, .22);
    transition: background .2s, transform .15s var(--rgs-ease);
  }
  .rg-sticky__btn [data-rg-bind="price"] { font-variant-numeric: tabular-nums; }
  .rg-sticky__btn:hover { background: var(--rgs-a-hi); }
  .rg-sticky__btn:active { transform: translateY(1px) scale(.99); }
  .rg-sticky__sep { opacity: .7; }
  .rg-sticky__btn:focus-visible { outline-color: var(--rgs-ink); }
  @media (max-width: 359px) { .rg-sticky__inner { gap: 8px; padding-inline: 12px; } .rg-sticky__btn { font-size: 14px; padding: 0 10px; } .rg-sticky__sum { padding-left: 10px; } }

  /* the add button (bar, phone bar, sheet): CAPITALS, live price + compare-at struck + -% badge, electric gradient, a slow
     sheen every 4 s, the suitcase icon. No hover lift, nothing bounces. Phone: label over the deal, no sub-line. */
  .rg-sticky__go {
    position: relative; isolation: isolate; height: 56px; border-radius: 14px; gap: 9px; padding: 0 14px 0 12px;
    background: linear-gradient(135deg, #0A5CFF 0%, #3B82FF 100%); color: #fff;
    box-shadow: 0 18px 34px -14px rgba(10, 92, 255, .85), 0 5px 12px -5px rgba(10, 92, 255, .55),
                inset 0 1px 0 rgba(255, 255, 255, .38), inset 0 -3px 8px rgba(0, 30, 120, .28);
    transition: filter .2s;
  }
  .rg-sticky__go:hover { background: linear-gradient(135deg, #0A5CFF 0%, #3B82FF 100%); filter: brightness(1.07); }
  .rg-sticky__go:active { transform: none; filter: brightness(.97); }
  .rg-sticky__go::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 42%; z-index: -1; pointer-events: none;
    background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .28) 50%, rgba(255, 255, 255, 0) 100%);
    transform: translateX(-130%); animation: rg-sticky-sheen 4s ease-in-out infinite;
  }
  @keyframes rg-sticky-sheen { 0% { transform: translateX(-130%); } 38%, 100% { transform: translateX(260%); } }
  .rg-sticky__go-ic { flex: none; width: 24px; height: 24px; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0, 20, 80, .35)); }
  .rg-sticky__go-txt { display: grid; grid-template-areas: "l" "d"; justify-items: start; row-gap: 3px; min-width: 0; text-align: left; line-height: 1; }
  .rg-sticky__go-l { grid-area: l; font-size: 13.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
  .rg-sticky__go-deal { grid-area: d; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
  .rg-sticky__go-p { font-size: 15px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  .rg-sticky__go-was { font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, .72); font-variant-numeric: tabular-nums; }
  .rg-sticky__go-off { padding: 2px 5px; border-radius: 6px; background: #fff; color: #0A5CFF; font-family: var(--rgs-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .02em; }
  .rg-sticky__go-sub { grid-area: s; display: none; font-family: var(--rgs-mono); font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .85; white-space: nowrap; }
  @media (max-width: 999px) { .rg-sticky__sum { max-width: 40%; } }
  @media (max-width: 374px) {
    .rg-sticky__go { gap: 6px; padding: 0 8px 0 8px; }
    .rg-sticky__go-ic { width: 20px; height: 20px; }
    .rg-sticky__go-l { font-size: 12px; letter-spacing: .03em; }
    .rg-sticky__go-p { font-size: 14px; }
    .rg-sticky__go-was { font-size: 11px; }
    .rg-sticky__go-off { font-size: 9.5px; padding: 2px 4px; }
    .rg-sticky__go-deal { gap: 4px; }
  }
  /* wide: one line "ADD TO SUITCASE  $49.90  $99.80  -50%" with the sub-line under it */
  .rg-sticky__btn.rg-sticky__sadd.rg-sticky__go { height: 60px; justify-content: center; }
  @media (min-width: 480px) {
    .rg-sticky__sadd .rg-sticky__go-txt { grid-template-areas: "l d" "s s"; column-gap: 12px; row-gap: 5px; align-items: center; }
    .rg-sticky__sadd .rg-sticky__go-sub { display: block; }
    .rg-sticky__sadd .rg-sticky__go-l { font-size: 15px; }
    .rg-sticky__sadd .rg-sticky__go-p { font-size: 17px; }
  }
  @media (min-width: 1000px) {
    .rg-sticky__add .rg-sticky__go-txt { grid-template-areas: "l d" "s s"; column-gap: 12px; row-gap: 5px; align-items: center; }
    .rg-sticky__add .rg-sticky__go-sub { display: block; }
    .rg-sticky__add .rg-sticky__go-l { font-size: 15px; }
    .rg-sticky__add .rg-sticky__go-p { font-size: 17px; }
    .rg-sticky__btn.rg-sticky__add.rg-sticky__go { height: 58px; padding: 0 22px 0 18px; }
  }
  @media (prefers-reduced-motion: reduce) { .rg-sticky__go::after { animation: none; display: none; } }
  .rg-sticky__bar:not(.is-visible) .rg-sticky__go::after { animation-play-state: paused; }
  @media (min-width: 600px) { .rg-sticky__inner { padding-inline: 24px; gap: 14px; } .rg-sticky__sum { min-width: 170px; } .rg-sticky__btn { font-size: 16px; } }

  /* 1000 px and wider: one row = (product) + version + packs + the button that adds */
  @media (min-width: 1000px) {
    .rg-sticky__inner { gap: 14px; padding: 10px 24px; min-height: 76px; }
    .rg-sticky__sum, .rg-sticky__btn.rg-sticky__open { display: none; }
    .rg-sticky__vers, .rg-sticky__packs { display: flex; align-items: center; flex: none; }
    .rg-sticky__btn.rg-sticky__add { display: flex; flex: 0 0 auto; margin-left: auto; }

    .rg-sticky__vers { gap: 8px; }
    .rg-sticky__k { display: none; font-family: var(--rgs-mono); font-size: 9.5px; letter-spacing: .09em; text-transform: uppercase; color: var(--rgs-mut); }
    .rg-sticky__seg, .rg-sticky__packs { padding: 3px; gap: 3px; border-radius: 13px; background: var(--rgs-sky); }
    .rg-sticky__seg { display: flex; }
    .rg-sticky__vp { height: 42px; padding: 0 13px; border: 0; border-radius: 10px; background: none; color: var(--rgs-ink2); font-size: 13.5px; font-weight: 600; white-space: nowrap; transition: background .2s, box-shadow .2s, color .2s; }
    .rg-sticky__vp:hover { color: var(--rgs-ink); }
    .rg-sticky__vp.is-active, .rg-sticky__sb.is-active { background: #fff; color: var(--rgs-ink); box-shadow: 0 2px 10px -2px rgba(11, 15, 20, .22), 0 0 0 1.5px var(--rgs-a); }
    .rg-sticky__dots { display: flex; align-items: center; gap: 7px; padding-left: 2px; }
    .rg-sticky__dot { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .25); transition: box-shadow .2s; }
    .rg-sticky__dot-w { background: #fff; }
    .rg-sticky__dot-b { background: #14161a; }
    .rg-sticky__dot.is-active { box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .25), 0 0 0 2px #fff, 0 0 0 3.5px var(--rgs-a); }

    .rg-sticky__sb { display: flex; align-items: center; gap: 9px; height: 52px; padding: 0 13px 0 8px; border: 0; border-radius: 11px; background: none; color: var(--rgs-ink); text-align: left; transition: background .2s, box-shadow .2s; }
    .rg-sticky__sb:hover:not(.is-active) { background: rgba(255, 255, 255, .6); }
    .rg-sticky__st { display: flex; flex-direction: column; line-height: 1.15; }
    .rg-sticky__st b { font-size: 13.5px; font-weight: 600; }
    .rg-sticky__st span { font-size: 12px; color: var(--rgs-mut); font-variant-numeric: tabular-nums; }
    .rg-sticky__sb.is-active .rg-sticky__st span { color: var(--rgs-a); font-weight: 600; }
  }
  @media (min-width: 1200px) { .rg-sticky__k { display: block; } }
  @media (min-width: 1280px) {
    .rg-sticky__inner { gap: 18px; }
    .rg-sticky__prod { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 0 1 auto; }
    .rg-sticky__thumb { flex: none; width: 46px; height: 46px; }
    .rg-sticky__thumb img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(11, 15, 20, .22)); }
    .rg-sticky__id { display: flex; flex-direction: column; gap: 3px; min-width: 0; overflow: hidden; }
    .rg-sticky__id b { font-size: 14.5px; font-weight: 600; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    @media (max-width: 1399px) { .rg-sticky__id { display: none; } }   /* the add button carries price, compare and % now: the name gives way first */
    .rg-sticky__id span { font-family: var(--rgs-mono); font-size: 9.5px; line-height: 1.2; letter-spacing: .09em; text-transform: uppercase; color: var(--rgs-mut); white-space: nowrap; }
  }

  /* the mini airplane window (bar): thick off-white bezel, sky and the adapters behind the glass */
  .rg-sticky__mwin { position: relative; flex: none; width: 26px; height: 39px; border-radius: 13px / 15px;
    background: linear-gradient(160deg, #fff 0%, #eef0f3 55%, #d9dde3 100%);
    box-shadow: 0 2px 5px -1px rgba(11, 15, 20, .3), inset 0 0 0 1px rgba(11, 15, 20, .1), inset 0 1px 1px #fff; }
  .rg-sticky__mglass { position: absolute; inset: 4px; overflow: hidden; border-radius: 10px / 12px; background: #cfe6fb; }
  .rg-sticky__mglass::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 2; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .18), inset 0 2px 3px rgba(11, 15, 20, .3); }
  .rg-sticky__mglass::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 18%; z-index: 3; background: linear-gradient(#f1f3f6, #d6dbe2); border-bottom: 1px solid rgba(11, 15, 20, .14); }
  .rg-sticky__msky { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
  .rg-sticky__munit { position: absolute; left: 4%; top: 26%; width: 92%; height: auto; object-fit: contain; z-index: 1; filter: drop-shadow(0 2px 2px rgba(11, 15, 20, .3)); }
  .rg-sticky__mu2a { left: -6%; top: 36%; width: 70%; }
  .rg-sticky__mu2b { left: 36%; top: 18%; width: 70%; }
  .rg-sticky__mu4a { left: -8%; top: 22%; width: 66%; }
  .rg-sticky__mu4b { left: 40%; top: 46%; width: 66%; }

  /* ---------- the choice sheet: white panel from the bottom over a night scrim (a centred 560 px panel on wide screens) ---------- */
  .rg-sticky__sheet { position: fixed; inset: 0; z-index: 1100; visibility: hidden; pointer-events: none; transition: visibility 0s linear .32s; color: var(--rgs-ink); font-family: var(--rgs-sans); }
  .rg-sticky__sheet.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .rg-sticky__scrim { position: absolute; inset: 0; background: #070B12; opacity: 0; transition: opacity .32s ease; cursor: pointer; }
  .rg-sticky__sheet.is-open .rg-sticky__scrim { opacity: .55; }
  .rg-sticky__panel {
    position: absolute; left: 0; right: 0; bottom: 0; margin: 0 auto; max-width: 560px; max-height: 92vh; max-height: 92dvh;
    display: flex; flex-direction: column; background: #fff; border-radius: 24px 24px 0 0;
    box-shadow: 0 -16px 50px rgba(7, 11, 18, .3); transform: translateY(100%); transition: transform .34s var(--rgs-ease); outline: 0;
  }
  .rg-sticky__sheet.is-open .rg-sticky__panel { transform: none; }
  .rg-sticky__panel.is-drag { transition: none; }
  .rg-sticky__head { position: relative; flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 10px 4px 18px; touch-action: none; }
  .rg-sticky__grip { position: absolute; top: 8px; left: 50%; width: 44px; height: 5px; margin-left: -22px; border-radius: 5px; background: var(--rgs-line2); }
  .rg-sticky .rg-sticky__h { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; color: var(--rgs-ink); }
  .rg-sticky__x { position: relative; flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid var(--rgs-line); border-radius: 12px; background: #fff; color: var(--rgs-ink); }
  .rg-sticky__x span::before, .rg-sticky__x span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.8px; margin: -1px 0 0 -8px; border-radius: 1px; background: currentColor; transform: rotate(45deg); }
  .rg-sticky__x span::after { transform: rotate(-45deg); }
  .rg-sticky__x:hover { border-color: var(--rgs-line2); }
  .rg-sticky__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 6px 16px 14px; }
  .rg-sticky__oh { display: flex; align-items: baseline; gap: 8px; margin: 8px 0 9px; font-family: var(--rgs-mono); font-size: 10.5px; line-height: 1.2; letter-spacing: .09em; text-transform: uppercase; color: var(--rgs-mut); }
  .rg-sticky__oh b { min-width: 0; font-weight: 600; color: var(--rgs-a); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .rg-sticky__oh-pack { margin-top: 18px; }

  /* version pills */
  .rg-sticky__pills { display: flex; gap: 8px; }
  .rg-sticky__pill { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; height: 46px; padding: 0 16px;
    border: 1.5px solid var(--rgs-line); border-radius: 999px; background: #fff; color: var(--rgs-ink); white-space: nowrap; transition: border-color .2s, box-shadow .2s, background .2s; }
  .rg-sticky__pill-std { flex: 0 0 auto; }
  .rg-sticky__pill:not(.rg-sticky__pill-std) { flex: 1 1 auto; }
  .rg-sticky__pill b { font-size: 14.5px; font-weight: 600; }
  .rg-sticky__pill-sep { color: var(--rgs-mut); }
  .rg-sticky__pill-add { font-family: var(--rgs-mono); font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--rgs-a); }
  .rg-sticky__pill:hover { border-color: var(--rgs-line2); }
  .rg-sticky__pill.is-active { border-color: var(--rgs-a); background: var(--rgs-tint); box-shadow: 0 0 0 3px rgba(var(--rgs-a-rgb), .12); }
  /* Pro colours */
  .rg-sticky__cols { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .rg-sticky__col { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px 0 9px; border: 1.5px solid var(--rgs-line); border-radius: 999px; background: #fff;
    color: var(--rgs-ink); font-size: 13.5px; font-weight: 600; white-space: nowrap; transition: border-color .2s; }
  .rg-sticky__col.is-active { border-color: var(--rgs-a); }
  .rg-sticky__sw { flex: none; width: 24px; height: 24px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .22); }
  .rg-sticky__sw-w { background: #fff; }
  .rg-sticky__sw-b { background: #14161a; }

  /* the three airplane windows: CSS porthole (thick off-white bezel, inner rim, shade lip), sky drifting slowly, adapters still,
     name / count / price / save inside the glass over the clouds; selected = blue glow on the bezel */
  .rg-sticky__wins { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding-top: 11px; }
  .rg-sticky__win { position: relative; display: block; min-width: 0; padding: 0; border: 0; background: none; color: var(--rgs-ink); text-align: center; -webkit-tap-highlight-color: transparent; }
  .rg-sticky__win:focus-visible { outline: 0; }
  .rg-sticky__win:focus-visible .rg-sticky__bezel { outline: 2px solid var(--rgs-ink); outline-offset: 3px; }
  .rg-sticky__bezel {
    position: relative; display: block; aspect-ratio: 5 / 8.4; border-radius: 48% / 31%;
    background: radial-gradient(120% 90% at 30% 14%, #fff 0%, #f4f5f7 46%, #dde2e8 100%);
    box-shadow: 0 14px 24px -16px rgba(11, 15, 20, .5), 0 0 0 1px rgba(11, 15, 20, .08), inset 0 2px 2px rgba(255, 255, 255, .95), inset 0 -5px 9px rgba(11, 15, 20, .1);
    transition: box-shadow .25s, transform .25s var(--rgs-ease);
  }
  .rg-sticky__win.is-active .rg-sticky__bezel {
    box-shadow: 0 0 0 2px var(--rgs-a), 0 0 0 6px rgba(var(--rgs-a-rgb), .14), 0 0 24px 2px rgba(var(--rgs-a-rgb), .45), 0 16px 28px -16px rgba(var(--rgs-a-rgb), .7),
                inset 0 2px 2px rgba(255, 255, 255, .95), inset 0 -5px 9px rgba(11, 15, 20, .1);
  }
  .rg-sticky__glass { position: absolute; inset: 8% 10%; overflow: hidden; border-radius: 44% / 30%; background: #3E8EE6; isolation: isolate; }
  .rg-sticky__glass::after { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; pointer-events: none;
    box-shadow: inset 0 0 0 2.5px #d3d9e1, inset 0 0 0 4px rgba(255, 255, 255, .65), inset 0 7px 14px rgba(11, 15, 20, .28); }
  .rg-sticky__glass::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 11%; z-index: 4; pointer-events: none;
    background: linear-gradient(#f2f4f7, #d5dae1); border-bottom: 1px solid rgba(11, 15, 20, .14); box-shadow: 0 2px 5px rgba(11, 15, 20, .18); }
  .rg-sticky__sky { position: absolute; top: 0; left: 0; width: 100%; height: 175%; max-width: none; object-fit: cover; object-position: 50% 4%; }   /* the blue top of the sky, above the clouds */
  .rg-sticky__float { position: absolute; left: 6%; right: 6%; top: 13%; height: 34%; z-index: 1; display: grid; place-content: center; justify-items: center; align-items: center; }
  .rg-sticky__u { position: static; display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(11, 15, 20, .3)); }
  .rg-sticky__w1 .rg-sticky__float { grid-template-columns: 64%; }
  .rg-sticky__w2 .rg-sticky__float { grid-template-columns: repeat(2, 50%); }
  .rg-sticky__w4 .rg-sticky__float { grid-template-columns: repeat(2, 36%); top: 12%; height: 32%; }
  .rg-sticky__wt { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 1px;
    padding: 6px 5% 14%; border-radius: 14px 14px 0 0; background: rgba(255, 255, 255, .94); color: var(--rgs-ink);
    box-shadow: 0 -8px 16px -10px rgba(11, 15, 20, .45), inset 0 1px 0 rgba(255, 255, 255, .9); }
  .rg-sticky__wt b { font-size: 11.5px; font-weight: 600; line-height: 1.1; text-align: center; }
  .rg-sticky__wsub { font-size: 10.5px; line-height: 1.2; color: var(--rgs-mut); white-space: nowrap; }
  .rg-sticky__wprice { margin-top: 2px; font-size: 16px; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
  .rg-sticky__wsave { margin-top: 3px; padding: 3px 6px; border-radius: 999px; background: rgba(var(--rgs-a-rgb), .1); color: var(--rgs-a);
    font-family: var(--rgs-mono); font-size: 8.5px; font-weight: 600; line-height: 1; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
  .rg-sticky__win.is-active .rg-sticky__wsave { background: var(--rgs-a); color: #fff; }
  .rg-sticky__tag { position: absolute; top: -9px; left: 50%; z-index: 5; transform: translateX(-50%); padding: 4px 8px 3px; border-radius: 999px;
    background: var(--rgs-ink); color: #fff; font-family: var(--rgs-mono); font-size: 8.5px; font-weight: 600; line-height: 1; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; pointer-events: none; }
  .rg-sticky__win.is-active .rg-sticky__tag { background: var(--rgs-a); }
  @media (min-width: 480px) {
    .rg-sticky__wins { gap: 14px; }
    .rg-sticky__wt b { font-size: 13.5px; }
    .rg-sticky__wsub { font-size: 12px; }
    .rg-sticky__wprice { font-size: 19px; }
    .rg-sticky__wsave { font-size: 9.5px; padding: 3px 8px; }
    .rg-sticky__tag { font-size: 9.5px; padding: 4px 10px 3px; top: -10px; }
  }

  /* the add, same as the buy box button */
  .rg-sticky__foot { flex: none; padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--rgs-line); background: #fff; }
  .rg-sticky__btn.rg-sticky__sadd { display: flex; width: 100%; }
  .rg-sticky__trust { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 6px; margin: 9px 0 0; font-size: 12.5px; line-height: 1.3; color: var(--rgs-mut); text-align: center; }
  .rg-sticky__trust img { width: 22px; height: 22px; object-fit: contain; }
  .rg-sticky__trust i { font-style: normal; opacity: .6; }
  @media (min-width: 1000px) {
    .rg-sticky__panel { bottom: 16px; border-radius: 24px; }
    .rg-sticky__grip { display: none; }
    .rg-sticky__head { padding-top: 16px; }
    .rg-sticky__foot { border-radius: 0 0 24px 24px; padding-bottom: 16px; }
  }

  @keyframes rg-sticky-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-24%, 0, 0); } }
  /* nothing moves behind a closed sheet or a hidden bar */
  .rg-sticky__sheet:not(.is-open) .rg-sticky__sky, .rg-sticky__sheet:not(.is-open) .rg-sticky__u,
  @media (prefers-reduced-motion: reduce) {
    .rg-sticky__bar { transition: opacity .2s ease, visibility 0s; transform: none; }
    .rg-sticky__sheet, .rg-sticky__scrim, .rg-sticky__panel { transition: none; }
    .rg-sticky__sky { animation: none; }
  }
/* proto/sections/91-cart.html */
  /* 91-cart: the suitcase drawer (an overlay; the section takes no room). Flight Deck look: white panel from the right over a
     night scrim, graphite type, electric blue for the actions, Geist (text) + Geist Mono (labels, data). One-time purchase
     wording only. No upgrade popup on this page (OFFER.upgradeFrom is null): the nudge inside the drawer does that job.
     No script of its own: commerce.js fills the bindings (data-rg-tier="pack" follows the suitcase and its version), swaps
     the version picture (data-rg-vimg), picks the nudge (data-rg-when) and runs data-rg-pack-set / remove / checkout;
     core.js opens, closes and traps focus. Colours are this file's own names (the base tokens are not re-keyed for this page). */
  .rg-sec.rg-cart {
    position: static; padding: 0;
    --rgc-ink: #0B0F14; --rgc-ink2: #2B3440; --rgc-mut: #56606E; --rgc-line: #E2E8F0; --rgc-line2: #C3CDDA;
    --rgc-sky: #EEF6FF; --rgc-tint: #F2F7FF; --rgc-a: #0A5CFF; --rgc-a-hi: #0040C9; --rgc-a-rgb: 10, 92, 255;
    --rgc-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
    --rgc-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  }
  .rg-cart [hidden] { display: none !important; }
  .rg-cart button { font-family: var(--rgc-sans); }
  .rg-cart :focus-visible { outline: 2px solid var(--rgc-a); outline-offset: 2px; }

  .rg-cart__drawer { position: fixed; inset: 0; z-index: 1200; display: flex; justify-content: flex-end; visibility: hidden; pointer-events: none; transition: visibility 0s linear .32s; }
  .rg-cart__drawer.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .rg-cart__scrim { position: absolute; inset: 0; background: #070B12; opacity: 0; transition: opacity .32s ease; cursor: pointer; }
  .rg-cart__drawer.is-open .rg-cart__scrim { opacity: .5; }
  .rg-cart__panel {
    position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; max-width: 440px; height: 100%;
    background: #fff; color: var(--rgc-ink); font-family: var(--rgc-sans); font-size: 15px; line-height: 1.45;
    box-shadow: -20px 0 60px -20px rgba(7, 11, 18, .4); overflow: hidden; outline: 0;
    transform: translateX(100%); transition: transform .32s cubic-bezier(.2, .7, .2, 1);
  }
  .rg-cart__drawer.is-open .rg-cart__panel { transform: none; }

  /* head: the suitcase, YOUR SUITCASE in mono capitals, the count, close */
  .rg-cart__head { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 14px 20px; border-bottom: 1px solid var(--rgc-line); }
  .rg-cart .rg-cart__title { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--rgc-mono); font-size: 12.5px; font-weight: 600; line-height: 1; letter-spacing: .12em; text-transform: uppercase; color: var(--rgc-ink); }
  .rg-cart__title img { width: 32px; height: 32px; object-fit: contain; }
  .rg-cart__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--rgc-a); color: #fff; font-size: 11px; letter-spacing: 0; }
  .rg-cart__x { position: relative; flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid var(--rgc-line); border-radius: 12px; background: #fff; color: var(--rgc-ink); }
  .rg-cart__x span::before, .rg-cart__x span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.8px; margin: -1px 0 0 -8px; border-radius: 1px; background: currentColor; transform: rotate(45deg); }
  .rg-cart__x span::after { transform: rotate(-45deg); }
  .rg-cart__x:hover { border-color: var(--rgc-line2); }
  /* ship strip: a slim graphite instrument line */
  .rg-cart__ship { flex: none; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 9px 16px; background: var(--rgc-ink); color: rgba(255, 255, 255, .78);
    font-family: var(--rgc-mono); font-size: 10.5px; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
  .rg-cart__ship b { font-weight: 600; color: #5BE3FF; font-variant-numeric: tabular-nums; }
  .rg-cart__ship i { font-style: normal; opacity: .5; }

  .rg-cart__full { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
  .rg-cart__drawer[data-pack="0"] .rg-cart__full { display: none; }
  .rg-cart__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px 20px 18px; }

  /* the pack line */
  .rg-cart__item { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 16px; align-items: start; }
  .rg-cart__thumb { position: relative; width: 88px; height: 88px; border-radius: 16px; background: radial-gradient(90% 90% at 50% 30%, #fff 0%, var(--rgc-sky) 70%); box-shadow: inset 0 0 0 1px rgba(10, 92, 255, .1); }
  .rg-cart__thumb img { width: 100%; height: 100%; padding: 8px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(11, 15, 20, .22)); }
  .rg-cart__qty { position: absolute; top: -8px; right: -8px; min-width: 28px; height: 24px; padding: 0 7px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--rgc-ink); color: #fff; font-family: var(--rgc-mono); font-size: 11.5px; font-weight: 600; line-height: 1; white-space: nowrap; box-shadow: 0 0 0 2px #fff; }
  .rg-cart__info { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
  .rg-cart__kicker { margin: 0; font-family: var(--rgc-mono); font-size: 10px; line-height: 1.3; letter-spacing: .09em; text-transform: uppercase; color: var(--rgc-a); }
  .rg-cart__name { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; }
  .rg-cart__line { margin: 0; font-size: 13.5px; line-height: 1.35; color: var(--rgc-mut); }
  .rg-cart__ver { display: flex; align-items: center; gap: 6px; }
  .rg-cart__dot { display: none; flex: none; width: 10px; height: 10px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(11, 15, 20, .3); }
  .rg-cart__drawer[data-pack-version="contrail"] .rg-cart__dot { display: block; background: #fff; }
  .rg-cart__drawer[data-pack-version="blackbox"] .rg-cart__dot { display: block; background: #14161a; }
  .rg-cart__prices { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 4px 0 0; }
  .rg-cart__price { font-size: 17px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  .rg-cart__remove { margin-left: auto; min-height: 32px; padding: 0 2px; border: 0; background: none; color: var(--rgc-mut); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
  .rg-cart__remove:hover { color: var(--rgc-ink); }

  /* the upgrade nudge */
  .rg-cart__nudge { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 14px; border: 1px dashed rgba(10, 92, 255, .45); border-radius: 16px; background: var(--rgc-tint); }
  .rg-cart__nudge-t { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .rg-cart__nudge-t b { font-size: 14.5px; font-weight: 600; line-height: 1.25; }
  .rg-cart__nudge-t span { font-size: 12.5px; line-height: 1.35; color: var(--rgc-ink2); }
  .rg-cart__nudge-b { flex: none; height: 44px; padding: 0 16px; border: 0; border-radius: 12px; background: var(--rgc-ink); color: #fff; font-size: 13.5px; font-weight: 600; transition: background .2s; }
  .rg-cart__nudge-b:hover { background: var(--rgc-a); }
  .rg-cart__best { display: flex; align-items: center; gap: 10px; margin: 18px 0 0; padding: 13px 14px; border: 1px solid rgba(10, 92, 255, .35); border-radius: 16px; background: var(--rgc-tint); color: var(--rgc-a); font-size: 14px; font-weight: 600; line-height: 1.3; }
  .rg-cart__tick { flex: none; position: relative; width: 22px; height: 22px; border-radius: 50%; background: var(--rgc-a); }
  .rg-cart__tick::after { content: ""; position: absolute; left: 8px; top: 5px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }

  /* foot: totals, checkout, guarantee, payment logos */
  .rg-cart__foot { flex: none; padding: 14px 20px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--rgc-line); background: #fff; }
  .rg-cart__sum { margin: 0; padding: 0; list-style: none; }
  .rg-cart__sum li { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; font-size: 14px; color: var(--rgc-mut); font-variant-numeric: tabular-nums; }
  .rg-cart__sum-total { margin-top: 4px; padding-top: 9px !important; border-top: 1px solid var(--rgc-line); color: var(--rgc-ink) !important; font-size: 17px !important; font-weight: 700; letter-spacing: -.01em; }
  .rg-cart__checkout { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 58px; margin-top: 12px; padding: 0 16px; border: 0; border-radius: 16px;
    background: var(--rgc-a); color: #fff; font-size: 17px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap;
    box-shadow: 0 14px 34px -14px rgba(var(--rgc-a-rgb), .75), inset 0 1px 0 rgba(255, 255, 255, .25); transition: background .2s, transform .15s; }
  .rg-cart__checkout [data-rg-bind] { font-variant-numeric: tabular-nums; }
  .rg-cart__checkout:hover { background: var(--rgc-a-hi); }
  .rg-cart__checkout:active { transform: translateY(1px); }
  .rg-cart__checkout:focus-visible { outline-color: var(--rgc-ink); }
  .rg-cart__sep { opacity: .7; }
  .rg-cart__guar { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 12px 0 0; font-size: 13px; line-height: 1.3; color: var(--rgc-ink2); }
  .rg-cart__guar img { width: 26px; height: 26px; object-fit: contain; }
  .rg-cart__pay { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
  .rg-cart__pay img { display: block; width: 38px; height: 24px; padding: 2px; object-fit: contain; border: 1px solid var(--rgc-line); border-radius: 5px; background: #fff; }

  /* empty suitcase */
  .rg-cart__empty { display: none; flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; min-height: 0; padding: 32px 28px 48px; text-align: center; }
  .rg-cart__drawer[data-pack="0"] .rg-cart__empty { display: flex; }
  .rg-cart__empty img { width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(11, 15, 20, .2)); }
  .rg-cart__empty-t { margin: 16px 0 0; font-size: 20px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
  .rg-cart__empty-s { margin: 6px 0 0; font-size: 14.5px; color: var(--rgc-mut); }
  .rg-cart__empty-b { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 320px; height: 54px; margin-top: 22px; border-radius: 16px;
    background: var(--rgc-a); color: #fff; font-size: 16px; font-weight: 600; text-decoration: none; transition: background .2s; }
  .rg-cart__empty-b:hover { background: var(--rgc-a-hi); color: #fff; }

  @media (max-width: 380px) {
    .rg-cart__body { padding-inline: 16px; }
    .rg-cart__foot { padding-inline: 16px; }
    .rg-cart__item { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
    .rg-cart__thumb { width: 76px; height: 76px; }
    .rg-cart__nudge { flex-wrap: wrap; }
    .rg-cart__nudge-b { width: 100%; }
  }
  @media (prefers-reduced-motion: reduce) { .rg-cart__drawer, .rg-cart__panel, .rg-cart__scrim { transition: none; } }
/* proto/sections/92-club.html */
  /* 92-club: the Travelers Club sheet (an overlay; the section takes no room). Board sizes as approved: a white sheet,
     min(560px, 100%) wide, anchored to the bottom and centred, 20px top corners, a 48px graphite bar, Geist, electric blue.
     It slides up over a blurred backdrop (Ventra's family sheet: .55s, the same curve); html.rg-lock (core.js) stops the
     page scrolling under it. The body scrolls inside the sheet when the screen is short (max 92% of its height). */
  .rg-sec.rg-club { position: static; padding: 0; }
  .rg-club [hidden] { display: none !important; }

  .rg-club__root {
    position: fixed; inset: 0; z-index: 1250; visibility: hidden; pointer-events: none; transition: visibility 0s linear .55s;
    font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 16px; line-height: normal; color: #14171E;
    -webkit-font-smoothing: antialiased;
  }
  .rg-club__root.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .rg-club__scrim { position: absolute; inset: 0; background: rgba(14, 12, 10, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .4s ease; cursor: pointer; }
  .rg-club__root.is-open .rg-club__scrim { opacity: 1; }
  .rg-club__sheet {
    position: absolute; left: 50%; bottom: 0; width: min(560px, 100%); max-height: 92vh; max-height: 92dvh;
    display: flex; flex-direction: column; background: #FFFFFF; border-radius: 20px 20px 0 0; box-shadow: 0 -18px 60px rgba(15, 14, 10, .35);
    transform: translate(-50%, 104%); transition: transform .55s cubic-bezier(.22, 1, .36, 1); outline: 0; overscroll-behavior: contain;
  }
  .rg-club__root.is-open .rg-club__sheet { transform: translate(-50%, 0); }

  /* the bar: suitcase, Your Suitcase (n), close */
  .rg-club__bar { flex: none; display: flex; align-items: center; justify-content: space-between; height: 48px; padding: 0 8px 0 18px; background: #0E0F12; border-radius: 20px 20px 0 0; }
  .rg-club__bar-l { display: flex; align-items: center; gap: 11px; min-width: 0; }
  .rg-club__bar-l img { flex: none; width: 22px; height: 22px; object-fit: contain; }
  .rg-club .rg-club__title { margin: 0; font-family: inherit; font-size: 17px; font-weight: 700; line-height: normal; letter-spacing: .01em; text-transform: none; color: #FFFFFF; white-space: nowrap; }
  .rg-club__x { flex: none; width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: #FFFFFF; cursor: pointer; }
  .rg-club__x svg { display: block; }
  .rg-club__x:focus-visible { outline: 2px solid #FFFFFF; outline-offset: -4px; border-radius: 10px; }

  .rg-club__scroll { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    padding: 8px 20px calc(12px + env(safe-area-inset-bottom, 0px)); }
  .rg-club__scroll > * { flex-shrink: 0; }

  .rg-club .rg-club__added { align-self: flex-start; display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 6px 13px; border-radius: 99px; background: #111318; color: #FFFFFF;
    font-size: 10.5px; font-weight: 600; letter-spacing: .1em; }
  .rg-club__added svg { flex: none; display: block; }

  /* the pack line */
  .rg-club__item { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
  .rg-club__thumb { flex: none; width: 72px; height: 72px; border-radius: 14px; background: #E8EDF5; display: grid; place-items: center; }
  .rg-club__thumb img { width: 62px; height: 62px; object-fit: contain; }
  .rg-club__info { flex: 1; min-width: 0; display: grid; gap: 5px; justify-items: start; }
  .rg-club .rg-club__name { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.3; }
  .rg-club__chip { display: inline-flex; align-items: center; height: 27px; padding: 0 10px; border: 1px solid #E3E6EB; border-radius: 10px; font-size: 12px; font-weight: 600; white-space: nowrap; }
  .rg-club__prices { flex: none; align-self: flex-start; display: grid; gap: 1px; justify-items: end; }
  .rg-club__was { font-size: 12px; color: #9AA0AC; text-decoration: line-through; font-variant-numeric: tabular-nums; }
  .rg-club__now { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }

  .rg-club__plus { display: flex; align-items: center; gap: 14px; margin-top: 3px; color: #B6BCC6; font-size: 19px; }
  .rg-club__plus::before, .rg-club__plus::after { content: ""; flex: 1; height: 1px; background: #E6E8EC; }

  /* one line, as on the board: 15px, scaled down just enough on a phone narrower than the board (the line is ~24 em long) */
  .rg-club .rg-club__seat { margin: 7px 0 0; font-size: clamp(12.5px, calc((100vw - 40px) / 24.5), 15px); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; white-space: nowrap; }
  .rg-club__seat strong { color: #0A55EB; font-weight: 800; }

  /* the club card */
  .rg-club__card { position: relative; overflow: hidden; margin-top: 5px; padding: 12px 14px 11px; border-radius: 18px; background: linear-gradient(135deg, #2A73FF 0%, #0041C4 100%);
    box-shadow: 0 10px 26px rgba(0, 65, 196, .32); color: #FFFFFF; }
  .rg-club .rg-club__pass { position: absolute; right: -6%; top: 0; width: 41%; max-width: none; height: auto; transform: rotate(-9deg); filter: drop-shadow(0 8px 14px rgba(0, 20, 70, .45)); pointer-events: none; }
  .rg-club__card-c { position: relative; }
  .rg-club .rg-club__card-t { margin: 0; font-family: inherit; font-size: 15.5px; font-weight: 700; line-height: 1.25; color: #FFFFFF; }
  .rg-club__pills { display: flex; width: 56%; margin-top: 6px; padding: 5px 2px; border-radius: 12px; background: rgba(255, 255, 255, .15); }
  .rg-club .rg-club__pill { flex: 1; display: grid; gap: 1px; margin: 0; text-align: center; }
  .rg-club__pill + .rg-club__pill { border-left: 1px solid rgba(255, 255, 255, .3); }
  .rg-club__pill b { font-size: 13px; font-weight: 700; line-height: 1.25; }
  .rg-club__pill span { font-size: 10px; font-weight: 500; line-height: 1.25; color: rgba(255, 255, 255, .88); }
  .rg-club .rg-club__due { display: flex; align-items: baseline; gap: 7px; margin: 7px 0 0; }
  .rg-club__due-k { font-size: 10px; font-weight: 600; letter-spacing: .18em; }
  .rg-club__due-v { font-size: 13px; font-weight: 700; }
  .rg-club .rg-club__then { margin: 0; font-size: 12px; font-weight: 400; line-height: 1.3; color: #D3E0FA; }
  .rg-club .rg-club__note { margin: 5px 0 0; font-size: 10px; font-weight: 500; line-height: 1.3; letter-spacing: .01em; color: #D3E0FA; }

  /* the two perks */
  .rg-club__perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 5px; padding: 7px 10px; border-radius: 12px; background: #EEF4FF; border: 1px solid #BFD3FA; }
  .rg-club .rg-club__perk { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; }
  .rg-club__perk + .rg-club__perk { padding-left: 8px; border-left: 1px solid #C9D9F7; }
  .rg-club__perk svg { flex: none; display: block; width: 20px; height: 20px; }
  .rg-club__perk > span { min-width: 0; }
  .rg-club__perk-t { display: block; font-size: 12px; font-weight: 700; line-height: 1.3; }
  .rg-club__perk-s { display: block; margin-top: 1px; font-size: 10px; font-weight: 500; line-height: 1.3; color: #5B6472; }

  .rg-club .rg-club__terms { margin: 5px 0 0; padding: 7px 11px; border-radius: 12px; background: #F2F3F5; font-size: 10.5px; line-height: 1.38; color: #4B5160; }

  /* savings, subtotal */
  .rg-club .rg-club__save { display: flex; align-items: baseline; justify-content: space-between; margin: 8px 0 0; font-size: 13px; font-weight: 700; letter-spacing: .01em; color: #0A55EB; font-variant-numeric: tabular-nums; }
  .rg-club .rg-club__sub { display: flex; align-items: baseline; justify-content: space-between; margin: 3px 0 0; padding-bottom: 8px; border-bottom: 1px solid #E6E8EC;
    font-size: 19px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  .rg-club__sub span + span { letter-spacing: 0; }

  /* the join button */
  .rg-club__join { width: 100%; margin-top: 6px; padding: 13px 18px; border: 0; border-radius: 14px; background: #0A5CFF; color: #FFFFFF; text-align: center;
    font-family: inherit; cursor: pointer; transition: background .15s ease, transform .1s ease; }
  .rg-club__join:hover { background: #0049D9; }
  .rg-club__join:active { transform: scale(.99); }
  .rg-club__join:focus-visible { outline: 2px solid #0A5CFF; outline-offset: 3px; }
  .rg-club__join-a { display: block; font-size: 14px; font-weight: 700; line-height: normal; letter-spacing: .12em; }
  .rg-club__join-a u { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
  .rg-club__join-b { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 700; line-height: normal; letter-spacing: .12em; }

  /* the payment methods: six equal slots, 18px high */
  .rg-club .rg-club__pay { display: flex; gap: 5px; margin: 6px 0 0; padding: 0; list-style: none; }
  .rg-club__pay li { flex: 1 1 0; min-width: 0; height: 18px; }
  .rg-club .rg-club__pay img { display: block; width: 100%; height: 18px; object-fit: contain; }

  /* a short screen (an SE-size phone, a landscape phone, a small laptop window): as Ventra's sheet does, the decorative "+"
     row and the payment logos step aside first so the join button stays on screen; still shorter, the body scrolls */
  @media (max-height: 720px) {
    .rg-club__plus, .rg-club .rg-club__pay { display: none; }
    .rg-club .rg-club__seat { margin-top: 8px; }
  }
  @media (max-width: 339px) {
    .rg-club .rg-club__seat { white-space: normal; }
  }

  @media (prefers-reduced-motion: reduce) {
    .rg-club__root, .rg-club__scrim, .rg-club__sheet, .rg-club__join { transition: none; }
  }
