@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700;900&family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=DM+Sans:wght@300;400;500&display=swap');

:root {
  --bg-deep:      #0e0610;          --bg-mid:       #150b1a;          --bg-card:      #1c0f22;          --bg-glass:     rgba(22,9,28,.74);

  --wine:         #6b1d34;
  --wine-light:   #9e3356;
  --blush:        #e8a4b8;
  --blush-muted:  #c47a95;
  --rose-glow:    rgba(232,164,184,.18);

  --gold:         #c9a84c;
  --gold-bright:  #e8c96d;
  --gold-pale:    #f0dfa0;
  --gold-shadow:  rgba(201,168,76,.1);

  --cream:        #f2ece3;
  --cream-80:     rgba(242,236,227,.8);
  --cream-70:     rgba(242,236,227,.7);
  --cream-50:     rgba(242,236,227,.5);
  --cream-30:     rgba(242,236,227,.3);

  --border-gold:  rgba(201,168,76,.24);
  --border-rose:  rgba(232,164,184,.2);
  --border-wine:  rgba(107,29,52,.65);

  --ff-royal:   'Cinzel', Georgia, serif;           --ff-queen:   'Cinzel Decorative', serif;         --ff-grace:   'Cormorant Garamond', serif;        --ff-body:    'DM Sans', sans-serif;

  --ease-silk:  cubic-bezier(.25,.46,.45,.94);
  --ease-regal: cubic-bezier(.43,.13,.23,.96);
  --ease-back:  cubic-bezier(.34,1.56,.64,1);
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

@keyframes orb1-drift {
  0%,100% { transform: translate(0,0)    scale(1); }
  33%      { transform: translate(7%,5%)  scale(1.1); }
  66%      { transform: translate(-5%,8%) scale(.94); }
}
@keyframes orb2-drift {
  0%,100% { transform: translate(0,0)      scale(1); }
  40%      { transform: translate(-9%,-6%) scale(1.07); }
  70%      { transform: translate(6%,-10%) scale(.91); }
}
@keyframes orb3-drift {
  0%,100% { transform: translate(0,0)    scale(1); }
  50%      { transform: translate(6%,-7%) scale(1.12); }
}
body {
  background:
    radial-gradient(ellipse 90% 70% at 20% 0%,   #2a0a1e 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at 80% 100%,  #1e0830 0%, transparent 60%),
    radial-gradient(ellipse 100% 80% at 50% 50%,  #170b1f 0%, transparent 70%),
    #0e0610;
  color: var(--cream);
  font-family: var(--ff-body);
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
}

body::before {
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 65% 50% at 12% 10%,  rgba(107,29,52,.42) 0%, transparent 62%),
    radial-gradient(ellipse 50% 42% at 88% 92%,  rgba(107,29,52,.32) 0%, transparent 58%),
    radial-gradient(ellipse 55% 45% at 50% 48%,  rgba(201,168,76,.07) 0%, transparent 52%),
    radial-gradient(ellipse 75% 55% at 82% 8%,   rgba(158,51,86,.22) 0%, transparent 52%),
    radial-gradient(ellipse 45% 38% at 25% 80%,  rgba(60,10,45,.28) 0%, transparent 60%);
}

body::after {
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 80% 75% at center, transparent 30%, rgba(6,2,10,.78) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900'%3E%3Cg opacity='0.03'%3E%3Cpath d='M0,180 Q120,130 220,210 T460,175 T700,255 T900,195' stroke='%23c9a84c' stroke-width='3' fill='none'/%3E%3Cpath d='M0,360 Q90,305 195,385 T415,340 T635,420 T900,360' stroke='%23c9a84c' stroke-width='2' fill='none'/%3E%3Cpath d='M0,545 Q210,495 335,585 T575,520 T795,610 T900,548' stroke='%23c9a84c' stroke-width='2.5' fill='none'/%3E%3Cpath d='M0,725 Q165,678 295,758 T535,698 T775,790 T900,730' stroke='%23e8c96d' stroke-width='1.5' fill='none'/%3E%3Cpath d='M175,0 Q218,128 158,252 T198,500 T135,742 T175,900' stroke='%236b1d34' stroke-width='2' fill='none'/%3E%3Cpath d='M455,0 Q498,108 438,292 T476,540 T412,778 T455,900' stroke='%236b1d34' stroke-width='1.5' fill='none'/%3E%3Cpath d='M718,0 Q765,158 702,335 T742,572 T678,812 T718,900' stroke='%23c9a84c' stroke-width='2' fill='none'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 100% 100%, 900px 900px;
  }

#grain-overlay {
  position: fixed; inset: 0; z-index: 9998; pointer-events: none;
  opacity: .12;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

img    { display:block; max-width:100%; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
a      { color:inherit; text-decoration:none; }

*, *::before, *::after {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
*:focus { outline: none; }
*:focus-visible {
  outline: 1px solid rgba(201,168,76,.5);
  outline-offset: 2px;
}

::-webkit-scrollbar       { width:3px; }
::-webkit-scrollbar-track { background:var(--bg-deep); }
::-webkit-scrollbar-thumb { background:linear-gradient(to bottom,var(--wine-light),var(--gold)); border-radius:2px; }

@keyframes shimmer-gold {
  0%   { background-position:-200% center; }
  100% { background-position: 200% center; }
}
@keyframes shimmer-rose {
  0%   { background-position:-200% center; }
  100% { background-position: 200% center; }
}
@keyframes float-gentle {
  0%,100% { transform: translate3d(0,0,0)    rotate(var(--rot,0deg)); }
  50%      { transform: translate3d(0,-10px,0) rotate(var(--rot,0deg)); }
}
@keyframes pulse-glow {
  0%,100% { opacity: .55; }
  50%      { opacity: 1; }
}
@keyframes pulse-wine {
  0%,100% { opacity: .55; }
  50%      { opacity: 1; }
}
@keyframes particle-rise {
  0%   { transform:translateY(0) translateX(0) scale(1); opacity:.9; }
  100% { transform:translateY(-80px) translateX(var(--dx,12px)) scale(0); opacity:0; }
}
@keyframes crown-descend {
  0%   { transform:translateY(-140px) scale(.9); opacity:0; }
  100% { transform:translateY(0)      scale(1);  opacity:1; }
}
@keyframes fade-up {
  0%   { transform:translateY(36px); opacity:0; }
  100% { transform:translateY(0);    opacity:1; }
}
@keyframes fade-in {
  0%   { opacity:0; }
  100% { opacity:1; }
}
@keyframes countdown-tick {
  0%,100% { transform:scaleY(1);   opacity:1; }
  50%      { transform:scaleY(.85); opacity:.55; }
}
@keyframes spin-slow { to { transform:rotate(360deg); } }
@keyframes draw-line {
  from { stroke-dashoffset:1; }
  to   { stroke-dashoffset:0; }
}
@keyframes ticket-appear {
  0%   { transform:translateY(40px) scale(.97); opacity:0; }
  100% { transform:translateY(0)    scale(1);   opacity:1; }
}

.gold-text {
  background: linear-gradient(90deg, #a07830 0%, var(--gold-bright) 30%, var(--gold-pale) 50%, var(--gold-bright) 70%, #a07830 100%);
  background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer-gold 4s linear infinite;
}
.blush-text {
  background: linear-gradient(90deg, var(--blush-muted) 0%, var(--blush) 40%, #f0c0d4 60%, var(--blush) 80%, var(--blush-muted) 100%);
  background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer-rose 5s linear infinite;
}
.cream-text  { color:var(--cream); }
.italic      { font-style:italic; }

.section-wrap {
  width:min(640px,100%);
  margin-inline:auto;
  padding-inline:24px;
}

.ornament-line {
  display:flex; align-items:center; gap:14px;
  margin-block:28px;
  position:relative;
}
.ornament-line::before,
.ornament-line::after {
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity:.45;
}

.svg-divider {
  display:block;
  width:min(260px,70%);
  margin:24px auto;
  opacity:.45;
}

.section-wrap > * + * { margin-top:28px; }

@media (min-width:640px) {
  .section-wrap { padding-inline:40px; }
}
