/* Warm, bright editorial finish. Personal media remains untouched. */
:root{--bg:#fcf8f1;--ivory:#482b34;--gold:#93663e;--muted:#78636a;--blush:#f5ded8}
body{background:radial-gradient(ellipse at 85% 10%,#f7e2d4aa,transparent 35%),var(--bg);color:var(--ivory)}
header{background:#fcf8f1f2;border-bottom:1px solid #482b3417;padding-block:15px}
.brand span{color:#a65b6b}nav a{transition:color .2s}nav a:hover{color:#a04b61}
.music{color:#643244;border-color:#64324433;background:#fff9f1}.music[aria-pressed=true]{color:#87374d;background:#f8e8e2}
.button{background:#873d53;color:#fffaf2;border-radius:6px;box-shadow:0 8px 22px #873d531c;padding:16px 28px}.button:hover{background:#6e2c42;box-shadow:0 12px 26px #873d5326}.button:disabled{cursor:default;transform:none;opacity:.85}
.opening{min-height:calc(100svh - var(--countdown-height,70px));background:radial-gradient(ellipse at 20% 20%,#f6d5cc99,transparent 55%),radial-gradient(ellipse at 80% 80%,#ead4b899,transparent 60%),#fcf6ee;padding:60px 24px;color:#482b34}
.opening h1{max-width:1000px}.opening-name{color:#994a60}.ornament{color:#a6784a}.dust{background-image:radial-gradient(circle,#b8816745 1px,transparent 2px),radial-gradient(circle,#b4657240 2px,transparent 3px);opacity:.45}
.birthday-date{background:#fffaf0cc;border-color:#ac805944;color:#8b5336;font-size:19px}.hero-birthday{font-size:21px;box-shadow:none}
.hero{padding-top:65px;padding-bottom:100px;gap:8%;min-height:760px}.hero-copy h2{font-size:clamp(48px,6vw,84px)}.hero-copy .muted{font-size:15px;max-width:420px;line-height:1.85}.hero-frame{background:#fffdf7;box-shadow:0 22px 55px #7a3c4320;border:1px solid #ad7a4420;transform:rotate(2deg)}.frame-note{color:#fff4e8;text-shadow:0 2px 12px #31192399}.hero-number{left:7%}
.section{padding-block:95px}.section-title{margin-bottom:50px}.section-title>p:last-child{font-size:15px;line-height:1.8}
#story{background:linear-gradient(180deg,#f8efe7,#fcf8f1);border-top:1px solid #482b3410}
.timeline{gap:35px 100px}.timeline:before{background:#b9796740}.milestone{background:#fffdf8;border:1px solid #a9666e20;box-shadow:0 6px 24px #71424d06;border-radius:10px;padding:25px 30px}.milestone:nth-child(even){margin-top:70px}.milestone h3{font-size:29px}.milestone p{line-height:1.8;margin-top:14px}.milestone:before{right:-61px;top:28px}.milestone:nth-child(even):before{left:-61px}.milestone img{max-width:none;border-radius:5px}.milestone .date{color:#9c5b64}
.memories{background:radial-gradient(ellipse at 20% 30%,#fff0e9,transparent 65%),#f3dcd7}.polaroid{box-shadow:0 8px 22px #79495115;border:1px solid #73432d0c}.polaroid .caption{padding-top:13px}.gallery{row-gap:40px}
#films{background:#fcf8f1}.screen{border:1px solid #a7774b35;border-radius:10px;box-shadow:0 18px 40px #6c344c15}.clips button{color:#482b34;border-color:#482b3420;font-weight:400;border-radius:4px}.clips button strong{font-weight:400}.clips button[aria-pressed=true]{color:#873d53;background:#f5e5df}.clips button span{color:#82636c}.video-fallback{background:radial-gradient(ellipse,#815361,#301d29);color:#fff4e5}.video-fallback span{color:#e3c294}.video-fallback small{color:#e3cdd1}
.letter-section{background:linear-gradient(135deg,#fff8e9,#f7e9d9)}.letter-wrap{background:#fffdf7;border:1px solid #b6926330;border-radius:8px;padding:55px 65px;box-shadow:0 18px 60px #7c574010;max-width:800px}.letter-wrap h2{font-size:clamp(42px,5vw,66px)}.letter-section article{line-height:1.9}.letter-section .dark{background:#873d53;color:#fffaf2}.voice{border-color:#9d715b30}
.counter-section{background:#fbf3e9}.counter{gap:55px}.counter strong{color:#a0614a}.wish-section{background:radial-gradient(ellipse at 50% 55%,#f2d3c0bb,transparent 70%),#fcf8f1}.cake{filter:drop-shadow(0 16px 12px #aa6b5620)}.wish-message{color:#8b3c54}.finale{background:#f9eee5}.finale figure{box-shadow:0 18px 45px #6c344c18}.finale p{line-height:1.85}footer{background:#f9eee5;border-color:#482b3417}
dialog{background:#fcf8f1;color:#482b34;border-color:#ad82594d;border-radius:8px}.lightbox-nav button,.close{background:#fcf8f1;color:#643244;border-color:#64324444;border-radius:4px}.lightbox-content p{line-height:1.5}
.top-countdown{background:#f4e7ddf7;border-bottom-color:#ae7b5b30;padding-block:8px;box-shadow:0 2px 10px #7c4b3805}.top-countdown .countdown-label{color:#8a5662;letter-spacing:.12em}.top-countdown .countdown-digits{font-size:28px;gap:22px;color:#7f3a50}.top-countdown .countdown-unit{min-width:45px}.top-countdown .countdown-target{color:#785744}.top-countdown .countdown-clock{color:#806e69}.top-countdown .countdown-status{color:#873d53}
.js .reveal{transition:opacity .8s cubic-bezier(.2,.65,.3,1),transform .8s cubic-bezier(.2,.65,.3,1)}
@media(max-width:900px){.hero{min-height:auto}.milestone{padding:22px}.timeline{gap:35px 65px}.milestone:before{right:-44px}.milestone:nth-child(even):before{left:-43px}.letter-wrap{padding:45px}}
@media(max-width:600px){header{padding-block:10px;gap:5px}.brand{font-size:21px}nav{font-size:11px}.music{padding:3px 12px;min-height:36px}nav a{min-height:35px;display:flex;align-items:center}.section{padding-block:65px}.hero{gap:35px}.hero-copy h2{font-size:55px}.hero-frame{height:420px}.hero-copy .muted{font-size:14px}.birthday-date{font-size:17px;padding:9px 19px}.opening{padding-block:40px}.opening h1{font-size:46px}.opening>.button{margin-top:28px}.ornament{margin-bottom:20px}.milestone,.milestone:nth-child(even){padding:22px;margin-bottom:25px}.milestone:before,.milestone:nth-child(even):before{left:-34px;right:auto}.milestone h3{font-size:27px}.section-title{margin-bottom:40px}.letter-wrap{padding:32px 23px}.letter-section{padding-inline:5%}.counter{gap:24px}.top-countdown{grid-template-columns:1fr auto;gap:3px 10px;padding:7px 4%}.top-countdown .countdown-label{font-size:8px;letter-spacing:.04em}.top-countdown .countdown-digits{font-size:22px;gap:8px;grid-row:1 / span 2}.top-countdown .countdown-unit{min-width:29px}.top-countdown .countdown-target{font-size:9px;grid-row:2}.top-countdown .countdown-clock{display:none}.top-countdown .countdown-status{grid-row:3}.gallery{gap:30px 17px}.polaroid:hover{transform:rotate(0)}.finale figure{height:380px}}
@media(prefers-reduced-motion:reduce){.js .reveal{transition:none}}
