@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&family=Sacramento&display=swap";:root{color:#3d2730;font-synthesis:none;text-rendering:optimizelegibility;background:#fffaf4;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}svg{display:block}.site-shell{--serif:"Italiana", Georgia, serif;--script:"Sacramento", "Brush Script MT", cursive;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--blush) 56%, transparent) 0 12%, transparent 28%), linear-gradient(180deg, var(--paper), #fff6ef);overflow:hidden}.site-shell:before{z-index:10;pointer-events:none;content:"";opacity:.25;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='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");position:fixed;inset:0}.welcome-screen{z-index:50;background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--blush) 78%, white) 0 18%, transparent 48%), var(--paper);opacity:1;visibility:visible;place-items:center;padding:24px;transition:opacity .65s,visibility .65s;display:grid;position:fixed;inset:0}.welcome-screen:before,.welcome-screen:after{color:var(--gold);content:"✦";font-size:clamp(28px,5vw,56px);animation:2.8s ease-in-out infinite alternate breathe;position:absolute}.welcome-screen:before{top:15%;left:14%}.welcome-screen:after{animation-delay:.6s;bottom:18%;right:15%}.welcome-screen.is-opened{pointer-events:none;opacity:0;visibility:hidden}.welcome-card{text-align:center;border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);background:#fffefaeb;width:min(560px,100%);padding:clamp(42px,7vw,72px);position:relative;transform:rotate(-1deg);box-shadow:0 32px 80px #53303b29}.welcome-card .eyebrow{margin-bottom:16px}.welcome-card h2{font-family:var(--serif);letter-spacing:-.035em;margin-bottom:20px;font-size:clamp(44px,7vw,68px);font-weight:400;line-height:1}.welcome-card>p:last-of-type{color:color-mix(in srgb, var(--ink) 70%, white);margin:0 auto 30px;font-family:Georgia,serif;font-size:17px;line-height:1.65}.welcome-heart{color:#fff;background:var(--accent);width:54px;height:54px;box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 28%, transparent);border-radius:50%;place-items:center;margin:0 auto 26px;display:grid}.welcome-heart svg,.welcome-button svg{stroke:currentColor;stroke-width:1.7px;fill:currentColor;width:21px;height:21px}.welcome-button{color:#fff;background:var(--accent);box-shadow:0 12px 26px color-mix(in srgb, var(--accent) 24%, transparent);margin:0 auto}.welcome-button:hover{background:var(--accent-dark)}.topbar{border-bottom:1px solid color-mix(in srgb, var(--ink) 14%, transparent);justify-content:space-between;align-items:center;width:min(1180px,100% - 48px);height:88px;margin:0 auto;display:flex}.brand{color:var(--ink);letter-spacing:.04em;align-items:center;gap:10px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.brand>span:first-child{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:29px;height:29px;display:grid}.brand svg{stroke:currentColor;stroke-width:1.7px;fill:currentColor;width:14px}.topbar-actions{align-items:center;gap:10px;display:flex}.music-toggle{min-height:34px;color:var(--accent-dark);background:color-mix(in srgb, var(--blush) 42%, white);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:10px;font-weight:700;transition:transform .18s,background-color .18s,box-shadow .18s;display:inline-flex}.music-toggle:hover{background:color-mix(in srgb, var(--blush) 68%, white);transform:translateY(-1px)}.music-toggle:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:3px}.music-toggle svg{stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:15px;height:15px}.music-toggle.is-playing{color:#fff;background:var(--accent);box-shadow:0 7px 18px color-mix(in srgb, var(--accent) 24%, transparent)}.music-toggle.needs-tap{animation:1.8s ease-in-out infinite music-pulse}.date-pill{color:color-mix(in srgb, var(--ink) 68%, white);border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);letter-spacing:.16em;border-radius:999px;padding:8px 13px;font-size:10px;font-weight:700}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:72px;width:min(1180px,100% - 48px);min-height:calc(100vh - 88px);margin:0 auto;padding:72px 0 114px;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.eyebrow{color:var(--accent-dark);letter-spacing:.22em;margin:0 0 22px;font-size:11px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{max-width:670px;font-family:var(--serif);letter-spacing:-.045em;margin-bottom:26px;font-size:clamp(64px,7vw,104px);font-weight:400;line-height:.88}h1 em{color:var(--accent);font-family:var(--script);letter-spacing:0;margin-top:11px;font-size:1.05em;font-weight:400;line-height:1;display:block}.hero-subtitle{max-width:560px;color:color-mix(in srgb, var(--ink) 70%, white);margin-bottom:34px;font-family:Georgia,serif;font-size:18px;line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.button{min-height:50px;color:var(--ink);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:13px;font-weight:700;transition:transform .18s,box-shadow .18s,background-color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:focus-visible,.scroll-cue:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:4px}.button svg{stroke:currentColor;stroke-width:1.6px;fill:none;width:17px;height:17px}.button-primary{color:#fff;background:var(--accent);box-shadow:0 12px 26px color-mix(in srgb, var(--accent) 24%, transparent)}.button-primary:hover{background:var(--accent-dark);box-shadow:0 15px 32px color-mix(in srgb, var(--accent) 32%, transparent)}.button-quiet{background:0 0}.button-quiet:hover{background:color-mix(in srgb, var(--blush) 40%, transparent)}.hero-visual{place-items:center;min-height:560px;display:grid;position:relative}.hero-visual:before{content:"";background:color-mix(in srgb, var(--blush) 58%, white);border-radius:47% 53% 62% 38%/48% 41% 59% 52%;width:480px;height:480px;animation:7s ease-in-out infinite alternate breathe;position:absolute}.portrait-card{z-index:1;background:#fffefa;border:1px solid #5936421a;width:min(345px,72vw);padding:18px 18px 24px;position:relative;transform:rotate(3.5deg);box-shadow:0 30px 70px #53303b2e}.tape{z-index:4;background:#f2d8b1b8;width:94px;height:38px;position:absolute;top:-20px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:inset 0 0 0 1px #825a3012}.portrait-art{background:color-mix(in srgb, var(--blush) 58%, white);min-height:390px;position:relative;overflow:hidden}.portrait-art:before{z-index:2;content:"";pointer-events:none;border:1px solid #ffffff8c;position:absolute;inset:12px}.portrait-photo{object-fit:cover;filter:saturate(.92)contrast(.98);width:100%;height:390px;display:block}.portrait-photo-glow{pointer-events:none;background:linear-gradient(#ffe1da1f,#0000 48%),linear-gradient(#0000 70%,#4f22301f);position:absolute;inset:0;box-shadow:inset 0 0 45px #572d3a1a}.portrait-caption{font-family:var(--script);justify-content:space-between;align-items:flex-end;padding:18px 4px 0;font-size:29px;display:flex;transform:rotate(-1.5deg)}.portrait-caption small{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;font-family:DM Sans,sans-serif;font-size:9px;font-weight:700}.floating-word{z-index:2;color:var(--accent-dark);font-family:var(--script);font-size:30px;position:absolute}.word-one{top:14%;right:3%;transform:rotate(8deg)}.word-two{bottom:16%;left:-2%;transform:rotate(-13deg)}.floating-spark{z-index:2;color:var(--gold);font-size:24px;position:absolute}.spark-one{top:23%;left:2%}.spark-two{font-size:34px;bottom:27%;right:-1%}.scroll-cue{color:color-mix(in srgb, var(--ink) 55%, white);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.scroll-cue span{letter-spacing:.2em;writing-mode:vertical-rl;font-size:8px;font-weight:700}.scroll-cue svg{stroke:currentColor;stroke-width:1.5px;fill:none;width:15px;animation:1.6s ease-in-out infinite nudge}.letter-section{background:var(--ink);padding:130px 24px;position:relative}.letter-section:before{content:"";opacity:.09;background-image:linear-gradient(45deg,#0000 48%,#fff 49% 51%,#0000 52%),linear-gradient(-45deg,#0000 48%,#fff 49% 51%,#0000 52%);background-size:80px 80px;position:absolute;inset:0}.letter-card{z-index:1;background:#fffdf8;grid-template-columns:.8fr 1.2fr;gap:90px;width:min(970px,100%);margin:0 auto;padding:clamp(50px,8vw,96px);display:grid;position:relative;transform:rotate(-.4deg);box-shadow:0 28px 70px #0000002e}.letter-card:after{content:"";pointer-events:none;border:1px solid #4e2d391a;position:absolute;inset:12px}.letter-heading .eyebrow{margin-bottom:28px}.letter-heading h2,.section-intro h2,.celebration-section h2{font-family:var(--serif);letter-spacing:-.035em;margin:0;font-size:clamp(42px,5vw,66px);font-weight:400;line-height:1.07}.letter-body{padding-top:6px}.letter-body>p:not(.signature):not(.sign-off){color:color-mix(in srgb, var(--ink) 75%, white);margin-bottom:20px;font-family:Georgia,serif;font-size:16px;line-height:1.85}.sign-off{margin:36px 0 4px;font-family:Georgia,serif;font-style:italic}.signature{color:var(--accent);font-family:var(--script);margin:0;font-size:34px}.letter-decoration{z-index:2;color:#fff;background:var(--accent);border:6px solid #fffdf8;border-radius:50%;place-items:center;width:58px;height:58px;display:grid;position:absolute;top:87px;left:calc(50% - 490px);transform:rotate(-12deg);box-shadow:0 6px 15px #0003}.highlights-section{width:min(1180px,100% - 48px);margin:0 auto;padding:130px 0}.section-intro{justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:58px;display:flex}.section-intro h2{max-width:700px}.doodle-heart{width:84px;height:84px;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:50%;place-items:center;display:grid;position:relative}.doodle-heart:after{content:"";border:1px dashed color-mix(in srgb, var(--accent) 30%, transparent);border-radius:50%;position:absolute;inset:-8px;transform:rotate(8deg)}.doodle-heart svg{stroke:currentColor;stroke-width:1.2px;fill:none;width:29px}.highlight-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.highlight-card{background:color-mix(in srgb, var(--blush) 38%, white);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);min-height:455px;transition:transform .22s,box-shadow .22s;position:relative;overflow:hidden}.highlight-card:nth-child(2){background:color-mix(in srgb, var(--gold) 20%, white)}.highlight-card:nth-child(3){background:color-mix(in srgb, var(--sage) 20%, white)}.highlight-card:hover{z-index:2;transform:translateY(-6px)rotate(-.5deg);box-shadow:0 18px 42px #41242f1a}.highlight-number{z-index:2;color:#fff;letter-spacing:.15em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2d1b219e;border:1px solid #ffffff38;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:700;position:absolute;top:16px;right:16px}.highlight-image-frame{aspect-ratio:4/3;background:color-mix(in srgb, var(--blush) 60%, white);position:relative;overflow:hidden}.highlight-image{object-fit:cover;filter:saturate(.92);width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.7,.2,1);display:block}.highlight-card:hover .highlight-image{transform:scale(1.035)}.highlight-content{flex-direction:column;justify-content:flex-end;min-height:205px;padding:30px;display:flex;position:relative}.highlight-icon{width:50px;height:50px;color:var(--accent-dark);border:1px solid color-mix(in srgb, var(--ink) 8%, transparent);background:#fffffff0;border-radius:50%;place-items:center;display:grid;position:absolute;top:-25px;left:28px;box-shadow:0 8px 22px #41242f1a}.highlight-icon svg{stroke:currentColor;stroke-width:1.3px;fill:none;width:21px}.highlight-card h3{font-family:var(--serif);margin-bottom:12px;font-size:28px;font-weight:400}.highlight-card p{color:color-mix(in srgb, var(--ink) 68%, white);margin:0;font-family:Georgia,serif;font-size:14px;line-height:1.7}.celebration-section{text-align:center;background:var(--accent);color:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:560px;padding:100px 24px;display:flex;position:relative;overflow:hidden}.celebration-section .eyebrow{color:#ffffffbf}.celebration-section h2{margin-bottom:22px;font-size:clamp(54px,7vw,90px)}.celebration-section>p:not(.eyebrow){color:#ffffffd1;max-width:540px;margin-bottom:30px;font-family:Georgia,serif;line-height:1.7}.celebration-button{z-index:1;color:var(--accent-dark);background:#fff;position:relative;box-shadow:0 15px 35px #64203033}.celebration-button svg{fill:currentColor}.magic-message{opacity:0;min-height:20px;font-family:var(--script);margin-top:20px;font-size:28px;transition:opacity .25s,transform .25s;transform:translateY(8px)}.magic-message.is-visible{opacity:1;transform:translateY(0)}.celebration-orbit{border:1px solid #ffffff47;border-radius:50%;position:absolute}.orbit-one{width:480px;height:480px}.orbit-two{border-style:dashed;width:760px;height:760px;animation:38s linear infinite spin}footer{min-height:92px;color:color-mix(in srgb, var(--ink) 64%, white);background:var(--paper);letter-spacing:.08em;justify-content:center;align-items:center;gap:18px;padding:24px;font-size:11px;font-weight:700;display:flex}footer span:nth-child(2){color:var(--accent)}.confetti-layer{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:0;background:var(--accent);border-radius:2px;width:8px;height:15px;position:absolute;top:-30px}.confetti-layer.is-active .confetti-piece{animation-name:confetti-fall;animation-timing-function:cubic-bezier(.15,.7,.4,1);animation-fill-mode:both}.confetti-piece.gold{background:var(--gold)}.confetti-piece.sage{background:var(--sage)}.confetti-piece.blush{background:#ffd8d3}@keyframes breathe{0%{transform:rotate(-3deg)scale(.98)}to{transform:rotate(3deg)scale(1.03)}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-30px)rotate(0)}8%{opacity:1}to{opacity:0;transform:translate(70px,110vh)rotate(720deg)}}@keyframes music-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 24%, transparent)}50%{box-shadow:0 0 0 7px #0000}}@media (width<=900px){.hero{grid-template-columns:1fr;gap:35px;padding-top:70px}.hero-copy{text-align:center}.hero-subtitle{margin-inline:auto}.hero-actions{justify-content:center}.hero-visual{min-height:540px}.scroll-cue{display:none}.letter-card{grid-template-columns:1fr;gap:32px}.letter-decoration{top:96px;left:22px}.highlight-grid{grid-template-columns:1fr}.highlight-card{min-height:0}}@media (width<=600px){.topbar,.hero,.highlights-section{width:min(100% - 32px,1180px)}.topbar{height:74px}.brand>span:last-child,.music-toggle span{display:none}.music-toggle{justify-content:center;width:34px;padding:0}.hero{min-height:auto;padding:64px 0 80px}h1{font-size:clamp(58px,18vw,82px)}.hero-subtitle{font-size:16px}.hero-actions{flex-direction:column}.button{width:100%}.hero-visual{min-height:490px}.hero-visual:before{width:370px;height:370px}.portrait-card{width:min(300px,82vw)}.portrait-art{min-height:335px}.portrait-photo{height:335px}.word-one{right:0}.word-two{left:0}.letter-section{padding:85px 16px}.letter-card{padding:48px 30px}.letter-decoration{width:50px;height:50px;top:52px;left:11px}.letter-heading h2,.section-intro h2{font-size:43px}.highlights-section{padding:95px 0}.section-intro{align-items:flex-start}.doodle-heart{display:none}.highlight-card{min-height:0}.celebration-section{min-height:520px}footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
