:root{--cream: #FDF8F3;--cream-dark: #F5EDE4;--black: #1A1A1A;--black-light: #2D2D2D;--gold-accent: #C9A961}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Montserrat,sans-serif;font-weight:300;color:var(--black);background-color:var(--cream);line-height:1.6}h1,h2,h3,h4{font-family:Cormorant Garamond,serif;font-weight:400}a{color:var(--black);text-decoration:none}button{font-family:Montserrat,sans-serif;cursor:pointer}.wedding-site{min-height:100vh}.nav{position:fixed;top:0;left:0;right:0;background-color:#fdf8f3f2;padding:1rem 2rem;display:flex;justify-content:center;gap:3rem;z-index:100;border-bottom:1px solid var(--cream-dark)}.nav a{font-size:.85rem;letter-spacing:2px;text-transform:uppercase;transition:color .3s ease}.nav a:hover{color:var(--gold-accent)}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--cream);overflow:hidden}.slideshow{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease-in-out}.slide.active{opacity:1}.slideshow-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1}.hero-content{position:relative;z-index:2;padding:2rem}.hero-subtitle{font-size:.9rem;letter-spacing:4px;text-transform:uppercase;margin-bottom:1rem}.hero h1{font-size:4rem;font-weight:300;margin-bottom:1.5rem;font-style:italic}.hero-date{font-size:1.2rem;letter-spacing:3px;margin-bottom:2rem}.hero-divider{width:60px;height:1px;background-color:var(--gold-accent);margin:1rem auto}.slide-indicators{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;gap:.75rem;z-index:2}.indicator{width:10px;height:10px;border-radius:50%;border:1px solid var(--cream);background:transparent;padding:0;cursor:pointer;transition:background-color .3s ease}.indicator.active{background-color:var(--cream)}.section{padding:6rem 2rem;max-width:1000px;margin:0 auto;text-align:center}.section h2{font-size:2.5rem;margin-bottom:.5rem;font-style:italic}.section-subtitle{font-size:.8rem;letter-spacing:3px;text-transform:uppercase;color:var(--black-light);margin-bottom:3rem}.schedule-items{display:flex;flex-direction:column;gap:2rem;max-width:500px;margin:0 auto}.schedule-item{display:flex;align-items:center;gap:2rem;text-align:left}.schedule-time{font-size:1.1rem;font-weight:500;min-width:80px}.schedule-event h3{font-size:1.5rem;margin-bottom:.25rem}.schedule-event p{color:var(--black-light);font-size:.9rem}.location-section{background-color:var(--cream-dark)}.location-details{margin-top:2rem}.location-details h3{font-size:1.8rem;margin-bottom:.5rem}.location-address{color:var(--black-light);font-size:1rem;line-height:1.8}.map-placeholder{margin-top:2rem;padding:3rem;background-color:var(--cream);border:1px solid var(--black);font-size:.9rem;color:var(--black-light)}.gallery-section{max-width:1200px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.gallery-item{overflow:hidden;aspect-ratio:3 / 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.gallery-item:hover img{transform:scale(1.05)}.rsvp-section{background-color:var(--black);color:var(--cream);padding:6rem 2rem;text-align:center}.rsvp-section h2{font-size:2.5rem;margin-bottom:1rem;font-style:italic}.rsvp-section p{margin-bottom:2rem;font-size:1rem}.rsvp-button{background-color:transparent;color:var(--cream);border:1px solid var(--cream);padding:1rem 3rem;font-size:.85rem;letter-spacing:3px;text-transform:uppercase;transition:all .3s ease}.rsvp-button:hover{background-color:var(--cream);color:var(--black)}.footer{padding:3rem 2rem;text-align:center;font-size:.85rem;color:var(--black-light)}.footer-names{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-style:italic;margin-bottom:.5rem;color:var(--black)}@media(max-width:768px){.nav{gap:1.5rem;padding:1rem}.nav a{font-size:.75rem;letter-spacing:1px}.hero h1{font-size:2.5rem}.section{padding:4rem 1.5rem}.section h2{font-size:2rem}.schedule-item{flex-direction:column;gap:.5rem;text-align:center}.gallery-grid{grid-template-columns:repeat(2,1fr)}}.games-modal{position:fixed;inset:0;background-color:#000c;z-index:1000;display:flex;justify-content:center;align-items:center;padding:1rem}.games-modal-content{background-color:var(--cream);border-radius:8px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.close-modal{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:var(--black);cursor:pointer;z-index:10}.login-container{padding:3rem 2rem;text-align:center}.login-card h2{font-family:Cormorant Garamond,serif;font-size:2rem;margin-bottom:.5rem}.login-subtitle{color:var(--black-light);margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:1rem;max-width:300px;margin:0 auto}.login-input{padding:1rem;font-size:1.2rem;text-align:center;border:1px solid var(--black);background-color:var(--cream);font-family:Montserrat,sans-serif;letter-spacing:2px}.login-input:focus{outline:none;border-color:var(--gold-accent)}.login-button{padding:1rem 2rem;background-color:var(--black);color:var(--cream);border:none;font-size:.9rem;letter-spacing:2px;text-transform:uppercase;transition:all .3s ease}.login-button:hover:not(:disabled){background-color:var(--black-light)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:#c0392b;font-size:.9rem}.login-help{margin-top:2rem;font-size:.85rem;color:var(--black-light)}.skip-login{margin-top:1.5rem;background:none;border:none;color:var(--black-light);font-size:.85rem;text-decoration:underline;cursor:pointer}.skip-login:hover{color:var(--black)}.dashboard{padding:2rem}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.guest-info h2{font-family:Cormorant Garamond,serif;font-size:1.8rem;margin-bottom:.25rem}.table-info{color:var(--black-light);font-size:.9rem}.logout-button{padding:.5rem 1rem;background:none;border:1px solid var(--black);font-size:.8rem;letter-spacing:1px;text-transform:uppercase}.logout-button:hover{background-color:var(--black);color:var(--cream)}.score-summary{background-color:var(--cream-dark);padding:1.5rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.total-score{display:flex;flex-direction:column}.score-label{font-size:.8rem;text-transform:uppercase;letter-spacing:1px;color:var(--black-light)}.score-value{font-family:Cormorant Garamond,serif;font-size:2.5rem;font-weight:600}.leaderboard-button,.back-button{padding:.75rem 1.5rem;background-color:var(--black);color:var(--cream);border:none;font-size:.8rem;letter-spacing:1px;text-transform:uppercase}.back-button{margin-bottom:1.5rem}.games-section h3{font-family:Cormorant Garamond,serif;font-size:1.5rem;margin-bottom:1rem}.games-list{display:flex;flex-direction:column;gap:1rem}.game-card{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid var(--cream-dark);border-radius:4px}.game-info h4{font-family:Cormorant Garamond,serif;font-size:1.2rem;margin-bottom:.25rem}.game-type{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--black-light)}.game-status .score{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:600}.game-status .participated{color:var(--gold-accent);font-size:.85rem}.game-status .not-played{color:var(--black-light);font-size:.85rem}.no-games{color:var(--black-light);text-align:center;padding:2rem}.leaderboard{padding:1rem 0}.leaderboard h2{font-family:Cormorant Garamond,serif;font-size:1.8rem;text-align:center;margin-bottom:1.5rem}.leaderboard-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.tab{padding:.5rem 1.5rem;background:none;border:1px solid var(--black);font-size:.8rem;letter-spacing:1px;text-transform:uppercase}.tab.active{background-color:var(--black);color:var(--cream)}.leaderboard-list{display:flex;flex-direction:column;gap:.75rem}.leaderboard-item{display:flex;align-items:center;gap:1rem;padding:1rem;background-color:var(--cream-dark);border-radius:4px}.leaderboard-item.rank-1{background-color:#fef3c7}.leaderboard-item.rank-2{background-color:#f3f4f6}.leaderboard-item.rank-3{background-color:#fed7aa}.leaderboard-item .rank{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:600;min-width:30px}.leaderboard-item .item-info{flex:1}.leaderboard-item .item-name{display:block;font-weight:500}.leaderboard-item .item-meta{font-size:.8rem;color:var(--black-light)}.leaderboard-item .item-score{font-family:Cormorant Garamond,serif;font-size:1.3rem;font-weight:600}.no-scores{text-align:center;color:var(--black-light);padding:2rem}.dashboard-loading,.leaderboard-loading,.seating-loading{text-align:center;padding:3rem;color:var(--black-light)}.dashboard-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--cream-dark);padding-bottom:.5rem}.dashboard-tab{padding:.5rem 1rem;background:none;border:none;font-size:.85rem;letter-spacing:1px;text-transform:uppercase;color:var(--black-light);cursor:pointer;transition:all .3s ease}.dashboard-tab.active{color:var(--black);border-bottom:2px solid var(--black);margin-bottom:-.5rem;padding-bottom:calc(.5rem + 1px)}.dashboard-tab:hover:not(.active){color:var(--black)}.seating-arrangement{padding:1rem 0}.seating-arrangement h2{font-family:Cormorant Garamond,serif;font-size:1.8rem;text-align:center;margin-bottom:.5rem}.seating-subtitle{text-align:center;color:var(--black-light);font-size:.85rem;margin-bottom:1.5rem}.tables-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.table-card{border:1px solid var(--cream-dark);border-radius:8px;padding:1rem;transition:all .3s ease}.table-card.my-table{border-color:var(--gold-accent);background-color:#c9a9611a}.table-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--cream-dark)}.table-number{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--black-light)}.table-header h3{font-family:Cormorant Garamond,serif;font-size:1.2rem;margin-top:.25rem}.guest-list{list-style:none;padding:0;margin:0}.guest-list li{padding:.4rem 0;font-size:.9rem;display:flex;justify-content:space-between;align-items:center}.guest-list li.current-guest{font-weight:500;color:var(--black)}.you-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:1px;background-color:var(--gold-accent);color:#fff;padding:.15rem .4rem;border-radius:3px}@media(max-width:500px){.tables-grid{grid-template-columns:1fr}.dashboard-tabs{justify-content:center}}.rsvp-container{padding:1rem 0}.rsvp-container h2{font-family:Cormorant Garamond,serif;font-size:1.8rem;text-align:center;margin-bottom:.5rem}.rsvp-subtitle{text-align:center;color:var(--black-light);font-size:.85rem;margin-bottom:1.5rem}.rsvp-form{display:flex;flex-direction:column;gap:1.25rem}.rsvp-attendance{display:flex;gap:1rem}.attendance-option{flex:1;cursor:pointer}.attendance-option input{display:none}.attendance-option .option-content{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1rem;border:1px solid var(--cream-dark);border-radius:8px;transition:all .3s ease}.attendance-option:hover .option-content{border-color:var(--black-light)}.attendance-option.selected .option-content{border-color:var(--black);background-color:var(--cream-dark)}.option-icon{font-size:1.5rem;margin-bottom:.5rem}.option-text{font-size:.85rem;text-align:center}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;font-weight:500}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.checkbox-label input{width:18px;height:18px;cursor:pointer}.rsvp-input,.rsvp-textarea{padding:.75rem;font-size:1rem;border:1px solid var(--cream-dark);background-color:var(--cream);font-family:Montserrat,sans-serif;border-radius:4px}.rsvp-input:focus,.rsvp-textarea:focus{outline:none;border-color:var(--black)}.rsvp-textarea{resize:vertical;min-height:80px}.rsvp-submit-button{padding:1rem 2rem;background-color:var(--black);color:var(--cream);border:none;font-size:.9rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.rsvp-submit-button:hover:not(:disabled){background-color:var(--black-light)}.rsvp-submit-button:disabled{opacity:.5;cursor:not-allowed}.rsvp-confirmed{text-align:center;padding:1rem 0}.rsvp-status-icon{width:60px;height:60px;border-radius:50%;background-color:var(--black);color:var(--cream);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem}.rsvp-confirmed h2{margin-bottom:.5rem}.rsvp-message{color:var(--black-light);margin-bottom:1.5rem}.rsvp-summary{background-color:var(--cream-dark);padding:1rem;border-radius:8px;margin-bottom:1.5rem;text-align:left}.rsvp-summary p{margin:.5rem 0;font-size:.9rem}.rsvp-edit-button{padding:.75rem 1.5rem;background:none;border:1px solid var(--black);font-size:.8rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .3s ease}.rsvp-edit-button:hover{background-color:var(--black);color:var(--cream)}.login-prompt{text-align:center;padding:3rem 2rem;background-color:var(--cream-dark);border-radius:8px;max-width:400px;margin:0 auto}.login-prompt p{margin-bottom:1.5rem;color:var(--black-light)}.prompt-login-button{padding:1rem 2rem;background-color:var(--black);color:var(--cream);border:none;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .3s ease}.prompt-login-button:hover{background-color:var(--black-light)}.welcome-banner{display:flex;justify-content:space-between;align-items:center;background-color:var(--cream-dark);padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem}.welcome-banner span:first-child{font-weight:500}.your-table{color:var(--black-light);font-size:.9rem}.nav-login,.nav-logout{color:var(--gold-accent)!important}.rsvp-page-section{background-color:var(--cream-dark)}.rsvp-page-section .rsvp-container{max-width:500px;margin:0 auto;background-color:var(--cream);padding:2rem;border-radius:8px}.logged-in-section{max-width:800px;margin:0 auto}@media(max-width:600px){.welcome-banner{flex-direction:column;gap:.5rem;text-align:center}}
