/* ============================================================
   CAPLES PRESS — design system
   Concept: the site is a book. Paper spreads (ink text on
   white) alternate with ink spreads (paper text on dark).
   Gold is used the way binders use gilt: edges, tools, foils.
   Namespace: pr-
   ============================================================ */

:root {
  --ink:    #0B1220;
  --ink-2:  #101a30;
  --paper:  #FAFAF7;
  --paper-2:#F3F1E9;   /* aged page tone */
  --gold:   #C9A961;
  --gold-2: #E3C982;
  --gold-3: #b69147;
  --line:   #e3ddcd;
  --muted:  #5f6a80;
  --ease:   cubic-bezier(0.22, 1, 0.36, 1);
  --serif-display: 'Fraunces', Georgia, serif;
  --serif-body:    'Newsreader', Georgia, serif;
  --sans:          'Inter', ui-sans-serif, system-ui, sans-serif;
  --shadow-soft: 0 2px 14px rgba(11,18,32,0.07), 0 1px 3px rgba(11,18,32,0.05);
  --shadow-lift: 0 26px 60px rgba(11,18,32,0.16), 0 8px 20px rgba(11,18,32,0.08);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
html, body { overflow-x:clip; max-width:100%; }
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif-body);
  font-size: 1.06rem;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }
::selection { background: rgba(201,169,97,0.28); }
h1,h2,h3,h4 { font-family: var(--serif-display); font-weight:600; letter-spacing:-0.03em; line-height:1.08; }

.pr-container { width:min(1180px, calc(100% - 2.5rem)); margin-inline:auto; }
.pr-narrow    { width:min(760px, calc(100% - 2.5rem)); margin-inline:auto; }

/* ---------- Paper grain ---------- */
body::before {
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23g)' opacity='0.05'/%3E%3C/svg%3E");
}
body > * { position:relative; z-index:1; }

/* ---------- Reading ribbon (scroll progress) ---------- */
.pr-progress {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--gold-3), var(--gold), var(--gold-2));
  z-index:80; box-shadow:0 0 12px rgba(201,169,97,.5); pointer-events:none;
  transition:width .1s linear;
}

/* ---------- Running head (nav) ---------- */
.pr-head {
  position:sticky; top:0; z-index:60;
  background:rgba(250,250,247,0.92); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.pr-head::after { /* gilt hairline under the running head */
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent 15%, rgba(201,169,97,.5) 50%, transparent 85%);
}
.pr-head-in { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1rem 0; }
.pr-wordmark { display:flex; align-items:center; gap:.85rem; }
.pr-wordmark svg { flex:none; }
.pr-wordmark-name { font-family:var(--serif-display); font-weight:600; font-size:1.22rem; letter-spacing:-.02em; }
.pr-wordmark-sub  { font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); margin-top:1px; }
.pr-nav { display:flex; align-items:center; gap:2rem; font-family:var(--sans); font-size:.88rem; font-weight:500; color:#3d4759; }
.pr-nav a { position:relative; padding-bottom:2px; }
.pr-nav a::after { content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:100%; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.pr-nav a:hover::after, .pr-nav a.on::after { transform:scaleX(1); }
.pr-nav a.on { color:var(--ink); font-weight:600; }
@media (max-width: 880px) { .pr-nav { display:none; } }
.pr-burger { display:none; }
@media (max-width: 880px) {
  .pr-burger { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:#fff; cursor:pointer; }
}
.pr-mobile { display:none; border-top:1px solid var(--line); background:rgba(255,255,255,.98); }
.pr-mobile.open { display:block; }
.pr-mobile nav { display:flex; flex-direction:column; gap:1.1rem; padding:1.4rem 0; font-family:var(--sans); font-size:.95rem; font-weight:500; }

/* ---------- Buttons ---------- */
.pr-btn {
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  border-radius:999px; padding:.9rem 1.9rem; cursor:pointer; overflow:hidden;
  font-family:var(--sans); font-size:.9rem; font-weight:600; letter-spacing:.01em;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.pr-btn::after {
  content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-18deg); transition:left .65s var(--ease);
}
.pr-btn:hover::after { left:140%; }
.pr-btn-ink  { background:var(--ink); color:var(--paper); box-shadow:0 16px 40px rgba(11,18,32,.2); }
.pr-btn-ink:hover  { transform:translateY(-2px); box-shadow:0 22px 52px rgba(11,18,32,.28); }
.pr-btn-gold { background:var(--gold); color:var(--ink); box-shadow:0 16px 40px rgba(201,169,97,.3); }
.pr-btn-gold:hover { transform:translateY(-2px); background:var(--gold-3); }
.pr-btn-ghost { background:transparent; color:var(--ink); border:1px solid rgba(11,18,32,.5); }
.pr-btn-ghost:hover { transform:translateY(-2px); background:#fff; box-shadow:var(--shadow-soft); }
.pr-ink .pr-btn-ghost, .pr-btn-ghost.light { color:var(--gold-2); border-color:rgba(201,169,97,.5); }
.pr-ink .pr-btn-ghost:hover, .pr-btn-ghost.light:hover { background:rgba(201,169,97,.1); }

/* ---------- Chapter labels & ornaments ---------- */
.pr-chapter {
  display:inline-flex; align-items:center; gap:.8rem;
  font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-3);
}
.pr-chapter::before { content:""; width:2rem; height:1px; background:var(--gold); }
.pr-chapter.center { justify-content:center; }
.pr-chapter.center::after { content:""; width:2rem; height:1px; background:var(--gold); }
.pr-ink .pr-chapter { color:var(--gold-2); }

.pr-chapno { /* oversized outlined chapter numeral */
  font-family:var(--serif-display); font-weight:600; font-size:clamp(4rem,9vw,7rem); line-height:1;
  color:transparent; -webkit-text-stroke:1.5px rgba(201,169,97,.55);
}

.pr-asterism { display:flex; justify-content:center; gap:.6rem; color:var(--gold); }
.pr-asterism span { width:6px; height:6px; transform:rotate(45deg); background:currentColor; }
.pr-asterism span:nth-child(2) { margin-top:8px; }

.pr-dropcap::first-letter {
  font-family:var(--serif-display); font-weight:600; float:left;
  font-size:4.35em; line-height:.78; padding:.06em .12em 0 0; color:var(--gold-3);
}

/* ---------- Ink spreads (dark sections) ---------- */
.pr-ink {
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 55%, var(--ink) 100%);
  color:var(--paper);
  position:relative;
}
.pr-ink::before, .pr-ink::after { /* gilt page edges top & bottom */
  content:""; position:absolute; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent 8%, rgba(201,169,97,.6) 50%, transparent 92%);
}
.pr-ink::before { top:0; } .pr-ink::after { bottom:0; }
.pr-ink .pr-muted { color:#aab3c5; }
.pr-muted { color:var(--muted); }

/* ---------- Cards: bound plates ---------- */
.pr-card {
  position:relative; background:#fff; border:1px solid var(--line); border-radius:1.4rem;
  box-shadow:0 0 0 1px rgba(255,255,255,.9), var(--shadow-soft);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.pr-card-hover:hover { transform:translateY(-6px); border-color:rgba(201,169,97,.6); box-shadow:0 0 0 1px rgba(255,255,255,.9), 0 0 0 4px rgba(201,169,97,.08), var(--shadow-lift); }
.pr-mat::before { /* inner mat frame, like a mounted plate */
  content:""; position:absolute; inset:8px; border-radius:.9rem; border:1px solid rgba(201,169,97,.22);
  pointer-events:none; transition:border-color .35s var(--ease);
}
.pr-mat:hover::before { border-color:rgba(201,169,97,.5); }
.pr-card-ink { background:linear-gradient(170deg, var(--ink), var(--ink-2)); border:1px solid rgba(201,169,97,.28); color:var(--paper); box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 24px 60px rgba(11,18,32,.3); }

/* ---------- Table of contents (services) with dotted leaders ---------- */
.pr-toc { list-style:none; }
.pr-toc li + li { margin-top:.35rem; }
.pr-toc a {
  display:flex; align-items:baseline; gap:.9rem; padding:.85rem .6rem; border-radius:.8rem;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.pr-toc a:hover { background:rgba(201,169,97,.07); transform:translateX(4px); }
.pr-toc .t { font-family:var(--serif-display); font-weight:600; font-size:1.18rem; letter-spacing:-.01em; white-space:nowrap; }
.pr-toc .dots { flex:1; border-bottom:2px dotted rgba(11,18,32,.25); transform:translateY(-4px); }
.pr-ink .pr-toc .dots { border-bottom-color:rgba(250,250,247,.25); }
.pr-toc .n { font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.22em; color:var(--gold-3); }
.pr-ink .pr-toc .n { color:var(--gold-2); }

/* ---------- 3D book (hero) ---------- */
.pr-bookwrap { perspective:1400px; display:grid; place-items:center; }
.pr-book {
  position:relative; width:236px; height:340px; transform-style:preserve-3d;
  transform:rotateY(-24deg) rotateX(4deg);
  animation:prBookFloat 7s var(--ease) infinite alternate;
  filter:drop-shadow(0 40px 50px rgba(11,18,32,.38));
}
@keyframes prBookFloat {
  from { transform:rotateY(-27deg) rotateX(4deg) translateY(0); }
  to   { transform:rotateY(-18deg) rotateX(6deg) translateY(-14px); }
}
.pr-book .cover, .pr-book .back {
  position:absolute; inset:0; border-radius:6px 14px 14px 6px;
  background:linear-gradient(150deg, #16233f 0%, var(--ink) 55%, #060b16 100%);
  box-shadow:inset 0 0 0 1px rgba(201,169,97,.35);
}
.pr-book .cover { transform:translateZ(21px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.1rem; padding:1.6rem; text-align:center; }
.pr-book .back  { transform:translateZ(-21px) rotateY(180deg); }
.pr-book .spine {
  position:absolute; left:-21px; top:0; bottom:0; width:42px;
  transform:rotateY(-90deg); transform-origin:right;
  background:linear-gradient(180deg, #101c36, #0a1223);
  box-shadow:inset 0 0 0 1px rgba(201,169,97,.3);
  display:flex; align-items:center; justify-content:center;
}
.pr-book .spine span { writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--serif-display); font-size:.8rem; letter-spacing:.24em; color:var(--gold-2); text-transform:uppercase; }
.pr-book .pages {
  position:absolute; right:-19px; top:5px; bottom:5px; width:38px;
  transform:rotateY(90deg); transform-origin:left;
  background:repeating-linear-gradient(90deg, #f6f4ec 0 2px, #e8e4d4 2px 4px);
  border-radius:2px;
}
.pr-book .cover .fr { border:1px solid rgba(201,169,97,.5); border-radius:4px 10px 10px 4px; position:absolute; inset:10px; pointer-events:none; }
.pr-book .cover h3 { font-size:1.5rem; color:var(--paper); letter-spacing:0; line-height:1.2; }
.pr-book .cover p  { font-family:var(--sans); font-size:.6rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-2); }
@media (max-width: 880px) { .pr-book { width:190px; height:276px; } }

/* ---------- Reveal on scroll ---------- */
.pr-reveal { opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.pr-reveal.in { opacity:1; transform:none; }

/* ---------- Stats ---------- */
.pr-stat { font-family:var(--serif-display); font-weight:600; letter-spacing:-.02em; line-height:1; }

/* ---------- Process spine (numbered steps on a gilt line) ---------- */
.pr-steps { position:relative; }
.pr-steps::before { content:""; position:absolute; left:1.35rem; top:.8rem; bottom:.8rem; width:2px; background:linear-gradient(180deg, var(--gold), rgba(201,169,97,.12)); }
.pr-step { position:relative; padding-left:4rem; }
.pr-step + .pr-step { margin-top:2rem; }
.pr-step .no {
  position:absolute; left:0; top:0; width:2.7rem; height:2.7rem; border-radius:50%;
  display:grid; place-items:center; background:var(--paper);
  border:1.5px solid var(--gold); color:var(--gold-3);
  font-family:var(--serif-display); font-weight:600; font-size:1.05rem;
  box-shadow:0 0 0 5px rgba(201,169,97,.1);
}
.pr-ink .pr-step .no { background:var(--ink); color:var(--gold-2); }

/* ---------- FAQ ---------- */
.pr-faq details { border:1px solid var(--line); border-radius:1.1rem; background:#fff; padding:1.15rem 1.4rem; box-shadow:var(--shadow-soft); }
.pr-faq details + details { margin-top:.85rem; }
.pr-faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--serif-display); font-weight:600; font-size:1.06rem; }
.pr-faq summary::-webkit-details-marker { display:none; }
.pr-faq summary::after { content:"+"; font-family:var(--sans); color:var(--gold-3); font-size:1.3rem; line-height:1; transition:transform .3s var(--ease); }
.pr-faq details[open] summary::after { transform:rotate(45deg); }
.pr-faq details p { margin-top:.8rem; font-size:.98rem; color:#3d4759; }

/* ---------- Footer colophon ---------- */
.pr-foot { border-top:1px solid var(--line); position:relative; background:#fff; }
.pr-foot::before { content:""; position:absolute; top:-1px; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent 12%, rgba(201,169,97,.55) 50%, transparent 88%); }

/* ---------- Marginalia ---------- */
.pr-marg { font-style:italic; color:var(--muted); font-size:.95rem; }

/* ---------- Forms (mailto composer) ---------- */
.pr-input {
  width:100%; border:1px solid var(--line); border-radius:.9rem; background:#fff;
  padding:.85rem 1.05rem; font-family:var(--sans); font-size:.95rem; color:var(--ink);
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease); outline:none;
}
.pr-input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,169,97,.15); }
label.pr-label { display:block; font-family:var(--sans); font-size:.8rem; font-weight:600; color:#3d4759; margin-bottom:.45rem; }

/* ---------- The Shelf: vertical columns of flowing book covers ---------- */
.pr-shelf {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.1rem;
  height:560px; overflow:hidden; position:relative;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 9%, #000 91%, transparent);
  mask-image:linear-gradient(180deg, transparent, #000 9%, #000 91%, transparent);
}
.pr-shelf-col { display:flex; flex-direction:column; gap:1.1rem; will-change:transform; }
.pr-shelf-col.up   { animation:prFlowUp 42s linear infinite; }
.pr-shelf-col.down { animation:prFlowDown 48s linear infinite; }
.pr-shelf-col.up.slow { animation-duration:56s; }
.pr-shelf:hover .pr-shelf-col { animation-play-state:paused; }
@keyframes prFlowUp   { from { transform:translateY(0); }    to { transform:translateY(-50%); } }
@keyframes prFlowDown { from { transform:translateY(-50%); } to { transform:translateY(0); } }
@media (max-width: 980px) { .pr-shelf { height:440px; grid-template-columns:repeat(3,1fr); gap:.8rem; } .pr-shelf-col { gap:.8rem; } }

/* ---------- Original concept covers (all invented titles — our design range) ---------- */
.pr-cover {
  position:relative; aspect-ratio:2/3; border-radius:6px 12px 12px 6px; overflow:hidden;
  display:flex; flex-direction:column; justify-content:space-between; padding:1rem .9rem;
  color:#fff; background:var(--cv-bg, var(--ink));
  box-shadow:0 14px 30px rgba(11,18,32,.28), inset 0 0 0 1px rgba(255,255,255,.08);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  flex:none;
}
.pr-cover::before { /* spine hinge */
  content:""; position:absolute; left:7px; top:0; bottom:0; width:1.5px;
  background:linear-gradient(180deg, rgba(255,255,255,.28), rgba(0,0,0,.25));
}
.pr-cover:hover { transform:translateY(-5px) rotate(-1.2deg) scale(1.03); box-shadow:0 24px 44px rgba(11,18,32,.4), inset 0 0 0 1px rgba(255,255,255,.14); }
.pr-cover .cv-kicker { font-family:var(--sans); font-size:.5rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase; opacity:.75; }
.pr-cover .cv-title { font-family:var(--serif-display); font-weight:600; font-size:1.02rem; line-height:1.16; letter-spacing:-.01em; margin-top:.45rem; }
.pr-cover .cv-author { font-family:var(--sans); font-size:.56rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; opacity:.85; }
.pr-cover .cv-orn { opacity:.9; }
.pr-cover.serif-italic .cv-title { font-style:italic; }
.pr-cover.centered { text-align:center; align-items:center; }

/* cover palettes & treatments (original designs) */
.cv-ink      { --cv-bg:linear-gradient(165deg, #16233f, #0B1220 70%); }
.cv-oxblood  { --cv-bg:linear-gradient(160deg, #5c1f27, #2e0f14 75%); }
.cv-forest   { --cv-bg:linear-gradient(160deg, #1d3b2f, #0d1f18 75%); }
.cv-terra    { --cv-bg:linear-gradient(155deg, #b3552e, #7c3018 80%); }
.cv-slate    { --cv-bg:linear-gradient(160deg, #33415e, #1c2436 75%); }
.cv-plum     { --cv-bg:linear-gradient(160deg, #46274c, #241028 75%); }
.cv-cream    { --cv-bg:linear-gradient(165deg, #f4efe2, #e4dcc6 75%); color:var(--ink); }
.cv-cream .cv-kicker, .cv-cream .cv-author { opacity:.6; }
.cv-gold     { --cv-bg:linear-gradient(150deg, #C9A961, #8a6f35 85%); color:#131a2b; }
.cv-teal     { --cv-bg:linear-gradient(160deg, #10555a, #072e31 75%); }
.cv-midnight { --cv-bg:radial-gradient(circle at 50% 12%, #2b3d66 0%, #0B1220 65%); }
.cv-papercut { --cv-bg:linear-gradient(165deg, #fafaf7, #ece7d8 70%); color:var(--ink); }
.cv-papercut .cv-kicker, .cv-papercut .cv-author { opacity:.6; }
.cv-storm    { --cv-bg:linear-gradient(160deg, #3d3d45, #17171c 78%); }
/* band & rule embellishments */
.cv-band::after { content:""; position:absolute; left:0; right:0; top:58%; height:14%; background:rgba(201,169,97,.85); mix-blend-mode:normal; }
.cv-band .cv-author { position:relative; z-index:1; }
.cv-rule .cv-title { border-top:1px solid rgba(255,255,255,.35); border-bottom:1px solid rgba(255,255,255,.35); padding:.5rem 0; }
.cv-cream.cv-rule .cv-title, .cv-papercut.cv-rule .cv-title { border-color:rgba(11,18,32,.3); }

/* ---------- Horizontal marquee (genres / platforms) ---------- */
.pr-marquee { overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pr-marquee-track { display:inline-flex; gap:2.6rem; white-space:nowrap; animation:prMarq 36s linear infinite; will-change:transform; align-items:center; }
.pr-marquee:hover .pr-marquee-track { animation-play-state:paused; }
.pr-marquee-rev .pr-marquee-track { animation-direction:reverse; }
@keyframes prMarq { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ---------- Credential cards (real badge artwork) ---------- */
.pr-cred-img {
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  height:7.6rem; min-width:14.5rem; padding:1.4rem 2.1rem; border-radius:1.3rem;
  background:#fff; border:1px solid #e0dacb;
  box-shadow:0 0 0 1px rgba(255,255,255,.9), var(--shadow-soft);
  overflow:hidden; white-space:normal; flex:none;
  transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.pr-cred-img:hover { transform:translateY(-6px) scale(1.03); border-color:rgba(201,169,97,.7); box-shadow:0 0 0 1px rgba(255,255,255,.9), 0 0 0 4px rgba(201,169,97,.1), var(--shadow-lift); }
.pr-cred-img::before { content:""; position:absolute; inset:7px; border-radius:.9rem; border:1px solid rgba(201,169,97,.22); pointer-events:none; transition:border-color .35s var(--ease); }
.pr-cred-img:hover::before { border-color:rgba(201,169,97,.55); }
.pr-cred-img img { max-height:100%; max-width:11.5rem; width:auto; object-fit:contain; display:block; filter:grayscale(.15) contrast(.98); transition:transform .35s var(--ease), filter .35s var(--ease); }
.pr-cred-img:hover img { transform:scale(1.05); filter:none; }

/* platform chips: where the book goes live */
.pr-platform {
  display:inline-flex; align-items:center; gap:.7rem; flex:none;
  padding:1rem 1.5rem; border-radius:1.1rem; background:rgba(255,255,255,.06);
  border:1px solid rgba(201,169,97,.28); color:var(--paper);
  font-family:var(--serif-display); font-weight:600; font-size:1.05rem;
  transition:transform .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);
}
.pr-platform:hover { transform:translateY(-3px); border-color:rgba(201,169,97,.7); background:rgba(201,169,97,.1); }
.pr-platform .dot { width:.5rem; height:.5rem; border-radius:50%; background:var(--gold); box-shadow:0 0 0 3px rgba(201,169,97,.2); }

/* ---------- Gold dust (ambient specks on ink spreads) ---------- */
.pr-dust { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.pr-dust i {
  position:absolute; display:block; width:3px; height:3px; border-radius:50%;
  background:rgba(201,169,97,.55); box-shadow:0 0 6px rgba(201,169,97,.4);
  animation:prDust 9s var(--ease) infinite;
  opacity:0;
}
@keyframes prDust {
  0% { transform:translateY(18px) scale(.6); opacity:0; }
  25% { opacity:.9; }
  100% { transform:translateY(-70px) scale(1); opacity:0; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-shelf-col, .pr-marquee-track, .pr-dust i { animation:none !important; }
}

/* ---------- Responsive grids ---------- */
.pr-grid-2 { display:grid; gap:3.5rem; grid-template-columns:1.15fr .85fr; align-items:center; }
.pr-grid-2r { display:grid; gap:3.5rem; grid-template-columns:.85fr 1.15fr; align-items:start; }
.pr-grid-split { display:grid; gap:3.5rem; grid-template-columns:.8fr 1.2fr; align-items:start; }
.pr-grid-3 { display:grid; gap:1.6rem; grid-template-columns:repeat(3,1fr); }
.pr-grid-4 { display:grid; gap:2.5rem; grid-template-columns:repeat(4,1fr); }
.pr-foot-grid { display:grid; gap:2.5rem; grid-template-columns:1.4fr 1fr 1fr; }
@media (max-width: 980px) {
  .pr-grid-2, .pr-grid-2r, .pr-grid-split { grid-template-columns:1fr; gap:2.6rem; }
  .pr-grid-4 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 680px) {
  .pr-grid-3 { grid-template-columns:1fr; }
  .pr-grid-4 { grid-template-columns:1fr; gap:2rem; }
  .pr-foot-grid { grid-template-columns:1fr; gap:2rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .pr-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
  .pr-book { animation:none; }
  .pr-btn::after { display:none; }
  html { scroll-behavior:auto !important; }
}
