/* ============================================================
   BRIDAL WEAR HOUSE · CINEMATIC INTRO
   ============================================================ */
.stage{position:fixed;inset:0;z-index:80;overflow:hidden}
.stage-gate,.stage-welcome{display:none}
.stage-intro{display:none}
body[data-stage="gate"] .stage-gate{display:grid}
body[data-stage="intro"] .stage-intro{display:block}
body[data-stage="welcome"] .stage-welcome{display:grid}
body[data-stage="site"] .stage{display:none !important}
.site[hidden]{display:none}

/* ---------------- STAGE 0 · GATE ---------------- */
.stage-gate{
  place-items:center;
  background:
    radial-gradient(circle at 50% 32%, #fffefb 0%, #fdf7ea 34%, #f7ead0 62%, #f1ddb4 100%);
  padding:24px;
}
.gate-glow{
  position:absolute;width:min(78vw,760px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(249,232,189,.55) 42%,rgba(249,232,189,0) 70%);
  filter:blur(6px);animation:gatePulse 7s ease-in-out infinite;
}
.gate-shine{
  position:absolute;inset:-40% -10%;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.85) 48%,rgba(255,255,255,.2) 54%,transparent 62%);
  transform:translateX(-40%);animation:gateShine 6.5s var(--ease) infinite;
  mix-blend-mode:screen;opacity:.8;
}
.gate-inner{position:relative;text-align:center;z-index:2;display:flex;flex-direction:column;align-items:center;max-width:640px}
.gate-mark{position:relative;width:clamp(150px,30vw,210px);aspect-ratio:1;display:grid;place-items:center;margin-bottom:1.1rem}
.gate-halo{position:absolute;inset:-8%;border-radius:50%;background:conic-gradient(from 0deg,rgba(238,196,110,.05),rgba(238,196,110,.6),rgba(255,255,255,.1),rgba(207,143,44,.55),rgba(238,196,110,.05));filter:blur(14px);animation:spinSlow 18s linear infinite;opacity:.85}
.gate-logo{width:100%;height:100%;object-fit:contain;position:relative;filter:drop-shadow(0 18px 30px rgba(173,114,31,.25));animation:gateLogoIn 1.6s var(--ease-out) both, floatY 6s ease-in-out 1.6s infinite}
.gate-brand{font-family:var(--serif);font-size:clamp(2.1rem,6.4vw,3.4rem);font-weight:500;letter-spacing:-.01em;line-height:1;margin-bottom:.5rem}
.gate-brand .scr{font-size:1.16em;color:var(--gold-600)}
.gate-brand em{font-style:normal;font-family:var(--caps);font-size:.42em;letter-spacing:.42em;color:var(--ink-2);display:inline-block;margin-left:.15em;transform:translateY(-.45em)}
.gate-sub{font-family:var(--serif);font-style:italic;font-size:clamp(.92rem,2.4vw,1.08rem);color:var(--ink-3);letter-spacing:.02em;margin-bottom:1.9rem}
.gate-sub span{color:var(--gold-700)}
.btn.gate-enter{font-size:.76rem;padding:1.05em 2.4em;box-shadow:0 18px 40px -18px rgba(173,114,31,.8),inset 0 1px 0 rgba(255,255,255,.7);animation:gateBtnPulse 3.4s ease-in-out infinite}
.btn.gate-enter svg{width:1.05em}
.gate-note{margin-top:1rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-4)}
@keyframes gateLogoIn{from{opacity:0;transform:scale(.82) translateY(18px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes gatePulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}
@keyframes gateShine{0%{transform:translateX(-60%)}55%,100%{transform:translateX(60%)}}
@keyframes gateBtnPulse{0%,100%{box-shadow:0 18px 40px -18px rgba(173,114,31,.75),inset 0 1px 0 rgba(255,255,255,.7)}50%{box-shadow:0 22px 52px -16px rgba(173,114,31,.95),inset 0 1px 0 rgba(255,255,255,.7)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ---------------- STAGE 1 · COIN ---------------- */
.stage-intro{
  background:
    radial-gradient(circle at 50% 22%, #fffdf7 0%, #fdf3dd 24%, #f8e3b4 48%, #eec475 72%, #d3a04a 100%);
}
.intro-bg{position:absolute;inset:0;overflow:hidden}
.intro-whitewash{
  position:absolute;inset:0;
  background:radial-gradient(circle at 50% 30%,#ffffff 0%,#fffdf6 30%,rgba(255,253,246,0) 68%);
  opacity:1;animation:whiteWashOut 3.2s var(--ease-out) forwards;
}
@keyframes whiteWashOut{0%{opacity:1}60%{opacity:.55}100%{opacity:.12}}
.intro-rays{
  position:absolute;inset:-35% -35%;opacity:.34;
  background:conic-gradient(from 0deg,
    rgba(255,255,255,0) 0deg, rgba(255,255,255,.55) 6deg, rgba(255,255,255,0) 14deg,
    rgba(255,255,255,0) 60deg, rgba(255,255,255,.4) 66deg, rgba(255,255,255,0) 76deg,
    rgba(255,255,255,0) 140deg, rgba(255,255,255,.5) 148deg, rgba(255,255,255,0) 158deg,
    rgba(255,255,255,0) 230deg, rgba(255,255,255,.45) 238deg, rgba(255,255,255,0) 248deg,
    rgba(255,255,255,0) 300deg, rgba(255,255,255,.5) 308deg, rgba(255,255,255,0) 318deg);
  filter:blur(6px);animation:spinSlow 60s linear infinite;mask-image:radial-gradient(circle,#000 20%,transparent 66%);-webkit-mask-image:radial-gradient(circle,#000 20%,transparent 66%);
}
.intro-floor{
  position:absolute;left:50%;bottom:6%;width:min(80vw,620px);height:120px;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(173,114,31,.3),rgba(173,114,31,0) 70%);filter:blur(10px);
}
.fx-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
.intro-sky{position:absolute;inset:0;display:grid;place-items:center;perspective:1300px;z-index:4}
.intro-scene{
  position:relative;width:min(74vw,360px);aspect-ratio:1;display:block;
  transform-style:preserve-3d;
  transition:transform 1.5s var(--ease-out),opacity .9s;
  animation:sceneDrop 2.6s cubic-bezier(.2,.8,.3,1) both;
}
.intro-scene.landed{animation:none;transform:translateY(19vh) scale(.6);opacity:.98}
@keyframes sceneDrop{
  0%{transform:translateY(-112vh) scale(.86);opacity:0}
  8%{opacity:1}
  46%{transform:translateY(0) scale(1)}
  56%{transform:translateY(-46px) scale(1.02)}
  66%{transform:translateY(0) scale(1)}
  74%{transform:translateY(-16px) scale(1.005)}
  82%,100%{transform:translateY(0) scale(1)}
}
.axis{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d;pointer-events:none}
.axis-beam{
  position:absolute;left:50%;margin-left:-1px;width:2px;height:150%;top:-25%;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,250,235,.95) 22%,rgba(255,214,138,.95) 50%,rgba(255,250,235,.9) 78%,rgba(255,255,255,0));
  box-shadow:0 0 18px 4px rgba(255,236,190,.85),0 0 60px 16px rgba(238,196,110,.45);
  animation:beamPulse 3.6s ease-in-out infinite;
}
.axis-ring{
  position:absolute;width:78%;height:26%;border-radius:50%;bottom:6%;left:11%;
  border:1px solid rgba(173,114,31,.42);box-shadow:0 0 30px rgba(255,236,190,.7),inset 0 0 24px rgba(255,255,255,.5);
  transform:rotateX(76deg);animation:ringPulse 4s ease-in-out infinite;
}
.axis-ring::after{content:"";position:absolute;inset:8%;border-radius:50%;border:1px dashed rgba(255,255,255,.7);animation:spinSlow 22s linear infinite}
.axis-spark{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff8e2;box-shadow:0 0 12px 4px rgba(255,226,160,.95);animation:sparkFloat 5s ease-in-out infinite}
.axis-spark.s1{left:32%;top:24%;animation-delay:.2s}
.axis-spark.s2{right:26%;top:44%;animation-delay:1.4s}
.axis-spark.s3{left:44%;bottom:18%;animation-delay:2.6s}
@keyframes beamPulse{0%,100%{opacity:.8;transform:scaleY(.98)}50%{opacity:1;transform:scaleY(1.02)}}
@keyframes ringPulse{0%,100%{opacity:.6;transform:rotateX(76deg) scale(.97)}50%{opacity:1;transform:rotateX(76deg) scale(1.03)}}
@keyframes sparkFloat{0%,100%{transform:translateY(0);opacity:.2}50%{transform:translateY(-16px);opacity:1}}

.orbit{position:absolute;inset:0;transform-style:preserve-3d;animation:orbitSpin 7.4s linear infinite}
@keyframes orbitSpin{from{transform:rotateY(0)}to{transform:rotateY(360deg)}}
.coin{
  position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;margin:-31% 0 0 -31%;
  transform-style:preserve-3d;animation:coinSpin 6s linear infinite;
  will-change:transform;
}

.coin-glow{position:absolute;left:50%;top:50%;width:86%;aspect-ratio:1;margin:-43% 0 0 -43%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,244,214,.9),rgba(255,226,160,.35) 46%,rgba(255,226,160,0) 70%);
  filter:blur(9px);pointer-events:none}
.coin-edge{
  position:absolute;left:50%;top:1%;width:12px;height:98%;margin-left:-6px;border-radius:6px;
  transform:rotateY(90deg);transform-style:preserve-3d;
  background:linear-gradient(180deg,#fff4d2,#e9c079 18%,#c9963c 46%,#f3dda5 72%,#c08e33 100%);
  box-shadow:0 0 18px rgba(207,143,44,.55), inset 0 0 6px rgba(255,255,255,.7);
}
.coin-edge::before,.coin-edge::after{
  content:"";position:absolute;left:0;right:0;height:2px;background:rgba(255,248,225,.85);border-radius:2px;
}
.coin-edge::before{top:12%}.coin-edge::after{bottom:12%}
@keyframes coinSpin{from{transform:rotateY(0) rotateX(4deg)}to{transform:rotateY(360deg) rotateX(4deg)}}
.coin-face{
  position:absolute;inset:0;border-radius:50%;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:radial-gradient(circle at 34% 26%,#fffdf6 0%,#fbeecd 34%,#f4d99c 62%,#e3b969 88%,#d2a04a 100%);
  border:3px solid rgba(255,246,219,.98);
  box-shadow:0 26px 60px -22px rgba(122,80,20,.55),0 0 0 5px rgba(242,206,140,.35),inset 0 0 26px rgba(255,255,255,.9),inset 0 -14px 26px rgba(173,114,31,.2);
}
.coin-face img{position:absolute;inset:11%;width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(122,80,20,.18))}
.coin-rim{position:absolute;inset:4%;border-radius:50%;border:1px solid rgba(173,114,31,.35);box-shadow:inset 0 0 12px rgba(255,255,255,.7)}
.coin-back{transform:rotateY(180deg)}
.coin-back img{filter:brightness(1.15) drop-shadow(0 3px 6px rgba(122,80,20,.2))}
.progress-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.pr-track{fill:none;stroke:rgba(255,255,255,.65);stroke-width:1.4;filter:drop-shadow(0 0 6px rgba(255,255,255,.7))}
.pr-fill{fill:none;stroke:url(#none);stroke:#fff7e0;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:704;stroke-dashoffset:704;filter:drop-shadow(0 0 8px rgba(255,238,196,.95));transition:stroke-dashoffset .12s linear}
.land-flash{position:absolute;left:15%;top:15%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,236,190,.5) 40%,transparent 70%);opacity:0;pointer-events:none}
.land-flash.go{animation:landFlash 1.1s ease-out}
@keyframes landFlash{0%{opacity:0;transform:scale(.2)}18%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}

.intro-copy{position:absolute;left:0;right:0;top:clamp(6vh,10vh,13vh);text-align:center;z-index:6;opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out);padding:0 20px;pointer-events:none}
.intro-copy.show{opacity:1;transform:none}
.intro-brand{font-family:var(--serif);font-size:clamp(2rem,6vw,3.2rem);font-weight:500;letter-spacing:-.01em;color:#3a2607;text-shadow:0 2px 18px rgba(255,255,255,.6)}
.intro-brand .scr{color:#8a5a18;font-size:1.2em}
.intro-brand em{font-style:normal;font-family:var(--caps);font-size:.4em;letter-spacing:.42em;vertical-align:.5em;margin-left:.2em}
.intro-tag{font-family:var(--serif);font-style:italic;font-size:clamp(.9rem,2.3vw,1.06rem);color:#6b5225;margin-top:.4rem;letter-spacing:.01em}

.swipe-hint{
  position:absolute;left:50%;bottom:calc(4.2vh + env(safe-area-inset-bottom));transform:translate(-50%,14px);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:7;
  opacity:0;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);pointer-events:none;
}
.swipe-hint.show{opacity:1;transform:translate(-50%,0)}
.swipe-text{font-family:var(--caps);font-size:.68rem;letter-spacing:.42em;color:#6b4a16;text-transform:uppercase}
.swipe-chev{display:flex;flex-direction:column;align-items:center;gap:-2px}
.swipe-chev i{display:block;width:13px;height:13px;border-right:1.6px solid #8a5a18;border-bottom:1.6px solid #8a5a18;transform:rotate(45deg);margin-top:-5px;animation:chevDown 1.8s var(--ease) infinite;opacity:.35}
.swipe-chev i:nth-child(2){animation-delay:.18s}
.swipe-chev i:nth-child(3){animation-delay:.36s}
.swipe-or{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(107,74,22,.6)}
@keyframes chevDown{0%{opacity:0;transform:rotate(45deg) translate(-3px,-3px)}50%{opacity:1}100%{opacity:0;transform:rotate(45deg) translate(3px,3px)}}
.intro-skip,.sound-pill{opacity:0;transition:opacity .6s;pointer-events:none}
body[data-stage="intro"] .intro-skip{opacity:1;pointer-events:auto}
body.show-sound .sound-pill{opacity:1;pointer-events:auto}

/* ---------------- STAGE 2 · WELCOME ---------------- */
.stage-welcome{
  place-items:center;padding:24px;
  background:
    radial-gradient(circle at 50% 42%, #2a1d0c 0%, #171007 46%, #0b0703 100%);
}
.stage-welcome::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 46%, rgba(238,196,110,.3), transparent 58%);
  animation:welcomeGlow 7s ease-in-out infinite;
}
@keyframes welcomeGlow{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
.welcome-inner{position:relative;z-index:6;text-align:center;display:flex;flex-direction:column;align-items:center;max-width:820px}
.welcome-coin{width:clamp(84px,15vw,120px);aspect-ratio:1;position:relative;margin-bottom:1.4rem;perspective:900px}
.orbit-sm{animation:none}
.coin-sm{width:100%;height:100%;margin:0;position:relative;left:auto;top:auto;aspect-ratio:1;animation:coinSway 7s ease-in-out infinite}
@keyframes coinSway{0%,100%{transform:rotateY(-24deg) rotateX(3deg)}50%{transform:rotateY(24deg) rotateX(3deg)}}
.coin-sm .coin-face{border-width:1.5px;box-shadow:0 18px 40px -18px rgba(0,0,0,.8),0 0 0 4px rgba(242,206,140,.18),inset 0 0 18px rgba(255,255,255,.8)}
.blast-title{
  font-family:var(--serif);font-size:clamp(1.7rem,5.4vw,3.6rem);font-weight:400;line-height:1.08;color:#f8ecd3;
  letter-spacing:-.015em;text-shadow:0 0 46px rgba(238,196,110,.4);
}
.blast-title span{display:inline-block;font-family:var(--script);font-size:1.02em;color:var(--gold-300);margin-top:.12em;text-shadow:0 0 60px rgba(238,196,110,.65)}
.blast-title .bw{display:inline-block;white-space:nowrap;margin:0 .16em}
.blast-title span .bw{margin:0 .3em}
.blast-title .bl{vertical-align:bottom}
.blast-title .bl{display:inline-block;opacity:0;transform:translateY(26px) scale(1.35);filter:blur(8px);animation:blastLetter 1.1s var(--ease-out) forwards;animation-delay:calc(var(--i) * 34ms + .1s)}
@keyframes blastLetter{0%{opacity:0;transform:translateY(26px) scale(1.5);filter:blur(10px)}60%{opacity:1;filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
.blast-sub{font-family:var(--serif);font-style:italic;color:rgba(248,236,211,.68);font-size:clamp(.92rem,2.4vw,1.15rem);margin-top:1.1rem;letter-spacing:.01em}
.blast-flash{position:fixed;inset:0;background:radial-gradient(circle at 50% 45%,#fffdf4,#f7e2b0 40%,rgba(247,226,176,0) 72%);opacity:0;pointer-events:none;z-index:9}
.blast-flash.go{animation:blastFlash 1.5s ease-out}
@keyframes blastFlash{0%{opacity:0;transform:scale(.7)}10%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.35)}}
.welcome-enter{margin-top:2rem;opacity:0;animation:fadeUp .9s var(--ease-out) 1.5s forwards}
.welcome-hint{margin-top:1rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(248,236,211,.4);opacity:0;animation:fadeUp .9s var(--ease-out) 2s forwards}

@media(max-width:640px){
  .intro-scene{width:min(84vw,320px)}
  .gate-brand em{display:block;margin:.2em 0 0;transform:none}
  .swipe-text{letter-spacing:.3em}
}

/* transitions between stages */
.stage{animation:stageIn .8s var(--ease-out)}
@keyframes stageIn{from{opacity:0}to{opacity:1}}
.stage-fade-out{animation:stageOut .55s var(--ease) forwards !important}
@keyframes stageOut{to{opacity:0;transform:scale(1.02)}}

/* ---- gold dust &amp; vignette ---- */
.intro-dust{position:absolute;inset:-10%;background-image:radial-gradient(circle at 59% 75%, rgba(255,252,240,0.35) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 77% 28%, rgba(255,252,240,0.48) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 62% 84%, rgba(255,252,240,0.21) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 40% 22%, rgba(255,252,240,0.38) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 90% 85%, rgba(255,252,240,0.4) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 52% 61%, rgba(255,252,240,0.41) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 69% 12%, rgba(255,252,240,0.19) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 32% 80%, rgba(255,252,240,0.47) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 43% 60%, rgba(255,252,240,0.37) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 83% 41%, rgba(255,252,240,0.18) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 12% 62%, rgba(255,252,240,0.33) 0 1.5px, rgba(255,252,240,0) 3.1px),radial-gradient(circle at 72% 14%, rgba(255,252,240,0.3) 0 1.5px, rgba(255,252,240,0) 3.1px),radial-gradient(circle at 31% 69%, rgba(255,252,240,0.19) 0 1.5px, rgba(255,252,240,0) 3.1px),radial-gradient(circle at 74% 17%, rgba(255,252,240,0.22) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 39% 53%, rgba(255,252,240,0.53) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 89% 4%, rgba(255,252,240,0.26) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 8% 64%, rgba(255,252,240,0.54) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 52% 57%, rgba(255,252,240,0.39) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 27% 90%, rgba(255,252,240,0.3) 0 1.5px, rgba(255,252,240,0) 3.1px),radial-gradient(circle at 41% 46%, rgba(255,252,240,0.54) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 17% 21%, rgba(255,252,240,0.44) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 3% 11%, rgba(255,252,240,0.47) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 24% 91%, rgba(255,252,240,0.35) 0 1px, rgba(255,252,240,0) 2.6px),radial-gradient(circle at 26% 20%, rgba(255,252,240,0.42) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 16% 54%, rgba(255,252,240,0.55) 0 2px, rgba(255,252,240,0) 3.6px),radial-gradient(circle at 2% 38%, rgba(255,252,240,0.55) 0 1.5px, rgba(255,252,240,0) 3.1px);background-size:100% 100%;
  animation:dustDrift 26s ease-in-out infinite alternate;pointer-events:none;opacity:.9;mix-blend-mode:screen}
.intro-dust.d2{background-size:135% 135%;background-position:30% 60%;animation-duration:38s;animation-direction:alternate-reverse;opacity:.6}
@keyframes dustDrift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(-1.6%,-2.2%,0)}100%{transform:translate3d(1.4%,1.8%,0)}}
.intro-vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 50% 46%,rgba(255,255,255,0) 34%,rgba(120,80,20,.12) 82%,rgba(120,80,20,.26) 100%)}
.stage-welcome .intro-vignette{background:radial-gradient(circle at 50% 42%,rgba(0,0,0,0) 30%,rgba(0,0,0,.5) 100%)}

/* v23 · direct, line-free emblem experience */
.axis-beam,.coin-edge{display:none!important}
.welcome-enter{display:none!important}
.welcome-hint{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;white-space:nowrap}
.coin-sm{animation:logoYTurn 6s linear infinite!important}
@keyframes logoYTurn{0%{transform:rotateY(0deg)}49.95%{transform:rotateY(179.8deg)}50%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
.coin-back img{transform:none!important}
.axis-ring{animation:ringOrbit 5s linear infinite!important}
.axis-ring::after{animation:ringOrbitInner 3.5s linear infinite!important}
@keyframes ringOrbit{0%{transform:rotateX(76deg) rotateZ(0deg);opacity:.62}50%{opacity:1}100%{transform:rotateX(76deg) rotateZ(360deg);opacity:.62}}
@keyframes ringOrbitInner{to{transform:rotate(360deg)}}
/* larger professional emblem after landing */
.intro-scene.landed{transform:translateY(17vh) scale(.78)}

/* v27 · keep the emblem crisp; place illumination below it */
.stage-intro{
  background:
    radial-gradient(ellipse at 50% 86%,rgba(255,250,232,.98) 0%,rgba(248,222,158,.78) 24%,rgba(238,196,110,.26) 48%,transparent 68%),
    linear-gradient(180deg,#fbefd3 0%,#f7e4b9 54%,#e9b95f 100%);
}
.intro-whitewash{
  background:radial-gradient(ellipse at 50% 84%,rgba(255,255,255,.9) 0%,rgba(255,250,232,.38) 30%,rgba(255,253,246,0) 64%);
  opacity:.55;animation:none;
}
.intro-rays{clip-path:inset(54% 0 0 0);-webkit-clip-path:inset(54% 0 0 0);opacity:.18;transform-origin:50% 82%}
.intro-floor{bottom:3%;height:170px;background:radial-gradient(ellipse at center,rgba(255,250,232,.82) 0%,rgba(238,196,110,.3) 38%,rgba(173,114,31,0) 72%);filter:blur(14px)}
.intro-scene .coin-face{filter:none}
.intro-scene .coin-face img{filter:drop-shadow(0 4px 8px rgba(105,61,8,.22)) contrast(1.06) saturate(1.04)}
.intro-scene .coin-glow{top:72%;opacity:.52;filter:blur(14px);z-index:-1}
#smoke-canvas{z-index:3!important;mask-image:linear-gradient(to bottom,transparent 0 54%,#000 68%);-webkit-mask-image:linear-gradient(to bottom,transparent 0 54%,#000 68%)}
.intro-whitewash{opacity:.22}

/* v29 · first-page house name uses one continuous golden script */
.intro-brand{color:var(--gold-700)}
.intro-brand .scr,.intro-brand em{font-family:var(--script);font-size:1.16em;font-weight:400;font-style:normal;letter-spacing:0;color:var(--gold-700);vertical-align:baseline;margin:0;text-transform:none}
