:root{--navy:#1f3261;--navy-deep:#16244a;--blue:#2c5fd6;--blue-bright:#4a7dff;--blue-soft:#eef3fd;--gold:#b6862a;--gold-bright:#d8a94e;--gold-soft:#fdf8ee;--paper:#eef1f6;--white:#ffffff;--ink:#1f3261;--body:#3d4a63;--muted:#7a869c;--line:#e3e8f2;--radius:16px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--paper);color:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased}section[id]{scroll-margin-top:72px}.wrap{max-width:1080px;margin:0 auto;padding:0 24px}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes glowPulse{0%,to{box-shadow:0 0 0 0 rgba(216,169,78,.45)}50%{box-shadow:0 0 0 10px rgba(216,169,78,0)}}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.wordmark{font-size:13px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--navy);text-decoration:none}.topbar .btn{padding:10px 22px;font-size:14px}.btn{display:inline-block;border:0;cursor:pointer;font-family:var(--font);font-size:16px;font-weight:700;padding:16px 36px;border-radius:12px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn-primary{background:linear-gradient(135deg,var(--blue) 0,var(--blue-bright) 100%);color:var(--white);box-shadow:0 8px 22px rgba(44,95,214,.42)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(44,95,214,.5);filter:brightness(1.05)}.btn-gold{background:linear-gradient(135deg,var(--gold) 0,var(--gold-bright) 100%);color:var(--white);box-shadow:0 8px 22px rgba(182,134,42,.45)}.btn-gold:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(182,134,42,.55);filter:brightness(1.06)}.btn-ghost{background:rgba(255,255,255,.08);color:var(--white);border:2px solid rgba(255,255,255,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.16);transform:translateY(-3px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.hero{background:radial-gradient(900px 520px at 12% -12%,rgba(74,125,255,.4),transparent 62%),radial-gradient(760px 460px at 88% 112%,rgba(216,169,78,.32),transparent 62%),linear-gradient(160deg,rgba(22,36,74,.92) 0,rgba(31,50,97,.94) 55%,rgba(22,36,74,.97) 100%),url(/venue-hero.jpg) 50% /cover no-repeat,var(--navy-deep);color:var(--white);text-align:center;padding:92px 24px 78px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:5px;background:linear-gradient(90deg,var(--gold),var(--gold-bright),var(--blue-bright),var(--gold))}.badge{display:inline-block;background:linear-gradient(135deg,var(--gold) 0,var(--gold-bright) 100%);color:var(--white);font-size:12px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;padding:9px 24px;border-radius:999px;animation:fadeUp .7s ease both,glowPulse 2.6s ease 1.2s infinite}.hero h1{font-size:clamp(36px,6.4vw,62px);line-height:1.08;font-weight:800;letter-spacing:-.02em;margin:28px auto 18px;max-width:780px;animation:fadeUp .7s ease .12s both}.grad-text{background:linear-gradient(92deg,var(--gold-bright) 0,#f3d493 45%,var(--gold-bright) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .sub{font-size:clamp(16px,2.4vw,19px);color:#c9d4ec;max-width:640px;margin:0 auto 38px;animation:fadeUp .7s ease .22s both}.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;animation:fadeUp .7s ease .32s both}.detail-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;max-width:900px;margin:56px auto 0;animation:fadeUp .7s ease .42s both}.detail-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:20px 14px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .18s ease,border-color .18s ease,background .18s ease}.detail-card:hover{transform:translateY(-4px);border-color:rgba(216,169,78,.6);background:rgba(255,255,255,.12)}.detail-card .ico{font-size:24px;margin-bottom:8px}.detail-card .k{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gold-bright);margin-bottom:6px}.detail-card .v{font-size:15px;font-weight:700;color:var(--white)}section{padding:76px 0}.section-head{text-align:center;max-width:640px;margin:0 auto 46px}.kicker{display:inline-block;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;padding:7px 18px;border-radius:999px;margin-bottom:16px}.section-head h2{font-size:clamp(28px,4.2vw,38px);color:var(--ink);line-height:1.18;letter-spacing:-.01em;margin-bottom:0}.section-head h2:after{content:"";display:block;width:64px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--gold),var(--gold-bright));margin:16px auto 14px}.section-head p{color:var(--muted);font-size:16px}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}.card{background:var(--white);border-radius:var(--radius);padding:28px 22px 24px;border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--blue-bright));transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.card:nth-child(2n):before{background:linear-gradient(90deg,var(--gold),var(--gold-bright))}.card:hover{transform:translateY(-6px);box-shadow:0 18px 38px rgba(31,50,97,.14);border-color:transparent}.card:hover:before{transform:scaleX(1)}.card .icon{width:54px;height:54px;display:flex;align-items:center;justify-content:center;font-size:26px;border-radius:14px;margin-bottom:14px;background:linear-gradient(135deg,var(--blue-soft),#dce7fb)}.card:nth-child(2n) .icon{background:linear-gradient(135deg,var(--gold-soft),#f6e8c8)}.card h3{font-size:16px;color:var(--ink);margin-bottom:6px}.card p{font-size:13.5px;color:var(--muted);line-height:1.55}.band{background:radial-gradient(560px 300px at 90% -20%,rgba(74,125,255,.35),transparent 60%),radial-gradient(420px 260px at 0 120%,rgba(216,169,78,.25),transparent 60%),linear-gradient(135deg,var(--navy) 0,#24407e 100%);color:var(--white);border-radius:20px;padding:48px 44px;display:grid;grid-template-columns:1fr auto;grid-gap:32px;gap:32px;align-items:center;box-shadow:0 20px 46px rgba(31,50,97,.28)}.band h3{font-size:25px;margin-bottom:8px}.band p{color:#c9d4ec;font-size:15px;max-width:560px}.band .stats{display:flex;gap:38px}.stat{text-align:center}.stat .n{font-size:42px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--gold-bright) 0,#f3d493 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.stat .l{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#c9d4ec}.venue-grid{display:grid;grid-template-columns:1fr 1.35fr;grid-gap:22px;gap:22px;align-items:stretch}.venue-info{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px 30px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 30px rgba(31,50,97,.07)}.venue-info h3{font-size:22px;color:var(--ink);margin-bottom:4px}.venue-info .addr{font-size:14.5px;color:var(--muted);margin-bottom:18px}.venue-info ul{list-style:none;display:grid;grid-gap:11px;gap:11px}.venue-info li{font-size:14.5px;color:var(--body);padding-left:30px;position:relative}.venue-info li:before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--white);background:linear-gradient(135deg,var(--gold),var(--gold-bright))}.venue-info .map-link{margin-top:22px;font-size:14px;font-weight:700;color:var(--blue);text-decoration:none}.venue-info .map-link:hover{text-decoration:underline}.venue-photos{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.venue-photos img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);display:block;min-height:150px;transition:transform .25s ease,box-shadow .25s ease}.venue-photos img:hover{transform:scale(1.025);box-shadow:0 16px 34px rgba(31,50,97,.2)}.venue-photos img:first-child{grid-column:1/-1;max-height:260px}.rsvp-section{background:radial-gradient(720px 400px at 100% 0,rgba(74,125,255,.07),transparent 60%),radial-gradient(600px 380px at 0 100%,rgba(216,169,78,.08),transparent 60%),var(--white);border-top:1px solid var(--line)}.rsvp-shell{max-width:720px;margin:0 auto}.notice{background:linear-gradient(135deg,var(--gold-soft) 0,#fbf2dd 100%);border:1px solid #e8d9b8;border-radius:12px;padding:15px 20px;font-size:14px;color:#5a5240;margin-bottom:32px;text-align:center}.notice strong{color:var(--gold)}form .row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field{margin-bottom:20px}.field label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:7px}.field label .req{color:#c0392b}.field input,.field textarea{width:100%;font-family:var(--font);font-size:15px;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.field input:focus,.field textarea:focus{border-color:var(--blue);background:var(--white);box-shadow:0 0 0 4px rgba(44,95,214,.12)}.field textarea{resize:vertical;min-height:88px}.hint{font-size:12.5px;color:var(--muted);margin-top:6px}.chips{display:flex;gap:10px;flex-wrap:wrap}.chip{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:2px solid var(--line);background:var(--paper);color:var(--ink);font-size:14.5px;font-weight:700;padding:12px 26px;border-radius:12px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.chip:hover{border-color:var(--blue);transform:translateY(-2px)}.chip input{display:none}.chip.selected{border-color:transparent;background:linear-gradient(135deg,var(--blue) 0,var(--blue-bright) 100%);color:var(--white);box-shadow:0 8px 18px rgba(44,95,214,.35);transform:translateY(-2px)}.form-error{background:#fdeeee;border:1px solid #f0c4c4;color:#93312b;border-radius:12px;padding:13px 16px;font-size:14px;margin-bottom:18px}.submit-row{text-align:center;margin-top:28px}.submit-row .btn{width:100%;font-size:17px;padding:18px 36px}.fineprint{font-size:12.5px;color:var(--muted);text-align:center;margin-top:12px}.success{text-align:center;background:linear-gradient(160deg,var(--blue-soft) 0,#f6f9ff 60%,var(--gold-soft) 100%);border:1.5px solid #cddcf7;border-radius:20px;padding:56px 34px;animation:fadeUp .5s ease both}.success .big{font-size:52px;margin-bottom:12px}.success h3{font-size:26px;color:var(--ink);margin-bottom:10px}.success p{font-size:15px;color:var(--body);max-width:460px;margin:0 auto}.success .demo-note{margin-top:16px;font-size:12.5px;color:var(--muted)}footer{background:radial-gradient(700px 320px at 50% -30%,rgba(74,125,255,.18),transparent 65%),var(--navy-deep);color:#c9d4ec;text-align:center;padding:56px 24px}footer .tagline{font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:22px;color:var(--white);margin-bottom:16px}footer .fmark{font-size:12px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--white);margin-bottom:6px}footer a{color:#8fb0f0;text-decoration:none}footer .tiny{font-size:12px;color:#7a89ad;margin-top:14px}@media (max-width:900px){.detail-cards,.grid{grid-template-columns:repeat(2,1fr)}.band{grid-template-columns:1fr;text-align:center}.band .stats{justify-content:center}.venue-grid{grid-template-columns:1fr}}@media (max-width:560px){section{padding:54px 0}.grid,form .row{grid-template-columns:1fr}form .row{gap:0}.hero{padding:68px 20px 58px}.band{padding:36px 24px}.band .stats{gap:24px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}