@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap";:root{color:#16130e;font-synthesis:none;text-rendering:optimizelegibility;--black:#16130e;--gold:#d8a63a;--gold-soft:#f3d17d;--ivory:#fffaf1;--cream:#f5ecdc;--green:#58746d;--coral:#bd735f;--coastal:#dbe9e3;--line:#16130e24;--shadow:0 24px 70px #16130e29;--surface:#fff8ebb8;--hero-text-align:left;--hero-content-width:860px;background:#fffaf1;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}.gate{background:linear-gradient(#16130e8c,#16130e61),radial-gradient(circle at 20% 20%,#f3d17da6,#0000 32%),linear-gradient(135deg,#17130f 0%,#58746d 48%,#d8a63a 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.gate-panel{width:min(100%,430px);box-shadow:var(--shadow);background:#fff8ebeb;border:1px solid #fff8eb38;border-radius:8px;padding:34px}.site-shell[data-variant=sunset-editorial]{--black:#211510;--gold:#d98f4e;--gold-soft:#f0c78d;--ivory:#fff3e8;--cream:#f4dfcc;--green:#7a6455;--coral:#c66b4f;--coastal:#f3d0b9;--surface:#fff3e8c7;--hero-text-align:center;--hero-content-width:980px}.site-shell[data-variant=garden-party]{--black:#203128;--gold:#b78a3d;--gold-soft:#e4d1a1;--ivory:#fbfaef;--cream:#eef1df;--green:#4c6c55;--coral:#98765d;--coastal:#d9e7d6;--surface:#fbfaefc7}.site-shell[data-variant=midnight-formal]{--black:#0e1117;--gold:#d2a14a;--gold-soft:#f3cf91;--ivory:#f3efe8;--cream:#171d25;--green:#85909e;--coral:#cfb07d;--coastal:#1e2530;--line:#f3efe829;--shadow:0 24px 70px #00000059;--surface:#181f28d1;--hero-text-align:center;--hero-content-width:920px}.site-shell[data-variant=yearbook-modern]{--black:#1c1720;--gold:#f08f3d;--gold-soft:#ffd08e;--ivory:#fff8ef;--cream:#f5e8f3;--green:#53718b;--coral:#ea6d84;--coastal:#dce9fb;--surface:#fff8efd6}.gate-mark{width:46px;height:46px;color:var(--black);background:var(--gold-soft);border-radius:50%;place-items:center;margin-bottom:22px;display:grid}.gate h1,.hero h1,.section h2{letter-spacing:0;margin:0;font-family:Playfair Display,Georgia,serif;line-height:.95}.gate h1{font-size:clamp(3rem,16vw,5.5rem)}.gate-copy{color:#16130eb8;margin:18px 0 26px;line-height:1.6}.password-form,.rsvp-form{gap:16px;display:grid}label{letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--black);background:#ffffffb8;border-radius:8px;padding:13px 14px}textarea{resize:vertical}button,.hero-actions a{min-height:48px;color:var(--ivory);background:var(--black);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 22px;font-weight:800;text-decoration:none;display:inline-flex}button:disabled{cursor:wait;opacity:.7}.form-error,.form-status.error{color:#9b2c2c;margin:0;font-size:.9rem}.form-status.success{color:#2f6f43;margin:0;font-weight:700}.eyebrow{color:var(--coral);letter-spacing:.18em;text-transform:uppercase;margin:0 0 12px;font-size:.75rem;font-weight:800}.hero{min-height:96svh;color:var(--ivory);background:var(--black);align-items:end;padding:28px;display:grid;position:relative;overflow:hidden}.hero-media{background:linear-gradient(#16130e29,#16130ecc),url(/photos/beach-sunset.jpeg) 50% 34%/cover;position:absolute;inset:0;transform:scale(1.02)}.hero-content{z-index:1;width:min(100%, var(--hero-content-width));text-align:var(--hero-text-align);padding-bottom:12vh;position:relative}.hero .eyebrow{color:var(--gold-soft)}.hero h1{max-width:790px;font-size:clamp(4rem,16vw,8.8rem)}.hero p:not(.eyebrow){color:#fff8ebe0;max-width:580px;margin:22px 0 0;font-size:clamp(1rem,2vw,1.25rem);line-height:1.65}.site-shell[data-variant=sunset-editorial] .hero h1,.site-shell[data-variant=midnight-formal] .hero h1,.site-shell[data-variant=sunset-editorial] .hero p:not(.eyebrow),.site-shell[data-variant=midnight-formal] .hero p:not(.eyebrow){margin-inline:auto}.site-shell[data-variant=sunset-editorial] .hero-actions,.site-shell[data-variant=midnight-formal] .hero-actions{justify-content:center}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero-actions .secondary-link{color:var(--ivory);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff8eb14;border:1px solid #fff8eb6b}.scroll-cue{z-index:1;width:42px;height:42px;color:var(--ivory);border:1px solid #fff8eb6b;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:28px;right:28px}.section{padding:72px 22px}.intro{background:linear-gradient(90deg, transparent 0 68%, #dbe9e3b8 68% 100%), var(--ivory);max-width:980px;margin:0 auto}.intro h2,.section-heading h2{max-width:820px;font-size:clamp(2.45rem,8vw,5.5rem)}.intro p:last-child{color:#16130ead;max-width:660px;margin:24px 0 0;font-size:1.08rem;line-height:1.8}.note-section{padding-top:0}.note-section-inner{background:linear-gradient(90deg, #f3d0b94d, transparent 58%), var(--ivory);width:min(100%,980px);margin:0 auto}.note-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.note-entry{border:1px solid var(--line);background:#ffffff9e;border-radius:4px;padding:36px 36px 28px;position:relative}.note-entry blockquote{border:none;margin:0;padding:0}.note-entry blockquote p{color:#16130ec7;margin:0;font-size:1.04rem;line-height:1.85}.note-footer{border-top:1px solid var(--line);align-items:baseline;gap:10px;margin-top:28px;padding-top:20px;display:flex}.note-name{color:var(--ink);font-family:Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:600}.note-label{letter-spacing:.1em;text-transform:uppercase;color:#16130e6b;font-size:.78rem}.details,.celebration-board{background:linear-gradient(180deg, #dbe9e373, transparent 280px), var(--cream)}.section-heading{width:min(100%,1080px);margin:0 auto 34px}.detail-grid,.message-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:min(100%,1080px);margin:0 auto;display:grid}.detail-card,.message-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:210px;padding:22px}.detail-card svg,.message-card svg,.backend-note svg{color:var(--gold)}.detail-card p{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:28px 0 8px;font-size:.78rem;font-weight:800}.detail-card h3{margin:0 0 12px;font-size:1.45rem}.detail-card-cta{min-height:44px;color:var(--ivory);background:var(--black);border-radius:999px;justify-content:center;align-items:center;margin-top:12px;padding:0 18px;font-weight:800;text-decoration:none;display:inline-flex}.detail-card span,.message-card span,.backend-note{color:#16130e99;line-height:1.55}.parking-map{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(100%,1080px);margin:18px auto 0;overflow:hidden}.parking-map img{width:100%}.parking-map figcaption{color:#16130eb8;padding:16px 18px;font-weight:700;line-height:1.5}.gallery-section{background:var(--ivory)}.gallery-section .section-heading h2{max-width:900px}.gallery-slideshow{width:min(100%,1080px);margin:0 auto}.gallery-slide{background:var(--coastal);min-height:540px;box-shadow:var(--shadow);border-radius:8px;margin:0;overflow:hidden}.gallery-slide img{object-fit:cover;width:100%;height:100%}.gallery-controls{justify-content:center;gap:10px;margin-top:18px;display:flex}.gallery-control{border:1px solid var(--line);width:46px;min-width:46px;height:46px;min-height:46px;color:var(--black);background:var(--surface);box-shadow:none;padding:0}.gallery-control:hover{background:color-mix(in srgb, var(--surface) 72%, var(--coastal) 28%)}.variant-badge{color:#fff8ebe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c0a0838;border:1px solid #fff8eb47;border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:8px 12px;font-size:.82rem;display:inline-flex}.variant-badge strong{font-size:.9rem}.gate .variant-badge{color:#16130eb8;background:#ffffff9e;border-color:#16130e1a;margin-bottom:22px}.variant-chooser{background:var(--cream)}.variant-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;width:min(100%,1080px);margin:0 auto;display:grid}.variant-link{border:1px solid var(--line);min-height:120px;color:var(--black);background:var(--surface);border-radius:8px;gap:8px;padding:18px;text-decoration:none;display:grid}.variant-link span{color:#16130e9e;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:800}.variant-link strong{font-size:1.15rem;line-height:1.2}.variant-link.is-active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.floating-rsvp-button{z-index:20;min-height:52px;color:var(--ivory);background:var(--black);border-radius:999px;align-items:center;gap:10px;padding:0 18px;font-weight:800;text-decoration:none;display:inline-flex;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 42px #16130e3d}.floating-rsvp-button:hover{transform:translateY(-1px)}.site-shell[data-variant=midnight-formal] .variant-link span,.site-shell[data-variant=midnight-formal] .detail-card span,.site-shell[data-variant=midnight-formal] .message-card span,.site-shell[data-variant=midnight-formal] .backend-note,.site-shell[data-variant=midnight-formal] .parking-map figcaption,.site-shell[data-variant=midnight-formal] .intro p:last-child{color:#f3efe8b8}.site-shell[data-variant=midnight-formal] .details,.site-shell[data-variant=midnight-formal] .celebration-board,.site-shell[data-variant=midnight-formal] .variant-chooser{background:linear-gradient(180deg, #d2a14a14, transparent 280px), var(--cream)}.site-shell[data-variant=midnight-formal] .section,.site-shell[data-variant=midnight-formal],.site-shell[data-variant=midnight-formal] .section-heading h2,.site-shell[data-variant=midnight-formal] .intro h2,.site-shell[data-variant=midnight-formal] .detail-card h3,.site-shell[data-variant=midnight-formal] .message-card p,.site-shell[data-variant=midnight-formal] .variant-link{color:var(--ivory)}.site-shell[data-variant=midnight-formal] .gallery-control{color:var(--ivory);background:#181f28d1;border-color:#f3efe829}.site-shell[data-variant=midnight-formal] .floating-rsvp-button{color:var(--black);background:var(--gold-soft);box-shadow:0 18px 42px #00000059}.rsvp{width:min(100%,860px);margin:0 auto}.rsvp .section-heading{margin-inline:0}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{gap:8px;display:grid}.checkbox-field{letter-spacing:0;text-transform:none;align-items:flex-start;gap:10px;font-size:.88rem;font-weight:600;line-height:1.45;display:flex}.checkbox-field input{width:18px;height:18px;margin-top:2px}.rsvp-form button{gap:8px;width:fit-content}.message-card p{margin:24px 0 20px;font-family:Playfair Display,Georgia,serif;font-size:1.55rem;line-height:1.25}.message-card span{font-weight:800}.backend-note{align-items:center;gap:8px;width:min(100%,1080px);margin:20px auto 0;font-size:.94rem;display:flex}@media (width<=820px){.hero{min-height:94svh;padding:22px}.hero-content{padding-bottom:16vh}.detail-grid,.message-grid,.variant-grid{grid-template-columns:1fr}.note-columns{grid-template-columns:1fr;gap:28px}.detail-card,.message-card{min-height:auto}.gallery-slide{min-height:360px}}@media (width<=560px){.section{padding:58px 18px}.gate-panel{padding:26px}.hero-actions a,.hero-actions{width:100%}.form-row{grid-template-columns:1fr}.scroll-cue{display:none}.floating-rsvp-button{min-height:50px;padding:0 16px;bottom:16px;right:16px}}
