/* ═══════════════════════════════════════════════════════════════════════════
   GLASS WORLDS — HUB (/glass-worlds/)
   Endorsed brand: Launchpad chrome (tokens/base/components/layout) + Glass
   Worlds content layer. Light register, one navy hero. Each world card carries
   its own scoped tokens (.gw-world--reef / --ant / --dino).
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --gw-ink: var(--lp-brand-navy, #0D1123);
  --gw-ink-2: #3E4A5E;              /* body copy on white, 9.3:1 */
  --gw-ink-3: #5B6678;              /* small print on white, 5.9:1 */
  --gw-line: #E2E8F0;
  --gw-line-strong: #CBD5E1;
  --gw-paper: #FFFFFF;
  --gw-tint: #F6F8FB;
  --gw-glass: rgba(255, 255, 255, 0.55);
  --gw-accent: var(--lp-blue-700, #2C72C2);      /* text-safe blue on white, 4.8:1 */
  --gw-serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --gw-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --gw-radius: 14px;
  --gw-gutter: 16px;
  color-scheme: light;
}

body.gw-hub { background: var(--gw-paper); color: var(--gw-ink); overflow-x: hidden; }

.gw-hub .container { padding-left: var(--gw-gutter); padding-right: var(--gw-gutter); }
@media (min-width: 768px) { .gw-hub .container { padding-left: 32px; padding-right: 32px; } }
@media (min-width: 1100px) { .gw-hub .container { padding-left: 48px; padding-right: 48px; } }

/* ── Skip link + focus ─────────────────────────────────────────────── */
.gw-skip {
  position: absolute; left: 12px; top: -60px; z-index: 1000;
  background: #fff; color: var(--gw-ink); padding: 10px 16px; border-radius: 8px;
  font-weight: 600; text-decoration: none; box-shadow: 0 4px 16px rgba(13,17,35,.2);
}
.gw-skip:focus { top: 12px; }
.gw-hub :focus-visible { outline: 3px solid var(--lp-brand-blue, #4490E2); outline-offset: 3px; border-radius: 4px; }
.gw-hub .dark-section :focus-visible,
.gw-hub .site-footer :focus-visible { outline-color: #9CC7F3; }

/* ── Glass Worlds wordmark ─────────────────────────────────────────── */
.gw-mark {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--gw-ink); text-decoration: none; line-height: 1;
}
.gw-mark__word {
  font-family: var(--gw-serif); font-size: 1.625rem; font-weight: 400;
  letter-spacing: -0.005em; white-space: nowrap;
}
.gw-mark--on-dark { color: #FFFFFF; }
.gw-mark--sm .gw-mark__word { font-size: 1.3rem; }
.gw-mark__glyph { flex: none; }

/* ── Hero (the one navy section) ───────────────────────────────────── */
.gw-hero {
  position: relative;
  background:
    radial-gradient(ellipse 60% 70% at 85% 30%, rgba(68,144,226,.16), transparent 70%),
    var(--color-bg-dark, #0D1123);
  padding: 104px 0 72px;
  overflow: hidden;
}
.gw-productbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 18px 0 20px; margin-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.gw-endorse {
  margin: 0; font-size: 0.8125rem; letter-spacing: 0.02em;
  color: rgba(255,255,255,.78) !important;
}
.gw-hero__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 960px) { .gw-hero__grid { grid-template-columns: 1fr 1.08fr; gap: 64px; } }

.gw-overline {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: #9CC7F3 !important; margin: 0 0 16px;
}
.gw-overline--light { color: var(--gw-accent) !important; }

.gw-hero__title {
  font-family: var(--gw-serif); font-weight: 400;
  font-size: clamp(2.5rem, 6.4vw, 4.5rem); line-height: 1.02; letter-spacing: -0.015em;
  color: #FFFFFF; margin: 0 0 20px; max-width: 12ch;
}
.gw-hero__lead {
  font-size: 1.125rem; line-height: 1.6; color: rgba(255,255,255,.84) !important;
  max-width: 34rem; margin: 0 0 32px;
}
.gw-hero__actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.gw-btn-lg { min-height: 50px; padding: 14px 26px; font-size: 1rem; }
.gw-hero .btn-primary { background: #4490E2; color: #0D1123; }
.gw-hero .btn-primary:hover { background: #6FA8E8; color: #0D1123; }

.gw-textlink {
  color: var(--gw-accent); font-weight: 600; font-size: 0.9375rem;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.gw-textlink:hover { text-decoration-thickness: 2px; }
.gw-textlink--on-dark { color: #FFFFFF; }

.gw-status-line {
  display: flex; gap: 10px; align-items: baseline;
  font-size: 0.875rem; line-height: 1.5; color: rgba(255,255,255,.72) !important; margin: 0; max-width: 34rem;
}
.gw-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #E8B04B; transform: translateY(-1px); }

/* The glass pane: a thin frame with a soft inner bevel and a single glint */
.gw-pane {
  position: relative; border-radius: var(--gw-radius); overflow: hidden;
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: 0 0 0 6px rgba(255,255,255,.05), 0 30px 80px -20px rgba(0,0,0,.55);
  background: #0A2430;
}
.gw-pane::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(125deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 28%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
  border-radius: inherit;
}
.gw-pane img, .gw-pane video { width: 100%; height: auto; display: block; }
.gw-pane--light {
  border-color: var(--gw-line-strong);
  box-shadow: 0 0 0 6px var(--gw-tint), 0 24px 60px -24px rgba(13,17,35,.28);
  background: #E9ECEF;
}
.gw-pane--light::after { background: linear-gradient(125deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 24%); }

.gw-hero__figure { margin: 0; }
.gw-hero__figure figcaption,
.gw-wide-figure figcaption {
  margin-top: 14px; font-size: 0.8125rem; line-height: 1.5;
}
.gw-hero__figure figcaption { color: rgba(255,255,255,.68); }

/* ── Local nav ─────────────────────────────────────────────────────── */
.gw-localnav { border-bottom: 1px solid var(--gw-line); background: #fff; }
.gw-localnav__inner {
  display: flex; gap: 4px 28px; overflow-x: auto; scrollbar-width: none;
  padding-top: 14px; padding-bottom: 14px;
}
.gw-localnav__inner::-webkit-scrollbar { display: none; }
.gw-localnav a {
  flex: none; color: var(--gw-ink-2); font-size: 0.875rem; font-weight: 500; text-decoration: none;
  padding: 6px 0; border-bottom: 2px solid transparent;
}
.gw-localnav a:hover { color: var(--gw-ink); border-bottom-color: var(--gw-ink); }

/* ── Sections ──────────────────────────────────────────────────────── */
.gw-section { padding: 88px 0; scroll-margin-top: 72px; }
@media (max-width: 767px) { .gw-section { padding: 64px 0; } }
.gw-section--tint { background: var(--gw-tint); border-top: 1px solid var(--gw-line); border-bottom: 1px solid var(--gw-line); }
.gw-section__head { max-width: 44rem; margin-bottom: 48px; }
.gw-section__head h2,
.gw-section h2 {
  font-family: var(--gw-serif); font-weight: 400;
  font-size: clamp(2rem, 4.2vw, 3rem); line-height: 1.08; letter-spacing: -0.01em;
  color: var(--gw-ink); margin: 0 0 16px;
}
.gw-section__lead { font-size: 1.0625rem; line-height: 1.65; color: var(--gw-ink-2); margin: 0; max-width: 40rem; }

/* Pillars */
.gw-pillars { display: grid; gap: 0; border-top: 1px solid var(--gw-line); margin-bottom: 56px; }
@media (min-width: 720px) { .gw-pillars { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .gw-pillars { grid-template-columns: repeat(4, 1fr); } }
.gw-pillar { padding: 28px 24px 28px 0; border-bottom: 1px solid var(--gw-line); }
@media (min-width: 1100px) {
  .gw-pillar { border-bottom: 0; padding: 28px 28px 8px 0; }
  .gw-pillar + .gw-pillar { padding-left: 28px; border-left: 1px solid var(--gw-line); }
}
.gw-pillar h3 { font-size: 1.0625rem; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 10px; color: var(--gw-ink); }
.gw-pillar p { font-size: 0.9375rem; line-height: 1.6; color: var(--gw-ink-2); margin: 0 0 12px; }

.gw-tag {
  display: inline-block; margin: 4px 0 0 !important;
  font-family: var(--gw-mono); font-size: 0.75rem !important; line-height: 1.4 !important; letter-spacing: 0.01em;
  padding: 3px 8px; border-radius: 4px; border: 1px solid var(--gw-line-strong); color: var(--gw-ink-3) !important;
  background: #fff;
}
.gw-tag--now { border-color: #9CC7F3; color: #1E5A9C !important; background: #EAF2FB; }

.gw-wide-figure { margin: 0; }
.gw-wide-figure figcaption { color: var(--gw-ink-3); }

/* ── World cards ───────────────────────────────────────────────────── */
.gw-worlds { display: grid; gap: 24px; }
@media (min-width: 960px) { .gw-worlds { grid-template-columns: repeat(3, 1fr); } }

.gw-world {
  display: flex; flex-direction: column; border-radius: var(--gw-radius); overflow: hidden;
  background: var(--w-paper); color: var(--w-ink); border: 1px solid var(--w-line);
  box-shadow: 0 1px 2px rgba(13,17,35,.04);
  transition: transform .25s var(--ease-default, ease), box-shadow .25s var(--ease-default, ease);
}
.gw-world:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(13,17,35,.35); }
.gw-world__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--w-deep); }
.gw-world__media img { width: 100%; height: 100%; object-fit: cover; }
.gw-world__shot {
  position: absolute; left: 12px; bottom: 12px;
  font-family: var(--gw-mono); font-size: 0.6875rem; letter-spacing: 0.02em;
  background: rgba(255,255,255,.9); color: #1F2937; padding: 3px 8px; border-radius: 4px;
}
.gw-world__body { padding: 24px 24px 28px; display: flex; flex-direction: column; gap: 0; flex: 1; }
.gw-world__body > p { font-size: 0.9375rem; line-height: 1.6; color: var(--w-ink-2); margin: 0 0 20px; }
.gw-world__status {
  align-self: flex-start; margin: 0 0 14px !important;
  font-family: var(--gw-mono); font-size: 0.75rem !important; line-height: 1.4 !important;
  padding: 3px 8px; border-radius: 4px; border: 1px dashed var(--w-line-strong); color: var(--w-ink-2) !important;
}
.gw-world__status--preview { border-style: solid; }
.gw-world__name { margin: 0 0 4px; color: var(--w-ink); }
.gw-world__place { font-size: 0.8125rem !important; color: var(--w-ink-3) !important; margin: 0 0 14px !important; }
.gw-world__link {
  margin-top: auto; align-self: flex-start;
  color: var(--w-link); font-weight: 600; font-size: 0.9375rem; text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
.gw-world__link:hover { border-bottom-width: 2px; }

/* Reefglass: Kerama blue, sunlit sand, serif + italic "glass" (matches the in-engine title) */
.gw-world--reef {
  --w-paper: #F6F1E7; --w-deep: #04202F; --w-ink: #0B2433; --w-ink-2: #2C4553; --w-ink-3: #46606C;
  --w-line: #E4DCCB; --w-line-strong: #12627F; --w-link: #12627F;
}
.gw-world__name--reef { font-family: var(--gw-serif); font-weight: 400; font-size: 2.25rem; line-height: 1; letter-spacing: -0.01em; }
.gw-world__name--reef em { font-style: italic; color: #12627F; }
.gw-world--reef .gw-world__status { border-color: #12627F; color: #0A3D57 !important; background: #D6EFF3; }
.gw-world--reef .gw-world__body { border-top: 3px solid #EF6A2E; }

/* Antglass: garden soil strata, paving-slab grey, buff-cocoon accent; field-notes mono */
.gw-world--ant {
  --w-paper: #FBF8F1; --w-deep: #3E2A1D; --w-ink: #2B2019; --w-ink-2: #4A3B30; --w-ink-3: #5F5D58;
  --w-line: #E9E0CF; --w-line-strong: #8A6A3A; --w-link: #6E4C35;
}
.gw-world__name--ant { font-family: 'Literata', Georgia, serif; font-weight: 600; font-size: 2rem; letter-spacing: -0.02em; line-height: 1; }
.gw-world--ant .gw-world__status { background: #F4ECDD; }
.gw-mono { font-family: var(--gw-mono); }
.gw-strata { position: absolute; inset: 0; display: grid; grid-template-rows: 1.1fr 0.8fr 1.3fr 0.9fr; }
.gw-strata span {
  display: flex; align-items: flex-start; justify-content: flex-end; padding: 8px 12px;
  font-family: var(--gw-mono); font-size: 0.6875rem; letter-spacing: 0.04em; text-transform: lowercase;
  border-top: 1px solid rgba(0,0,0,.18);
}
.gw-strata span:nth-child(1) { background: #3E2A1D; color: #E3CC98; border-top: 8px solid #5F5D58; }
.gw-strata span:nth-child(2) { background: #B8925E; color: #2A1E15; }
.gw-strata span:nth-child(3) { background: #6E4C35; color: #F4ECDD; }
.gw-strata span:nth-child(4) {
  background: #E9E2D3; color: #4E3F33;
  background-image: radial-gradient(circle at 20% 60%, #d8cfbd 0 7px, transparent 8px),
                    radial-gradient(circle at 55% 40%, #d2c8b4 0 5px, transparent 6px),
                    radial-gradient(circle at 80% 70%, #dcd4c3 0 9px, transparent 10px);
}

/* Dinoglass: volcanic-lake teal, ash grey, Sinosauropteryx ginger and cream; museum-label caps */
.gw-world--dino {
  --w-paper: #F4F1E8; --w-deep: #22241F; --w-ink: #1F211C; --w-ink-2: #3A3C35; --w-ink-3: #55584F;
  --w-line: #E2DED1; --w-line-strong: #586347; --w-link: #A3401A;
}
.gw-world__name--dino {
  font-family: 'EB Garamond', Georgia, serif; font-weight: 500; font-size: 2.1rem;
  letter-spacing: 0.01em; line-height: 1; padding-bottom: 10px; border-bottom: 2px solid #D4A82A; align-self: flex-start;
}
.gw-world--dino .gw-world__status { background: #E3EAE1; }
.gw-lake {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px;
  padding: 20px 20px 44px;
  background:
    linear-gradient(180deg, #8F918A 0%, #C9C6BC 36%, #586347 36.5%, #22241F 100%);
}
.gw-lake::before { /* distant tree line on the far shore */
  content: ""; position: absolute; left: 0; right: 0; top: 30%; height: 9%;
  background: #2E4A36; clip-path: polygon(0 100%, 0 55%, 6% 30%, 11% 60%, 18% 20%, 24% 55%, 31% 35%, 38% 70%, 46% 25%, 53% 60%, 61% 40%, 68% 65%, 76% 30%, 83% 58%, 90% 38%, 100% 62%, 100% 100%);
}
.gw-lake__era, .gw-lake__age { position: relative; color: #F4F1E8; }
.gw-lake__era { font-family: 'EB Garamond', Georgia, serif; font-size: 1.5rem; font-weight: 500; letter-spacing: 0.01em; }
.gw-lake__age { font-family: var(--gw-mono); font-size: 0.75rem; color: #D4A82A; }

/* ── Where it runs ─────────────────────────────────────────────────── */
.gw-runs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--gw-line); }
@media (min-width: 720px) { .gw-runs { grid-template-columns: repeat(2, 1fr); column-gap: 48px; } }
.gw-run { position: relative; padding: 28px 0 28px 56px; border-bottom: 1px solid var(--gw-line); }
.gw-run__n { position: absolute; left: 0; top: 30px; font-family: var(--gw-mono); font-size: 0.8125rem; color: var(--gw-ink-3); }
.gw-run h3 { font-size: 1.125rem; font-weight: 700; margin: 0 0 8px; color: var(--gw-ink); letter-spacing: -0.01em; }
.gw-run p { font-size: 0.9375rem; line-height: 1.6; color: var(--gw-ink-2); margin: 0 0 10px; }

/* ── Pricing ───────────────────────────────────────────────────────── */
.gw-pricenote {
  font-size: 0.9375rem; line-height: 1.6; color: var(--gw-ink-2);
  padding: 14px 18px; border-left: 3px solid #E8B04B; background: #FFF9EC; border-radius: 0 8px 8px 0;
  margin-bottom: 24px; max-width: 52rem;
}
.gw-pricenote strong { color: var(--gw-ink); }

.gw-prices { background: #fff; border: 1px solid var(--gw-line); border-radius: var(--gw-radius); overflow: hidden; }
.gw-price {
  display: grid; gap: 14px 32px; padding: 24px;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--gw-line);
}
.gw-price:first-child { border-top: 0; }
@media (min-width: 860px) {
  .gw-price { grid-template-columns: minmax(0, 1fr) 190px 210px; align-items: start; padding: 26px 32px; }
}
.gw-price__main h3 { font-size: 1.0625rem; font-weight: 700; margin: 0 0 6px; letter-spacing: -0.01em; color: var(--gw-ink); }
.gw-price__main p { font-size: 0.9375rem; line-height: 1.55; color: var(--gw-ink-2); margin: 0; max-width: 40rem; }
.gw-price__main .gw-price__when { margin-top: 8px; font-family: var(--gw-mono); font-size: 0.75rem; color: var(--gw-ink-3); }
.gw-or { font-weight: 400; color: var(--gw-ink-3); }
.gw-price__cost { display: flex; flex-direction: column; gap: 2px; }
.gw-price__gbp { font-size: 1.625rem; font-weight: 700; letter-spacing: -0.02em; color: var(--gw-ink); line-height: 1.15; }
.gw-price__gbp small { font-size: 0.875rem; font-weight: 500; color: var(--gw-ink-3); letter-spacing: 0; }
.gw-price__usd { font-size: 0.875rem; color: var(--gw-ink-3); }
.gw-price__status {
  margin-top: 6px; align-self: flex-start;
  font-size: 0.75rem; font-weight: 600; color: #8A5A00; background: #FFF4DB; border-radius: 4px; padding: 2px 7px;
}
.gw-price__act { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.gw-price--lead { background: linear-gradient(90deg, #F2F7FD 0, #fff 60%); }
.gw-price--lead .gw-price__main h3 { font-size: 1.25rem; }
.gw-price--muted .gw-price__gbp, .gw-price--muted h3 { color: var(--gw-ink-3); }

/* Buy buttons stay hidden until a SKU is flipped on sale (data-on-sale="true") — works without JS */
.gw-buy[data-on-sale="false"] { display: none !important; }
.gw-buy[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.gw-price:has(.gw-buy[data-on-sale="true"]) .gw-notify { display: none; }

/* ── v2 catalogue pricing (Alex, 12 Oct 2026): All Worlds hero, tiles, small print ── */
.gw-aw {
  display: grid; gap: 24px; padding: 28px 24px; margin-bottom: 20px;
  background: linear-gradient(135deg, #EEF5FD 0, #FFFFFF 70%);
  border: 1px solid #BFD6F1; border-radius: var(--gw-radius);
  box-shadow: 0 0 0 1px rgba(44, 114, 194, 0.18), 0 10px 30px -18px rgba(13, 17, 35, 0.25);
}
@media (min-width: 860px) { .gw-aw { grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; padding: 40px 44px; align-items: center; } }
.gw-aw__kicker { margin: 0 0 8px; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gw-accent); }
.gw-aw h3 { font-family: var(--gw-serif); font-weight: 400; font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.05; margin: 0 0 12px; color: var(--gw-ink); letter-spacing: -0.01em; }
.gw-aw__main > p { font-size: 1.0625rem; line-height: 1.6; color: var(--gw-ink-2); margin: 0 0 16px; max-width: 36rem; }
.gw-aw__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gw-aw__list li { position: relative; padding-left: 24px; font-size: 0.9375rem; line-height: 1.5; color: var(--gw-ink); }
.gw-aw__list li::before { content: ""; position: absolute; left: 2px; top: 0.45em; width: 10px; height: 6px; border-left: 2px solid var(--gw-accent); border-bottom: 2px solid var(--gw-accent); transform: rotate(-45deg); }
.gw-aw__cost { display: flex; flex-direction: column; gap: 4px; padding-top: 20px; border-top: 1px solid var(--gw-line); }
@media (min-width: 860px) { .gw-aw__cost { padding: 0 0 0 36px; border-top: 0; border-left: 1px solid var(--gw-line); } }
.gw-aw__gbp { font-size: 3rem; font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: var(--gw-ink); }
.gw-aw__gbp small { font-size: 0.9375rem; font-weight: 500; letter-spacing: 0; color: var(--gw-ink-3); }
.gw-aw__launch { margin: 10px 0 4px; font-size: 0.9375rem; font-weight: 600; line-height: 1.45; color: var(--gw-ink); }
.gw-aw .gw-price__status { margin-top: 2px; align-self: flex-start; }
.gw-aw__act { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 14px; }
.gw-aw:has(.gw-buy[data-on-sale="true"]) .gw-notify { display: none; }

.gw-tiles { display: grid; gap: 20px; margin-bottom: 20px; }
@media (min-width: 760px) { .gw-tiles { grid-template-columns: 1fr 1fr; } }
.gw-tile { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: #fff; border: 1px solid var(--gw-line); border-radius: var(--gw-radius); min-width: 0; }
.gw-tile h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 1.125rem; font-weight: 700; margin: 0; letter-spacing: -0.01em; color: var(--gw-ink); }
.gw-tile__tag { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gw-ink-3); border: 1px solid var(--gw-line-strong); border-radius: 999px; padding: 2px 8px; }
.gw-tile__price { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.gw-tile > p { font-size: 0.9375rem; line-height: 1.55; color: var(--gw-ink-2); margin: 0; }
.gw-tile__list { list-style: none; margin: 4px 0 0; padding: 0; border-top: 1px solid var(--gw-line); }
.gw-tile__list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; padding: 9px 0; border-bottom: 1px solid var(--gw-line); font-size: 0.9375rem; color: var(--gw-ink); }
.gw-tile__list li span { color: var(--gw-ink-3); font-size: 0.875rem; }
.gw-tile__list--coll li { display: block; }
.gw-tile__list--coll li strong { display: block; }
.gw-tile .gw-price__status { align-self: flex-start; margin-top: 4px; }
.gw-tile__act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: auto; padding-top: 6px; }
.gw-tile:has(.gw-buy[data-on-sale="true"]) .gw-notify { display: none; }
.gw-prices--small .gw-price { padding-top: 20px; padding-bottom: 20px; }
@media (max-width: 480px) { .gw-aw { padding: 24px 18px; } .gw-tile { padding: 22px 18px; } .gw-aw__gbp { font-size: 2.5rem; } }

.gw-consent { margin: 0 0 20px; padding: 16px 18px; border: 1px solid var(--gw-line-strong); border-radius: 10px; background: #fff; max-width: 52rem; }

.gw-b2b {
  display: grid; gap: 24px; margin-top: 32px; padding: 28px;
  border-radius: var(--gw-radius); background: #fff; border: 1px solid var(--gw-line);
}
@media (min-width: 860px) { .gw-b2b { grid-template-columns: 1fr auto; align-items: center; padding: 32px; } }
.gw-b2b h3 { font-family: var(--gw-serif); font-weight: 400; font-size: 1.75rem; margin: 0 0 10px; color: var(--gw-ink); }
.gw-b2b p { font-size: 0.9375rem; line-height: 1.6; color: var(--gw-ink-2); margin: 0 0 14px; max-width: 42rem; }
.gw-b2b__list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; font-size: 0.9375rem; color: var(--gw-ink-2); }
.gw-b2b__list strong { color: var(--gw-ink); font-weight: 600; }
.gw-b2b__small { font-size: 0.8125rem !important; color: var(--gw-ink-3) !important; margin: 0 !important; }
.gw-b2b__act { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }

.gw-fineprint { margin: 20px 0 0; font-size: 0.8125rem; line-height: 1.6; color: var(--gw-ink-3); max-width: 52rem; }

/* ── Try your tank (Reefglass family, plainer) ─────────────────────── */
.gw-tyt { background: #F2F8F9; border-bottom: 1px solid #DCE7EA; }
.gw-tyt__grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .gw-tyt__grid { grid-template-columns: 1.2fr 1fr; gap: 72px; } }
.gw-tyt .gw-overline--light { color: #0B6A85 !important; }
.gw-tyt .gw-section__lead { margin-bottom: 18px; }
.gw-tyt__disclaimer {
  font-size: 0.875rem; line-height: 1.6; color: #2F4D57; margin: 0 0 22px; padding-left: 14px;
  border-left: 2px solid #7FB3C2; max-width: 36rem;
}
.gw-tyt .gw-textlink { color: #0B6A85; }
.gw-tyt__facts { margin: 0; display: grid; gap: 0; border-top: 1px solid #C9DDE2; }
.gw-tyt__facts > div { display: grid; grid-template-columns: 88px 1fr; gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid #C9DDE2; }
.gw-tyt__facts dt { font-family: var(--gw-serif); font-size: 2.5rem; line-height: 1; color: #0B2E3A; }
.gw-tyt__facts dd { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: #2F4D57; }

/* ── FAQ ───────────────────────────────────────────────────────────── */
.gw-faq__wrap { display: grid; gap: 8px; }
@media (min-width: 960px) { .gw-faq__wrap { grid-template-columns: 0.8fr 1.6fr; gap: 64px; align-items: start; } }
.gw-faq { border-top: 1px solid var(--gw-line); }
.gw-faq details { border-bottom: 1px solid var(--gw-line); }
.gw-faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 20px 44px 20px 0; font-size: 1.0625rem; font-weight: 600; color: var(--gw-ink); line-height: 1.4;
}
.gw-faq summary::-webkit-details-marker { display: none; }
.gw-faq summary::after {
  content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; margin-top: -8px;
  border-right: 1.5px solid var(--gw-ink-2); border-bottom: 1.5px solid var(--gw-ink-2);
  transform: rotate(45deg); transition: transform .2s ease;
}
.gw-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.gw-faq__a { padding: 0 0 22px; }
.gw-faq__a p { font-size: 0.9875rem; line-height: 1.7; color: var(--gw-ink-2); margin: 0; max-width: 44rem; }
.gw-faq__a a, .gw-consent a, .gw-check a { color: var(--gw-accent); }

/* ── Waitlist ──────────────────────────────────────────────────────── */
.gw-waitlist { background: var(--gw-tint); border-top: 1px solid var(--gw-line); }
.gw-waitlist__grid { display: grid; gap: 32px; }
@media (min-width: 960px) { .gw-waitlist__grid { grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: start; } }
.gw-form {
  background: #fff; border: 1px solid var(--gw-line); border-radius: var(--gw-radius);
  padding: 24px; display: grid; gap: 20px; box-shadow: 0 20px 50px -30px rgba(13,17,35,.3);
}
@media (min-width: 600px) { .gw-form { padding: 32px; } }
.gw-form__worlds { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gw-form__worlds legend { font-size: 0.875rem; font-weight: 600; color: var(--gw-ink); margin-bottom: 10px; padding: 0; }
.gw-chip { position: relative; display: inline-flex; cursor: pointer; }
.gw-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.gw-chip span {
  display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border-radius: 999px;
  border: 1px solid var(--gw-line-strong); font-size: 0.875rem; font-weight: 500; color: var(--gw-ink-2); background: #fff;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.gw-chip input:checked + span { background: var(--gw-ink); border-color: var(--gw-ink); color: #fff; }
.gw-chip input:checked + span::before { content: "✓"; margin-right: 6px; font-size: 0.8em; }
.gw-chip input:focus-visible + span { outline: 3px solid var(--lp-brand-blue, #4490E2); outline-offset: 2px; }
.gw-form__label { display: block; font-size: 0.875rem; font-weight: 600; color: var(--gw-ink); margin-bottom: 8px; }
.gw-input {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 8px; font-size: 1rem;
  border: 1px solid #94A3B8; color: var(--gw-ink); background: #fff;
}
.gw-input:focus-visible { outline: 3px solid var(--lp-brand-blue, #4490E2); outline-offset: 1px; border-color: var(--gw-ink); }
.gw-input[aria-invalid="true"] { border-color: #B42318; }
.gw-check { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 0.875rem; line-height: 1.55; color: var(--gw-ink-2); cursor: pointer; }
.gw-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--lp-brand-navy, #0D1123); }
.gw-form .btn-primary { justify-self: start; }
.gw-form__msg { margin: 0; min-height: 1.5em; font-size: 0.9375rem; font-weight: 500; color: var(--gw-ink); }
.gw-form__msg[data-state="error"] { color: #B42318; }
.gw-form__msg[data-state="ok"] { color: #05603A; }
.gw-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ── Footer endorsement ────────────────────────────────────────────── */
.gw-footer-endorse {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px;
  padding: 0 0 28px; margin-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,.1);
}
.gw-footer-endorse__line { font-size: 0.875rem; color: rgba(255,255,255,.75); }
.gw-footer-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-left: auto; }
.gw-footer-legal a, .gw-cookie-btn {
  font-size: 0.875rem; color: rgba(255,255,255,.8); text-decoration: none; background: none; border: 0; padding: 4px 0; cursor: pointer;
  font-family: inherit;
}
.gw-footer-legal a:hover, .gw-cookie-btn:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 720px) { .gw-footer-legal { margin-left: 0; width: 100%; } }

/* ── Small screens ─────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .gw-hero { padding-top: 84px; padding-bottom: 56px; }
  .gw-productbar { margin-bottom: 28px; }
  .gw-mark__word { font-size: 1.4rem; }
  .gw-hero__actions { gap: 18px; }
  .gw-price { padding: 22px 18px; }
  .gw-run { padding-left: 44px; }
  .gw-b2b { padding: 22px 18px; }
}

/* ── Reduced motion ────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .gw-hub *, .gw-hub *::before, .gw-hub *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .gw-world:hover { transform: none; }
}

/* ── AA contrast for primary CTAs on light sections (white on #4490E2 is 3.3:1; #2C72C2 is 4.8:1) ── */
.gw-hub main .gw-section .btn-primary { background: #2C72C2; color: #FFFFFF; }
.gw-hub main .gw-section .btn-primary:hover { background: #245FA3; color: #FFFFFF; }

/* ── Compact price rows on narrow screens ── */
@media (max-width: 859px) {
  .gw-price__cost { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
  .gw-price__status { margin-top: 0; align-self: center; }
}

/* Verifier fix 12 Oct 2026: the hub does not load motion.css, which is where the live site
   sizes the Launchpad logo (nav 60/68px, footer 96px). Without these rules the hub's logo
   rendered at 36px tall, half the size used on every other Launchpad page. Rules copied from
   _preview-shared/css/motion.css so the lockup matches the live chrome exactly. */
.site-logo img, header .site-logo img { height: 60px !important; max-height: 60px; width: auto !important; }
@media (min-width: 768px) { .site-logo img, header .site-logo img { height: 68px !important; max-height: 68px; } }
.site-header { padding-block: var(--space-3); }
@media (min-width: 768px) { .site-header { padding-block: var(--space-4); } }
.site-header.scrolled { padding-block: var(--space-2); }
.footer-logo { height: 96px !important; max-height: 96px; width: auto !important; }
.mobile-menu .site-logo img { height: 56px !important; max-height: 56px; }

/* Verifier fix 12 Oct 2026: one primary CTA per viewport. The live nav's "Get in Touch" is a
   filled primary button; on Glass Worlds pages it competed with the hero's waitlist/offer button.
   Demoted to an outline button here only (the live site is unchanged). */
.site-header .site-nav .btn-primary {
  background: transparent !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  box-shadow: none !important;
}
.site-header .site-nav .btn-primary:hover,
.site-header .site-nav .btn-primary:focus-visible {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: #FFFFFF !important;
}

/* half-price launch line (Alex, 12 Oct 2026) */
.gw-launch { display: block; margin-top: 4px; font-size: 0.875rem; font-weight: 600; color: inherit; opacity: 0.85; }
