@font-face{font-family:Creepster;src:url('/assets/fonts/creepster.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cinzel;src:url('/assets/fonts/cinzel.woff2') format('woff2');font-weight:400 900;font-display:swap}
:root{color-scheme:dark;background:#080d14;color:#f3e7ca;font-family:Georgia,serif}
*{box-sizing:border-box}
body{position:relative;isolation:isolate;margin:0;min-height:100svh;overflow-x:clip}
.scene,.shade,.fog-veil,.fog{position:fixed;pointer-events:none}
.scene{inset:0;z-index:0;background:#080d14 url('/assets/night-desktop-wide-v24.webp') center center/cover no-repeat;opacity:.44;filter:saturate(.5)}
.shade{inset:0;z-index:1;background:radial-gradient(ellipse at 50% 44%,rgba(4,9,16,.12) 12%,rgba(3,7,13,.54) 100%),linear-gradient(0deg,rgba(4,8,14,.52),transparent 50%,rgba(4,8,14,.16))}
.fog-veil{inset:0;z-index:2;background:linear-gradient(180deg,rgba(55,69,84,.46),rgba(65,80,96,.48) 48%,rgba(44,59,75,.43))}
/* Static noise textures move as whole layers; the center identity sits above them. */
.fog{z-index:3;left:-40%;width:180%;height:110svh;background:url('/assets/fog-clouds-v31.svg') center/100% 100% no-repeat;transform-origin:center;will-change:transform;animation:fog-east 31s ease-in-out infinite alternate}
.fog--high{top:-36svh;opacity:.98;animation-duration:30s;animation-delay:-19s}
.fog--middle{top:-3svh;opacity:1;animation-name:fog-west;animation-duration:24s;animation-delay:-9s}
.fog--low{top:37svh;opacity:1;animation-duration:20s;animation-delay:-16s}
.fog--foreground{top:0;height:135svh;opacity:.86;animation-name:fog-close;animation-duration:36s;animation-delay:-25s;background-size:135% 110%}
.fog--blanket{top:-18svh;height:140svh;opacity:.83;animation-name:fog-west;animation-duration:29s;animation-delay:-21s;background-image:url('/assets/fog-clouds-v30.svg');background-size:125% 110%}
.fog--cross{top:11svh;opacity:.86;animation-duration:22s;animation-delay:-4s;transform-origin:35% 65%}
@keyframes fog-east{from{transform:translate3d(-13%,-3%,0) scale(1.08)}to{transform:translate3d(13%,4%,0) scale(1.16)}}
@keyframes fog-west{from{transform:translate3d(16%,4%,0) scale(1.15)}to{transform:translate3d(-15%,-4%,0) scale(1.05)}}
@keyframes fog-close{from{transform:translate3d(-12%,8%,0) scale(1.17)}to{transform:translate3d(11%,-7%,0) scale(1.3)}}
.shell{position:relative;z-index:4;width:calc(100% - 40px);min-height:100svh;margin-inline:auto;display:flex;align-items:center;justify-content:center;padding-block:40px}
.invitation{position:relative;isolation:isolate;width:min(100%,540px);text-align:center;padding:24px 0;text-shadow:0 3px 18px #03070c}
.invitation::before{content:'';position:absolute;z-index:-1;inset:-14% -18%;pointer-events:none;background:radial-gradient(ellipse,rgba(3,8,14,.46),rgba(3,8,14,.19) 42%,transparent 69%)}
.pumpkin{display:block;width:clamp(140px,13.5vw,180px);height:auto;margin:0 auto 8px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4))}
h1{margin:0;color:#ff861d;font-family:Creepster,Impact,fantasy;font-weight:400;font-size:clamp(85px,8.7vw,122px);line-height:1.02;letter-spacing:.015em;text-transform:uppercase;text-shadow:0 4px 2px #30120c,0 9px 25px #03070c}
.announcement{margin:22px 0 0;font-family:Cinzel,Georgia,serif;font-size:clamp(22px,2.3vw,29px);font-weight:500;line-height:1.4;letter-spacing:.15em}
.x-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;margin-top:29px;padding:10px 18px;color:#e8ddca;font:15px/1.5 Georgia,serif;text-decoration:none;border:1px solid #b18d595e;border-radius:28px;background:rgba(5,10,16,.52);transition:color .2s,border-color .2s,background-color .2s}
.x-link svg{width:17px;height:17px;fill:currentColor}
.x-link .arrow{color:#bfa580;font-size:17px}
.x-link:hover{color:#fff2da;border-color:#bf955e;background:rgba(12,17,23,.85)}
.x-link:focus-visible{outline:2px solid #ffae55;outline-offset:6px}
@media(min-aspect-ratio:21/9){.scene{background-size:100% auto;background-position:center 44%}}
@media(max-width:720px){
  .scene{background-image:url('/assets/night-mobile.webp');background-position:center 43%;opacity:.4}
  .shell{padding-block:35px}
  .invitation{max-width:430px;padding-block:25px}
  .pumpkin{width:145px}
  h1{font-size:clamp(80px,18vw,106px)}
  .announcement{font-size:22px;letter-spacing:.12em;margin-top:21px}
  .x-link{margin-top:27px}
  .fog{left:-60%;width:220%;background-size:140% 100%}
  .fog--foreground,.fog--cross{display:none}
}
@media(max-height:570px) and (min-width:721px){.shell{padding-block:18px}.invitation{padding-block:12px}.pumpkin{width:98px}h1{font-size:80px}.announcement{margin-top:14px;font-size:22px}.x-link{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.fog{animation:none;will-change:auto}.x-link{transition:none}}
