:root{--gold: #FFD700;--gold-dim: rgba(255, 215, 0, .3);--text-main: #fff;--text-muted: #aaa;--glass-bg: rgba(30, 30, 40, .8);--nav-bg: rgba(10, 10, 20, .8)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow-x:hidden;background:#000;color:var(--text-main)}#star-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background:linear-gradient(to bottom,#020012,#0f0c29,#302b63)}.container{max-width:1200px;margin:0 auto;padding:20px;position:relative;z-index:1}section{padding:60px 0}.section-title{text-align:center;font-size:2.5rem;margin-bottom:40px;position:relative;display:inline-block;left:50%;transform:translate(-50%)}.section-title:after{content:"";display:block;width:60px;height:3px;background:#fff;margin:10px auto 0;box-shadow:0 0 10px #fff}footer{text-align:center;padding:40px;color:#888}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes gradientFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes swing{0%{transform:rotate(0)}20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}@keyframes zoomIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.christmas-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:30px;padding:15px 30px;background:linear-gradient(135deg,#1a2a6c,#b21f1f,#fdbb2d);background-size:200% 200%;border-radius:50px;color:#fff;text-decoration:none;font-size:1.2rem;font-weight:700;box-shadow:0 0 20px var(--gold-dim);border:1px solid rgba(255,255,255,.2);transition:all .5s ease;animation:gradientFlow 5s ease infinite}.christmas-btn:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 0 30px #f009}.christmas-btn .icon{animation:swing 2s ease-in-out infinite}.icon-btn{background:#ffd7001a;border:1px solid var(--gold);color:var(--gold);padding:8px 15px;border-radius:20px;cursor:pointer;font-size:.9rem;transition:all .3s;display:flex;align-items:center;gap:8px}.icon-btn:hover{background:var(--gold);color:#000;box-shadow:0 0 15px var(--gold)}.submit-btn{width:100%;padding:12px;background:linear-gradient(45deg,#f30,#fc0);border:none;color:#fff;font-weight:700;border-radius:5px;cursor:pointer;margin-top:10px}.navbar{position:fixed;top:50%;left:30px;bottom:auto;transform:translateY(-50%);width:auto;height:auto;padding:0;background:transparent;border:none;z-index:1000}.nav-brand{display:none}.nav-links{list-style:none;display:flex;flex-direction:column;gap:25px;padding:25px 15px;background:#ffffff0d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50px;border:1px solid rgba(255,255,255,.1);box-shadow:10px 0 30px #0000004d}.nav-links a{position:relative;display:flex;justify-content:center;align-items:center;width:55px;height:55px;border-radius:50%;text-decoration:none;font-size:0;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #0000004d,inset 0 2px 5px #fff6;transition:all .4s cubic-bezier(.175,.885,.32,1.275);animation:floaty 3s ease-in-out infinite}.nav-links a i{font-size:1.5rem;color:#fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}.nav-links li:nth-child(1) a{animation-delay:0s;background:linear-gradient(135deg,#ff9a9e,#fecfef);box-shadow:0 8px 20px #ff9a9e66,inset 0 2px 5px #fff6}.nav-links li:nth-child(2) a{animation-delay:.2s;background:linear-gradient(135deg,#a18cd1,#fbc2eb);box-shadow:0 8px 20px #a18cd166,inset 0 2px 5px #fff6}.nav-links li:nth-child(3) a{animation-delay:.4s;background:linear-gradient(135deg,#84fab0,#8fd3f4);box-shadow:0 8px 20px #84fab066,inset 0 2px 5px #fff6}.nav-links li:nth-child(4) a{animation-delay:.6s;background:linear-gradient(135deg,#ffecd2,#fcb69f);box-shadow:0 8px 20px #fcb69f66,inset 0 2px 5px #fff6}.nav-links a:hover,.nav-links a.active{transform:scale(1.25) translate(10px);z-index:10;animation-play-state:paused;box-shadow:5px 5px 35px #ffffff80,inset 0 0 20px #fffc}.nav-links a:hover i{transform:scale(1.1)}.fullscreen-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative}h1{font-size:4rem;margin-bottom:20px;font-weight:300;letter-spacing:5px;animation:fadeIn 2s ease-in}.subtitle{font-size:1.5rem;color:#aab;margin-bottom:40px}.timer-box{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:30px 50px;border-radius:20px;border:1px solid rgba(255,255,255,.2);box-shadow:0 0 20px #ffffff1a;animation:float 3s ease-in-out infinite}#timer{font-size:2.5rem;font-weight:700;font-family:Courier New,Courier,monospace;margin-top:10px}.scroll-hint{position:absolute;bottom:30px;display:flex;flex-direction:column;align-items:center;color:#ffffff80;font-size:.8rem;animation:bounce 2s infinite}.timeline-item{background:#ffffff0d;border-radius:10px;padding:20px;margin-bottom:20px;border-left:4px solid #fff;transition:transform .3s}.timeline-item:hover{transform:translate(10px);background:#ffffff26}.date{font-weight:700;color:var(--gold);margin-bottom:5px}.gallery-header{display:flex;justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto 30px;padding:0 20px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px;padding:20px;max-width:1200px;margin:0 auto}.photo-card{position:relative;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;cursor:zoom-in;background:#000;border:1px solid rgba(255,255,255,.1);transition:border .3s}.photo-card img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:opacity .3s}.photo-card.active{cursor:zoom-out;z-index:9999}.photo-card.active img{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:auto;height:auto;max-width:85vw;max-height:80vh;object-fit:contain;z-index:10000;border-radius:10px;box-shadow:0 0 50px #000c;border:2px solid var(--gold);opacity:1;animation:zoomIn .3s cubic-bezier(.175,.885,.32,1.275)}.photo-card.active:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.card-info{display:none}.photo-card.active .card-info{display:block;position:fixed;bottom:5%;left:50%;transform:translate(-50%);width:auto;min-width:300px;max-width:80%;text-align:center;background:#141414e6;border:1px solid var(--gold-dim);border-radius:50px;padding:15px 40px;color:#fff;z-index:10001;box-shadow:0 10px 30px #00000080;animation:slideUp .3s ease-out;pointer-events:none}.card-info .caption{font-size:1.2rem;color:var(--gold);margin-bottom:5px;font-weight:700}.card-info .meta{font-size:.9rem;color:#ccc;display:flex;gap:15px;justify-content:center}.card-info i{color:var(--gold);margin-right:5px}.card-controls{display:none;margin-top:15px;gap:15px;justify-content:center;pointer-events:auto!important;position:relative;z-index:10002}.photo-card.active .card-controls{display:flex;animation:fadeIn .5s ease-in-out}.btn-control{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:20px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:6px;transition:all .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto}.btn-edit:hover{background:var(--gold);color:#000;border-color:var(--gold);box-shadow:0 0 10px var(--gold-dim)}.btn-delete:hover{background:#ff4757;border-color:#ff4757;color:#fff;box-shadow:0 0 10px #ff475780}@media(max-width:600px){.btn-control{padding:6px 12px;font-size:.8rem}}.modal-overlay{display:none;position:fixed;z-index:1100;left:0;top:0;width:100%;height:100%;background-color:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.glass-effect{background:var(--glass-bg);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1);box-shadow:0 0 30px #00000080;color:#fff}.modal-content{margin:10% auto;padding:30px;border-radius:15px;width:90%;max-width:500px;position:relative}.close-modal{position:absolute;right:20px;top:15px;font-size:28px;cursor:pointer;color:var(--text-muted)}.close-modal:hover{color:#fff}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;color:var(--gold);font-size:.9rem}.form-group input[type=text]{width:100%;padding:10px;background:#ffffff1a;border:1px solid #555;color:#fff;border-radius:5px}#media-file{display:none}.file-upload-label{display:block;border:2px dashed rgba(255,255,255,.3);border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:.3s;color:var(--text-muted)}.file-upload-label:hover{border-color:var(--gold);color:var(--gold);background:#ffd7000d}#preview-box img{max-width:100%;max-height:200px;margin-top:10px;border-radius:5px}.input-with-icon{position:relative}.input-with-icon i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#888}.input-with-icon input{padding-left:35px!important}.tags-wrapper{display:flex;flex-wrap:wrap;gap:10px}.tag-check{background:#ffffff1a;padding:5px 10px;border-radius:15px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:5px}.modal-overlay{transition:opacity .5s ease}@media(max-width:600px){.navbar{top:auto;bottom:20px;left:50%;transform:translate(-50%)}.nav-links{flex-direction:row;gap:15px;padding:10px 25px;box-shadow:0 10px 30px #0000004d}.nav-links a:hover,.nav-links a.active{transform:scale(1.25) translateY(-10px)}h1{font-size:2.5rem}#timer{font-size:1.5rem}.timer-box{padding:20px}.gallery-header{align-items:flex-start}#btn-open-upload{margin-top:60px}.photo-card.active .card-info{bottom:15%;width:90%;min-width:auto;padding:15px 20px}.photo-card.active img{max-width:90vw;max-height:65vh}}
