*{margin:0;padding:0;box-sizing:border-box}:root{--bg-color: #0d1b1e;--accent-red: #c0392b;--accent-gold: #d4af37;--text-white: #f5f5f5;--text-gray: #a0a0a0;--card-bg: rgba(255, 255, 255, .05);--font-festive: "Mountains of Christmas", cursive;--font-body: "Inter", system-ui, -apple-system, sans-serif}body{background-color:var(--bg-color);color:var(--text-white);font-family:var(--font-body);overflow-x:hidden;line-height:1.6}#snow-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.snowflake{position:fixed;top:-10px;color:#fff;-webkit-user-select:none;user-select:none;z-index:1000;pointer-events:none;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fall{to{transform:translateY(100vh)}}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;background:radial-gradient(circle at center,#1a363a,#0d1b1e)}.hero h1{font-family:var(--font-festive);font-size:5rem;color:var(--accent-gold);text-shadow:0 0 20px rgba(212,175,55,.4);margin-bottom:1rem;opacity:0;transform:translateY(30px);animation:fadeInUp 1s forwards .5s}.hero p{font-size:1.2rem;color:var(--text-gray);max-width:600px;opacity:0;animation:fadeInUp 1s forwards 1s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.gallery{padding:4rem 1rem;max-width:1400px;margin:0 auto;columns:3 300px;column-gap:1.5rem}.photo-card{break-inside:avoid;margin-bottom:1.5rem;position:relative;border-radius:16px;overflow:hidden;background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 15px #0000004d;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .3s;cursor:zoom-in;opacity:0;transform:translateY(20px)}.photo-card.visible{opacity:1;transform:translateY(0)}.photo-card:hover{transform:scale(1.02);box-shadow:0 15px 35px #0009;z-index:2}.photo-card img{width:100%;height:auto;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.photo-card:hover img{transform:scale(1.05)}.photo-info{padding:2.5rem 1rem 1rem;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,transparent 100%);position:absolute;bottom:0;left:0;right:0;color:#fff;font-family:var(--font-festive);font-size:1.4rem;text-shadow:2px 2px 4px rgba(0,0,0,.5);opacity:0;transition:opacity .3s;pointer-events:none}.photo-card:hover .photo-info{opacity:1}#lightbox-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0d1b1efa;display:none;justify-content:center;align-items:center;z-index:3000;padding:2rem;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);cursor:zoom-out}.lightbox-content{max-width:90%;max-height:90vh;animation:zoomIn .4s cubic-bezier(.2,.8,.2,1)}.lightbox-content img{width:100%;height:100%;object-fit:contain;border-radius:8px;box-shadow:0 0 50px #000c}.lightbox-caption{position:absolute;bottom:2rem;left:0;right:0;text-align:center;font-family:var(--font-festive);font-size:2.2rem;color:var(--accent-gold);text-shadow:0 4px 10px rgba(0,0,0,1)}.gratitude-note{max-width:800px;margin:6rem auto 2rem;text-align:center;padding:4rem 2rem;background:radial-gradient(circle at center,rgba(192,57,43,.08),transparent);border-radius:24px}.signature-reveal{font-family:var(--font-festive);font-size:3.5rem;color:var(--accent-gold);margin-top:2rem;opacity:.4;transition:opacity .8s,transform .8s,color .5s;cursor:default}.gratitude-note:hover .signature-reveal{opacity:1;transform:scale(1.1);color:var(--text-white);text-shadow:0 0 20px rgba(212,175,55,.8)}.like-section{text-align:center;margin-bottom:4rem}.like-button{background:#ffffff0d;border:2px solid var(--accent-red);color:var(--accent-red);padding:12px 30px;border-radius:50px;font-size:1.2rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 15px #0000004d;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.like-button:hover{transform:scale(1.05) translateY(-3px);background:var(--accent-red);color:var(--text-white);box-shadow:0 8px 25px #c0392b4d}.like-button:active{transform:scale(.95)}.like-button .heart{transition:transform .3s ease}.like-button:hover .heart{transform:scale(1.2)}.like-count{font-variant-numeric:tabular-nums;min-width:20px}.sync-status{font-size:.8rem;color:var(--text-gray);margin-top:10px;height:1.2rem;opacity:0;transition:opacity .3s ease}.sync-status.active{opacity:1}footer{text-align:center;padding:6rem 2rem;color:var(--text-gray);border-top:1px solid rgba(255,255,255,.05)}footer a{color:var(--accent-gold);text-decoration:none}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.hero h1{font-size:3rem}.gallery{columns:1}.signature-reveal{font-size:2.5rem}.lightbox-caption{font-size:1.5rem;bottom:1rem}}
