/* =====================================================================
   GleamShield — "Zenithia" cinematic layer (2026)
   Loaded after css/gleamshield.css on every /gleamshield/ page.
   Dusk, gold and ember from the Zenithia skyline; Abimifoluwa's teal
   as the one cool accent. Cinzel for title cards, Cormorant for voice.
   ===================================================================== */
body.gs-page {
  --gx-night: #07070b;
  --gx-dusk: #100f18;
  --gx-dusk-2: #181624;
  --gx-violet: #2a2140;
  --gx-gold: #d8b26a;
  --gx-gold-hi: #f0d79c;
  --gx-gold-lo: #a9843f;
  --gx-ember: #e2763a;
  --gx-teal: #3fb4b0;
  --gx-text: #ede8f2;
  --gx-dim: #bdb7cc;
  --gx-mute: #8f89a1;
  --gx-line: rgba(237, 232, 242, .12);
  --gx-line-2: rgba(237, 232, 242, .26);
  --gx-cinzel: 'Cinzel', 'Trajan Pro', Georgia, serif;
  --gx-ease: cubic-bezier(.16, 1, .3, 1);
  --gx-ease-io: cubic-bezier(.65, 0, .35, 1);
  --gx-gutter: clamp(20px, 4.6vw, 72px);
  --gx-max: 1400px;
  /* Feed the base sheet. */
  --gs-bg: var(--gx-night);
  --gs-bg-soft: var(--gx-dusk);
  --gs-surface: var(--gx-dusk);
  --gs-surface-alt: var(--gx-dusk-2);
  --gs-text: var(--gx-text);
  --gs-text-dim: var(--gx-dim);
  --gs-text-muted: var(--gx-mute);
  --gs-accent: var(--gx-gold);
  --gs-accent-dim: var(--gx-gold-lo);
  --gs-gleam: var(--gx-gold-hi);
  --gs-border: var(--gx-line);
  --gs-rule: var(--gx-line);
  --gs-border-acc: rgba(216, 178, 106, .32);
  --gs-gutter: var(--gx-gutter);
  --gs-max-width: var(--gx-max);
  background: var(--gx-night);
  color: var(--gx-text);
}
/* overflow-x: hidden on html/body silently breaks position: sticky; clip doesn't. */
html { overflow-x: hidden; overflow-x: clip; }
body.gs-page { overflow-x: hidden; overflow-x: clip; }
body.gs-page ::selection { background: var(--gx-gold); color: var(--gx-night); }
body.gs-page :focus-visible { outline: 2px solid var(--gx-gold); outline-offset: 4px; }
body.gs-page::after {
  /* Normal blending: an "overlay" blend on a full-screen fixed layer costs the GPU a pass every frame. */
  content: ''; position: fixed; inset: 0; z-index: 3; pointer-events: none; opacity: .28;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: gx-vt-out .5s var(--gx-ease-io) both; }
::view-transition-new(root) { animation: gx-vt-in .8s var(--gx-ease) both; }
@keyframes gx-vt-out { to { opacity: 0; transform: scale(.985); } }
@keyframes gx-vt-in { from { opacity: 0; transform: scale(1.015); } }

/* ---------- Atoms ---------- */
.gx-wrap { width: 100%; max-width: var(--gx-max); margin: 0 auto; padding: 0 var(--gx-gutter); }
.gx-kicker { display: inline-flex; align-items: center; gap: 14px; margin: 0; font: 500 11px/1.4 var(--gx-cinzel); letter-spacing: .32em; text-transform: uppercase; color: var(--gx-gold); }
.gx-kicker::before { content: ''; width: 34px; height: 1px; background: linear-gradient(90deg, transparent, var(--gx-gold)); }
.gx-kicker--plain::before { display: none; }
.gx-title { margin: 0; font: 400 clamp(46px, 7vw, 112px)/.94 var(--gs-font-display); letter-spacing: -.035em; color: var(--gx-text); }
.gx-title em { font-style: italic; color: var(--gx-gold-hi); }
.gx-shine {
  font-style: italic;
  background: linear-gradient(100deg, #a9843f 0%, #f0d79c 24%, #d8b26a 42%, #fff6dc 50%, #d8b26a 58%, #f0d79c 76%, #a9843f 100%);
  background-size: 260% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  animation: gx-shine 7s var(--gx-ease-io) infinite; padding-right: .08em;
}
@keyframes gx-shine { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0 0; } }
.gx-lede { margin: 0; font: italic 400 clamp(21px, 2vw, 28px)/1.4 var(--gs-font-display); color: var(--gx-dim); }
.gx-body { margin: 0; font-size: 16px; line-height: 1.85; color: var(--gx-dim); max-width: 50ch; }

.gx-btn {
  --b-bg: var(--gx-gold); --b-fg: var(--gx-night); --b-ring: transparent; --b-hover: var(--gx-text);
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; gap: 16px; min-height: 54px; padding: 0 12px 0 26px;
  border: 1px solid var(--b-ring); border-radius: 999px; background: var(--b-bg); color: var(--b-fg) !important;
  font: 600 12px/1 var(--gs-font-body); letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  transition: color .4s var(--gx-ease), border-color .4s, transform .5s var(--gx-ease); white-space: nowrap;
}
.gx-btn::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--b-hover); transform: translateY(101%); transition: transform .55s var(--gx-ease); }
.gx-btn:hover::before, .gx-btn:focus-visible::before { transform: none; }
.gx-btn__icon { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(7,7,11,.12); transition: transform .55s var(--gx-ease); }
.gx-btn__icon svg { width: 14px; height: 14px; }
.gx-btn:hover .gx-btn__icon { transform: rotate(-45deg); }
.gx-btn--ghost { --b-bg: transparent; --b-fg: var(--gx-text); --b-ring: var(--gx-line-2); --b-hover: var(--gx-gold); }
.gx-btn--ghost:hover { color: var(--gx-night) !important; border-color: var(--gx-gold); }
.gx-btn--ghost .gx-btn__icon { background: rgba(237,232,242,.08); }

/* ---------- Navigation ---------- */
body.gs-page .gs-nav {
  height: 84px; background: transparent; border-bottom: 1px solid transparent;
  transition: transform .7s var(--gx-ease), background .45s, border-color .45s;
}
body.gs-page .gs-nav.scrolled, body.gs-page:not(.gs-home) .gs-nav { background: rgba(7, 7, 11, .72); -webkit-backdrop-filter: blur(18px) saturate(1.3); backdrop-filter: blur(18px) saturate(1.3); border-bottom-color: var(--gx-line); }
body.gs-page.gs-home .gs-nav:not(.scrolled) { background: linear-gradient(180deg, rgba(7,7,11,.55), transparent); }
body.gs-page .gs-nav.is-hidden { transform: translateY(-105%); }
body.gs-page .gs-nav__inner { max-width: var(--gx-max); padding-inline: var(--gx-gutter); }
body.gs-page .gs-nav__logo { width: 34px; height: 34px; object-fit: contain; filter: drop-shadow(0 0 10px rgba(216,178,106,.35)); }
body.gs-page .gs-nav__name { font: 500 15px/1 var(--gx-cinzel); letter-spacing: .32em; color: var(--gx-text); }
body.gs-page .gs-nav__link { font: 500 11px/1 var(--gs-font-body); letter-spacing: .18em; color: var(--gx-dim); background: none !important; position: relative; padding-inline: 14px; }
body.gs-page .gs-nav__link::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 10px; height: 1px; background: var(--gx-gold); transform: scaleX(0); transform-origin: right; transition: transform .55s var(--gx-ease); }
body.gs-page .gs-nav__link:hover, body.gs-page .gs-nav__link.active { color: var(--gx-text); }
body.gs-page .gs-nav__link:hover::after, body.gs-page .gs-nav__link.active::after { transform: scaleX(1); transform-origin: left; }
body.gs-page .gs-nav__back { font: 500 12px/1 var(--gs-font-body); color: var(--gx-dim); }
body.gs-page .gs-nav__back:hover { color: var(--gx-gold); }
body.gs-page .gs-nav__mobile {
  inset: 0; display: flex; visibility: hidden; opacity: 1; pointer-events: none;
  background: radial-gradient(70% 50% at 80% 0%, rgba(216,178,106,.16), transparent 70%), var(--gx-night);
  clip-path: inset(0 0 100% 0); transition: clip-path .8s var(--gx-ease-io), visibility 0s .8s;
  justify-content: center; align-items: flex-start; padding: 110px var(--gx-gutter) 40px; gap: 4px;
}
body.gs-page .gs-nav__mobile.open { visibility: visible; pointer-events: auto; clip-path: inset(0 0 0 0); transition: clip-path .9s var(--gx-ease-io), visibility 0s; }
body.gs-page .gs-nav__mobile .gs-nav__link { font: 400 clamp(38px, 10vw, 64px)/1.1 var(--gs-font-display); letter-spacing: -.02em; text-transform: none; color: var(--gx-text); padding: 6px 0; opacity: 0; transform: translateY(30px); transition: opacity .7s var(--gx-ease), transform .9s var(--gx-ease), color .3s; }
body.gs-page .gs-nav__mobile .gs-nav__link::after { display: none; }
body.gs-page .gs-nav__mobile.open .gs-nav__link { opacity: 1; transform: none; }
body.gs-page .gs-nav__mobile.open .gs-nav__link:nth-child(2) { transition-delay: .06s; }
body.gs-page .gs-nav__mobile.open .gs-nav__link:nth-child(3) { transition-delay: .12s; }
body.gs-page .gs-nav__mobile.open .gs-nav__link:nth-child(4) { transition-delay: .18s; }
body.gs-page .gs-nav__mobile.open .gs-nav__link:nth-child(5) { transition-delay: .24s; }
body.gs-page .gs-nav__mobile .gs-nav__link:hover { color: var(--gx-gold); }
body.gs-page .gs-nav__mobile .gs-nav__back { margin-top: 28px; font-size: 14px; padding-left: 0; border: 0; }
body.gs-page .gs-nav__hamburger { z-index: 1001; }
body.gs-page .gs-nav__hamburger span { background: var(--gx-text); }

/* ---------- Motion primitives (shared with js/motion.js) ---------- */
.js body.gs-page [data-reveal] { opacity: 0; transform: translate3d(0, 34px, 0); transition: opacity 1s var(--gx-ease), transform 1.2s var(--gx-ease); transition-delay: var(--d, 0s); }
.js body.gs-page [data-reveal="fade"] { transform: none; }
.js body.gs-page [data-reveal="scale"] { transform: scale(.94); }
.js body.gs-page [data-reveal].is-in { opacity: 1; transform: none; }
body.gs-page .line { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
body.gs-page .line > span { display: inline-block; }
.js body.gs-page [data-lines] .line > span { transform: translate3d(0, 112%, 0) rotate(2deg); transition: transform 1.3s var(--gx-ease); transition-delay: calc(var(--i, 0) * .1s + var(--d, 0s)); }
.js body.gs-page [data-lines].is-in .line > span { transform: none; }
.js body.gs-page [data-split] .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.js body.gs-page [data-split] .w > span { display: inline-block; transform: translate3d(0, 105%, 0); transition: transform 1.1s var(--gx-ease); transition-delay: calc(var(--i, 0) * .04s + var(--d, 0s)); }
.js body.gs-page [data-split].is-in .w > span { transform: none; }
body.gs-page [data-scrub] .sw { color: color-mix(in srgb, currentColor 16%, transparent); transition: color .35s linear; }
body.gs-page [data-scrub] .sw.on { color: inherit; }

/* Parallax: compositor-driven where scroll-driven animations exist (html.sda, see motion.js). */
@keyframes da-parallax {
  from { translate: 0 calc(var(--px, .1) * (100vh + 100%) * -.5); }
  to { translate: 0 calc(var(--px, .1) * (100vh + 100%) * .5); }
}
@media (prefers-reduced-motion: no-preference) {
  .sda body.gs-page :has(> [data-parallax]) { view-timeline: --px block; }
  .sda body.gs-page [data-parallax] { animation: da-parallax linear both; animation-timeline: --px; animation-range: cover; }
  .sda body.gs-page .gx-chron-hero > img[data-parallax] { animation: gx-push 40s linear infinite alternate, da-parallax linear both; animation-timeline: auto, --px; animation-range: normal, cover; }
}
body.gs-page .atmo-canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; display: block; }
.gs-marquee { overflow: hidden; white-space: nowrap; user-select: none; border-block: 1px solid var(--gx-line); background: var(--gx-dusk); padding: 22px 0; }
.gs-marquee__track { display: inline-flex; animation: gx-marquee 44s linear infinite; }
.gs-marquee__track > span { display: inline-flex; align-items: center; gap: 44px; padding-right: 44px; font: 400 clamp(22px, 2.6vw, 38px)/1 var(--gx-cinzel); letter-spacing: .16em; text-transform: uppercase; color: var(--gx-text); }
.gs-marquee__track i { font-style: normal; color: var(--gx-gold); font-size: .6em; }
.gs-marquee__track em { font: italic 400 1.15em/1 var(--gs-font-display); letter-spacing: 0; text-transform: none; color: var(--gx-gold-hi); }
@keyframes gx-marquee { to { transform: translate3d(-50%, 0, 0); } }

/* ---------- Cinematic hero (GleamShield home) ---------- */
.gx-hero { position: relative; isolation: isolate; overflow: hidden; height: 100svh; min-height: 720px; max-height: 1200px; background: #000; color: var(--gx-text); }
.gx-hero__plate { position: absolute; inset: -3%; z-index: -3; }
.gx-hero__plate img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 46%; animation: gx-push 32s linear infinite alternate, gx-develop 3.2s var(--gx-ease) both; transform-origin: 72% 40%; }
@keyframes gx-push { from { transform: scale(1.04); } to { transform: scale(1.16) translate(-1.5%, .5%); } }
@keyframes gx-develop { from { filter: brightness(.15) saturate(.2); } to { filter: none; } }
.gx-hero__rays { position: absolute; z-index: -2; right: -10%; top: -20%; width: 80%; aspect-ratio: 1; pointer-events: none; mix-blend-mode: screen; opacity: .55;
  -webkit-mask-image: radial-gradient(closest-side at 70% 42%, #000, transparent); mask-image: radial-gradient(closest-side at 70% 42%, #000, transparent);
  animation: gx-rays 18s var(--gx-ease-io) infinite alternate; }
/* The blur lives on a still child, so it's rendered once and the GPU only rotates the result. */
.gx-hero__rays::before { content: ''; position: absolute; inset: 0; filter: blur(8px);
  background: conic-gradient(from 200deg at 70% 42%, transparent 0deg, rgba(255,210,150,.0) 10deg, rgba(255,210,150,.22) 14deg, transparent 20deg, transparent 32deg, rgba(255,200,140,.16) 36deg, transparent 44deg, transparent 60deg, rgba(255,214,160,.2) 64deg, transparent 72deg); }
@keyframes gx-rays { from { transform: rotate(-4deg); opacity: .35; } to { transform: rotate(5deg); opacity: .6; } }
.gx-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,7,11,.88) 0%, rgba(7,7,11,.45) 42%, rgba(7,7,11,0) 70%), linear-gradient(0deg, rgba(7,7,11,1) 0%, rgba(7,7,11,.4) 30%, transparent 55%), linear-gradient(180deg, rgba(7,7,11,.6), transparent 25%); }
.gx-hero .atmo-canvas { z-index: 0; }
.gx-letterbox::before, .gx-letterbox::after { content: ''; position: absolute; left: 0; right: 0; z-index: 9; height: 50%; background: #000; animation: gx-open 2.1s .15s var(--gx-ease-io) forwards; pointer-events: none; }
.gx-letterbox::before { top: 0; transform-origin: top; }
.gx-letterbox::after { bottom: 0; transform-origin: bottom; }
@keyframes gx-open { to { transform: scaleY(0); } }
.gx-viewfinder { position: absolute; z-index: 2; inset: 108px var(--gx-gutter) 96px; pointer-events: none; opacity: 0; animation: gx-fade 1.2s 1.6s forwards; }
.gx-viewfinder i { position: absolute; width: 26px; height: 26px; border-color: rgba(237,232,242,.55); border-style: solid; border-width: 0; }
.gx-viewfinder i:nth-child(1) { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }
.gx-viewfinder i:nth-child(2) { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }
.gx-viewfinder i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }
.gx-viewfinder i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }
.gx-slate { position: absolute; z-index: 4; top: 108px; left: calc(var(--gx-gutter) + 40px); right: calc(var(--gx-gutter) + 40px); display: flex; justify-content: space-between; align-items: center; gap: 16px; font: 500 10.5px/1 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-dim); opacity: 0; animation: gx-fade 1.2s 1.8s forwards; padding-top: 14px; }
.gx-slate__rec { display: inline-flex; align-items: center; gap: 10px; color: var(--gx-text); }
.gx-slate__rec::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #e2493a; box-shadow: 0 0 12px #e2493a; animation: gx-blink 1.4s steps(2) infinite; }
@keyframes gx-blink { 50% { opacity: .2; } }
.gx-slate [data-timecode] { font-variant-numeric: tabular-nums; color: var(--gx-text); }
.gx-slate span:nth-child(2) { display: none; }
@keyframes gx-fade { to { opacity: 1; } }
.gx-hero__copy { position: absolute; z-index: 4; left: calc(var(--gx-gutter) + 40px); right: var(--gx-gutter); bottom: clamp(140px, 19vh, 220px); max-width: 980px; }
.gx-presents { margin: 0 0 22px; font: 500 12px/1.4 var(--gx-cinzel); letter-spacing: .42em; text-transform: uppercase; color: var(--gx-gold); opacity: 0; animation: gx-rise 1.6s 1.1s var(--gx-ease) forwards; }
.gx-hero__title { margin: 0; font: 400 clamp(64px, 10.5vw, 176px)/.86 var(--gs-font-display); letter-spacing: -.045em; color: var(--gx-text); text-shadow: 0 10px 60px rgba(0,0,0,.5); }
.gx-hero__title .line > span { padding-right: .06em; }
.gx-hero__sub { margin: 26px 0 0; max-width: 46ch; font-size: 15.5px; line-height: 1.8; color: var(--gx-dim); opacity: 0; animation: gx-rise 1.6s 1.7s var(--gx-ease) forwards; }
.gx-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; opacity: 0; animation: gx-rise 1.6s 1.9s var(--gx-ease) forwards; }
@keyframes gx-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.gx-hero__foot { position: absolute; z-index: 4; left: var(--gx-gutter); right: var(--gx-gutter); bottom: 26px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 18px; border-top: 1px solid var(--gx-line); font: 500 10.5px/1.4 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-mute); opacity: 0; animation: gx-fade 1.2s 2.1s forwards; }
.gx-hero__foot a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--gx-text); }
.gx-hero__foot a b { width: 1px; height: 30px; background: var(--gx-line-2); position: relative; overflow: hidden; }
.gx-hero__foot a b::after { content: ''; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--gx-gold); animation: gx-drop 2.2s var(--gx-ease-io) infinite; }
@keyframes gx-drop { to { transform: translateY(350%); } } /* = top:-40% → 100%, without layout */
.gx-hero__foot span:nth-child(2) { display: none; }
.gx-hero__card {
  position: absolute; z-index: 5; right: calc(var(--gx-gutter) + 40px); bottom: clamp(140px, 19vh, 220px);
  width: clamp(200px, 19vw, 280px); padding: 10px 10px 14px; border-radius: 2px;
  background: rgba(16,15,24,.6); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid var(--gx-line-2); color: var(--gx-text); text-decoration: none; display: none;
  opacity: 0; animation: gx-rise 1.6s 2.2s var(--gx-ease) forwards;
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .3s, border-color .4s;
}
.gx-hero__card:hover { border-color: var(--gx-gold); }
.gx-hero__card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 22%; border-radius: 1px; }
.gx-hero__card span { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; font: 500 10px/1.3 var(--gs-font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--gx-dim); }
.gx-hero__card strong { display: block; margin-top: 4px; font: italic 400 22px/1.1 var(--gs-font-display); color: var(--gx-text); }
@media (min-width: 760px) { .gx-slate span:nth-child(2), .gx-hero__foot span:nth-child(2) { display: inline; } }
@media (min-width: 1100px) { .gx-hero__card { display: block; } }
@media (max-width: 759px) {
  .gx-hero { min-height: 680px; }
  .gx-hero__plate img { object-position: 74% 50%; }
  .gx-viewfinder { inset: 96px 14px 88px; }
  .gx-slate { left: 30px; right: 30px; top: 96px; }
  .gx-hero__copy { left: var(--gx-gutter); bottom: 112px; }
  .gx-hero__title { font-size: clamp(56px, 16vw, 88px); }
}

/* ---------- Sections (home) ---------- */
.gx-section { position: relative; padding: clamp(96px, 12vw, 180px) 0; }
.gx-head { display: grid; gap: 28px; margin-bottom: clamp(48px, 6vw, 88px); }
@media (min-width: 960px) { .gx-head { grid-template-columns: 1.3fr 1fr; align-items: end; } }

/* The Seeker */
.gx-seeker { background: radial-gradient(60% 60% at 15% 50%, rgba(63,180,176,.10), transparent 70%), var(--gx-night); overflow: hidden; }
.gx-seeker__grid { display: grid; gap: clamp(40px, 6vw, 96px); align-items: center; }
.gx-seeker__frame { position: relative; margin: 0; }
.gx-seeker__frame::before { content: ''; position: absolute; inset: -18px 18px 18px -18px; border: 1px solid rgba(63,180,176,.45); z-index: -1; }
.gx-seeker__frame img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%; border-radius: 2px; box-shadow: 0 60px 120px -50px rgba(0,0,0,.9); }
.gx-seeker__frame figcaption { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 16px 18px; background: rgba(7,7,11,.55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid var(--gx-line); }
.gx-seeker__frame figcaption b { display: block; font: 500 10px/1.4 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-teal); margin-bottom: 4px; }
.gx-seeker__frame figcaption span { font: italic 400 26px/1 var(--gs-font-display); }
.gx-seeker__frame figcaption small { font: 500 10px/1.4 var(--gs-font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--gx-dim); text-align: right; }
.gx-seeker__copy { display: grid; gap: 26px; align-content: start; }
.gx-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--gx-line); }
.gx-facts div { padding: 18px 12px 0 0; }
.gx-facts div + div { border-left: 1px solid var(--gx-line); padding-left: 16px; }
.gx-facts dt { font: 500 10px/1.4 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-mute); margin-bottom: 8px; }
.gx-facts dd { margin: 0; font: 400 21px/1.2 var(--gs-font-display); color: var(--gx-text); }
.gx-status { display: inline-flex; align-items: center; gap: 10px; width: fit-content; padding: 10px 16px; border: 1px solid rgba(63,180,176,.5); border-radius: 999px; font: 600 10.5px/1 var(--gs-font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--gx-teal); }
.gx-status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--gx-teal); box-shadow: 0 0 10px var(--gx-teal); animation: gx-blink 1.8s steps(2) infinite; }
.gx-actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 960px) { .gx-seeker__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }

/* Studio doors: expanding panels */
.gx-doors { display: grid; gap: 10px; }
.gx-door { position: relative; overflow: hidden; isolation: isolate; min-height: 420px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; border-radius: 2px; color: var(--gx-text); text-decoration: none; border: 1px solid var(--gx-line); }
.gx-door img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); filter: saturate(.75) brightness(.7); transition: transform 1.6s var(--gx-ease), filter 1s; }
.gx-door::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7,7,11,.95) 0%, rgba(7,7,11,.2) 60%, rgba(7,7,11,.35) 100%); }
.gx-door__no { position: absolute; top: 24px; left: 28px; font: 500 11px/1 var(--gx-cinzel); letter-spacing: .3em; color: var(--gx-gold); }
.gx-door__go { position: absolute; top: 18px; right: 18px; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--gx-line-2); display: grid; place-items: center; transition: background .4s, color .4s, transform .6s var(--gx-ease); }
.gx-door__go svg { width: 16px; height: 16px; }
.gx-door h3 { margin: 0 0 10px; font: 400 clamp(38px, 4vw, 60px)/1 var(--gs-font-display); letter-spacing: -.02em; }
.gx-door p { margin: 0; max-width: 34ch; font-size: 14.5px; line-height: 1.7; color: var(--gx-dim); }
.gx-door:hover img { transform: scale(1); filter: saturate(1) brightness(.85); }
.gx-door:hover .gx-door__go { background: var(--gx-gold); color: var(--gx-night); transform: rotate(-45deg); border-color: var(--gx-gold); }
@media (min-width: 960px) {
  .gx-doors { display: flex; height: 600px; }
  .gx-door { flex: 1; min-height: 0; transition: flex 1.1s var(--gx-ease), border-color .5s; }
  .gx-door p { opacity: 0; transform: translateY(12px); transition: opacity .6s .1s, transform .8s var(--gx-ease); }
  .gx-doors:hover .gx-door { flex: .8; }
  .gx-doors .gx-door:hover, .gx-doors .gx-door:focus-visible { flex: 1.9; border-color: rgba(216,178,106,.5); }
  .gx-door:hover p, .gx-door:focus-visible p { opacity: 1; transform: none; }
}

/* Craft */
.gx-craft { background: var(--gx-dusk); border-block: 1px solid var(--gx-line); }
.gx-pillars { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--gx-line); counter-reset: craft; }
.gx-pillar { position: relative; padding: 32px 24px 40px 0; border-bottom: 1px solid var(--gx-line); counter-increment: craft; transition: background .5s; }
.gx-pillar::before { content: '0' counter(craft); display: block; margin-bottom: 34px; font: 400 54px/1 var(--gs-font-display); font-style: italic; color: var(--gx-gold); }
.gx-pillar svg { position: absolute; top: 36px; right: 24px; width: 28px; height: 28px; color: var(--gx-dim); }
.gx-pillar h3 { margin: 0 0 12px; font: 500 28px/1.15 var(--gs-font-display); color: var(--gx-text); }
.gx-pillar p { margin: 0; font-size: 14.5px; line-height: 1.8; color: var(--gx-dim); }
.gx-pillar:hover { background: linear-gradient(180deg, rgba(216,178,106,.06), transparent); }
@media (min-width: 760px) { .gx-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gx-pillar:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--gx-line); } }
@media (min-width: 1100px) { .gx-pillars { grid-template-columns: repeat(4, minmax(0, 1fr)); } .gx-pillar + .gx-pillar { padding-left: 24px; border-left: 1px solid var(--gx-line); } }

/* Story interlude */
.gx-interlude { position: relative; isolation: isolate; overflow: hidden; min-height: 100svh; display: flex; align-items: flex-end; padding: 0 0 clamp(64px, 9vw, 120px); color: var(--gx-text); }
.gx-interlude > img { position: absolute; inset: -6% 0; z-index: -2; width: 100%; height: 112%; object-fit: cover; object-position: 50% 20%; }
.gx-interlude::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7,7,11,1) 0%, rgba(7,7,11,.55) 40%, rgba(7,7,11,.2) 70%, rgba(7,7,11,.7) 100%); }
.gx-interlude .atmo-canvas { z-index: 0; }
.gx-interlude__copy { position: relative; z-index: 2; display: grid; gap: 22px; }
.gx-interlude__q { font: italic 400 clamp(30px, 4vw, 56px)/1.15 var(--gs-font-display); color: var(--gx-gold-hi); margin: 0; }
@media (min-width: 960px) { .gx-interlude__copy { grid-template-columns: 1.3fr 1fr; align-items: end; } }

/* Book */
.gx-book { background: radial-gradient(50% 60% at 30% 50%, rgba(216,178,106,.12), transparent 70%), var(--gx-night); overflow: hidden; }
.gx-book__grid { display: grid; gap: clamp(48px, 7vw, 120px); align-items: center; }
.gx-book__stage { perspective: 1400px; display: grid; place-items: center; padding: 20px 0; }
.gx-book__cover {
  position: relative; width: min(78vw, 380px); transform-style: preserve-3d;
  transform: rotateY(calc(-22deg + var(--ry, 0deg))) rotateX(calc(4deg + var(--rx, 0deg))); transition: transform .5s var(--gx-ease);
  animation: gx-float 7s ease-in-out infinite;
}
@keyframes gx-float { 50% { translate: 0 -14px; } }
.gx-book__cover img { display: block; width: 100%; height: auto; border-radius: 2px 6px 6px 2px; box-shadow: 40px 50px 80px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(216,178,106,.2); }
.gx-book__cover::before { content: ''; position: absolute; top: 2%; bottom: 2%; right: -16px; width: 16px; transform: rotateY(90deg); transform-origin: left; background: repeating-linear-gradient(0deg, #eae0c8 0 2px, #d6caa9 2px 3px); }
.gx-book__cover::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.22) 45%, transparent 60%); background-size: 250% 100%; background-position: var(--mx, 100%) 0; mix-blend-mode: soft-light; }
.gx-book__badge { position: absolute; top: -14px; right: -14px; z-index: 2; padding: 10px 16px; border-radius: 999px; background: var(--gx-gold); color: var(--gx-night); font: 700 10px/1 var(--gs-font-body); letter-spacing: .2em; text-transform: uppercase; transform: translateZ(40px); }
.gx-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 18px; padding: 20px 0; border-block: 1px solid var(--gx-line); }
.gx-price strong { font: 400 44px/1 var(--gs-font-display); color: var(--gx-text); }
.gx-price span { font-size: 13px; color: var(--gx-mute); }
@media (min-width: 960px) { .gx-book__grid { grid-template-columns: .9fr 1.1fr; } }

/* Latest chronicles */
.gx-latest { background: var(--gx-dusk); border-top: 1px solid var(--gx-line); }
.gx-latest #gs-latest-grid { display: grid; grid-template-columns: 1fr; gap: 40px 28px; }
@media (min-width: 760px) { .gx-latest #gs-latest-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* CTA band */
.gx-cta { position: relative; isolation: isolate; overflow: hidden; padding: clamp(120px, 16vw, 220px) 0; text-align: center; background: radial-gradient(60% 70% at 50% 100%, rgba(226,118,58,.28), transparent 70%), var(--gx-night); }
.gx-cta .atmo-canvas { z-index: -1; }
.gx-cta h2 { margin: 26px auto 26px; max-width: 16ch; font: 400 clamp(48px, 7.6vw, 128px)/.95 var(--gs-font-display); letter-spacing: -.04em; }
.gx-cta h2 em { color: var(--gx-gold-hi); }
.gx-cta p { margin: 0 auto 36px; max-width: 46ch; color: var(--gx-dim); font-size: 16px; line-height: 1.8; }
.gx-cta .gx-actions, .gx-cta .gx-kicker { justify-content: center; }

/* ---------- Cards used across GleamShield ---------- */
body.gs-page .gs-card, body.gs-page .gs-post-card { position: relative; background: transparent; border: 0; border-bottom: 0; padding: 0; }
body.gs-page .gs-card__img-wrap, body.gs-page .gs-post-card__img-wrap { position: relative; overflow: hidden; border-radius: 2px; aspect-ratio: 16 / 10; background: var(--gx-dusk-2); }
body.gs-page .gs-card__img-wrap::after, body.gs-page .gs-post-card__img-wrap::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(237,232,242,.08); background: linear-gradient(0deg, rgba(7,7,11,.45), transparent 50%); pointer-events: none; transition: opacity .6s; }
body.gs-page .gs-card__img, body.gs-page .gs-post-card__img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; filter: saturate(.8); transform: scale(1.02); transition: transform 1.4s var(--gx-ease), filter .8s; }
body.gs-page a:hover .gs-card__img, body.gs-page .gs-post-card__link:hover .gs-post-card__img { transform: scale(1.08); filter: saturate(1.05); }
body.gs-page .gs-card__body, body.gs-page .gs-post-card__body { padding: 22px 0 0; }
body.gs-page .gs-card__meta { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 0; margin: 0 0 12px; }
body.gs-page .gs-badge, body.gs-page .gs-post-card__cat { font: 600 10.5px/1.4 var(--gs-font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--gx-gold); }
body.gs-page .gs-card__time { font-size: 12px; color: var(--gx-mute); }
body.gs-page .gs-card__title, body.gs-page .gs-post-card__title { font: 500 clamp(26px, 2.3vw, 34px)/1.1 var(--gs-font-display); letter-spacing: -.015em; color: var(--gx-text); margin: 0 0 12px; transition: color .4s; }
body.gs-page a:hover .gs-card__title, body.gs-page .gs-post-card__link:hover .gs-post-card__title { color: var(--gx-gold-hi); }
body.gs-page .gs-card__excerpt, body.gs-page .gs-post-card__excerpt { font-size: 14.5px; line-height: 1.75; color: var(--gx-dim); margin: 0 0 16px; }
body.gs-page .gs-card .gs-btn--ghost { display: none; }
body.gs-page .gs-post-card__meta { font-size: 12px; color: var(--gx-mute); padding-top: 14px; border-top: 1px solid var(--gx-line); }
body.gs-page .gs-new-badge { margin-left: 10px; padding: 3px 8px; border-radius: 999px; background: var(--gx-teal); color: var(--gx-night); font-size: 9px; letter-spacing: .14em; vertical-align: 1px; }

/* ---------- Chronicles index ---------- */
.gx-chron-hero { position: relative; isolation: isolate; overflow: hidden; min-height: min(92svh, 900px); display: flex; align-items: flex-end; padding: 140px 0 72px; }
.gx-chron-hero > img { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: saturate(.7) brightness(.55); animation: gx-push 40s linear infinite alternate; }
.gx-chron-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(0deg, var(--gx-night) 0%, rgba(7,7,11,.6) 45%, rgba(7,7,11,.75) 100%), radial-gradient(50% 60% at 80% 30%, rgba(216,178,106,.2), transparent 70%); }
.gx-chron-hero .atmo-canvas { z-index: -1; }
.gx-chron-hero__grid { display: grid; gap: 28px; }
.gx-chron-hero h1 { margin: 22px 0 0; font: 400 clamp(64px, 11vw, 190px)/.86 var(--gs-font-display); letter-spacing: -.05em; }
.gx-chron-hero h1 em { font-style: italic; }
.gx-chron-hero__aside { display: grid; gap: 22px; align-content: end; }
.gx-chron-hero__aside p { margin: 0; font-size: 16px; line-height: 1.8; color: var(--gx-dim); max-width: 44ch; }
.gx-stats { display: flex; gap: 32px; padding-top: 20px; border-top: 1px solid var(--gx-line); }
.gx-stats b { display: block; font: 400 44px/1 var(--gs-font-display); color: var(--gx-text); }
.gx-stats span { font: 500 10px/1.4 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-mute); }
@media (min-width: 960px) { .gx-chron-hero__grid { grid-template-columns: 1.5fr 1fr; align-items: end; } }
body.gs-page .gs-new { padding: 72px 0 24px; }
body.gs-page .gs-new__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 28px; padding-bottom: 16px; border-bottom: 1px solid var(--gx-line); }
body.gs-page .gs-new__title { font: 500 13px/1 var(--gx-cinzel); letter-spacing: .32em; text-transform: uppercase; color: var(--gx-teal); }
body.gs-page .gs-new__note { font-size: 13px; color: var(--gx-mute); }
body.gs-page .gs-filters { position: relative; display: flex; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; gap: 8px; padding: 6px 2px; margin: 0; background: none; border: 0; }
body.gs-page .gs-filters::-webkit-scrollbar { display: none; }
body.gs-page .gs-filter-btn { flex-shrink: 0; min-height: 42px; padding: 0 20px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: transparent; color: var(--gx-dim); font: 500 11px/1 var(--gs-font-body); letter-spacing: .16em; text-transform: uppercase; transition: background .35s, color .35s, border-color .35s; }
body.gs-page .gs-filter-btn:hover { color: var(--gx-text); border-color: var(--gx-dim); }
body.gs-page .gs-filter-btn.active { background: var(--gx-gold); border-color: var(--gx-gold); color: var(--gx-night); }
@media (min-width: 760px) { body.gs-page .gs-filters { justify-content: center; } }
body.gs-page .gs-featured-post { margin: 56px 0 0; padding: 0; border: 0; background: none; }
body.gs-page .gs-featured-post__link { display: grid; grid-template-columns: 1fr; gap: 0; overflow: hidden; border-radius: 2px; border: 1px solid var(--gx-line); background: var(--gx-dusk); transition: border-color .5s; }
body.gs-page .gs-featured-post__link:hover { border-color: rgba(216,178,106,.45); }
body.gs-page .gs-featured-post__img-wrap { min-height: 300px; height: 100%; overflow: hidden; }
body.gs-page .gs-featured-post__img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); transition: transform 1.6s var(--gx-ease), filter .8s; }
body.gs-page .gs-featured-post__link:hover .gs-featured-post__img { transform: scale(1.05); filter: saturate(1.05); }
body.gs-page .gs-featured-post__body { padding: clamp(28px, 4vw, 64px); display: flex; flex-direction: column; justify-content: center; gap: 0; }
body.gs-page .gs-featured-post__tag { font: 600 10.5px/1.4 var(--gs-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--gx-gold); margin-bottom: 18px; }
body.gs-page .gs-featured-post__title { font: 400 clamp(34px, 4vw, 60px)/1.04 var(--gs-font-display); letter-spacing: -.03em; color: var(--gx-text); margin-bottom: 18px; }
body.gs-page .gs-featured-post__link:hover .gs-featured-post__title { color: var(--gx-gold-hi); }
body.gs-page .gs-featured-post__excerpt { color: var(--gx-dim); font-size: 15.5px; line-height: 1.75; margin-bottom: 20px; }
body.gs-page .gs-featured-post__meta { color: var(--gx-mute); font-size: 12.5px; }
@media (min-width: 960px) { body.gs-page .gs-featured-post__link { grid-template-columns: 1.15fr 1fr; } }
body.gs-page #gs-posts.gs-grid, body.gs-page #gs-new-grid.gs-grid { display: grid; grid-template-columns: 1fr; gap: 56px 32px; }
@media (min-width: 760px) { body.gs-page #gs-posts.gs-grid, body.gs-page #gs-new-grid.gs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { body.gs-page #gs-posts.gs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Chronicle article ---------- */
body.gs-page .gs-article-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(84px + clamp(64px, 10vw, 140px)) 0 clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--gx-line); }
body.gs-page .gs-article-hero::before { content: ''; position: absolute; inset: -10%; z-index: -2; background-image: var(--hero-img, none); background-size: cover; background-position: center; filter: blur(42px) saturate(1.3) brightness(.45); transform: scale(1.1); }
body.gs-page .gs-article-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--gx-night) 0%, rgba(7,7,11,.4) 60%, rgba(7,7,11,.75) 100%); }
body.gs-page .gs-article-hero .gs-container--narrow { max-width: var(--gx-max); }
body.gs-page .gs-article-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
body.gs-page .gs-article-hero__meta .gs-badge::before { content: 'The Chronicle  ·  '; white-space: pre; color: var(--gx-dim); }
body.gs-page .gs-article-hero__time { font-size: 12.5px; color: var(--gx-dim); }
body.gs-page .gs-article-hero__title { margin: 26px 0 28px; max-width: 18ch; font: 400 clamp(44px, 6.4vw, 104px)/.98 var(--gs-font-display); letter-spacing: -.035em; color: var(--gx-text); text-wrap: balance; }
body.gs-page .gs-article-hero__author { display: inline-flex; align-items: center; gap: 12px; font-size: 13.5px; color: var(--gx-dim); }
body.gs-page .gs-article-hero__author strong { color: var(--gx-text); font-weight: 600; }
body.gs-page .gs-article-hero__author::before { content: ''; width: 36px; height: 36px; border-radius: 50%; background: url('/images/cinema/angel.webp') center 25% / cover; box-shadow: 0 0 0 2px var(--gx-night), 0 0 0 3px var(--gx-gold); }
body.gs-page .gs-article-layout { max-width: var(--gx-max); padding-top: clamp(40px, 6vw, 80px); gap: clamp(40px, 6vw, 96px); }
@media (max-width: 900px) { body.gs-page .gs-article-layout { grid-template-columns: minmax(0, 1fr); } }
body.gs-page .gs-article-figure { margin: 0 0 44px; position: relative; }
body.gs-page .gs-article-figure img { border-radius: 2px; box-shadow: 0 50px 100px -50px rgba(0,0,0,.9); }
body.gs-page .gs-article-content > p, body.gs-page .gs-article-content li { font-size: clamp(16.5px, 1.2vw, 18px); line-height: 1.9; color: #cdc8d8; }
body.gs-page .gs-article-content strong { color: var(--gx-text); }
body.gs-page .gs-article-content h2 { margin: 2.2em 0 .7em; font: 500 clamp(32px, 3.2vw, 46px)/1.08 var(--gs-font-display); letter-spacing: -.02em; color: var(--gx-text); }
body.gs-page .gs-article-content h2::before { content: ''; display: block; width: 44px; height: 1px; margin-bottom: 22px; background: linear-gradient(90deg, var(--gx-gold), transparent); }
body.gs-page .gs-article-content h3 { font: 500 clamp(24px, 2.2vw, 30px)/1.2 var(--gs-font-display); color: var(--gx-text); }
body.gs-page .gs-article-content blockquote.gs-blockquote, body.gs-page .gs-article-content blockquote {
  position: relative; margin: 2.2em 0; padding: 8px 0 8px 32px; border: 0; background: none;
  font: italic 400 clamp(22px, 2vw, 28px)/1.5 var(--gs-font-display); color: var(--gx-gold-hi);
}
body.gs-page .gs-article-content blockquote::before { content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(180deg, var(--gx-gold), rgba(216,178,106,.1)); }
/* Key Takeaways (inline-styled box at the top of each Chronicle) */
body.gs-page .gs-article-content > div.gs-blockquote {
  position: relative; margin: 0 0 32px !important; padding: 28px 30px !important; border: 1px solid rgba(216,178,106,.3) !important; border-radius: 2px !important;
  background: linear-gradient(135deg, rgba(216,178,106,.1), rgba(63,180,176,.04)) !important;
}
body.gs-page .gs-article-content > div.gs-blockquote > p:first-child { font: 500 12px/1 var(--gx-cinzel) !important; letter-spacing: .3em !important; text-transform: uppercase; color: var(--gx-gold) !important; margin: 0 0 16px !important; }
body.gs-page .gs-article-content > div.gs-blockquote li { font-size: 16px; color: var(--gx-text) !important; margin-bottom: 6px; }
body.gs-page .gs-article-content nav.gs-toc { border-radius: 2px !important; padding: 24px 28px !important; background: rgba(237,232,242,.03) !important; }
body.gs-page .gs-article-content nav.gs-toc a { transition: color .3s; }
body.gs-page .gs-article-content nav.gs-toc a:hover, body.gs-page .gs-toc a.is-current { color: var(--gx-gold-hi) !important; }
body.gs-page .gs-article-sidebar { position: sticky; top: 110px; border: 0; padding: 0; }
body.gs-page .gs-article-sidebar .gs-toc-clone { margin-bottom: 36px; padding-left: 16px; border-left: 1px solid var(--gx-line); position: relative; }
body.gs-page .gs-article-sidebar .gs-toc-clone::before { content: ''; position: absolute; left: -1px; top: 0; width: 1px; height: calc(var(--rail-p, 0) * 100%); background: var(--gx-gold); }
body.gs-page .gs-toc-clone p { font: 500 11px/1 var(--gx-cinzel); letter-spacing: .3em; text-transform: uppercase; color: var(--gx-gold); margin: 0 0 14px; }
body.gs-page .gs-toc-clone ol { list-style: none; padding: 0; margin: 0; }
body.gs-page .gs-toc-clone a { display: block; padding: 6px 0; font-size: 13.5px; line-height: 1.45; color: var(--gx-mute); text-decoration: none; transition: color .3s, transform .4s var(--gx-ease); }
body.gs-page .gs-toc-clone a:hover { color: var(--gx-text); }
body.gs-page .gs-toc-clone a.is-current { color: var(--gx-text); transform: translateX(4px); }
@media (max-width: 900px) { body.gs-page .gs-article-sidebar { position: static; } body.gs-page .gs-toc-clone { display: none; } }
body.gs-page .gs-related h3 { font: 500 11px/1 var(--gx-cinzel) !important; letter-spacing: .3em; text-transform: uppercase; color: var(--gx-gold) !important; }
body.gs-page .gs-related__list li { font: 400 21px/1.3 var(--gs-font-display); }
body.gs-page .gs-newsletter { border-radius: 2px; border: 1px solid rgba(216,178,106,.25); background: linear-gradient(160deg, rgba(216,178,106,.1), var(--gx-dusk) 60%); }
body.gs-page .gs-faq { margin-top: 3em; padding-top: 2em; border-top: 1px solid var(--gx-line); }
body.gs-page .gs-faq__item { border-bottom: 1px solid var(--gx-line); padding: 1.2em 0; }
body.gs-page .gs-faq__q { font: 500 22px/1.35 var(--gs-font-display) !important; }
body.gs-page .gs-reading-progress { height: 2px; background: linear-gradient(90deg, var(--gx-gold-lo), var(--gx-gold), var(--gx-gold-hi)); box-shadow: 0 0 14px rgba(216,178,106,.7); z-index: 1002;
  /* gs.js scales it; the width the page's own script sets is ignored, so reading never triggers layout. */
  width: 100% !important; transform: scaleX(0); transform-origin: 0 50%; transition: none; will-change: transform; }

/* ---------- Secondary pages ---------- */
body.gs-page .gs-page-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(84px + clamp(72px, 11vw, 150px)) 0 clamp(56px, 7vw, 96px); margin: 0; border-bottom: 1px solid var(--gx-line); text-align: left; }
body.gs-page .gs-page-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 85% 0%, rgba(216,178,106,.16), transparent 70%), radial-gradient(40% 60% at 0% 100%, rgba(63,180,176,.08), transparent 70%); }
body.gs-page .gs-page-hero .gs-container--narrow { max-width: var(--gx-max); text-align: left !important; }
body.gs-page .gs-page-hero .gs-label { display: inline-flex; align-items: center; gap: 14px; font: 500 11px/1.4 var(--gx-cinzel); letter-spacing: .32em; color: var(--gx-gold); }
body.gs-page .gs-page-hero .gs-label::before { content: ''; width: 34px; height: 1px; background: linear-gradient(90deg, transparent, var(--gx-gold)); }
body.gs-page .gs-page-hero__title { margin: 22px 0 26px; font: 400 clamp(56px, 9.6vw, 160px)/.9 var(--gs-font-display); letter-spacing: -.045em; max-width: 14ch; }
body.gs-page .gs-page-hero__desc { margin: 0; max-width: 52ch; font-size: 16.5px; line-height: 1.8; color: var(--gx-dim); }
body.gs-page .gs-section-title { font: 400 clamp(40px, 5.6vw, 88px)/1 var(--gs-font-display); letter-spacing: -.035em; }
body.gs-page .gs-label { color: var(--gx-gold); }
body.gs-page .gs-btn { border-radius: 999px; padding-inline: 26px; font-size: 11px; letter-spacing: .16em; }
body.gs-page .gs-btn--primary { background: var(--gx-gold); border-color: var(--gx-gold); }
body.gs-page .gs-btn--primary:hover { background: var(--gx-text); border-color: var(--gx-text); }
body.gs-page .gs-btn--outline { border-color: var(--gx-line-2); color: var(--gx-text); }
body.gs-page .gs-btn--outline:hover { border-color: var(--gx-gold); color: var(--gx-gold); background: transparent; }
/* Character sheets: cream paper keeps white-background art at home. */
body.gs-page .gs-char-card { background: var(--gx-dusk); border: 1px solid var(--gx-line); border-radius: 2px; overflow: hidden; transition: border-color .5s, transform .6s var(--gx-ease); }
body.gs-page .gs-char-card:hover { border-color: rgba(216,178,106,.45); transform: translateY(-6px); }
body.gs-page .gs-char-card__img-wrap, body.gs-page .gs-char-detail__avatar-wrap { background: radial-gradient(80% 70% at 50% 35%, #f6efe0, #e2d6bd); }
body.gs-page .gs-char-card__img, body.gs-page .gs-char-detail__avatar { mix-blend-mode: multiply; }
body.gs-page .gs-char-card__body { padding: 24px; }
body.gs-page .gs-char-detail__avatar-wrap { border: 1px solid rgba(216,178,106,.35); padding: 0; border-radius: 2px; }
body.gs-page .gs-cta-band { position: relative; overflow: hidden; background: radial-gradient(60% 80% at 50% 100%, rgba(226,118,58,.22), transparent 70%), var(--gx-dusk); border-top: 1px solid var(--gx-line); }
body.gs-page .gs-cta-band__title { font: 400 clamp(44px, 6.4vw, 104px)/1 var(--gs-font-display); letter-spacing: -.04em; }

/* ---------- Footer ---------- */
body.gs-page .gs-footer { position: relative; overflow: hidden; padding: clamp(72px, 9vw, 120px) 0 28px; background: radial-gradient(60% 60% at 100% 100%, rgba(216,178,106,.1), transparent 70%), #050508; border-top: 1px solid var(--gx-line); }
body.gs-page .gs-footer .gs-container { max-width: var(--gx-max); }
body.gs-page .gs-footer__name { font: 500 15px/1 var(--gx-cinzel); letter-spacing: .32em; }
body.gs-page .gs-footer__tagline { font: italic 400 20px/1.5 var(--gs-font-display); color: var(--gx-dim); }
body.gs-page .gs-footer__col h4, body.gs-page .gs-footer__h { margin: 0 0 18px; text-transform: uppercase; font: 500 11px/1 var(--gx-cinzel); letter-spacing: .3em; color: var(--gx-gold); }
body.gs-page .gs-footer__col a, body.gs-page .gs-footer__social { color: var(--gx-dim); transition: color .3s, transform .4s var(--gx-ease); }
body.gs-page .gs-footer__col a:hover, body.gs-page .gs-footer__social:hover { color: var(--gx-gold); transform: translateX(3px); }
.gx-footer-word { margin: clamp(32px, 5vw, 64px) 0 0; font: 400 clamp(34px, 8.2vw, 150px)/.86 var(--gx-cinzel); letter-spacing: .02em; text-align: center; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(216,178,106,.4); background: linear-gradient(180deg, rgba(216,178,106,.18), transparent 80%); -webkit-background-clip: text; background-clip: text; user-select: none; pointer-events: none; }
body.gs-page .gs-footer__bottom { border-top: 1px solid var(--gx-line); padding-top: 22px; margin-top: 0; }

@media (prefers-reduced-motion: reduce) {
  body.gs-page *, body.gs-page *::before, body.gs-page *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .gx-letterbox::before, .gx-letterbox::after { display: none; }
  .gx-viewfinder, .gx-slate, .gx-presents, .gx-hero__sub, .gx-hero__actions, .gx-hero__foot, .gx-hero__card { opacity: 1 !important; }
  .js body.gs-page [data-reveal], .js body.gs-page [data-lines] .line > span, .js body.gs-page [data-split] .w > span { opacity: 1 !important; transform: none !important; }
  body.gs-page [data-scrub] .sw { color: inherit !important; }
  .gs-marquee__track { animation: none !important; }
}
