@view-transition { navigation: auto; }

:root {
  color-scheme: light;
  --paper: #f4efe5;
  --paper-soft: #faf7f1;
  --paper-deep: #e8dfcf;
  --ink: #1d1a17;
  --ink-soft: #5d574f;
  --wine: #642b38;
  --wine-deep: #35151d;
  --thread: #873646;
  --gold: #ae854a;
  --gold-light: #d5b474;
  --line: rgba(46, 38, 31, .16);
  --line-dark: rgba(255, 255, 255, .14);
  --shadow: 0 22px 70px rgba(41, 29, 20, .13);
  --shadow-soft: 0 14px 36px rgba(41, 29, 20, .08);
  --radius: 1.2rem;
  --radius-sm: .75rem;
  --container: min(1180px, calc(100vw - 2rem));
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --header-height: 82px;
  --scroll-progress: 0;
}

* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1.5rem);
  background: var(--paper);
}
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(66, 50, 37, .025) 50%, transparent calc(50% + 1px)),
    var(--paper);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  opacity: .18;
  background-image: url("../img/paper-texture.webp");
  background-size: 512px 512px;
  mix-blend-mode: multiply;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: rgba(135, 54, 70, .2); }
:focus-visible { outline: 2px solid var(--thread); outline-offset: 4px; }

h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.025em;
}
h1 { font-size: clamp(3.6rem, 8vw, 8.4rem); }
h2 { font-size: clamp(2.7rem, 5.7vw, 6.1rem); }
h3 { font-size: clamp(1.55rem, 2.3vw, 2.25rem); line-height: 1.08; }
small, .eyebrow, .section-label {
  font-family: var(--sans);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  font-weight: 680;
}
strong { font-weight: 700; }

.container { width: var(--container); margin-inline: auto; }
.narrow { width: min(760px, calc(100vw - 2rem)); margin-inline: auto; }
.section { position: relative; padding-block: clamp(5rem, 10vw, 10rem); }
.section-compact { padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.paper-surface {
  background: rgba(250, 247, 241, .75);
  border-block: 1px solid var(--line);
}
.dark-surface { color: var(--paper-soft); background: var(--wine-deep); }
.lead {
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.45;
  color: var(--ink-soft);
}
.dark-surface .lead { color: rgba(255,255,255,.72); }
.muted { color: var(--ink-soft); }
.gold { color: var(--gold); }
.wine { color: var(--wine); }

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 9999;
  padding: .75rem 1rem;
  color: #fff;
  background: var(--wine-deep);
  border-radius: .4rem;
  transform: translateY(-160%);
  transition: transform .25s ease;
}
.skip-link:focus { transform: none; }

.scroll-thread {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 3px;
  height: 100vh;
  background: rgba(100, 43, 56, .12);
  pointer-events: none;
}
.scroll-thread span {
  display: block;
  width: 100%;
  height: calc(var(--scroll-progress) * 100%);
  background: linear-gradient(var(--thread), var(--gold));
  transform-origin: top;
  box-shadow: 0 0 10px rgba(135,54,70,.25);
}
.scroll-thread::after {
  content: "";
  position: absolute;
  left: -4px;
  top: calc(var(--scroll-progress) * 100% - 5px);
  width: 11px;
  height: 11px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: var(--paper);
  transition: top .05s linear;
}

.site-header {
  position: fixed;
  z-index: 900;
  inset: 0 0 auto;
  height: var(--header-height);
  color: var(--ink);
  transition: background .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease), color .4s var(--ease);
}
.site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  opacity: 0;
  background: var(--line);
  transition: opacity .35s ease;
}
.site-header.is-scrolled {
  height: 68px;
  background: color-mix(in srgb, var(--paper-soft) 92%, transparent);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  box-shadow: 0 8px 30px rgba(31, 23, 16, .05);
}
.site-header.is-scrolled::after { opacity: 1; }
.header-inner {
  height: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}
.brand { width: min(230px, 25vw); color: var(--wine); transition: transform .35s var(--ease); }
.brand:hover { transform: translateY(-1px); }
.nav {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 2.2rem);
}
.nav a {
  position: relative;
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -.45rem;
  height: 1px;
  background: var(--thread);
  transition: right .4s var(--ease);
}
.nav a:hover::after, .nav a[aria-current="page"]::after { right: 0; }
.header-cta { white-space: nowrap; }
.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(100,43,56,.08);
  cursor: pointer;
}
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after {
  display: block;
  width: 18px;
  height: 1.5px;
  margin: auto;
  background: currentColor;
  transition: transform .3s ease, opacity .3s ease;
}
.menu-toggle span { position: relative; }
.menu-toggle span::before, .menu-toggle span::after { content:""; position:absolute; left:0; }
.menu-toggle span::before { top:-6px; }
.menu-toggle span::after { top:6px; }
.menu-open .menu-toggle span { background: transparent; }
.menu-open .menu-toggle span::before { transform: translateY(6px) rotate(45deg); }
.menu-open .menu-toggle span::after { transform: translateY(-6px) rotate(-45deg); }

.button, .button-outline, .button-soft, .button-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  min-height: 50px;
  padding: .85rem 1.3rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .79rem;
  font-weight: 720;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.button {
  color: #fff;
  background: var(--wine);
  box-shadow: 0 12px 28px rgba(100,43,56,.18);
}
.button:hover { transform: translateY(-3px); box-shadow: 0 17px 35px rgba(100,43,56,.22); }
.button-outline { color: var(--ink); border-color: var(--line); background: rgba(255,255,255,.25); }
.button-outline:hover { color: var(--wine); border-color: rgba(100,43,56,.45); transform: translateY(-2px); }
.button-soft { color: var(--wine); background: rgba(100,43,56,.08); }
.button-soft:hover { background: rgba(100,43,56,.13); transform: translateY(-2px); }
.button-text { min-height: auto; padding: .25rem 0; border-radius: 0; color: var(--wine); }
.button-text::after { content:"→"; transition: transform .3s var(--ease); }
.button-text:hover::after { transform: translateX(.35rem); }
.button[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.icon-arrow { width: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay: var(--delay, 0ms);
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-left { opacity: 0; transform: translateX(-34px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-left.is-visible { opacity: 1; transform: none; }
.reveal-right { opacity: 0; transform: translateX(34px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-right.is-visible { opacity: 1; transform: none; }

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr);
  align-items: end;
  gap: 2rem;
  margin-bottom: clamp(3rem, 6vw, 6rem);
}
.section-heading h2 { margin-bottom: 0; }
.section-heading p { max-width: 43rem; margin-bottom: .4rem; color: var(--ink-soft); }
.section-label {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.2rem;
  color: var(--wine);
}
.section-label::before { content:""; width: 2.6rem; height: 1px; background: currentColor; }
.dark-surface .section-label { color: var(--gold-light); }
.section-number {
  font-family: var(--serif);
  font-size: 1rem;
  color: var(--gold);
  font-variant-numeric: oldstyle-nums;
}

.stitched-rule {
  position: relative;
  height: 2.5rem;
  margin: 1rem 0 2rem;
  overflow: hidden;
}
.stitched-rule svg { width: min(420px, 100%); height: 100%; }
.stitched-rule path:first-child {
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--thread-progress, 0));
  transition: stroke-dashoffset .1s linear;
}

/* Hero */
.home-hero {
  min-height: 100svh;
  padding-top: calc(var(--header-height) + 2rem);
  display: grid;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.8), transparent 38%),
    linear-gradient(135deg, var(--paper-soft), var(--paper) 65%, #ebe1d2);
}
.home-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 auto 0 49.75%;
  width: 1px;
  background: linear-gradient(transparent, rgba(65,47,34,.16) 20%, rgba(65,47,34,.16) 80%, transparent);
  box-shadow: 14px 0 28px rgba(45,34,24,.05), -14px 0 28px rgba(255,255,255,.8);
}
.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(430px, 1.08fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: center;
  padding-block: clamp(3rem, 7vw, 6rem);
}
.hero-copy { position: relative; }
.hero-kicker {
  display: flex;
  align-items: center;
  gap: .9rem;
  margin-bottom: 1.7rem;
  color: var(--wine);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.hero-kicker::before { content:""; width: 2rem; height: 1px; background: var(--wine); }
.hero-title { margin-bottom: 2rem; max-width: 7.7ch; }
.hero-title .line { display: block; overflow: hidden; }
.hero-title .line > span { display: block; transform: translateY(105%); animation: titleRise 1s var(--ease) forwards; animation-delay: var(--title-delay, .2s); }
.hero-title em { color: var(--wine); font-style: italic; font-weight: 400; }
@keyframes titleRise { to { transform: none; } }
.hero-text { max-width: 39rem; color: var(--ink-soft); font-size: clamp(1.05rem, 1.45vw, 1.28rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.1rem; }
.hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.4rem;
  margin: 2.2rem 0 0;
  padding: 0;
  list-style: none;
  color: var(--ink-soft);
  font-size: .82rem;
}
.hero-facts li { display: inline-flex; align-items: center; gap: .5rem; }
.hero-facts li::before { content:""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }

.book-portrait {
  position: relative;
  width: min(100%, 610px);
  margin-left: auto;
  perspective: 1200px;
}
.book-shell {
  position: relative;
  aspect-ratio: 1.02 / .82;
  transform-style: preserve-3d;
  transform: rotateX(calc(var(--book-y, 0) * -3deg)) rotateY(calc(var(--book-x, 0) * 5deg));
  transition: transform .22s ease-out;
  filter: drop-shadow(0 34px 34px rgba(42,29,20,.2));
}
.book-cover-frame {
  position: absolute;
  z-index: 3;
  inset: 2% 2% 4% 7%;
  overflow: hidden;
  border-radius: .65rem 1.4rem 1.4rem .65rem;
  background: var(--wine-deep);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.12),
    inset 18px 0 25px rgba(0,0,0,.35),
    0 1px 0 rgba(255,255,255,.45);
  transform: translateZ(25px);
}
.book-cover-frame::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background: linear-gradient(100deg, rgba(22,8,11,.5), transparent 24%, transparent 72%, rgba(0,0,0,.25));
  pointer-events:none;
}
.book-cover-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 54% 50%; transform: scale(1.04); }
.book-spine {
  position: absolute;
  z-index: 4;
  left: 1.5%;
  top: 7%;
  bottom: 9%;
  width: 10%;
  border-radius: 1rem 0 0 1rem;
  background: linear-gradient(90deg, #3b171f, #71303d 48%, #35151d);
  transform: translateZ(38px) rotateY(-8deg);
  box-shadow: inset -5px 0 8px rgba(0,0,0,.25), 5px 2px 10px rgba(0,0,0,.18);
}
.book-spine::before {
  content:"";
  position:absolute;
  left:50%; top:7%; bottom:7%;
  width:1px;
  background: repeating-linear-gradient(to bottom, var(--gold-light) 0 6px, transparent 6px 15px);
  opacity:.85;
}
.book-pages {
  position:absolute;
  z-index: 1;
  inset: 7% -1% 0 9%;
  border-radius: .3rem 1.2rem 1.2rem .3rem;
  background: repeating-linear-gradient(to bottom, #eee5d5 0 2px, #d6c7ae 2px 3px);
  transform: translateZ(0) translateY(17px);
  box-shadow: 10px 18px 28px rgba(30,20,14,.18);
}
.book-label {
  position:absolute;
  z-index:5;
  right:-1rem;
  bottom:1rem;
  width: 9.2rem;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  text-align:center;
  padding:1rem;
  border:1px solid rgba(174,133,74,.55);
  border-radius:50%;
  color:var(--wine-deep);
  background: color-mix(in srgb, var(--paper-soft) 94%, transparent);
  backdrop-filter:blur(8px);
  font-family:var(--serif);
  font-size:.92rem;
  line-height:1.25;
  box-shadow:var(--shadow-soft);
  transform:translateZ(65px) rotate(4deg);
}
.book-label strong { display:block; font-size:1.5rem; color:var(--wine); }
.book-thread {
  position:absolute;
  z-index:6;
  left:-5%;
  right:12%;
  bottom:-7%;
  color:var(--thread);
  transform:translateZ(70px) rotate(-2deg);
}
.hero-scroll {
  position:absolute;
  z-index:3;
  left:50%;
  bottom:1.5rem;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.hero-scroll i { width:1px; height:36px; background:var(--line); overflow:hidden; }
.hero-scroll i::after { content:""; display:block; width:100%; height:45%; background:var(--wine); animation:scrollDrop 1.8s ease-in-out infinite; }
@keyframes scrollDrop { 0% { transform:translateY(-120%); } 70%,100% { transform:translateY(250%); } }

/* Intro / material cards */
.intro-manifesto { overflow:hidden; }
.manifesto-grid {
  display:grid;
  grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);
  gap:clamp(3rem,8vw,9rem);
  align-items:start;
}
.manifesto-title { position:sticky; top:calc(var(--header-height) + 2.5rem); }
.manifesto-title h2 { font-size:clamp(3rem,6vw,6.4rem); }
.manifesto-copy { padding-top:clamp(1rem,6vw,6rem); }
.manifesto-copy .lead { color:var(--ink); font-size:clamp(1.5rem,2.6vw,2.35rem); }
.manifesto-copy p:not(.lead) { max-width:44rem; color:var(--ink-soft); }
.material-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:3rem;
}
.material-card {
  position:relative;
  min-height:245px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,255,255,.34);
  overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .5s var(--ease);
}
.material-card::after {
  content:"";
  position:absolute;
  right:-3rem;
  bottom:-3rem;
  width:9rem;
  height:9rem;
  border-radius:50%;
  border:1px solid rgba(100,43,56,.1);
  box-shadow:0 0 0 18px rgba(100,43,56,.03),0 0 0 36px rgba(100,43,56,.02);
}
.material-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-soft); background:rgba(255,255,255,.55); }
.material-card svg { width:2.2rem; color:var(--wine); }
.material-card h3 { font-size:1.65rem; margin-bottom:.5rem; }
.material-card p { margin:0; color:var(--ink-soft); font-size:.92rem; }

/* Scroll chapters */
.craft-story { background:var(--paper-soft); border-block:1px solid var(--line); }
.story-layout {
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:clamp(3rem,8vw,8rem);
}
.story-nav {
  position:sticky;
  top:calc(var(--header-height) + 2rem);
  align-self:start;
  min-height:calc(100svh - var(--header-height) - 4rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.story-nav h2 { font-size:clamp(3.1rem,6vw,6.5rem); }
.story-steps { margin:2.5rem 0 0; padding:0; list-style:none; border-left:1px solid var(--line); }
.story-steps button {
  position:relative;
  width:100%;
  display:grid;
  grid-template-columns:2rem 1fr;
  gap:.75rem;
  align-items:start;
  padding:1rem 0 1rem 1.4rem;
  border:0;
  text-align:left;
  background:transparent;
  color:var(--ink-soft);
  cursor:pointer;
  transition:color .3s ease;
}
.story-steps button::before {
  content:"";
  position:absolute;
  left:-4px;
  top:1.45rem;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--paper-soft);
  border:1px solid var(--line);
  transition:background .3s ease, transform .3s ease, border-color .3s ease;
}
.story-steps button span:first-child { font-family:var(--serif); color:var(--gold); }
.story-steps button strong { display:block; color:inherit; font-size:.88rem; letter-spacing:.05em; text-transform:uppercase; }
.story-steps button small { display:block; margin-top:.3rem; text-transform:none; letter-spacing:0; font-weight:400; font-size:.82rem; line-height:1.4; }
.story-steps button.is-active { color:var(--wine); }
.story-steps button.is-active::before { background:var(--wine); border-color:var(--wine); transform:scale(1.4); }
.story-panels { display:grid; gap:clamp(4rem,8vw,8rem); padding-block:3rem; }
.story-panel {
  min-height:78svh;
  display:grid;
  align-content:center;
}
.story-visual {
  position:relative;
  min-height:clamp(440px,62vw,720px);
  border-radius:1.6rem;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#ddd;
}
.story-visual img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transform:scale(1.04) translateY(calc(var(--parallax,0) * 18px)); transition:transform .15s linear; }
.story-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(27,17,13,.72)); }
.story-caption {
  position:absolute;
  z-index:2;
  left:clamp(1.5rem,4vw,3.5rem);
  right:clamp(1.5rem,4vw,3.5rem);
  bottom:clamp(1.5rem,4vw,3.5rem);
  color:#fff;
}
.story-caption .eyebrow { color:var(--gold-light); }
.story-caption h3 { max-width:12ch; margin:.6rem 0 1rem; font-size:clamp(2.4rem,5vw,5rem); }
.story-caption p { max-width:38rem; margin:0; color:rgba(255,255,255,.78); }

/* Reliure feature */
.feature-split {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:center;
}
.feature-media {
  position:relative;
  min-height:650px;
}
.feature-media .image-main {
  position:absolute;
  inset:0 12% 8% 0;
  border-radius:1.4rem;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.feature-media .image-main img { width:100%; height:100%; object-fit:cover; }
.feature-media .image-small {
  position:absolute;
  right:0;
  bottom:0;
  width:44%;
  aspect-ratio:.9;
  border:8px solid var(--paper);
  border-radius:1rem;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.feature-media .image-small img { width:100%; height:100%; object-fit:cover; }
.feature-copy h2 { max-width:9ch; }
.feature-list { display:grid; gap:0; margin:2rem 0; border-top:1px solid var(--line); }
.feature-list article { display:grid; grid-template-columns:2rem 1fr; gap:1rem; padding:1.15rem 0; border-bottom:1px solid var(--line); }
.feature-list span { font-family:var(--serif); color:var(--gold); }
.feature-list h3 { margin:0 0 .25rem; font-family:var(--sans); font-size:.9rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.feature-list p { margin:0; color:var(--ink-soft); font-size:.9rem; }

/* Dorure */
.gilding-section { overflow:hidden; background:#191310; }
.gilding-section::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.15;
  background-image:radial-gradient(circle at 20% 20%,rgba(213,180,116,.7) 0 1px,transparent 1.2px),radial-gradient(circle at 70% 45%,rgba(213,180,116,.45) 0 1px,transparent 1.2px);
  background-size:83px 83px,117px 117px;
}
.gilding-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:center;
}
.gilding-copy h2 { max-width:8ch; color:#fff; }
.gilding-copy h2 em {
  position:relative;
  color:transparent;
  font-style:normal;
  background:linear-gradient(90deg,#8d6736,#f3d597 45%,#9b723b 75%);
  background-size:220% 100%;
  background-clip:text;
  -webkit-background-clip:text;
  animation:goldSweep 7s linear infinite;
}
@keyframes goldSweep { to { background-position:-220% 0; } }
.gilding-copy p { color:rgba(255,255,255,.68); }
.gilding-media {
  position:relative;
  min-height:620px;
  border-radius:1.5rem;
  overflow:hidden;
  box-shadow:0 32px 80px rgba(0,0,0,.42);
}
.gilding-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.04) translateY(calc(var(--parallax,0) * 14px)); }
.gilding-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,13,10,.25),transparent 60%),linear-gradient(180deg,transparent 65%,rgba(0,0,0,.4)); }
.gold-specs { display:grid; grid-template-columns:repeat(3,1fr); margin-top:2.5rem; border-block:1px solid var(--line-dark); }
.gold-specs div { padding:1.2rem 1rem; border-right:1px solid var(--line-dark); }
.gold-specs div:last-child { border-right:0; }
.gold-specs strong { display:block; color:var(--gold-light); font-family:var(--serif); font-size:1.35rem; }
.gold-specs span { font-size:.74rem; color:rgba(255,255,255,.55); }

/* Types */
.book-types-grid { display:grid; grid-template-columns:repeat(7,1fr); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.24); }
.book-type {
  min-height:235px;
  padding:1.2rem .9rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
  text-align:center;
  border-right:1px solid var(--line);
  transition:background .4s ease, transform .4s var(--ease);
}
.book-type:last-child { border-right:0; }
.book-type:hover { background:var(--paper-soft); transform:translateY(-4px); }
.book-miniature {
  position:relative;
  width:64px;
  height:92px;
  border-radius:2px 7px 7px 2px;
  background:linear-gradient(135deg,var(--wine-deep),var(--wine));
  box-shadow:inset 5px 0 7px rgba(0,0,0,.25),4px 7px 14px rgba(42,29,20,.16);
  transform:rotate(var(--book-rotate,-2deg));
}
.book-miniature::before { content:""; position:absolute; left:8px; top:8px; bottom:8px; width:1px; background:rgba(213,180,116,.7); }
.book-miniature::after { content:""; position:absolute; inset:15px 13px; border:1px solid rgba(213,180,116,.65); }
.book-type:nth-child(even) .book-miniature { background:linear-gradient(135deg,#2d3c38,#566b63); --book-rotate:2deg; }
.book-type:nth-child(3n) .book-miniature { background:linear-gradient(135deg,#725532,#ae8a59); --book-rotate:-1deg; }
.book-type strong { font-family:var(--serif); font-size:1rem; line-height:1.1; }
.book-type small { color:var(--ink-soft); letter-spacing:0; text-transform:none; font-weight:400; }

/* Pricing teaser */
.price-teaser {
  color:#fff;
  background:
    radial-gradient(circle at 80% 0,rgba(174,133,74,.18),transparent 35%),
    var(--wine-deep);
  overflow:hidden;
}
.price-teaser::after {
  content:"";
  position:absolute;
  top:-25%; right:-6%;
  width:38vw; aspect-ratio:1;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 4vw rgba(255,255,255,.025),0 0 0 8vw rgba(255,255,255,.018);
}
.price-teaser-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.85fr) minmax(430px,1.15fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.price-teaser h2 { max-width:9ch; }
.price-teaser p { color:rgba(255,255,255,.68); }
.price-ledger {
  position:relative;
  padding:clamp(1.6rem,4vw,3rem);
  border:1px solid rgba(255,255,255,.14);
  border-radius:1.4rem;
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(10px);
  box-shadow:0 35px 80px rgba(0,0,0,.2);
}
.price-ledger::before { content:""; position:absolute; left:2rem; top:0; bottom:0; width:1px; background:rgba(213,180,116,.28); }
.ledger-row { display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:baseline; padding:1.1rem 0 1.1rem 1.6rem; border-bottom:1px dashed rgba(255,255,255,.16); }
.ledger-row:last-of-type { border-bottom:0; }
.ledger-row span { color:rgba(255,255,255,.72); }
.ledger-row strong { font-family:var(--serif); color:var(--gold-light); font-size:clamp(1.6rem,3vw,2.4rem); font-weight:500; }
.ledger-total { margin-top:1.3rem; padding:1.4rem 1.4rem 1.4rem 1.6rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; border-radius:.8rem; background:var(--gold-light); color:var(--wine-deep); }
.ledger-total strong { font-family:var(--serif); font-size:2rem; }

/* Workshop */
.workshop-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.workshop-copy h2 { max-width:9ch; }
.workshop-collage { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:240px 240px; gap:.8rem; }
.workshop-collage figure { margin:0; overflow:hidden; border-radius:1rem; box-shadow:var(--shadow-soft); }
.workshop-collage figure:first-child { grid-row:1 / 3; }
.workshop-collage img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.workshop-collage figure:hover img { transform:scale(1.045); }

/* FAQ */
.faq-layout { display:grid; grid-template-columns:minmax(250px,.55fr) minmax(0,1.45fr); gap:clamp(3rem,8vw,8rem); }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary {
  position:relative;
  list-style:none;
  cursor:pointer;
  padding:1.35rem 3.2rem 1.35rem 0;
  font-family:var(--serif);
  font-size:clamp(1.2rem,2vw,1.55rem);
  line-height:1.25;
}
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::before, .faq-list summary::after { content:""; position:absolute; right:.5rem; top:50%; width:16px; height:1px; background:var(--wine); transition:transform .3s ease; }
.faq-list summary::after { transform:rotate(90deg); }
.faq-list details[open] summary::after { transform:rotate(0); }
.faq-answer { max-width:52rem; padding:0 3rem 1.5rem 0; color:var(--ink-soft); }

/* Contact strip + footer */
.contact-strip {
  padding-block:clamp(4rem,8vw,7rem);
  color:#fff;
  background:var(--wine);
}
.contact-strip-grid { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2rem; }
.contact-strip h2 { margin:0; max-width:13ch; font-size:clamp(2.7rem,5vw,5.7rem); }
.contact-strip p { max-width:36rem; margin:1rem 0 0; color:rgba(255,255,255,.72); }
.contact-strip .button { color:var(--wine-deep); background:var(--paper-soft); box-shadow:none; }
.site-footer { padding:4rem 0 1.5rem; color:rgba(255,255,255,.72); background:#171411; }
.footer-grid { display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:3rem; }
.footer-brand { color:var(--gold-light); width:220px; }
.footer-column h3 { margin-bottom:1rem; color:#fff; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.footer-column a, .footer-column span { display:block; padding:.22rem 0; font-size:.88rem; }
.footer-column a:hover { color:var(--gold-light); }
.footer-bottom { display:flex; justify-content:space-between; gap:2rem; margin-top:3rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.1); font-size:.75rem; }
.footer-bottom div { display:flex; flex-wrap:wrap; gap:1.2rem; }

/* Inner page hero */
.page-hero {
  position:relative;
  min-height:72svh;
  padding-top:calc(var(--header-height) + 3rem);
  display:grid;
  align-items:end;
  overflow:hidden;
  background:var(--paper-soft);
  border-bottom:1px solid var(--line);
}
.page-hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr); gap:clamp(3rem,7vw,7rem); align-items:end; padding-bottom:clamp(4rem,8vw,7rem); }
.page-hero-copy { padding-top:4rem; }
.page-hero-copy h1 { max-width:8ch; margin-bottom:1.5rem; font-size:clamp(4rem,8vw,8rem); }
.page-hero-copy p { max-width:42rem; color:var(--ink-soft); font-size:clamp(1.1rem,1.6vw,1.35rem); }
.page-hero-media { position:relative; align-self:stretch; min-height:540px; margin-top:2rem; overflow:hidden; border-radius:1.3rem 1.3rem 0 0; box-shadow:var(--shadow); }
.page-hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(20,14,10,.28)); }
.page-hero-note { position:absolute; right:1.4rem; bottom:1.4rem; z-index:2; max-width:260px; padding:1rem; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:.8rem; background:rgba(20,14,10,.42); backdrop-filter:blur(8px); font-size:.82rem; }
.page-hero-ornament { position:absolute; left:-7vw; bottom:-12vw; width:31vw; aspect-ratio:1; border:1px solid rgba(100,43,56,.08); border-radius:50%; box-shadow:0 0 0 4vw rgba(100,43,56,.025),0 0 0 8vw rgba(100,43,56,.018); }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.2rem; color:var(--ink-soft); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }
.breadcrumbs a:hover { color:var(--wine); }
.breadcrumbs span::before { content:"/"; margin-right:.5rem; color:var(--gold); }

.editorial-grid { display:grid; grid-template-columns:minmax(250px,.6fr) minmax(0,1.4fr); gap:clamp(3rem,8vw,8rem); }
.editorial-aside { position:sticky; top:calc(var(--header-height) + 2rem); align-self:start; }
.editorial-aside h2 { font-size:clamp(2.7rem,5vw,5.5rem); }
.editorial-content { max-width:780px; }
.editorial-content h2 { margin-top:3.5rem; font-size:clamp(2.2rem,4vw,4rem); }
.editorial-content h2:first-child { margin-top:0; }
.editorial-content h3 { margin-top:2.5rem; font-size:1.8rem; }
.editorial-content p, .editorial-content li { color:var(--ink-soft); }
.editorial-content .lead { color:var(--ink); }
.editorial-content ul { padding-left:1.2rem; }
.editorial-content blockquote { margin:3rem 0; padding:1.5rem 0 1.5rem 2rem; border-left:2px solid var(--gold); font-family:var(--serif); font-size:1.6rem; color:var(--wine); }

.anatomy-book {
  position:relative;
  margin:3rem 0;
  padding:clamp(1.5rem,4vw,3rem);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,255,255,.35);
  overflow:hidden;
}
.anatomy-diagram { display:grid; grid-template-columns:1fr 1fr; gap:1px; min-height:340px; background:var(--line); border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.anatomy-page { position:relative; padding:2rem; background:var(--paper-soft); }
.anatomy-page:first-child { box-shadow:inset -18px 0 24px rgba(44,31,22,.06); }
.anatomy-page:last-child { box-shadow:inset 18px 0 24px rgba(44,31,22,.06); }
.anatomy-page::before { content:""; position:absolute; inset:2rem; border:1px solid rgba(100,43,56,.13); }
.anatomy-labels { display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; margin-top:1.2rem; }
.anatomy-label { padding:.9rem; border-left:2px solid var(--gold); background:rgba(255,255,255,.45); }
.anatomy-label strong { display:block; font-family:var(--serif); }
.anatomy-label span { color:var(--ink-soft); font-size:.82rem; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.service-card { padding:clamp(1.3rem,3vw,2rem); border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.34); }
.service-card .number { display:block; margin-bottom:2.5rem; font-family:var(--serif); color:var(--gold); }
.service-card h3 { font-size:1.75rem; }
.service-card p { margin-bottom:0; color:var(--ink-soft); }

.image-band { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.image-band figure { position:relative; min-height:360px; margin:0; overflow:hidden; border-radius:.8rem; }
.image-band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.image-band figure:hover img { transform:scale(1.05); }
.image-band figcaption { position:absolute; z-index:2; inset:auto .8rem .8rem; padding:.65rem .75rem; color:#fff; border-radius:.5rem; background:rgba(20,14,10,.5); backdrop-filter:blur(8px); font-size:.75rem; }

.timeline { display:grid; gap:0; border-top:1px solid var(--line); }
.timeline-item { display:grid; grid-template-columns:7rem 1fr; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--line); }
.timeline-item .year { font-family:var(--serif); color:var(--gold); font-size:1.5rem; }
.timeline-item h3 { margin-bottom:.5rem; font-size:1.7rem; }
.timeline-item p { margin:0; color:var(--ink-soft); }

/* Tariffs */
.pricing-hero {
  min-height:66svh;
  color:#fff;
  background:
    radial-gradient(circle at 82% 20%,rgba(213,180,116,.2),transparent 32%),
    var(--wine-deep);
}
.pricing-hero .page-hero-copy p { color:rgba(255,255,255,.68); }
.pricing-hero .breadcrumbs { color:rgba(255,255,255,.6); }
.price-range-display { align-self:center; padding:2rem; }
.price-range-display .range-line { display:flex; align-items:center; gap:1rem; }
.price-range-display strong { font-family:var(--serif); font-size:clamp(4.2rem,9vw,8rem); font-weight:400; color:var(--gold-light); line-height:1; }
.price-range-display .range-line i { flex:1; height:1px; background:rgba(255,255,255,.22); }
.price-range-display p { color:rgba(255,255,255,.65); }

.pricing-ledger { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.35); box-shadow:var(--shadow-soft); }
.pricing-ledger header { display:grid; grid-template-columns:1.3fr .7fr; gap:2rem; padding:1.4rem 1.6rem; color:#fff; background:var(--wine); }
.pricing-ledger header strong { font-family:var(--serif); font-size:1.45rem; }
.pricing-ledger header span { text-align:right; }
.price-group { display:grid; grid-template-columns:220px 1fr; border-top:1px solid var(--line); }
.price-group:first-of-type { border-top:0; }
.price-group-title { padding:1.25rem 1.5rem; font-family:var(--serif); font-size:1.25rem; color:var(--wine); background:rgba(100,43,56,.04); border-right:1px solid var(--line); }
.price-items { padding:.45rem 1.5rem; }
.price-item { display:grid; grid-template-columns:1fr auto; gap:2rem; padding:.8rem 0; border-bottom:1px dashed var(--line); }
.price-item:last-child { border-bottom:0; }
.price-item span { color:var(--ink-soft); }
.price-item strong { white-space:nowrap; color:var(--wine); }
.price-note { margin-top:1rem; padding:1rem 1.2rem; border-left:3px solid var(--gold); background:rgba(174,133,74,.08); color:var(--ink-soft); }

.estimator-shell {
  position:relative;
  display:grid;
  grid-template-columns:290px minmax(0,1fr);
  min-height:720px;
  border:1px solid var(--line);
  border-radius:1.5rem;
  overflow:hidden;
  background:var(--paper-soft);
  box-shadow:var(--shadow);
}
.estimator-spine {
  position:relative;
  padding:2rem 1.6rem;
  color:#fff;
  background:linear-gradient(145deg,var(--wine-deep),var(--wine));
  overflow:hidden;
}
.estimator-spine::after { content:""; position:absolute; right:1.5rem; top:1.8rem; bottom:1.8rem; width:1px; background:repeating-linear-gradient(to bottom,var(--gold-light) 0 7px,transparent 7px 16px); opacity:.55; }
.estimator-spine h2 { margin-top:2rem; font-size:2.4rem; }
.estimator-spine p { color:rgba(255,255,255,.65); font-size:.88rem; }
.estimator-progress { margin:2.5rem 0 0; padding:0; list-style:none; display:grid; gap:.6rem; }
.estimator-progress li { position:relative; display:grid; grid-template-columns:2rem 1fr; align-items:center; gap:.6rem; padding:.65rem .8rem; border-radius:.6rem; color:rgba(255,255,255,.5); transition:background .3s ease,color .3s ease; }
.estimator-progress li span { width:1.8rem; aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; font-family:var(--serif); }
.estimator-progress li strong { font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; }
.estimator-progress li.is-active { color:#fff; background:rgba(255,255,255,.09); }
.estimator-progress li.is-active span { color:var(--wine-deep); border-color:var(--gold-light); background:var(--gold-light); }
.estimator-progress li.is-done { color:rgba(255,255,255,.78); }
.estimator-progress li.is-done span { border-color:var(--gold-light); color:var(--gold-light); }
.estimator-book { position:relative; min-width:0; background:linear-gradient(90deg,rgba(57,39,27,.035),transparent 2.5rem),var(--paper-soft); }
.estimator-book::before { content:""; position:absolute; left:0; top:0; bottom:0; width:22px; box-shadow:inset 13px 0 20px rgba(51,35,24,.07); pointer-events:none; }
.estimator-panel { display:none; min-height:720px; padding:clamp(1.5rem,5vw,4rem); animation:pageIn .55s var(--ease); }
.estimator-panel.is-active { display:flex; flex-direction:column; }
@keyframes pageIn { from { opacity:0; transform:translateX(25px) rotateY(-2deg); } to { opacity:1; transform:none; } }
.estimator-panel-header { display:grid; grid-template-columns:1fr auto; gap:1.5rem; margin-bottom:2.5rem; }
.estimator-panel-header h3 { margin-bottom:.7rem; font-size:clamp(2.2rem,4vw,4rem); }
.estimator-panel-header p { max-width:42rem; margin:0; color:var(--ink-soft); }
.page-folio { font-family:var(--serif); color:var(--gold); font-size:1.2rem; }
.choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.choice-grid.columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.choice-card { position:relative; display:block; cursor:pointer; }
.choice-card input { position:absolute; opacity:0; pointer-events:none; }
.choice-card-body {
  height:100%;
  min-height:125px;
  padding:1.15rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid var(--line);
  border-radius:.9rem;
  background:rgba(255,255,255,.45);
  transition:border-color .3s ease,background .3s ease,transform .3s var(--ease),box-shadow .3s ease;
}
.choice-card-body::after { content:""; position:absolute; top:1rem; right:1rem; width:18px; height:18px; border:1px solid var(--line); border-radius:50%; background:var(--paper-soft); box-shadow:inset 0 0 0 4px var(--paper-soft); transition:background .3s ease,border-color .3s ease; }
.choice-card:hover .choice-card-body { transform:translateY(-3px); border-color:rgba(100,43,56,.35); }
.choice-card input:checked + .choice-card-body { border-color:var(--wine); background:rgba(100,43,56,.07); box-shadow:0 8px 22px rgba(100,43,56,.08); }
.choice-card input:checked + .choice-card-body::after { border-color:var(--wine); background:var(--wine); }
.choice-card strong { display:block; padding-right:1.6rem; font-family:var(--serif); font-size:1.25rem; line-height:1.15; }
.choice-card small { margin-top:.6rem; color:var(--ink-soft); letter-spacing:0; text-transform:none; font-weight:400; }
.choice-price { display:block; margin-top:.8rem; color:var(--wine); font-weight:750; font-size:.78rem; }
.field-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.field { display:grid; gap:.45rem; }
.field label, .field legend { font-size:.77rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.field input, .field select, .field textarea {
  width:100%;
  min-height:50px;
  padding:.8rem 1rem;
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:.65rem;
  background:rgba(255,255,255,.65);
}
.field textarea { min-height:120px; resize:vertical; }
.field-hint { color:var(--ink-soft); font-size:.78rem; }
.issue-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.issue-card { position:relative; cursor:pointer; }
.issue-card input { position:absolute; opacity:0; }
.issue-card span { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:.7rem; background:rgba(255,255,255,.4); transition:.3s ease; }
.issue-card span::after { content:"+"; width:1.7rem; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; color:var(--wine); background:rgba(100,43,56,.08); }
.issue-card input:checked + span { border-color:var(--wine); background:rgba(100,43,56,.08); }
.issue-card input:checked + span::after { content:"✓"; color:#fff; background:var(--wine); }
.estimator-error { min-height:1.5rem; margin:.8rem 0 0; color:#a52323; font-size:.85rem; }
.estimator-actions { display:flex; justify-content:space-between; gap:1rem; margin-top:auto; padding-top:2.5rem; }
.estimator-actions .right { display:flex; gap:.7rem; margin-left:auto; }

.result-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(300px,1.15fr); gap:2rem; align-items:start; }
.result-price-card { padding:2rem; border-radius:1rem; color:#fff; background:var(--wine); box-shadow:0 22px 45px rgba(100,43,56,.18); }
.result-price-card .eyebrow { color:rgba(255,255,255,.62); }
.result-price { display:flex; align-items:flex-start; gap:.3rem; margin:.7rem 0; font-family:var(--serif); color:var(--gold-light); }
.result-price strong { font-size:clamp(5rem,10vw,8.5rem); font-weight:400; line-height:.85; }
.result-price span { margin-top:.8rem; font-size:1.5rem; }
.result-price-card p { color:rgba(255,255,255,.7); }
.result-badge { display:inline-flex; padding:.45rem .7rem; border:1px solid rgba(255,255,255,.22); border-radius:999px; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }
.result-breakdown { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.result-breakdown li { display:grid; grid-template-columns:1fr auto; gap:1.5rem; padding:.8rem 0; border-bottom:1px dashed var(--line); }
.result-breakdown span { color:var(--ink-soft); }
.result-breakdown strong { color:var(--wine); }
.result-warning { margin-top:1rem; padding:1rem; border-radius:.7rem; background:rgba(174,133,74,.1); color:var(--ink-soft); font-size:.86rem; }
.result-reference { font-family:monospace; font-size:.8rem; color:var(--ink-soft); }
.result-tools { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.3rem; }

.example-prices { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.example-card { padding:1.3rem; border:1px solid var(--line); border-radius:var(--radius-sm); background:rgba(255,255,255,.36); }
.example-card strong { display:block; margin-bottom:.8rem; font-family:var(--serif); font-size:2.2rem; color:var(--wine); }
.example-card h3 { font-size:1.25rem; }
.example-card p { margin:0; color:var(--ink-soft); font-size:.85rem; }

/* Contact */
.contact-grid { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:clamp(3rem,8vw,8rem); }
.contact-card { padding:1.5rem; border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.4); }
.contact-method { padding:1.2rem 0; border-bottom:1px solid var(--line); }
.contact-method:last-child { border-bottom:0; }
.contact-method small { display:block; color:var(--ink-soft); }
.contact-method a { font-family:var(--serif); font-size:1.35rem; color:var(--wine); }
.contact-form { display:grid; gap:1rem; }
.photo-checklist { display:grid; grid-template-columns:repeat(5,1fr); gap:.7rem; margin-top:1rem; }
.photo-checklist div { min-height:135px; padding:.8rem; display:flex; align-items:end; border:1px solid var(--line); border-radius:.7rem; background:linear-gradient(145deg,rgba(100,43,56,.04),rgba(174,133,74,.08)); font-size:.78rem; color:var(--ink-soft); }

/* Legal / 404 */
.legal-page { padding-top:calc(var(--header-height) + 4rem); }
.legal-content { max-width:820px; }
.legal-content h1 { font-size:clamp(3.4rem,7vw,6.5rem); }
.legal-content h2 { margin-top:3rem; font-size:2rem; }
.legal-content p, .legal-content li { color:var(--ink-soft); }
.error-page { min-height:100svh; padding-top:var(--header-height); display:grid; place-items:center; text-align:center; }
.error-book { width:180px; height:250px; margin:0 auto 2rem; border-radius:5px 18px 18px 5px; background:var(--wine); box-shadow:inset 18px 0 20px rgba(0,0,0,.24),var(--shadow); transform:rotate(-5deg); display:grid; place-items:center; color:var(--gold-light); font-family:var(--serif); font-size:4rem; }

@media (max-width: 1080px) {
  .nav { gap:1rem; }
  .nav a { font-size:.7rem; }
  .header-cta { display:none; }
  .header-inner { grid-template-columns:auto 1fr auto; }
  .book-types-grid { grid-template-columns:repeat(4,1fr); }
  .book-type:nth-child(4) { border-right:0; }
  .book-type:nth-child(n+5) { border-top:1px solid var(--line); }
  .example-prices { grid-template-columns:repeat(2,1fr); }
  .photo-checklist { grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 880px) {
  :root { --header-height:70px; }
  .site-header { height:var(--header-height); }
  .site-header.is-scrolled { height:62px; }
  .brand { width:190px; }
  .menu-toggle { display:block; justify-self:end; }
  .nav {
    position:fixed;
    inset:0;
    z-index:-1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1.3rem;
    padding:5rem 2rem;
    color:var(--paper-soft);
    background:var(--wine-deep);
    opacity:0;
    visibility:hidden;
    transform:translateY(-12px);
    transition:opacity .35s ease,visibility .35s ease,transform .35s var(--ease);
  }
  .nav a { font-family:var(--serif); font-size:clamp(2rem,7vw,3.8rem); font-weight:400; text-transform:none; letter-spacing:-.02em; }
  .nav a::after { bottom:-.15rem; background:var(--gold-light); }
  .menu-open .nav { opacity:1; visibility:visible; transform:none; }
  .menu-open .site-header { color:#fff; }
  .menu-open .brand { color:var(--gold-light); z-index:2; }
  .menu-open .menu-toggle { z-index:2; color:#fff; background:rgba(255,255,255,.1); }
  .hero-grid { grid-template-columns:1fr; gap:2rem; padding-top:4rem; }
  .home-hero { min-height:auto; padding-bottom:5rem; }
  .home-hero::before { display:none; }
  .hero-title { max-width:8.5ch; font-size:clamp(4rem,14vw,7rem); }
  .book-portrait { width:min(620px,90vw); margin:1rem auto 0; }
  .hero-scroll { display:none; }
  .section-heading, .manifesto-grid, .story-layout, .feature-split, .gilding-grid, .price-teaser-grid, .workshop-grid, .faq-layout, .page-hero-grid, .editorial-grid, .contact-grid { grid-template-columns:1fr; }
  .manifesto-title, .story-nav, .editorial-aside { position:relative; top:auto; }
  .story-nav { min-height:auto; }
  .story-steps { display:none; }
  .story-panel { min-height:auto; }
  .story-visual { min-height:70svh; }
  .feature-media { min-height:560px; order:2; }
  .gold-specs { grid-template-columns:1fr; }
  .gold-specs div { border-right:0; border-bottom:1px solid var(--line-dark); }
  .gold-specs div:last-child { border-bottom:0; }
  .book-types-grid { grid-template-columns:repeat(3,1fr); }
  .book-type { border-top:1px solid var(--line); }
  .book-type:nth-child(-n+3) { border-top:0; }
  .book-type:nth-child(3n) { border-right:0; }
  .book-type:nth-child(4) { border-right:1px solid var(--line); }
  .workshop-collage { grid-template-rows:220px 220px; }
  .contact-strip-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1.5fr 1fr 1fr; }
  .footer-column:last-child { grid-column:1/-1; }
  .page-hero { min-height:auto; padding-top:calc(var(--header-height) + 2rem); }
  .page-hero-grid { padding-bottom:0; }
  .page-hero-media { min-height:480px; }
  .editorial-aside h2 { max-width:12ch; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .image-band { grid-template-columns:1fr 1fr; }
  .price-range-display { padding:1rem 0 4rem; }
  .estimator-shell { grid-template-columns:1fr; }
  .estimator-spine { padding:1.25rem; }
  .estimator-spine h2, .estimator-spine p { display:none; }
  .estimator-spine::after { display:none; }
  .estimator-progress { margin:0; grid-template-columns:repeat(5,1fr); gap:.3rem; }
  .estimator-progress li { display:grid; place-items:center; padding:.4rem; }
  .estimator-progress li strong { display:none; }
  .estimator-panel { min-height:650px; }
  .result-layout { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
  :root { --container:min(100% - 1.2rem, 1180px); }
  body { font-size:15px; }
  .section { padding-block:4.5rem; }
  .site-header .container { width:calc(100% - 1.2rem); }
  .brand { width:165px; }
  .hero-grid { padding-top:3rem; }
  .hero-title { font-size:clamp(3.8rem,18vw,5.5rem); }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions a { width:100%; }
  .hero-facts { display:grid; gap:.6rem; }
  .book-label { width:7.3rem; right:-.2rem; font-size:.75rem; }
  .book-label strong { font-size:1.2rem; }
  .material-grid { grid-template-columns:1fr; }
  .material-card { min-height:190px; }
  .story-visual { min-height:560px; }
  .story-caption h3 { font-size:2.8rem; }
  .feature-media { min-height:430px; }
  .feature-media .image-main { inset:0 8% 10% 0; }
  .feature-media .image-small { width:48%; border-width:5px; }
  .gilding-media { min-height:460px; }
  .book-types-grid { grid-template-columns:repeat(2,1fr); }
  .book-type:nth-child(-n+2) { border-top:0; }
  .book-type:nth-child(n+3) { border-top:1px solid var(--line); }
  .book-type:nth-child(odd) { border-right:1px solid var(--line); }
  .book-type:nth-child(even) { border-right:0; }
  .workshop-collage { grid-template-columns:1fr; grid-template-rows:360px 220px 220px; }
  .workshop-collage figure:first-child { grid-row:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1/-1; }
  .footer-column:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .page-hero-copy h1 { font-size:clamp(3.6rem,17vw,5.7rem); }
  .page-hero-media { min-height:400px; }
  .anatomy-labels { grid-template-columns:1fr; }
  .service-grid, .image-band { grid-template-columns:1fr; }
  .image-band figure { min-height:440px; }
  .timeline-item { grid-template-columns:1fr; gap:.5rem; }
  .price-group { grid-template-columns:1fr; }
  .price-group-title { border-right:0; border-bottom:1px solid var(--line); }
  .price-items { padding-inline:1rem; }
  .estimator-panel { min-height:690px; padding:1.2rem; }
  .estimator-panel-header { grid-template-columns:1fr; }
  .page-folio { order:-1; }
  .choice-grid, .choice-grid.columns-3, .field-grid, .issue-grid { grid-template-columns:1fr; }
  .choice-card-body { min-height:100px; }
  .estimator-actions { flex-wrap:wrap; }
  .estimator-actions .right { width:100%; display:grid; grid-template-columns:1fr; }
  .estimator-actions button { width:100%; }
  .result-price strong { font-size:5rem; }
  .example-prices { grid-template-columns:1fr; }
  .photo-checklist { grid-template-columns:1fr 1fr; }
}

@supports (animation-timeline: view()) {
  .view-fade {
    animation: viewFade both linear;
    animation-timeline: view();
    animation-range: entry 5% cover 32%;
  }
  @keyframes viewFade { from { opacity:.2; transform:translateY(40px); } to { opacity:1; transform:none; } }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal, .reveal-left, .reveal-right { opacity:1; transform:none; }
  .book-shell { transform:none !important; }
}

@media print {
  .site-header, .scroll-thread, .contact-strip, .site-footer, .estimator-spine, .estimator-panel:not(.is-active), .result-tools, .estimator-actions { display:none !important; }
  body { background:#fff; }
  body::before { display:none; }
  .estimator-shell { display:block; border:0; box-shadow:none; }
  .estimator-panel { display:block !important; min-height:auto; padding:0; }
  .result-price-card { color:#000; background:#fff; border:1px solid #aaa; box-shadow:none; }
  .result-price { color:#000; }
}
