@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap";:root{font-family:VT323,monospace;line-height:1.4;font-weight:400;color:#f7f2e8;background-color:#0b1020;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;--text-primary: #f7f2e8}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{background:radial-gradient(circle at top,#24304f,#0b1020 55%,#070a14);overflow-x:hidden;scrollbar-width:none}body::-webkit-scrollbar{width:0;height:0}a{color:inherit;text-decoration:none}button{border:none;background:none}.app{position:relative;min-height:100vh;color:var(--text-primary)}.app--intro{background:#0b1020}.experience-canvas{position:fixed!important;inset:0;width:100%!important;height:100%!important}.scroll-spacer{height:420vh}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:24px;pointer-events:none}.transition-overlay{position:fixed;inset:0;pointer-events:none;background-color:#0b1020;background-image:linear-gradient(45deg,rgba(0,0,0,.45) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.45) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.45) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.45) 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0;mix-blend-mode:multiply;transition:opacity .2s linear;will-change:opacity}.overlay-intro{justify-content:center;align-items:center;pointer-events:auto}.rotate-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#060810eb;z-index:10;text-align:center}.rotate-card{font-family:"Press Start 2P",monospace;font-size:12px;padding:18px 22px;border:2px solid #f5d54a;background:#141827;color:#f7f2e8;box-shadow:0 0 0 4px #0b1020}.intro-button{font-family:"Press Start 2P",monospace;font-size:12px;text-transform:uppercase;padding:14px 18px;border:2px solid #f5d54a;background:#141827;color:#f7f2e8;box-shadow:0 0 0 4px #0b1020;cursor:pointer;transform:translateY(16px)}.intro-stack{display:flex;flex-direction:column;align-items:center;gap:12px}.intro-note{font-family:"Press Start 2P",monospace;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#f7f2e8;text-align:center;max-width:260px;margin-top:20px}.intro-button:focus-visible{outline:3px solid #f5d54a;outline-offset:2px}.music-iframe,.music-audio{position:absolute;width:1px;height:1px;opacity:.01;pointer-events:none}.overlay-header{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto}.overlay-switch{position:absolute;top:18px;right:18px;pointer-events:auto}.auto-scroll-toggle{display:inline-flex;align-items:center;gap:8px;font-family:"Press Start 2P",monospace;font-size:9px;text-transform:uppercase;color:#f7f2e8}.auto-scroll-toggle input{appearance:none;width:28px;height:14px;border-radius:999px;border:2px solid #f5d54a;background:#141827;position:relative;margin:0;cursor:pointer;box-shadow:0 0 0 2px #0b1020}.auto-scroll-toggle input:before{content:"";position:absolute;top:1px;left:1px;width:8px;height:8px;border-radius:999px;background:#f5d54a;transition:transform .2s ease}.auto-scroll-toggle input:checked:before{transform:translate(12px)}.auto-scroll-toggle input:focus-visible{outline:2px solid #f5d54a;outline-offset:2px}.auto-scroll-label{line-height:1}.overlay-title{font-family:"Press Start 2P",monospace;font-size:14px;letter-spacing:1px;text-transform:uppercase}.pixel-heart{display:inline-block;width:4px;height:4px;margin:0 4px 1px;background:#f26aa7;box-shadow:4px 0 #f26aa7,8px 0 #f26aa7,0 4px #f26aa7,4px 4px #f26aa7,8px 4px #f26aa7,2px 8px #f26aa7,6px 8px #f26aa7,4px 12px #f26aa7}.overlay-controls{display:flex;gap:12px}.pixel-button{font-family:"Press Start 2P",monospace;font-size:10px;text-transform:uppercase;padding:10px 14px;border:2px solid #f5d54a;background:#141827;color:#f7f2e8;box-shadow:0 0 0 3px #0b1020;cursor:pointer}.pixel-button:focus-visible{outline:3px solid #f5d54a;outline-offset:2px}.final-card{pointer-events:auto;max-width:520px;padding:18px 18px 20px;border:2px solid #f5d54a;background:#0b1020e6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 12px 30px #00000059;align-self:center;margin:auto;display:grid;gap:10px;position:relative;z-index:2}.final-card--reveal .final-title,.final-card--reveal .final-text,.final-card--reveal .final-actions{opacity:0;transform:translateY(12px);animation:final-content .6s steps(6,end) forwards;animation-delay:.1s}.pixel-burst{position:fixed;inset:0;pointer-events:none;z-index:1}.pixel-burst span{position:absolute;left:0;top:0;width:var(--size);height:var(--size);background:var(--color, #f5d54a);opacity:0;transform:translate(var(--x),var(--y)) scale(1);animation:confetti-fly 2s steps(6,end) forwards;animation-delay:var(--delay)}.final-card--reveal .final-title,.final-card--reveal .final-text,.final-card--reveal .final-actions{z-index:1}@keyframes confetti-fly{0%{opacity:0;transform:translate(var(--x),var(--y)) scale(1) rotate(0)}60%{opacity:1}to{opacity:0;transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) scale(.6) rotate(var(--spin))}}@keyframes final-content{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.final-title{font-family:"Press Start 2P",monospace;font-size:14px}.final-text{font-family:VT323,monospace;font-size:22px;line-height:1.3;white-space:pre-line}.final-actions{display:flex;gap:12px;flex-wrap:wrap}.rsvp-button{display:inline-flex;align-items:center;font-family:"Press Start 2P",monospace;font-size:10px;padding:10px 14px;border:2px solid #6af2a1;background:#101b16;color:#dfffe9;cursor:pointer}.rsvp-button:focus-visible{outline:3px solid #6af2a1;outline-offset:2px}.loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0b1020;z-index:5}.pixel-spinner{width:16px;height:16px;border:3px solid #f5d54a;animation:pixel-spin .8s steps(4,end) infinite}@keyframes pixel-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:720px){.overlay{padding:16px}.final-card{align-self:stretch;margin-bottom:8vh}}
