@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500;1,600&family=DM+Sans:wght@400;500;600;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--maroon:#6f1831;--maroon-deep:#3e0b1c;--cream:#f8f0e5;--paper:#fffaf2;--gold:#c7a15a;--ink:#342326;--serif:"Cormorant Garamond", Georgia, serif;--sans:"DM Sans", system-ui, sans-serif;font-family:var(--sans);color:var(--ink);background:var(--cream);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding-top:0}body{background:var(--cream);min-width:320px;margin:0;overflow-x:hidden}body:not(.opened){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;display:block}.section-maroon{color:var(--cream);background:var(--maroon)}.section-cream{background:var(--cream)}.snap-section{scroll-snap-align:start;scroll-snap-stop:always;min-height:100svh}.eyebrow{font:600 10px/1.4 var(--sans);letter-spacing:.25em;text-transform:uppercase;margin:0 0 16px}.eyebrow--maroon{color:var(--maroon)}.button{min-height:50px;font:600 12px var(--sans);letter-spacing:.08em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;transition:transform .25s,box-shadow .25s;display:inline-flex}.button:active{transform:scale(.97)}.button:focus-visible,.music-toggle:focus-visible,.shutter:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.button--light{color:var(--maroon);background:var(--cream);box-shadow:0 14px 40px #23020d40}.button--maroon{color:#fff;background:var(--maroon);box-shadow:0 10px 30px #6f183133}.opening{z-index:100;color:var(--cream);text-align:center;background:radial-gradient(circle at 50% 28%,#a43a59 0,#741733 39%,#3d091b 100%);justify-content:center;align-items:center;padding:34px 18px 18px;transition:opacity .8s,visibility .8s,transform 1s cubic-bezier(.7,0,.2,1);display:flex;position:fixed;inset:0;overflow:hidden}.opening:before{content:"";opacity:.28;background:repeating-radial-gradient(circle,#0000 0 65px,#ffffff1f 66px 67px);animation:35s linear infinite slow-spin;position:absolute;inset:-15%}.opening--gone{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-3%)}.opening__ribbon{z-index:4;color:#5f132b;background:var(--gold);width:245px;font:700 8px var(--sans);letter-spacing:.2em;border-radius:999px;padding:8px 14px;position:absolute;top:20px;left:50%;transform:translate(-50%)rotate(-1.5deg);box-shadow:0 7px 24px #28000e47}.opening__card{z-index:2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:linear-gradient(165deg,#8e2845cc,#43081ceb);border:1px solid #edc782bf;border-radius:190px 190px 28px 28px;flex-direction:column;justify-content:center;align-items:center;width:min(92vw,430px);height:min(720px,100svh - 62px);min-height:600px;padding:52px 24px 22px;display:flex;position:relative;box-shadow:inset 0 0 0 8px #ffffff09,0 30px 80px #18000861}.opening__card:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffffff1f;position:absolute;inset:10px}.opening__ornament{color:var(--gold);margin-bottom:13px;font-size:20px;animation:2s ease-in-out infinite twinkle}.opening h1{font:italic 600 clamp(70px,22vw,108px)/.78 var(--serif);letter-spacing:-.055em;text-shadow:0 10px 25px #1f000a33;margin:-2px 0 0}.opening h1 span{color:#e9c887;font:500 17px/1 var(--serif);letter-spacing:.16em;margin-bottom:6px;display:block}.opening__subtitle{max-width:220px;font:italic 500 18px/1.15 var(--serif);color:#eed5ca;margin:14px 0 23px}.opening__logo{object-fit:contain;filter:drop-shadow(0 8px 10px #28000f40);width:51px;height:51px;animation:3.5s ease-in-out infinite gentle-tilt;position:absolute;top:30px}.opening__panda{z-index:3;pointer-events:none;width:138px;animation:2.8s ease-in-out infinite peek-bob;position:absolute;top:41%;right:-38px}.opening__spark{color:var(--gold);font-size:22px;animation:2s ease-in-out infinite twinkle;position:absolute}.opening__spark--one{top:27%;left:35px}.opening__spark--two{color:#e7a7b0;animation-delay:.8s;bottom:23%;right:28px}.envelope{z-index:4;background:#e9d6c3;border-radius:4px;width:100px;height:64px;margin:0 auto 22px;animation:3s ease-in-out infinite envelope-float;position:relative;overflow:hidden;box-shadow:0 10px 20px #21000a2e}.envelope:before,.envelope:after{content:"";background:#f7e9d8;width:82px;height:82px;position:absolute;bottom:-28px;transform:rotate(45deg)}.envelope:before{left:-41px}.envelope:after{right:-41px}.envelope__flap{z-index:1;background:#f3e1ce;width:84px;height:84px;position:absolute;top:-49px;left:8px;transform:rotate(45deg)}.envelope__seal{z-index:3;color:#f1d3c7;background:var(--maroon);border-radius:50%;place-items:center;width:27px;height:27px;display:grid;position:absolute;top:23px;left:37px}.opening .button{z-index:2;min-width:190px;position:relative}.sound-note{color:#ffffff9e;letter-spacing:.07em;align-items:center;gap:7px;margin:16px 0 0;font-size:10px;display:flex}.music-toggle{z-index:30;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#3e0b1cb8;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:7px;height:38px;padding:4px 10px 4px 5px;display:flex;position:fixed;top:14px;right:14px;box-shadow:0 8px 25px #3507162e}.music-toggle>span:nth-child(2){letter-spacing:.05em;font-size:10px;display:none}.music-toggle__disc{width:28px;height:28px;color:var(--gold);background:#2e0815;border-radius:50%;place-items:center;display:grid}.music-toggle__disc.is-playing{animation:4s linear infinite spin}.celebration-rain{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.rain-item{top:-45px;left:var(--x);color:#531c2c3d;transform:scale(var(--scale));animation:celebration-fall calc(8s + var(--i) * .37s) linear infinite;animation-delay:calc(var(--i) * -.83s);place-items:center;font-style:normal;display:grid;position:absolute}.rain-item--cap{width:27px;height:21px}.rain-item--cap:before{content:"";clip-path:polygon(50% 0,100% 32%,50% 68%,0 32%);background:currentColor;width:26px;height:16px;position:absolute;top:1px}.rain-item--cap:after{content:"";border-bottom:2px solid;border-right:2px solid;border-radius:0 0 6px;width:9px;height:12px;position:absolute;top:8px;right:1px}.rain-item--star,.rain-item--spark{font-size:19px}.rain-item--heart{font-size:22px}.rain-item--confetti{background:currentColor;border-radius:70% 0;width:7px;height:15px}.rain-item:nth-child(3n){animation-name:celebration-fall-left}.rain-item:nth-child(4n){animation-name:celebration-fall-right}.hero{background:radial-gradient(ellipse at 50% 55%, #8a2945 0, var(--maroon) 47%, #4d0d23 100%);text-align:center;place-items:center;min-height:100svh;padding:110px 24px 42px;display:grid;position:relative;overflow:hidden}.hero:before{content:"";border:1px solid #d2ab604d;border-radius:50%;width:150%;height:55%;position:absolute;bottom:-25%;left:-25%;box-shadow:0 0 0 45px #ffffff06,0 0 0 90px #ffffff05}.hero__content{z-index:1;width:100%;max-width:660px;position:relative}.hero h2{font:500 clamp(57px,17vw,96px)/.78 var(--serif);letter-spacing:-.05em;margin:0}.hero h2 em{color:#efc9bc;font-weight:500}.hero__degree{font:500 13px/1.6 var(--sans);letter-spacing:.06em;margin:24px 0 4px}.hero__degree span{color:#d9b16b;text-transform:uppercase;letter-spacing:.2em;font-size:11px}.hero__panda-wrap{width:min(82vw,410px);margin:-4px auto 0;position:relative}.hero__panda{filter:drop-shadow(0 24px 20px #1f000a47);width:100%;animation:4s ease-in-out infinite float}.doodle{z-index:2;color:#f5cfd0;font:italic 600 18px/1 var(--serif);position:absolute;transform:rotate(-12deg)}.doodle--left{top:38%;left:-3%}.doodle--right{top:30%;right:-4%;transform:rotate(9deg)}.hero__sparkle{color:var(--gold);animation:2.4s ease-in-out infinite twinkle;position:absolute}.hero__sparkle--one{font-size:24px;top:22%;left:8%}.hero__sparkle--two{font-size:30px;animation-delay:.9s;top:34%;right:8%}.scroll-cue{color:#ffffffb3;letter-spacing:.2em;flex-direction:column;align-items:center;gap:6px;margin-top:-12px;font-size:8px;text-decoration:none;display:inline-flex}.scroll-cue svg{animation:1.8s ease-in-out infinite bounce}.panda-walkway{z-index:2;pointer-events:none;height:94px;position:absolute;bottom:2px;left:0;right:0;overflow:hidden}.panda-walker{filter:drop-shadow(0 8px 10px #19000833);width:118px;height:98px;animation:12s linear infinite panda-stroll;position:absolute;bottom:-4px;left:-120px}.walk-frame{object-fit:contain;object-position:bottom;width:100%;height:100%;position:absolute;inset:0}.walk-frame--a{animation:.58s step-end infinite walk-frame-a}.walk-frame--b{animation:.58s step-end infinite walk-frame-b}.letter-section{background:linear-gradient(#6f1831 0,#c58e95 72px,#ead9ca 145px 100%);padding:118px 20px 105px;position:relative;overflow:hidden}.letter-section:before{content:"";opacity:.22;background-image:radial-gradient(#986d5e .55px,#0000 .55px);background-size:6px 6px;position:absolute;inset:0}.section-heading{z-index:2;max-width:650px;margin:0 auto 35px;position:relative}.section-heading h2{color:var(--maroon);font:500 clamp(46px,14vw,72px)/.95 var(--serif);letter-spacing:-.035em;margin:0}.centered{text-align:center}.letter-card{z-index:2;background:var(--paper);border:1px solid #6f18311f;max-width:620px;margin:0 auto;padding:45px 26px 36px;position:relative;transform:rotate(-.45deg);box-shadow:0 24px 60px #47231e26}.letter-card:after{content:"";pointer-events:none;border:1px solid #c7a15a4d;position:absolute;inset:9px}.quote-mark{height:42px;color:var(--gold);font:76px/1 var(--serif);display:block}.letter-card p{z-index:1;font:500 18px/1.58 var(--serif);margin:18px 0;position:relative}.letter-card__highlight{color:var(--maroon);font-size:21px!important;font-style:italic!important}.letter-sign{z-index:1;color:#765b57;font:italic 15px var(--serif);flex-direction:column;margin-top:34px;display:flex;position:relative}.letter-sign strong{color:var(--maroon);font:italic 600 36px var(--serif);margin-top:3px}.letter-panda{z-index:4;pointer-events:none;filter:drop-shadow(0 9px 12px #4c1f222e);position:absolute}.letter-panda--bouquet{width:145px;animation:3.4s ease-in-out infinite bouquet-sway;bottom:8px;right:-30px;transform:rotate(5deg)}.letter-panda--reader{width:135px;animation:2.8s ease-in-out infinite reader-breathe;bottom:17px;left:-24px}.letter-confetti span{z-index:1;color:var(--gold);animation:4s ease-in-out infinite orbit-spark;position:absolute}.letter-confetti span:first-child{font-size:28px;top:92px;right:8%;transform:rotate(14deg)}.letter-confetti .mini-cap{opacity:.45;clip-path:polygon(50% 0,100% 34%,78% 50%,78% 82%,22% 82%,22% 50%,0 34%);background:currentColor;width:28px;height:20px}.letter-confetti span:nth-child(2){font-size:25px;animation-delay:-.9s;top:32%;right:7%}.letter-confetti span:nth-child(3){color:#b44362;font-size:29px;animation-delay:-1.7s;bottom:20%;left:8%}.letter-confetti span:nth-child(4){font-size:21px;animation-delay:-2.5s;top:48%;left:5%}.chapter{background:linear-gradient(#ead9ca 0,#f8f0e5 130px 100%);padding:120px 22px 104px;position:relative;overflow:hidden}.section-intro{color:#765e5c;max-width:430px;font:14px/1.7 var(--sans);margin:14px auto 0}.wishes-grid{border-top:1px solid #6f183138;max-width:820px;margin:52px auto 0}.wish{border-bottom:1px solid #6f183138;grid-template-columns:52px 1fr;gap:12px;padding:26px 0;display:grid}.wish__number{color:var(--gold);font:italic 500 26px var(--serif)}.wish h3{color:var(--maroon);font:600 26px var(--serif);margin:0 0 7px}.wish p{color:#725d5d;font:13px/1.6 var(--sans);margin:0}.chapter-panda{z-index:2;width:125px;animation:3.2s ease-in-out infinite peek-bob;position:absolute;bottom:0;right:-30px;transform:rotate(-4deg)}.chapter-panda span{color:var(--maroon);font:italic 600 16px var(--serif);position:absolute;top:12px;left:-52px;transform:rotate(-10deg)}.quote-section{text-align:center;background:linear-gradient(180deg,#f8f0e5 0,#c48b93 8%,#7b1c39 18%,var(--maroon) 55%,var(--maroon-deep) 100%);place-items:center;min-height:100svh;padding:155px 28px 220px;display:grid;position:relative;overflow:hidden}.quote-section>.reveal{z-index:2;max-width:650px;position:relative}.mini-star{color:var(--gold);font-size:24px}blockquote{font:italic 500 clamp(34px,10vw,56px)/1.08 var(--serif);letter-spacing:-.025em;margin:26px 0}cite{color:#dfb775;font:600 9px var(--sans);letter-spacing:.22em;font-style:normal}.quote-panda{filter:drop-shadow(0 15px 18px #0003);width:230px;position:absolute;bottom:-95px;right:-45px;transform:rotate(-8deg)}.quote-panda--celebrate{width:215px;animation:2.6s ease-in-out infinite happy-dance;bottom:-45px;right:-38px}.photobooth-section{background:linear-gradient(180deg,var(--maroon-deep) 0,#aa6273 7%,#e9d6c5 16%,#e9d6c5 100%);min-height:100svh;padding:142px 18px 110px;position:relative;overflow:hidden}.photobooth-section:before{content:"";opacity:.14;background-image:linear-gradient(45deg,#a36f5a 25%,#0000 25%),linear-gradient(-45deg,#a36f5a 25%,#0000 25%);background-size:20px 20px;position:absolute;inset:0}.booth{z-index:2;border:2px solid var(--maroon);background:var(--paper);border-radius:24px 24px 12px 12px;max-width:430px;margin:45px auto 0;padding:16px 14px 26px;position:relative;box-shadow:12px 14px #6f183121}.booth__top{min-height:43px;color:var(--maroon);letter-spacing:.12em;grid-template-columns:42px 1fr 42px;align-items:center;padding:4px 6px 12px;font-size:9px;display:grid}.booth__top strong{font:600 16px var(--serif);letter-spacing:.02em;text-align:center}.booth__top img{object-fit:contain;border-radius:50%;width:35px;height:35px;margin-left:auto}.camera-stage{aspect-ratio:4/3;background:var(--maroon-deep);border-radius:14px;width:100%;position:relative;overflow:hidden}.camera-stage video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-loading{z-index:3;color:#f8e7df;text-align:center;background:radial-gradient(circle,#7e2640f0,#370818f7);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.camera-loading span{border:3px solid #ffffff40;border-top-color:#f8e7df;border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}.camera-loading p{font:italic 18px var(--serif);margin:0}.camera-placeholder{color:#f5ded4;text-align:center;background:radial-gradient(circle,#842743,var(--maroon-deep));flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;height:100%;padding:35px 24px;display:flex}.camera-placeholder>svg{color:var(--gold)}.camera-placeholder p{font:italic 24px var(--serif);margin:0}.camera-error{color:#ffc9c9!important;font:11px/1.5 var(--sans)!important}.camera-flash{z-index:5;opacity:0;pointer-events:none;background:#fff;transition:opacity .18s;position:absolute;inset:0}.camera-flash.is-flashing{opacity:1;transition:none}.countdown{z-index:4;color:#fff;font:italic 600 130px var(--serif);text-shadow:0 5px 20px #0003;background:#3e0b1c33;place-items:center;animation:.75s infinite pop;display:grid;position:absolute;inset:0}.camera-sticker{color:var(--maroon);font:800 9px/1.2 var(--sans);text-align:center;background:#f7d887;border-radius:3px;padding:6px 9px;position:absolute;bottom:12px;right:10px;transform:rotate(-5deg)}.shot-dots{justify-content:center;gap:10px;margin:18px 0;display:flex}.shot-dots span{color:#9a7b75;border:1px solid #c7a7a0;border-radius:50%;place-items:center;width:27px;height:27px;font-size:10px;display:grid}.shot-dots span.is-filled{color:#fff;border-color:var(--maroon);background:var(--maroon)}.shutter{border:2px solid var(--maroon);cursor:pointer;background:0 0;border-radius:50%;width:62px;height:62px;margin:0 auto;padding:5px;display:block}.shutter span{background:var(--maroon);border-radius:50%;width:100%;height:100%;transition:transform .2s;display:block}.shutter:active span{transform:scale(.86)}.shutter:disabled{opacity:.38;cursor:wait}.shutter:disabled span{transform:scale(.88)}.booth__actions{flex-direction:column;align-items:center;gap:14px;display:flex}.text-button{color:var(--maroon);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;font-size:11px;display:flex}.booth__caption{color:#9a746a;text-align:center;font:italic 15px var(--serif);letter-spacing:.06em;margin:18px 0 0}.strip-preview{z-index:2;background:#fbf3e9;border:5px solid #5c2134;border-radius:12px;width:min(88vw,340px);margin:78px auto 0;padding:96px 9px 54px;position:relative;transform:rotate(1.2deg);box-shadow:11px 15px 30px #36131829}.strip-preview:before{content:"";z-index:4;pointer-events:none;border:2px solid #aa8b5c85;border-radius:6px;position:absolute;inset:4px}.strip-title{z-index:10;color:#fffaf2;white-space:nowrap;background:#5c2134;border-radius:999px;flex-direction:column;align-items:center;padding:8px 25px 9px;display:flex;position:absolute;top:15px;left:51%;transform:translate(-50%)rotate(-2deg);box-shadow:0 6px 12px #36131829}.strip-title strong{font:italic 600 clamp(29px, 9.5vw, 34px)/.95 var(--serif);letter-spacing:-.045em}.strip-title small{font:700 8px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-top:6px}.strip-logo{z-index:11;object-fit:contain;filter:drop-shadow(0 8px 9px #3613183d);border-radius:50%;width:88px;height:88px;position:absolute;top:-20px;left:-39px}.strip-photo,.strip-empty{z-index:1;aspect-ratio:4/3;object-fit:cover;border:2px solid #5c2134;border-radius:5px;width:100%;margin-bottom:7px;position:relative}.strip-empty{color:#5c21347a;font:30px var(--serif);background:#eee1d5;place-items:center;display:grid}.strip-panda{z-index:9;object-fit:contain;image-rendering:auto;pointer-events:none;filter:drop-shadow(0 5px 5px #2d07142e);height:auto;position:absolute}.strip-panda--top{width:126px;top:-10px;right:-53px;transform:rotate(5deg)}.strip-panda--bottom{width:132px;bottom:-40px;left:-51px;transform:rotate(-7deg)}.strip-panda--celebrate{width:145px;bottom:-39px;right:-49px;transform:rotate(4deg)}.strip-footer{z-index:10;color:#fffaf2;text-align:center;width:178px;font:700 11px/1 var(--sans);letter-spacing:.08em;background:#5c2134;border-radius:999px;padding:7px 12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.photobooth-note{z-index:2;text-align:center;max-width:340px;color:var(--maroon);margin:58px auto 0;position:relative}.photobooth-note span{color:#b44362;font-size:28px;animation:1.8s ease-in-out infinite heartbeat;display:block}.photobooth-note p{font:italic 600 29px/1.05 var(--serif);margin:7px 0 3px}.photobooth-note small{color:#8d6a65;font:10px var(--sans);letter-spacing:.08em}.finale{text-align:center;background:radial-gradient(circle at 50% 35%,#8b2845,var(--maroon) 48%,#420c1e);min-height:100svh;padding:150px 24px 32px;position:relative;overflow:hidden}.finale:after{content:"";z-index:0;background:linear-gradient(#e9d6c5 0,#b97080 52%,#0000 100%);height:120px;position:absolute;top:0;left:0;right:0}.finale:before{content:"";border:1px solid #d9b16b4d;border-radius:180px 180px 14px 14px;position:absolute;inset:20px}.finale>.reveal{z-index:2;position:relative}.finale__stars{z-index:2;color:var(--gold);margin-bottom:42px;position:relative}.finale h2{font:500 clamp(51px,15vw,86px)/.88 var(--serif);letter-spacing:-.045em;margin:0}.finale h2 em{color:#efc6bc;font-weight:500}.finale__copy{color:#eddad4;font:13px/1.8 var(--sans);margin:26px auto}.signature{flex-direction:column;align-items:center;margin:42px auto 0;display:flex}.signature span{color:#d8b5ac;font:italic 16px var(--serif)}.signature strong{font:italic 600 37px var(--serif);margin-top:5px}.signature small{color:var(--gold);font:600 9px var(--sans);letter-spacing:.2em;text-transform:uppercase}.finale__panda{z-index:2;width:205px;margin:15px auto -7px;animation:2.8s ease-in-out infinite happy-dance;position:relative}.finale__panda img{filter:drop-shadow(0 16px 18px #00000038)}.copyright{z-index:2;color:#ffffff73;letter-spacing:.18em;margin:0;font-size:7px;position:relative}.reveal{opacity:0;filter:blur(3px);transition:opacity .75s ease var(--delay),transform .85s cubic-bezier(.2,.8,.2,1) var(--delay),filter .75s ease var(--delay);transform:translateY(30px)scale(.985)}.reveal.is-visible{opacity:1;filter:blur();transform:translateY(0)scale(1)}@keyframes float{50%{transform:translateY(-10px)rotate(1deg)}}@keyframes twinkle{50%{opacity:.3;transform:scale(.72)rotate(20deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes pop{0%{opacity:.3;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes fall{to{transform:translate(35px,110vh)rotate(520deg)}}@keyframes heartbeat{50%{transform:scale(1.18)}}@keyframes slow-spin{to{transform:rotate(360deg)}}@keyframes gentle-tilt{50%{transform:rotate(7deg)scale(1.05)}}@keyframes envelope-float{50%{transform:translateY(-5px)rotate(.8deg)}}@keyframes peek-bob{50%{transform:translateY(-8px)rotate(2deg)}}@keyframes happy-dance{25%{transform:rotate(-3deg)translateY(-6px)}75%{transform:rotate(3deg)translateY(-2px)}}@keyframes panda-stroll{0%{transform:translate(0)translateY(0)rotate(-2deg)}12%{transform:translate(14vw)translateY(-5px)rotate(2deg)}25%{transform:translate(29vw)translateY(0)rotate(-2deg)}50%{transform:translate(58vw)translateY(-5px)rotate(2deg)}75%{transform:translate(87vw)translateY(0)rotate(-2deg)}to{transform:translate(calc(100vw + 130px))translateY(-5px)rotate(2deg)}}@keyframes walk-frame-a{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes walk-frame-b{0%,49%{opacity:0}50%,to{opacity:1}}@keyframes celebration-fall{to{transform:translate3d(25px,110vh,0) rotate(540deg) scale(var(--scale))}}@keyframes celebration-fall-left{to{transform:translate3d(-48px,110vh,0) rotate(-480deg) scale(var(--scale))}}@keyframes celebration-fall-right{to{transform:translate3d(64px,110vh,0) rotate(620deg) scale(var(--scale))}}@keyframes bouquet-sway{50%{transform:rotate(-2deg)translateY(-7px)}}@keyframes reader-breathe{50%{transform:translateY(-6px)scale(1.025)}}@keyframes orbit-spark{50%{opacity:.55;transform:translate(8px,-8px)rotate(18deg)scale(1.2)}}@media (width<=639px){html{scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.hero{min-height:100svh}.letter-section{padding-top:108px;padding-bottom:190px}.letter-section .section-heading{margin-bottom:24px}.letter-card{padding:34px 24px 29px}.letter-card p{margin:14px 0;font-size:16.5px;line-height:1.46}.letter-card__highlight{font-size:19px!important}.letter-sign{margin-top:24px}.chapter{padding-top:112px;padding-bottom:72px}.chapter .section-heading{margin-bottom:0}.wishes-grid{margin-top:34px}.wish{padding:20px 0}.wish h3{font-size:24px}.quote-section{padding-top:150px}.photobooth-section{padding-top:130px}.booth{margin-top:34px}}@media (width>=640px){.music-toggle>span:nth-child(2){display:inline}.letter-section,.chapter,.photobooth-section{padding-left:40px;padding-right:40px}.letter-card{padding:58px 58px 45px}.wishes-grid{border-bottom:1px solid #6f183138;grid-template-columns:1fr 1fr;display:grid}.wish{border-bottom:0;padding:32px 26px}.wish:nth-child(odd){border-right:1px solid #6f183138}.wish:nth-child(-n+2){border-bottom:1px solid #6f183138}.quote-section{padding-bottom:110px}.quote-panda{width:290px;right:-55px}.quote-panda--celebrate{width:270px;right:-35px}}@media (width>=960px){.hero{padding-top:90px}.hero__panda-wrap{width:380px}.hero h2{font-size:92px}.letter-section,.chapter{padding-top:130px;padding-bottom:140px}.section-heading{margin-bottom:52px}.quote-section{min-height:670px}.quote-panda{width:380px;bottom:-150px;right:1%}.photobooth-section{padding-top:130px}.finale{padding-top:125px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
