@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Caveat:wght@500;600&display=swap";:root{font-family:DM Sans,sans-serif;color:#3c3934;background:#fbf6ed;font-synthesis:none;font-weight:400;line-height:1.6;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #9b4260;outline-offset:5px}button{border:0}header{max-width:1280px;margin:auto;padding:28px 48px;display:flex;align-items:center;gap:28px;border-bottom:1px solid #e8dfd3}.brand{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:600;letter-spacing:.03em}.brand svg{color:#bc506d}.header-note{margin-left:auto;font-size:12px;color:#847c71;font-style:italic}main{max-width:1184px;padding:0 24px;margin:auto;min-height:75vh}.paper-grain{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:10;opacity:.15;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.14' filter='url(%23n)'/%3E%3C/svg%3E")}h1,h2,h3{font-family:"DM Serif Display",Georgia,serif;font-weight:400;line-height:1.12;margin:0}h1{font-size:clamp(48px,5.7vw,78px);letter-spacing:-.035em}h1 em{color:#b84d69;font-weight:400}h2{font-size:36px;letter-spacing:-.025em}h3{font-size:26px}p{color:#756c62}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:700;display:flex;gap:9px;align-items:center;color:#9a705b;margin-bottom:22px}.intro{font-size:17px;line-height:1.8;margin:24px 0}.handwritten{font-family:Caveat,cursive;font-size:29px;color:#ab4a61}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:70px 24px 60px;min-height:760px}.login-form{max-width:350px;margin-top:30px}label{display:block;font-size:12px;font-weight:600;margin:18px 0 7px;color:#63584f}input{width:100%;border:1px solid #dcd1c4;border-radius:8px;background:#fffcf7;padding:13px 15px;color:#413b34;outline:none}input:focus{border-color:#ba526d;box-shadow:0 0 0 3px #ba526d15}input[readonly]{background:#f2ece2;color:#827366}.password-wrap{position:relative}.password-wrap input{padding-right:50px}.password-wrap button{position:absolute;right:7px;top:6px;height:38px;width:38px;background:none;color:#8b7e71;display:grid;place-items:center}.primary{background:#b94f6b;color:#fff;padding:14px 22px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:13px;font-weight:600;transition:background .2s,transform .2s;min-height:48px}.primary:hover{background:#9d3b55;transform:translateY(-2px)}form .primary{width:100%;margin-top:24px}.error{color:#a3344e;font-size:13px}.signoff{margin-top:29px}.photo-collage{position:relative;height:590px}.polaroid{margin:0;background:#fffdf8;padding:12px 12px 4px;box-shadow:0 7px 22px #584b3220;position:relative}.polaroid img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}.polaroid figcaption{font-family:Caveat,cursive;text-align:center;padding:9px 0;font-size:23px;color:#726656}.portrait-main{width:295px;position:absolute;right:45px;top:15px;transform:rotate(7deg)}.portrait-main:before,.welcome-photo:before{content:"";width:100px;height:27px;position:absolute;background:#ddc79a85;top:-13px;left:calc(50% - 50px);transform:rotate(-6deg)}.portrait-small{width:225px;position:absolute;left:-5px;bottom:0;transform:rotate(-9deg)}.portrait-small img{aspect-ratio:1}.portrait-small figcaption{font-size:20px}.photo-note{position:absolute;bottom:52px;right:0;line-height:1.1;transform:rotate(6deg)}.scribble{position:absolute;color:#c3536b}.star{font-size:75px;left:8px;top:6px;color:#d8a640}.heart{right:0;bottom:160px;font-size:85px;transform:rotate(16deg)}.text-button{background:none;color:#a94c66;display:inline-flex;align-items:center;gap:7px;font-size:12px;padding:8px 0}.cat-hint{margin-top:12px}.cat-hint figure{max-width:290px;margin:10px 0}.cat-hint img{width:100%;border-radius:10px}.cat-hint figcaption{font-size:12px;color:#77685c}.welcome{display:grid;grid-template-columns:1fr 290px;gap:90px;align-items:center;padding:70px 25px}.welcome h1{position:relative}.title-star{font-size:51px;display:inline-block;color:#d2a249;margin-left:24px;vertical-align:top;transform:rotate(10deg)}.birthday-letter{font-size:15px;line-height:1.85;max-width:570px;margin:23px 0 0}.welcome .handwritten{margin:18px 0 0}.welcome-photo{transform:rotate(5deg);width:275px}.welcome-photo img{aspect-ratio:3/3.8}.surprises{padding:28px 0 45px;border-top:1px solid #e5dbcc}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.section-heading .eyebrow{margin-bottom:12px}.progress-pill{display:flex;gap:8px;align-items:center;font-size:11px;white-space:nowrap;background:#f1e9dd;padding:8px 12px;border-radius:20px;color:#8b7665}.section-intro{font-size:13px;margin-bottom:25px}.gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.peach{background:#f5e8d9}.lavender{background:#ebe6f1}.green{background:#e7ecdf}.pink{background:#f5e2e5}.gift-card{padding:22px 20px 0;border-radius:12px;border:1px solid #fff7;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.gift-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #51452d10}.card-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#8d7e71;gap:8px}.status{display:flex;gap:4px;align-items:center;font-size:9px;background:#ffffff70;border-radius:15px;padding:4px 7px;color:#6c6261}.status.available{color:#836044}.card-icon{margin:28px 0 23px;color:#8e6f59}.lavender .card-icon{color:#8d7a9e}.green .card-icon{color:#71816b}.pink .card-icon{color:#b77a85}.gift-card h3{font-size:24px}.gift-card p{font-size:12px;line-height:1.8;margin:13px 0 24px;flex:1}.card-bottom{border-top:1px solid #59402b15;padding:16px 0;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:500}.timezone-note{text-align:center;font-size:10px;margin:20px 0 0;color:#958778}.memories{padding:44px 0 65px;text-align:center}.memories .eyebrow{justify-content:center;margin-bottom:12px}.memories h2{font-size:32px}.memory-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin:38px 15px 0}.memory-strip .polaroid:nth-child(odd){transform:rotate(-4deg)}.memory-strip .polaroid:nth-child(2n){transform:rotate(4deg)}.memory-strip img{aspect-ratio:1}.memory-strip figcaption{font-size:21px}footer{max-width:1184px;margin:25px auto 0;border-top:1px solid #e5dbcc;padding:24px;display:flex;gap:9px;align-items:center;font-size:11px;color:#a18d7e}footer svg{color:#bc6378}.footer-year{margin-left:auto}.gift-page{max-width:760px;margin:35px auto 60px}.back-link{display:inline-flex;gap:8px;align-items:center;font-size:12px;margin-bottom:25px}.gift-detail{border-radius:18px;text-align:center;padding:45px 60px 48px;border:1px solid #fff}.gift-detail .eyebrow{justify-content:center}.gift-detail h1{font-size:45px}.detail-icon{margin:0 auto 18px;color:#947562}.gift-detail .intro{font-size:15px}.countdown{display:flex;gap:12px;justify-content:center;margin:35px 0}.countdown div{background:#fff7;border:1px solid #fff9;border-radius:9px;padding:15px 10px;min-width:90px}.countdown strong{font-family:"DM Serif Display",serif;font-size:40px;font-weight:400;display:block;line-height:1.2}.countdown span{font-size:10px;color:#8a7e79}.gift-detail small{font-size:11px;color:#8b7b78}.below-note{text-align:center;font-size:25px}.puzzle{margin-top:30px;padding:25px;background:#fffc;border-radius:12px}.puzzle h2{font-size:26px}.puzzle p{font-size:13px}.puzzle label{text-align:left}.puzzle input{text-align:center}.equation{font-family:Georgia,serif;font-size:26px;margin:25px 0;color:#51415d;display:flex;align-items:center;justify-content:center;gap:9px}.equation sub,.equation sup{font-size:14px;margin-left:-7px;position:relative}.equation sub{top:16px}.equation sup{top:-19px;margin-left:-14px;margin-right:5px}.fraction{display:inline-flex;flex-direction:column;font-size:23px;line-height:1.5}.fraction span:first-child{border-bottom:1px solid;padding:0 8px}.stacked{flex-direction:column;gap:8px;font-size:23px}.puzzle-note{font-style:italic}.math-hint{margin-top:15px}.math-hint p{font-size:13px}.unwrapped{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#796f5b;margin:30px 0 20px}.reveal h2{font-size:32px}.reveal p{line-height:1.9;margin:24px 0}.reveal-cat{max-width:280px;width:100%;border:10px solid #fff;border-radius:5px;transform:rotate(-3deg);margin-top:15px}.big-emoji{font-size:70px;color:#a94865;display:block;margin:25px 0}.confetti{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;overflow:hidden}.confetti i{position:absolute;top:-20px;width:9px;height:17px;animation:fall 4s ease-out forwards}@keyframes fall{to{translate:30px 110vh;rotate:650deg;opacity:0}}@media(min-width:1500px){.login-layout{padding-top:100px;padding-bottom:100px}}@media(max-width:960px){header{padding:22px 28px}.login-layout{gap:20px;padding:50px 0}.portrait-main{width:250px;right:10px;top:55px}.portrait-small{width:190px;left:0;bottom:10px}.photo-collage{height:550px}.photo-note{right:-5px;bottom:200px;font-size:24px}.heart{display:none}.welcome{gap:35px;padding:55px 0;grid-template-columns:1fr 240px}.welcome-photo{width:230px}.gift-grid{grid-template-columns:repeat(2,1fr)}.memory-strip{gap:15px}.memory-strip figcaption{font-size:17px}}@media(max-width:600px){header{padding:20px}.header-note{display:none}header .text-button{margin-left:auto}main{padding:0 20px}.login-layout{display:flex;flex-direction:column;padding:40px 0 10px;gap:15px}.login-copy{width:100%}h1{font-size:55px}.eyebrow{font-size:9px}.login-form{max-width:none}.photo-collage{height:440px;width:100%;max-width:360px}.portrait-main{top:15px;right:18px;width:230px}.portrait-small{width:175px;bottom:5px;left:0}.photo-note{bottom:30px;right:0;font-size:23px}.star{left:0;top:0;font-size:55px}.signoff{margin-bottom:5px}.welcome{display:flex;flex-direction:column;gap:35px;padding:40px 0}.welcome h1{font-size:53px}.title-star{font-size:34px;margin-left:10px}.welcome-photo{width:230px}.birthday-letter{font-size:14px}.section-heading{display:block}.section-heading h2{font-size:31px}.progress-pill{width:max-content;margin-top:16px}.gift-grid{gap:12px}.gift-card{padding:16px 13px 0}.card-top{align-items:start;gap:3px}.status{font-size:8px;padding:4px}.gift-card h3{font-size:24px}.gift-card p{font-size:11px}.card-bottom{font-size:10px;gap:4px}.card-icon{margin:25px 0 20px}.memory-strip{grid-template-columns:1fr 1fr;gap:24px 17px;margin:28px 4px}.memories h2{font-size:29px}.memories{padding-top:20px;padding-bottom:15px}.gift-detail{padding:32px 17px}.gift-detail h1{font-size:37px}.gift-page{margin-top:25px}.countdown{gap:7px}.countdown div{min-width:0;flex:1;padding:12px 6px}.countdown strong{font-size:32px}.countdown span{font-size:9px}.puzzle{padding:22px 16px}.equation{font-size:24px}.reveal h2{font-size:29px}.below-note{font-size:22px}footer{font-size:10px;margin-top:10px;padding:22px 20px}.desktop-break{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}.gift-page{max-width:1100px}.gift-scene{display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:48px;align-items:center;padding:15px 10px}.gift-photo{transform:rotate(-4deg);position:relative}.gift-photo:before{content:"";position:absolute;top:-12px;left:calc(50% - 48px);width:96px;height:26px;background:#ddc79a90;transform:rotate(7deg)}.gift-photo img{aspect-ratio:3/4;object-fit:cover}.gift-photo figcaption{font-size:26px;padding:14px 0}.gift-scene .gift-detail{padding:38px 30px}.gift-scene .gift-detail h1{font-size:41px}.gift-scene .countdown div{min-width:0;flex:1}.gift-scene .countdown{gap:9px}@media(max-width:850px){.gift-scene{gap:25px;grid-template-columns:minmax(180px,240px) minmax(0,1fr);padding:12px 0}.gift-scene .gift-detail{padding:30px 18px}.gift-scene .gift-detail h1{font-size:34px}.gift-photo figcaption{font-size:22px}}@media(max-width:650px){.gift-scene{display:flex;flex-direction:column;gap:30px;padding:10px 0}.gift-photo{width:230px;transform:rotate(-3deg)}.gift-photo img{aspect-ratio:4/4.3;object-position:center 35%}.gift-photo figcaption{font-size:22px;padding:10px 0}.gift-scene .gift-detail{width:100%;padding:30px 17px}.gift-scene .gift-detail h1{font-size:37px}}
