*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background-color:#2c3e50;width:100%;overflow-x:hidden}body{color:#3d3d3d;background-color:#faf9f7;width:100%;font-family:Cormorant Garamond,Georgia,serif;line-height:1.8;position:relative;overflow-x:hidden}#root{background-color:#faf9f7;width:100%;max-width:100vw;position:relative;overflow-x:hidden}.app-shell{z-index:0;will-change:opacity;background-color:#faf9f7;position:relative}.page-transition{z-index:0;will-change:opacity, transform;position:relative}@media (prefers-reduced-motion:reduce){.app-shell,.page-transition{will-change:auto}}section{max-width:100vw;overflow-x:hidden}h1,h2,h3{letter-spacing:.1em;font-family:Cormorant Garamond,Georgia,serif;font-weight:300}h1{color:#2c3e50;font-size:4rem}.hero-names{letter-spacing:.02em;color:#2c3e50;font-family:Pinyon Script,cursive;font-size:7rem;font-weight:400;line-height:.9}h2{color:#5d6d7e;text-transform:uppercase;letter-spacing:.2em;margin-bottom:2rem;font-size:2.5rem}p{max-width:700px;margin:0 auto 1.5rem;font-size:1.1rem}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5000;isolation:isolate;background:#faf9f7f2;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:fixed;top:0;left:0;right:0;transform:translateZ(0)}.nav-logo{color:#2c3e50;letter-spacing:.15em;border-bottom:1px solid #d4af37;align-items:center;gap:.5rem;padding-bottom:.25rem;font-size:1.5rem;font-weight:300;text-decoration:none;display:inline-flex}.nav-logo-home{color:#b9a37a}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{color:#5d6d7e;letter-spacing:.1em;text-transform:uppercase;font-size:.9rem;text-decoration:none;transition:color .3s}.nav-links a:hover{color:#b8860b}.language-selector{position:relative}.language-selector select{appearance:none;color:#5d6d7e;cursor:pointer;letter-spacing:.1em;background:0 0;border:1px solid #d4af37;border-radius:2px;padding:.5rem 2rem .5rem 1rem;font-family:inherit;font-size:.85rem}.language-selector:after{content:"▼";color:#d4af37;pointer-events:none;font-size:.6rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.hero{text-align:center;background:linear-gradient(135deg,#faf9f7 0%,#f0ebe3 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:6rem 2rem 4rem;display:flex;position:relative}.hero:before{content:"";opacity:.5;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d4af37' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");position:absolute;inset:0}.hero-content{z-index:1;word-wrap:break-word;max-width:100%;position:relative}.hero-subtitle{color:#b8860b;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem;font-size:1.2rem}.hero h1{margin-bottom:1.5rem}.hero-ampersand{color:#d4af37;margin:-.5rem 0;font-size:3rem;line-height:1;display:block}.hero-date{color:#5d6d7e;letter-spacing:.2em;border-top:1px solid #d4af37;margin-top:2rem;padding-top:2rem;font-size:1.5rem;display:inline-block}.countdown{justify-content:center;gap:1.5rem;margin-top:2rem;display:flex}.countdown-item{flex-direction:column;align-items:center;min-width:60px;display:flex}.countdown-value{color:#2c3e50;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:300;line-height:1}.countdown-label{color:#b8860b;text-transform:uppercase;letter-spacing:.15em;margin-top:.3rem;font-size:.7rem}.scroll-indicator{animation:2s infinite bounce;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-indicator span{border-bottom:2px solid #d4af37;border-right:2px solid #d4af37;width:20px;height:20px;display:block;transform:rotate(45deg)}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%)translateY(0)}40%{transform:translate(-50%)translateY(-10px)}60%{transform:translate(-50%)translateY(-5px)}}section{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100vw;min-height:100vh;padding:8rem 2rem;display:flex;overflow-x:hidden}section:nth-child(2n){background-color:#fff}section:nth-child(odd){background-color:#faf9f7}.section-divider{background:#d4af37;width:60px;height:1px;margin:2rem auto}.story-photo{max-width:600px;margin:2rem auto}.story-photo.couple-photo .photo-placeholder{border-radius:12px;height:350px}.couple-photos-grid{justify-content:center;align-items:center;gap:1.5rem;display:flex}.couple-photos-grid img{border-radius:12px;width:auto;max-height:400px;box-shadow:0 4px 20px #00000026}.story-photo.proposal-photo{text-align:center;margin-top:3rem}.story-photo.proposal-photo img{border-radius:12px;width:100%;max-width:500px;box-shadow:0 4px 20px #00000026}.story-photo.proposal-photo .photo-placeholder{border-radius:12px;height:300px}.photo-placeholder{color:#a09890;background:linear-gradient(135deg,#e8e4df 0%,#d4d0c9 100%);border:2px dashed #d4af37;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:3rem;display:flex}.photo-placeholder span{color:#888;font-size:.9rem;font-style:italic}.us-content{grid-template-columns:1fr 1fr;gap:4rem;max-width:1000px;margin-top:3rem;display:grid}.person{padding:2rem}.person-image{color:#a09890;background:linear-gradient(135deg,#e8e4df 0%,#d4d0c9 100%);border:3px solid #d4af37;border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;margin:0 auto 1.5rem;font-size:4rem;display:flex}.person-image.photo-placeholder{border-style:dashed;flex-direction:column;gap:.3rem}.person-image.photo-placeholder span{font-size:.7rem}.person h3{color:#2c3e50;margin-bottom:1rem;font-size:1.8rem}.person p{color:#666;font-size:1rem}.story-closing{color:#5d6d7e;text-align:center;border-top:1px solid #e8e4df;max-width:700px;margin-top:3rem;padding:2rem;font-size:1.1rem;font-style:italic}.wedding-details{grid-template-columns:repeat(2,1fr);gap:3rem;max-width:800px;margin-top:3rem;display:grid}.detail-card{background:#faf9f7;border:1px solid #e8e4df;padding:0;transition:transform .3s,box-shadow .3s;overflow:hidden}.detail-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000001a}.detail-card-image{background:#e8e4df;width:100%;height:180px;overflow:hidden}.detail-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.detail-card:hover .detail-card-image img{transform:scale(1.05)}.detail-card h3,.detail-card p{padding-left:1.5rem;padding-right:1.5rem}.detail-card h3{padding-top:1.5rem}.detail-card .detail-time{padding-top:0}.detail-card .detail-location{padding-bottom:1.5rem}.detail-icon{margin-bottom:1rem;font-size:2.5rem}.detail-card h3{color:#2c3e50;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:1.3rem}.detail-card p{color:#666;margin:0;font-size:1rem}.detail-card .detail-subtitle{color:#8b7355;margin-bottom:1rem;font-size:.9rem;font-style:italic}.detail-card .detail-location{margin-top:1rem}.detail-card .detail-location a{color:#5d6d7e;text-decoration:none;transition:color .3s}.detail-card .detail-location a:hover{color:#c9a86c;text-decoration:underline}.detail-card .detail-time{color:#2c3e50;margin-top:0;margin-bottom:.25rem;font-size:1.5rem;font-weight:700}a.detail-card-link{cursor:pointer;text-decoration:none;display:block}a.detail-card-link:hover{text-decoration:none}.practical-info{text-align:center;max-width:1000px;margin-top:3rem}.practical-info h3{color:#2c3e50;text-align:center;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem;font-size:1rem}.practical-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.practical-card{text-align:center;background:#faf9f7;border:1px solid #e8e4df;padding:1.5rem}.practical-icon{margin-bottom:.5rem;font-size:1.5rem;display:block}.practical-card h4{color:#5d6d7e;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.85rem}.practical-card p{color:#666;margin:0;font-size:.8rem;line-height:1.5}.practical-card-extra{border-top:1px solid #e8e4df;padding-top:.5rem;margin-top:.5rem!important}.parking-links{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:.5rem;display:flex}.parking-links a{color:#5d6d7e;font-size:.85rem;text-decoration:none;transition:color .3s}.parking-links a:hover{color:#d4af37}.wedding-map{border-radius:12px;width:100%;max-width:900px;margin-top:3rem;overflow:hidden;box-shadow:0 4px 16px #0000001a}.wedding-map img{width:100%;height:auto;display:block}.rsvp-form{width:100%;max-width:500px;margin-top:3rem}.form-group{text-align:left;margin-bottom:1.5rem}.form-group label{color:#5d6d7e;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem;font-size:.9rem;display:block}.form-group input,.form-group select,.form-group textarea{color:#3d3d3d;background:#fff;border:1px solid #d4d0c9;width:100%;padding:1rem;font-family:inherit;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#d4af37;outline:none}.form-group textarea{resize:none;min-height:80px}.btn-submit{color:#fff;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:#d4af37;border:none;padding:1rem 3rem;font-family:inherit;font-size:1rem;transition:background .3s,transform .3s}.btn-submit:hover:not(:disabled){background:#b8960b;transform:translateY(-2px)}.btn-submit:disabled{cursor:not-allowed;background:#ccc;transform:none}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,.form-group.has-error .attendance-options{border-color:#e74c3c}.attendance-options{gap:1rem;display:flex}.attendance-option{cursor:pointer;text-align:center;background:#fff;border:2px solid #d4d0c9;flex-direction:column;flex:1;align-items:center;padding:1.5rem 1rem;transition:all .3s;display:flex}.attendance-option:hover{background:#d4af370d;border-color:#d4af37}.attendance-option.selected{background:#d4af371a;border-color:#d4af37}.attendance-option input[type=radio]{opacity:0;pointer-events:none;position:absolute}.attendance-icon{margin-bottom:.5rem;font-size:2rem}.attendance-text{color:#5d6d7e;letter-spacing:.05em;text-transform:none;font-size:.9rem}.attendance-option.selected .attendance-text{color:#2c3e50;font-weight:500}.error-message{color:#e74c3c;text-transform:none;letter-spacing:normal;margin-top:.5rem;font-size:.85rem;display:block}.form-error{color:#c0392b;text-align:center;background:#fdecea;border:1px solid #e74c3c;margin-bottom:1.5rem;padding:1rem;font-size:.95rem}.rsvp-success{text-align:center;max-width:500px;padding:2rem 1rem}.rsvp-success .success-icon{color:#fff;background:#d4af37;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1rem;font-size:2rem;display:flex}.rsvp-success h3{color:#2c3e50;margin-bottom:.75rem;font-size:1.75rem}.rsvp-success p{color:#666;margin-bottom:1rem}.rsvp-success .success-note{margin-bottom:1.5rem}.media-upload-status{border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem 1.5rem;font-size:.95rem;display:flex}.media-upload-status--uploading{color:#1565c0;background:#e3f2fd}.media-upload-status--success{color:#2e7d32;background:#e8f5e9}.media-upload-status--partial{color:#e65100;background:#fff3e0}.media-upload-status--error{color:#c62828;background:#ffebee}.upload-spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-message{font-weight:500}.extras-section{background:#faf9f7;border:1px solid #e8e4df;margin:2rem 0}.extras-toggle{color:#5d6d7e;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:1.25rem;font-family:inherit;font-size:1rem;transition:color .3s,background .3s;display:flex}.extras-toggle:hover{color:#d4af37;background:#d4af370d}.extras-icon{color:#d4af37;font-size:1.5rem;transition:transform .3s}.extras-icon.expanded{transform:rotate(180deg)}.extras-content{max-height:0;padding:0 1.25rem;transition:max-height .4s,padding .4s;overflow:hidden}.extras-content.expanded{max-height:1000px;padding:0 1.25rem 1.5rem}.extras-description{color:#666;text-align:center;margin-bottom:1.5rem;font-size:.95rem;font-style:italic}.media-upload-hint{color:#888;margin-bottom:1rem;font-size:.85rem;font-style:italic}.media-upload-btn{color:#5d6d7e;cursor:pointer;background:#faf9f7;border:2px dashed #d4d0c9;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1rem;font-family:inherit;font-size:.95rem;transition:all .3s;display:flex}.media-upload-btn:hover:not(:disabled){color:#d4af37;background:#d4af370d;border-color:#d4af37}.media-upload-btn:disabled{opacity:.6;cursor:not-allowed}.media-upload-error{color:#c62828;background-color:#ffebee;border-left:3px solid #c62828;border-radius:4px;margin-top:.5rem;padding:.5rem .75rem;font-size:.85rem}.ai-advice-btn{color:#6b5b7a;cursor:pointer;background:linear-gradient(135deg,#f5f0fa 0%,#ebe4f3 100%);border:1px solid #b8a9c9;border-radius:20px;justify-content:center;align-items:center;gap:.5rem;margin:.5rem auto 0;padding:.6rem 1.2rem;font-family:inherit;font-size:.85rem;transition:all .3s;display:inline-flex}.form-group:has(.ai-advice-btn){flex-direction:column;align-items:center;display:flex}:is(.form-group:has(.ai-advice-btn) label,.form-group:has(.ai-advice-btn) textarea){width:100%}.form-group:has(.ai-advice-btn) textarea{min-height:150px}.ai-advice-error{color:#8b5a2b;text-align:center;background:#fef5e7;border-radius:8px;margin-top:.5rem;padding:.5rem .75rem;font-size:.85rem}.ai-advice-btn:hover:not(:disabled){background:linear-gradient(135deg,#ebe4f3 0%,#ddd4eb 100%);border-color:#9d8bb3;transform:translateY(-1px);box-shadow:0 2px 8px #6b5b7a26}.ai-advice-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ai-modal-overlay{z-index:9000;overscroll-behavior:contain;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.ai-modal{background:#fff;border-radius:12px;width:100%;max-width:450px;padding:2rem;animation:.2s ease-out modalSlideIn;position:relative;box-shadow:0 10px 40px #0003}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.ai-modal-close{color:#999;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1;transition:color .2s;position:absolute;top:.75rem;right:.75rem}.ai-modal-close:hover{color:#333}.ai-modal h3{color:#333;margin:0 0 .5rem;font-size:1.3rem}.ai-modal-description{color:#666;margin:0 0 1rem;font-size:.9rem;line-height:1.5}.ai-modal-input{resize:none;border:1px solid #d4d0c9;border-radius:8px;width:100%;margin-bottom:1rem;padding:.75rem;font-family:inherit;font-size:.95rem}.ai-modal-input:focus{border-color:#b8a9c9;outline:none;box-shadow:0 0 0 3px #b8a9c933}.ai-modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.ai-modal-cancel{color:#666;cursor:pointer;background:#fff;border:1px solid #d4d0c9;border-radius:6px;padding:.6rem 1.2rem;font-family:inherit;font-size:.9rem;transition:all .2s}.ai-modal-cancel:hover{background:#f5f5f5;border-color:#999}.ai-modal-generate{color:#fff;cursor:pointer;background:linear-gradient(135deg,#b8a9c9 0%,#9d8bb3 100%);border:none;border-radius:6px;padding:.6rem 1.2rem;font-family:inherit;font-size:.9rem;transition:all .2s}.ai-modal-generate:hover:not(:disabled){background:linear-gradient(135deg,#a899b9 0%,#8d7ba3 100%);transform:translateY(-1px);box-shadow:0 2px 8px #6b5b7a4d}.ai-modal-generate:disabled{opacity:.6;cursor:not-allowed}.ai-modal-result{background:linear-gradient(135deg,#f8f6fa 0%,#f0eef4 100%);border:1px solid #e0dce6;border-radius:8px;margin-bottom:1rem;padding:1rem}.ai-modal-result label{color:#8b7a9c;margin-bottom:.5rem;font-size:.85rem;font-weight:500;display:block}.ai-modal-result-text{color:#3d3d3d;white-space:pre-wrap;font-size:.95rem;line-height:1.6}.ai-modal-accept{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7dba8f 0%,#5a9e6e 100%);border:none;border-radius:6px;padding:.6rem 1.2rem;font-family:inherit;font-size:.9rem;transition:all .2s}.ai-modal-accept:hover:not(:disabled){background:linear-gradient(135deg,#6daa7f 0%,#4a8e5e 100%);transform:translateY(-1px);box-shadow:0 2px 8px #5a9e6e4d}.ai-modal-accept:disabled,.ai-modal-cancel:disabled,.ai-modal-close:disabled{opacity:.6;cursor:not-allowed}.upload-icon{font-size:1.2rem}.media-preview-list{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.media-preview-item{background:#fff;border:1px solid #e8e4df;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.media-thumbnail{object-fit:cover;border-radius:4px;width:40px;height:40px}.media-icon{background:#f0ebe3;border-radius:4px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;display:flex}.media-filename{color:#5d6d7e;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.media-remove-btn{color:#999;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:1.2rem;transition:color .2s;display:flex}.media-remove-btn:hover:not(:disabled){color:#e74c3c}.braga-content{max-width:800px}.braga-photos{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:900px;margin-top:2.5rem;margin-left:auto;margin-right:auto;display:grid}.photo-placeholder{aspect-ratio:4/3;background:linear-gradient(135deg,#e8e4df 0%,#d4d0c9 100%);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;transition:transform .3s,box-shadow .3s;display:flex}.photo-placeholder:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.photo-placeholder span{opacity:.6;font-size:2.5rem}.photo-placeholder p{color:var(--color-text);opacity:.7;text-align:center;margin:0;padding:0 1rem;font-size:.85rem}.braga-location,.braga-weekend,.braga-hotels,.braga-activities,.braga-tips{margin-top:3rem}.braga-location h3,.braga-weekend h3,.braga-hotels h3,.braga-activities h3,.braga-tips h3{font-family:var(--font-heading);color:var(--color-primary);text-align:center;margin-bottom:1rem;font-size:1.5rem}.location-card{background:linear-gradient(135deg,#f8f6f3 0%,#f0ede8 100%);border-radius:12px;align-items:flex-start;gap:1.5rem;max-width:700px;margin:0 auto;padding:2rem;display:flex}.location-icon{flex-shrink:0;font-size:2.5rem}.location-info h4{font-family:var(--font-heading);color:var(--color-primary);margin-bottom:.5rem;font-size:1.2rem}.location-info p{color:var(--color-text);margin-bottom:1rem;line-height:1.7}.location-link{color:var(--color-accent);font-weight:500;text-decoration:none;transition:color .3s;display:inline-block}.location-link:hover{color:var(--color-primary)}.weekend-notice{border-left:4px solid var(--color-accent);background:linear-gradient(135deg,#fff9e6 0%,#fff3cc 100%);border-radius:12px;align-items:center;gap:1.5rem;max-width:700px;margin:0 auto;padding:1.5rem 2rem;display:flex}.weekend-icon{flex-shrink:0;font-size:2rem}.weekend-notice p{color:var(--color-text);margin:0;line-height:1.7}.hotels-subtitle,.activities-subtitle{text-align:center;color:var(--color-text);max-width:600px;margin-bottom:2rem;margin-left:auto;margin-right:auto}.hotels-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:900px;margin:0 auto 1.5rem;display:grid}.hotel-card{color:inherit;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;text-decoration:none;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 2px 8px #00000014}.hotel-card:hover{color:inherit;transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.hotel-icon{font-size:1.8rem}.hotel-name{color:var(--color-primary);text-align:center;font-size:.95rem;font-weight:500}.hotel-stars{letter-spacing:2px;font-size:.7rem}.hotels-tip{text-align:center;color:var(--color-text);opacity:.8;max-width:600px;margin:0 auto;font-size:.9rem}.activities-category{margin-bottom:2.5rem}.activities-category h4{font-family:var(--font-heading);color:var(--color-primary);text-align:center;margin-bottom:1.5rem;font-size:1.2rem}.attractions-grid,.restaurants-grid{grid-template-columns:repeat(3,1fr);gap:1rem;max-width:900px;margin:0 auto;display:grid}.attraction-card,.restaurant-card{color:inherit;background:#fff;border-radius:10px;align-items:flex-start;gap:.75rem;padding:1rem;text-decoration:none;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 2px 8px #00000014}.attraction-card:hover,.restaurant-card:hover{color:inherit;transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.card-icon{flex-shrink:0;font-size:1.75rem;line-height:1}.card-content{flex:1;min-width:0}.card-content h5{font-family:var(--font-heading);color:var(--color-primary);margin-bottom:.25rem;font-size:.95rem}.card-content p{color:var(--color-text);margin:0;font-size:.8rem;line-height:1.5}.tips-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:1000px;margin:0 auto;display:grid}.tip-item{background:linear-gradient(135deg,#f8f6f3 0%,#f0ede8 100%);border-radius:12px;align-items:flex-start;gap:1rem;padding:1.5rem;display:flex}.tip-icon{flex-shrink:0;font-size:1.5rem}.tip-item p{color:var(--color-text);margin:0;font-size:.9rem;line-height:1.6}.braga-gallery{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem;display:grid}.gallery-item{aspect-ratio:1;color:#a09890;background:linear-gradient(135deg,#e8e4df 0%,#d4d0c9 100%);justify-content:center;align-items:center;font-size:2rem;transition:transform .3s;display:flex}.gallery-item:hover{transform:scale(1.05)}footer{color:#fff;text-align:center;background:#2c3e50;padding:3rem 2rem}footer p{color:#ffffffb3;font-size:.9rem}footer .couple-names{color:#d4af37;letter-spacing:.2em;margin-bottom:1rem;font-size:1.5rem}.site-footer{padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom,0px))}.site-footer p{max-width:none;margin:0}.site-footer-main{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.75rem;display:flex}.site-footer .couple-names{margin:0;font-size:1.05rem;display:inline-block}.site-footer-note{opacity:.75;margin-top:.25rem!important;font-size:.78rem!important}.navbar.compact-nav .nav-links,.navbar.compact-nav .language-selector{display:none}.navbar.compact-nav .hamburger{display:flex}.hamburger{cursor:pointer;z-index:1001;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:24px;height:18px;padding:0;display:none}.hamburger span{background-color:#2c3e50;width:100%;height:2px;transition:all .3s;display:block}.mobile-menu-overlay{cursor:pointer;z-index:6000;opacity:0;background:#00000080;border:none;padding:0;transition:opacity .3s;display:none;position:fixed;inset:0}.mobile-menu{z-index:6001;width:260px;height:100vh;padding:1.25rem 1.35rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));background:#fff;flex-direction:column;transition:right .3s;display:flex;position:fixed;top:0;right:-260px;overflow-y:auto;box-shadow:-5px 0 20px #0000001a}@supports (height:100dvh){.mobile-menu{height:100dvh}}.mobile-menu-close{color:#5d6d7e;cursor:pointer;background:0 0;border:none;font-size:1.75rem;line-height:1;position:absolute;top:.75rem;right:.85rem}.mobile-nav-links{margin-top:2.25rem;list-style:none}.mobile-nav-links li{margin-bottom:.15rem}.mobile-nav-links a{color:#2c3e50;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #f0ebe3;padding:.62rem 0;font-size:1rem;text-decoration:none;transition:color .3s,padding-left .3s;display:block}.mobile-nav-links a:hover{color:#d4af37;padding-left:.5rem}.mobile-language-selector{border-top:1px solid #f0ebe3;margin-top:auto;padding-top:1rem}.mobile-language-selector p{color:#5d6d7e;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.55rem;font-size:.8rem}.language-buttons{gap:.35rem;display:flex}.lang-btn{color:#5d6d7e;cursor:pointer;letter-spacing:.1em;background:0 0;border:1px solid #d4d0c9;flex:1;padding:.5rem .35rem;font-family:inherit;font-size:.8rem;transition:all .3s}.lang-btn:hover,.lang-btn.active{color:#fff;background:#d4af37;border-color:#d4af37}body.menu-open{overflow:hidden}body.menu-open .mobile-menu-overlay{opacity:1;display:block}body.menu-open .mobile-menu{right:0}body.menu-open .hamburger span:first-child{transform:rotate(45deg)translate(5px,5px)}body.menu-open .hamburger span:nth-child(2){opacity:0}body.menu-open .hamburger span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}@media (width<=768px){h1{font-size:2.5rem}h2{font-size:1.8rem}.hero-names{font-size:4.5rem}.navbar{padding:1rem}.nav-links{display:none}.hamburger{display:flex}.language-selector,.mobile-menu-overlay{display:none}.hero{padding:5rem 1.5rem 3rem}.hero-subtitle{font-size:.9rem}.hero-date{font-size:1.1rem}section{min-height:auto;padding:5rem 1.5rem}.us-content{grid-template-columns:1fr;gap:2rem}.story-photo{max-width:100%;padding:0 1rem}.story-photo.proposal-photo{max-width:100%}.couple-photos-grid{flex-direction:row;gap:.5rem}.couple-photos-grid img{max-width:45%;max-height:200px}.person-image{width:150px;height:150px;font-size:3rem}.wedding-details{grid-template-columns:1fr;gap:1.5rem}.practical-grid{grid-template-columns:1fr}.braga-gallery{grid-template-columns:repeat(2,1fr)}.language-selector select{padding:.4rem 1.5rem .4rem .75rem;font-size:.8rem}.braga-photos{grid-template-columns:1fr;max-width:400px}.location-card,.weekend-notice{text-align:center;flex-direction:column;padding:1.5rem}.hotels-grid,.attractions-grid,.restaurants-grid{grid-template-columns:repeat(2,1fr)}.tips-list{grid-template-columns:1fr}.tip-item{text-align:center;flex-direction:column}}@media (width<=480px){h1{font-size:2rem}.hero-names{font-size:3.5rem}.hero-ampersand{font-size:2rem}.braga-gallery,.attractions-grid,.restaurants-grid{grid-template-columns:1fr}.person-image{width:120px;height:120px;font-size:2.5rem}.hotels-grid{grid-template-columns:1fr}}.back-to-top{color:#fff;cursor:pointer;opacity:0;visibility:hidden;z-index:999;background:#d4af37;border:none;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;transition:opacity .3s,visibility .3s,transform .3s,background-color .3s;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 12px #00000026}.back-to-top.visible{opacity:1;visibility:visible}.back-to-top:hover{background:#b8860b;transform:translateY(-3px);box-shadow:0 6px 16px #0003}.back-to-top:active{transform:translateY(-1px)}@media (width<=768px){.back-to-top{width:45px;height:45px;font-size:1.3rem;bottom:1.5rem;right:1.5rem}}.clickable-photo{cursor:pointer;transition:transform .3s,box-shadow .3s}.clickable-photo:hover{transform:scale(1.02);box-shadow:0 8px 30px #00000040}.lightbox-overlay{z-index:9999;touch-action:none;overscroll-behavior:contain;background:#000000f2;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-close{color:#fff;cursor:pointer;z-index:10000;background:0 0;border:none;padding:10px;font-size:3rem;line-height:1;transition:transform .2s,color .2s;position:absolute;top:20px;right:30px}.lightbox-close:hover{color:#d4af37;transform:scale(1.2)}.lightbox-image{object-fit:contain;border-radius:8px;max-width:90vw;max-height:90vh;animation:.3s zoomIn;box-shadow:0 10px 50px #00000080}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (width<=768px){.lightbox-close{font-size:2.5rem;top:15px;right:15px}.lightbox-image{max-width:95vw;max-height:85vh}}.schedule-timeline{flex-direction:column;gap:1.5rem;max-width:500px;margin:2rem auto 0;display:flex}.schedule-item{background:#faf9f7;border:1px solid #e8e4df;border-left:3px solid #d4af37;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;transition:transform .3s;display:flex}.schedule-item:hover{transform:translate(4px)}.schedule-time{color:#2c3e50;font-variant-numeric:tabular-nums;min-width:70px;font-size:1.3rem;font-weight:600}.schedule-details{flex-direction:column;display:flex}.schedule-event{color:#2c3e50;text-transform:uppercase;letter-spacing:.08em;font-size:1rem;font-weight:500}.schedule-location{color:#888;margin-top:.15rem;font-size:.85rem}.activity-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;max-width:700px;margin:2rem auto 0;display:grid}.activity-card{cursor:pointer;text-align:center;background:#faf9f7;border:1px solid #e8e4df;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1.5rem;font-family:inherit;transition:all .3s;display:flex}.activity-card:hover{border-color:#d4af37;transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.activity-icon{font-size:2.5rem;line-height:1}.activity-card h3{color:#2c3e50;text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:1.1rem}.activity-card p{color:#888;margin:0;font-size:.85rem}.fullscreen-view{background:#faf9f7;flex-direction:column;min-height:100vh;display:flex}.fullscreen-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:#faf9f7f2;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.fullscreen-header h2{color:#2c3e50;letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:1.2rem}.header-spacer{width:60px}.back-btn{color:#5d6d7e;cursor:pointer;letter-spacing:.05em;background:0 0;border:none;padding:.5rem 0;font-family:inherit;font-size:.9rem;transition:color .3s}.back-btn:hover{color:#d4af37}.fullscreen-content{flex:1;width:100%;max-width:800px;margin:0 auto;padding:6rem 2rem 2rem}.page-title{text-align:center;letter-spacing:.2em;text-transform:uppercase;color:#2c3e50;margin:0 0 1.5rem;font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-size:2rem;font-weight:300}.gallery-view>.page-title{padding-top:5rem}.fullscreen-subtitle{text-align:center;color:#888;margin-bottom:2rem;font-style:italic}.booklet-view{background:#faf9f7}.booklet-page{color:#2d2d2d;text-align:center;padding-top:1rem;padding-bottom:2rem;line-height:1.55}.booklet-cover{border-bottom:1px solid #e6dfd2;margin-bottom:2rem;padding:1.5rem 1rem 2.5rem}.booklet-eyebrow{text-transform:uppercase;letter-spacing:.25em;color:#8a7a5e;margin:0 0 1rem;font-size:.78rem}.booklet-cover-names{color:#4a3f2a;letter-spacing:.04em;margin:0;font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-size:2.5rem;font-weight:400}.booklet-cover-rule{background:#b9a37a;width:60px;height:1px;margin:1rem auto}.booklet-cover-meta{color:#6b5840;margin:.25rem 0;font-size:.95rem}.booklet-cover-disclaimer{color:#8a7a5e;margin-top:1.25rem;font-size:.82rem}.booklet-about{text-align:center;color:#4a3f2a;max-width:32rem;margin:0 auto 2rem;font-style:italic;line-height:1.55}.booklet-closing{border-top:1px solid #e6dfd2;margin-top:3rem;padding-top:1.5rem}.booklet-thanks{color:#4a3f2a;margin:.75rem 0 1.25rem;font-size:1.05rem}.booklet-verse{color:#6b5840;margin:.5rem 0 .25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.15rem}.booklet-verse-ref{color:#8a7a5e;letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.8rem}.booklet-subtitle{text-align:center;color:#6b5840;margin:0 0 .5rem;font-size:.95rem;font-style:italic}.booklet-intro{text-align:center;color:#888;border-top:1px solid #e6dfd2;border-bottom:1px solid #e6dfd2;margin:0 0 1.5rem;padding:.5rem 1rem;font-size:.85rem}.booklet-section,.booklet-section:nth-child(2n),.booklet-section:nth-child(odd){text-align:center;background:0 0;min-height:0;margin:1.5rem 0;padding:0;scroll-margin-top:5rem;display:block}.booklet-fleuron{opacity:.85;justify-content:center;margin:2.25rem auto 1rem;display:flex}.booklet-fleuron svg{width:120px;height:18px;display:block}.booklet-toc{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#faf9f7f2;border-bottom:1px solid #e6dfd2;flex-wrap:wrap;justify-content:center;gap:.35rem;margin:0 -.5rem 1.5rem;padding:.5rem .25rem;display:flex;position:sticky;top:60px}.booklet-toc-chip{color:#6b5840;letter-spacing:.04em;white-space:nowrap;border:1px solid #d9cfb8;border-radius:999px;flex:none;padding:.3rem .7rem;font-size:.72rem;text-decoration:none;transition:background .2s,color .2s}.booklet-toc-chip:hover{color:#fff;background:#b9a37a}.booklet-section h3{text-align:center;color:#6b5840;border-bottom:none;margin:0 0 .75rem;padding-bottom:0;font-family:Playfair Display,Georgia,serif;font-size:1.35rem}.booklet-intentions{max-width:30rem;margin:.5rem auto;padding:0;list-style:none}.booklet-section h4{color:#6b5840;text-align:center;text-transform:uppercase;letter-spacing:.18em;background:0 0;border:none;margin:2.5rem 0 .6rem;padding:0;font-family:Cormorant Garamond,Georgia,serif;font-size:1.15rem;font-weight:600}.booklet-section h4:after{content:"";background:#b9a37a;width:40px;height:1px;margin:.5rem auto 0;display:block}.booklet-section h4:first-of-type{margin-top:.5rem}.booklet-section p{text-align:center;margin:.25rem auto}.booklet-homily p{margin:.75rem auto}.booklet-meta{color:#8a7a5e;font-size:.85rem;font-style:italic}.booklet-music{color:#6b5840;font-size:.92rem;font-style:italic}.booklet-opener{color:#555}.booklet-acclaim{color:#6b5840;font-weight:600;margin-top:.5rem!important}.booklet-response{color:#4a3f2a;font-style:italic;font-weight:600}.booklet-intentions{text-align:center;max-width:30rem;margin:.5rem auto;padding-left:0}.booklet-intentions li{margin:.5rem 0;list-style:none}.fullscreen-language-selector{margin-left:auto}.fullscreen-language-selector select{color:#4a3f2a;cursor:pointer;background:0 0;border:1px solid #d9cfb8;border-radius:4px;padding:.25rem .5rem;font-size:.85rem}.menu-view{background:#faf9f7}.menu-locked{text-align:center}.menu-locked-message{color:#6b5840;background:#fffdf9;border:1px solid #e6ddcf;border-radius:14px;max-width:32rem;margin:2.5rem auto 0;padding:1.5rem 1.75rem;font-size:1.1rem;line-height:1.6}.menu-page{color:#2d2d2d}.menu-subtitle{text-align:center;color:#6b5840;margin:0 0 2rem;font-style:italic}.menu-courses{counter-reset:menu-course;margin:0;padding:0;list-style:none}.menu-course{counter-increment:menu-course;text-align:center;border-bottom:1px solid #e6dfd2;padding:1.5rem 0}.menu-course:last-child{border-bottom:none}.menu-course h3{color:#6b5840;text-transform:uppercase;letter-spacing:.15em;margin:0 0 .5rem;font-family:Playfair Display,Georgia,serif;font-size:1.1rem}.menu-course h3:before{content:counter(menu-course) " · ";color:#b9a37a}.menu-course p{margin:0;font-size:1.05rem;line-height:1.5}.menu-dish-desc{color:#6b5840;font-style:italic;margin-top:.4rem!important;font-size:.9rem!important;line-height:1.45!important}.menu-wines-course{counter-increment:none}.menu-wines-course h3:before{content:""!important}.menu-wines{margin:0;padding:0;list-style:none}.menu-wine{text-align:center;flex-direction:column;align-items:center;padding:.35rem 0;display:flex}.menu-wine-label{color:#b9a37a;text-transform:uppercase;letter-spacing:.15em;font-family:Playfair Display,Georgia,serif;font-size:.8rem}.menu-wine-name{color:#2d2d2d;font-size:1rem}.menu-drinks-note{text-align:center;color:#6b5840;text-align:center;margin:1rem 0 0;font-size:.95rem;font-style:italic}.menu-allergens{flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.menu-allergen{color:#6b5840;letter-spacing:.05em;background:#f3ece0;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.75rem;display:inline-flex}.menu-allergens-note{text-align:center;color:#8b7960;margin:1rem 0 0;font-size:.8rem;font-style:italic;line-height:1.4}.menu-kids-note{text-align:center;color:#6b5840;margin:1.25rem 0 0;font-size:.9rem;line-height:1.4}.menu-kids-note strong{color:#4a3f2f}.playlist-view{background:#faf9f7}.playlist-locked{text-align:center}.playlist-locked-message{color:#6b5840;background:#fffdf9;border:1px solid #e6ddcf;border-radius:14px;max-width:34rem;margin:1rem auto 0;padding:1.5rem 1.75rem;font-size:1.05rem;line-height:1.6}section.playlist-section,section.playlist-section:nth-child(2n),section.playlist-section:nth-child(odd){text-align:left;background-color:#0000;min-height:0;padding:0;display:block}.playlist-page{flex-direction:column;align-items:center;display:flex}.playlist-subtitle{text-align:center;color:#6b5840;margin:0 0 2.5rem;font-style:italic}.playlist-section{width:100%;max-width:720px;margin:0 auto 3rem}.playlist-embed{border:none;border-radius:12px;width:100%;box-shadow:0 4px 16px #00000014}.playlist-collab-cta{text-align:center;background:#fff;border:1px solid #e8e4df;border-radius:12px;margin-top:1.25rem;padding:1.5rem}.playlist-collab-title{color:#2c3e50;letter-spacing:.04em;margin:0 0 .5rem;font-family:Cormorant Garamond,serif;font-size:1.4rem}.playlist-collab-body{color:#555;margin:0 0 1.25rem;line-height:1.6}.playlist-collab-btn{color:#fff;letter-spacing:.04em;background:#1db954;border-radius:999px;padding:.75rem 1.6rem;font-size:.95rem;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-block}.playlist-collab-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #1db95466}.playlist-collab-btn--ghost{color:#1db954;background:0 0;border:1px solid #1db954}.playlist-collab-btn--ghost:hover{box-shadow:none;background:#1db95414}.playlist-moments-title{color:#2c3e50;text-align:center;letter-spacing:.04em;margin:0 0 .5rem;font-family:Cormorant Garamond,serif;font-size:1.6rem}.playlist-moments-intro{text-align:center;color:#888;margin:0 0 1.75rem;font-style:italic}.playlist-moments{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.playlist-moment{background:#fff;border:1px solid #e8e4df;border-radius:12px;padding:1.25rem}.playlist-moment-label{color:#d4af37;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .75rem;font-family:Cormorant Garamond,serif;font-size:1.05rem}.playlist-moment-embed{border:none;border-radius:8px;width:100%}.playlist-moment-embed+.playlist-moment-embed{margin-top:.6rem}@media (width<=600px){.playlist-moments{grid-template-columns:1fr}}@media (width<=768px){.playlist-collab-cta,.playlist-moment{padding:1rem}}.gallery-view{background:#faf9f7;flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.gallery-subtitle{text-align:center;color:#888;margin:0;padding:1.5rem 2rem 0;font-style:italic}.gallery-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;padding:5.5rem 1rem .4rem;display:flex}.gallery-tabs{flex-wrap:wrap;justify-content:flex-start;gap:.4rem;padding:0;display:flex}.gallery-tab{color:#555;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #d4af3780;border-radius:999px;padding:.4rem 1.1rem;font-family:Cormorant Garamond,Georgia,serif;font-size:.95rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s}.gallery-tab:hover{color:#333;border-color:#d4af37}.gallery-tab.active{color:#fff;background:#d4af37;border-color:#d4af37}.gallery-sort{align-items:center;gap:.25rem;padding:0;display:inline-flex}.gallery-sort-btn{color:#8a7a5e;cursor:pointer;background:0 0;border:1px solid #e0d8c8;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.78rem;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.gallery-sort-btn:hover{color:#6b5840;border-color:#d4af37}.gallery-sort-btn.active{color:#fff;background:#d4af37;border-color:#d4af37}.gallery-sort-divider{background:#0000001a;width:1px;height:1rem;margin:0 .2rem}.gallery-content{flex:1;padding:0}.masonry-grid{opacity:1;gap:0;width:100%;transition:opacity .3s;display:flex;overflow-x:hidden}.masonry-column{background-clip:padding-box;flex:1;min-width:0;margin:0;padding:0}.masonry-item{cursor:pointer;box-sizing:border-box;border:.5px solid #0000000d;width:100%;margin:0;padding:0;transition:transform .3s;animation:.6s cubic-bezier(.4,0,.2,1) forwards gallerySlideIn;display:block;position:relative;overflow:hidden}@keyframes gallerySlideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.masonry-image{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}@media (hover:hover) and (pointer:fine){.masonry-item:hover .masonry-image{transform:scale(1.05)}}.gallery-thumb-overlay{pointer-events:none;position:absolute;inset:0}.gallery-thumb-heart-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;background:#0000008c;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;min-width:2rem;height:2rem;padding:0 .55rem;font-size:.95rem;line-height:1;transition:background .2s,transform .15s;display:inline-flex;position:absolute;bottom:.5rem;right:.5rem}.gallery-thumb-heart-btn:hover{background:#000000b3;transform:scale(1.05)}.gallery-thumb-heart-btn.active{color:#fff;background:#d4af37e6}.gallery-thumb-heart-btn.active i{color:#ff5c7a}.gallery-thumb-heart-count{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.lightbox-download-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1100;background:#0000008c;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.05rem;transition:background .2s,transform .15s;display:inline-flex;position:fixed;bottom:1.25rem;left:1.25rem}.lightbox-download-btn:hover{background:#d4af37e6;transform:scale(1.05)}.photo-reactions-overlay{z-index:1000;pointer-events:auto;justify-content:center;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.gallery-heart-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:.55rem;padding:.55rem 1.1rem;font-size:1.15rem;line-height:1;transition:transform .2s,background .2s,border-color .2s;display:inline-flex}.gallery-heart-btn:hover{background:#000000b3;transform:translateY(-1px)}.gallery-heart-btn.active{background:#d4af3759;border-color:#d4af37cc}.gallery-heart-btn.active i{color:#ff5c7a}.gallery-heart-count{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.gallery-loading,.gallery-empty,.gallery-error{text-align:center;color:#5d6d7e;justify-content:center;align-items:center;min-height:200px;padding:3rem 1rem;font-size:1.1rem;display:flex}.gallery-loading{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffff4d;border:1px solid #0000000d;border-radius:12px;margin:2rem}.gallery-loading:before{content:"";border:3px solid #d4af3733;border-top-color:#d4af37;border-radius:50%;width:40px;height:40px;animation:1s linear infinite gallerySpin}@keyframes gallerySpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gallery-empty p,.gallery-error p{background:#fff9;border:1px solid #0000000d;border-radius:8px;margin:0;padding:1rem 2rem}.gallery-error p{color:#c0392b;background:#fef2f2cc}.gallery-fab-wrap{z-index:999;align-items:center;gap:.6rem;display:flex;position:fixed;bottom:2rem;right:2rem}.gallery-fab-label{color:#2c3e50;letter-spacing:.02em;white-space:nowrap;background:#fffffff2;border-radius:999px;padding:.45rem .8rem;font-size:.8rem;font-weight:600;box-shadow:0 2px 10px #00000026}.gallery-fab{color:#fff;cursor:pointer;background:#d4af37;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.5rem;transition:all .3s;display:flex;box-shadow:0 4px 15px #d4af3766}.gallery-fab:hover{background:#c9a030;transform:translateY(-2px)scale(1.05);box-shadow:0 8px 25px #d4af3780}.fab-icon{font-size:1.8rem;line-height:1;transition:transform .3s}.gallery-fab:hover .fab-icon{transform:rotate(90deg)}.photo-info-overlay{pointer-events:none;z-index:1000;justify-content:center;padding:0 1rem 5.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.photo-info-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;color:#fff;background:#0009;border-radius:14px;max-width:min(90%,28rem);padding:.7rem 1.1rem}.photo-author span{letter-spacing:.02em;font-size:.9rem;font-weight:600}.photo-description p{color:#ffffffe0;margin:.3rem 0 0;font-size:.88rem;line-height:1.4}.PhotoView-Portal{--PhotoView-bg:#000000f2;z-index:9999!important}.app-modal-overlay{z-index:9000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;top:0;left:0}.app-modal{background:#fff;border-radius:12px;width:90vw;max-width:500px;animation:.3s ease-out appModalFadeIn;overflow:hidden;box-shadow:0 10px 40px #00000026}.app-modal-overlay--top{align-items:flex-start;padding-top:clamp(1rem,6vh,4rem);overflow-y:auto}.app-modal--top{flex-direction:column;max-height:calc(100dvh - clamp(1rem,6vh,4rem) - 1rem);animation:.25s ease-out appModalSlideDown;display:flex}.app-modal--top .app-modal-header{flex-shrink:0}.app-modal--top .gallery-upload-form{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.app-modal--top .gallery-form-actions{background:#fff;margin-top:1.5rem;padding-top:1rem;padding-bottom:.25rem;position:sticky;bottom:0}@keyframes appModalSlideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.gallery-uploading{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 2rem 3rem;display:flex}.gallery-uploading-spinner{border:3px solid #d4af3740;border-top-color:#d4af37;border-radius:50%;width:44px;height:44px;margin-bottom:.5rem;animation:.8s linear infinite galleryUploadingSpin}@keyframes galleryUploadingSpin{to{transform:rotate(360deg)}}.gallery-uploading-title{color:#2c3e50;margin:0;font-size:1.05rem;font-weight:600}.gallery-uploading-message{color:#777;max-width:22rem;margin:0;font-size:.88rem;line-height:1.45}.app-modal-sm{text-align:center;max-width:400px;padding:2rem}@keyframes appModalFadeIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.app-modal-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.app-modal-header h3{color:#2c3e50;letter-spacing:.05em;margin:0;font-size:1.2rem}.app-modal-close{color:#999;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1;transition:color .2s}.app-modal-close:hover{color:#333}.app-modal-sm h3{color:#2c3e50;margin:0 0 1rem;font-size:1.3rem}.app-modal-sm p{color:#666;margin:0 0 1.5rem;line-height:1.5}.app-modal-sm.success h3{color:#27ae60}.app-modal-sm.error h3{color:#c0392b}.app-modal-actions{justify-content:center;gap:.75rem;display:flex}.app-modal-btn{cursor:pointer;letter-spacing:.05em;border:none;border-radius:8px;min-width:100px;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .3s}.app-modal-btn.confirm{color:#fff;background:#d4af37}.app-modal-btn.confirm:hover:not(:disabled){background:#c9a030;transform:translateY(-1px)}.app-modal-btn.cancel{color:#555;background:#f5f5f5}.app-modal-btn.cancel:hover:not(:disabled){background:#e8e8e8;transform:translateY(-1px)}.app-modal-btn.ok-success{color:#fff;background:#27ae60}.app-modal-btn.ok-success:hover{background:#229954}.app-modal-btn.ok-error{color:#fff;background:#c0392b}.app-modal-btn.ok-error:hover{background:#a93226}.app-modal-btn:disabled{opacity:.6;cursor:not-allowed}.gallery-upload-form{padding:1.5rem 2rem 2rem}.gallery-form-group{margin-bottom:1.25rem}.gallery-form-group label{color:#555;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.5rem;font-size:.85rem;display:block}.gallery-form-group input[type=text],.gallery-form-group textarea{color:#333;box-sizing:border-box;background:#faf9f7;border:1px solid #d4d0c9;border-radius:6px;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.gallery-form-group input[type=text]:focus,.gallery-form-group textarea:focus{border-color:#d4af37;outline:none}.gallery-form-group textarea{resize:none}.gallery-select-files-btn{color:#5d6d7e;cursor:pointer;text-align:center;background:#f5f1eb;border:2px dashed #d4d0c9;border-radius:8px;width:100%;padding:1rem;font-family:inherit;font-size:.95rem;transition:all .2s;display:block}.gallery-select-files-btn:hover{color:#2c3e50;background:#faf5ec;border-color:#d4af37}.gallery-photo-preview{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.gallery-preview-item{text-align:center}.gallery-preview-item img{object-fit:cover;border:1px solid #e8e4df;border-radius:6px;width:100%;height:80px}.gallery-preview-name{color:#999;text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;font-size:.7rem;display:block;overflow:hidden}.gallery-form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.messages-form{flex-direction:column;gap:1rem;display:flex}.messages-form textarea{color:#333;resize:none;box-sizing:border-box;background:#fff;border:1px solid #d4d0c9;border-radius:8px;width:100%;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.5;transition:border-color .2s}.messages-form textarea:focus{border-color:#d4af37;outline:none}.messages-form input[type=text]{color:#333;box-sizing:border-box;background:#fff;border:1px solid #d4d0c9;border-radius:8px;width:100%;padding:1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.messages-form input[type=text]:focus{border-color:#d4af37;outline:none}.messages-attach-btn{color:#5d6d7e;cursor:pointer;text-align:left;background:#f5f1eb;border:1px solid #d4d0c9;border-radius:8px;width:100%;padding:.85rem 1rem;font-family:inherit;font-size:.9rem;transition:all .2s;display:block}.messages-attach-btn:hover:not(:disabled){background:#faf5ec;border-color:#d4af37}.messages-attach-btn:disabled{opacity:.6;cursor:not-allowed}.messages-files-preview{flex-direction:column;gap:.5rem;display:flex}.messages-file-item{color:#555;background:#ffffffb3;border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.messages-file-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.messages-remove-file{cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:.8rem;line-height:1}.messages-status{color:#c0392b;min-height:1.2rem;font-size:.85rem}.messages-submit-btn{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#d4af37;border:none;border-radius:8px;padding:1rem 2rem;font-family:inherit;font-size:1rem;font-weight:500;transition:all .3s}.messages-submit-btn:hover:not(:disabled){background:#c9a030;transform:translateY(-1px)}.messages-submit-btn:disabled{opacity:.6;cursor:not-allowed}.messages-loading-overlay{z-index:1000;background:#0000004d;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.messages-spinner{border:3px solid #d4af3733;border-top-color:#d4af37;border-radius:50%;width:40px;height:40px;animation:1s linear infinite gallerySpin}@media (width<=768px){.gallery-fab-wrap{bottom:1.5rem;right:1.5rem}.gallery-fab{width:50px;height:50px}.fab-icon{font-size:1.6rem}.photo-info-overlay{padding-bottom:5rem}.gallery-upload-form{padding:1rem 1.5rem 1.5rem}.gallery-form-actions{flex-direction:row}.gallery-form-actions .app-modal-btn{flex:1}}.qrhunt-content{max-width:720px;margin:0 auto}.qrhunt-intro{color:#555;text-align:center;max-width:560px;margin:0 auto 2rem;font-style:italic;line-height:1.6}.qrhunt-progress{text-align:center;max-width:400px;margin:0 auto 2rem}.qrhunt-progress-bar{background:#e8e4df;border-radius:4px;height:8px;margin-bottom:.5rem;overflow:hidden}.qrhunt-progress-fill{background:linear-gradient(90deg,#d4af37,#f0d678);border-radius:4px;height:100%;transition:width .6s}.qrhunt-progress-text{color:#888;letter-spacing:.06em;margin:0;font-size:.85rem}.qrhunt-scan{flex-direction:column;align-items:center;gap:.75rem;margin-bottom:2.5rem;display:flex}.qrhunt-scan-btn{color:#fff;letter-spacing:.04em;cursor:pointer;background:#d4af37;border:none;border-radius:999px;align-items:center;gap:.6rem;padding:.85rem 1.8rem;font-size:1rem;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 12px #d4af3759}.qrhunt-scan-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #d4af3773}.qrhunt-scan-icon{font-size:1.1rem}.qrhunt-photo-btn{color:#2c3e50;cursor:pointer;background:0 0;border:none;margin-top:.6rem;font-size:.85rem;text-decoration:underline}.qrhunt-camera{flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:420px;display:flex}.qrhunt-video{background:#000;border-radius:12px;width:100%}.qrhunt-close-btn{color:#555;cursor:pointer;background:0 0;border:1px solid #ccc;border-radius:999px;padding:.4rem 1rem;font-size:.85rem}.qrhunt-scanner-msg{color:#888;text-align:center;margin:0;font-size:.9rem}.qrhunt-sparks{flex-direction:column;gap:1.25rem;max-width:600px;margin:0 auto;display:flex}.qrhunt-spark{text-align:left;background:#fff;border:1px solid #e8e4df;border-radius:12px;padding:1.5rem;transition:border-color .3s,box-shadow .3s}.qrhunt-spark.unlocked{border-color:#d4af37;box-shadow:0 4px 16px #d4af372e}.qrhunt-spark.locked{opacity:.92}.qrhunt-spark-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.qrhunt-spark-num{color:#d4af37;background:#f4ede0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.95rem;font-weight:600;display:inline-flex}.qrhunt-spark.unlocked .qrhunt-spark-num{color:#fff;background:#d4af37}.qrhunt-spark-title{color:#2c3e50;letter-spacing:.04em;flex:1;font-family:Cormorant Garamond,serif;font-size:1.1rem}.qrhunt-spark-badge{color:#d4af37;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.qrhunt-spark-riddle{color:#3d3d3d;white-space:pre-line;margin:0;font-style:italic;line-height:1.7}.qrhunt-spark-reveal{color:#555;border-top:1px dashed #d4af3780;margin:1rem 0 0;padding-top:1rem;line-height:1.6}.qrhunt-spark.active{border-color:#2c3e50;box-shadow:0 4px 16px #2c3e501f}.qrhunt-spark.active .qrhunt-spark-num{color:#fff;background:#2c3e50}.qrhunt-route-label{letter-spacing:.12em;text-transform:uppercase;color:#2c3e50;margin:0 0 .4rem;font-size:.72rem;font-weight:600}.qrhunt-leg-done{color:#2c3e50;border-top:none;margin-top:0;padding-top:0}.qrhunt-leg-locked{color:#9a9a9a;font-style:normal}.qrhunt-leg-task{background:#f7f3ec;border-left:4px solid #d4af37;border-radius:10px;margin-top:1rem;padding:.85rem 1rem}.qrhunt-leg-task-roadblock{background:#f6eeee;border-left-color:#b5564b}.qrhunt-leg-task-label{letter-spacing:.12em;text-transform:uppercase;color:#b08400;margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:block}.qrhunt-leg-task-roadblock .qrhunt-leg-task-label{color:#b5564b}.qrhunt-leg-task-body{color:#444;margin:0;line-height:1.6}.qrhunt-toast{color:#fff;z-index:1100;cursor:pointer;background:#2c3e50;border-radius:12px;flex-direction:column;gap:.2rem;max-width:90vw;padding:.85rem 1.4rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.qrhunt-toast strong{color:#f0d678;letter-spacing:.04em;font-size:.95rem}.qrhunt-toast span{font-size:.85rem}.qrhunt-final-overlay{z-index:9000;background:#141414d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.qrhunt-final-card{text-align:center;background:#fffdf6;border:1px solid #d4af37;border-radius:16px;width:100%;max-width:520px;padding:2.5rem 2rem;box-shadow:0 20px 60px #0006}.qrhunt-final-eyebrow{color:#d4af37;letter-spacing:.4em;margin:0 0 .5rem;font-size:.9rem}.qrhunt-final-title{color:#2c3e50;letter-spacing:.04em;margin:0 0 .25rem;font-family:Pinyon Script,cursive;font-size:2.6rem}.qrhunt-final-subtitle{color:#888;margin:0 0 1.5rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic}.qrhunt-final-body{color:#3d3d3d;margin:0 0 1.75rem;line-height:1.7}.qrhunt-final-close{color:#fff;letter-spacing:.04em;cursor:pointer;background:#d4af37;border:none;border-radius:999px;padding:.7rem 1.8rem;font-size:.95rem}@media (width<=768px){.qrhunt-spark{padding:1.25rem}.qrhunt-final-card{padding:2rem 1.25rem}.qrhunt-final-title{font-size:2.1rem}.fullscreen-header{padding:1rem}.fullscreen-header h2{font-size:1rem}.fullscreen-content{padding:5rem 1rem 1.5rem}.activity-cards{grid-template-columns:1fr}.schedule-item{gap:1rem;padding:1rem}}.slim-banner{text-align:center;background:0 0;padding:calc(64px + 1.75rem) 1rem .75rem}.slim-banner-names{color:#2c3e50;letter-spacing:.02em;white-space:nowrap;justify-content:center;align-items:center;gap:.35rem;margin:0;font-family:Pinyon Script,cursive;font-size:4rem;font-weight:400;line-height:.95;display:flex}.slim-banner-amp{color:#d4af37;margin:0 .05rem;font-size:2rem;line-height:1}.slim-banner-meta{color:#5d6d7e;letter-spacing:.2em;border-top:1px solid #d4af37;max-width:18rem;margin:1.25rem auto 0;padding-top:1rem;font-size:.9rem}section.wd-actions-section{text-align:left;background:0 0;width:auto;max-width:600px;min-height:0;margin:0 auto;padding:.5rem 1rem 2rem;display:block}.wd-action-list{background:0 0;border:1px solid #ece4d3;border-radius:14px;margin:0;padding:0;list-style:none;overflow:hidden}.wd-action-list li+li .wd-action-item{border-top:1px solid #f0e8d6}.wd-action-item{color:#2c3e50;grid-template-columns:2.4rem 1fr 2.4rem;align-items:center;gap:.75rem;padding:.95rem 1rem;text-decoration:none;transition:background .15s;display:grid}.wd-action-item:hover{background:#faf6ed}.wd-action-icon{color:#b9a37a;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;display:inline-flex}.wd-action-text{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex}.wd-action-title{letter-spacing:.05em;color:#2c3e50;font-family:Cormorant Garamond,Georgia,serif;font-size:1.15rem;font-weight:500}.wd-action-hint{color:#8b7960;margin-top:.1rem;font-size:.78rem}@media (width>=768px){.slim-banner{padding:calc(64px + 2rem) 1rem 1rem}.slim-banner-names{font-size:5.5rem}.slim-banner-amp{font-size:2.6rem}.wd-actions-section{max-width:680px}.wd-action-title{font-size:1.3rem}}.PhotoView-Portal{touch-action:none;z-index:2000;direction:ltr;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}@keyframes PhotoView__rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes PhotoView__delayIn{0%,50%{opacity:0}to{opacity:1}}.PhotoView__Spinner{animation:.4s linear both PhotoView__delayIn}.PhotoView__Spinner svg{animation:.6s linear infinite PhotoView__rotate}.PhotoView__Photo{cursor:grab;-webkit-user-select:none;user-select:none;max-width:none}.PhotoView__Photo:active{cursor:grabbing}.PhotoView__icon{display:inline-block;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.PhotoView__PhotoBox,.PhotoView__PhotoWrap{touch-action:none;direction:ltr;width:100%;position:absolute;inset:0}.PhotoView__PhotoWrap{z-index:10;overflow:hidden}.PhotoView__PhotoBox{transform-origin:0 0}@keyframes PhotoView__fade{0%{opacity:0}to{opacity:1}}.PhotoView-Slider__clean .PhotoView-Slider__ArrowLeft,.PhotoView-Slider__clean .PhotoView-Slider__ArrowRight,.PhotoView-Slider__clean .PhotoView-Slider__BannerWrap,.PhotoView-Slider__clean .PhotoView-Slider__Overlay,.PhotoView-Slider__willClose .PhotoView-Slider__BannerWrap:hover{opacity:0}.PhotoView-Slider__Backdrop{z-index:-1;background:#000;width:100%;height:100%;transition-property:background-color;position:absolute;top:0;left:0}.PhotoView-Slider__fadeIn{opacity:0;animation:linear both PhotoView__fade}.PhotoView-Slider__fadeOut{opacity:0;animation:linear reverse both PhotoView__fade}.PhotoView-Slider__BannerWrap{color:#fff;z-index:20;background-color:#00000080;justify-content:space-between;align-items:center;width:100%;height:44px;transition:opacity .2s ease-out;display:flex;position:absolute;top:0;left:0}.PhotoView-Slider__BannerWrap:hover{opacity:1}.PhotoView-Slider__Counter{opacity:.75;padding:0 10px;font-size:14px}.PhotoView-Slider__BannerRight{align-items:center;height:100%;display:flex}.PhotoView-Slider__toolbarIcon{fill:#fff;box-sizing:border-box;cursor:pointer;opacity:.75;padding:10px;transition:opacity .2s linear}.PhotoView-Slider__toolbarIcon:hover{opacity:1}.PhotoView-Slider__ArrowLeft,.PhotoView-Slider__ArrowRight{cursor:pointer;opacity:.75;-webkit-user-select:none;user-select:none;z-index:20;justify-content:center;align-items:center;width:70px;height:100px;margin:auto;transition:opacity .2s linear;display:flex;position:absolute;top:0;bottom:0}.PhotoView-Slider__ArrowLeft:hover,.PhotoView-Slider__ArrowRight:hover{opacity:1}.PhotoView-Slider__ArrowLeft svg,.PhotoView-Slider__ArrowRight svg{fill:#fff;box-sizing:content-box;background:#0000004d;width:24px;height:24px;padding:10px}.PhotoView-Slider__ArrowLeft{left:0}.PhotoView-Slider__ArrowRight{right:0}
