.cast-transition { border:0; padding:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; background:transparent; overflow:hidden; outline:none; opacity:1; transition:opacity .18s ease; }
.cast-transition::backdrop { background:transparent; }
.cast-transition-inner { min-height:100%; display:flex; align-items:center; justify-content:center; isolation:isolate; }
.cast-transition-inner::before { content:''; position:absolute; inset:0; z-index:-2; background:radial-gradient(ellipse at 23% 65%,#45150d 0%,#200906 35%,#050202 75%); opacity:.15; }
.cast-transition-inner::after { content:''; position:absolute; inset:-15%; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 15% 60%,#b8481833,transparent 40%),conic-gradient(from 20deg at 5% 90%,transparent 0deg,#0009 30deg,transparent 55deg,#000b 105deg,transparent 145deg); opacity:0; transform-origin:10% 85%; }
.is-running .cast-transition-inner::before { animation:candle-room-enter 2.4s ease-out both; }
.is-running .cast-transition-inner::after { animation:candle-shadows 5.7s ease-in-out infinite; }
@keyframes candle-room-enter { from { opacity:.15; } to { opacity:1; } }
@keyframes candle-shadows { 0% { opacity:.12; transform:rotate(-3deg) scale(1.02); } 19% { opacity:.45; } 34% { opacity:.3; transform:rotate(2deg) scale(1.06); } 48% { opacity:.5; } 65% { opacity:.27; transform:rotate(-1deg) scale(1.03); } 83% { opacity:.43; } 100% { opacity:.12; transform:rotate(-3deg) scale(1.02); } }
.cast-transition.is-leaving { opacity:0; pointer-events:none; }
.cast-arrival .cast-postcard-preview-backdrop { background:radial-gradient(ellipse at 23% 65%,#45150de8,#080303ed 75%); }
.cast-arrival .cast-postcard-preview-panel { animation:cast-postcard-arrive .9s cubic-bezier(.2,.65,.25,1) both; }
@keyframes cast-postcard-arrive { from { opacity:0; transform:translateY(32px) scale(.94); } to { opacity:1; transform:translateY(0) scale(1); } }
.cast-transition-art { width:min(580px,94vw); aspect-ratio:1; position:relative; perspective:1000px; }
.cast-coin-flight { position:absolute; width:44%; height:44%; left:28%; top:28%; opacity:0; }
.cast-coin-spin { width:100%; height:100%; position:relative; transform-style:preserve-3d; }
.cast-coin-face, .cast-coin-edge { width:100%; height:100%; position:absolute; inset:0; overflow:visible; }
.cast-coin-face { backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.cast-coin-face.front { transform:translateZ(2.5px); }
.cast-coin-face.back { transform:rotateY(180deg) translateZ(2.5px); filter:brightness(.7); }
.cast-coin-light { opacity:.5; mix-blend-mode:soft-light; }
.cast-transition-logo { position:absolute; width:40%; height:40%; left:30%; top:30%; overflow:visible; }
.cast-imprint { opacity:0; fill:#4c463b; }
.is-running .cast-coin-flight { animation:single-flight 8.5s both; }
.is-running .cast-coin-spin { animation:single-spin 8.5s linear both; }
.is-running .cast-coin-light { animation:candle-reflection 2.7s linear infinite; }
.is-running .cast-coin-face.front { animation:front-light 2.7s linear infinite; }
.is-running .imprint-0 { animation:imprint-first 10.5s both; }
.is-running .imprint-1 { animation:imprint-second 10.5s both; }
.is-running .imprint-2 { animation:imprint-third 10.5s both; }
@keyframes single-flight {
  0% { opacity:0; transform:translate(-25%,95%) scale(.8); }
  8% { opacity:1; }
  25% { opacity:1; transform:translate(-15%,-28%) scale(1.1); animation-timing-function:ease-out; }
  42% { transform:translate(-8%,-33%) scale(1.08); }
  62% { opacity:1; transform:translate(8%,-12%) scale(1); animation-timing-function:ease-in; }
  82% { opacity:.8; transform:translate(22%,25%) scale(.85); }
  100% { opacity:0; transform:translate(35%,95%) scale(.65); }
}
@keyframes single-spin {
  0% { transform:rotateZ(-20deg) rotateY(-35deg) rotateX(15deg); }
  100% { transform:rotateZ(28deg) rotateY(1045deg) rotateX(-12deg); }
}
@keyframes candle-reflection { 0%,100% { opacity:.18; } 22% { opacity:.85; } 28% { opacity:.65; } 36% { opacity:.92; } 52% { opacity:.3; } 75% { opacity:.08; } }
@keyframes front-light { 0%,100% { filter:brightness(.5); } 28% { filter:brightness(1.25); } 50% { filter:brightness(.75); } 78% { filter:brightness(.32); } }
@keyframes imprint-first {
  0%,20% { opacity:0; filter:blur(6px); fill:#665a43; }
  30% { opacity:.6; }
  38%,72% { opacity:.8; filter:blur(1px); fill:#665a43; }
  92%,100% { opacity:1; filter:blur(0); fill:#173a75; }
}
@keyframes imprint-second {
  0%,40% { opacity:0; filter:blur(6px); fill:#817158; }
  52%,72% { opacity:.8; filter:blur(1px); fill:#817158; }
  92%,100% { opacity:1; filter:blur(0); fill:#249b9a; }
}
@keyframes imprint-third {
  0%,59% { opacity:0; filter:blur(5px); fill:#ad9873; }
  70%,75% { opacity:.9; filter:blur(1px); fill:#ad9873; }
  96%,100% { opacity:1; filter:blur(0); fill:#e9a514; }
}
.is-finishing .cast-coin-flight { animation:none; opacity:0; transition:opacity .5s; }
.is-finishing .cast-imprint { animation:none; opacity:1; filter:none; transition:fill .5s,opacity .5s; }
.is-finishing .imprint-0 { fill:#173a75; }
.is-finishing .imprint-1 { fill:#249b9a; }
.is-finishing .imprint-2 { fill:#e9a514; }
@media (prefers-reduced-motion:reduce) {
  .cast-transition, .cast-transition *, .cast-transition *::before, .cast-transition *::after, .cast-arrival .cast-postcard-preview-panel { animation:none !important; transition:none !important; }
  .cast-transition-inner::before { opacity:1; }
  .cast-transition-inner::after { opacity:.15; }
  .cast-coin-flight { display:none; }
  .cast-imprint { opacity:1; filter:none; }
  .imprint-0 { fill:#173a75; } .imprint-1 { fill:#249b9a; } .imprint-2 { fill:#e9a514; }
}

