.welcome { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; overflow:hidden; isolation:isolate; background:#0c1717; color:#fff5dd; opacity:1; transition:opacity 460ms ease,visibility 460ms; outline:none; contain:layout paint; }
.welcome[hidden] { display:none; }
.welcome.is-leaving { opacity:0; visibility:hidden; pointer-events:none; }
.welcome-colors { position:absolute; inset:-25%; z-index:-2; background:radial-gradient(ellipse at 20% 75%,#b6442738 0,transparent 44%),radial-gradient(ellipse at 80% 25%,#006b715c 0,transparent 43%),radial-gradient(ellipse at 50% 110%,#34336d66 0,transparent 48%); animation:welcome-wash 3100ms ease-out both; }
.welcome-glasses { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.welcome-glass { position:absolute; opacity:0; animation:welcome-float 3100ms cubic-bezier(.2,.65,.3,1) both; will-change:transform,opacity; }
.welcome-glass svg { display:block; width:100%; height:100%; filter:drop-shadow(0 0 5px currentColor) drop-shadow(0 0 18px currentColor); }
.welcome-rocks { width:clamp(170px,24vw,370px); height:auto; aspect-ratio:12/13; left:2%; top:53%; color:#fc9675; --turn:-16deg; --drift:-25px; animation-delay:40ms; }
.welcome-wine { width:clamp(220px,30vw,420px); height:auto; aspect-ratio:12/17; right:2%; top:13%; color:#7bd8c9; --turn:16deg; --drift:22px; animation-delay:120ms; }
.welcome-flute { width:clamp(160px,20vw,275px); height:auto; aspect-ratio:3/4; left:18%; top:-9%; color:#e7c886; --turn:20deg; --drift:20px; animation-delay:180ms; opacity:.5; }
.welcome-small-rocks { width:clamp(100px,15vw,220px); height:auto; aspect-ratio:12/13; right:24%; bottom:-9%; color:#c8a2ef; --turn:-19deg; --drift:-15px; animation-delay:260ms; }
.welcome-copy { position:relative; text-align:center; padding:30px 24px; max-width:90vw; animation:welcome-copy-in 800ms 240ms cubic-bezier(.16,1,.3,1) both; }
.welcome-label { margin:0 0 24px; color:#e7c886; font-size:12px; letter-spacing:.26em; font-weight:500; animation:welcome-type-in 700ms 120ms both; }
.welcome h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(56px,7.4vw,112px); line-height:.99; font-weight:400; letter-spacing:-.055em; text-shadow:0 3px 35px #0c1717,0 0 30px #fff0c512; }
.welcome h2 span { display:block; }
.welcome h2 em { display:block; margin-top:8px; color:#e7c886; font-weight:400; font-size:1.04em; animation:welcome-type-in 850ms 420ms both; }
.welcome-rule { display:block; margin:35px auto 0; width:62px; height:1px; background:#e7c886; transform-origin:left; animation:welcome-rule-in 900ms 550ms both; }
.welcome-skip { position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); right:max(30px,env(safe-area-inset-right)); border:1px solid #ffffff40; border-radius:50px; background:#0b181a70; backdrop-filter:blur(6px); color:#f6f0df; font:14px Arial,Helvetica,sans-serif; padding:11px 21px; min-height:44px; transition:background .2s,border-color .2s; }
.welcome-skip:hover { background:#263535; border-color:#e7c886; }
.welcome-skip:focus-visible { outline:2px solid #e7c886; outline-offset:4px; }
@keyframes welcome-float {
  0% { opacity:0; transform:translate3d(0,80px,0) rotate(calc(var(--turn) - 9deg)) scale(.9); }
  30% { opacity:.75; }
  72% { opacity:.75; }
  100% { opacity:.55; transform:translate3d(var(--drift),-17px,0) rotate(var(--turn)) scale(1.02); }
}
@keyframes welcome-copy-in {
  from { opacity:0; transform:translateY(22px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes welcome-type-in {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes welcome-rule-in {
  from { opacity:0; transform:scaleX(0); }
  to { opacity:1; transform:scaleX(1); }
}
@keyframes welcome-wash {
  from { opacity:.5; transform:scale(1.1) rotate(-6deg); }
  to { opacity:1; transform:scale(1) rotate(0); }
}
@media(max-width:600px) {
  .welcome-copy { padding:24px 12px; max-width:94vw; }
  .welcome h2 { font-size:clamp(46px,11.5vw,70px); }
  .welcome-label { font-size:12px; letter-spacing:.19em; margin-bottom:22px; }
  .welcome-rocks { left:-12%; top:67%; width:clamp(170px,55vw,240px); }
  .welcome-wine { right:-13%; top:6%; width:clamp(190px,59vw,270px); }
  .welcome-flute { left:8%; top:-7%; width:clamp(125px,39vw,180px); }
  .welcome-small-rocks { right:15%; bottom:-5%; width:clamp(110px,34vw,155px); }
  .welcome-glass svg { filter:drop-shadow(0 0 7px currentColor); }
  .welcome-skip { right:20px; bottom:max(22px,env(safe-area-inset-bottom)); }
}
@media(max-height:450px) {
  .welcome h2 { font-size:52px; }
  .welcome-label { margin-bottom:13px; }
  .welcome-rule { margin-top:18px; }
  .welcome-copy { padding:12px; }
  .welcome-rocks { top:49%; left:0; width:clamp(140px,24vh,200px); }
  .welcome-wine { right:0; top:0; width:clamp(170px,48vh,230px); }
  .welcome-flute { left:18%; top:-24%; width:clamp(120px,42vh,185px); }
  .welcome-small-rocks { right:24%; bottom:-17%; width:clamp(100px,30vh,140px); }
  .welcome-skip { bottom:15px; right:18px; }
}
@media(prefers-reduced-motion:reduce) {
  .welcome { display:none!important; }
  .welcome * { animation:none!important; transition:none!important; }
}
.welcome-bloom { position:absolute; inset:0; z-index:-2; pointer-events:none; animation:welcome-atmosphere-in 1000ms ease-out both; }
.welcome-bloom i { position:absolute; display:block; width:clamp(300px,65vw,1000px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,var(--bloom-core) 0%,var(--bloom-halo) 24%,transparent 67%); animation:welcome-bloom-drift 4200ms cubic-bezier(.2,.55,.3,1) both; will-change:transform,opacity; }
.bloom-teal { right:-22%; top:-28%; --bloom-core:#70e4d04d; --bloom-halo:#17b4a622; --bloom-x:-7%; --bloom-y:12%; }
.bloom-coral { left:-25%; bottom:-38%; --bloom-core:#fb956e40; --bloom-halo:#d16c3820; --bloom-x:10%; --bloom-y:-9%; }
.welcome-bloom .bloom-gold { width:clamp(290px,47vw,700px); left:50%; top:48%; margin-left:clamp(-350px,-23.5vw,-145px); margin-top:clamp(-350px,-23.5vw,-145px); --bloom-core:#ebcc8921; --bloom-halo:#b8945510; --bloom-x:0%; --bloom-y:-4%; }
.welcome-particles { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; animation:welcome-atmosphere-in 650ms ease-out both; }
.welcome-particle { position:absolute; left:var(--x); top:var(--y); width:var(--size); height:var(--size); border-radius:50%; background:currentColor; color:var(--tint); box-shadow:0 0 7px currentColor; animation:welcome-particle-drift var(--duration) var(--delay) linear infinite; will-change:transform,opacity; }
.welcome-particle.is-bokeh { background:radial-gradient(circle,currentColor 0%,transparent 70%); box-shadow:none; }
.welcome h2 em { text-shadow:0 0 20px #e7c88628,0 0 55px #e7c88614; }
.welcome-rule { position:relative; box-shadow:0 0 12px #e7c88650; }
.welcome-rule::after { content:""; position:absolute; width:18px; height:3px; top:-1px; left:0; background:radial-gradient(ellipse,#fff4dc,transparent 70%); box-shadow:0 0 10px #e7c886; animation:welcome-rule-glint 1350ms 900ms ease-in-out both; }
@keyframes welcome-atmosphere-in {
  from { opacity:0; }
  to { opacity:1; }
}
@keyframes welcome-bloom-drift {
  0% { opacity:.25; transform:translate3d(0,0,0) scale(.88); }
  45% { opacity:1; }
  100% { opacity:.75; transform:translate3d(var(--bloom-x),var(--bloom-y),0) scale(1.13); }
}
@keyframes welcome-particle-drift {
  0% { opacity:0; transform:translate3d(0,20px,0) scale(.8); }
  20% { opacity:var(--alpha); }
  70% { opacity:var(--alpha); }
  100% { opacity:0; transform:translate3d(var(--sway),var(--rise),0) scale(1.12); }
}
@keyframes welcome-rule-glint {
  0% { opacity:0; transform:translateX(0); }
  35% { opacity:1; }
  100% { opacity:0; transform:translateX(48px); }
}
@media(max-width:600px) {
  .welcome-bloom i { width:125vw; }
  .bloom-teal { right:-60%; top:-5%; }
  .bloom-coral { left:-65%; bottom:-8%; }
  .welcome-bloom .bloom-gold { width:100vw; margin-left:-50vw; margin-top:-50vw; }
  .welcome-particle { box-shadow:0 0 5px currentColor; }
}
@media(prefers-reduced-motion:reduce) {
  .welcome-rule::after { animation:none; }
}
