*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}

:root{--party-ground:#e9f5ff;--party-blue:#275cbd;--party-ink:#15345b;--party-paper:#fff;}
html,body{margin:0;background:var(--party-ground);color:var(--party-ink);color-scheme:light;font-family:'Outfit',ui-rounded,system-ui,sans-serif;scroll-behavior:smooth}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--party-blue);outline-offset:5px}.party-page{background:var(--party-ground);color:var(--party-ink)}
.gift-cover{min-height:100dvh;position:relative;overflow:hidden;display:flex;align-items:center;padding:7vw}.cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.gift-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--party-ground),transparent 80%);pointer-events:none}.cover-copy{position:relative;z-index:1;max-width:560px}.invite-label{font-size:15px;letter-spacing:.08em}.cover-copy h1{font-size:clamp(38px,5.2vw,72px);font-weight:900;line-height:1.02;letter-spacing:-.045em;margin:20px 0}.cover-copy>p:not(.invite-label){font-size:24px;font-weight:600}.open-seal{display:flex;flex-direction:column;gap:5px;background:var(--party-blue);color:white;border:3px solid white;outline:2px dashed var(--party-blue);outline-offset:5px;border-radius:100%;width:160px;height:160px;align-items:center;justify-content:center;transform:rotate(-8deg);margin:40px 12px;box-shadow:0 12px 24px #15345b24;transition:transform .3s}.open-seal:hover{transform:rotate(0) scale(1.06)}.open-seal:active{transform:scale(.97)}.open-seal span{font-size:14px}.open-seal strong{font-size:19px}.cover-date{position:absolute;bottom:20px;left:7vw;z-index:2;font-weight:600}.party-header{padding:20px 5vw;display:flex;justify-content:space-between;gap:20px;align-items:center}.party-header a{text-decoration:none;font-weight:800}.party-header button{border:0;background:transparent;font-size:13px;text-decoration:underline}.details-wrap{padding:65px 20px 30px;background:var(--party-ground)}.invite-ticket{max-width:620px;margin:auto;background:white;text-align:center;padding:45px clamp(22px,6vw,65px);border-radius:28px;box-shadow:0 18px 0 #cbdff4,0 28px 45px #15345b16;border:2px solid #d1e4f5}.ticket-intro{font-size:18px;margin:0 0 12px}.invite-ticket h2{font-weight:900;font-size:clamp(36px,6vw,56px);line-height:1;letter-spacing:-.04em;margin:0}.birthday-names{font-size:clamp(32px,5vw,46px);font-weight:800;color:var(--party-blue);line-height:1.08;margin:28px 0}.ticket-rule{border-top:2px dashed #bed2e6;margin:26px -10px}dl{text-align:left;margin:0}dl>div{display:grid;grid-template-columns:70px 1fr;gap:12px;margin:20px 0}dt{font-family:monospace;font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding-top:4px}dd{margin:0;font-size:19px;line-height:1.45;font-weight:600}.party-note{font-size:16px;line-height:1.6;margin:30px 0}.ticket-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.calendar-ticket{display:flex;justify-content:space-between;gap:20px;text-decoration:none;background:var(--party-blue);color:white;padding:17px 20px;border-radius:12px;font-weight:600}.directions-link{font-weight:600;text-underline-offset:5px}.share-link{margin:30px auto 0;border:0;background:none;font-size:13px;text-decoration:underline;text-underline-offset:4px}.see-you{text-align:center;padding:25px;font-size:19px;font-weight:700}.scroll-scrub__copy{background:#e9f5ffeb;border-radius:24px;padding:30px}.scroll-scrub__vignette{opacity:.12}.scroll-scrub__route{display:none}
@media(max-width:650px){.gift-cover{align-items:flex-start;padding:35px 24px;min-height:100dvh}.cover-art{object-position:65% center}.gift-cover:after{background:linear-gradient(180deg,var(--party-ground) 0%,#e9f5ffc9 35%,transparent 70%)}.cover-copy h1{font-size:42px}.cover-copy>p:not(.invite-label){font-size:21px}.open-seal{width:140px;height:140px;margin-top:26px}.cover-date{left:24px;font-size:14px;background:#e9f5ffde;padding:8px 12px;border-radius:10px}.party-header{font-size:13px}.ticket-actions{flex-direction:column}.calendar-ticket{width:100%}.invite-ticket{padding-bottom:30px}.scroll-scrub__copy{padding:22px;max-width:90vw}}
@media(prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.open-seal{transform:none}}

.scroll-scrub__title{font-size:clamp(36px,4.5vw,62px);line-height:1.02}.scroll-scrub__copy{width:min(36rem,48vw)}@media(max-width:650px){.scroll-scrub__copy{width:100%}.scroll-scrub__chapter-pin{align-items:flex-start;padding-top:35px}.scroll-scrub__copy{background:#e9f5ffe6}.scroll-scrub__title{font-size:36px}}

@keyframes open-invitation{from{transform:translateY(35px) scale(.96)}to{transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:no-preference){.party-header+.scroll-scrub{animation:open-invitation .7s cubic-bezier(.2,.8,.2,1) both}}

.film-section{position:relative;height:240dvh}.film-stage{position:sticky;top:0;height:100dvh;overflow:hidden}.film-stage video,.film-stage>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.film-stage video{opacity:0}.film-stage.ready video{opacity:1}.film-copy{position:absolute;z-index:2;left:6vw;top:10vh;width:min(450px,85vw);padding:28px;background:#e9f5ffeb;border-radius:24px}.film-copy h2{font-size:clamp(30px,4vw,52px);line-height:1.05;margin:0 0 18px;letter-spacing:-.04em}.film-copy p{font-size:18px;line-height:1.5}.film-copy a{font-weight:700;text-underline-offset:5px}.film-controls{position:absolute;bottom:25px;right:25px;z-index:3;background:white;color:var(--party-ink);border:2px solid var(--party-blue);border-radius:12px;padding:12px 20px}.film-hint{position:absolute;bottom:25px;left:25px;z-index:3;background:#e9f5ffed;border-radius:10px;padding:12px}.share-fallback{width:100%;padding:12px;color:var(--party-ink);margin-top:15px}.party-header a{padding:6px}.film-error{position:absolute;bottom:90px;left:25px;background:white;padding:12px;z-index:4;max-width:85vw}.film-stage>img{object-position:center}.cover-copy h1{overflow-wrap:normal}.gift-cover .cover-art{object-position:center}.gift-cover:after{background:linear-gradient(90deg,#e9f5fff5, #e9f5ffb0 38%,transparent 80%)}
@media(max-width:650px){.gift-cover .cover-art{object-position:65% center}.gift-cover:after{background:linear-gradient(180deg,#e9f5fff8 0%,#e9f5ffbc 40%,transparent 75%)}.film-copy{top:25px;left:20px;padding:20px}.film-copy p{font-size:16px}.film-copy h2{font-size:34px}.film-hint{font-size:12px;bottom:80px}.party-header{padding:15px}.film-controls{bottom:20px}.details-wrap{padding-top:35px}}
@media(prefers-reduced-motion:reduce){.film-section{height:100dvh}.film-hint,.film-controls{display:none}.film-stage video{display:none}.film-stage{position:relative}}
