@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Montserrat:wght@300;400;500;600&display=swap";:root{--color-primary:#c5a880;--color-primary-light:#dfcdae;--color-bg-start:#faf9f6;--color-bg-end:#f4ebe1;--color-text-main:#2c302e;--color-text-muted:#5e6562;--color-glass-bg:#ffffffb3;--color-glass-border:#ffffff80;--font-serif:"Cormorant Garamond", serif;--font-sans:"Montserrat", sans-serif;--shadow-soft:0 8px 32px 0 #c5a88026;--shadow-strong:0 12px 40px 0 #2c302e1a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:linear-gradient(135deg, var(--color-bg-start) 0%, var(--color-bg-end) 100%);color:var(--color-text-main);-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600}.glass-panel{background:var(--color-glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-glass-border);box-shadow:var(--shadow-soft);border-radius:24px}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:30px;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:1rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 15px #c5a88066}.btn-primary:hover{background:#b5956a;transform:translateY(-2px);box-shadow:0 6px 20px #c5a88099}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--color-text-main);border:1px solid var(--color-primary);background:0 0}.btn-secondary:hover{background:#c5a8801a}.container{max-width:1200px;margin:0 auto;padding:0 20px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.animate-fade-in{animation:.8s ease-out forwards fadeIn}.animate-float{animation:6s ease-in-out infinite float}.app-container{flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.main-content{flex:1;padding-bottom:80px}.hero-section{text-align:center;padding:60px 20px 40px;position:relative}.hero-names{color:var(--color-text-main);margin-bottom:10px;font-size:clamp(3rem,8vw,5rem);line-height:1.1}.hero-ampersand{color:var(--color-primary);font-size:1.2em;font-style:italic}.hero-date{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:4px;color:var(--color-text-muted);margin-bottom:24px;font-size:.9rem}.hero-message{max-width:600px;color:var(--color-text-muted);margin:0 auto;font-size:1.1rem;line-height:1.6}.upload-section{text-align:center;padding:40px 20px}.upload-card{flex-direction:column;align-items:center;gap:20px;max-width:500px;margin:0 auto;padding:40px 30px;display:flex}.upload-header{text-align:center}.upload-title{color:var(--color-text-main);margin-bottom:8px;font-size:1.8rem}.upload-subtitle{color:var(--color-text-muted);line-height:1.5}.upload-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:12px;width:100%;padding:16px 24px;font-size:1.1rem;font-weight:500;transition:all .3s;display:flex}.upload-btn:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #c5a8804d}.upload-btn.uploading{opacity:.7;cursor:not-allowed;transform:none}.upload-icon-wrapper{width:80px;height:80px;color:var(--color-primary);background:#c5a8801a;border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.hidden-input{display:none}.gallery-section{padding:40px 20px}.gallery-title{text-align:center;color:var(--color-text-main);margin-bottom:30px;font-size:2.5rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr));gap:16px;max-width:1000px;margin:0 auto;display:grid}@media (width>=768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px}}.gallery-item{aspect-ratio:3/4;box-shadow:var(--shadow-soft);cursor:pointer;border-radius:16px;transition:transform .3s;position:relative;overflow:hidden}.gallery-item:hover{z-index:1;transform:scale(1.02)}.gallery-image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.gallery-item:hover .gallery-image{transform:scale(1.05)}.loading-spinner{border:3px solid #c5a8804d;border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;margin:0 auto;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:1000;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--color-text-main);color:#fff;box-shadow:var(--shadow-strong);border-radius:30px;padding:12px 24px;font-size:.9rem;animation:.3s ease-out forwards slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.guestbook-section{text-align:center;padding:20px}.guestbook-card{max-width:500px;margin:0 auto;padding:40px 30px}.guestbook-form{flex-direction:column;gap:16px;display:flex}.form-group{width:100%}.form-input{border:1px solid var(--color-glass-border);width:100%;font-family:var(--font-sans);color:var(--color-text-main);background:#fffc;border-radius:12px;outline:none;padding:14px 16px;font-size:1rem;transition:all .3s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #c5a88033}.form-textarea{resize:vertical;min-height:100px}.error-msg{color:#ef4444;text-align:left;font-size:.9rem}.success-state{padding:20px 0}.btn-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:1s ease-in-out infinite spin}
