:root{--bg-color: #E9F1FA;--bg-gradient: linear-gradient(135deg, #E9F1FA 0%, #B8D4F1 100%);--text-primary: #1a202c;--text-secondary: #4a5568;--accent-gold: #FFA726;--accent-purple: #00ABE4;--card-bg: rgba(255, 255, 255, .95);--card-border: rgba(0, 171, 228, .3);--font-main: "Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background:var(--bg-gradient);color:var(--text-primary);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:700;line-height:1.2}a{text-decoration:none;color:inherit}button{font-family:var(--font-main);cursor:pointer}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#00abe41a}::-webkit-scrollbar-thumb{background:var(--accent-purple);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0088b8}.timeline-container{max-width:800px;margin:0 auto;padding:2rem 1rem}.timeline-item{display:flex;flex-direction:column;align-items:center;position:relative}.connector{width:2px;height:40px;background:linear-gradient(to bottom,var(--accent-purple),transparent);margin:10px 0}.date-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem;width:100%;text-align:left;display:flex;align-items:center;gap:1.5rem;transition:transform .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.date-card:hover{transform:translateY(-5px);background:#00abe41a;border-color:var(--accent-purple);box-shadow:0 8px 20px #00abe433}.month-badge{background:var(--accent-purple);color:#fff;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem;min-width:100px;text-align:center}.card-content{flex:1}.card-icon{font-size:1.5rem;margin-bottom:.5rem}.date-card h3{margin-bottom:.5rem;color:var(--accent-purple)}.date-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.4}@media(max-width:600px){.date-card{flex-direction:column;text-align:center}.month-badge{margin-bottom:1rem}}.countdown-container{background:#00abe41a;padding:2rem;border-radius:16px;border:2px solid var(--accent-purple);margin-top:1.5rem;animation:pulse 3s infinite}.countdown-header h3{color:var(--accent-purple);margin-bottom:1.5rem;font-size:1.2rem;text-transform:uppercase;letter-spacing:2px}.countdown-timer{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem}.timer-segment{display:flex;flex-direction:column;align-items:center;background:#00abe426;padding:1rem;border-radius:8px;min-width:70px;border:1px solid var(--card-border)}.time-value{font-size:2rem;font-weight:700;color:var(--accent-purple)}.time-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;margin-top:.5rem}.countdown-message{font-style:italic;color:var(--text-secondary)}@keyframes pulse{0%{box-shadow:0 0 #00abe466}70%{box-shadow:0 0 0 10px #00abe400}to{box-shadow:0 0 #00abe400}}@media(max-width:480px){.countdown-timer{gap:.5rem}.timer-segment{min-width:50px;padding:.5rem}.time-value{font-size:1.5rem}}.surprise-card{background:linear-gradient(135deg,#00abe41a,#b8d4f133);border:2px solid var(--accent-purple);border-radius:16px;padding:2rem;text-align:center;margin:2rem 0;transition:all .5s ease;box-shadow:0 8px 30px #00abe433}.surprise-card.revealed{background:linear-gradient(135deg,#00abe426,#b8d4f14d);transform:scale(1.02);box-shadow:0 12px 40px #00abe44d}.icon{font-size:3rem;margin-bottom:1rem}.reveal-btn{background:linear-gradient(135deg,#00abe4,#0088b8);border:none;padding:1rem 2rem;border-radius:30px;color:#fff;font-weight:700;font-size:1.1rem;margin-top:1.5rem;transition:transform .2s,box-shadow .2s}.reveal-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00abe466}.revealed-view{animation:fadeIn .8s ease-out}.location,.time{font-size:1.2rem;margin:.5rem 0;color:var(--text-primary)}.ticket-section{background:#00abe41a;color:var(--text-primary);padding:1.5rem;border-radius:12px;margin:2rem auto;max-width:300px;border:2px solid var(--accent-purple)}.qr-placeholder img{margin:1rem 0;border-radius:8px}.note{font-size:.8rem;color:var(--text-secondary)}.extra-info{margin-top:1.5rem;font-style:italic;color:var(--accent-purple);font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gallery-overlay{position:fixed;inset:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .3s ease-out}.gallery-modal{background:#fff;width:90%;max-width:800px;max-height:90vh;border-radius:16px;padding:2rem;position:relative;border:2px solid var(--accent-purple);display:flex;flex-direction:column;box-shadow:0 20px 60px #00abe44d}.close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-primary);font-size:2rem;cursor:pointer;line-height:1}.gallery-modal h2{text-align:center;margin-bottom:1.5rem;color:var(--accent-purple)}.upload-section{display:flex;justify-content:center;margin-bottom:2rem}.upload-btn{background:linear-gradient(135deg,#00abe4,#0088b8);color:#fff;padding:.8rem 1.5rem;border-radius:25px;cursor:pointer;font-weight:600;transition:transform .2s;display:inline-block}.upload-btn:hover{transform:scale(1.05)}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;overflow-y:auto;padding-right:.5rem;flex:1}.photo-item{aspect-ratio:1;border-radius:8px;overflow:hidden;border:2px solid var(--card-border);cursor:pointer}.photo-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-item:hover img{transform:scale(1.1)}.no-photos{grid-column:1 / -1;text-align:center;color:var(--text-secondary);font-style:italic;margin-top:2rem}@media(max-width:600px){.photos-grid{grid-template-columns:repeat(2,1fr)}}.fullscreen-viewer{position:fixed;inset:0;background:#000000f2;display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-out}.fullscreen-viewer img{max-width:90%;max-height:90%;object-fit:contain;border-radius:8px}.close-fullscreen{position:absolute;top:2rem;right:2rem;background:#fff3;border:none;color:#fff;font-size:3rem;cursor:pointer;line-height:1;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.close-fullscreen:hover{background:#ffffff4d}.app{min-height:100vh}.hero{height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;background:radial-gradient(circle at center,rgba(0,171,228,.15),transparent 70%)}.hero h1{font-size:4rem;margin-bottom:1rem;background:linear-gradient(135deg,#00abe4,#0088b8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleFade 1.5s ease-out}.subtitle{font-size:1.5rem;color:var(--text-secondary);max-width:600px;animation:subtitleFade 1.5s ease-out .5s backwards}.scroll-indicator{position:absolute;bottom:2rem;animation:bounce 2s infinite;font-size:2rem;opacity:.7}.footer{text-align:center;padding:3rem;color:var(--text-secondary);font-size:.9rem;border-top:1px solid var(--card-border);margin-top:2rem}@keyframes titleFade{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes subtitleFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media(max-width:600px){.hero h1{font-size:2.5rem}.subtitle{font-size:1.1rem}}
