/* ============================================================
   PLASTIC MONEY — site styles
   Monochrome, cinematic, money-in-motion.
   ============================================================ */

:root{
  --bg:#08090b;
  --bg-2:#0b0c0f;
  --ink:#f3f3f4;
  --muted:rgba(243,243,244,.56);
  --faint:rgba(243,243,244,.34);
  --line:rgba(243,243,244,.13);
  --accent:#ededee;           /* set by JS */
  --accent-ink:#08090b;       /* text on accent */
  --money-hue:0;              /* deg, tints money layer */
  --money-sat:0%;
  --grain:.05;                /* film grain strength */
  --speed:1;                  /* animation intensity multiplier */
  --note-fill:rgba(246,246,248,.17);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Space Grotesk",system-ui,sans-serif;
  overflow-x:hidden;
}
::selection{background:var(--accent);color:var(--accent-ink);}

a{color:inherit;text-decoration:none;}
button{font-family:inherit;}

/* ---------- type ---------- */
.display{
  font-family:"Anton",Impact,sans-serif;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.005em;
  line-height:.82;
}
.mono{font-family:"Space Mono",ui-monospace,monospace;}
.eyebrow{
  font-family:"Space Mono",ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.42em;
  font-size:clamp(10px,1vw,13px);
  color:var(--faint);
}

/* ============================================================
   MONEY FIELD (parallax background)
   ============================================================ */
.money-stage{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% -10%, #15161a 0%, var(--bg) 60%);
}
.money-layer{
  position:absolute;
  inset:-30vh -10vw;
  will-change:transform;
}
.money-drift{position:absolute;inset:0;animation:layerdrift var(--ldur,18s) ease-in-out infinite;will-change:transform;}
@keyframes layerdrift{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-28px * var(--speed)))}}
@keyframes notefloat{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(calc(-20px * var(--speed))) rotate(1deg);}
}
/* hue tint for "money green" / gold accents */
.money-tint{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  mix-blend-mode:overlay;
  opacity:calc(var(--money-sat) * 1);
  background:hsl(var(--money-hue) 80% 45%);
}
.note{
  position:absolute;
  width:clamp(180px,18vw,300px);
  color:var(--note-fill);
  will-change:transform,opacity;
  animation:notefloat var(--dur,9s) ease-in-out infinite;
  animation-delay:var(--dly,0s);
}
.note-inner{transform:rotate(var(--r,0deg)) scale(var(--s,1));transform-origin:center;}
.note-svg{display:block;width:100%;height:auto;overflow:visible;}
.nl{stroke:currentColor;stroke-width:1.4;}
.nl.thin{stroke-width:.9;opacity:.72;}
.nnum{
  fill:currentColor;font-family:"Space Mono",monospace;
  font-size:18px;font-weight:700;letter-spacing:-.02em;
}
.nnum.big{font-size:24px;opacity:.85;}
.ntxt{
  fill:currentColor;font-family:"Anton",sans-serif;
  font-size:16px;letter-spacing:.14em;text-transform:uppercase;
}
.ntxt.sm{font-size:12px;letter-spacing:.2em;opacity:.8;}
.nhatch{stroke:currentColor;stroke-width:.6;opacity:.4;}

/* dark overlay above the money, below content */
.money-overlay{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(130% 80% at 50% 0%, rgba(8,9,11,.10) 0%, rgba(8,9,11,.42) 46%, rgba(8,9,11,.82) 100%),
    linear-gradient(180deg, rgba(8,9,11,.34) 0%, rgba(8,9,11,.18) 32%, rgba(8,9,11,.62) 100%);
}
.vignette{
  position:fixed;inset:0;z-index:2;pointer-events:none;
  box-shadow:inset 0 0 240px 60px rgba(0,0,0,.85);
}
/* film grain */
.grain{
  position:fixed;inset:-50%;z-index:3;pointer-events:none;
  opacity:var(--grain);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainshift 1.2s steps(4) infinite;
}
@keyframes grainshift{
  0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}
  50%{transform:translate(2%,-2%)}75%{transform:translate(-2%,-3%)}
  100%{transform:translate(2%,2%)}
}

/* ============================================================
   LAYOUT SCAFFOLD
   ============================================================ */
.site{position:relative;z-index:5;}
main{position:relative;z-index:10;}
.wrap{width:min(1180px,90vw);margin:0 auto;}
section{position:relative;}

/* top bar */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,5vw,52px);
  mix-blend-mode:difference;
}
.brand{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  letter-spacing:.04em;font-size:18px;color:#fff;
  display:flex;align-items:center;gap:10px;
}
.brand .dot{width:9px;height:9px;background:#fff;border-radius:1px;transform:rotate(45deg);}
.brand-icon{width:22px;height:22px;object-fit:contain;display:block;flex:none;}
.topbar .nav{display:flex;gap:26px;align-items:center;}
.topbar .nav a{
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;opacity:.8;
}
.nav-soon{
  display:inline-flex;align-items:center;gap:8px;
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;opacity:.5;cursor:default;
}
.nav-soon em{
  font-style:normal;font-size:9px;letter-spacing:.12em;
  color:var(--accent-ink);background:rgba(255,255,255,.85);
  padding:2px 6px;border-radius:999px;opacity:1;
}
@media(max-width:600px){
  .topbar{padding:16px 20px;}
  .brand{font-size:15px;line-height:1.05;}
  .topbar .nav{gap:14px;}
  .topbar .nav a{font-size:10px;letter-spacing:.12em;}
  .topbar .nav a[href="#read"]{display:none;}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:120px 20px 80px;
  overflow:hidden;
}
/* video-of-money backdrop, lives inside the hero only */
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
  filter:var(--vid-filter);
  transform:scale(1.06);will-change:transform,opacity;
}
.hero-media-grade{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 50% 38%, rgba(8,9,11,.18) 0%, rgba(8,9,11,.52) 60%, rgba(8,9,11,.86) 100%),
    linear-gradient(180deg, rgba(8,9,11,.45) 0%, rgba(8,9,11,.15) 32%, rgba(8,9,11,.78) 100%);
}
.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;}
.hero .eyebrow{margin-bottom:26px;}
.hero-title{
  font-size:clamp(72px,15vw,210px);
  color:var(--ink);
  text-shadow:0 10px 70px rgba(0,0,0,.7);
  margin:0 0 clamp(22px,3vw,34px);
}
.hero-title span{display:block;}
.hero-tag{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  font-size:clamp(20px,3.4vw,42px);letter-spacing:.01em;
  color:var(--ink);line-height:1;text-shadow:0 4px 30px rgba(0,0,0,.6);
}
.hero-by{margin-top:20px;}
.hero-by .eyebrow{letter-spacing:.3em;margin-bottom:0;}
.hero-by b{color:var(--ink);font-weight:700;font-family:"Space Grotesk";letter-spacing:.02em;}

/* scroll cue */
.scrollcue{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--faint);
}
.scrollcue .bar{width:1px;height:46px;background:linear-gradient(var(--faint),transparent);
  animation:cue 2.2s ease-in-out infinite;transform-origin:top;}
@keyframes cue{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ============================================================
   3D CREDIT CARD
   ============================================================ */
.card3d{
  width:clamp(280px,34vw,418px);
  aspect-ratio:1.586/1;
  position:relative;
  transform-style:preserve-3d;
  will-change:transform;
  margin:0 auto;
}
.card-face{
  position:absolute;inset:0;
  border-radius:18px;
  backface-visibility:hidden;
  overflow:hidden;
  container-type:inline-size;
  box-shadow:
    0 2px 1px rgba(255,255,255,.10) inset,
    0 40px 80px -30px rgba(0,0,0,.9),
    0 8px 26px -10px rgba(0,0,0,.8);
}
.card-front{
  background:
    radial-gradient(120% 140% at 78% 18%, #3a3b3f 0%, #1c1d20 38%, #0e0e10 78%);
}
.card-back{
  transform:rotateY(180deg);
  background:linear-gradient(150deg,#26272a 0%,#141416 70%);
}
/* plastic sheen / marbling */
.card-face::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(125deg,transparent 30%,rgba(255,255,255,.16) 46%,rgba(255,255,255,.02) 52%,transparent 60%),
    radial-gradient(80% 60% at 20% 90%, rgba(255,255,255,.05), transparent 60%);
  mix-blend-mode:screen;opacity:.9;
}
.card-face::after{ /* fine scuffs */
  content:"";position:absolute;inset:0;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .14' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}
.card-inner{position:absolute;inset:0;z-index:2;padding:7% 8%;display:flex;flex-direction:column;}
.card-row{display:flex;align-items:center;justify-content:space-between;}
.card-name{
  font-family:"Space Grotesk",sans-serif;font-weight:600;
  letter-spacing:.14em;font-size:clamp(13px,2.1cqw,19px);
  text-transform:uppercase;color:#ececed;
}
.card-chip{
  margin-top:auto;width:13%;aspect-ratio:4/3;border-radius:5px;
  background:linear-gradient(135deg,#e3d4ad 0%,#b49f6e 55%,#d8c79c 100%);
  position:relative;box-shadow:0 1px 2px rgba(0,0,0,.5);
}
.card-chip::before,.card-chip::after{
  content:"";position:absolute;background:rgba(0,0,0,.32);
}
.card-chip::before{left:33%;top:0;bottom:0;width:1px;}
.card-chip::after{top:50%;left:0;right:0;height:1px;}
.card-num{
  font-family:"Space Mono",monospace;font-weight:700;
  font-size:clamp(15px,3cqw,26px);letter-spacing:.04em;color:#e9e9ea;
  margin-top:5%;text-shadow:0 1px 0 rgba(0,0,0,.5);
}
.card-meta{display:flex;justify-content:space-between;margin-top:4%;}
.card-meta .lbl{font-family:"Space Mono",monospace;font-size:clamp(11px,2.1cqw,16px);letter-spacing:.06em;color:#d6d6d7;}
.contactless{width:8%;color:#cfcfd0;opacity:.9;}
/* back */
.card-stripe{position:absolute;top:12%;left:0;right:0;height:20%;background:#050506;z-index:1;}
.card-sign{position:absolute;top:42%;left:6%;right:24%;height:16%;background:repeating-linear-gradient(45deg,#e7e7e7,#e7e7e7 6px,#d4d4d4 6px,#d4d4d4 12px);border-radius:3px;z-index:2;}
.card-cvv{position:absolute;top:43.5%;right:8%;font-family:"Space Mono",monospace;color:#0c0c0d;font-size:clamp(11px,2.4cqw,18px);z-index:3;background:#e7e7e7;padding:1px 6px;border-radius:2px;}
.card-back-txt{position:absolute;bottom:9%;left:8%;right:8%;font-family:"Anton",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(10px,2.2cqw,15px);color:rgba(255,255,255,.4);z-index:3;}

@container (min-width:0px){}

/* ============================================================
   CONTENT SECTIONS
   ============================================================ */
.panel{padding:clamp(90px,16vh,200px) 0;}

/* synopsis */
.synopsis .wrap{max-width:1000px;}
.synopsis .eyebrow{margin-bottom:34px;}
.syn-text{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  font-size:clamp(30px,5.2vw,76px);line-height:.98;letter-spacing:.005em;
  color:var(--ink);text-wrap:balance;
}
.syn-text em{font-style:normal;color:var(--accent);}
.syn-sub em{font-style:normal;color:var(--ink);font-weight:700;}
.panel,.cta{scroll-margin-top:80px;}

/* hero entrance */
@media (prefers-reduced-motion: no-preference){
  .hero-content>*{animation:heroUp 1.05s both cubic-bezier(.16,1,.3,1);}
  .hero-content>.eyebrow{animation-delay:.06s;}
  .hero-content>.hero-title{animation-delay:.16s;}
  .hero-content>.hero-tag{animation-delay:.30s;}
  .hero-content>.hero-by{animation-delay:.40s;}
}
@keyframes heroUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
/* hard visibility lock — guarantees hero shows even if the timeline is paused offscreen */
.site.shown .hero-content>*{opacity:1!important;transform:none!important;}
.syn-sub{
  margin-top:40px;max-width:620px;
  font-size:clamp(16px,1.5vw,21px);line-height:1.55;color:var(--muted);
}
.reveal-line{display:block;overflow:hidden;}
.reveal-line>span{display:block;transform:translateY(110%);transition:transform .9s cubic-bezier(.16,1,.3,1);}
.in .reveal-line>span{transform:translateY(0);}
.reveal-line:nth-child(2)>span{transition-delay:.08s;}
.reveal-line:nth-child(3)>span{transition-delay:.16s;}
.reveal-line:nth-child(4)>span{transition-delay:.24s;}
.reveal-line:nth-child(5)>span{transition-delay:.32s;}

.fade-up{opacity:0;transform:translateY(34px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1);}
.in .fade-up,.fade-up.in{opacity:1;transform:none;}

/* locations marquee */
.marquee{
  margin-top:clamp(50px,9vh,110px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:22px 0;overflow:hidden;white-space:nowrap;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.marquee-track{display:inline-flex;gap:0;animation:marq 26s linear infinite;will-change:transform;}
.marquee-track .it{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  font-size:clamp(22px,3.4vw,46px);letter-spacing:.02em;color:var(--faint);
  padding:0 clamp(24px,4vw,60px);display:inline-flex;align-items:center;gap:clamp(24px,4vw,60px);
}
.marquee-track .it::after{content:"";width:7px;height:7px;background:var(--accent);transform:rotate(45deg);opacity:.7;}
@keyframes marq{to{transform:translateX(-50%);}}

/* ============================================================
   WAITING LIST
   ============================================================ */
.cta{padding:clamp(90px,16vh,190px) 0 clamp(70px,10vh,120px);text-align:center;}
.cta .eyebrow{margin-bottom:26px;}
.cta h2{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  font-size:clamp(40px,8.5vw,128px);line-height:.86;color:var(--ink);margin:0 0 14px;
}
.cta p{max-width:520px;margin:0 auto 42px;color:var(--muted);font-size:clamp(15px,1.5vw,19px);line-height:1.5;}
.signup{
  display:flex;gap:10px;align-items:stretch;justify-content:center;
  max-width:520px;margin:0 auto;flex-wrap:wrap;
}
.signup input{
  flex:1;min-width:240px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);border-radius:12px;
  color:var(--ink);font-family:"Space Mono",monospace;font-size:15px;
  padding:0 18px;height:58px;outline:none;transition:border-color .25s,background .25s;
}
.signup input::placeholder{color:var(--faint);}
.signup input:focus{border-color:var(--accent);background:rgba(255,255,255,.07);}
.btn{
  height:58px;padding:0 30px;border:none;border-radius:12px;cursor:pointer;
  background:var(--accent);color:var(--accent-ink);
  font-family:"Space Mono",monospace;font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;font-size:13px;
  display:inline-flex;align-items:center;gap:12px;
  transition:transform .2s ease,box-shadow .3s ease,filter .2s;
  box-shadow:0 0 0 0 var(--accent);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px -12px var(--accent);filter:brightness(1.05);}
.btn:active{transform:translateY(0);}
.btn svg{width:16px;height:16px;}
.cta-note{margin-top:26px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);}
.signup.done input{border-color:var(--accent);}

/* coming-to row */
.comingto{margin-top:clamp(54px,9vh,96px);}
.comingto .lbl{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin-bottom:18px;}
.comingto .row{display:flex;flex-wrap:wrap;gap:clamp(20px,3.5vw,48px);justify-content:center;align-items:center;}
.comingto .row span{
  font-family:"Space Grotesk",sans-serif;font-weight:600;font-size:clamp(14px,1.6vw,19px);
  letter-spacing:.02em;color:var(--muted);opacity:.7;transition:opacity .3s,color .3s;
}
.comingto .row span:hover{opacity:1;color:var(--ink);}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{
  position:relative;z-index:5;
  border-top:1px solid var(--line);
  padding:38px clamp(20px,5vw,52px);
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);
}
.foot a:hover{color:var(--ink);}
.foot-soon{color:var(--faint);}
.foot .fbrand{font-family:"Anton",sans-serif;letter-spacing:.06em;color:var(--muted);font-size:15px;}

/* ============================================================
   utility / motion prefs
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  .grain,.marquee-track,.scrollcue .bar{animation:none!important;}
  .reveal-line>span,.fade-up{transition:none!important;}
  .hero-video{animation:none!important;}
}

/* ============================================================
   VIDEO filter + 3D BOOK
   ============================================================ */
:root{--vid-filter:grayscale(1) contrast(1.06) brightness(.92);}

/* ---------- 3D BOOK ---------- */
.book-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center;
}
.book-stage{
  position:relative;display:flex;align-items:center;justify-content:center;
  perspective:1800px;min-height:clamp(340px,52vh,600px);
}
.book3d{
  position:relative;
  width:clamp(220px,24vw,330px);
  aspect-ratio:1/1.5;
  transform-style:preserve-3d;
  transform:rotateY(-26deg);
  will-change:transform;
}
.book-cover,.book-back{
  position:absolute;inset:0;border-radius:3px 7px 7px 3px;overflow:hidden;
  backface-visibility:hidden;
}
.book-cover{
  transform:translateZ(20px);
  box-shadow:0 2px 0 rgba(255,255,255,.15) inset;
}
.book-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.book-sheen{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 22%,rgba(255,255,255,0) 70%,rgba(0,0,0,.28) 100%);
  mix-blend-mode:screen;
}
.book-cover::after{ /* inner-edge dark gutter near spine */
  content:"";position:absolute;left:0;top:0;bottom:0;width:14px;
  background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,0));
}
.book-back{
  transform:translateZ(-20px) rotateY(180deg);
  background:linear-gradient(135deg,#1a1b1e,#0d0e10);
}
/* spine connecting front & back */
.book-spine{
  position:absolute;left:0;top:0;height:100%;width:40px;
  transform:translateX(-20px) rotateY(-90deg);
  transform-origin:right center;
  background:linear-gradient(90deg,#070708,#1c1d20 45%,#101113);
  border-radius:3px 0 0 3px;
}
.book-spine::after{
  content:"PLASTIC MONEY";
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:"Anton",sans-serif;text-transform:uppercase;letter-spacing:.18em;
  font-size:11px;color:rgba(255,255,255,.55);
}
/* page block on the open edge */
.book-pages{
  position:absolute;right:0;top:2px;bottom:2px;width:40px;
  transform:translateX(20px) rotateY(90deg);
  transform-origin:left center;
  background:repeating-linear-gradient(90deg,#e8e6df 0 1px,#cfccc2 1px 2px);
  border-radius:0 2px 2px 0;
}
.book-shadow{
  position:absolute;bottom:6%;left:50%;width:62%;height:40px;
  transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(0,0,0,.7),transparent 75%);
  filter:blur(10px);z-index:-1;
}
/* book info column */
.book-info .eyebrow{margin-bottom:22px;}
.book-title{
  font-family:"Anton",sans-serif;text-transform:uppercase;
  font-size:clamp(30px,4.4vw,62px);line-height:.95;letter-spacing:.005em;
  color:var(--ink);margin:0 0 22px;
}
.book-meta{
  font-family:"Space Mono",monospace;font-size:13px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);margin:0 0 34px;
}
.book-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.book-pages-n{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.btn.ghost{
  background:transparent;color:var(--ink);
  border:1px solid var(--line);
  box-shadow:none;
}
.btn.ghost:hover{border-color:var(--accent);box-shadow:none;filter:none;background:rgba(255,255,255,.04);}
.btn.ghost svg{width:16px;height:16px;}
@media(max-width:820px){
  .book-wrap{grid-template-columns:1fr;text-align:center;}
  .book-info{display:flex;flex-direction:column;align-items:center;}
  .book-cta{justify-content:center;}
  .book-stage{min-height:clamp(320px,46vh,480px);}
}
