*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gold: #ffffff;--gold-light: #e8e0d4;--accent: #f5c542;--deep: #0a0510;--surface: rgba(6, 3, 12, .94);--surface-mid: rgba(10, 5, 18, .92);--card-bg: rgba(14, 7, 24, .92);--text: #f5f2ee;--text-muted: #cdc4b8;--accent-cyan: #22d3ee;--font-display: "Playfair Display", Georgia, serif;--font-body: "Inter", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);background:var(--deep);line-height:1.6;overflow-x:hidden}.venue-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/aws-quickbuild-challenge/venue.jpg) center 30% / cover no-repeat;filter:brightness(.55) saturate(1.15)}#stage-fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.page{position:relative;z-index:2}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:2rem;position:relative}.hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:180px;background:linear-gradient(to bottom,transparent,var(--deep));pointer-events:none}.hero-content{max-width:700px}.hero-pre{font-size:.9rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:#fff;margin-bottom:.5rem;text-shadow:0 2px 12px rgba(0,0,0,.9)}.hero h1{font-family:var(--font-display);font-size:clamp(2.8rem,9vw,6rem);font-weight:700;color:#fff;line-height:1.05;text-shadow:0 4px 60px rgba(0,0,0,.8)}.hero h1 .accent{color:var(--accent);font-style:italic}.hero-sub{font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400;color:#fff;margin-top:.75rem;letter-spacing:.08em;text-shadow:0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.6)}.cta-btn{display:inline-block;margin-top:2.5rem;padding:1rem 2.8rem;background:#fff;color:var(--deep);text-decoration:none;font-weight:600;font-size:1rem;letter-spacing:.04em;border-radius:3px}@media(prefers-reduced-motion:no-preference){.cta-btn{transition:transform .2s ease,box-shadow .2s ease}.cta-btn:hover,.cta-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 30px #d4a84359}}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-size:1.5rem;color:#fff;opacity:.5}@media(prefers-reduced-motion:no-preference){.scroll-hint{animation:bob 2.5s ease-in-out infinite}}@keyframes bob{0%,to{transform:translate(-50%) translateY(0);opacity:.5}50%{transform:translate(-50%) translateY(8px);opacity:.9}}.section{background:var(--surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.section-inner{max-width:1000px;margin:0 auto;padding:5rem 2rem}.section[id]{scroll-margin-top:2rem}.section-inner h2{font-family:var(--font-display);font-size:clamp(1.6rem,4vw,2.6rem);color:#fff;text-align:center;margin-bottom:.5rem}.section-intro{text-align:center;color:var(--text-muted);font-size:1rem;max-width:520px;margin:0 auto 3rem}.reveal{opacity:0;transform:translateY(30px)}@media(prefers-reduced-motion:no-preference){.reveal{transition:opacity .7s ease,transform .7s ease}}.reveal.visible{opacity:1;transform:translateY(0)}.package-card.reveal:nth-child(2){transition-delay:.1s}.package-card.reveal:nth-child(3){transition-delay:.2s}.event-card.reveal:nth-child(2){transition-delay:.05s}.event-card.reveal:nth-child(3){transition-delay:.1s}.event-card.reveal:nth-child(4){transition-delay:.15s}.event-card.reveal:nth-child(5){transition-delay:.2s}.event-card.reveal:nth-child(6){transition-delay:.25s}.package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.5rem}.package-card{position:relative;background:var(--card-bg);border:1px solid rgba(212,168,67,.12);border-radius:10px;padding:2rem 1.8rem;display:flex;flex-direction:column}@media(prefers-reduced-motion:no-preference){.package-card{transition:transform .2s ease,border-color .2s ease,opacity .7s ease}.package-card:hover{transform:translateY(-3px);border-color:#d4a84359}}.package-card.featured{border-color:#fff;box-shadow:0 0 30px #ffffff0a}.card-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--deep);font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.3rem 1rem;border-radius:20px}.card-header h3{font-family:var(--font-display);font-size:1.3rem;color:#fff}.card-header .price{font-size:2rem;font-weight:700;color:var(--accent);margin:.25rem 0 1rem}.package-card ul{list-style:none;margin-bottom:1.5rem;flex:1}.package-card li{padding:.35rem 0 .35rem 1.3rem;position:relative;color:var(--text-muted);font-size:.9rem}.package-card li:before{content:"✦";position:absolute;left:0;color:var(--accent);font-size:.65rem;top:.5rem}.card-btn{display:block;text-align:center;padding:.7rem 1.5rem;background:transparent;border:1.5px solid #fff;color:#fff;text-decoration:none;border-radius:3px;font-weight:600;font-size:.85rem;letter-spacing:.04em}@media(prefers-reduced-motion:no-preference){.card-btn{transition:background .2s ease,color .2s ease}.card-btn:hover,.card-btn:focus-visible{background:#fff;color:var(--deep)}}.events{background:var(--surface-mid)}.events-list{display:flex;flex-direction:column;gap:.75rem}.event-card{display:flex;align-items:center;gap:1.25rem;padding:1.1rem 1.5rem;background:var(--card-bg);border:1px solid rgba(212,168,67,.08);border-radius:8px}@media(prefers-reduced-motion:no-preference){.event-card{transition:border-color .2s ease,transform .2s ease,opacity .7s ease}.event-card:hover{border-color:#d4a8434d;transform:translate(4px)}}.event-date{display:flex;flex-direction:column;align-items:center;min-width:48px}.event-date .month{font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.event-date .day{font-size:1.6rem;font-weight:700;color:#fff;line-height:1}.event-info{flex:1}.event-info h3{font-family:var(--font-display);font-size:1.05rem;color:#fff;margin-bottom:.1rem}.event-info p{font-size:.82rem;color:var(--text-muted)}.event-time{font-size:.8rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.signup .section-inner{max-width:520px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:500px){.form-row{grid-template-columns:1fr}}.form-group{margin-bottom:1.1rem}.form-group label{display:block;margin-bottom:.3rem;color:var(--text-muted);font-size:.82rem}.form-group input,.form-group select{width:100%;padding:.75rem 1rem;background:#ffffff0a;border:1px solid rgba(212,168,67,.2);border-radius:4px;color:var(--text);font-size:.92rem;font-family:var(--font-body)}.form-group select option{background:#1a1020;color:#f5f2ee}.form-group input::placeholder{color:#b8a99066}.form-group input:focus,.form-group select:focus{outline:none;border-color:#fff;box-shadow:0 0 0 2px #ffffff26}.submit-btn{width:100%;padding:.85rem;margin-top:.5rem;background:#fff;color:var(--deep);border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;letter-spacing:.03em}@media(prefers-reduced-motion:no-preference){.submit-btn{transition:transform .2s ease,box-shadow .2s ease}.submit-btn:hover,.submit-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 24px #ffffff26}}.confirmation{text-align:center;padding:2.5rem 2rem;background:var(--card-bg);border:1px solid #fff;border-radius:10px}.confirm-icon{width:48px;height:48px;line-height:48px;border-radius:50%;background:#fff;color:var(--deep);font-size:1.5rem;font-weight:700;margin:0 auto 1rem}.confirmation h3{font-family:var(--font-display);color:#fff;font-size:1.4rem;margin-bottom:.3rem}.confirmation p{color:var(--text-muted)}.hidden{display:none}.field-error{color:#f87171;font-size:.8rem;margin-top:.35rem}.form-group input.invalid{border-color:#f87171;box-shadow:0 0 0 2px #f8717133}.stage-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;background:radial-gradient(ellipse at center,rgba(255,255,255,.6),rgba(34,211,238,.2),transparent 70%);opacity:0}@media(prefers-reduced-motion:no-preference){.stage-flash.active{animation:flash 1.2s ease-out forwards}}@keyframes flash{0%{opacity:1}15%{opacity:.8}to{opacity:0}}footer{background:var(--surface);text-align:center;padding:1.5rem 2rem;color:var(--text-muted);font-size:.75rem;border-top:1px solid rgba(212,168,67,.06)}.photo-credit{margin-top:.4rem;font-size:.7rem;opacity:.8}.photo-credit a{color:var(--text-muted);text-decoration:underline}:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}
