/* ===========================================================
   SECOND SPRING LAB - PREMIUM REDESIGN CHROME
   Shared motion/effects layer for redesigned pages.
   Extends site.css tokens - link site.css BEFORE this file.
=========================================================== */

:root{
  --ink-950:#150e09;
  --ink-900:#20140e;
  --ink-850:#2b1c15;
  --glow-gold:rgba(201,161,95,.45);
  --glow-terracotta:rgba(176,96,47,.4);
  --ease:cubic-bezier(.16,.8,.24,1);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

html{scroll-behavior:smooth;}
::selection{background:var(--terracotta-soft);color:var(--terracotta-deep);}

::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:10px;border:2px solid var(--bg);}

body.cur-fine, body.cur-fine a, body.cur-fine button{cursor:none;}

/* ---------- custom cursor ---------- */
.cur-dot{position:fixed;width:7px;height:7px;border-radius:50%;background:#fff;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);mix-blend-mode:difference;opacity:0;transition:opacity .3s ease;}
.cur-ring{position:fixed;width:36px;height:36px;border-radius:50%;border:1.3px solid rgba(255,255,255,.7);pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);mix-blend-mode:difference;opacity:0;
  transition:opacity .3s ease, width .35s cubic-bezier(.16,.8,.24,1), height .35s cubic-bezier(.16,.8,.24,1), background .35s ease;}
.cur-dot.on,.cur-ring.on{opacity:1;}
.cur-ring.big{width:84px;height:84px;background:rgba(255,255,255,.14);border-color:transparent;}

/* ---------- grain + scroll progress ---------- */
.grain{position:fixed;inset:-10%;z-index:9990;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px;}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;z-index:9996;
  background:linear-gradient(90deg,var(--terracotta),var(--gold));box-shadow:0 0 12px var(--glow-gold);}

/* ---------- side section-dot rail (dots positioned proportionally to each section's actual place in total page scroll, via JS-set --top) ---------- */
.sec-rail{position:fixed;right:26px;top:14vh;bottom:14vh;z-index:40;}
.sec-rail button{position:absolute;left:0;top:var(--top,0%);width:9px;height:9px;border-radius:50%;background:var(--line);border:none;padding:0;cursor:pointer;
  transition:background .3s cubic-bezier(.16,.8,.24,1),transform .3s cubic-bezier(.16,.8,.24,1);transform:translateY(-50%);}
.sec-rail button::after{content:attr(data-label);position:absolute;right:20px;top:50%;transform:translateY(-50%);white-space:nowrap;
  font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--ink);background:var(--card);padding:5px 12px;border-radius:999px;
  border:1px solid var(--line-soft);opacity:0;pointer-events:none;transition:.25s ease;}
.sec-rail button:hover::after{opacity:1;}
.sec-rail button.active{background:var(--terracotta);transform:translateY(-50%) scale(1.7);}
@media (max-width:1080px){ .sec-rail{display:none;} }

/* ---------- floating article table of contents ---------- */
#tocFloat{position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:40;width:220px;opacity:0;pointer-events:none;transition:opacity .4s ease;}
#tocFloat.ready{opacity:1;pointer-events:auto;}
#tocFloat .toc-list{border-left:2px solid var(--line-soft);padding-left:16px;display:flex;flex-direction:column;gap:12px;}
#tocFloat .toc-list a{font-size:12.5px;font-weight:700;color:var(--muted);text-decoration:none;line-height:1.4;transition:color .25s ease;position:relative;}
#tocFloat .toc-list a::before{content:"";position:absolute;left:-19px;top:3px;width:6px;height:6px;border-radius:50%;background:var(--line);transition:.25s ease;}
#tocFloat .toc-list a:hover{color:var(--ink);}
#tocFloat .toc-list a.active{color:var(--terracotta-deep);font-weight:800;}
#tocFloat .toc-list a.active::before{background:var(--terracotta);transform:scale(1.3);}
@media (max-width:1400px){ #tocFloat{display:none;} }

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-word{display:inline-block;overflow:hidden;vertical-align:top;}
.reveal-word span{display:inline-block;transform:translateY(115%);transition:transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s);}
.reveal-word.in span{transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-word span{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* ---------- section chrome ---------- */
.sec-eyebrow-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;}
.sec-index-num{font-family:'Fraunces',serif;font-size:13px;color:var(--muted);opacity:.6;}
.blob-field .blob{animation:blobDrift 22s ease-in-out infinite alternate;}
@keyframes blobDrift{0%{transform:translate(0,0) scale(1);}100%{transform:translate(4%,-6%) scale(1.12);}}
@media (prefers-reduced-motion: reduce){ .blob-field .blob{animation:none;} }

/* ---------- drifting orbs (dark section backdrop) ---------- */
.rd-hero-orbs{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.rd-orb{position:absolute;border-radius:50%;opacity:.55;will-change:transform;animation:orbDrift 26s ease-in-out infinite alternate;}
.rd-orb.o1{width:640px;height:640px;background:radial-gradient(circle,var(--terracotta) 0%,rgba(176,96,47,0) 68%);top:-220px;left:-200px;}
.rd-orb.o2{width:560px;height:560px;background:radial-gradient(circle,var(--sage) 0%,rgba(111,125,92,0) 68%);bottom:-220px;left:12%;animation-duration:32s;}
.rd-orb.o3{width:520px;height:520px;background:radial-gradient(circle,var(--gold) 0%,rgba(201,161,95,0) 68%);top:6%;right:-180px;animation-duration:28s;}
@keyframes orbDrift{0%{transform:translate(0,0) scale(1);}100%{transform:translate(6%,8%) scale(1.15);}}
@media (prefers-reduced-motion: reduce){ .rd-orb{animation:none;} }

/* ---------- ghost watermark marquee ---------- */
.rd-ghost-marquee{position:absolute;top:6%;left:0;width:100%;overflow:hidden;white-space:nowrap;pointer-events:none;z-index:0;opacity:.1;}
.rd-ghost-marquee .track{display:inline-block;animation:ghostScroll 40s linear infinite;}
.rd-ghost-marquee span{font-family:'Fraunces',serif;font-weight:700;font-size:17vw;line-height:1;color:transparent;-webkit-text-stroke:1.4px #fff;padding-right:60px;}
@keyframes ghostScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){ .rd-ghost-marquee .track{animation:none;} }

/* ---------- dark text-marquee divider ---------- */
.rd-marquee-strip{background:var(--ink);color:var(--gold);overflow:hidden;padding:16px 0;white-space:nowrap;}
.rd-marquee-strip .track{display:inline-block;animation:mqScroll 22s linear infinite;}
.rd-marquee-strip span{font-family:'Fraunces',serif;font-style:italic;font-size:19px;padding:0 28px;color:#fff;opacity:.9;}
.rd-marquee-strip span.acc{color:var(--gold);font-style:normal;font-weight:800;font-family:'Nunito',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
@keyframes mqScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){ .rd-marquee-strip .track{animation:none;} }

/* ---------- pill buttons (dark-friendly) ---------- */
.rd-btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:18px 32px;border-radius:999px;
  font-family:'Nunito',sans-serif;font-weight:800;font-size:15.5px;text-decoration:none;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,background .35s ease;cursor:pointer;}
.rd-btn.primary{background:linear-gradient(135deg,var(--gold),var(--terracotta));color:#221a12;box-shadow:0 16px 36px -10px var(--glow-gold);}
.rd-btn.primary:hover{box-shadow:0 22px 46px -8px var(--glow-gold);}
.rd-btn.ghost{background:rgba(255,255,255,.05);color:#fff;border:1.5px solid rgba(255,255,255,.4);backdrop-filter:blur(6px);}
.rd-btn.ghost:hover{background:rgba(255,255,255,.15);border-color:#fff;}
.rd-btn svg{width:16px;height:16px;transition:transform .3s ease;}
.rd-btn:hover svg{transform:translateX(3px);}
.rd-btn.small{padding:13px 22px;font-size:14px;}
.rd-btn.magnet{will-change:transform;}

/* ---------- spotlight cursor-glow (generic, add class "spotlight" to any card) ---------- */
.spotlight{position:relative;}
.spotlight::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;z-index:0;
  transition:opacity .4s ease;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(201,161,95,.30),transparent 70%);}
.spotlight:hover::before{opacity:1;}
.spotlight > *{position:relative;z-index:1;}

/* ---------- FAQ accordion (generic) ---------- */
.rd-faq{max-width:760px;margin:0 auto;}
.rd-faq-item{border-bottom:1px solid var(--line);position:relative;}
.rd-faq-item::before{content:"";position:absolute;left:-20px;top:0;bottom:0;width:3px;background:var(--terracotta);transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.22,1,.36,1);}
.rd-faq-item.open::before{transform:scaleY(1);}
.rd-faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:none;
  text-align:left;padding:22px 4px;cursor:pointer;font-family:'Fraunces',serif;font-size:17px;color:var(--ink);}
.rd-faq-q .plus{flex:none;width:26px;height:26px;border-radius:50%;background:var(--terracotta-soft);color:var(--terracotta-deep);
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;transition:transform .35s cubic-bezier(.16,.8,.24,1);}
.rd-faq-item.open .rd-faq-q .plus{transform:rotate(135deg);background:var(--terracotta);color:#fff;}
.rd-faq-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,.8,.24,1);}
.rd-faq-a p{color:var(--muted);font-size:14.5px;line-height:1.7;padding:0 4px 22px;max-width:640px;}

.center-cta{text-align:center;margin-top:40px;}
