:root{color:#f6eee9;font-synthesis:none;text-rendering:optimizelegibility;--wine:#190b12;--wine2:#251018;--rose:#c6948b;--blush:#dfb9af;--gold:#d3b17d;--ivory:#f4ebe1;--muted:#b9a5a2;--serif:"Cormorant Garamond",Georgia,serif;--script:"Italianno",cursive;background:#190b12;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--wine);min-width:320px;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}.section{position:relative;overflow:hidden}.eyebrow{letter-spacing:.27em;color:#c9a88d;font-size:9px;font-weight:500}.intro{text-align:center;background:radial-gradient(at 50% 56%,#451d2c 0%,#2b111d 37%,#190b12 76%);place-items:center;height:100svh;min-height:620px;display:grid;position:relative;overflow:hidden}.intro:before,.final-section:before{content:"";pointer-events:none;opacity:.14;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");position:absolute;inset:0}.intro-grain{background:radial-gradient(#0000 30%,#07030670 100%);position:absolute;inset:0}.intro-orb{filter:blur(2px);pointer-events:none;border-radius:50%;animation:13s ease-in-out infinite alternate drift;position:absolute}.orb-one{background:radial-gradient(circle,#c9837b1a,#0000 70%);width:260px;height:260px;top:8%;left:9%}.orb-two{background:radial-gradient(circle,#c6956f1c,#0000 70%);width:380px;height:380px;animation-delay:-5s;bottom:-20%;right:2%}@keyframes drift{to{transform:translate(22px,-28px)scale(1.08)}}.intro-inner{z-index:1;margin-top:-4vh;position:relative}.intro-eyebrow{color:#d1ac96;margin-bottom:29px;display:block}.intro h1{font:400 clamp(76px,13vw,176px)/.78 var(--serif);letter-spacing:-.035em;color:#f8eee5;text-shadow:0 8px 70px #d2a99b26;margin:0 0 26px}.title-rule{width:130px;color:var(--gold);align-items:center;gap:13px;margin:0 auto 20px;font-size:11px;display:flex}.title-rule i{background:linear-gradient(90deg,#0000,#ad8968);flex:1;height:1px}.title-rule i:last-child{transform:rotate(180deg)}.intro-inner>p{letter-spacing:.35em;color:#d9c9c0;margin:0 0 43px;font-size:10px}.button{color:#e5cda9;letter-spacing:.2em;cursor:pointer;background:0 0;border:1px solid #c5a17b8c;justify-content:center;align-items:center;gap:15px;height:46px;padding:0 27px;font-size:9px;transition:all .35s;display:inline-flex}.button:hover{border-color:#d3b17d;transform:translateY(-2px);box-shadow:0 0 28px #d3b17d24}.button-outline{min-width:150px}.button-outline span{color:var(--gold);font-size:12px}.intro-index,.intro-side{letter-spacing:.18em;color:#a38d89;font-size:8px;position:absolute;bottom:38px}.intro-index{left:6vw}.intro-side{writing-mode:vertical-rl;bottom:50%;right:6vw;transform:translateY(50%)}.experience{background:var(--wine)}.birthday{text-align:center;background:radial-gradient(at 50% 47%,#4a202e,#251019 57%,#190b12 82%);place-items:center;height:100svh;min-height:760px;max-height:1000px;display:grid}.birthday:before{content:"";border:1px solid #dfb9af12;border-radius:50%;width:480px;height:480px;position:absolute;box-shadow:0 0 0 50px #dfb9af08,0 0 0 100px #dfb9af05}.birthday-glow{filter:blur(110px);background:#d59c8820;border-radius:50%;width:320px;height:320px;position:absolute}.birthday-copy{position:relative}.birthday-copy .eyebrow{margin-bottom:26px;display:block}.birthday-copy h2{font:400 clamp(72px,11vw,142px)/.76 var(--serif);text-transform:uppercase;letter-spacing:.035em;color:#f5e8df;margin:0}.birthday-copy h2 em{color:#d8a99f;text-transform:none;letter-spacing:-.025em;font-style:italic;font-weight:400}.birthday-copy p{color:#d9c8c2;letter-spacing:.025em;margin:33px 0 4px;font:300 17px/1.8 DM Sans,sans-serif}.handwritten{font:34px var(--script);color:#c99c90}.scroll-cue{color:#b69a8d;letter-spacing:.18em;align-items:center;gap:12px;font-size:8px;text-decoration:none;display:flex;position:absolute;bottom:42px}.scroll-cue svg{animation:2s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(4px)}}.section-number{color:#9f8782;letter-spacing:.16em;font-size:8px;position:absolute;bottom:42px;right:6vw}.cake-section{text-align:center;background:radial-gradient(at 50% 70%,#3c1b28 0%,#211018 52%,#1a0c13 83%);min-height:790px;padding:111px 24px 100px}.section-heading h2,.moments-heading h2{font:400 clamp(54px,7vw,84px)/.95 var(--serif);color:var(--ivory);margin:17px 0 12px}.section-heading p,.moments-heading p{color:#bdaaa4;letter-spacing:.035em;font-size:12px}.cake-stage{justify-content:center;align-items:flex-end;width:min(460px,90vw);height:300px;margin:32px auto 7px;padding-bottom:37px;display:flex;position:relative}.cake-halo{filter:blur(53px);background:#deaa7730;border-radius:50%;width:260px;height:180px;transition:all 1s;position:absolute;bottom:60px}.wished .cake-halo{background:#e6b87464}.cake-plate{background:linear-gradient(#e2c9ab,#947357 56%,#604337);border-radius:50%;width:300px;height:28px;position:absolute;bottom:27px;box-shadow:0 13px 25px #08040685}.cake-body{background:linear-gradient(90deg,#8d4851,#bf7775 25%,#dba59a 50%,#b66c70 77%,#763845);border-radius:8px 8px 25px 25px;width:216px;height:126px;position:absolute;bottom:50px;overflow:hidden;box-shadow:inset 8px 0 12px #ffffff1c,inset -12px 0 20px #290f1e46,0 16px 26px #0704076e}.cake-body:before{content:"";background:linear-gradient(#f1d9c3,#ddb9a7);border-radius:8px 8px 13px 13px;height:19px;position:absolute;inset:0 0 auto;box-shadow:0 3px 4px #5b2c32}.icing-drip{background:#ebcbbb;border-radius:0 0 8px 8px;width:15px;position:absolute;top:12px}.drip-a{height:31px;left:43px}.drip-b{height:20px;left:112px}.drip-c{height:37px;right:38px}.cake-band{background:#f2c9b069;height:1px;position:absolute;bottom:21px;left:0;right:0}.cake-top{z-index:2;background:radial-gradient(at 50% 32%,#f1dbca 0%,#ddc0ad 50%,#a9656c 73%,#673440 100%);border-radius:50%;width:226px;height:45px;position:absolute;bottom:166px;box-shadow:0 4px 9px #12080d80}.cake-berry{background:#833242;border-radius:50%;width:8px;height:8px;position:absolute;top:14px;left:76px;box-shadow:inset -2px -2px 3px #421723}.berry-two{width:7px;height:7px;top:20px;left:148px}.cake-cream{background:#fff0dd;border-radius:50%;width:20px;height:7px;position:absolute;top:10px;left:110px;transform:rotate(-15deg)}.cream-two{width:13px;top:23px;left:45px}.candle{z-index:4;background:repeating-linear-gradient(135deg,#e9d4bc 0 5px,#c78b81 5px 9px);width:8px;height:58px;position:absolute;bottom:196px;box-shadow:0 0 8px #ffdcaf25}.candle-0{height:59px;left:calc(50% - 31px)}.candle-1{height:71px;left:calc(50% - 4px)}.candle-2{height:54px;left:calc(50% + 24px)}.wick{background:#3b2021;width:1px;height:7px;position:absolute;top:-5px;left:3px}.flame{transform-origin:50% 100%;background:linear-gradient(#fff6d1,#ffe5a5 35%,#f18b4b);border-radius:60% 40% 50% 50%;width:8px;height:17px;transition:all .35s;animation:.6s ease-in-out infinite alternate flicker;position:absolute;top:-22px;left:0;box-shadow:0 0 11px 4px #ffb7628c,0 0 28px 9px #ef9b5040}.candle-1 .flame{height:21px;animation-delay:-.3s;top:-26px}.wished .flame{opacity:0;transform:scale(.2)translateY(-10px)}@keyframes flicker{to{transform:rotate(5deg)scaleX(.84)}}.wish-sparkles{pointer-events:none;position:absolute;inset:0}.wish-sparkles i{left:calc(35% + (var(--i)*1.2%));width:3px;height:3px;animation:rise-spark calc(1.5s + var(--i)*80ms) ease-out forwards;animation-delay:calc(var(--i)*35ms);background:#f3c98c;border-radius:50%;position:absolute;bottom:20%;box-shadow:0 0 9px 2px #f2cb91}@keyframes rise-spark{to{transform:translateY(-150px) translateX(calc(var(--i)*2px - 24px));opacity:0}}.button-gold{background:#d0b08212;margin-top:5px}.button-gold:disabled{opacity:.68;cursor:default}.wish-message{margin:23px auto 0}.wish-message p{font:20px/1.55 var(--serif);color:#e8d4c6;margin:0 0 10px}.wish-message span{font:27px var(--script);color:#dbafa0}.wish-message b,.final-always b{color:#cb807d;font:12px sans-serif}.letter-section{background:linear-gradient(145deg,#241019,#311722 50%,#1c0d14);flex-direction:column;align-items:center;min-height:820px;padding:125px 20px 130px;display:flex}.letter-label{text-align:center;margin-bottom:39px}.letter-label h2{font:400 clamp(58px,7vw,82px)/1 var(--serif);color:#f1e5dc;margin:15px 0 0}.letter-card{color:#38252a;background:linear-gradient(135deg,#f4e9dc,#ead9ca 55%,#e4d1c0);width:min(610px,90vw);min-height:400px;padding:38px 58px 54px;position:relative;overflow:hidden;box-shadow:0 25px 85px #09040774}.letter-card:before{content:"";pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.35'/%3E%3C/svg%3E");position:absolute;inset:0}.letter-topline{color:#9f786f;letter-spacing:.2em;border-bottom:1px solid #9d77623d;justify-content:space-between;padding-bottom:16px;font-size:8px;display:flex;position:relative}.letter-content{padding-top:20px;position:relative}.letter-content p{font:15px/1.85 var(--serif);color:#513b3c;margin:0 0 15px}.letter-content p.letter-dear{font:italic 20px var(--serif);margin-bottom:13px}.letter-sign{padding-top:5px!important}.letter-sign span{font:31px var(--script);color:#a66d6b}.letter-more{color:#8e625d;letter-spacing:.19em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #916960;padding:8px 0;font-size:8px;transition:all .25s;position:relative}.letter-more span{margin-left:11px}.letter-more:hover{color:#38252a}.letter-seal{width:32px;height:32px;font:18px var(--serif);color:#9b6a67;border:1px solid #af837a;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:22px;right:28px}.letter-side-note{writing-mode:vertical-rl;letter-spacing:.2em;color:#9f807f;font-size:8px;position:absolute;top:50%;right:4vw}.moments-section{background:#190b12;padding:125px 7vw 150px}.moments-heading{text-align:center;margin-bottom:64px}.moments-heading h2{text-transform:uppercase;letter-spacing:.02em;margin-top:20px;font-size:clamp(74px,10vw,118px)}.moments-heading p{margin-top:16px}.gallery{grid-template-rows:210px 180px 210px;grid-template-columns:1.04fr .96fr 1.04fr;align-items:start;gap:54px 28px;max-width:1090px;margin:auto;display:grid}.gallery-item{text-align:left;cursor:pointer;background:#37202a;border:0;width:100%;height:100%;padding:0;display:block;position:relative;overflow:visible}.gallery-item img{object-fit:cover;filter:saturate(.77)contrast(.96);width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .7s,box-shadow .7s;display:block;box-shadow:0 12px 30px #08040744}.gallery-item:hover img{filter:saturate(.96);transform:scale(1.025);box-shadow:0 22px 46px #08040775}.gallery-item.tall{grid-row:span 2;height:300px}.gallery-item.wide{height:210px}.gallery-item.small{width:88%;height:176px;margin:24px auto 0}.gallery-item:nth-child(4){grid-area:3/2/auto/4;height:205px}.gallery-item:nth-child(5){grid-area:3/1;height:250px}.gallery-item:nth-child(3){grid-area:2/3}.gallery-item:after{content:"";opacity:.5;pointer-events:none;background:linear-gradient(#0000 50%,#14090b5c);position:absolute;inset:0}.gallery-item.tall img{border-radius:2px 2px 45px}.gallery-item.wide img{border-radius:35px 2px 2px}.gallery-item.small img{border-radius:50% 50% 2px 2px}.photo-caption{z-index:2;color:#d6b7a5;font:25px var(--script);position:absolute;bottom:-27px;left:14px}.photo-overlay{z-index:2;letter-spacing:.17em;color:#fff;opacity:0;font-size:7px;transition:all .3s;position:absolute;bottom:15px;left:17px;transform:translateY(5px)}.photo-overlay span{margin-left:9px}.gallery-item:hover .photo-overlay{opacity:1;transform:translateY(0)}.lightbox{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c060bed;place-items:center;padding:60px 9vw;display:grid;position:fixed;inset:0}.lightbox figure{flex-direction:column;align-items:center;max-width:min(900px,80vw);max-height:80vh;margin:0;display:flex}.lightbox figure img{object-fit:contain;max-width:100%;max-height:72vh;box-shadow:0 24px 90px #0009}.lightbox figcaption{color:#e5cdc0;width:100%;font:25px var(--script);justify-content:space-between;padding-top:17px;display:flex}.lightbox figcaption span{letter-spacing:.15em;color:#b69a8d;align-self:center;font:8px DM Sans,sans-serif}.lightbox-close,.lightbox-nav{color:#e9d9cd;cursor:pointer;background:0 0;border:1px solid #e3cbb533;place-items:center;transition:all .2s;display:grid;position:absolute}.lightbox-close:hover,.lightbox-nav:hover{color:#fff;border-color:#d6b294}.lightbox-close{width:42px;height:42px;top:32px;right:36px}.lightbox-nav{border-radius:50%;width:43px;height:43px;top:50%;transform:translateY(-50%)}.lightbox-nav.prev{left:3vw}.lightbox-nav.next{right:3vw}.final-section{text-align:center;background:#140910;place-items:center;height:100svh;min-height:830px;max-height:1080px;display:grid}.final-image-wrap{place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.final-image-wrap img{object-fit:cover;object-position:center 42%;opacity:.39;filter:saturate(.56);width:min(800px,70vw);height:100%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 24% 76%,#0000);mask-image:linear-gradient(90deg,#0000,#000 24% 76%,#0000)}.final-image-shade{background:linear-gradient(#150910 0%,#15091085 30%,#1509105c 62%,#150910 99%),radial-gradient(#0000 12%,#150910a3 86%);position:absolute;inset:0}.final-copy{z-index:1;margin-top:-2vh;position:relative}.final-copy .eyebrow{margin-bottom:25px;display:block}.final-copy h2{font:400 clamp(58px,9vw,110px)/.83 var(--serif);color:#f4eae2;margin:0}.final-copy h2 em{color:#dfb6aa;font-weight:400}.final-always{font:32px var(--script);color:#dcbaaa;margin-top:24px;display:block}.final-always b{margin-left:4px}.final-footer{letter-spacing:.22em;color:#a88e88;font-size:7px;position:absolute;bottom:38px;left:0;right:0}.music-control{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#d7c0b0;cursor:pointer;background:#170b12b8;border:1px solid #ead8c129;justify-content:center;align-items:center;gap:7px;min-width:38px;height:38px;padding:0 12px;transition:all .25s;display:flex;position:fixed;top:26px;right:28px}.music-control:hover,.music-control.is-playing{border-color:#d5b18b8a}.music-label{letter-spacing:.16em;font-size:7px}.music-bars{align-items:center;gap:2px;height:12px;display:flex}.music-bars i{background:#d6b897;width:1px;height:4px}.music-bars i:nth-child(2){height:9px}.music-bars i:nth-child(3){height:6px}.is-playing .music-bars i{animation:.7s ease-in-out infinite alternate bars}.is-playing .music-bars i:nth-child(2){animation-delay:-.4s}.is-playing .music-bars i:nth-child(3){animation-delay:-.2s}@keyframes bars{to{height:11px}}.chapter-nav{z-index:8;flex-direction:column;align-items:center;gap:9px;display:flex;position:fixed;top:50%;left:27px;transform:translateY(-50%)}.chapter-nav a{color:#b2988e;letter-spacing:.1em;font-size:7px;text-decoration:none;transition:all .2s}.chapter-nav a:hover{color:#f4d9c4}.chapter-nav i{background:#8c706b55;width:1px;height:19px}@media (width<=700px){.intro{min-height:590px}.intro-inner{margin-top:-2vh}.intro h1{font-size:clamp(70px,19vw,116px)}.intro-eyebrow{font-size:8px}.intro-inner>p{letter-spacing:.27em;font-size:8px}.intro-side{font-size:7px;right:17px}.intro-index{bottom:25px;left:19px}.birthday{height:92svh;min-height:680px}.birthday:before{width:280px;height:280px;box-shadow:0 0 0 30px #dfb9af08,0 0 0 60px #dfb9af05}.birthday-copy h2{font-size:clamp(69px,18vw,112px)}.birthday-copy p{font-size:15px}.scroll-cue{font-size:7px;bottom:28px}.section-number{bottom:28px;right:20px}.cake-section{min-height:740px;padding:94px 18px 84px}.section-heading h2{font-size:60px}.section-heading p{font-size:11px}.cake-stage{transform-origin:bottom;margin:22px auto -5px;transform:scale(.86)}.wish-message p{font-size:18px}.letter-section{min-height:760px;padding:95px 17px 105px}.letter-card{width:min(540px,94vw);min-height:420px;padding:31px 26px 54px}.letter-content p{font-size:14px;line-height:1.75}.letter-side-note{display:none}.moments-section{padding:96px 20px 110px}.moments-heading{margin-bottom:44px}.moments-heading h2{font-size:75px}.gallery{grid-template-rows:230px 146px 200px 215px;grid-template-columns:1fr 1fr;gap:35px 14px}.gallery-item.tall{grid-row:span 1;height:230px}.gallery-item.wide{height:146px}.gallery-item.small{width:100%;height:175px;margin:0}.gallery-item:first-child{grid-row:span 2}.gallery-item:nth-child(2){grid-area:1/2;height:146px}.gallery-item:nth-child(3){grid-area:2/2;height:146px}.gallery-item:nth-child(4){grid-area:4/1/auto/3;height:215px}.gallery-item:nth-child(5){grid-area:3/1;height:200px}.gallery-item img{border-radius:3px!important}.photo-caption{font-size:21px;bottom:-24px;left:8px}.photo-overlay{display:none}.lightbox{padding:50px 15px}.lightbox figure{max-width:90vw}.lightbox figure img{max-height:70vh}.lightbox-nav{width:38px;height:38px;top:auto;bottom:22px;transform:none}.lightbox-nav.prev{left:calc(50% - 50px)}.lightbox-nav.next{right:calc(50% - 50px)}.lightbox-close{top:16px;right:16px}.final-section{height:90svh;min-height:700px}.final-image-wrap img{opacity:.34;width:100%;max-width:560px;-webkit-mask-image:linear-gradient(#0000,#000 20% 82%,#0000);mask-image:linear-gradient(#0000,#000 20% 82%,#0000)}.final-copy .eyebrow{letter-spacing:.19em;font-size:7px}.final-copy h2{font-size:clamp(57px,14vw,85px)}.music-control{top:17px;right:16px}.chapter-nav{opacity:.65;left:9px}.chapter-nav a{font-size:6px}.chapter-nav i{height:12px}}@media (width<=380px){.chapter-nav{display:none}.gallery{grid-template-rows:200px 130px 175px 190px}.gallery-item.tall{height:200px}.gallery-item.wide{height:130px}.gallery-item:nth-child(4){height:190px}.gallery-item:nth-child(5){height:175px}.cake-stage{margin-left:-4vw;margin-right:-4vw;transform:scale(.78)}.letter-card{padding-left:22px;padding-right:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--wine:#1d0a13;--wine2:#321622;--rose:#d78f9e;--blush:#f0b9c3;--gold:#e3c59b;--ivory:#fff1ee;--muted:#d1b2b4}.intro{background:radial-gradient(at 76% 47%,#5d2839 0%,#371726 35%,#1c0a13 78%)}.intro-inner{z-index:3;text-align:left;max-width:570px;margin-top:-3vh;transform:translate(-17vw)}.intro-eyebrow{color:#efc3ca;letter-spacing:.21em;margin-bottom:24px}.intro h1{letter-spacing:-.05em;text-shadow:0 12px 65px #f9bdcb30;margin-bottom:23px;font-size:clamp(90px,12vw,156px);line-height:.84}.name-star{vertical-align:top;color:#f1cba2;margin:4px 0 0 10px;font:24px DM Sans,sans-serif;animation:18s linear infinite slow-turn;display:inline-block}@keyframes slow-turn{to{transform:rotate(360deg)}}.intro-inner .title-rule{width:150px;margin-bottom:17px;margin-left:0}.intro-inner>p{color:#f1dde0;letter-spacing:.29em;margin-bottom:35px}.button-outline{color:#f2d4c8;background:#230f19a6;border-color:#e7bfaa99}.intro-portrait{z-index:2;aspect-ratio:9/16;background:#1c0a13;border-radius:220px 220px 8px 8px;width:clamp(250px,min(29vw,39svh),420px);height:auto;position:absolute;top:50%;right:15vw;overflow:hidden;transform:translateY(-50%);box-shadow:0 24px 80px #10050b9c}.intro-portrait:before{content:"";z-index:3;pointer-events:none;border:1px solid #efc4b879;border-radius:210px 210px 2px 2px;position:absolute;inset:10px}.intro-portrait img{object-fit:contain;object-position:center;border-radius:inherit;filter:saturate(.88)contrast(.97);width:100%;height:100%;display:block;position:absolute;inset:0}.portrait-frame{z-index:1;border-radius:inherit;pointer-events:none;background:linear-gradient(#0000 50%,#230e1a55);position:absolute;inset:0}.portrait-note{z-index:4;color:#fff0ee;font:26px/1.02 var(--script);text-align:center;text-shadow:0 2px 16px #14070d;position:absolute;bottom:18px;left:12px;right:12px}.intro-index,.intro-side{color:#c5a1a4}.intro-side{right:4vw}.birthday{background:radial-gradient(at 50% 47%,#5a2639,#30131f 58%,#1d0a13 85%)}.birthday:before{border-color:#f2bfc114;box-shadow:0 0 0 50px #f2bfc10a,0 0 0 100px #f2bfc106}.birthday-glow{background:#ee9cae29}.birthday-copy h2 em{color:#efb8c2}.birthday-copy p{color:#efd9dc}.handwritten{color:#e3aeb7}.scroll-cue,.section-number{color:#ceaaae}.cake-section{background:radial-gradient(at 50% 70%,#522335,#2b111d 53%,#1c0a13 84%)}.section-heading h2,.moments-heading h2{color:#fff0ee}.section-heading p,.moments-heading p{color:#d5b9bb}.eyebrow{color:#efb8c2}.cake-halo{background:#ee9db42e}.cake-top{background:radial-gradient(at 50% 32%,#fff0e7 0%,#e6c6bd 50%,#c3838b 75%,#7d4253 100%)}.cake-body{background:linear-gradient(90deg,#864153,#bf7486 25%,#e4a0aa 50%,#bd6b81 77%,#753547)}.cake-plate{background:linear-gradient(#f2d8ca,#b57f83 56%,#603844)}.icing-drip{background:#f7ded8}.wish-message p{color:#f6dfe0}.wish-message span{color:#efb8c2}.button-gold{color:#f0d4b0;background:#e8bfd018;border-color:#e3c59b8c}.letter-section{background:linear-gradient(145deg,#2b111c,#411b2b 50%,#1f0b15)}.letter-card{background:linear-gradient(135deg,#fff0eb,#f1d9d7 55%,#e8c8ca);box-shadow:0 25px 85px #09040788}.letter-card:before{opacity:.13}.letter-content p{color:#50303a}.letter-topline{color:#a56778;border-color:#9d5a6b3d}.letter-sign span{color:#b4647a}.letter-more{color:#9d596d;border-color:#9d596d}.letter-seal{color:#9b5a6c;border-color:#bb8290}.letter-label h2 span{color:#ed9dad}.moments-section{background:#1b0912}.moments-heading h2{color:#fff0ee;text-shadow:0 12px 50px #e990a41c}.gallery{columns:4;column-gap:22px;max-width:1200px;display:block}.moments-section .gallery-item:nth-child(n){vertical-align:top;break-inside:avoid;text-align:left;background:#341622;border:1px solid #f5dce11c;width:100%;height:auto;margin:0 0 31px;padding:0;display:inline-block;position:relative;overflow:hidden}.gallery-item img{object-fit:contain;filter:saturate(.88)contrast(.98);width:100%;height:auto;box-shadow:none;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .7s;display:block}.gallery-item:hover img{filter:saturate(1.04);box-shadow:none;transform:scale(1.035)}.gallery-item.tall img,.gallery-item.wide img,.gallery-item.small img{border-radius:0}.gallery-item:after{opacity:.8;background:linear-gradient(#0000 64%,#180810a8 100%)}.photo-index{z-index:2;color:#fff0ee;letter-spacing:.18em;text-shadow:0 1px 8px #10050c;align-items:center;gap:8px;font-size:7px;display:flex;position:absolute;top:13px;left:13px}.photo-index i{background:#f0bec6a6;width:13px;height:1px}.photo-caption{z-index:3;color:#ffe7e3;font:25px/1 var(--script);text-shadow:0 2px 14px #14050b;bottom:13px;left:13px}.photo-overlay{color:#ffe7e3;opacity:.85;font-size:6px;bottom:14px;left:auto;right:12px;transform:none}.gallery-item:has(.photo-caption) .photo-overlay{bottom:42px}.lightbox{background:#10060cf2}.lightbox-close,.lightbox-nav{color:#f8e9e8;border-color:#f1c7d041}.lightbox figcaption{color:#f7dce0}.films-section{background:linear-gradient(160deg,#351421,#1a0911 74%);padding:120px 7vw 100px}.films-heading{margin-bottom:50px}.film-reel{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px;max-width:1200px;margin:auto;display:grid}.film-card{min-width:0;margin:0}.film-frame{background:#12070d;border:1px solid #f3ccd41e;position:relative;overflow:hidden;box-shadow:0 18px 44px #09030757}.film-frame video{object-fit:contain;background:#11070c;width:100%;height:clamp(220px,29vw,390px);display:block}.film-number{pointer-events:none;color:#fff3ed;letter-spacing:.18em;text-shadow:0 1px 8px #10050b;font-size:7px;position:absolute;top:13px;left:14px}.film-card>p{color:#e9cbd0;font:25px/1 var(--script);margin:12px 0 0}.film-endnote{text-align:center;color:#ca9da4;letter-spacing:.2em;margin:56px auto 0;font-size:7px;display:block}.final-section{background:#16070f}.final-image-wrap img{filter:saturate(.75);opacity:.5;width:min(900px,76vw)}.final-image-shade{background:linear-gradient(#16070f 0%,#16070f70 30%,#16070f36 62%,#16070f 100%),radial-gradient(#0000 10%,#16070fa6 88%)}.final-copy h2 em{color:#f0bdc5}.final-always{color:#f1c4c6}.final-footer{color:#c4a0a4}.chapter-nav a{color:#dab9bc}.chapter-nav i{background:#c58c9655}.music-control{color:#e8cbd0;background:#1d0a13cc;border-color:#f0d8dd36}@media (width<=900px){.gallery{columns:3}.intro-inner{transform:translate(-20vw)}.intro-portrait{width:clamp(250px,min(31vw,39svh),390px);right:9vw}.film-reel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.intro{background:radial-gradient(at 52% 74%,#562437,#301321 55%,#1d0a13 88%);flex-direction:column;justify-content:flex-start;height:100svh;min-height:900px;max-height:1050px;padding:93px 23px 50px;display:flex}.intro-inner{text-align:center;z-index:3;width:100%;max-width:100%;margin:0;transform:none}.intro-eyebrow{letter-spacing:.16em;margin-bottom:18px;font-size:7px}.intro h1{margin-bottom:16px;font-size:clamp(82px,19vw,122px)}.name-star{margin-left:4px;font-size:17px}.intro-inner .title-rule{width:112px;margin:0 auto 14px}.intro-inner>p{letter-spacing:.24em;margin-bottom:24px;font-size:8px}.button-outline{height:42px;font-size:8px}.intro-portrait{aspect-ratio:9/16;flex:none;width:min(280px,68vw);height:auto;margin:28px auto 0 10vw;position:relative;top:auto;right:auto;transform:none}.intro-portrait:before{border-radius:210px 210px 2px 2px;inset:8px}.portrait-note{font-size:23px;bottom:16px;left:10px;right:10px}.intro-index{bottom:21px;left:18px}.intro-side{font-size:6px;bottom:19%;right:13px}.birthday{min-height:700px}.cake-section{padding-top:90px}.letter-card{background:linear-gradient(135deg,#fff0eb,#f1d9d7 55%,#e8c8ca)}.moments-section{padding:96px 20px 105px}.moments-heading h2{font-size:70px}.gallery{columns:2;column-gap:13px}.moments-section .gallery-item:nth-child(n){margin-bottom:20px}.photo-index{gap:5px;font-size:6px;top:9px;left:8px}.photo-caption{font-size:21px;bottom:9px;left:8px}.gallery-item:has(.photo-caption) .photo-overlay{bottom:35px}.films-section{padding:92px 18px 80px}.films-heading{margin-bottom:37px}.films-heading h2{font-size:61px}.film-reel{grid-template-columns:1fr;gap:29px}.film-frame video{height:min(72vh,560px)}.film-card>p{font-size:24px}.film-endnote{margin-top:39px;line-height:1.8}.final-image-wrap img{opacity:.47;width:100%;height:82%;-webkit-mask-image:linear-gradient(#0000,#000 20% 82%,#0000);mask-image:linear-gradient(#0000,#000 20% 82%,#0000)}.chapter-nav{gap:6px;left:8px}}@media (width<=380px){.intro{padding-left:15px;padding-right:15px}.intro-portrait{width:64vw}.chapter-nav{display:none}.gallery{columns:2}}main img{-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
