.capitalize{text-transform:capitalize}.app-container{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.flex-container{display:flex;align-items:center}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.normal-text{font-size:1.25rem;line-height:1.5rem}.local-header{font-size:1.375rem;font-weight:600}.button-primary{display:inline-block;text-align:center}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.header{position:fixed;top:0;width:100%;background-color:rgba(243,229,171,.5);box-shadow:0 2px 4px rgba(0,0,0,.1);z-index:50;padding:1rem;border-bottom:2px solid var(--color-gold-500);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.header .container{display:flex;justify-content:space-between;background-color:transparent}.header h1{font-size:1.875rem;line-height:2.25rem;font-weight:700;color:var(--color-forest-green-700);margin:0}.header nav ul{display:flex;list-style:none;margin:0;padding:0;gap:1.5rem}.header nav a,.header nav button{color:var(--color-forest-green-800);font-weight:600;padding:.5rem .75rem;border-radius:.375rem;text-decoration:none;display:inline-block;cursor:pointer}.header nav a:hover{color:var(--color-gold-700)}.header nav button{background:none;border:1px solid var(--color-red-600);color:var(--color-red-600)}.header nav button:hover{border-color:var(--color-red-800);color:var(--color-red-800)}@media (max-width:768px){.header nav{display:none}.header .container{justify-content:center}}.section{min-height:75vh;padding:2rem 0;display:flex;align-items:center;justify-content:center}@media (min-width:768px){.section{padding:2rem 0}}.section-content{text-align:center;max-width:64rem;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.section-title{font-size:3rem;color:var(--color-forest-green-800);margin-bottom:2.5rem;border-bottom:4px solid var(--color-gold-500);padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;display:inline-block}@media (min-width:768px){.section-title{font-size:3.75rem}}.section-subtitle{font-size:1.875rem;font-weight:600;margin-bottom:1rem;color:var(--color-forest-green-700)}.hero-section{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:50%;color:white;overflow:hidden;width:100%;max-width:100vw}.hero-background-layer{position:absolute;inset:0;z-index:0;width:100%;height:100%;left:0;top:0}.hero-background-image{object-fit:cover;width:100%;height:100%;pointer-events:none}.hero-door-background{position:absolute;inset:0;z-index:10;transition:all 1s ease-in-out;width:100%;height:100%;left:0;top:0}.hero-door-background.locked{opacity:.6}.hero-door-background.unlocked{opacity:.6;filter:blur(4px) saturate(150%);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hero-door-image{object-fit:cover;width:100%;height:100%;pointer-events:none}.hero-content{position:relative;text-align:center;z-index:10;padding:2rem;background-color:rgba(0,0,0,.3);border-radius:.75rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin:0 1rem}.post-login-hero-content{margin:0 4rem}.hero-title{font-size:2.75rem;line-height:2;text-shadow:2px 2px 4px rgba(0,0,0,.5);margin-bottom:1rem;color:var(--color-gold-200)}@media (min-width:768px){.hero-title{font-size:2rem}.hero-door-image{object-fit:contain;width:100%;height:100%;pointer-events:none}}.hero-subtitle{font-size:1.5rem;line-height:2.25rem;font-style:italic;text-shadow:2px 2px 4px rgba(0,0,0,.5);color:var(--color-gold-100);margin-bottom:2rem}@media (min-width:768px){.hero-subtitle{font-size:2rem}}@media (max-width:768px){.hero-title{font-size:2.25rem;line-height:1.2}.date-value{font-size:2.5rem}.post-login-hero-content{margin:0 1rem}}@media (max-width:640px){.section{padding:3rem 0}.section-title{font-size:2.25rem;margin-bottom:1.5rem}.container{padding-left:1rem;padding-right:1rem}}.hero-login-form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;max-width:300px;margin-left:auto;margin-right:auto}.hero-input{padding:.75rem 1rem;border:1px solid rgba(255,255,255,.5);border-radius:.375rem;background-color:rgba(255,255,255,.1);color:white;font-family:inherit;transition:all .3s ease-in-out}.hero-input::placeholder{color:rgba(255,255,255,.7)}.hero-input:focus{outline:none;border-color:var(--color-gold-500);box-shadow:0 0 0 2px var(--color-gold-500)}.hero-login-button{background-color:var(--color-gold-700);color:white;padding:.75rem 1.5rem;border:none;border-radius:.375rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,transform .2s ease}.hero-login-button:hover{background-color:var(--color-gold-500);transform:translateY(-2px)}.hero-message{margin-top:2rem;color:var(--color-gold-200);font-size:1.25rem;font-weight:600;animation:fadeIn .5s ease-in-out forwards}.date-value{font-size:clamp(2.5rem,8vw,4rem);font-family:Uncial Antiqua,cursive;color:var(--color-gold-500);text-shadow:1px 1px 3px rgba(0,0,0,.3);line-height:1.2}.separator{margin:0 .5rem}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.message-box{position:fixed;top:1rem;left:50%;transform:translateX(-50%);z-index:100;padding:1rem;border-radius:.5rem;border-width:2px;box-shadow:0 4px 6px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:space-between}.message-box.success{background-color:var(--color-emerald-100);color:var(--color-emerald-800);border-color:var(--color-emerald-800)}.message-box.error{background-color:#fce7e7;color:#991b1b;border-color:#f87171}.message-box button{margin-left:1rem;font-size:1.25rem;font-weight:700;background:none;border:none;cursor:pointer}.form-card{max-width:28rem;margin-left:auto;margin-right:auto;background-color:white;padding:2rem;border-radius:.5rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1)}.form-group{text-align:left;margin-bottom:1rem}.form-label{display:block;color:var(--color-forest-green-700);font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.form-input,.form-select,.form-textarea{width:100%;padding:.75rem;border:1px solid var(--color-gray-300);border-radius:.375rem;color:var(black);font-family:inherit;font-size:1.1rem}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;box-shadow:0 0 0 2px var(--color-forest-green-500)}.button{width:100%;padding:.75rem;border-radius:.375rem;font-weight:600;text-decoration:none;display:block;cursor:pointer;border:none;transition:background-color .3s}.button-primary{background-color:var(--color-forest-green-700);color:var(--color-gold-100)}.button-primary:hover{background-color:var(--color-forest-green-800)}.button-secondary{background-color:var(--color-gold-700);color:white}.button-secondary:hover{background-color:#7d603a}.form-divider{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-gray-300);text-align:center}.bg-parchment-light{background-color:var(--color-parchment-light)}.gallery-img,.venue-img{margin-top:2rem;border-radius:.75rem;box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:100%;height:auto;margin-left:auto;margin-right:auto}.gallery{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:100px}@media (min-width:640px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}.gallery-img{width:100%;height:100%;object-fit:cover}.schedule-list{text-align:left;max-width:30rem;margin-left:auto;margin-right:auto}.schedule-item{margin-bottom:1.5rem;padding:1rem;background-color:white;border-radius:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.schedule-item h3{font-size:1.5rem;color:var(--color-forest-green-700);margin-bottom:.5rem}.admin-table-container{max-width:64rem;margin-left:auto;margin-right:auto;background-color:white;padding:2rem;border-radius:.5rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:.75rem 1.5rem;text-align:left;border-bottom:1px solid var(--color-gray-200);font-size:.875rem;line-height:1.25rem;white-space:nowrap}.admin-table th{font-size:.75rem;font-weight:500;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;background-color:var(--color-gray-50)}.admin-table tbody tr:nth-child(odd){background-color:var(--color-parchment-light)}.admin-table tbody tr:hover{background-color:var(--color-parchment)}.footer{background-color:var(--color-forest-green-900);color:var(--color-gold-200);padding:2rem;text-align:center;border-top:2px solid var(--color-gold-500)}.footer p{margin:0}.footer p:last-child{margin-top:.5rem;font-size:.875rem}.link-primary{color:var(--color-forest-green-500);text-decoration:none}.link-primary:hover{text-decoration:underline}.trivia-grid-container{max-width:1100px;margin:4rem auto;padding:0 1.5rem}.trivia-grid{display:grid;grid-template-columns:repeat(1,1fr);grid-gap:2rem;gap:2rem;justify-items:center}@media (min-width:640px){.trivia-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.trivia-grid{grid-template-columns:repeat(3,1fr)}}.perspective{perspective:1500px;width:100%;max-width:300px}.trivia-card-inner{position:relative;width:100%;padding-top:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.4,0,.2,1);cursor:pointer}.trivia-card-inner.is-flipped{transform:rotateY(180deg)}.card-face{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;box-sizing:border-box}.card-face-front{background:#ffffff;border:1px solid rgba(184,134,11,.2);box-shadow:0 10px 25px -5px rgba(0,0,0,.08);z-index:2}.card-face-front:after{content:"";position:absolute;inset:12px;border:1px solid var(--color-gold-200);border-radius:12px;opacity:.4;pointer-events:none}.card-face-back{background:linear-gradient(145deg,var(--color-forest-green-800),var(--color-forest-green-900));color:var(--color-gold-100);transform:rotateY(180deg);box-shadow:0 15px 35px -10px rgba(0,0,0,.2)}.hint-label{font-family:Cinzel,serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-gold-700);margin-bottom:1rem}.question-text{color:var(--color-gray-800);font-size:1.15rem;line-height:1.4;margin:0}.answer-text{font-family:Cinzel,cursive;font-size:1.1rem;line-height:1.5;margin:0}.lodging-grid{display:grid;grid-template-columns:repeat(1,1fr);grid-gap:2rem;gap:2rem;margin-top:3rem}@media (min-width:768px){.lodging-grid{grid-template-columns:repeat(3,1fr)}}.hotel-card{background:white;border-radius:1rem;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,.05);border:1px solid rgba(184,134,11,.1);display:flex;flex-direction:column;transition:transform .3s ease}.hotel-card:hover{transform:translateY(-5px)}.featured-card{border:2px solid var(--color-gold-500)}.hotel-image-wrapper{position:relative;height:200px;width:100%;overflow:hidden}.hotel-image{width:100%;height:100%;object-fit:cover}.hotel-badge{position:absolute;top:1rem;left:1rem;background:var(--color-gold-700);color:white;padding:.25rem .75rem;border-radius:2rem;font-size:.7rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.hotel-info{padding:1.5rem;text-align:left;flex-grow:1;display:flex;flex-direction:column}.hotel-name{font-size:1.25rem;color:var(--color-forest-green-900);margin-bottom:.25rem}.hotel-distance{font-size:.75rem;text-transform:uppercase;color:var(--color-gold-700);font-weight:700;margin-bottom:1rem;letter-spacing:.05em}.hotel-description{font-size:1rem;color:var(--color-gray-600);margin-bottom:1.5rem;line-height:1.4}.hotel-link{margin-top:auto;color:var(--color-forest-green-700);text-decoration:none;font-weight:700;font-size:1rem;border-bottom:2px solid var(--color-gold-200);align-self:flex-start;transition:all .2s ease}.hotel-link:hover{border-bottom-color:var(--color-forest-green-700);color:var(--color-forest-green-900)}