@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,600;1,500;1,600&display=swap";:root{--ink: #201815;--cream: #f4ead8;--red: #bc2932;--wine: #471527;--gold: #d6a84d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font-family:DM Sans,sans-serif;overflow-x:hidden}button{font:inherit}a{color:inherit}.intro,.gift,.story{position:relative;min-height:100svh;overflow:hidden}.intro{display:grid;place-content:center;justify-items:center;padding:3rem 1.5rem;text-align:center;background:radial-gradient(circle at 50% 48%,rgba(128,63,45,.28),transparent 38%),linear-gradient(145deg,#251b17,#171211)}.grain{position:absolute;inset:0;opacity:.22;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.33'/%3E%3C/svg%3E")}.eyebrow{margin:0 0 1.4rem;color:var(--gold);font-size:.72rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase}.intro h1{margin:0;font-family:Playfair Display,serif;font-size:clamp(4rem,11vw,8.5rem);font-weight:600;line-height:.82;letter-spacing:-.055em}.intro h1 em{color:var(--red);font-weight:500}.intro-copy{max-width:39rem;margin:2.4rem 0;color:#cbbeb5;font-size:clamp(.95rem,1.7vw,1.15rem);font-weight:300;line-height:1.8}.reveal-button{display:inline-flex;align-items:center;gap:1rem;padding:.5rem .55rem .5rem 1.35rem;border:1px solid rgba(244,234,216,.28);border-radius:100px;color:var(--cream);background:#ffffff09;cursor:pointer;text-decoration:none;transition:border-color .3s,background .3s,transform .3s}.reveal-button:hover{transform:translateY(-3px);border-color:var(--gold);background:#ffffff12}.reveal-button:focus-visible,.replay:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.intro>.reveal-button{margin-top:3.25rem}.button-arrow{display:grid;width:2.4rem;aspect-ratio:1;place-items:center;border-radius:50%;color:var(--ink);background:var(--gold);transition:transform .35s}.reveal-button:hover .button-arrow{transform:rotate(-35deg)}.corner{position:absolute;color:var(--gold);font-size:1.2rem;opacity:.75}.corner-one{top:8%;left:8%}.corner-two{right:9%;bottom:9%;font-size:.7rem}.story{display:grid;min-height:100svh;place-items:center;padding:7rem max(1.5rem,8vw)}.story-inner{position:relative;z-index:2;width:min(100%,1050px)}.story-inner.offset{padding-left:min(15vw,180px)}.story-inner.centered{display:flex;flex-direction:column;align-items:center;text-align:center}.story h2{margin:0 0 3rem;font-family:Playfair Display,serif;font-size:clamp(3.7rem,9vw,8rem);font-weight:600;line-height:.86;letter-spacing:-.055em}.story h2 em{color:var(--red);font-weight:500}.story-copy{display:grid;max-width:760px;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);margin-left:auto}.story-copy p{margin:0;color:#cbbeb5;font-size:clamp(1rem,1.6vw,1.15rem);font-weight:300;line-height:1.85}.text-link{display:inline-flex;gap:.7rem;margin-top:3.5rem;padding-bottom:.35rem;border-bottom:1px solid rgba(214,168,77,.55);color:var(--gold);font-size:.78rem;letter-spacing:.12em;text-decoration:none;text-transform:uppercase}.story-sick{background:linear-gradient(135deg,#2a1d19,#171211 65%)}.story-memory{background:var(--wine)}.story-memory .eyebrow,.story-memory .text-link{color:#efc66f}.memory-orbit{position:absolute;left:-12vw;width:min(45vw,560px);aspect-ratio:1;border:1px solid rgba(244,234,216,.13);border-radius:50%}.memory-orbit:before,.memory-orbit:after{content:"";position:absolute;inset:17%;border:inherit;border-radius:inherit}.memory-orbit:after{inset:34%}.memory-orbit span{position:absolute;top:48%;right:-8px;color:var(--gold)}.story-thanks{background:var(--red)}.story-thanks .eyebrow{color:#ffd98d}.story-thanks h2 em{color:var(--cream)}.thanks-copy{max-width:650px;margin:0 0 2.5rem;color:#f3dcd5;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:300;line-height:1.85}.reveal-button.light{border-color:#ffffff8c;background:#41051226}.reveal-button.light .button-arrow{background:var(--cream)}.gift{display:none;place-items:center;padding:2.5rem 1.25rem;color:var(--ink);background:var(--cream)}.revealed .gift{display:grid}.curtain{position:absolute;z-index:5;top:0;width:51%;height:100%;background:repeating-linear-gradient(90deg,#ffffff0a 0 4%,#00000014 7% 12%),var(--red);box-shadow:inset 0 0 70px #2d000759;transition:transform 1.25s cubic-bezier(.76,0,.24,1) .15s}.curtain-left{left:0;transform-origin:left}.curtain-right{right:0;transform-origin:right}.revealed .curtain-left{transform:translate(-102%)}.revealed .curtain-right{transform:translate(102%)}.gift-content{position:relative;z-index:2;display:flex;width:min(100%,900px);flex-direction:column;align-items:center;text-align:center;opacity:0;transform:translateY(26px);transition:opacity .8s ease 1s,transform .8s ease 1s}.revealed .gift-content{opacity:1;transform:none}.eyebrow.dark{color:var(--red)}.gift h2{margin:0;color:var(--wine);font-family:Playfair Display,serif;font-size:clamp(4.5rem,11vw,7.5rem);line-height:.68;letter-spacing:-.07em}.gift h2 span{color:var(--red);font-style:italic;font-weight:500}.venue{margin:1.4rem 0 1.8rem;font-family:Playfair Display,serif;font-size:clamp(1.25rem,3vw,2rem);font-style:italic}.ticket{display:grid;width:min(100%,760px);grid-template-columns:170px 1fr;text-align:left;filter:drop-shadow(0 25px 28px rgba(64,35,21,.18));transform:rotate(-1.2deg)}.ticket-stub,.ticket-main{position:relative;padding:1.6rem;background:#fffaf0}.ticket-stub{display:flex;flex-direction:column;justify-content:space-between;min-height:275px;border-right:1px dashed #bcae9a}.ticket-stub:before,.ticket-stub:after{content:"";position:absolute;right:-13px;width:25px;height:25px;border-radius:50%;background:var(--cream)}.ticket-stub:before{top:-13px}.ticket-stub:after{bottom:-13px}.ticket-stub span,.ticket-topline,.ticket-details span{color:#7b6b61;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}.ticket-stub strong{font-family:Playfair Display,serif;font-size:1.3rem;line-height:1}.barcode{height:30px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px,var(--ink) 5px 6px,transparent 6px 9px)}.ticket-main{display:flex;min-width:0;flex-direction:column;justify-content:space-between}.ticket-topline{display:flex;justify-content:space-between}.ticket-artist{margin:1.2rem 0;color:var(--red);font-family:Playfair Display,serif;font-size:clamp(2.5rem,7vw,5rem);font-style:italic;line-height:.9;letter-spacing:-.04em}.ticket-details{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1rem;border-top:1px solid #ded2c1}.ticket-details div{display:grid;gap:.3rem}.ticket-details strong{font-size:.86rem}.ticket-note{margin:1.4rem 0 0;color:#7b6b61;font-family:Playfair Display,serif;font-size:.9rem;font-style:italic}.ticket-message{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #ded2c1}.ticket-message p{max-width:290px;margin:0;color:#5f5048;font-size:.78rem;line-height:1.5}.ticket-message strong{flex-shrink:0;color:var(--wine);font-family:Playfair Display,serif;font-size:1rem;font-style:italic}.ticket-message strong span{color:var(--red)}.secret-note{position:fixed;z-index:20;right:1.25rem;bottom:1.25rem;display:grid;width:min(560px,calc(100vw - 2.5rem));grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.3rem 1.5rem;border:1px solid rgba(71,21,39,.22);box-shadow:0 18px 60px #1f0e0c40;text-align:left;background:#fffaf0;opacity:0;transform:translateY(calc(100% + 2rem));pointer-events:none}.revealed .secret-note{animation:secret-in .7s cubic-bezier(.22,1,.36,1) 2.4s forwards}.secret-note.dismissed{display:none}.secret-icon{display:grid;flex:0 0 2.2rem;aspect-ratio:1;place-items:center;border-radius:50%;color:var(--cream);background:var(--wine)}.secret-note strong{color:var(--wine);font-family:Playfair Display,serif;font-size:1.15rem}.secret-note p{margin:.35rem 0 0;color:#65534a;font-size:.9rem;line-height:1.6}.secret-close{padding:.65rem .9rem;border:1px solid var(--wine);color:var(--wine);background:transparent;cursor:pointer}.secret-close:hover{color:var(--cream);background:var(--wine)}.replay{margin-top:3rem;padding:.5rem;border:0;border-bottom:1px solid currentColor;color:#77685e;background:transparent;cursor:pointer}.confetti{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-20px;left:var(--x);width:7px;height:13px;background:var(--color);animation:fall var(--duration) linear var(--delay) infinite}@keyframes fall{to{transform:translate3d(40px,110vh,0) rotate(var(--rotation))}}@keyframes secret-in{to{opacity:1;transform:translateY(0);pointer-events:auto}}@media(max-width:620px){.intro h1{font-size:clamp(3.6rem,18vw,5rem)}.intro-copy br{display:none}.gift{padding-block:4.5rem}.story{padding-block:5rem}.story-inner.offset{padding-left:0}.story-copy{grid-template-columns:1fr;gap:1.2rem}.memory-orbit{left:-55vw;width:100vw}.secret-note{grid-template-columns:auto 1fr}.secret-close{grid-column:1 / -1;width:100%}.ticket{grid-template-columns:1fr;transform:rotate(-.5deg)}.ticket-stub{min-height:auto;gap:1rem;border-right:0;border-bottom:1px dashed #bcae9a}.ticket-stub:before,.ticket-stub:after{display:none}.barcode{width:45%}.ticket-details{grid-template-columns:1fr}.ticket-message{align-items:flex-start;flex-direction:column;gap:.75rem}}@media(max-height:780px)and (min-width:621px){.gift{padding-block:1.5rem}.gift h2{font-size:clamp(4rem,12vh,6rem)}.venue{margin-block:.9rem 1.2rem}.ticket-stub{min-height:245px}.ticket-stub,.ticket-main{padding:1.25rem}.ticket-artist{margin-block:.75rem;font-size:clamp(2.5rem,7vh,4rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
