*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}canvas{display:block}a{text-decoration:none;color:inherit}button{border:none;background:none;cursor:pointer;font:inherit;color:inherit}:root{--color-bg: #020210;--color-building-dark: #0a0a1a;--color-building-mid: #111128;--color-window-glow: #FFB347;--color-batsignal: #FFD700;--color-batsignal-pale: #FFF8DC;--color-moon: #E8E0C8;--color-fog: #080818;--color-rain: #4A6A8A;--color-ui-gold: #FFD700;--color-ui-silver: #C0C0C0;--color-ui-red: #8B0000;--font-display: "Cinzel", "Times New Roman", serif;--font-body: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--transition-fast: .3s ease;--transition-medium: .6s ease;--transition-slow: 1.2s ease;--z-canvas: 1;--z-ui: 10;--z-loading: 100}body{background-color:var(--color-bg);color:var(--color-ui-silver);font-family:var(--font-body);overflow:hidden}#canvas-container{position:fixed;inset:0;z-index:var(--z-canvas)}#canvas-container canvas{width:100%;height:100%}#ui-layer{position:fixed;inset:0;z-index:var(--z-ui);pointer-events:none}#ui-layer>*{pointer-events:auto}.hero-title{position:fixed;top:12%;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:clamp(3rem,8vw,8rem);font-weight:700;color:var(--color-ui-gold);letter-spacing:.15em;text-transform:uppercase;text-shadow:0 0 20px rgba(255,215,0,.5),0 0 60px rgba(255,215,0,.2),0 0 100px rgba(255,180,0,.1);opacity:0;user-select:none;z-index:20}.hero-title.entrance{animation:titleEntrance 1s cubic-bezier(.16,1,.3,1)}.birthday-sub.entrance{animation:subtitleEntrance 1s cubic-bezier(.16,1,.3,1) .3s}@keyframes titleEntrance{0%{opacity:0;transform:translate(-50%) translateY(20px);text-shadow:0 0 0px rgba(255,215,0,0),0 0 0px rgba(255,215,0,0)}60%{opacity:1;text-shadow:0 0 40px rgba(255,215,0,.8),0 0 100px rgba(255,180,0,.4),0 0 160px rgba(255,150,0,.2)}to{opacity:1;transform:translate(-50%) translateY(0);text-shadow:0 0 20px rgba(255,215,0,.5),0 0 60px rgba(255,215,0,.2),0 0 100px rgba(255,180,0,.1)}}@keyframes subtitleEntrance{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:.9;transform:translate(-50%) translateY(0)}}.stage-subtitle{position:fixed;bottom:15%;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:clamp(.9rem,2vw,1.4rem);color:var(--color-ui-silver);letter-spacing:.3em;text-transform:uppercase;opacity:0;user-select:none;z-index:20;transition:opacity .6s ease}.cta-button{position:fixed;bottom:12%;left:50%;transform:translate(-50%);padding:1rem 2.5rem;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-ui-gold);letter-spacing:.15em;text-transform:uppercase;background:#020210b3;border:1.5px solid var(--color-ui-gold);border-radius:4px;cursor:pointer;opacity:0;transition:box-shadow var(--transition-fast),transform var(--transition-fast);z-index:20}.cta-button:hover{box-shadow:0 0 20px #ffd70066,inset 0 0 20px #ffd7001a;transform:translate(-50%) scale(1.05)}.stage-dots{position:fixed;right:1.5rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1rem;z-index:20}.stage-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--color-ui-silver);background:transparent;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.stage-dot.active{background:var(--color-ui-gold);border-color:var(--color-ui-gold);box-shadow:0 0 10px #ffd70080}.scroll-indicator{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:20;opacity:1;transition:opacity var(--transition-medium)}.scroll-indicator.hidden{opacity:0}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--color-ui-gold),transparent)}.scroll-chevron{width:12px;height:12px;border-right:2px solid var(--color-ui-gold);border-bottom:2px solid var(--color-ui-gold);transform:rotate(45deg);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.3;transform:rotate(45deg) translateY(0)}50%{opacity:1;transform:rotate(45deg) translateY(4px)}}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;font-family:var(--font-body);font-size:.9rem;color:var(--color-ui-gold);background:#020210e6;border:1px solid var(--color-ui-gold);border-radius:4px;opacity:0;transition:opacity var(--transition-fast);z-index:30;pointer-events:none}.toast.visible{opacity:1}#loading-screen{position:fixed;inset:0;z-index:var(--z-loading);display:flex;align-items:center;justify-content:center;background:var(--color-bg);transition:opacity .8s ease-out}#loading-screen.fade-out{opacity:0;pointer-events:none}.loader-content{display:flex;flex-direction:column;align-items:center;gap:2rem}.loader-emblem{width:80px;height:60px;background:var(--color-ui-gold);clip-path:polygon(50% 0%,60% 15%,75% 10%,80% 25%,90% 30%,100% 50%,95% 70%,85% 60%,70% 65%,60% 55%,50% 100%,40% 55%,30% 65%,15% 60%,5% 70%,0% 50%,10% 30%,20% 25%,25% 10%,40% 15%);animation:loaderPulse 1.5s ease-in-out infinite;mask-image:radial-gradient(circle,black 60%,transparent 100%);-webkit-mask-image:radial-gradient(circle,black 60%,transparent 100%)}@keyframes loaderPulse{0%,to{opacity:.4;transform:scale(1);filter:drop-shadow(0 0 10px rgba(255,215,0,.3))}50%{opacity:1;transform:scale(1.1);filter:drop-shadow(0 0 30px rgba(255,215,0,.7))}}.loader-bar-track{width:200px;height:2px;background:#ffffff1a;border-radius:1px;overflow:hidden}.loader-bar-fill{width:0%;height:100%;background:var(--color-ui-gold);border-radius:1px;transition:width .3s ease;box-shadow:0 0 6px #ffd70080}.loader-text{font-family:var(--font-display);font-size:.75rem;color:var(--color-ui-silver);letter-spacing:.3em;text-transform:uppercase}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-ext-700-normal-C24KFjuG.woff2) format("woff2"),url(/assets/cinzel-latin-ext-700-normal-CORa-yIv.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
