/* Steam & Ink: Romantasy collection page (romantasy.html). A deliberately different world from the brass/teal main site:
   black, wine, smoky violet, candle gold; Cormorant type; stormy sky + drifting smoke + embers; slow reveal on entry.
   Textures: sky-tall.webp (phones/portrait), sky-wide.webp (landscape), velvet.webp, placeholder-600/1200.webp (all AI-generated, no text). */
:root{--ink:#07040a;--night:#0d0710;--wine:#4a0f1f;--wine2:#6e1a2e;--plum:#2a1433;--smoke:#8d7a9e;--gold:#d9b06a;--gold2:#f1d79d;--gold3:#a87a3c;--cream:#efe4d2;--muted:#b9a8b6;
  --serif:"Cormorant Garamond","Iowan Old Style",Garamond,Georgia,serif;--caps:"Cormorant SC","Cormorant Garamond",Garamond,Georgia,serif;--ease:cubic-bezier(.22,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
/* ONE-OF-A-KIND ORIGINALS: gold badge on every card (the viewer shows the same badge from data-badge) */
.rm-once{margin:14px auto 0;max-width:34em;font:italic 500 clamp(1.05rem,3.9vw,1.25rem)/1.5 var(--serif);color:var(--gold2);text-shadow:0 1px 10px rgba(0,0,0,.85)}
@media (max-width:520px){.rm-once .rm-br{display:none}}
.rm-orig{margin:0 0 8px;display:flex;justify-content:center}
.rm-orig span{display:inline-flex;align-items:center;gap:.55em;padding:5px 12px 5px;border-radius:999px;font:600 .74rem/1.2 var(--caps);letter-spacing:.16em;text-transform:uppercase;
  color:#f6dfa8;background:linear-gradient(180deg,rgba(74,15,31,.55),rgba(20,8,12,.55));border:1px solid rgba(217,176,106,.7);
  box-shadow:inset 0 0 0 1px rgba(255,236,190,.08),0 0 14px rgba(217,150,80,.18)}
.rm-orig span::before,.rm-orig span::after{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--gold);box-shadow:0 0 6px rgba(217,176,106,.7);flex:none}

/* CLAIMED / RETIRED: put data-status="claimed" or data-status="retired" on a card's <article>.
   Ribbon on the art, art dimmed slightly, Request button replaced by "This original has found its home" (romantasy.js),
   and the viewer shows the same ribbon/message with no Book button. */
.rm-card[data-status] .rm-frame img{opacity:.62}
.rm-card[data-status] .rm-frame::before{content:"Claimed";position:absolute;z-index:2;top:22px;right:-46px;width:180px;padding:7px 0;transform:rotate(45deg);text-align:center;
  font:600 .8rem/1 var(--caps);letter-spacing:.22em;text-transform:uppercase;color:#1c0a0c;background:linear-gradient(135deg,#fbe6b6,#d9a95e 50%,#b07a3c);
  box-shadow:0 4px 14px rgba(0,0,0,.55),inset 0 0 0 1px rgba(80,30,10,.35);pointer-events:none}
.rm-card[data-status="retired"] .rm-frame::before{content:"Retired";color:#efe4d2;background:linear-gradient(135deg,#5a1426,#3a0b19);border-top:1px solid rgba(217,176,106,.55);border-bottom:1px solid rgba(217,176,106,.55)}
.rm-card[data-status] .rm-req{display:none}
.rm-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rm-home{margin:14px 0 0;font:italic 500 1.08rem/1.4 var(--serif);color:var(--gold2)}
.rm-card[data-status] .rm-ap{display:none}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;min-height:100vh;color:var(--cream);font:400 1.14rem/1.6 var(--serif);overflow-x:hidden;
  background:radial-gradient(ellipse 120% 60% at 50% 0%,#1a0b16 0%,transparent 60%),linear-gradient(180deg,#0b060c 0%,#100710 40%,#0a0509 100%)}
a{color:var(--gold2)}
img{max-width:100%;display:block}
.rm-skip{position:absolute;left:-9999px;top:8px;z-index:100;padding:10px 14px;background:var(--night);color:var(--gold2)}
.rm-skip:focus{left:8px}
:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}

/* entry veil: black curtain that slowly lifts */
.rm-veil{position:fixed;inset:0;z-index:90;background:#000;pointer-events:none;opacity:0}
.rm-js .rm-veil{animation:rmVeil 2.4s .15s var(--ease) both}
@keyframes rmVeil{0%{opacity:1}100%{opacity:0;visibility:hidden}}

/* Enter screen (direct visits): black, a faint storm bloom, one button */
.rm-gate{display:none}
.rm-js .rm-gate{position:fixed;inset:0;z-index:95;display:grid;place-items:center;text-align:center;padding:24px;
  background:radial-gradient(ellipse 60% 40% at 72% 18%,rgba(140,110,200,.16),transparent 70%),radial-gradient(ellipse 90% 50% at 50% 115%,rgba(110,26,46,.4),transparent 70%),#040205;
  transition:opacity 1s var(--ease),visibility 1s}
.rm-js .rm-gate[hidden],html.rm-js:not(.rm-gated) .rm-gate{opacity:0;visibility:hidden;pointer-events:none}
.rm-gate-in{max-width:30rem}
.rm-gate-t{margin:.1em 0 .5em;font:500 clamp(2.8rem,13vw,4.6rem)/1 var(--serif);font-style:italic;color:var(--gold2);filter:drop-shadow(0 0 18px rgba(217,150,80,.3))}
.rm-gate-btn{min-height:52px;padding:0 30px;border-radius:999px;cursor:pointer;font:600 1.05rem/1 var(--caps);letter-spacing:.18em;color:var(--gold2);
  background:rgba(74,15,31,.55);border:1px solid rgba(217,176,106,.75);box-shadow:0 0 0 4px rgba(7,4,10,.6),0 0 30px rgba(110,26,46,.55);transition:background .3s,box-shadow .3s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rm-gate-btn:hover,.rm-gate-btn:focus-visible{background:rgba(110,26,46,.75);box-shadow:0 0 0 4px rgba(7,4,10,.6),0 0 40px rgba(217,150,80,.35)}
.rm-gate-hint{margin:1em 0 0;font:italic 400 1rem/1.4 var(--serif);color:var(--muted)}
.rm-js .rm-gate-btn{animation:rmGlow 3.2s ease-in-out infinite}
@keyframes rmGlow{50%{box-shadow:0 0 0 4px rgba(7,4,10,.6),0 0 44px rgba(217,150,80,.38)}}
.rm-gated .rm-veil{animation:none!important;opacity:1}
.rm-gated .rv,.rm-gated .rm-sky img{animation-play-state:paused!important}
/* storm sound mute button (corner) */
.rm-mute{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));z-index:96;width:46px;height:46px;padding:0;
  display:grid;place-items:center;border-radius:50%;cursor:pointer;color:var(--gold2);background:rgba(10,5,10,.66);border:1px solid rgba(217,176,106,.5);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 18px rgba(0,0,0,.5);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rm-mute[hidden]{display:none}
.rm-mute svg{width:22px;height:22px}
.rm-mute .off,.rm-mute[aria-pressed="true"] .on{display:none}
.rm-mute[aria-pressed="true"] .off{display:inline}
.rm-mute[aria-pressed="true"]{color:var(--muted);border-color:rgba(185,168,182,.4)}
.rm-foot{padding-bottom:calc(70px + env(safe-area-inset-bottom))}

/* top bar */
.rm-top{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:calc(10px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left))}
.rm-back,.rm-top-req{display:inline-flex;align-items:center;gap:.45em;min-height:44px;padding:0 14px;border-radius:999px;font:600 .92rem/1 var(--caps);letter-spacing:.08em;
  color:var(--gold2);text-decoration:none;background:rgba(10,5,10,.5);border:1px solid rgba(217,176,106,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .3s,border-color .3s;white-space:nowrap}
.rm-back:hover,.rm-top-req:hover{background:rgba(74,15,31,.6);border-color:var(--gold)}
.rm-top-req{color:var(--cream);border-color:rgba(239,228,210,.25)}
@media (max-width:400px){.rm-top-req{display:none}}

/* HERO */
.rm-hero{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;overflow:hidden;isolation:isolate;
  padding:calc(84px + env(safe-area-inset-top)) 20px 64px;text-align:center}
.rm-sky,.rm-sky img{position:absolute;inset:0;width:100%;height:100%;z-index:-3}
.rm-sky img{object-fit:cover;object-position:50% 40%}
.rm-js .rm-sky img{animation:rmSky 7s var(--ease) both}
@keyframes rmSky{from{transform:scale(1.09);filter:brightness(.45)}to{transform:scale(1);filter:brightness(1)}}
.rm-hero::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(ellipse 70% 55% at 50% 48%,rgba(7,4,10,.62),rgba(7,4,10,.15) 70%),linear-gradient(180deg,rgba(7,4,10,.45),transparent 30%,transparent 62%,var(--ink) 100%)}
/* storm light (driven by romantasy.js, random 2.5-6 s, a new spot each time): .rm-flash briefly lights the clouds
   centered on that strike (--fx/--fy/--fs set per strike),
   .rm-bolts is the canvas with the branching fork. Both sit UNDER the smoke plumes, so forks read as partly behind cloud. */
.rm-flash{position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(circle var(--fs,26vmax) at var(--fx,50%) var(--fy,20%),rgba(196,172,244,.7),rgba(130,104,186,.26) 45%,transparent 100%)}
.rm-bolts{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none;opacity:0;mix-blend-mode:screen}
/* drifting smoke: three blurred plumes moving slowly sideways */
.rm-smoke{position:absolute;inset:-10% -30%;z-index:-1;pointer-events:none;overflow:hidden}
.rm-smoke i{position:absolute;width:70vmax;height:28vmax;border-radius:50%;filter:blur(40px);opacity:.35;will-change:transform;
  background:radial-gradient(ellipse at center,rgba(141,122,158,.55),rgba(74,15,31,.25) 45%,transparent 70%)}
.rm-smoke i:nth-child(1){left:-10%;bottom:6%;animation:rmDrift 38s linear infinite alternate}
.rm-smoke i:nth-child(2){right:-15%;bottom:28%;opacity:.25;animation:rmDrift 52s linear infinite alternate-reverse}
.rm-smoke i:nth-child(3){left:20%;top:8%;opacity:.18;height:20vmax;animation:rmDrift 64s linear infinite alternate}
@keyframes rmDrift{from{transform:translate3d(-8%,0,0) scale(1)}to{transform:translate3d(12%,-4%,0) scale(1.15)}}
.rm-embers{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

.rm-hero-in{position:relative;max-width:46rem}
.rm-eyebrow{margin:0 0 .6em;font:600 .82rem/1.3 var(--caps);letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.rm-title{margin:0;font:500 clamp(3.3rem,15vw,7.6rem)/.95 var(--serif);font-style:italic;letter-spacing:.01em;color:var(--gold2);
  background:linear-gradient(180deg,#fff2cf 0%,#e8c587 38%,#b8823f 70%,#f3d79b 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:none;filter:drop-shadow(0 0 22px rgba(217,150,80,.28)) drop-shadow(0 2px 2px rgba(0,0,0,.6))}
.rm-sub{margin:.55em 0 0;font:500 clamp(1.05rem,4.2vw,1.45rem)/1.3 var(--caps);letter-spacing:.14em;color:var(--cream)}
.rm-rule{display:flex;justify-content:center;margin:22px auto 18px}
.rm-rule span{position:relative;display:block;width:min(240px,60vw);height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.rm-rule span::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;transform:translate(-50%,-50%) rotate(45deg);background:var(--ink);border:1px solid var(--gold);box-shadow:0 0 12px rgba(217,176,106,.6)}
.rm-intro{margin:0 auto;max-width:36em;font:italic 400 clamp(1.08rem,3.9vw,1.3rem)/1.6 var(--serif);color:#e9dccb;text-shadow:0 1px 12px rgba(0,0,0,.8)}
.rm-cta{display:inline-flex;align-items:center;gap:.5em;margin-top:28px;min-height:50px;padding:0 26px;border-radius:999px;font:600 1rem/1 var(--caps);letter-spacing:.16em;
  color:#1c0a0c;text-decoration:none;background:linear-gradient(135deg,#fbe6b6,#d9a95e 45%,#a8733a 75%,#f0cf8d);
  box-shadow:0 0 0 1px rgba(60,20,10,.6) inset,0 10px 30px rgba(0,0,0,.55),0 0 30px rgba(217,150,80,.3);transition:transform .2s,filter .2s}
.rm-cta:hover{filter:brightness(1.08)}.rm-cta:active{transform:translateY(1px)}
.rm-cta span{animation:rmBob 2.6s ease-in-out infinite}
@keyframes rmBob{50%{transform:translateY(3px)}}
/* staged reveal of the hero lines */
.rm-js .rv{opacity:0;transform:translateY(14px);filter:blur(6px);animation:rmIn 1.6s var(--d,0s) var(--ease) forwards}
@keyframes rmIn{to{opacity:1;transform:none;filter:blur(0)}}

/* PIECES */
.rm-pieces{position:relative;padding:40px 0 70px;background:url(velvet.webp) 50% 0/640px auto repeat,#12060c;isolation:isolate}
.rm-pieces::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--ink) 0%,rgba(7,4,10,.72) 12%,rgba(10,4,9,.78) 85%,var(--ink) 100%)}
.rm-wrap{width:min(1180px,100%);margin:0 auto;padding:0 max(16px,env(safe-area-inset-left))}
.rm-sec-hd{text-align:center;margin:0 auto 30px;max-width:40rem}
.rm-sec-hd h2{margin:0;font:500 clamp(2.2rem,9vw,3.4rem)/1.05 var(--serif);font-style:italic;color:var(--gold2)}
.rm-sec-sub{margin:.7em 0 0;color:var(--muted);font-size:1.08rem}
.rm-sec-sub strong{color:var(--cream);font-weight:600;white-space:nowrap}
.rm-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;max-width:460px;margin:0 auto}
@media (min-width:700px){.rm-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:26px}}
@media (min-width:1100px){.rm-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}
.rm-card{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:6px;cursor:zoom-in;
  background:linear-gradient(170deg,rgba(46,14,28,.92),rgba(14,6,12,.96) 60%);
  border:1px solid rgba(217,176,106,.42);box-shadow:0 0 0 4px rgba(7,4,10,.7),0 0 0 5px rgba(168,122,60,.35),0 24px 50px rgba(0,0,0,.6);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.rm-card:hover{transform:translateY(-3px);box-shadow:0 0 0 4px rgba(7,4,10,.7),0 0 0 5px rgba(217,176,106,.55),0 28px 60px rgba(0,0,0,.7),0 0 40px rgba(110,26,46,.45)}
.rm-frame{position:relative;margin:10px 10px 0;aspect-ratio:1/1;overflow:hidden;border-radius:3px;background:#1c1719;box-shadow:inset 0 0 0 1px rgba(241,215,157,.22)}
.rm-frame img{width:100%;height:100%;object-fit:cover}
/* real art is muted healed-ink color: keep it untouched (no filters/blends), on a neutral warm-grey matte with a thin ivory keyline */
.rm-card:not([data-pending]) .rm-frame{aspect-ratio:auto;padding:8px;background:linear-gradient(160deg,#2a2427,#1d181b)}
.rm-card:not([data-pending]) .rm-frame img{height:auto;aspect-ratio:1/1;object-fit:contain;border-radius:2px;box-shadow:0 0 0 1px rgba(239,228,210,.35),0 6px 18px rgba(0,0,0,.45)}
.rm-card:not([data-pending]) .rm-num{top:14px;left:14px;padding:4px 7px;border-radius:3px;background:rgba(12,6,10,.62);text-shadow:none}
.rm-num{position:absolute;top:calc(3% + 12px);left:calc(3% + 12px);font:600 .95rem/1 var(--caps);letter-spacing:.2em;color:rgba(241,215,157,.8);text-shadow:0 1px 6px #000}
/* placeholder veil until the artwork arrives (remove data-pending on the card) */
.rm-soon{display:none}
[data-pending] .rm-soon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:max-content;max-width:86%;text-align:center;
  font:italic 500 1.25rem/1.25 var(--serif);color:rgba(241,215,157,.92);letter-spacing:.03em;text-shadow:0 0 14px rgba(217,150,80,.45),0 2px 6px #000}
[data-pending] .rm-frame::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(circle at 50% 120%,rgba(230,120,50,.28),transparent 55%),linear-gradient(115deg,transparent 35%,rgba(241,215,157,.14) 48%,transparent 60%) 0 0/250% 100% no-repeat}
.rm-js [data-pending] .rm-frame::after{animation:rmSheen 6s ease-in-out infinite}
@keyframes rmSheen{0%{background-position:0 0,120% 0}55%,100%{background-position:0 0,-120% 0}}
.rm-meta{padding:14px 16px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;flex:1}
.rm-meta h3{margin:0;font:500 1.75rem/1.1 var(--serif);font-style:italic;color:var(--gold2)}
.rm-price{margin:.45em 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:0 .45em;font:600 1.05rem/1.35 var(--caps);letter-spacing:.06em;color:var(--cream)}
.rm-price span{white-space:nowrap}
.rm-dot{color:var(--gold)}
.rm-incl{margin:.2em 0 0;font-size:1rem;color:var(--muted)}
.rm-ap{margin:.35em 0 0;font:italic 400 .9rem/1.35 var(--serif);color:rgba(239,228,210,.62)}
.rm-req{margin-top:12px;min-height:46px;padding:0 22px;border-radius:999px;cursor:pointer;font:600 1rem/1 var(--caps);letter-spacing:.14em;color:var(--gold2);
  background:linear-gradient(180deg,rgba(110,26,46,.9),rgba(74,15,31,.95));border:1px solid rgba(217,176,106,.7);
  box-shadow:0 0 0 3px rgba(7,4,10,.5),0 8px 22px rgba(0,0,0,.5),0 0 18px rgba(110,26,46,.5) ;transition:filter .2s,transform .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rm-req:hover{filter:brightness(1.18)}.rm-req:active{transform:translateY(1px)}
.rm-how{margin:40px auto 0;max-width:38rem;text-align:center;color:var(--muted)}
.rm-how p{margin:.4em 0}
.rm-how em{color:var(--cream)}
.rm-how-ap{font-size:.98rem}
.rm-how a{color:var(--gold2);text-underline-offset:3px;white-space:nowrap}
/* "What to expect": honest healed-tattoo notes, collapsed by default */
.rm-exp{align-self:stretch;margin:12px 0 0;text-align:left;border-top:1px solid rgba(217,176,106,.25);border-bottom:1px solid rgba(217,176,106,.25)}
.rm-exp summary{display:flex;align-items:center;justify-content:center;gap:.5em;min-height:44px;cursor:pointer;list-style:none;font:600 .95rem/1.2 var(--caps);letter-spacing:.12em;color:var(--gold);-webkit-tap-highlight-color:transparent}
.rm-exp summary::-webkit-details-marker{display:none}
.rm-exp summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s}
.rm-exp[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.rm-exp p{margin:0 4px 10px;font-size:1.02rem;line-height:1.5;color:#ddd0c4}
.rm-exp .rm-exp-soft{font-style:italic;color:var(--gold2)}
.rm-how-exp{font-size:1rem}
/* odd card counts: center the last one on its own row */
@media (min-width:700px) and (max-width:1099px){.rm-grid>.rm-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 13px)}}
/* desktop: 6-track grid, each card spans 2, so a lone last card sits in the middle and a last pair is centered too */
@media (min-width:1100px){.rm-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.rm-grid>.rm-card{grid-column:span 2}
  .rm-grid>.rm-card:last-child:nth-child(3n+1){grid-column:3/span 2}
  .rm-grid>.rm-card:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}}
/* scroll reveal for section items */
.rm-js .rv-s{opacity:0;transform:translateY(22px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rm-js .rv-s.seen{opacity:1;transform:none}

/* FOOTER */
.rm-foot{padding:36px 18px calc(36px + env(safe-area-inset-bottom));text-align:center;color:var(--muted);font-size:1rem;background:var(--ink)}
.rm-foot .rm-rule{margin:0 auto 26px}
.rm-foot p{margin:.9em 0 0}
.rm-fine{font-size:.86rem;opacity:.7}
.rm-back-b{font-size:1rem}

/* viewer (assets/viewer) restyled for this page only */
.rm .vw{--panel:#170a12;--cream:#efe4d2;--muted:#b9a8b6;font-family:var(--serif)}
.rm .vw-dim{background:rgba(6,2,6,.82)}
.rm .vw-pv{background:linear-gradient(170deg,#2a0e1c,#0e060c 70%)}
.rm .vw-pv .pv-art,.rm .bk-hd img{background:#0b0509}
.rm .vw-ex{background:radial-gradient(ellipse 80% 60% at 50% 42%,#2a0f1e,#070308)}
.rm .vw-bk{background:linear-gradient(175deg,#2a0e1c,#12070f 60%,#0b0509)}
.rm .vw-cap,.rm .vw-t,.rm .vw-pr,.rm .vw-book,.rm .vw-hint,.rm .ex-zh{font-family:var(--caps)!important}
.rm .vw-t{font-family:var(--serif)!important;font-style:italic;font-weight:500}
.rm .vw-form input{background:rgba(12,4,9,.85)}
.rm .pv-more,.rm .ex-strip{background:rgba(10,4,8,.9)}
.rm .vw .ap-vw{font-family:var(--serif);font-style:italic}
.rm .vw-pv .vw-exp summary{font-family:var(--caps)}
.rm .vw-pv .vw-exp p{font-family:var(--serif)}

@media (prefers-reduced-motion:reduce){
  .rm-js .rm-veil{animation:none;display:none}
  .rm-js .rm-gate,.rm-js .rm-gate-btn{transition:none;animation:none}
  .rm-js .rm-sky img,.rm-smoke i,.rm-cta span,.rm-js [data-pending] .rm-frame::after{animation:none}
  .rm-js .rv{animation:none;opacity:1;transform:none;filter:none}
  .rm-js .rv-s{opacity:1;transform:none;transition:none}
  .rm-card,.rm-card:hover{transition:none;transform:none}
  .rm-bolts.rm-still{opacity:.3}   /* reduced motion: faint static forks, no flashes */
}
@media (max-width:360px){.rm-price{flex-direction:column;align-items:center}.rm-price .rm-dot{display:none}}
#rm-title:focus{outline:none}
.rm-card{scroll-margin-top:calc(76px + env(safe-area-inset-top))}   /* landing on romantasy.html#<card id> (home banner) */
/* "Gift this" under "Request this piece" (added by romantasy.js; never on claimed/retired cards) */
.rm-gift{display:inline-flex;align-items:center;justify-content:center;gap:.5em;margin-top:10px;min-height:44px;padding:0 18px;border-radius:999px;font:600 .92rem/1 var(--caps);letter-spacing:.14em;color:var(--gold);text-decoration:none;
  background:rgba(7,4,10,.45);border:1px solid rgba(217,176,106,.45);transition:color .2s,border-color .2s,background .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rm-gift:hover,.rm-gift:focus-visible{color:var(--gold2);border-color:rgba(217,176,106,.8);background:rgba(110,26,46,.35)}
.rm-gift svg{width:16px;height:16px;flex:none}
.rm-card[data-status] .rm-gift{display:none}
