/* Countdown first; the photographs and gift UI are mounted only after 20:00. */
.return-card{max-width:370px;margin:29px auto 0;padding:26px 20px 24px;border:1px solid #d2bd913d;border-radius:4px;background:radial-gradient(ellipse at 50% 0,#d2bd9110,transparent 70%),#14201c55}
.return-kicker{font:8px var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);margin:0 0 15px}
.return-card h3{font:400 31px/1.2 var(--serif);letter-spacing:-.7px;margin:0 0 12px}.return-card h3 em{font-weight:400;color:var(--gold)}
.return-date{font:9px var(--mono);color:#a8b6a5;margin:0 0 24px}.evening-countdown{display:flex;justify-content:center;align-items:flex-start;gap:13px}
.evening-countdown span{min-width:53px}.evening-countdown b{display:block;font:400 35px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--gold)}
.evening-countdown small{display:block;font:8px var(--mono);color:#aab8a8;letter-spacing:.7px;margin-top:10px}.evening-countdown>i{font:normal 25px var(--mono);color:#9d9f82}
.return-note{font:10px/1.9 var(--sans);color:#b2bdae;margin:23px 0 0}
.evening-mode{--gold:#e0c496}.evening-mode .glow-one{background:radial-gradient(ellipse,#75564466,transparent 70%)}.evening-mode .glow-two{background:radial-gradient(ellipse,#6c3f4d66,transparent 70%)}
.evening-mode main{padding-top:25px;padding-bottom:35px;align-items:flex-start}.evening-page{width:100%;max-width:1120px;margin:0 auto;color:#ede9de}
.birthday-kicker{font:9px var(--mono);letter-spacing:2px;text-transform:uppercase;color:#d7bd92;margin:0 0 22px}
.birthday-hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;min-height:540px;padding:25px 0 40px}
.birthday-intro h1{font:400 clamp(43px,4.7vw,66px)/1.08 var(--serif);letter-spacing:-1.9px;margin:0 0 28px}.birthday-intro h1 em{color:#e2c3aa;font-weight:400}
.birthday-intro h1:focus-visible{outline:none}.birthday-deck{font:14px/1.9 var(--sans);font-weight:300;color:#bfc9bd;margin:0 0 31px}
.birthday-anchor{display:inline-flex;gap:15px;align-items:center;padding:11px 0;border-bottom:1px solid #d2bd9155;font:10px var(--sans);color:#d5c4a8}.birthday-anchor:hover{color:#fff0d3}.birthday-anchor span{color:#e3c898;font-size:16px}
.birthday-intro>*{animation:birthday-in 1s both}.birthday-intro>*:nth-child(2){animation-delay:.12s}.birthday-intro>*:nth-child(3){animation-delay:.25s}.birthday-intro>*:nth-child(4){animation-delay:.4s}
.memory-stack{position:relative;min-height:470px;isolation:isolate;animation:photo-arrival 1.5s .15s both}
.stack-photo{position:absolute;margin:0;padding:9px 9px 12px;background:#e8e1cf;border:1px solid #f4ecd9;box-shadow:0 14px 50px #0006;color:#4f5147}
.stack-photo img{display:block;width:100%;height:calc(100% - 28px);object-fit:cover;background:#26342e}.stack-photo figcaption{font:italic 11px/1.4 var(--serif);padding:10px 4px 0;text-align:center;white-space:nowrap}
.stack-main{width:238px;height:337px;top:54px;left:50%;transform:translateX(-50%) rotate(-5deg);z-index:2}
.stack-left{width:164px;height:214px;top:20px;left:-8px;transform:rotate(-15deg);opacity:.87;z-index:0}.stack-right{width:180px;height:221px;right:-14px;top:215px;transform:rotate(13deg);z-index:3}
.stack-left img{object-position:50% 30%}.stack-right img{object-position:center center}.stack-spark{position:absolute;color:#dfc28c;font:40px var(--serif);z-index:4}.spark-one{right:7px;top:30px;animation:star-breathe 4s ease-in-out infinite}.spark-two{left:12px;bottom:32px;font-size:24px;animation:star-breathe 5s ease-in-out infinite}
.birthday-letter{max-width:620px;margin:28px auto 95px;padding:49px 15px 0;text-align:center;border-top:1px solid #d1c1a429;scroll-margin-top:28px}
.letter-star{display:block;font:29px var(--serif);color:#dec393;margin-bottom:28px}.birthday-letter h2,.birthday-gifts h2,.memory-gallery h2{font:400 clamp(31px,3.5vw,44px)/1.2 var(--serif);letter-spacing:-1px;margin:0 0 25px}.birthday-letter h2 em,.birthday-gifts h2 em,.memory-gallery h2 em{color:#e0c496;font-weight:400}
.letter-copy{max-width:465px;margin:auto;font:14px/2.05 var(--sans);font-weight:300;color:#c2cbbf}.letter-copy p{margin:0 0 19px}.letter-copy strong{display:inline-block;font:400 25px var(--serif);color:#e5c4af;margin-top:12px}.letter-sign{display:block;font:30px var(--serif);color:#d8b4a4;margin-top:27px}
.birthday-gifts{text-align:center;max-width:880px;margin:0 auto 95px;scroll-margin-top:35px}.birthday-gifts h2{margin-bottom:15px}.gifts-deck{font:12px/1.8 var(--sans);color:#b8c5b7;margin:0 0 34px}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.present{--gift-fill:#b89761;--gift-shade:#745a36;--gift-light:#e9d2a1;--gift-ribbon:#e6cfaa;--gift-glow:#e1b971;position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;width:100%;padding:24px 18px 25px;border:1px solid #d2bd9145;border-radius:5px;color:#e5d4b7;background:radial-gradient(ellipse at 50% 40%,#a5804430,transparent 70%),linear-gradient(140deg,#302b2255,#15211d55);text-align:center;overflow:hidden;isolation:isolate;transition:border-color .3s,background .3s,transform .3s;touch-action:manipulation}
.present-rose{--gift-fill:#b67f86;--gift-shade:#67444f;--gift-light:#e8c1c1;--gift-ribbon:#e7c5ba;--gift-glow:#dca9be;border-color:#d4a7ae44;background:radial-gradient(ellipse at 50% 40%,#ad6d8930,transparent 70%),linear-gradient(140deg,#38262f55,#15211d55)}
.present:hover{transform:translateY(-4px);border-color:#e3c99d99}.present-rose:hover{border-color:#e2bbc599}.present-no{align-self:flex-start;font:9px var(--mono);letter-spacing:2px;opacity:.7}.present-caption{display:block;font:22px/1.3 var(--serif);letter-spacing:-.3px;margin:0 0 14px}.present-action{font:9px var(--sans);letter-spacing:.3px;color:#c8c8b4}.present-action>span{margin-left:8px;color:var(--gift-light)}
.gift-visual{position:relative;display:block;width:100%;height:226px;perspective:650px;flex-shrink:0}.gift-aura{position:absolute;width:185px;height:185px;top:20px;left:50%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,var(--gift-glow),transparent 68%);opacity:.13;filter:blur(13px);transition:opacity .3s}.present:hover .gift-aura{opacity:.23}
.gift-box{position:absolute;display:block;width:150px;height:136px;left:50%;top:68px;transform:translateX(-50%) rotate(-5deg);transform-style:preserve-3d;animation:gift-float 6s ease-in-out infinite}
.present-rose .gift-box{transform:translateX(-50%) rotate(5deg);animation-delay:-2.5s}.gift-base{position:absolute;inset:32px 8px 0;border-radius:2px 2px 6px 6px;background:linear-gradient(110deg,var(--gift-fill),var(--gift-shade));border:1px solid var(--gift-light);box-shadow:inset -11px 0 0 #0001,0 10px 23px #0004}
.gift-ribbon{position:absolute;top:33px;bottom:0;left:calc(50% - 11px);width:22px;background:linear-gradient(90deg,#fff0,var(--gift-ribbon),var(--gift-ribbon),#fff2);opacity:.92;z-index:2}.gift-lid{position:absolute;top:20px;left:0;width:150px;height:27px;border:1px solid var(--gift-light);border-radius:3px;background:linear-gradient(100deg,var(--gift-fill),var(--gift-light) 53%,var(--gift-shade));box-shadow:0 5px 9px #0003;z-index:4;transform-origin:15% 50%}
.gift-lid:after{content:'';position:absolute;inset:0;left:calc(50% - 12px);width:24px;background:var(--gift-ribbon);opacity:.9}.bow{position:absolute;display:block;bottom:22px;width:46px;height:30px;border:7px solid var(--gift-ribbon);border-radius:50% 65% 45% 55%;z-index:2}.bow-left{right:50%;transform:rotate(23deg);transform-origin:100% 100%}.bow-right{left:50%;transform:rotate(-23deg);transform-origin:0 100%}.bow-knot{position:absolute;display:block;width:15px;height:13px;left:calc(50% - 7px);bottom:20px;border-radius:45%;background:var(--gift-light);z-index:3;box-shadow:0 2px 6px #0002}
.gift-inside{position:absolute;inset:33px 12px 20px;background:var(--gift-light);filter:blur(12px);opacity:0;z-index:3}.gift-star{position:absolute;color:var(--gift-light);font:25px var(--serif);z-index:6;animation:star-breathe 4s ease-in-out infinite}.star-a{top:-33px;left:-13px}.star-b{right:-18px;top:50px;font-size:17px;animation-delay:-1.5s}.star-c{left:-3px;bottom:0;font-size:36px;animation-delay:-2s}
.present.is-opening .gift-box{animation:box-shiver .35s ease-in-out 2}.present.is-opening .gift-lid{animation:lid-away 1.05s cubic-bezier(.19,1,.22,1) forwards}.present.is-opening .gift-ribbon{animation:ribbon-away .9s ease forwards}.present.is-opening .gift-inside{animation:gift-light 1.05s ease forwards}.present.is-opening .gift-aura{animation:aura-burst 1.05s ease forwards}.present.is-opening .gift-star{animation:stars-away .9s ease forwards}
.has-opened .present-no:after{content:' / открыто';letter-spacing:.5px;opacity:.8}.gifts-status{font:10px/1.7 var(--sans);color:#b9c7b4;min-height:17px;margin:21px 0 0}.celebrate-again{margin-top:12px;color:#d2bda1}
.memory-gallery{margin:0 auto 50px;max-width:1040px}.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.gallery-heading .birthday-kicker{margin-bottom:15px}.gallery-heading h2{margin-bottom:0;font-size:33px}.gallery-swipe{white-space:nowrap;font:9px var(--mono);color:#b7c3b2;padding-bottom:5px}.gallery-swipe span{font-size:17px;margin-left:9px;color:var(--gold)}
.memory-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 2px 17px;scrollbar-width:thin;scrollbar-color:#b79b7144 transparent}
.memory-tile{position:relative;flex:0 0 185px;aspect-ratio:3/4;scroll-snap-align:start;border:1px solid #d2bd9144;border-radius:3px;padding:0;overflow:hidden;background:#13201b;transition:transform .25s,border-color .25s}.memory-tile:hover{border-color:#e1c79b;transform:translateY(-3px)}.memory-tile img{display:block;width:100%;height:100%;object-fit:cover}.memory-tile>span{position:absolute;left:10px;bottom:10px;font:9px var(--mono);letter-spacing:1px;background:#0a151b99;border:1px solid #d2bd9133;border-radius:3px;color:#f1e6d5;padding:5px 7px}
.birthday-end{text-align:center;padding:35px 0 32px;color:#b9c5b7}.birthday-end>span{font:29px var(--serif);color:#d9b5a2}.birthday-end p{font:italic 23px var(--serif);margin:15px 0 21px;color:#d2cbb8}.birthday-end small{font:8px var(--mono);letter-spacing:2px;color:#98aa9a}
.celebration-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
.gift-dialog,.photo-dialog{color:#ece9de;background:#0f1916;border:1px solid #d2bd9166;border-radius:8px;padding:0;max-height:calc(100svh - 36px);width:min(520px,calc(100vw - 32px));max-width:none;overscroll-behavior:contain;box-shadow:0 35px 150px #000b;overflow-y:auto}
.gift-dialog::backdrop,.photo-dialog::backdrop{background:#050a09ce;backdrop-filter:blur(8px)}.birthday-dialog-open{overflow:hidden}
.dialog-close{position:sticky;display:flex;align-items:center;justify-content:center;top:10px;left:calc(100% - 48px);width:34px;height:34px;z-index:3;margin:10px 10px -44px auto;border:1px solid #d2bd9144;border-radius:50%;background:#14201ee0;color:#e2ceb0;font:23px/1 var(--sans)}.dialog-close:hover{border-color:var(--gold);color:#fff5e2}
.gift-reveal{padding:49px 34px 29px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 0,#75553d2e,transparent 60%)}.gift-reveal .birthday-kicker{font-size:8px;letter-spacing:1.3px;margin-bottom:25px}.gift-reveal h2{font:400 42px/1.12 var(--serif);letter-spacing:-1.3px;margin:0 0 18px}.gift-reveal h2 em{font-weight:400;color:#dfc093}.gift-reveal-lead{font:13px/1.8 var(--sans);color:#d7d9cb;margin:0 0 19px}.gift-reveal-copy{font:12px/1.9 var(--sans);color:#b9c7b6;margin:0 auto 22px;max-width:360px}
.serum-art{position:relative;width:205px;height:146px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;color:#e4c598}.serum-art svg{position:relative;width:150px;height:100px;z-index:1}.serum-orbit{position:absolute;inset:2px 25px;border:1px solid #d2bd9126;border-radius:50%;transform:rotate(-25deg)}.serum-orbit.orbit-two{inset:19px 0;transform:rotate(20deg)}.serum-spark{position:absolute;right:9px;top:13px;font:25px var(--serif);color:#e8d0a4;animation:star-breathe 3s infinite}
.delivery-joke{padding:21px 20px;background:#d2bd9107;border:1px dashed #d2bd9144;border-radius:4px;text-align:left}.delivery-stamp{display:block;font:7px/1.5 var(--mono);letter-spacing:1px;text-transform:uppercase;color:#d9bd8e;margin-bottom:13px}.delivery-joke p{font:17px/1.5 var(--serif);color:#d8d4c1;margin:0 0 14px}.delivery-joke small{display:block;font:11px/1.9 var(--sans);color:#aebfab}
.gift-footnote{font:10px/1.8 var(--sans);color:#b8c2af;margin:21px auto 0;max-width:355px}.gift-back-button{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 17px;margin:25px auto 0;max-width:330px;width:100%;border:1px solid #d2bd9166;border-radius:3px;background:#d2bd9112;color:#e6d1b1;font:11px var(--sans)}.gift-back-button:hover{background:#d2bd9124}
.wellness-reveal{background:radial-gradient(ellipse at 50% 0,#84576233,transparent 65%)}.wellness-reveal h2 em{color:#e3bfb5}.wellness-ticket{position:relative;isolation:isolate;overflow:hidden;max-width:365px;margin:25px auto;padding:22px 25px 20px;border:1px solid #e2c1aa88;border-radius:5px;background:radial-gradient(ellipse at 50% 20%,#9a776b33,transparent 65%),linear-gradient(135deg,#303d32,#18251f 55%,#3d2b2e);box-shadow:0 10px 35px #0004;color:#e5d8bf}
.ticket-top{display:flex;justify-content:space-between;gap:10px;font:7px var(--mono);letter-spacing:.9px;text-transform:uppercase;color:#d3c3a8}.ticket-top>span:last-child{font:15px/1 var(--serif);color:#f4d6ac}.steam-art{position:relative;display:block;width:105px;height:64px;margin:23px auto 16px}.steam-art i{position:absolute;display:block;top:0;width:11px;height:34px;border-left:1px solid #e9d4b588;border-radius:50%;animation:steam-rise 3s ease-in-out infinite;transform:rotate(15deg)}.steam-art i:nth-child(1){left:28px}.steam-art i:nth-child(2){left:48px;animation-delay:-1s}.steam-art i:nth-child(3){left:68px;animation-delay:-2s}.steam-art>span{position:absolute;bottom:1px;left:2px;right:2px;height:16px;border:1px solid #e4c5a077;border-radius:50%;box-shadow:0 6px 0 -5px #e4c5a055}
.ticket-name{font:23px var(--serif);letter-spacing:5px;padding-left:5px;margin:0 0 8px}.ticket-subtitle{font:10px var(--sans);color:#c5c6b2;margin:0 0 24px}.ticket-fields{display:grid;grid-template-columns:1fr 1fr;padding-top:19px;border-top:1px solid #dac7aa33;gap:12px}.ticket-fields small{display:block;font:7px var(--mono);color:#c4bea8;letter-spacing:.4px;margin-bottom:9px}.ticket-fields strong{display:block;font:400 16px var(--serif);color:#f0ddbf}.ticket-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px;border-top:1px dashed #d3c0a233;padding-top:17px;font:8px var(--mono);color:#c2bfaa}.ticket-bottom strong{font-weight:400;color:#edcfab;letter-spacing:.3px}.ticket-shimmer{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(115deg,transparent 20%,#ffecc91a 40%,transparent 60%);transform:translateX(-130%);animation:foil-pass 3.4s .5s ease-in-out both}
.gift-reveal>*{animation:reveal-item .65s both}.gift-reveal>*:nth-child(2){animation-delay:.08s}.gift-reveal>*:nth-child(3){animation-delay:.15s}.gift-reveal>*:nth-child(4){animation-delay:.22s}.gift-reveal>*:nth-child(5){animation-delay:.3s}
.photo-dialog{width:min(900px,calc(100vw - 24px));background:#0a100e;border-color:#d2bd9144}.photo-dialog>img{display:block;width:100%;max-height:calc(100svh - 100px);object-fit:contain;background:#080e10}.photo-controls{display:flex;align-items:center;justify-content:center;gap:30px;padding:10px}.photo-controls button{background:none;border:1px solid #d2bd9144;border-radius:3px;color:#e6d4b7;width:42px;height:33px;font:19px var(--sans)}.photo-controls span{font:10px var(--mono);color:#c7ceb9;min-width:52px;text-align:center}
@keyframes birthday-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-arrival{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes star-breathe{50%{opacity:.35;scale:.85}}@keyframes gift-float{50%{translate:0 -7px}}@keyframes box-shiver{20%,60%{rotate:3deg}40%,80%{rotate:-3deg}}@keyframes lid-away{20%{transform:translateY(-7px) rotate(-4deg)}100%{transform:translate(-20px,-100px) rotate(-24deg);opacity:0}}@keyframes ribbon-away{100%{transform:translate(12px,45px) rotate(15deg);opacity:0}}@keyframes gift-light{30%{opacity:.8}100%{opacity:0;transform:translateY(-80px) scale(2)}}@keyframes aura-burst{30%{opacity:.6;scale:1.25}100%{opacity:0;scale:2.2}}@keyframes stars-away{100%{translate:0 -65px;opacity:0;scale:1.5}}@keyframes reveal-item{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes foil-pass{to{transform:translateX(130%)}}@keyframes steam-rise{50%{translate:0 -7px;opacity:.4}}
@media(max-width:1000px){.birthday-hero{grid-template-columns:1fr;gap:0;text-align:center;min-height:0;padding-top:15px}.birthday-intro h1{font-size:57px}.memory-stack{width:400px;max-width:100%;margin:15px auto 0;min-height:455px}.stack-left{left:8px}.stack-right{right:0}.birthday-letter{margin-top:5px}.birthday-intro .birthday-kicker{margin-top:15px}}
@media(max-width:600px){
  .return-card{padding:24px 17px 22px}.return-card h3{font-size:29px}.evening-countdown{gap:11px}.evening-countdown b{font-size:32px}.return-note{font-size:10px}
  .evening-mode main{padding-top:10px}.evening-mode .topline{min-height:74px}.evening-mode .connection{font-size:7px}
  .birthday-hero{padding:20px 0 0}.birthday-intro .birthday-kicker{font-size:8px;letter-spacing:1.7px;margin-bottom:24px;margin-top:0}.birthday-intro h1{font-size:44px;letter-spacing:-1.4px;margin-bottom:25px}.birthday-deck{font-size:12px;line-height:1.9;margin-bottom:23px}.birthday-anchor{font-size:9px}
  .memory-stack{width:320px;min-height:390px;margin-top:31px}.stack-main{width:191px;height:280px;top:40px}.stack-left{width:128px;height:177px;left:4px;top:15px}.stack-right{width:142px;height:184px;right:-4px;top:177px}.stack-photo{padding:7px 7px 10px}.stack-photo figcaption{font-size:9px;padding-top:8px}.stack-photo img{height:calc(100% - 24px)}.stack-spark{font-size:28px}.spark-one{top:12px;right:4px}.spark-two{font-size:20px;bottom:20px;left:1px}
  .birthday-letter{padding-top:35px;margin-bottom:65px}.birthday-kicker{font-size:8px;letter-spacing:1.5px;margin-bottom:20px}.birthday-letter h2,.birthday-gifts h2{font-size:32px;letter-spacing:-.8px}.letter-copy{font-size:12px;line-height:2}.letter-copy strong{font-size:23px}.letter-star{font-size:25px;margin-bottom:23px}
  .birthday-gifts{margin-bottom:65px}.gifts-deck{font-size:11px;margin-bottom:26px}.gift-grid{grid-template-columns:1fr;gap:18px;max-width:360px;margin:auto}.present{padding:22px 22px 25px}.present-caption{font-size:24px}.gift-visual{height:218px}.present-action{font-size:10px}.gift-box{top:61px}
  .gallery-heading{gap:10px;align-items:center}.gallery-heading h2{font-size:27px;line-height:1.2;max-width:240px}.gallery-heading .birthday-kicker{font-size:7px}.gallery-swipe{font-size:8px}.gallery-swipe span{margin-left:5px}.memory-strip{gap:12px;width:calc(100% + 24px);padding-right:24px}.memory-tile{flex-basis:165px}
  .birthday-end{padding-top:20px}.birthday-end p{font-size:21px}.gift-reveal{padding:49px 24px 24px}.gift-reveal h2{font-size:37px}.gift-reveal-lead{font-size:12px}.gift-reveal-copy{font-size:11px}.delivery-joke{padding:18px 17px}.delivery-joke p{font-size:17px}.delivery-joke small{font-size:10px}.gift-footnote{font-size:10px}.wellness-ticket{padding:20px 19px}.ticket-name{font-size:22px;letter-spacing:4px}.ticket-subtitle{font-size:9px}.ticket-top{font-size:6px}.ticket-bottom{font-size:7px}.serum-art{margin-bottom:18px}
}
@media(max-width:360px){.birthday-intro h1{font-size:39px}.memory-stack{width:280px;min-height:350px}.stack-main{width:173px;height:256px}.stack-left{width:115px;height:160px;left:0}.stack-right{width:125px;height:163px;right:-3px;top:172px}.stack-photo figcaption{font-size:8px}.birthday-letter h2,.birthday-gifts h2{font-size:29px}.gift-reveal{padding-left:18px;padding-right:18px}.gift-reveal h2{font-size:33px}.ticket-bottom{font-size:6px}.gallery-heading h2{font-size:25px}.gallery-swipe{font-size:7px}}
@media(prefers-reduced-motion:reduce){.evening-page *,.evening-page *:before,.evening-page *:after{animation:none!important;transition:none!important}.present:hover,.memory-tile:hover{transform:none}.celebration-canvas{display:none}}
