@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Roboto:wght@300;400;500;700&display=swap";:root{--primary: #003c5a;--primary-dark: #122a5c;--accent: #e78a2a;--accent-alt: #ffa12d;--text-white: #ffffff;--bg-gradient: linear-gradient(135deg, #f2f9fc 0%, #e6f4f9 100%);--light-gray: #f5f5f5;--border-gray: #e9e9e9;--dark-gray: #1f212c;--deep-red: #62121a;--card-shadow: 0 8px 24px rgba(0, 60, 90, .12);--modal-shadow: 0 20px 50px rgba(0, 60, 90, .2)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:Roboto,Arial,sans-serif;background:var(--bg-gradient);color:var(--primary-dark);line-height:1.6;overflow-x:hidden}.app{max-width:1280px;margin:0 auto;padding:40px 20px;width:100%}header{text-align:center;margin-bottom:50px}.header-content{display:flex;flex-direction:column;align-items:center;gap:20px}.logo-container{width:clamp(70px,10vw,120px);height:clamp(70px,10vw,120px);display:flex;align-items:center;justify-content:center;margin:0 auto;overflow:hidden;border-radius:12px;box-shadow:0 4px 12px #0000001a}.logo{width:100%;height:100%;object-fit:contain}header h1{font-family:Playfair Display,Garet,serif;font-weight:900;font-size:clamp(1.5rem,5vw,2.8rem);color:var(--primary);letter-spacing:-.5px;line-height:1.2;max-width:100%;word-wrap:break-word}.promo-section{max-width:800px;margin:2rem auto 2.5rem;padding:1.75rem;background:linear-gradient(135deg,#f9fbfd,#fff);border-radius:16px;box-shadow:0 6px 20px #0000000f;text-align:center;transition:transform .3s ease,box-shadow .3s ease;animation:fadeInUp .8s ease-out;position:relative;overflow:hidden;width:100%}.promo-section:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014}.promo-section h2{font-size:clamp(1.2rem,3vw,1.6rem);font-weight:700;color:#036;margin-bottom:1rem;letter-spacing:-.5px}.promo-section p{font-size:clamp(.9rem,2vw,1.05rem);line-height:1.7;color:#333;margin-bottom:1rem;transition:color .2s ease}.promo-section p:last-child{font-weight:700;color:#036;margin-bottom:0;position:relative;padding-bottom:8px}.promo-section p:last-child:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:60%;height:3px;background:linear-gradient(90deg,transparent,#003366,transparent);animation:pulse 2s infinite ease-in-out;opacity:.6}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:translate(-50%) scale(1);opacity:.6}50%{transform:translate(-50%) scale(1.05);opacity:.9}to{transform:translate(-50%) scale(1);opacity:.6}}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:32px;width:100%}.event-card{background:#fff;border-radius:16px;overflow:visible;box-shadow:var(--card-shadow);transition:transform .3s ease,box-shadow .3s ease;cursor:pointer;display:flex;flex-direction:column;height:100%;position:relative;min-height:280px;width:100%}.event-card:hover{transform:translateY(-8px);box-shadow:0 12px 30px #003c5a2e}.event-card.sold-out{opacity:.8}.card-content{padding:50px 24px 20px;flex:1}.event-card h2{font-family:Playfair Display,serif;font-weight:700;font-size:clamp(1.2rem,3vw,1.6rem);color:var(--primary);margin-bottom:12px;line-height:1.3;word-wrap:break-word}.event-date{color:var(--accent);font-weight:700;margin-bottom:8px;font-size:clamp(.95rem,2vw,1.05rem)}.event-location{color:#5a6b7c;font-size:clamp(.85rem,2vw,.95rem);margin-bottom:16px}.event-desc{color:#4a5568;font-size:clamp(.9rem,2vw,1rem);line-height:1.7}.card-footer{padding:0 24px 24px}.register-btn{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-family:Roboto,sans-serif;font-weight:600;font-size:clamp(.95rem,2vw,1.05rem);cursor:pointer;transition:background .3s,transform .2s;min-height:48px}.register-btn:hover:not(:disabled){background:var(--accent-alt);transform:scale(1.02)}.register-btn:disabled{cursor:not-allowed}.urgency-badge{position:absolute;top:12px;left:50%;transform:translate(-50%);background:red;color:#fff;font-size:clamp(10px,2vw,12px);font-weight:700;padding:6px 12px;border-radius:20px;z-index:2;box-shadow:0 2px 6px #0003;font-family:Roboto,sans-serif;letter-spacing:-.2px;white-space:nowrap;max-width:calc(100% - 16px);text-align:center;line-height:1.3}.sold-out-banner{position:absolute;top:0;left:0;right:0;background:red;color:#fff;font-weight:700;text-align:center;padding:6px 8px;z-index:2;font-size:clamp(12px,2vw,14px);border-radius:16px 16px 0 0}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#122a5cbf;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:10px}.modal-wrapper{background:#fff;border-radius:20px;width:100%;max-width:520px;max-height:90vh;overflow:hidden;box-shadow:var(--modal-shadow);animation:modalSlideUp .4s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-banner{position:relative;width:100%;height:200px;overflow:hidden;border-radius:20px 20px 0 0;flex-shrink:0}.banner-image{width:100%;height:100%;object-fit:cover;display:block}.banner-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:10px}.banner-placeholder svg{width:48px;height:48px;stroke:#fff}.modal-close-banner{position:absolute;top:12px;right:12px;background:#00000080;color:#fff;width:36px;height:36px;border-radius:50%;border:none;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.modal-close-banner:hover{background:#000000b3}.modal-header{padding:20px;border-bottom:1px solid var(--border-gray);flex-shrink:0}.modal-title-wrapper{display:flex;flex-direction:column;gap:12px}.modal-header h3{font-family:Playfair Display,serif;font-weight:900;font-size:clamp(1.3rem,4vw,1.8rem);color:var(--primary);line-height:1.3;margin:0;word-wrap:break-word;overflow-wrap:break-word}.modal-datetime{display:flex;align-items:flex-start;gap:8px;background:#e78a2a1a;padding:10px 14px;border-radius:8px;font-size:clamp(.85rem,2vw,1.1rem);color:var(--accent);font-weight:600;letter-spacing:-.2px}.calendar-icon{font-size:clamp(1rem,2vw,1.2rem);color:var(--accent);flex-shrink:0;margin-top:2px}.datetime-text{font-family:Roboto,sans-serif;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;flex:1}.modal-scroll-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px}.modal-scroll-area::-webkit-scrollbar{width:6px}.modal-scroll-area::-webkit-scrollbar-track{background:#f9f9f9;border-radius:3px}.modal-scroll-area::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}.reg-form{padding:0;width:100%}.input-group{margin-bottom:20px}.input-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--primary-dark);font-size:clamp(.9rem,2vw,1rem)}.input-group input{width:100%;padding:14px;border:1px solid var(--border-gray);border-radius:12px;font-family:Roboto,sans-serif;font-size:clamp(.9rem,2vw,1rem);transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e78a2a33}.submit-btn{width:100%;padding:16px;background:var(--primary);color:#fff;border:none;border-radius:12px;font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(1rem,2vw,1.1rem);cursor:pointer;transition:background .3s,transform .2s;min-height:52px}.submit-btn:hover{background:var(--primary-dark);transform:translateY(-2px)}.success-panel{padding:40px 24px;text-align:center;overflow-y:auto}.checkmark{width:70px;height:70px;background:#e78a2a26;color:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:2.2rem;font-weight:700}.success-panel h2{font-family:Playfair Display,serif;font-weight:900;font-size:clamp(1.4rem,4vw,1.8rem);color:var(--primary);margin-bottom:16px}.success-panel p{color:#5a6b7c;margin-bottom:20px;font-size:clamp(.95rem,2vw,1.1rem);line-height:1.6}.event-details{margin:20px 0;padding:20px;background:#e78a2a0d;border-radius:12px}.event-details h3{color:var(--primary);margin-bottom:8px;font-size:clamp(1.1rem,3vw,1.3rem);word-wrap:break-word}.event-details p{font-size:clamp(.9rem,2vw,1rem)}.loading-screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center}.loading-text{margin-top:12px;font-size:16px;font-weight:600}.loading,.error,.no-events{text-align:center;padding:2rem;font-size:clamp(1rem,3vw,1.2rem);color:var(--primary)}.error{color:var(--deep-red)}@media(max-width:768px){.app{padding:24px 16px}header{margin-bottom:32px}.logo-container{width:90px;height:90px}.promo-section{margin:1.5rem auto 2rem;padding:1.5rem}.events-grid{gap:20px}.card-content{padding:40px 20px 16px}.card-footer{padding:0 20px 20px}.modal-banner{height:160px}.modal-header,.modal-scroll-area{padding:16px}.success-panel{padding:32px 20px}}@media(max-width:480px){html{font-size:14px}.app{padding:20px 12px}.logo-container{width:80px;height:80px}.promo-section{padding:1.25rem;margin:1.25rem auto 1.75rem}.events-grid{gap:16px}.card-content{padding:36px 16px 12px}.card-footer{padding:0 16px 16px}.register-btn{padding:12px;min-height:44px}.modal-overlay{padding:8px}.modal-wrapper{border-radius:16px;max-height:94vh}.modal-banner{height:140px;border-radius:16px 16px 0 0}.modal-close-banner{width:32px;height:32px;font-size:1.3rem;top:10px;right:10px}.modal-header{padding:14px}.modal-datetime{padding:8px 12px;gap:6px}.modal-scroll-area{padding:14px}.input-group{margin-bottom:16px}.input-group input{padding:12px}.submit-btn{padding:14px;min-height:48px}.success-panel{padding:28px 16px}.checkmark{width:60px;height:60px;font-size:2rem}.event-details{padding:16px}.urgency-badge{padding:3px 8px;top:6px}.sold-out-banner{padding:5px 8px}}@media(max-width:360px){html{font-size:13px}.app{padding:16px 10px}.logo-container{width:70px;height:70px}.promo-section{padding:1rem}.card-content{padding:32px 14px 10px}.card-footer{padding:0 14px 14px}.modal-header,.modal-scroll-area{padding:12px}.input-group input{padding:10px}}
