:root{--ink:#241f1b;--muted:#6f655d;--paper:#fffaf2;--panel:#ffffff;--line:#ded5c9;--sage:#6d7c5f;--wine:#5f7558;--lake:#376d7a;--gold:#b78644;--shadow:0 18px 55px rgba(36,31,27,0.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}.gate-shell,.site-shell{min-height:100vh}.topbar{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:rgba(255,250,242,.88);border-bottom:1px solid rgba(222,213,201,.8);display:flex;gap:20px;justify-content:space-between;left:0;padding:12px clamp(16px,4vw,48px);position:-webkit-sticky;position:sticky;right:0;top:0;z-index:20}.brand{font-family:Georgia,Times New Roman,serif;font-size:20px;letter-spacing:0;white-space:nowrap}.nav{align-items:center;display:flex;gap:14px}.nav-toggle{display:none}.nav-links,.nav-utilities{align-items:center;display:flex;gap:14px}.nav-utilities{margin-left:auto}.ghost-button,.icon-button,.language-switch button,.nav-link{border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:8px;text-decoration:none}.nav-link{color:var(--muted);font-size:14px;min-height:36px;padding:8px 12px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.nav-link:hover{border-color:rgba(183,134,68,.24);background:rgba(255,255,255,.72);color:var(--ink)}.nav-link.active{border-color:rgba(183,134,68,.5);background:rgba(183,134,68,.12);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(183,134,68,.18)}.nav-menu-item{position:relative}.nav-menu-header{align-items:center;display:inline-flex}.nav-link-with-menu{border-bottom-right-radius:6px;border-top-right-radius:6px;padding-right:8px}.nav-submenu-toggle{align-items:center;background:transparent;border:1px solid transparent;border-bottom-right-radius:999px;border-top-right-radius:999px;color:var(--muted);cursor:pointer;display:inline-flex;justify-content:center;min-height:36px;padding:7px 10px 7px 4px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.nav-link-with-menu.active+.nav-submenu-toggle,.nav-menu-header:hover .nav-submenu-toggle,.nav-submenu-toggle:focus-visible,.nav-submenu-toggle:hover{color:var(--ink)}.nav-link-with-menu:hover+.nav-submenu-toggle,.nav-menu-header:hover .nav-link-with-menu,.nav-menu-header:hover .nav-submenu-toggle{background:rgba(255,255,255,.72);border-color:rgba(183,134,68,.24)}.nav-link-with-menu.active+.nav-submenu-toggle{background:rgba(183,134,68,.12);border-color:rgba(183,134,68,.5);box-shadow:inset 0 0 0 1px rgba(183,134,68,.18)}.nav-link-chevron{flex:0 0 auto;transition:transform .16s ease}.nav-menu-item:focus-within .nav-link-chevron,.nav-menu-item:hover .nav-link-chevron{transform:rotate(180deg)}.nav-submenu{background:rgba(255,250,242,.98);border:1px solid rgba(222,213,201,.9);border-radius:8px;box-shadow:0 14px 38px rgba(36,31,27,.14);display:grid;grid-gap:4px;gap:4px;left:0;min-width:190px;opacity:0;padding:8px;pointer-events:none;position:absolute;top:100%;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.nav-menu-item:focus-within .nav-submenu,.nav-menu-item:hover .nav-submenu{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-submenu-link{border:1px solid transparent;border-radius:6px;color:var(--muted);font-size:14px;padding:9px 10px;text-decoration:none;white-space:nowrap}.nav-submenu-link.active,.nav-submenu-link:hover{background:rgba(183,134,68,.12);border-color:rgba(183,134,68,.28);color:var(--ink)}.nav-link-primary{background:var(--wine);border-color:var(--wine);color:#fffdf8;font-weight:700}.nav-link-primary:hover{background:#526649;border-color:#526649;color:#fffdf8}.nav-link-primary.active{background:var(--wine);border-color:var(--gold);color:#fffdf8;box-shadow:0 0 0 2px rgba(255,250,242,.9),0 0 0 4px rgba(183,134,68,.34)}.language-switch{display:flex;gap:4px}.ghost-button,.language-switch button{padding:8px 10px}.ghost-button:hover,.icon-button:hover,.language-switch button.active{border-color:var(--line);background:rgba(255,255,255,.72)}.hero{background-image:linear-gradient(90deg,rgba(22,20,18,.64),rgba(22,20,18,.2) 58%,rgba(22,20,18,.05)),url(/images/hero-wedding.png);background-position:50%;background-size:cover;color:#fffdf8;min-height:min(760px,calc(100vh - 64px));padding:clamp(80px,13vh,140px) clamp(20px,6vw,72px) 42px;position:relative}.hero.hero-compact{min-height:420px;padding-bottom:64px}.gate-hero{align-items:center;background-image:linear-gradient(90deg,rgba(22,20,18,.66),rgba(22,20,18,.2) 60%,rgba(22,20,18,.08)),url(/images/hero-wedding.png);background-position:50%;background-size:cover;display:flex;justify-content:center;min-height:calc(100vh - 64px);padding:clamp(20px,6vw,48px)}.gate-card{background:rgba(255,250,242,.96);border:1px solid rgba(222,213,201,.9);border-radius:8px;box-shadow:var(--shadow);max-width:620px;padding:clamp(24px,4vw,36px);width:min(100%,620px)}.gate-card h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,6vw,58px);line-height:1;margin:14px 0 16px}.gate-card p{color:var(--muted);font-size:18px;line-height:1.6;margin:0 0 24px}.gate-footer{align-items:center;color:var(--muted);display:inline-flex;gap:8px;margin-top:18px}.hero-content{max-width:720px}.hero-inner{align-items:center;display:flex;gap:clamp(28px,6vw,72px);justify-content:space-between}.hero-couple-wrap{border:2px solid rgba(255,253,248,.42);border-radius:999px;box-shadow:0 20px 40px rgba(22,20,18,.24);flex:0 0 auto;overflow:hidden;width:clamp(180px,24vw,320px)}.hero-couple-image{aspect-ratio:1;display:block;height:auto;object-fit:cover;width:100%}.eyebrow{color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero h1,.section h2{font-family:Georgia,Times New Roman,serif;letter-spacing:0}.hero h1{font-size:clamp(46px,8vw,92px);line-height:.95;margin:16px 0 20px}.hero p{font-size:clamp(18px,2vw,22px);line-height:1.55;margin:0 0 28px;max-width:620px}.admin-actions,.filter-row,.form-actions,.hero-actions{display:flex;flex-wrap:wrap;gap:12px}@media (max-width:820px){.hero-inner{align-items:flex-start;flex-direction:column-reverse}.hero-couple-wrap{width:min(220px,52vw)}}.form-actions{margin-top:12px}.danger-button,.primary-button,.secondary-button{align-items:center;border:0;border-radius:999px;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:44px;padding:12px 18px;text-decoration:none}.primary-button{background:var(--wine);color:white}.secondary-button{background:#fffdf8;color:var(--ink)}.event-link-button{align-items:center;background:#efe4d4;border:1px solid #c9b59f;border-radius:999px;color:#3b2b20;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:44px;padding:12px 18px;text-decoration:none}.event-link-button:hover{background:#e6d6c1}.event-card-image-wrap,.programme-image-wrap{margin:-22px -22px 16px;overflow:hidden}.event-card-image,.programme-image{aspect-ratio:16/9;display:block;height:auto;object-fit:cover;width:100%}.story-photo-card{overflow:hidden;padding:0}.story-photo{aspect-ratio:3/4;display:block;height:auto;object-fit:cover;width:100%}.danger-button{background:#fff0f1;color:#9f1d34}.next-peek{bottom:0;color:rgba(255,253,248,.85);font-size:14px;left:clamp(20px,6vw,72px);position:absolute;transform:translateY(50%)}.main{padding:58px 0 80px}.callout-actions,.card-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.section{padding:34px clamp(16px,5vw,60px)}.section-inner{margin:0 auto;max-width:1120px}.section h2{font-size:clamp(32px,4vw,50px);line-height:1.05;margin:0 0 18px}.lead{color:var(--muted);font-size:18px;line-height:1.6;max-width:820px}.admin-grid,.event-grid,.faq-grid,.info-grid,.stats-grid,.story-layout,.story-photo-grid,.story-timeline{display:grid;grid-gap:18px;gap:18px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.faq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr 1.5fr}.analytics-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-stack{display:grid;grid-gap:18px;gap:18px;margin-top:18px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.story-layout{grid-template-columns:repeat(3,minmax(0,1fr))}.story-timeline{grid-template-columns:repeat(5,minmax(0,1fr))}.story-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(36,31,27,.06);padding:22px}.event-card{min-height:260px}.section-card-header,.split-callout{align-items:center;display:flex;gap:24px;justify-content:space-between}.event-layout{display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.detail-stack,.event-content-stack,.region-grid{display:grid;grid-gap:18px;gap:18px}.region-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.region-map-layout{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(280px,.9fr)}.region-map-card{display:grid;grid-gap:18px;gap:18px}.region-map-copy h2{margin-bottom:12px}.region-map-frame{border:1px solid var(--line);border-radius:8px;min-height:420px;overflow:hidden}.region-map-frame iframe{border:0;display:block;height:100%;min-height:420px;width:100%}.region-map-link-button{align-self:flex-start;min-height:38px;padding:9px 16px}.region-map-actions{align-items:flex-start;margin-top:8px}.event-summary-card{align-self:start;position:-webkit-sticky;position:sticky;top:88px}.event-summary-row{display:grid;grid-gap:6px;gap:6px;margin-bottom:18px}.section-card{border-top:1px solid var(--line);margin-top:12px;padding-top:18px}.event-date{margin-bottom:18px}.event-countdown,.event-date{color:var(--wine);font-weight:800}.event-countdown{background:#f3eee5;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:12px;margin:0 0 16px;padding:6px 10px}.card h3,.event-card h3{font-size:24px;margin:0 0 12px}.color-swatch-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.color-swatch-chip{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;gap:8px;padding:6px 12px}.color-swatch{border:1px solid rgba(36,31,27,.1);border-radius:999px;display:inline-block;height:14px;width:14px}.story-timeline-item p{color:var(--ink);display:grid;font-size:15px;font-weight:600;grid-gap:8px;gap:8px;line-height:1.5;margin:0}.story-timeline-year{color:var(--wine);display:block;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.footer-list,.meta-list{color:var(--muted);display:grid;grid-gap:10px;gap:10px;list-style:none;margin:16px 0 0;padding:0}.footer-list li,.meta-list li{align-items:center;display:flex;gap:8px}.rsvp-band{background:#f3eee5;border-block:1px solid var(--line);margin-top:24px;padding:54px clamp(16px,5vw,60px)}.rsvp-page-band{margin-top:0}.admin-panel,.rsvp-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin:0 auto;max-width:940px;padding:clamp(20px,4vw,34px)}.contact-panel .form-grid{margin-top:20px}.rsvp-deadline{font-size:14px;font-weight:700;margin:10px 0 0}.hero .rsvp-deadline{color:#fffdf8;text-shadow:0 1px 2px rgba(22,20,18,.35)}.rsvp-panel .rsvp-deadline{color:var(--muted)}.rsvp-panel form{margin-top:20px}.form-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;grid-gap:7px;gap:7px}.input-with-action{align-items:center;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px}.input-with-action input{min-width:0}.input-action-button{align-items:center;background:#fffdf8;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;height:44px;justify-content:center;width:44px}.input-action-button:hover{color:var(--ink)}.field-hint{color:var(--muted);font-size:12px;line-height:1.5}.field.full{grid-column:1/-1}.field label,.field span,.label{color:var(--muted);font-size:13px;font-weight:700}input,select,textarea{background:#fffdf8;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:44px;padding:11px 12px;width:100%}textarea{min-height:96px;resize:vertical}.checkbox-row{align-items:center;display:flex;gap:10px}.radio-question{display:grid;grid-gap:10px;gap:10px}.radio-question-label{font-weight:600}.radio-row{display:flex;flex-wrap:wrap;gap:10px}.radio-option{align-items:center;border:1px solid var(--line);border-radius:999px;cursor:pointer;display:inline-flex;gap:8px;padding:8px 14px}.checkbox-indent{padding-left:28px}.event-fieldset{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;margin:0;padding:14px 16px 16px}.event-fieldset legend{color:var(--muted);font-size:13px;font-weight:700;padding:0 6px}.checkbox-row input{min-height:18px;width:18px}.radio-option input{min-height:16px;width:16px}.status{border-radius:8px;margin-top:16px;padding:12px 14px}.status.error{background:#fff0f1;color:#9f1d34}.status.success{background:#edf5e8;color:#335c2c}.footer{border-top:1px solid var(--line);color:var(--muted);padding:30px clamp(16px,5vw,60px)}.footer-signoff{white-space:pre-line}.admin-shell{padding:34px clamp(16px,5vw,60px) 80px}.admin-header{align-items:center;gap:18px;justify-content:space-between}.admin-header,.admin-subnav{display:flex;margin:0 auto 24px;max-width:1280px}.admin-subnav{gap:12px}.admin-subnav-link{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:8px 14px;text-decoration:none}.admin-subnav-link.active{background:#f7f1e8;color:var(--ink);font-weight:700}.table-wrap{border:1px solid var(--line);border-radius:8px;overflow:auto}table{border-collapse:collapse;min-width:980px;width:100%}td,th{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{background:#f7f1e8;color:var(--muted);text-transform:uppercase}.pill,th{font-size:12px}.pill{border-radius:999px;display:inline-flex;font-weight:700;padding:5px 9px}.pill.yes{background:#e8f2ea;color:#35633d}.pill.no{background:#f8e5e8;color:#813042}.pill.maybe{background:#fff3d7;color:#77500a}.compact{color:var(--muted);font-size:13px;white-space:pre-line}.apartment-meta{display:grid;grid-gap:10px;gap:10px;margin:16px 0 0}.apartment-meta div{align-items:center;display:flex;gap:12px;justify-content:space-between}.apartment-meta dt{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.apartment-meta dd{color:var(--ink);font-size:15px;font-weight:800;margin:0;text-align:right}.apartment-meta .apartment-meta-wide{align-items:flex-start;flex-direction:column;gap:4px}.apartment-meta .apartment-meta-wide dd{color:var(--muted);font-size:13px;font-weight:400;line-height:1.45;text-align:left}.link-list{display:grid;grid-gap:8px;gap:8px;list-style:none;margin:14px 0 0;padding:0}.link-list a{color:var(--lake);font-size:13px;font-weight:800}.link-note-tooltip{cursor:help;display:inline-flex;font-size:13px;line-height:1;margin-left:6px;outline:none;position:relative;vertical-align:middle}.tooltip-bubble{background:var(--ink);border-radius:6px;bottom:calc(100% + 8px);color:var(--paper);font-size:12px;font-weight:700;left:50%;line-height:1.2;opacity:0;padding:6px 8px;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(3px);transition:opacity .16s ease,transform .16s ease;visibility:hidden;white-space:nowrap;z-index:3}.link-note-tooltip:focus .tooltip-bubble,.link-note-tooltip:hover .tooltip-bubble{opacity:1;transform:translateX(-50%) translateY(0);visibility:visible}.analytics-list{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.analytics-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding-bottom:10px}.code-list{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.code-item{align-items:center;border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.new-code{background:#edf7f8;border:1px solid #b7d9de;border-radius:8px;margin-top:12px;padding:12px;word-break:break-all}@media (max-width:880px){.topbar{align-items:center;flex-wrap:wrap}.nav-toggle{align-items:center;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;display:inline-flex;justify-content:center;margin-left:auto;min-height:44px;min-width:44px}.nav{display:none;flex-basis:100%;flex-direction:column;gap:12px;width:100%}.nav[data-open=true]{display:flex}.nav-links,.nav-utilities{align-items:stretch;flex-direction:column;flex-wrap:wrap;width:100%}.nav-utilities{margin-left:0}.ghost-button,.language-switch button,.nav-link{justify-content:flex-start;min-height:40px;width:100%}.nav-menu-item{display:grid;grid-gap:6px;gap:6px;width:100%}.nav-menu-header{display:flex;width:100%}.nav-link-with-menu{border-bottom-right-radius:6px;border-top-right-radius:6px;flex:1 1 auto}.nav-submenu-toggle{background:transparent;border-color:transparent;flex:0 0 44px;min-height:40px;padding:8px}.nav-link-with-menu.active+.nav-submenu-toggle{background:rgba(183,134,68,.12);border-color:rgba(183,134,68,.5)}.nav-link-chevron{transform:rotate(0deg)}.nav-menu-item[data-submenu-open=true] .nav-link-chevron{transform:rotate(180deg)}.nav-submenu{background:rgba(255,255,255,.54);border:1px solid rgba(222,213,201,.72);display:none;box-shadow:none;min-width:0;opacity:0;padding:6px;pointer-events:none;position:static;transform:none;width:100%}.nav-menu-item:focus-within .nav-submenu,.nav-menu-item:hover .nav-submenu{opacity:0;pointer-events:none}.nav-menu-item[data-submenu-open=true] .nav-submenu,.nav-menu-item[data-submenu-open=true]:focus-within .nav-submenu,.nav-menu-item[data-submenu-open=true]:hover .nav-submenu{display:grid;opacity:1;pointer-events:auto}.nav-submenu-link{min-height:38px;padding:9px 12px 9px 24px;white-space:normal}.language-switch{width:100%}.language-switch button{justify-content:center}.admin-grid,.analytics-grid,.event-grid,.event-layout,.faq-grid,.form-grid,.info-grid,.region-grid,.region-map-layout,.stats-grid,.story-layout,.story-photo-grid,.story-timeline{grid-template-columns:1fr}.hero{min-height:680px}.admin-header{align-items:flex-start;flex-direction:column}.admin-subnav{flex-wrap:wrap}.section-card-header,.split-callout{align-items:flex-start;flex-direction:column}.event-summary-card{position:static}}