/* =============================================================
   ABUNDANOSA · SITE STYLESHEET  (v2 · Aug 2026)
   Applied Mythology for Wealth and Freedom.
   The instrument is the brand. Discipline > decoration.

   Tokens are pulled verbatim from colors_and_type.css.
   Never invent colors, type sizes, or spacing here.
   ============================================================= */

/* -------------------------------------------------------------
   MOTION REGISTER · deliberate brand expansions (logged)
   The Design System states "motion is calibration, not delight"
   and bans parallax / scroll-fades. The following are logged,
   like the Aura blur-reveal before them, as INTENTIONAL
   instrument-drift expansions. Everything below is slow, linear
   or calibrate-eased, sub-perceptual, and reduced-motion guarded.

     · reveal        — blur-to-focus lens pull        (kept)
     · marquee       — mono ticker band               (kept)
     · wheelDraw     — staggered tick draw            (kept)
     · gridMove      — cartographic grid drift, 32px module
     · grainDrift    — patina/bone grain, .02–.035, cursor-reactive
     · scanlineDrift — CUT (avoided the CRT gimmick per brief)
     · cinematicPan  — hero wheel watermark breathes
     · floatingLabel — mono stage-labels drift (24s / 28s)
     · pulse         — crosshairs + status dots
     · citycoords    — live lat/lng, cycles four cities
     · sessionTimer  — T+HH:MM:SS calibration session
     · fragments     — rotating mono brand lines
     · wheelParallax — chart wheels drift under cursor (±6px)

   Rule: if an effect draws attention to itself, halve it.
   ------------------------------------------------------------- */

:root{
  --ab-obsidian:#0F1316;
  --ab-obsidian-deep:#07090B;
  --ab-petrol:#0F2D33;
  --ab-gold:#C49020;
  --ab-gold-hot:#D4A830;
  --ab-verdigris:#3D7A68;
  --ab-patina:#574627;
  --ab-bone:#E2DCCB;

  /* Five Arts subordinate palette — used ONLY when an Art is named */
  --art-vessel:#3D7A68;
  --art-forgemaster:#7A1F2A;
  --art-alchemist:#5A3878;
  --art-artificer:#C56A39;
  --art-mirrorwalker:#6B6E72;

  --bone-35:rgba(226,220,203,.35);
  --bone-60:rgba(226,220,203,.60);
  --bone-80:rgba(226,220,203,.80);
  --ink-35:rgba(15,19,22,.35);
  --ink-60:rgba(15,19,22,.60);
  --ink-80:rgba(15,19,22,.80);

  --patina-10:rgba(87,70,39,.10);
  --patina-08:rgba(87,70,39,.08);
  --patina-50:rgba(87,70,39,.5);

  --ease-cal:cubic-bezier(0.22,0.61,0.36,1);
  --ease-cine:cubic-bezier(0.2,0.9,0.1,1);

  --font-edit:"Newsreader",serif;
  --font-frame:"Space Grotesk",sans-serif;
  --font-mono:"Space Mono",monospace;

  --grid-module:32px;
}

*{margin:0;padding:0;box-sizing:border-box;border-radius:0;}
html{background:var(--ab-obsidian-deep);scroll-behavior:smooth;}
body{
  background:var(--ab-obsidian);
  color:var(--ab-bone);
  font-family:var(--font-frame);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
::selection{background:var(--ab-gold);color:var(--ab-obsidian);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.skip-link{
  position:fixed;top:10px;left:10px;z-index:1000;
  background:var(--ab-gold);color:var(--ab-obsidian);
  padding:10px 14px;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  transform:translateY(-160%);transition:transform 150ms ease;
}
.skip-link:focus{transform:translateY(0);}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--ab-gold-hot);outline-offset:4px;
}

/* -------------------------------------------------------------
   Texture 01 · Cartographic Grid — base fixed layer (letterbox)
   ------------------------------------------------------------- */
.grid-field{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-size:var(--grid-module) var(--grid-module);
  background-image:
    linear-gradient(to right, var(--patina-10) .5px, transparent .5px),
    linear-gradient(to bottom, var(--patina-10) .5px, transparent .5px);
  animation:gridMove 26s linear infinite;
}
@keyframes gridMove{0%{background-position:0 0;}100%{background-position:var(--grid-module) var(--grid-module);}}

/* Grain (texture, patina-tinted) — above plates, below content */
.grain{
  position:fixed;top:-50%;left:-50%;width:200vw;height:200vh;
  pointer-events:none;z-index:38;opacity:.03;
  background-color:var(--ab-patina);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  -webkit-mask-size:200px 200px;mask-size:200px 200px;
  -webkit-mask-mode:luminance;mask-mode:luminance;
  animation:grainDrift 20s linear infinite;
  transition:transform .2s var(--ease-cine);
}
@keyframes grainDrift{
  0%{-webkit-mask-position:0 0;mask-position:0 0;opacity:.02;}
  50%{opacity:.035;}
  100%{-webkit-mask-position:200px 200px;mask-position:200px 200px;opacity:.02;}
}

/* Corner brackets — universal move. Gold 10×10 L-shapes, inset 14px */
.bracket{position:fixed;width:10px;height:10px;z-index:60;pointer-events:none;}
.bracket.tl{top:14px;left:14px;border-top:1px solid var(--ab-gold);border-left:1px solid var(--ab-gold);}
.bracket.tr{top:14px;right:14px;border-top:1px solid var(--ab-gold);border-right:1px solid var(--ab-gold);}
.bracket.bl{bottom:14px;left:14px;border-bottom:1px solid var(--ab-gold);border-left:1px solid var(--ab-gold);}
.bracket.br{bottom:14px;right:14px;border-bottom:1px solid var(--ab-gold);border-right:1px solid var(--ab-gold);}

/* Fixed crosshairs — gold at low opacity, pulsing (desktop only) */
.xh{position:fixed;width:16px;height:16px;z-index:59;pointer-events:none;opacity:.35;animation:pulse 8s ease-in-out infinite;}
.xh::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--ab-gold);}
.xh::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ab-gold);}
.xh.tl{top:44px;left:44px;} .xh.tr{top:44px;right:44px;}
.xh.bl{bottom:44px;left:44px;} .xh.br{bottom:44px;right:44px;}
@keyframes pulse{0%,100%{opacity:.35;transform:scale(1);}50%{opacity:.18;transform:scale(.95);}}
@media (max-width:820px){ .xh{display:none;} }

/* -------------------------------------------------------------
   Plates — every section declares its ground; each carries a
   drifting per-plate grid so the instrument field is always on.
   ------------------------------------------------------------- */
.plate-dark{background:var(--ab-obsidian);color:var(--ab-bone);position:relative;}
.plate-petrol{background:var(--ab-petrol);color:var(--ab-bone);position:relative;}
.plate-deep{background:var(--ab-obsidian-deep);color:var(--ab-bone);position:relative;}
.plate-bone{background:var(--ab-bone);color:var(--ab-obsidian);position:relative;}

.plate-dark::before,.plate-petrol::before,.plate-deep::before,.plate-bone::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-size:var(--grid-module) var(--grid-module);
  animation:gridMove 30s linear infinite;
}
.plate-dark::before,.plate-petrol::before,.plate-deep::before{
  background-image:
    linear-gradient(to right, var(--patina-10) .5px, transparent .5px),
    linear-gradient(to bottom, var(--patina-10) .5px, transparent .5px);
}
.plate-bone::before{
  background-image:
    linear-gradient(to right, var(--patina-08) .5px, transparent .5px),
    linear-gradient(to bottom, var(--patina-08) .5px, transparent .5px);
}
/* keep content above the plate grid */
.plate-dark>*,.plate-petrol>*,.plate-deep>*,.plate-bone>*{position:relative;z-index:1;}

.plate-bone .eyebrow{color:var(--ink-60);}
.plate-bone .annot{color:var(--ink-35);}

@media (prefers-reduced-motion: reduce){
  .grid-field,.plate-dark::before,.plate-petrol::before,.plate-deep::before,.plate-bone::before,
  .grain,.xh,.marquee-track{animation:none;}
}

/* -------------------------------------------------------------
   Mono voices
   ------------------------------------------------------------- */
.mono{font-family:var(--font-mono);font-weight:400;}
.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--bone-60);}
.eyebrow .dim{opacity:.5;}
.annot{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);}

/* -------------------------------------------------------------
   Reveal — cinematic blur-to-focus (Aura, logged expansion)
   ------------------------------------------------------------- */
.reveal{
  opacity:0;transform:translateY(32px) scale(0.98);filter:blur(16px);
  transition:opacity 3.2s var(--ease-cine),transform 3.2s var(--ease-cine),filter 3.2s var(--ease-cine);
  will-change:opacity,transform,filter;
}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{transition:none;opacity:1;transform:none;filter:none;}
}

/* Floating mono labels — desync via two durations */
.float-label{animation:floatingLabel 24s var(--ease-cal) infinite;will-change:transform;}
.float-label-alt{animation:floatingLabel 28s var(--ease-cal) infinite reverse;will-change:transform;}
@keyframes floatingLabel{
  0%{transform:translate(0,0) rotate(0deg);}
  33%{transform:translate(-2px,4px) rotate(-0.5deg);}
  66%{transform:translate(3px,-2px) rotate(0.5deg);}
  100%{transform:translate(0,0) rotate(0deg);}
}
@media (prefers-reduced-motion: reduce){ .float-label,.float-label-alt{animation:none;} }

/* -------------------------------------------------------------
   Header
   ------------------------------------------------------------- */
header{
  position:fixed;top:0;left:0;width:100%;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 40px;
  background:var(--ab-obsidian);
  border-bottom:.5px solid var(--patina-50);
}
.ab-wordmark{font-size:0;display:block;color:var(--ab-gold);}
.ab-wordmark img{height:32px;width:auto;}
nav{display:flex;gap:36px;}
nav a{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--bone-60);
  position:relative;padding-bottom:3px;transition:color 150ms ease;
}
nav a::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:.5px;
  background:var(--ab-gold);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease-cal);
}
nav a:hover,nav a[aria-current="page"]{color:var(--ab-bone);}
nav a:hover::after,nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left;}
.header-cta{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ab-gold);
  border:.75px solid var(--ab-patina);padding:10px 18px;
  transition:border-color 150ms ease,color 150ms ease;white-space:nowrap;
}
.header-cta:hover{border-color:var(--ab-gold);color:var(--ab-gold-hot);}
@media (max-width:980px){ nav{gap:24px;} }
@media (max-width:820px){
  header{padding:14px 20px;flex-wrap:wrap;gap:12px;}
  nav{display:flex;order:3;width:100%;gap:20px;overflow-x:auto;padding:10px 0 2px;border-top:.5px solid var(--patina-50);}
  nav a{font-size:9px;white-space:nowrap;}
  .ab-wordmark img{height:26px;}
}

/* -------------------------------------------------------------
   Sections & shared type
   ------------------------------------------------------------- */
main{position:relative;z-index:1;}
section{border-bottom:.5px solid var(--patina-50);position:relative;}
.pad{padding-left:56px;padding-right:56px;}
@media (max-width:820px){ .pad{padding-left:24px;padding-right:24px;} }

h1{
  font-family:var(--font-frame);font-weight:300;
  font-size:clamp(3.2rem,9vw,8.5rem);line-height:.9;letter-spacing:-.03em;
  text-transform:uppercase;color:var(--ab-bone);margin:34px 0 40px;
}
h1 .gold{color:var(--ab-gold);}

/* Editorial title (Newsreader italic) — the repeated shot title */
.shot-title{
  font-family:var(--font-edit);font-style:italic;font-weight:300;
  font-size:clamp(2.4rem,6vw,5rem);line-height:1.08;letter-spacing:-.015em;
}
.shot-title .gold{color:var(--ab-gold);}

.arc{width:100%;max-width:420px;height:8px;display:block;}
.arc path{stroke:var(--ab-gold);stroke-width:.4;fill:none;}
.plate-bone .arc path{stroke:var(--ab-gold);}

.hero-lede{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  line-height:2.1;text-transform:uppercase;color:var(--bone-60);
  max-width:380px;margin:30px 0 44px;
}

.cta-gold{
  display:inline-block;background:var(--ab-gold);color:var(--ab-obsidian);
  border:.75px solid var(--ab-gold);padding:14px 28px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  transition:background 150ms ease;align-self:flex-start;
}
.cta-gold:hover{background:var(--ab-gold-hot);}
.cta-line{
  display:inline-block;font-family:var(--font-mono);font-size:10px;
  letter-spacing:.28em;text-transform:uppercase;padding-bottom:4px;position:relative;
  transition:color 150ms ease;
}
.cta-line::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:.5px;background:var(--ab-gold);}
.cta-line:hover{color:var(--ab-gold-hot);}

/* -------------------------------------------------------------
   Tick Band (texture 03) — degree band divider between plates
   ------------------------------------------------------------- */
.tickband{display:block;line-height:0;background:var(--ab-obsidian-deep);border-bottom:.5px solid var(--patina-50);}
.tickband svg{display:block;width:100%;height:30px;}

/* Concentrics (texture 05) — faint, behind a section */
.concentric{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:0;opacity:.06;}
.concentric svg{width:min(680px,90%);height:auto;color:var(--ab-patina);}

/* -------------------------------------------------------------
   Page shot header (subpages) — italic title → gold arc → coord
   ------------------------------------------------------------- */
.page-shot{padding-top:180px;padding-bottom:96px;position:relative;overflow:hidden;}
@media (max-width:820px){ .page-shot{padding-top:132px;padding-bottom:64px;} }
.page-shot .eyebrow{color:var(--bone-60);}
.page-shot h1.editorial{
  font-family:var(--font-edit);font-style:italic;font-weight:300;text-transform:none;
  font-size:clamp(2.8rem,7vw,6rem);line-height:1.02;letter-spacing:-.015em;
  color:var(--ab-bone);margin:26px 0 26px;
}
.page-shot h1.editorial .gold{color:var(--ab-gold);}
.page-lede{
  font-family:var(--font-edit);font-style:italic;font-weight:300;
  font-size:clamp(1.1rem,2.4vw,1.4rem);line-height:1.6;color:var(--bone-80);
  max-width:52ch;margin-top:22px;
}
.coord-strip{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--bone-35);margin-top:22px;
}

/* Art result-comprehension hero: diagnosed glyph + editorial field */
.art-page--alchemist{--art-accent:var(--art-alchemist);}
.art-page--artificer{--art-accent:var(--art-artificer);}
.art-page--forgemaster{--art-accent:var(--art-forgemaster);}
.art-page--mirrorwalker{--art-accent:var(--art-mirrorwalker);}
.art-page--vessel{--art-accent:var(--art-vessel);}
.art-hero{
  position:relative;z-index:1;max-width:1260px;margin:0 auto;
  display:grid;grid-template-columns:minmax(190px,260px) minmax(0,800px);
  gap:clamp(56px,7vw,112px);align-items:start;
}
.art-hero-seal{
  min-height:360px;margin:18px 0 0;padding:18px clamp(32px,4vw,56px) 36px 0;
  border-right:.5px solid var(--art-accent);
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
}
.art-hero-seal img{
  display:block;width:min(220px,100%);height:auto;
}
.art-hero-seal figcaption{
  width:100%;margin-top:34px;padding-top:15px;border-top:.5px solid var(--art-accent);
  font-family:var(--font-mono);font-size:9px;line-height:1.8;letter-spacing:.2em;
  text-align:center;text-transform:uppercase;color:var(--art-accent);
}
.art-hero-copy{min-width:0;}
.art-page .section-head .eyebrow{
  border-left:.75px solid var(--art-accent);padding-left:14px;
}
@media (max-width:900px) and (min-width:641px){
  .art-hero{grid-template-columns:minmax(170px,210px) minmax(0,1fr);gap:40px;}
  .art-hero-seal{padding-right:30px;}
  .art-hero-seal img{width:min(190px,100%);}
}
@media (max-width:640px){
  .art-hero{grid-template-columns:1fr;gap:34px;}
  .art-hero-seal{
    min-height:0;margin:0;padding:0 0 30px;border-right:0;
    border-bottom:.5px solid var(--art-accent);align-items:flex-start;
  }
  .art-hero-seal img{width:136px;}
  .art-hero-seal figcaption{width:auto;min-width:220px;text-align:left;margin-top:22px;}
}

/* -------------------------------------------------------------
   Marquee ticker
   ------------------------------------------------------------- */
.marquee{overflow:hidden;padding:18px 0;user-select:none;pointer-events:none;}
.marquee-track{display:flex;width:max-content;animation:marquee 90s linear infinite;opacity:.45;}
.marquee-seg{display:flex;align-items:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.5em;text-transform:uppercase;color:var(--ab-bone);white-space:nowrap;}
.marquee-seg span{padding:0 34px;}
.marquee-seg .d{color:var(--ab-gold);padding:0;}
@keyframes marquee{0%{transform:translate3d(0,0,0);}100%{transform:translate3d(-50%,0,0);}}

/* -------------------------------------------------------------
   Hero
   ------------------------------------------------------------- */
.hero{min-height:100vh;display:flex;align-items:stretch;padding-top:150px;position:relative;overflow:hidden;}
.hero-copy{width:52%;display:flex;flex-direction:column;justify-content:center;padding-bottom:80px;}
.hero-wheel{width:48%;display:flex;align-items:center;justify-content:center;position:relative;padding-bottom:80px;}
@media (max-width:820px){
  .hero{flex-direction:column-reverse;padding-top:110px;}
  .hero-copy,.hero-wheel{width:100%;}
  .hero-wheel{padding-bottom:24px;}
}
.hero h1{margin:34px 0 40px;}

.wheel-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.04;z-index:0;}
.wheel-watermark svg{width:130%;height:auto;color:var(--ab-gold);}
.cinematic-pan{animation:cinematicPan 60s var(--ease-cal) infinite;will-change:transform;transform-origin:center;}
@keyframes cinematicPan{
  0%{transform:scale(1.05) translate(0,0) rotate(0deg);}
  50%{transform:scale(1.08) translate(-0.5%,0.5%) rotate(0.2deg);}
  100%{transform:scale(1.05) translate(0,0) rotate(0deg);}
}
@media (prefers-reduced-motion: reduce){ .cinematic-pan{animation:none;} }

.wheel-parallax{will-change:transform;transition:transform .3s var(--ease-cine);}

.stage-label{position:absolute;font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);line-height:1.9;}
.blink{display:inline-block;width:5px;height:5px;border-radius:999px;background:var(--ab-verdigris);animation:blink 3s var(--ease-cal) infinite;vertical-align:middle;margin-left:6px;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.2;}}
@media (prefers-reduced-motion: reduce){ .blink{animation:none;} }

.scroll-cue{position:absolute;right:20px;top:50%;transform:rotate(90deg) translateX(-50%);transform-origin:right center;font-family:var(--font-mono);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--bone-35);}
@media (max-width:820px){ .scroll-cue{display:none;} }

/* -------------------------------------------------------------
   Statement plate
   ------------------------------------------------------------- */
.statement{padding-top:170px;padding-bottom:170px;text-align:center;}
.statement h2{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(2rem,5.4vw,4.6rem);line-height:1.12;letter-spacing:-.015em;max-width:920px;margin:44px auto;}
.statement h2 .gold{color:var(--ab-gold);}
.vrule{width:.5px;height:88px;background:rgba(15,19,22,.25);margin:0 auto 44px;}
.plate-dark .vrule,.plate-petrol .vrule,.plate-deep .vrule{background:rgba(226,220,203,.25);}
.statement p{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;line-height:2.2;text-transform:uppercase;color:var(--ink-60);max-width:460px;margin:0 auto;}
.plate-dark .statement p{color:var(--bone-60);}
.diamond{width:8px;height:8px;border:.75px solid var(--ab-gold);transform:rotate(45deg);margin:0 auto;}

/* -------------------------------------------------------------
   Section head (index + subpages)
   ------------------------------------------------------------- */
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:72px;gap:24px;flex-wrap:wrap;}
.section-head .eyebrow{color:var(--bone-80);}
.plate-bone .section-head .eyebrow{color:var(--ink-80);}

/* -------------------------------------------------------------
   The Five Arts / Aspects grid
   ------------------------------------------------------------- */
.arts{padding-top:96px;padding-bottom:96px;}
.arts-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;border-top:.5px solid var(--patina-50);padding-top:56px;}
@media (max-width:1000px){ .arts-grid{grid-template-columns:repeat(2,1fr);gap:48px 16px;} }
@media (max-width:560px){ .arts-grid{grid-template-columns:1fr;} }
.art-col{border-left:.5px solid var(--patina-50);padding-left:20px;display:flex;flex-direction:column;}
.art-aspect{font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);margin-bottom:18px;}
.plate-bone .art-aspect{color:var(--ink-35);}
.art-deg{font-family:var(--font-frame);font-weight:300;font-size:clamp(2.6rem,4.4vw,4.6rem);letter-spacing:-.03em;line-height:1;color:var(--ab-bone);margin-bottom:28px;}
.plate-bone .art-deg{color:var(--ab-obsidian);}
.art-deg sup{font-size:.45em;color:var(--ab-gold);}
.art-glyph{width:72px;height:72px;margin-bottom:28px;}
.art-glyph svg{width:100%;height:100%;}
.art-name{font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ab-bone);border-bottom:.5px solid var(--ab-gold);padding-bottom:5px;align-self:flex-start;margin-bottom:22px;}
.plate-bone .art-name{color:var(--ab-obsidian);}
.art-mech{font-family:var(--font-edit);font-weight:300;font-size:15px;line-height:1.6;color:var(--bone-60);max-width:220px;}
.plate-bone .art-mech{color:var(--ink-60);}
.art-log{font-family:var(--font-mono);font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);margin-top:auto;padding-top:30px;}
.plate-bone .art-log{color:var(--ink-35);}

/* Per-Art glyph tints (subordinate palette, permitted when Art is named) */
.g-vessel{color:var(--art-vessel);}
.g-forgemaster{color:var(--art-forgemaster);}
.g-alchemist{color:var(--art-alchemist);}
.g-artificer{color:var(--art-artificer);}
.g-mirrorwalker{color:var(--art-mirrorwalker);}

/* -------------------------------------------------------------
   Two-column stage (Instrument, Ephemeris intro)
   ------------------------------------------------------------- */
.instrument{padding-top:140px;padding-bottom:140px;}
.stage{max-width:1080px;margin:0 auto;display:flex;gap:72px;align-items:center;}
@media (max-width:900px){ .stage{flex-direction:column-reverse;} }
.stage-copy{width:52%;}
.stage-wheel{width:48%;display:flex;justify-content:center;position:relative;}
@media (max-width:900px){ .stage-copy,.stage-wheel{width:100%;} }
.stage .eyebrow{color:var(--bone-80);}
.stage h3{font-family:var(--font-frame);font-weight:300;text-transform:uppercase;font-size:clamp(2.2rem,4vw,3.4rem);line-height:1;letter-spacing:-.02em;margin:26px 0 30px;color:var(--ab-bone);}
.stage h3 .gold{color:var(--ab-gold);}
.stage-body{font-family:var(--font-edit);font-weight:300;font-size:18px;line-height:1.75;color:var(--bone-80);max-width:440px;margin-bottom:44px;}
.stage-foot{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-35);border-top:.5px solid var(--patina-50);padding-top:14px;margin-top:56px;max-width:240px;line-height:2;}
.stage-label-ink{position:absolute;font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);line-height:1.9;}

/* -------------------------------------------------------------
   The Catalogue — publisher's list, not a shop grid
   ------------------------------------------------------------- */
.catalogue{padding-top:96px;padding-bottom:96px;position:relative;}
.cat-window{font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ab-gold);margin-bottom:40px;}
.plate-bone .cat-window{color:var(--ab-patina);}
.cat-list{border-top:.5px solid var(--patina-50);}
.cat-row{display:grid;grid-template-columns:minmax(220px,0.9fr) 1.6fr auto;gap:24px;align-items:baseline;padding:26px 0;border-bottom:.5px solid var(--patina-50);transition:background 150ms ease;}
.cat-row:hover{background:rgba(196,144,32,.04);}
.cat-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);line-height:1.8;}
.plate-dark .cat-meta,.plate-petrol .cat-meta,.plate-deep .cat-meta{color:var(--bone-60);}
.cat-main .cat-title{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.15;color:var(--ab-obsidian);margin-bottom:8px;}
.plate-dark .cat-title,.plate-petrol .cat-title,.plate-deep .cat-title{color:var(--ab-bone);}
.cat-desc{font-family:var(--font-edit);font-weight:300;font-size:14px;line-height:1.55;color:var(--ink-60);max-width:52ch;}
.plate-dark .cat-desc,.plate-petrol .cat-desc,.plate-deep .cat-desc{color:var(--bone-60);}
.cat-state{font-family:var(--font-mono);font-size:9px;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;color:var(--ink-35);text-align:right;}
.plate-dark .cat-state,.plate-petrol .cat-state,.plate-deep .cat-state{color:var(--bone-35);}
.cat-state.issued{color:var(--ab-verdigris);}
@media (max-width:760px){
  .cat-row{grid-template-columns:1fr;gap:10px;}
  .cat-state{text-align:left;}
}
.catalogue .cat-cta{margin-top:48px;display:inline-block;}
.plate-bone .cta-line{color:var(--ab-obsidian);}

/* -------------------------------------------------------------
   Editorial list (Articles) & FAQ rows
   ------------------------------------------------------------- */
.list-rows{border-top:.5px solid var(--patina-50);}
.list-row{display:grid;grid-template-columns:minmax(200px,0.8fr) 2fr auto;gap:24px;align-items:baseline;padding:28px 0;border-bottom:.5px solid var(--patina-50);transition:background 150ms ease;}
a.list-row:hover{background:rgba(196,144,32,.04);}
.list-row[aria-disabled="true"]{cursor:default;}
.list-row[aria-disabled="true"] .list-title{color:var(--bone-60);}
.list-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-60);line-height:1.8;}
.list-title{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.6vw,2rem);line-height:1.15;color:var(--ab-bone);}
.list-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);white-space:nowrap;text-align:right;}
@media (max-width:760px){
  .list-row{grid-template-columns:1fr;gap:10px;}
  .list-tag{text-align:left;}
}

/* FAQ */
.faq-rows{border-top:.5px solid var(--patina-50);}
.faq-row{display:grid;grid-template-columns:72px 1fr;gap:28px;padding:34px 0;border-bottom:.5px solid var(--patina-50);}
.faq-num{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ab-gold);}
.faq-q{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.2;color:var(--ab-bone);margin-bottom:16px;}
.faq-a{font-family:var(--font-edit);font-weight:300;font-size:16px;line-height:1.7;color:var(--bone-80);max-width:60ch;}
@media (max-width:620px){ .faq-row{grid-template-columns:1fr;gap:12px;} }

/* -------------------------------------------------------------
   Prose (About, Ephemeris, Privacy body)
   ------------------------------------------------------------- */
.prose{max-width:64ch;}
.prose p{font-family:var(--font-edit);font-weight:300;font-size:17px;line-height:1.75;color:var(--bone-80);margin-bottom:22px;}
.prose p em{font-style:italic;color:var(--ab-gold);}
.prose h2{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.15;color:var(--ab-bone);margin:56px 0 22px;}
.prose h3{font-family:var(--font-frame);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:var(--ab-bone);margin:40px 0 14px;}
.block-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--ab-gold);margin-bottom:14px;}

/* Atelier / team-as-atelier grid */
.atelier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:.5px solid var(--patina-50);padding-top:48px;margin-top:20px;}
@media (max-width:900px){ .atelier-grid{grid-template-columns:repeat(2,1fr);gap:36px 20px;} }
@media (max-width:520px){ .atelier-grid{grid-template-columns:1fr;} }
.atelier-col{border-left:.5px solid var(--patina-50);padding-left:20px;}
.atelier-role{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);margin-bottom:16px;}
.atelier-name{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:20px;color:var(--ab-bone);margin-bottom:10px;}
.atelier-note{font-family:var(--font-edit);font-weight:300;font-size:14px;line-height:1.6;color:var(--bone-60);}

/* Simple centered frame (Contact) */
.frame{max-width:640px;margin:0 auto;border:.75px solid var(--patina-50);padding:64px 56px;position:relative;background:var(--ab-obsidian);}
.frame .corner{position:absolute;width:10px;height:10px;}
.frame .corner.tl{top:14px;left:14px;border-top:.75px solid var(--ab-gold);border-left:.75px solid var(--ab-gold);}
.frame .corner.tr{top:14px;right:14px;border-top:.75px solid var(--ab-gold);border-right:.75px solid var(--ab-gold);}
.frame .corner.bl{bottom:14px;left:14px;border-bottom:.75px solid var(--ab-gold);border-left:.75px solid var(--ab-gold);}
.frame .corner.br{bottom:14px;right:14px;border-bottom:.75px solid var(--ab-gold);border-right:.75px solid var(--ab-gold);}
.addr{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;color:var(--ab-gold);margin:22px 0;}

/* Trust line */
.trust{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:15px;color:var(--bone-60);}

/* Doorway quote */
.quote{padding-top:180px;padding-bottom:180px;text-align:center;position:relative;}
.quote h2{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:clamp(2.2rem,5.6vw,5rem);line-height:1.15;letter-spacing:-.015em;max-width:980px;margin:0 auto 40px;color:var(--ab-bone);}
.quote h2 .gold{color:var(--ab-gold);}
.quote .eyebrow{color:var(--bone-60);}
.quote .cta-line{margin-top:48px;}
.fragment-line{font-family:var(--font-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--bone-35);margin-top:56px;min-height:1.2em;transition:opacity 1.6s ease;}

/* -------------------------------------------------------------
   Footer
   ------------------------------------------------------------- */
footer{background:var(--ab-obsidian-deep);color:var(--ab-bone);padding:120px 56px 40px;position:relative;z-index:1;border-top:.5px solid var(--patina-50);}
@media (max-width:820px){ footer{padding:90px 24px 32px;} }
.footer-head{font-family:var(--font-mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--bone-35);margin-bottom:90px;}

.footer-cta{display:grid;grid-template-columns:1fr 1fr;gap:48px;border-bottom:.5px solid var(--patina-50);padding-bottom:80px;margin-bottom:72px;}
@media (max-width:820px){ .footer-cta{grid-template-columns:1fr;} }
.footer-cta h2{font-family:var(--font-frame);font-weight:300;text-transform:uppercase;font-size:clamp(2.6rem,5.4vw,4.8rem);line-height:.95;letter-spacing:-.03em;}
.footer-cta h2 .gold{color:var(--ab-gold);}
.footer-cta-right{display:flex;flex-direction:column;justify-content:center;gap:32px;}

.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-bottom:.5px solid var(--patina-50);padding-bottom:72px;margin-bottom:56px;}
@media (max-width:720px){ .footer-cols{grid-template-columns:1fr;gap:40px;} }
.footer-col h4{font-family:var(--font-mono);font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--ab-gold);margin-bottom:22px;}
.footer-col a{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-35);padding:8px 0;position:relative;width:max-content;transition:color 150ms ease;}
.footer-col a::after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:.5px;background:var(--ab-gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-cal);}
.footer-col a:hover{color:var(--ab-bone);}
.footer-col a:hover::after{transform:scaleX(1);transform-origin:left;}

.colophon{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;border-bottom:.5px solid var(--patina-50);padding-bottom:56px;margin-bottom:40px;}
@media (max-width:720px){ .colophon{grid-template-columns:1fr;gap:28px;} }
.colophon p{font-family:var(--font-edit);font-weight:300;font-size:14px;line-height:1.7;color:var(--bone-60);max-width:56ch;margin-bottom:16px;}
.colophon .typefaces{font-family:var(--font-edit);font-style:italic;font-size:13px;color:var(--bone-35);}
.colophon .issues{font-family:var(--font-edit);font-style:italic;font-weight:300;font-size:17px;color:var(--bone-80);}
.colophon-right{display:flex;flex-direction:column;justify-content:flex-end;gap:14px;}

.telemetry{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);line-height:2;}
.telemetry .cities{color:var(--bone-60);margin-bottom:10px;}
.telemetry .readout{color:var(--bone-80);}
.telemetry .readout .city{color:var(--ab-gold);}

.footer-base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:40px;font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-35);}
.footer-mark{height:38px;width:auto;opacity:.9;}

/* Small fixed desktop telemetry mirror */
.telemetry-fixed{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:57;pointer-events:none;font-family:var(--font-mono);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--bone-35);display:flex;align-items:center;gap:12px;padding:8px 16px;border:.5px solid var(--patina-50);background:rgba(7,9,11,.6);}
.telemetry-fixed .city{color:var(--ab-gold);}
.telemetry-fixed .t{color:var(--bone-80);}
@media (max-width:820px){ .telemetry-fixed{display:none;} }
@media (prefers-reduced-motion: reduce){ .fragment-line{transition:none;} }
