:root{--color-primary: #a8d5a2;--color-primary-dark: #4a7c59;--color-primary-light: #c5e8c0;--color-background: #faf8f5;--color-text: #4a5568;--color-text-light: #6b7280;--color-white: #ffffff;--color-accent: #d4a574;--font-heading: "Playfair Display", Georgia, serif;--font-body: "Lato", "Helvetica Neue", sans-serif;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--transition: all .3s ease}[data-theme=dark]{--color-primary: #7cb377;--color-primary-dark: #a8d5a2;--color-primary-light: #3d5a3a;--color-background: #1a1d1a;--color-text: #e5e7eb;--color-text-light: #9ca3af;--color-white: #242824;--color-accent: #d4a574;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5)}[data-theme=dark] .footer{background-color:#2d3a2d;color:#fff}[data-theme=dark] .footer-names,[data-theme=dark] .footer-date,[data-theme=dark] .footer-heart,[data-theme=dark] .footer-links a{color:#fff}[data-theme=dark] .form-input,[data-theme=dark] .form-textarea{background-color:#2d3a2d;border-color:#4a5a4a;color:var(--color-text)}[data-theme=dark] .form-input::placeholder,[data-theme=dark] .form-textarea::placeholder{color:var(--color-text-light)}[data-theme=dark] .page-header{background:linear-gradient(135deg,#1a1d1a,#2d3a2d,#3d5a3a)}[data-theme=dark] .page-header:before{opacity:.05}[data-theme=dark] .hero{background:linear-gradient(135deg,var(--color-background) 0%,#2d3a2d 100%)}[data-theme=dark] .timeline-content:before{border-left-color:var(--color-white)}[data-theme=dark] .timeline-item:nth-child(2n) .timeline-content:before{border-right-color:var(--color-white)}[data-theme=dark] .timeline-dot{border-color:var(--color-background)}[data-theme=dark] .alert-success{background-color:#1d4a32;color:#a8d5a2;border-color:#3d6b4a}[data-theme=dark] .alert-error{background-color:#4a1d1d;color:#fecaca;border-color:#6b3d3d}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--color-text);background-color:var(--color-background);min-height:100vh;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E")}.section{position:relative;overflow:hidden}.section:before{content:"";position:absolute;top:-50px;right:-50px;width:200px;height:200px;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%234A7C59' d='M50 5 C20 20, 10 50, 50 95 C90 50, 80 20, 50 5 M50 20 C35 35, 30 55, 50 80 C70 55, 65 35, 50 20'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;transform:rotate(15deg);pointer-events:none}.section:nth-child(odd):before{right:auto;left:-50px;transform:rotate(-15deg) scaleX(-1)}.section-alt:after{content:"";position:absolute;bottom:-30px;left:10%;width:150px;height:150px;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%234A7C59' d='M10 90 Q50 10 90 90 Q50 70 10 90'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;pointer-events:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400;line-height:1.3;color:var(--color-primary-dark)}h1{font-size:clamp(2.5rem,5vw,4rem)}h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-bottom:1.5rem}h3{font-size:clamp(1.3rem,2vw,1.8rem);margin-bottom:1rem}p{margin-bottom:1rem}a{color:var(--color-primary-dark);text-decoration:none;transition:var(--transition)}a:hover{color:var(--color-primary)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.nav{background-color:var(--color-white);box-shadow:var(--shadow-sm);position:fixed;top:0;left:0;right:0;z-index:1000}.nav-container{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;max-width:1200px;margin:0 auto}.nav-actions{display:flex;align-items:center;gap:.5rem}.nav-logo{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-primary-dark);font-weight:400}.nav-menu{display:flex;list-style:none;gap:2rem}.nav-link{font-size:.95rem;color:var(--color-text);padding:.5rem 0;position:relative}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--color-primary);transition:var(--transition)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-transparent{background-color:transparent;box-shadow:none;transition:background-color .3s ease,box-shadow .3s ease}.nav-transparent .nav-logo,.nav-transparent .nav-link{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.nav-transparent .nav-link:after{background-color:#fff}.nav-transparent .nav-toggle span{background-color:#fff;box-shadow:0 1px 2px #0000004d}.nav-transparent.nav-scrolled{background-color:var(--color-white);box-shadow:var(--shadow-sm)}.nav-transparent.nav-scrolled .nav-logo{color:var(--color-primary-dark);text-shadow:none}.nav-transparent.nav-scrolled .nav-link{color:var(--color-text);text-shadow:none}.nav-transparent.nav-scrolled .nav-link:after{background-color:var(--color-primary)}.nav-transparent.nav-scrolled .nav-toggle span{background-color:var(--color-primary-dark);box-shadow:none}.nav-link:hover,.nav-link.active{color:var(--color-primary-dark)}.theme-toggle{background:none;border:none;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--transition);color:var(--color-text)}.theme-toggle:hover{background-color:var(--color-primary-light)}.theme-toggle svg{width:22px;height:22px;transition:var(--transition)}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}.nav-transparent .theme-toggle{color:#fff}.nav-transparent .theme-toggle:hover{background-color:#fff3}.nav-transparent.nav-scrolled .theme-toggle{color:var(--color-text)}.nav-transparent.nav-scrolled .theme-toggle:hover{background-color:var(--color-primary-light)}.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:.5rem}.nav-toggle span{display:block;width:25px;height:2px;background-color:var(--color-primary-dark);transition:var(--transition)}.hero{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem 4rem;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-primary-light) 100%);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--color-primary-light) 0%,transparent 70%);opacity:.3;animation:float 20s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(30px,30px) rotate(5deg)}}.hero-content{position:relative;z-index:1}.hero-subtitle{font-size:1.1rem;color:var(--color-text-light);margin-bottom:1rem;letter-spacing:2px;text-transform:uppercase}.hero-title{font-size:clamp(3rem,8vw,6rem);color:var(--color-primary-dark);margin-bottom:1.5rem;font-weight:400}.hero-date{font-family:var(--font-heading);font-size:clamp(1.5rem,3vw,2rem);color:var(--color-primary-dark);margin-bottom:.5rem}.hero-location{font-size:1.1rem;color:var(--color-text-light);margin-bottom:2rem}.hero-divider{width:80px;height:2px;background-color:var(--color-primary);margin:2rem auto}.countdown{display:flex;justify-content:center;gap:2rem;margin-top:3rem}.countdown-item{text-align:center}.countdown-number{font-family:var(--font-heading);font-size:clamp(2rem,4vw,3rem);color:var(--color-primary-dark);display:block}.countdown-label{font-size:.85rem;color:var(--color-text-light);text-transform:uppercase;letter-spacing:1px}.section{padding:5rem 0}.section-alt{background-color:var(--color-white)}.section-header{text-align:center;margin-bottom:3rem}.section-header h2{position:relative;display:inline-block}.section-header h2:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:60px;height:2px;background-color:var(--color-primary)}.page-header{padding:8rem 0 4rem;text-align:center;background:linear-gradient(135deg,#3d5a3a,#4a7c59,#5a8a65);position:relative;overflow:hidden}.page-header:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M-10 300 Q30 250 25 200 Q20 150 40 100 Q60 50 50 0'/%3E%3Cpath d='M25 200 Q45 190 60 200'/%3E%3Cpath d='M40 100 Q60 95 70 105'/%3E%3Cpath d='M30 150 Q10 140 5 155'/%3E%3C/g%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M60 200 Q75 185 70 170 Q60 175 55 190 Q50 180 40 185 Q50 195 60 200z'/%3E%3Cpath d='M70 105 Q90 95 85 75 Q70 85 68 100 Q60 90 50 95 Q62 105 70 105z'/%3E%3Cpath d='M5 155 Q-15 145 -20 160 Q-5 165 5 155 Q-5 170 0 180 Q10 170 5 155z'/%3E%3Cpath d='M50 250 Q65 235 60 220 Q50 225 48 240 Q40 230 30 235 Q42 245 50 250z'/%3E%3Cpath d='M45 50 Q60 35 55 20 Q45 25 43 40 Q35 30 25 35 Q37 45 45 50z'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 250'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.5'%3E%3Cpath d='M75 250 Q60 200 70 150 Q80 100 65 50 Q55 20 60 0'/%3E%3Cpath d='M70 150 Q50 145 40 155'/%3E%3Cpath d='M65 80 Q85 70 95 80'/%3E%3C/g%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M40 155 Q25 145 20 160 Q35 165 40 155 Q30 170 35 180 Q45 168 40 155z'/%3E%3Cpath d='M95 80 Q110 70 105 55 Q92 65 95 80 Q105 90 100 100 Q90 88 95 80z'/%3E%3Cpath d='M72 200 Q85 185 80 170 Q70 178 72 190 Q62 182 55 188 Q65 198 72 200z'/%3E%3Cpath d='M58 30 Q45 20 40 35 Q52 40 58 30 Q50 45 55 52 Q62 42 58 30z'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 280'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.8'%3E%3Cpath d='M180 0 Q150 40 155 90 Q160 140 140 190 Q120 240 130 280'/%3E%3Cpath d='M155 90 Q135 85 125 95'/%3E%3Cpath d='M140 190 Q160 195 170 185'/%3E%3Cpath d='M148 140 Q128 150 120 140'/%3E%3C/g%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M125 95 Q110 85 105 100 Q118 105 125 95 Q115 110 120 120 Q130 108 125 95z'/%3E%3Cpath d='M170 185 Q185 175 180 160 Q168 170 170 185 Q180 195 175 205 Q165 193 170 185z'/%3E%3Cpath d='M120 140 Q105 135 100 150 Q115 152 120 140 Q110 155 115 165 Q125 153 120 140z'/%3E%3Cpath d='M135 240 Q120 230 115 245 Q128 250 135 240 Q125 255 130 265 Q140 253 135 240z'/%3E%3Cpath d='M160 50 Q175 40 170 25 Q158 35 160 50 Q170 58 165 68 Q155 58 160 50z'/%3E%3C/g%3E%3C/svg%3E");background-size:250px 100%,180px 85%,220px 95%;background-repeat:no-repeat,no-repeat,no-repeat;background-position:left top,180px top,right top;pointer-events:none}.page-header:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:40%;background:linear-gradient(to top,rgba(0,0,0,.15) 0%,transparent 100%);pointer-events:none}.page-header>*{position:relative;z-index:1}.page-header h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:1rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.page-header p{color:#ffffffe6;font-size:1.1rem;text-shadow:0 1px 2px rgba(0,0,0,.15)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.card{background-color:var(--color-white);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md);transition:var(--transition)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.card-icon{width:50px;height:50px;background-color:var(--color-primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;color:var(--color-primary-dark);font-size:1.5rem}.card h3{margin-bottom:.5rem}.card p{color:var(--color-text-light);margin-bottom:1rem}.card-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-primary-dark);font-weight:500}.card-link:hover{gap:.75rem}.accommodation-card{background-color:var(--color-white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:var(--transition);display:flex;flex-direction:column}.accommodation-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.accommodation-card-image{width:100%;height:180px;object-fit:cover;background-color:var(--color-primary-light)}.accommodation-card-content{padding:1.5rem;flex:1;display:flex;flex-direction:column}.accommodation-card-content h3{font-size:1.2rem;margin-bottom:.25rem}.accommodation-card-location{font-size:.9rem;color:var(--color-primary-dark);font-weight:500;margin-bottom:.75rem}.accommodation-card-description{color:var(--color-text-light);font-size:.95rem;margin-bottom:1rem;flex:1}.accommodation-card-price{font-size:.9rem;color:var(--color-text-light);margin-bottom:1rem}.accommodation-card-price strong{color:var(--color-primary-dark);font-size:1.1rem}.btn-book{display:inline-block;padding:.75rem 1.5rem;background-color:var(--color-primary-dark);color:var(--color-white);border-radius:var(--radius-md);font-weight:500;text-align:center;transition:var(--transition)}.btn-book:hover{background-color:#3d6b4a;color:var(--color-white);transform:translateY(-2px)}.search-links{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.search-link{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background-color:var(--color-white);border:2px solid var(--color-primary-dark);border-radius:var(--radius-md);color:var(--color-primary-dark);font-weight:500;transition:var(--transition)}.search-link:hover{background-color:var(--color-primary-dark);color:var(--color-white)}.search-link svg{width:20px;height:20px}.timeline{position:relative;max-width:800px;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:2px;height:100%;background-color:var(--color-primary-light)}.timeline-item{display:flex;justify-content:flex-end;padding-right:calc(50% + 30px);position:relative;margin-bottom:2rem}.timeline-item:nth-child(2n){justify-content:flex-start;padding-right:0;padding-left:calc(50% + 30px)}.timeline-content{background-color:var(--color-white);padding:1.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);max-width:350px;position:relative}.timeline-content:before{content:"";position:absolute;top:20px;right:-10px;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid var(--color-white)}.timeline-item:nth-child(2n) .timeline-content:before{right:auto;left:-10px;border-left:none;border-right:10px solid var(--color-white)}.timeline-time{font-family:var(--font-heading);font-size:1.2rem;color:var(--color-primary-dark);margin-bottom:.5rem}.timeline-title{font-weight:600;margin-bottom:.5rem}.timeline-dot{position:absolute;left:50%;transform:translate(-50%);width:16px;height:16px;background-color:var(--color-primary);border-radius:50%;border:3px solid var(--color-background);top:20px}.map-container{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);margin-top:2rem}.map-container iframe{width:100%;height:400px;border:none}.form{max-width:600px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}.form-input,.form-textarea{width:100%;padding:.875rem 1rem;border:1px solid #e5e7eb;border-radius:var(--radius-md);font-family:var(--font-body);font-size:1rem;transition:var(--transition);background-color:var(--color-white)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #a8d5a24d}.form-textarea{min-height:150px;resize:vertical}.btn{display:inline-block;padding:.875rem 2rem;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:1rem;font-weight:500;cursor:pointer;transition:var(--transition);text-align:center}.btn-primary{background-color:var(--color-primary-dark);color:var(--color-white)}.btn-primary:hover{background-color:#3d6b4a;transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:transparent;color:var(--color-primary-dark);border:2px solid var(--color-primary-dark)}.btn-secondary:hover{background-color:var(--color-primary-dark);color:var(--color-white)}.alert{padding:1rem 1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.alert-success{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.alert-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fecaca}.footer{background-color:var(--color-primary-dark);color:var(--color-white);padding:3rem 0;text-align:center;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E")}.footer:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.15) 100%)}.footer>*{position:relative;z-index:1}.footer .container{position:relative;z-index:1}.footer-names{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:.5rem}.footer-date{opacity:.8;margin-bottom:1.5rem}.footer-links{display:flex;justify-content:center;gap:2rem;list-style:none;margin-bottom:1.5rem}.footer-links a{color:var(--color-white);opacity:.8}.footer-links a:hover{opacity:1}.footer-heart{font-size:.9rem;opacity:.7}.leaf-decoration{position:absolute;opacity:.1;color:var(--color-primary-dark);font-size:8rem;z-index:0}.leaf-top-left{top:10%;left:5%;transform:rotate(-30deg)}.leaf-bottom-right{bottom:10%;right:5%;transform:rotate(150deg)}@media(max-width:768px){.hide-mobile{display:none}.section{padding:3rem 0}.section-header{margin-bottom:2rem}.section-indicator{padding:1rem 0 0}.scroll-indicator{bottom:10rem}.nav-menu{position:fixed;top:70px;left:0;right:0;background-color:var(--color-white);flex-direction:column;align-items:center;padding:2rem;gap:1rem;box-shadow:var(--shadow-md);transform:translateY(-100%);opacity:0;visibility:hidden;transition:var(--transition)}.nav-menu.active{transform:translateY(0);opacity:1;visibility:visible}.nav-menu .nav-link{color:var(--color-text)!important;text-shadow:none!important}.nav-menu .nav-link:hover,.nav-menu .nav-link.active{color:var(--color-primary-dark)!important}.nav-menu .nav-link:after{background-color:var(--color-primary)!important}.nav-toggle{display:flex}.nav-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.countdown{gap:1rem}.timeline:before{left:20px}.timeline-item,.timeline-item:nth-child(2n){padding-left:50px;padding-right:0;justify-content:flex-start}.timeline-content:before,.timeline-item:nth-child(2n) .timeline-content:before{left:-10px;right:auto;border-left:none;border-right:10px solid var(--color-white)}.timeline-dot{left:20px}}@media(max-width:480px){.hero{padding-top:4rem;align-items:flex-start;padding-bottom:2rem}.hero-content{margin-top:2rem;text-align:center}.hero-title{font-size:2rem}.hero-date{font-size:1.6rem}.hero-location{font-size:1.2rem}.countdown{flex-wrap:wrap;justify-content:center}.countdown-item{flex:0 0 40%}}.section-indicator{text-align:center;padding:2rem 0 0;color:var(--color-primary-dark)}.section-indicator p{font-size:.95rem;color:var(--color-text-light);margin-bottom:.5rem}.section-indicator svg{opacity:.6;animation:bounce-small 1.5s infinite}@keyframes bounce-small{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:10;color:#fffc;animation:bounce 2s infinite;transition:var(--transition)}.scroll-indicator:hover{color:#fff}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.text-center{text-align:center}.mt-2{margin-top:2rem}.mb-2{margin-bottom:2rem}.hidden{display:none}#three-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}#three-container canvas{display:block}@media(max-width:768px){#three-container{display:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-primary-light) 100%);padding:2rem}.login-container{width:100%;max-width:420px;position:relative}.login-card{background-color:var(--color-white);border-radius:var(--radius-lg);padding:3rem 2.5rem;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:2rem}.login-title{font-family:var(--font-heading);font-size:3rem;color:var(--color-primary-dark);margin-bottom:.5rem;font-weight:400}.login-subtitle{font-size:1rem;color:var(--color-text-light);margin-bottom:0}.login-divider{width:60px;height:2px;background-color:var(--color-primary);margin:1.5rem auto 0}.login-form{margin-bottom:1.5rem}.login-form .form-input{text-align:center;font-size:1.1rem;padding:1rem}.login-form .form-input.error{border-color:#ef4444;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.login-error{color:#ef4444;font-size:.9rem;text-align:center;margin-bottom:1rem;opacity:0;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease}.login-error.visible{opacity:1;transform:translateY(0)}.login-btn{width:100%;padding:1rem;font-size:1.1rem}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-help{text-align:center;font-size:.9rem;color:var(--color-text-light);margin:0}.login-theme-toggle{position:absolute;bottom:-60px;left:50%;transform:translate(-50%);background-color:var(--color-white);box-shadow:var(--shadow-md);border-radius:50%;padding:.75rem}.login-theme-toggle:hover{background-color:var(--color-primary-light)}@media(max-width:480px){.login-card{padding:2rem 1.5rem}.login-title{font-size:2.5rem}}
