:root{
  --bg: #0b0d10;
  --bg-soft: #12161b;
  --bg-elev: rgba(18, 22, 27, 0.78);
  --ink: #eef2f4;
  --ink-soft: #c9d0d5;
  --ink-muted: #90a0a8;
  --line: rgba(255,255,255,.09);
  --line-strong: rgba(255,255,255,.16);
  --gold: #d5b071;
  --gold-strong: #f0c982;
  --warm: #241a10;
  --paper: linear-gradient(180deg, rgba(255,255,255,.95), rgba(238,233,224,.93));
  --paper-dark: linear-gradient(180deg, rgba(25,28,32,.96), rgba(16,19,22,.97));
  --shadow-xxl: 0 34px 90px rgba(0,0,0,.55);
  --shadow-xl: 0 22px 50px rgba(0,0,0,.34);
  --shadow-lg: 0 14px 34px rgba(0,0,0,.24);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --space-xs: .5rem;
  --space-sm: .875rem;
  --space-md: 1.25rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4.5rem;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  color-scheme:dark;
}

body{
  margin:0;
  font-family:var(--sans);
  background:
    radial-gradient(circle at 18% 14%, rgba(213,176,113,.11), transparent 22%),
    radial-gradient(circle at 82% 16%, rgba(89,113,173,.09), transparent 18%),
    linear-gradient(180deg, #0b0d10 0%, #0b0d10 100%);
  color:var(--ink);
  min-height:100vh;
}

body.page-home{
  overflow:hidden;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  width:100%;
  height:auto;
}

button,
input,
summary{
  font:inherit;
}

button{
  cursor:pointer;
  color:inherit;
}

.skip-link{
  position:fixed;
  left:1rem;
  top:1rem;
  background:#fff;
  color:#111;
  padding:.75rem 1rem;
  border-radius:999px;
  z-index:9999;
  transform:translateY(-200%);
  transition:transform .2s ease;
  box-shadow:var(--shadow-lg);
}

.skip-link:focus{
  transform:translateY(0);
}

.bg-orb{
  position:fixed;
  width:36rem;
  aspect-ratio:1;
  border-radius:50%;
  filter:blur(80px);
  opacity:.18;
  pointer-events:none;
  z-index:0;
}

.bg-orb--one{
  left:-10rem;
  top:-8rem;
  background:radial-gradient(circle at 30% 30%, rgba(213,176,113,.9), rgba(213,176,113,.12) 45%, transparent 70%);
}

.bg-orb--two{
  right:-12rem;
  bottom:-12rem;
  background:radial-gradient(circle at 40% 40%, rgba(91,111,174,.75), rgba(91,111,174,.08) 42%, transparent 70%);
}

.bg-grid{
  position:fixed;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 18%, rgba(0,0,0,.8) 82%, transparent 100%);
  opacity:.24;
  pointer-events:none;
  z-index:0;
}

.topbar{
  position:relative;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.15rem clamp(1rem, 2vw, 2rem);
}

.topbar--floating{
  position:fixed;
  inset:0 0 auto 0;
  backdrop-filter: blur(18px);
  background:linear-gradient(180deg, rgba(7,8,10,.8), rgba(7,8,10,.42) 70%, transparent);
}

.brand{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:0;
}

.brand-mark{
  width:3.1rem;
  height:3.1rem;
  display:grid;
  place-items:center;
  border-radius:1rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)),
    linear-gradient(135deg, rgba(213,176,113,.18), rgba(90,95,115,.1));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow-lg);
  color:var(--gold-strong);
  font-family:var(--serif);
  font-size:1.2rem;
  letter-spacing:.08em;
}

.brand-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.brand-copy strong{
  font-size:1rem;
  letter-spacing:.01em;
}

.brand-kicker{
  font-size:.68rem;
  color:var(--gold);
  letter-spacing:.24em;
  text-transform:uppercase;
  white-space:nowrap;
}

.topnav{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.topnav a,
.topnav button{
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:var(--ink-soft);
  padding:.78rem 1rem;
  border-radius:999px;
  transition:transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}

.topnav a:hover,
.topnav button:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:var(--ink);
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.92rem 1.15rem;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .2s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
  font-weight:600;
}

.button:hover{
  transform:translateY(-1px);
}

.button--primary{
  background:linear-gradient(135deg, #d7b16c, #9f7a37);
  color:#17110a;
  box-shadow:0 12px 28px rgba(159,122,55,.28);
}

.button--primary:hover{
  box-shadow:0 16px 34px rgba(159,122,55,.34);
}

.button--secondary{
  background:rgba(255,255,255,.06);
  color:var(--ink);
  border-color:rgba(255,255,255,.12);
}

.button--secondary:hover{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.2);
}

.button--ghost{
  background:rgba(255,255,255,.03);
  color:var(--ink-soft);
  border-color:rgba(255,255,255,.1);
}

.content-shell{
  position:relative;
  z-index:2;
}

.noscript-card{
  max-width:720px;
  margin:7rem auto 0;
  padding:1.5rem;
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
}

.book-stage{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:6.75rem 1rem 6.5rem;
}

.book-frame{
  position:relative;
  width:min(96vw, 1480px);
}

.book{
  position:relative;
  height:min(82vh, 900px);
  min-height:680px;
  perspective:2200px;
}

.book-edge{
  position:absolute;
  top:0;
  width:64px;
  height:100%;
  z-index:7;
  cursor:pointer;
}

.book-edge--left{
  left:0;
  cursor:w-resize;
}

.book-edge--right{
  right:0;
  cursor:e-resize;
}

.spread{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transform-origin:left center;
  transform:translateX(5%) scale(.97) rotateY(-12deg);
  transition:
    transform .86s cubic-bezier(.19,.99,.28,.98),
    opacity .48s ease,
    filter .56s ease;
  filter:blur(4px);
  z-index:1;
  will-change:transform, opacity, filter;
}

.spread.is-current{
  opacity:1;
  pointer-events:auto;
  transform:translateX(0) scale(1) rotateY(0deg);
  filter:none;
  z-index:4;
}

.spread.is-prev{
  transform:translateX(-6%) scale(.96) rotateY(12deg);
  opacity:0;
  z-index:2;
}

.spread.is-next{
  transform:translateX(6%) scale(.96) rotateY(-12deg);
  opacity:0;
  z-index:2;
}

.spread.is-leaving-forward{
  transform:rotateY(-96deg) translateX(-8%) scale(.98);
  opacity:.16;
  z-index:5;
  filter:blur(1px);
}

.spread.is-leaving-backward{
  transform-origin:right center;
  transform:rotateY(96deg) translateX(8%) scale(.98);
  opacity:.16;
  z-index:5;
  filter:blur(1px);
}

.spread.is-entering-forward,
.spread.is-entering-backward{
  opacity:1;
  z-index:6;
  filter:none;
}

.spread.is-entering-forward{
  animation:pageInForward .86s cubic-bezier(.16,1,.3,1);
}

.spread.is-entering-backward{
  transform-origin:right center;
  animation:pageInBackward .86s cubic-bezier(.16,1,.3,1);
}

@keyframes pageInForward{
  from{ transform:translateX(7%) scale(.97) rotateY(-18deg); opacity:.25; }
  to{ transform:translateX(0) scale(1) rotateY(0deg); opacity:1; }
}

@keyframes pageInBackward{
  from{ transform:translateX(-7%) scale(.97) rotateY(18deg); opacity:.25; }
  to{ transform:translateX(0) scale(1) rotateY(0deg); opacity:1; }
}

.spread-surface{
  position:relative;
  height:100%;
  border-radius:var(--radius-xl);
  background:var(--paper);
  color:#171a1f;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  box-shadow:var(--shadow-xxl);
}

.spread-surface::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.07) 15%, rgba(0,0,0,.08) 50%, rgba(0,0,0,.07) 85%, transparent);
  transform:translateX(-50%);
  pointer-events:none;
}

.spread-surface::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.45), transparent 32%),
    radial-gradient(circle at bottom right, rgba(12,12,12,.08), transparent 30%);
  pointer-events:none;
}

.spread-surface--cover{
  background:
    linear-gradient(90deg, rgba(15,16,19,.92), rgba(15,16,19,.78) 48%, rgba(23,25,29,.42) 65%, rgba(23,25,29,.18)),
    url("../images/hero-wide.jpg") center/cover no-repeat;
  color:var(--ink);
}

.spread-surface--cover::before,
.spread-surface--cover::after{
  display:none;
}

.spread-surface--dark{
  background:
    linear-gradient(180deg, rgba(20,24,28,.98), rgba(11,13,16,.98));
  color:var(--ink);
}

.spread-surface--dark::before{
  background:linear-gradient(180deg, transparent, rgba(255,255,255,.06) 15%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.06) 85%, transparent);
}

.spread-surface--warm{
  background:
    linear-gradient(180deg, rgba(248,241,232,.97), rgba(233,226,214,.96));
}

.spread-scroll{
  position:relative;
  height:100%;
  overflow:auto;
  padding:clamp(1.1rem, 1.3vw, 1.5rem) clamp(1.1rem, 2vw, 2rem) 1.25rem;
  scrollbar-width:thin;
}

.spread-scroll::-webkit-scrollbar{
  width:10px;
}

.spread-scroll::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.15);
  border-radius:999px;
}

.spread-header{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  margin-bottom:1.4rem;
  max-width:900px;
}

.spread-header--light .eyebrow,
.spread-header--light h2{
  color:var(--ink);
}

.eyebrow{
  margin:0;
  font-size:.78rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#8a6a34;
  font-weight:700;
}

.spread-header h2,
.hero-panel h1,
.section-heading h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.9rem, 3vw, 3.6rem);
  line-height:.96;
  letter-spacing:-.03em;
}

.display-title{
  margin:0 0 .8rem 0;
  font-family:var(--serif);
  font-size:clamp(3rem, 7vw, 6.7rem);
  line-height:.88;
  letter-spacing:-.055em;
  max-width:7ch;
}

.cover-subhead,
.hero-subtitle{
  margin:0 0 1rem 0;
  font-size:clamp(1.02rem, 1.4vw, 1.28rem);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:36rem;
}

.lede,
.body-copy,
.prose-card p,
.info-card p,
.service-card p,
.eeat-card p,
.metric-label,
.timeline-card p,
.step-card p,
.quote-card footer,
.proof-card p,
.reference-item span,
.connect-card p,
.faq-item p{
  font-size:1rem;
  line-height:1.72;
  margin:0;
}

.body-copy--light,
.spread-header--light + * .body-copy,
.spread-header--light + .ops-layout .body-copy,
.quote-card p{
  color:var(--ink-soft);
}

.cover-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.06fr) minmax(340px, .94fr);
  gap:clamp(1.4rem, 2vw, 2.5rem);
  align-items:center;
  min-height:100%;
}

.cover-copy{
  padding:clamp(1rem, 1.8vw, 2rem);
}

.cover-copy .eyebrow{
  color:var(--gold-strong);
}

.cover-visuals{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 210px;
  gap:1rem;
  align-items:end;
}

.hero-card{
  min-height:560px;
}

.visual-stack{
  display:grid;
  gap:1rem;
}

.image-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:#111;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:var(--shadow-xl);
}

.image-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.image-frame--portrait-xl{
  aspect-ratio:4 / 5;
}

.image-frame--portrait{
  aspect-ratio:4 / 5;
}

.image-frame--landscape{
  aspect-ratio:16 / 10;
}

.image-frame--offset{
  transform:translateY(-1rem);
}

.chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:1rem 0 1.35rem;
}

.chip{
  display:inline-flex;
  align-items:center;
  padding:.55rem .82rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:inherit;
  font-size:.84rem;
  letter-spacing:.02em;
}

.cover-actions,
.inline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:1.3rem;
}

.stat-ribbon{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.8rem;
  margin-top:1.5rem;
}

.mini-stat{
  padding:1rem 1rem 1.1rem;
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  backdrop-filter:blur(8px);
}

.mini-stat__label{
  display:block;
  margin-bottom:.35rem;
  color:var(--gold-strong);
  font-size:.74rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.open-hint{
  position:absolute;
  left:clamp(1.1rem, 2vw, 2rem);
  bottom:1.2rem;
  display:flex;
  align-items:center;
  gap:.7rem;
  font-size:.9rem;
  color:var(--ink-soft);
}

.hint-pulse{
  width:.75rem;
  height:.75rem;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 0 rgba(213,176,113,.6);
  animation:pulse 1.6s infinite;
}

@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(213,176,113,.65); }
  70%{ box-shadow:0 0 0 12px rgba(213,176,113,0); }
  100%{ box-shadow:0 0 0 0 rgba(213,176,113,0); }
}

.spread-number{
  position:absolute;
  right:1.4rem;
  bottom:1rem;
  font-family:var(--serif);
  font-size:1.05rem;
  letter-spacing:.22em;
  color:rgba(0,0,0,.45);
}

.spread-surface--cover .spread-number{
  color:rgba(255,255,255,.56);
}

.pill-label{
  display:inline-flex;
  align-items:center;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8b6a31;
  margin-bottom:.75rem;
  font-weight:700;
}

.eeat-layout,
.timeline-layout,
.ops-layout,
.proof-layout,
.deck-layout,
.connect-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(320px, .9fr);
  gap:clamp(1.2rem, 1.8vw, 2rem);
  align-items:start;
}

.eeat-grid,
.snapshot-grid,
.service-grid,
.proof-grid{
  display:grid;
  gap:1rem;
}

.eeat-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:1.2rem;
}

.eeat-card,
.info-card,
.service-card,
.metric-card,
.timeline-card,
.step-card,
.quote-card,
.proof-card,
.connect-card,
.prose-card,
.reference-item,
.gallery-card{
  border-radius:var(--radius-lg);
  border:1px solid rgba(20,24,29,.09);
  background:rgba(255,255,255,.76);
  box-shadow:var(--shadow-lg);
}

.eeat-card,
.info-card,
.service-card,
.metric-card,
.timeline-card,
.step-card,
.quote-card,
.connect-card,
.prose-card{
  padding:1.15rem 1.2rem 1.2rem;
}

.eeat-card h3,
.service-card h3,
.timeline-card h3,
.step-card h3,
.proof-card h3,
.connect-card h3{
  margin:0 0 .55rem 0;
  font-size:1.05rem;
  line-height:1.22;
}

.eeat-visuals,
.proof-visuals{
  display:grid;
  gap:1rem;
}

.metric-stack{
  display:grid;
  gap:1rem;
}

.metric-card{
  background:rgba(255,255,255,.84);
}

.metric-value{
  display:block;
  margin-bottom:.45rem;
  font-family:var(--serif);
  font-size:1.72rem;
  line-height:1;
  color:#13161c;
}

.timeline-column{
  display:grid;
  gap:1rem;
}

.timeline-card{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:1rem;
}

.timeline-year{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:.1rem;
  font-family:var(--serif);
  font-size:1.15rem;
  color:#8a6a34;
}

.route-card{
  padding:1.1rem 1.1rem 1rem;
  border-radius:var(--radius-lg);
  border:1px solid rgba(20,24,29,.08);
  background:rgba(255,255,255,.72);
  box-shadow:var(--shadow-lg);
}

.route-points{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font-size:.8rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#4b5158;
}

.route-card svg{
  width:100%;
  height:86px;
  overflow:visible;
  margin-top:.5rem;
}

.route-card path{
  fill:none;
  stroke:#b68c42;
  stroke-width:4;
  stroke-linecap:round;
  stroke-dasharray:10 12;
}

.timeline-visuals{
  display:grid;
  gap:1rem;
}

.ops-layout{
  grid-template-columns:minmax(0, 1.1fr) minmax(300px, .78fr);
}

.step-stack{
  display:grid;
  gap:1rem;
  margin-top:1.15rem;
}

.step-card{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:.95rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:var(--ink);
}

.step-number{
  width:3rem;
  height:3rem;
  display:grid;
  place-items:center;
  border-radius:1rem;
  background:rgba(213,176,113,.14);
  color:var(--gold-strong);
  font-family:var(--serif);
  font-size:1.15rem;
}

.quote-card{
  margin-top:1rem;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:var(--ink);
}

.quote-card p{
  margin-bottom:.7rem;
  font-family:var(--serif);
  font-size:1.35rem;
  line-height:1.35;
  color:var(--ink);
}

.proof-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:1.1rem;
}

.proof-card{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  padding:1.15rem 1.15rem 1.25rem;
  background:rgba(255,255,255,.88);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.proof-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(0,0,0,.16);
  border-color:rgba(20,24,29,.12);
}

.proof-card__tag{
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8a6a34;
  font-weight:700;
}

.deck-layout{
  grid-template-columns:minmax(300px, .82fr) minmax(0, 1.1fr);
  align-items:center;
}

.service-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:1.2rem;
}

.service-card{
  background:rgba(255,255,255,.74);
}

.gallery-grid{
  display:grid;
  gap:1rem;
}

.gallery-grid--four{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.gallery-card{
  overflow:hidden;
  background:rgba(255,255,255,.86);
}

.gallery-card img{
  aspect-ratio:4 / 5;
  object-fit:cover;
}

.gallery-card figcaption{
  padding:.95rem 1rem 1.05rem;
  font-size:.92rem;
  color:#30343c;
}

.gallery-card--dark{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
}

.gallery-card--dark figcaption{
  color:var(--ink-soft);
}

.contact-sheet-strip{
  margin-top:1.25rem;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 300px;
  gap:1rem;
  align-items:center;
}

.contact-sheet-copy{
  padding:1rem 1rem 1rem 1.05rem;
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:var(--ink-soft);
}

.connect-layout{
  align-items:start;
}

.connect-copy{
  display:grid;
  gap:1rem;
}

.faq-stack{
  display:grid;
  gap:.8rem;
}

.faq-stack--wide{
  max-width:none;
}

.faq-item{
  border-radius:var(--radius-md);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.84);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}

.faq-item summary{
  list-style:none;
  padding:1rem 1.15rem;
  font-weight:700;
  cursor:pointer;
  position:relative;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary::after{
  content:"+";
  position:absolute;
  right:1rem;
  top:50%;
  transform:translateY(-50%);
  color:#8a6a34;
  font-size:1.35rem;
  font-weight:500;
}

.faq-item[open] summary::after{
  content:"–";
}

.faq-item p{
  padding:0 1.15rem 1rem;
  color:#434a53;
}

.book-controls{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:min(96vw, 1480px);
  margin-top:1.25rem;
  z-index:9;
}

.nav-btn{
  min-width:120px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.95rem 1.1rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:var(--ink);
  backdrop-filter:blur(12px);
  transition:background .2s ease, transform .2s ease, border-color .2s ease;
}

.nav-btn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.22);
}

.nav-btn small{
  font-size:.84rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
}

.status-block{
  flex:1;
  min-width:0;
  padding:.9rem 1rem 1rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  backdrop-filter:blur(14px);
}

.status-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  flex-wrap:wrap;
  font-size:.96rem;
}

.status-divider{
  opacity:.55;
}

.current-title{
  color:var(--ink-soft);
}

.progress-track{
  width:100%;
  height:6px;
  margin-top:.85rem;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
}

.progress-fill{
  height:100%;
  width:10%;
  background:linear-gradient(90deg, #d7b16c, #9f7a37);
  border-radius:inherit;
  transition:width .45s ease;
}

.keyboard-hint{
  width:min(96vw, 1480px);
  margin:.75rem auto 0;
  text-align:center;
  color:var(--ink-muted);
  font-size:.9rem;
}

kbd{
  padding:.18rem .38rem;
  border-radius:.42rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:.88em;
}

.toc-panel{
  position:fixed;
  inset:0 0 0 auto;
  width:min(420px, 92vw);
  z-index:30;
  transform:translateX(105%);
  transition:transform .42s cubic-bezier(.16,1,.3,1);
  background:rgba(8,10,12,.84);
  backdrop-filter:blur(22px);
  border-left:1px solid rgba(255,255,255,.1);
  box-shadow:-30px 0 80px rgba(0,0,0,.45);
}

.toc-panel.is-open{
  transform:translateX(0);
}

.toc-panel__inner{
  height:100%;
  overflow:auto;
  padding:1.4rem 1.2rem 1.5rem;
}

.toc-head h2{
  margin:.25rem 0 .55rem;
  font-family:var(--serif);
  font-size:2.1rem;
  line-height:1;
}

.toc-head p:last-child{
  color:var(--ink-soft);
  line-height:1.65;
}

.toc-list{
  display:grid;
  gap:.85rem;
  margin-top:1.3rem;
}

.toc-item{
  display:grid;
  grid-template-columns:98px 1fr;
  gap:.8rem;
  padding:.7rem;
  border-radius:var(--radius-md);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);
  color:var(--ink);
  text-align:left;
  transition:background .2s ease, transform .2s ease, border-color .2s ease;
}

.toc-item:hover{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.16);
  transform:translateY(-1px);
}

.toc-item.is-active{
  border-color:rgba(213,176,113,.45);
  background:rgba(213,176,113,.08);
}

.toc-item__thumb{
  width:98px;
  aspect-ratio:4 / 3;
  border-radius:1rem;
  overflow:hidden;
  background:#111;
}

.toc-item__thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.toc-item__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.25rem;
  min-width:0;
}

.toc-item__num{
  color:var(--gold);
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.toc-item__title{
  font-weight:700;
  line-height:1.3;
}

.toc-item__subtitle{
  color:var(--ink-muted);
  font-size:.92rem;
  line-height:1.45;
}

.toc-links{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.2rem;
}

.static-main{
  position:relative;
  z-index:2;
  width:min(1180px, calc(100% - 2rem));
  margin:0 auto;
  padding:1rem 0 4rem;
}

.hero-panel{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(300px, .82fr);
  gap:clamp(1.2rem, 2vw, 2rem);
  align-items:center;
  padding:1rem 0 0;
  min-height:calc(100vh - 8rem);
}

.hero-panel__copy{
  padding:1rem 0;
}

.hero-panel__copy h1{
  margin:.2rem 0 .9rem;
}

.hero-panel__visual{
  justify-self:end;
  width:min(100%, 510px);
}

.section-shell{
  padding:2.4rem 0;
}

.section-shell--alt{
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.section-heading{
  margin-bottom:1.15rem;
  max-width:860px;
}

.snapshot-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.info-card,
.prose-card,
.reference-item{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  color:var(--ink);
}

.info-card p,
.prose-card p,
.reference-item span{
  color:var(--ink-soft);
}

.prose-card{
  display:grid;
  gap:1rem;
}

.reference-list{
  display:grid;
  gap:.85rem;
}

.reference-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.1rem;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}

.reference-item:hover{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.18);
  transform:translateY(-1px);
}

.reference-item strong{
  display:block;
  margin-bottom:.2rem;
}

.bio-variants{
  display:grid;
  gap:1rem;
}

.contact-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.site-footer{
  position:relative;
  z-index:2;
  text-align:center;
  padding:1.8rem 1rem 3rem;
  color:var(--ink-muted);
}

@media (max-width: 1180px){
  .cover-layout,
  .eeat-layout,
  .timeline-layout,
  .ops-layout,
  .proof-layout,
  .deck-layout,
  .connect-layout,
  .hero-panel{
    grid-template-columns:1fr;
  }

  .cover-visuals{
    grid-template-columns:minmax(0, 1fr) 180px;
  }

  .hero-card{
    min-height:460px;
  }

  .gallery-grid--four{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .snapshot-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .contact-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .hero-panel__visual{
    justify-self:start;
  }
}

@media (max-width: 860px){
  body.page-home{
    overflow:auto;
  }

  .topbar,
  .topbar--floating{
    position:sticky;
    top:0;
    background:rgba(8,10,12,.86);
    backdrop-filter:blur(16px);
  }

  .book-stage{
    min-height:auto;
    padding:1rem 0 4rem;
  }

  .book-frame,
  .book-controls,
  .keyboard-hint{
    width:min(100vw, 100%);
    padding-inline:.75rem;
  }

  .book{
    height:auto;
    min-height:0;
  }

  .book-edge{
    display:none;
  }

  .spread{
    position:relative;
    inset:auto;
    opacity:0;
    pointer-events:none;
    transform:none;
    filter:none;
    display:none;
  }

  .spread.is-current{
    display:block;
    opacity:1;
    pointer-events:auto;
  }

  .spread.is-prev,
  .spread.is-next,
  .spread.is-leaving-forward,
  .spread.is-leaving-backward,
  .spread.is-entering-forward,
  .spread.is-entering-backward{
    transform:none;
  }

  .spread-surface{
    min-height:0;
    border-radius:26px;
  }

  .spread-surface::before{
    display:none;
  }

  .spread-scroll{
    height:auto;
    min-height:0;
    overflow:visible;
    padding:1rem 1rem 3.4rem;
  }

  .display-title{
    font-size:clamp(2.5rem, 14vw, 4rem);
  }

  .cover-visuals{
    grid-template-columns:1fr;
  }

  .visual-stack{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .stat-ribbon,
  .eeat-grid,
  .proof-grid,
  .service-grid,
  .snapshot-grid,
  .contact-grid{
    grid-template-columns:1fr;
  }

  .timeline-card,
  .step-card{
    grid-template-columns:1fr;
  }

  .gallery-grid--four{
    grid-template-columns:1fr;
  }

  .contact-sheet-strip{
    grid-template-columns:1fr;
  }

  .book-controls{
    position:sticky;
    bottom:.65rem;
    margin-top:1rem;
    padding-bottom:.4rem;
  }

  .status-row{
    justify-content:flex-start;
  }
}

@media (max-width: 640px){
  .topnav{
    width:100%;
    justify-content:flex-start;
  }

  .topnav a,
  .topnav button{
    padding:.7rem .9rem;
    font-size:.94rem;
  }

  .book-controls{
    flex-wrap:wrap;
  }

  .nav-btn{
    flex:1 1 40%;
    min-width:0;
  }

  .status-block{
    order:-1;
    width:100%;
    border-radius:24px;
  }

  .hero-panel{
    min-height:auto;
  }

  .brand-kicker{
    display:none;
  }
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
  }
}