/* Page 1 - hero, branch switch, notes, coins, flag ribbon, 3D rate card.
   Loaded in number order by templates/site.php (order matters: later files win). */
/* ===== 1 · HOME ===== */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center}
.hero-grid h1 span{display:block}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.stage{position:relative;width:100%;height:330px;perspective:1500px}
.rig{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--ease)}
.rig > *{position:absolute;transform-style:preserve-3d;pointer-events:none}  /* decorative layers never block clicks */
.glow{left:50%;top:50%;width:620px;height:620px;margin:-310px 0 0 -310px;border-radius:50%;background:radial-gradient(closest-side,rgba(226,189,120,.25),rgba(226,189,120,.05) 60%,transparent);transform:translateZ(-220px)}
.orbit{left:50%;top:58%;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;border:1px solid rgba(226,189,120,.3);transform:rotateX(76deg)}
.orbit.o2{width:600px;height:600px;margin:-300px 0 0 -300px;border-color:rgba(226,189,120,.14)}
.orbit::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 16px var(--gold);top:-5px;left:50%;margin-left:-5px}
.note{width:min(46%,290px);pointer-events:none}
.note{will-change:transform;animation:noteIn 1.4s var(--ease) both}
.note-eur{animation-delay:.1s}.note-gbp{animation-delay:.25s}.note-myr{animation-delay:.4s}.note-usd{animation-delay:.55s}
@keyframes noteIn{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
.note img{width:100%}  /* shadow is baked into the image: no runtime filter */
.note-eur{left:-14%;top:-2%}
.note-gbp{right:-14%;top:-2%}
.note-myr{left:-14%;bottom:-2%}
.note-usd{right:-14%;bottom:-2%}
.coin-wrap{right:4%;top:6%;width:0;height:0}
.coin{--r:62px;--t:14px;position:absolute;left:calc(var(--r) * -1);top:calc(var(--r) * -1);width:calc(var(--r)*2);height:calc(var(--r)*2);transform-style:preserve-3d}
.coin-face{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 34% 28%,#fff4d2 0%,#f1d08b 22%,#d8aa5c 48%,#a87b38 72%,#7a5522 100%);
  box-shadow:inset 0 0 0 6px rgba(122,85,34,.55),inset 0 0 0 9px rgba(255,236,190,.5),inset 0 -14px 30px rgba(80,50,10,.55)}
.coin-face svg{position:absolute;inset:0;width:100%;height:100%}
.coin-front{transform:translateZ(calc(var(--t)/2))}
.coin-back{transform:rotateY(180deg) translateZ(calc(var(--t)/2))}
.coin-mark{font:700 40px/1 var(--serif);color:#6b4815;text-shadow:0 1px 0 rgba(255,240,200,.8),0 -1px 0 rgba(70,40,5,.5)}
.coin-back img{width:58%;filter:sepia(.4) saturate(1.1)}
.coin-edge{position:absolute;left:50%;top:50%;width:16px;height:var(--t);margin:calc(var(--t)/-2) 0 0 -8px;background:repeating-linear-gradient(90deg,#b88a43 0 2px,#e7c27b 2px 4px);backface-visibility:hidden}
.coin-shadow{display:none;left:46%;top:84%;width:280px;height:44px;margin-left:-140px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);transform:rotateX(80deg) translateZ(-120px)}
/* hero layout */
.c-home .ch-in{min-height:100svh;padding:calc(var(--head) + 24px) 0 0;justify-content:flex-start}
.hero-main{flex:1;display:flex;align-items:center;padding-bottom:28px}
.hero-grid h1{font-size:clamp(40px,5.2vw,74px)}
.gr{position:relative}
.btn svg path[fill]{fill:var(--gold)}
.gr-menu{position:absolute;left:0;top:calc(100% + 10px);z-index:30;min-width:280px;padding:8px;border-radius:18px;border:1px solid var(--line);background:#0b2639;box-shadow:0 30px 60px -20px rgba(0,0,0,.85);
  transform-origin:20% 0;animation:menuIn .35s var(--ease) both}
@keyframes menuIn{from{opacity:0;transform:perspective(600px) rotateX(-14deg) translateY(-6px)}to{opacity:1;transform:none}}
.gr-menu a,.gr-menu span{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border-radius:12px;text-decoration:none;font:600 13px/1.2 var(--serif);letter-spacing:.08em}
.gr-menu a:hover,.gr-menu a:focus-visible{background:rgba(226,189,120,.12);color:var(--gold-hi)}
.gr-menu a svg{width:14px;height:14px;color:var(--gold)}
.gr-menu span{color:var(--dim)}
.gr-menu span small{font:600 10px var(--serif);letter-spacing:.12em;color:var(--gold)}
.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:30px}
.updated{display:inline-flex;align-items:center;gap:10px;font:600 11.5px/1 var(--serif);letter-spacing:.14em;color:var(--mist)}
.updated::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(134,214,174,.18)}
.sample{display:inline-flex;padding:5px 10px;border-radius:999px;border:1px dashed rgba(226,189,120,.55);font:600 11px/1 var(--serif);letter-spacing:.12em;color:var(--gold)}
.rate-side{display:grid;justify-items:center;gap:14px}
.chips{position:relative;z-index:6;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-bottom:10px}
.chips .ind{position:absolute;bottom:0;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi));left:var(--l,0);width:var(--wd,0);transition:left .55s var(--ease),width .55s var(--ease);box-shadow:0 0 12px rgba(226,189,120,.6)}
.chips .ind i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(0);background:rgba(4,17,32,.7)}
.chips .ind i.run{animation:drain 6s linear forwards}
@keyframes drain{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.chip{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:6px 18px 6px 6px;border-radius:999px;border:1px solid var(--line-soft);background:rgba(10,35,54,.7);cursor:pointer;
  transition:border-color .35s,background .35s,transform .5s var(--ease)}
.chip .sym{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font:700 14px/1 var(--figure);color:#5c3d10;
  background:radial-gradient(circle at 35% 30%,#fff1c8,var(--gold) 55%,var(--gold-lo));box-shadow:inset 0 0 0 2px rgba(122,85,34,.4)}
.chip b{font:700 18px/1 var(--royal);letter-spacing:.08em}
.chip:hover{border-color:var(--line)}
.chip[aria-selected="true"]{border-color:var(--gold);background:linear-gradient(180deg,rgba(226,189,120,.2),rgba(10,35,54,.7));transform:translateY(-3px);box-shadow:0 10px 24px -12px rgba(226,189,120,.7)}
.chip[aria-selected="true"] .sym{animation:symSpin .8s var(--ease)}
@keyframes symSpin{from{transform:rotateY(0)}to{transform:rotateY(360deg)}}
.chip .sym{transform-style:preserve-3d}
.chip-bar{display:none}
/* branch switch above the rate card */
.rb{position:relative;z-index:6;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.rb > small{font:600 11px/1 var(--serif);letter-spacing:.22em;color:var(--dim);margin-right:4px}
.rb button{font:700 11px/1 var(--serif);letter-spacing:.14em;color:var(--mist);padding:10px 14px;border-radius:999px;border:1px solid var(--line-soft);background:rgba(10,35,54,.6);cursor:pointer;white-space:nowrap;
  transition:color .3s,background .3s,border-color .3s,transform .5s var(--ease)}
.rb button:hover{border-color:var(--line);color:var(--ivory)}
.rb button[aria-selected="true"]{color:#1b1206;border-color:transparent;background:linear-gradient(180deg,#fff1c8,var(--gold) 60%,var(--gold-lo));box-shadow:0 10px 22px -12px rgba(226,189,120,.9);transform:translateY(-2px)}
/* face without a rate: only the flag, code and a large symbol */
.f-na{display:none}
.face.na .f-rates{display:none}
.face.na .f-na{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;position:relative;z-index:1}
.f-na b{font:700 86px/1 var(--figure);background:linear-gradient(180deg,#fff3cf,var(--gold-hi) 35%,var(--gold) 70%,#b8873f);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}
.f-na span{font:600 11px/1.5 var(--serif);letter-spacing:.22em;color:var(--mist)}
.face.live .f-na b{animation:symIn .9s var(--ease) .25s both}
@keyframes symIn{from{opacity:0;transform:scale(.4) rotateY(90deg)}60%{transform:scale(1.08) rotateY(0)}to{opacity:1;transform:none}}
.prism-tilt.swap .prism{animation:swapSpin .9s cubic-bezier(.4,0,.2,1)}
@keyframes swapSpin{50%{transform:translateZ(calc(var(--a) * -1)) rotateY(calc(var(--ang,0deg) + 180deg)) scale(.8)}}

/* flag ribbon: straight, seamless */
.flags{position:relative;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(14,44,67,.85),rgba(5,20,34,.95));overflow:hidden}
.flags::before,.flags::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.flags::before{left:0;background:linear-gradient(90deg,#05162a,transparent)}
.flags::after{right:0;background:linear-gradient(-90deg,#05162a,transparent)}
.flag-track{display:flex;width:max-content;animation:tick 60s linear infinite;will-change:transform}
.flags:hover .flag-track{animation-play-state:paused}
@keyframes tick{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.fl{display:flex;align-items:center;gap:12px;padding:18px 28px;white-space:nowrap;border-right:1px solid var(--line-soft)}
.fl img{width:38px;height:27px;border-radius:5px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 6px 12px -4px rgba(0,0,0,.6)}
.fl b{font:700 15px/1 var(--serif);letter-spacing:.14em;color:var(--gold-hi)}
.fl span{font:500 19px/1 var(--sans);color:var(--ivory)}

/* pickers (reviews) */
.picker{display:grid;gap:12px;margin-top:32px}
.pick{display:flex;align-items:center;gap:18px;width:100%;padding:14px 20px 14px 14px;border-radius:22px;border:1px solid var(--line-soft);background:rgba(10,35,54,.55);text-align:left;cursor:pointer;
  transition:transform .5s var(--ease),border-color .3s,background .3s}
.pick:hover{border-color:var(--line)}
.pick .sym{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font:700 19px/1 var(--serif);color:#5c3d10;
  background:radial-gradient(circle at 35% 30%,#fff1c8,var(--gold) 55%,var(--gold-lo));box-shadow:inset 0 0 0 3px rgba(122,85,34,.4),0 10px 20px -8px rgba(226,189,120,.5)}
.pick b{display:block;font:700 20px/1.1 var(--serif);letter-spacing:.12em}
.pick small{display:block;font-size:18px;color:var(--mist)}
.pick .chev{margin-left:auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold);transition:transform .5s var(--ease),background .3s}
.pick .chev svg{width:14px;height:14px}
.pick[aria-selected="true"]{border-color:var(--gold);background:linear-gradient(90deg,rgba(226,189,120,.16),rgba(10,35,54,.55));transform:translateX(12px)}
.pick[aria-selected="true"] .chev{background:var(--gold);color:#1b1206;transform:rotate(-45deg)}
/* floating 3D currency coins (CSS animation → runs on the GPU) */
.coin3d{--s:92px;--z:-80px;width:var(--s);height:var(--s);transform-style:preserve-3d;pointer-events:none;
  animation:coinFlip 5s cubic-bezier(.45,.05,.55,.95) infinite;will-change:transform}
.coin3d .cf{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.coin3d .cf.cb{transform:translateZ(-9px) rotateY(180deg)}   /* back face (more specific than the front-face rule below) */
/* coin flip: a full turn while floating up and back down, with a little tilt */
@keyframes coinFlip{
  0%{transform:translate3d(0,0,var(--z)) rotateX(8deg) rotateY(0deg)}
  50%{transform:translate3d(0,-16px,var(--z)) rotateX(-6deg) rotateY(180deg)}
  100%{transform:translate3d(0,0,var(--z)) rotateX(8deg) rotateY(360deg)}}
.coin3d > div{position:absolute;inset:0;border-radius:50%}
.coin3d .cd{background:linear-gradient(90deg,#6f4c1b,#c39147 45%,#e2b86a 55%,#7a5520)}
.coin3d .d1{transform:translateZ(-6px)}.coin3d .d2{transform:translateZ(-3px)}.coin3d .d3{transform:translateZ(0)}
.coin3d .cf{transform:translateZ(3px);display:grid;place-content:center;justify-items:center;
  background:radial-gradient(circle at 32% 26%,#fff6da 0%,#f2d08c 22%,#d8aa5c 50%,#a87b38 76%,#77531f 100%);
  box-shadow:inset 0 0 0 calc(var(--s)*.045) rgba(122,85,34,.55),inset 0 0 0 calc(var(--s)*.075) rgba(255,236,190,.45),inset 0 calc(var(--s)*-.12) calc(var(--s)*.2) rgba(80,50,10,.5)}
.coin3d b{font:700 calc(var(--s)*.44)/1 var(--figure);color:#5c3d10;text-shadow:0 1px 0 rgba(255,242,205,.85),0 -1px 0 rgba(70,40,5,.45)}
.coin3d small{margin-top:calc(var(--s)*.02);font:700 calc(var(--s)*.11)/1 var(--serif);letter-spacing:.16em;color:#6b4815}
@keyframes coinFloat{
  0%,100%{transform:translate3d(0,0,var(--z)) rotateY(-32deg) rotateX(10deg) rotateZ(-4deg)}
  50%{transform:translate3d(0,-16px,var(--z)) rotateY(32deg) rotateX(-8deg) rotateZ(4deg)}}
.c-jpy{left:17%;top:1%;--s:52px;--z:-120px;animation-duration:5.6s;animation-delay:-2.1s;opacity:.85}
.c-sgd{right:15%;top:40%;--s:58px;--z:-60px;animation-duration:4.8s;animation-delay:-.9s}
.c-myr{left:13%;top:46%;--s:46px;--z:-140px;animation-duration:6.2s;animation-delay:-3.7s;opacity:.85}
.c-sgd b,.c-myr b{font-size:calc(var(--s)*.36);letter-spacing:-.03em}
/* rate prism */
.stage .prism-stage{position:absolute;inset:0}
.prism-stage{position:relative;width:100%;height:330px;display:grid;place-items:center;perspective:1700px}
.prism-tilt{transform-style:preserve-3d;transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .6s var(--ease);animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{translate:0 -12px}}
.prism{--w:248px;--h:286px;--a:calc(var(--w) * .2887);position:relative;width:var(--w);height:var(--h);transform-style:preserve-3d;
  transform:translateZ(calc(var(--a) * -1)) rotateY(var(--ang,0deg));transition:transform 1.25s cubic-bezier(.34,1.3,.4,1)}  /* slight overshoot */
.prism-tilt.turning{animation:turnDip 1.25s cubic-bezier(.4,0,.2,1)}
@keyframes turnDip{40%{scale:.94}100%{scale:1}}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateY(calc(var(--f) * 120deg)) translateZ(var(--a));
  border-radius:22px;padding:18px 20px 16px;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(140% 90% at 50% -20%,rgba(226,189,120,.28),transparent 60%),
    linear-gradient(170deg,#163f5c 0%,#0d2b44 55%,#081f33 100%);
  border:1px solid rgba(226,189,120,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(0,0,0,.4),0 30px 50px -24px rgba(0,0,0,.85)}
.face::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.07) 45%,transparent 55%);background-size:250% 100%;background-position:var(--glare,100%) 0;pointer-events:none}
.face::after{content:"";position:absolute;inset:-40%;z-index:3;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent 42%,rgba(255,244,210,.5) 50%,transparent 58%);transform:translateX(-70%)}
.face.live::after{animation:sweep 1.1s cubic-bezier(.3,0,.2,1) .35s both}
@keyframes sweep{0%{opacity:0;transform:translateX(-70%)}15%{opacity:1}100%{opacity:0;transform:translateX(70%)}}
.face.live .f-top img{animation:flagPop .7s var(--ease) .3s both}
@keyframes flagPop{0%{transform:scale(.6) rotate(-8deg)}60%{transform:scale(1.12) rotate(2deg)}100%{transform:none}}
.face.live .f-top b{animation:codeIn .7s var(--ease) .25s both}
@keyframes codeIn{from{opacity:0;transform:translateY(10px);letter-spacing:.3em}to{opacity:1;transform:none;letter-spacing:.08em}}
.face.live .f-rate{animation:rowIn .6s var(--ease) both}
.face.live .f-rate.buy{animation-delay:.12s}
@keyframes rowIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pulse{position:absolute;left:50%;top:50%;width:var(--w);height:var(--h);margin:calc(var(--h)/-2) 0 0 calc(var(--w)/-2);border-radius:26px;border:1.5px solid var(--gold);pointer-events:none;opacity:0;transform:translateZ(-40px)}
.pulse.go{animation:ring 1.1s cubic-bezier(.2,.7,.3,1) both}
@keyframes ring{0%{opacity:.8;transform:translateZ(-40px) scale(1)}100%{opacity:0;transform:translateZ(-40px) scale(1.35)}}
.pedestal.go{animation:pedFlash 1s ease-out}
@keyframes pedFlash{30%{opacity:1;transform:scale(1.08)}}
/* header: flag + code */
.f-top{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
.f-top > div{min-width:0}
.f-top img{width:44px;height:31px;border-radius:6px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.22),0 10px 20px -6px rgba(0,0,0,.6)}
.f-top b{display:block;font:700 30px/1 var(--royal);letter-spacing:.08em;background:linear-gradient(180deg,#fff3cf,var(--gold-hi) 35%,var(--gold) 70%,#b8873f);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.4))}
.f-top small{display:block;font:600 11px/1.25 var(--serif);letter-spacing:.12em;text-transform:uppercase;color:var(--mist);margin-top:6px}
/* rates: two plain rows, one hairline between */
.f-rates{position:relative;z-index:1;margin-top:auto;display:grid}
.f-rate{display:flex;flex-direction:column;gap:5px;padding:10px 0}
.f-rate.sell{border-bottom:1px solid rgba(226,189,120,.28)}
.f-rate > span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font:700 11px/1 var(--serif);letter-spacing:.24em;color:var(--gold);white-space:nowrap}
.f-rate > span em{font:600 11px/1 var(--sans);font-style:normal;letter-spacing:.02em;color:var(--mist);text-transform:none}
.f-rate.buy > span{color:var(--mist)}
.f-rate strong{display:inline-flex;align-items:baseline;gap:6px;font:700 38px/1 var(--figure);font-variant-numeric:lining-nums tabular-nums;letter-spacing:.01em;color:var(--gold-hi);text-shadow:0 2px 0 rgba(0,0,0,.35),0 0 30px rgba(226,189,120,.25)}
.f-rate strong small{font:700 13px/1 var(--serif);letter-spacing:.1em;color:var(--gold);opacity:.85}
.f-rate strong b{font:inherit}
.f-rate.buy strong{color:var(--ivory)}
.f-rate.buy strong small{color:var(--mist)}
.f-unit{position:relative;z-index:1;margin-top:10px;padding-top:10px;border-top:1px solid rgba(226,189,120,.28);display:flex;justify-content:space-between;align-items:center;font:600 11px/1 var(--serif);letter-spacing:.2em;color:var(--dim)}
.f-upd{color:var(--gold);opacity:.8}
.f-live{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--serif);letter-spacing:.18em;color:var(--ok);font-style:normal}
.f-live i{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(134,214,174,.6);animation:livePulse 2s ease-out infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 7px rgba(134,214,174,0)}100%{box-shadow:0 0 0 0 rgba(134,214,174,0)}}
.face::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.08) 45%,transparent 55%);background-size:250% 100%;background-position:var(--glare,100%) 0;pointer-events:none}
.face::after{content:"";position:absolute;inset:-40%;z-index:3;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent 42%,rgba(255,244,210,.55) 50%,transparent 58%);transform:translateX(-70%)}
.face.live::after{animation:sweep 1.1s cubic-bezier(.3,0,.2,1) .35s both}
@keyframes sweep{0%{opacity:0;transform:translateX(-70%)}15%{opacity:1}100%{opacity:0;transform:translateX(70%)}}
.face.live .f-top img{animation:flagPop .7s var(--ease) .3s both}
@keyframes flagPop{0%{transform:scale(.6) rotate(-8deg)}60%{transform:scale(1.12) rotate(2deg)}100%{transform:none}}
.face.live .f-top b{animation:codeIn .7s var(--ease) .25s both}
@keyframes codeIn{from{opacity:0;transform:translateY(10px);letter-spacing:.3em}to{opacity:1;transform:none;letter-spacing:.06em}}
.face.live .f-rate{animation:rowIn .6s var(--ease) both}
.face.live .f-rate.buy{animation-delay:.12s}
@keyframes rowIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.pulse{position:absolute;left:50%;top:50%;width:var(--w);height:var(--h);margin:calc(var(--h)/-2) 0 0 calc(var(--w)/-2);border-radius:24px;border:1.5px solid var(--gold);pointer-events:none;opacity:0;transform:translateZ(-40px)}
.pulse.go{animation:ring 1.1s cubic-bezier(.2,.7,.3,1) both}
@keyframes ring{0%{opacity:.8;transform:translateZ(-40px) scale(1)}100%{opacity:0;transform:translateZ(-40px) scale(1.35)}}
.pedestal.go{animation:pedFlash 1s ease-out}
@keyframes pedFlash{30%{opacity:1;transform:scale(1.08)}}
.f-top{position:relative;z-index:1;display:grid;grid-template-columns:46px 1fr;align-items:center;gap:12px;padding:6px 8px 12px;margin:0 -4px;border-bottom:1px solid rgba(226,189,120,.3);background:linear-gradient(180deg,rgba(226,189,120,.08),transparent)}
.f-top > div{min-width:0}
.f-top img{width:46px;height:33px;border-radius:7px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.2),0 10px 20px -6px rgba(0,0,0,.6)}
.f-top b{display:block;font:700 30px/1 var(--royal);letter-spacing:.06em;background:linear-gradient(180deg,#fff3cf,var(--gold-hi) 35%,var(--gold) 70%,#b8873f);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.4))}
.f-top small{display:block;font:600 11px/1.2 var(--serif);letter-spacing:.14em;text-transform:uppercase;color:var(--mist);margin-top:7px}
/* odometer digits: each column holds 0-9 and rolls to the right one */
.odo{display:inline-flex;height:1em;line-height:1;overflow:hidden;
  -webkit-mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}
.odo .col{position:relative;height:1em;width:.58em;overflow:hidden}
.odo .col.dot{width:.3em}
.odo .reel{display:flex;flex-direction:column;transform:translateY(calc(var(--n,0) * -1em));transition:transform 1.25s cubic-bezier(.22,.9,.3,1);transition-delay:calc(var(--d,0) * 60ms + 250ms)}
.odo .reel span{display:block;height:1em;text-align:center}
.odo.prime .reel{transition:none}
.pedestal{position:absolute;left:50%;bottom:0;width:280px;height:60px;margin-left:-140px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(226,189,120,.26),rgba(226,189,120,.08) 55%,rgba(226,189,120,.02) 80%,transparent)}
.pedestal::after{content:"";position:absolute;inset:18px 60px;border-radius:50%;border:1px solid rgba(226,189,120,.35)}

