: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(--black);overflow:hidden}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--cream);z-index:0}.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-link{display:inline-block;margin-top:2rem;padding:1rem 2.5rem;border:1px solid var(--black);font-size:.85rem;letter-spacing:2px;text-transform:uppercase;transition:all .3s ease}.map-link:hover{background-color:var(--black);color:var(--cream)}.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-section{max-width:1300px}.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}.viking-tables{display:flex;gap:2rem;justify-content:center;max-width:1200px;margin:0 auto}.viking-table{flex:1;display:flex;flex-direction:column;align-items:center;max-width:550px}.viking-table-label{font-family:Cormorant Garamond,serif;font-size:1.4rem;margin-bottom:1rem;letter-spacing:1px}.viking-table-layout{display:flex;align-items:stretch;width:100%}.viking-side{flex:1;display:flex;flex-direction:column;gap:0}.viking-side-left{align-items:flex-end;padding-right:.5rem}.viking-side-right{align-items:flex-start;padding-left:.5rem}.viking-table-surface{width:32px;min-width:32px;min-height:100px;background:linear-gradient(180deg,var(--cream-dark) 0%,#d4c5a9 50%,var(--cream-dark) 100%);border:1px solid #c4b48a;border-radius:4px}.viking-seat{display:flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:3px;font-size:.75rem;transition:background-color .3s ease;line-height:1.4}.viking-side-left .viking-seat{flex-direction:row-reverse}.viking-seat-you{background-color:#c9a96126;font-weight:500}.viking-seat-couple{background-color:#c9a96133;border:1px solid var(--gold-accent);padding:.35rem .6rem;margin:.15rem 0;font-weight:600}.couple-icon{font-size:.9rem;line-height:1}.couple-badge{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;background-color:var(--gold-accent);color:#fff;padding:.1rem .35rem;border-radius:3px;white-space:nowrap}.viking-seat-name{white-space:nowrap}@media(max-width:768px){.viking-tables{flex-direction:column;align-items:center}.viking-table{max-width:100%}}@media(max-width:500px){.viking-table-surface{width:20px;min-width:20px}.viking-seat{font-size:.7rem;padding:.2rem .35rem}.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}}.games-page{min-height:100vh;padding-top:5rem}.games-page-header{text-align:center;padding:3rem 2rem 1rem}.games-page-header h2{font-family:Cormorant Garamond,serif;font-size:2.5rem;font-style:italic;margin-bottom:.5rem}.games-page-content{max-width:1000px;margin:0 auto;padding:0 2rem 4rem}.nav-active{color:var(--gold-accent)!important}.checklist-container{max-width:600px;margin:0 auto;padding:1rem 0}.checklist-header{text-align:center;margin-bottom:1.5rem}.checklist-header h3{font-family:Cormorant Garamond,serif;font-size:1.5rem;margin-bottom:.25rem}.checklist-subtitle{color:var(--black-light);font-size:.85rem}.checklist-progress{margin-bottom:1.5rem}.checklist-progress-bar{height:8px;background-color:var(--cream-dark);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.checklist-progress-fill{height:100%;background-color:var(--gold-accent);border-radius:4px;transition:width .4s ease}.checklist-progress-text{font-size:.8rem;color:var(--black-light);letter-spacing:1px}.checklist-list{display:flex;flex-direction:column;gap:.5rem}.checklist-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--cream-dark);border-radius:4px;background:none;cursor:pointer;text-align:left;font-family:Montserrat,sans-serif;font-size:.9rem;color:var(--black);transition:all .3s ease;width:100%}.checklist-item:hover{border-color:var(--gold-accent)}.checklist-item.checked{background-color:#c9a96114;border-color:var(--gold-accent)}.checklist-item.checked .checklist-text{color:var(--black-light);text-decoration:line-through}.checklist-checkbox{width:22px;height:22px;min-width:22px;border:2px solid var(--cream-dark);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.checklist-item.checked .checklist-checkbox{background-color:var(--gold-accent);border-color:var(--gold-accent)}.checklist-checkmark{color:#fff;font-size:.75rem;font-weight:700;line-height:1}.checklist-text{flex:1;transition:color .3s ease}.guest-directory{padding:1rem 0}.guest-search{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--cream-dark);background-color:var(--cream);font-family:Montserrat,sans-serif;border-radius:4px;margin-bottom:1.5rem;box-sizing:border-box}.guest-search:focus{outline:none;border-color:var(--black)}.guest-cards{display:flex;flex-direction:column;gap:1rem}.guest-card{padding:1rem;border:1px solid var(--cream-dark);border-radius:4px}.guest-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.guest-card-name{font-family:Cormorant Garamond,serif;font-size:1.2rem;margin:0 0 .25rem}.guest-relationship{font-size:.8rem;color:var(--black-light);letter-spacing:.5px}.guest-table-badge{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--black-light);white-space:nowrap}.guest-fun-facts{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-wrap:wrap;gap:.4rem}.guest-fun-facts li{font-size:.78rem;background-color:var(--cream-dark);padding:.3rem .6rem;border-radius:12px;color:var(--black-light)}.guest-note{position:relative}.guest-note-input{width:100%;padding:.5rem .75rem;font-size:.85rem;border:1px solid var(--cream-dark);background-color:var(--cream);font-family:Montserrat,sans-serif;border-radius:4px;resize:vertical;box-sizing:border-box}.guest-note-input:focus{outline:none;border-color:var(--black)}.my-profile{max-width:500px;margin:0 auto;padding:1.5rem 0;display:flex;flex-direction:column;align-items:center}.profile-avatar{width:64px;height:64px;border-radius:50%;background-color:var(--black);color:var(--cream);display:flex;align-items:center;justify-content:center;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:600;margin-bottom:1rem}.profile-header{text-align:center;margin-bottom:2rem}.profile-header h3{font-family:Cormorant Garamond,serif;font-size:1.8rem;margin-bottom:.25rem}.profile-subtitle{color:var(--black-light);font-size:.85rem}.profile-card{width:100%;border:1px solid var(--cream-dark);border-radius:8px;padding:1.25rem}.profile-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--cream-dark)}.profile-card-title{font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:600}.profile-card-count{font-size:.75rem;color:var(--black-light);letter-spacing:1px;text-transform:uppercase}.fun-facts-list{display:flex;flex-direction:column;gap:.6rem}.fun-fact-row{display:flex;gap:.6rem;align-items:center}.fun-fact-number{width:24px;min-width:24px;height:24px;border-radius:50%;background-color:var(--cream-dark);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--black-light)}.fun-fact-input{flex:1;padding:.65rem .75rem;font-size:.9rem;border:1px solid var(--cream-dark);background-color:var(--cream);font-family:Montserrat,sans-serif;border-radius:6px;transition:border-color .3s ease}.fun-fact-input:focus{outline:none;border-color:var(--black)}.fun-fact-remove{width:28px;height:28px;min-width:28px;background:none;border:1px solid transparent;border-radius:50%;font-size:1.2rem;color:var(--black-light);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.fun-fact-remove:hover{border-color:var(--cream-dark);background-color:var(--cream-dark);color:var(--black)}.fun-fact-add{background:none;border:1px dashed var(--cream-dark);border-radius:6px;color:var(--black-light);font-size:.85rem;cursor:pointer;margin-top:.6rem;padding:.6rem;text-align:center;font-family:Montserrat,sans-serif;transition:all .2s ease;width:100%}.fun-fact-add:hover{border-color:var(--black-light);color:var(--black)}.profile-save-button{width:100%;margin-top:1.5rem;padding:1rem;background-color:var(--black);color:var(--cream);border:none;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;border-radius:6px;transition:all .3s ease}.profile-save-button:hover{background-color:var(--black-light)}.profile-save-success,.profile-save-success:hover{background-color:var(--gold-accent)}.guest-note-saved{position:absolute;right:.5rem;bottom:.5rem;font-size:.7rem;color:var(--gold-accent);letter-spacing:1px;text-transform:uppercase}
