:root{--ink:#000;--dark:#111;--tint:#f1eee9;--accent:#dbd4c9;--soft:#f6f4f1;--muted:#555;--line:#e6e6e6;
--serif:'ivypresto-display','Cormorant Garamond',Georgia,serif;--nav:'aktiv-grotesk-extended','Archivo',Arial,sans-serif;--body:'poppins','Poppins',Arial,sans-serif;--wrap:1240px}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--tint);color:var(--ink);font:300 16px/1.7 var(--body);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
strong,b{font-weight:500}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 4vw}
.hd{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{font:500 15px var(--nav);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.nav{display:flex;gap:22px;align-items:center}
.nav a{font:500 12px var(--nav);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.btn{display:inline-block;background:var(--ink);color:#fff!important;padding:9px 18px;border-radius:0;font:500 12px var(--nav);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15}
.eyebrow,.c-meta,.meta{font:500 11px var(--nav);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.meta a{color:var(--muted)}
/* index */
.idx{padding-top:24px;padding-bottom:32px}
.idx-hd{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.idx-hd h1{font-size:clamp(30px,4vw,46px)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;margin-bottom:8px}
.filters input,.filters select{font:400 14px var(--body);padding:9px 10px;border:1px solid var(--accent);background:#fff;border-radius:0;width:100%}
.count{font-size:13px;color:var(--muted);margin-bottom:10px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.card{text-decoration:none;background:#fff;display:flex;flex-direction:column}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.c-meta{padding:10px 12px 0}
.c-title{font:400 20px/1.2 var(--serif);padding:4px 12px 12px}
.card:hover .c-title{text-decoration:underline}
.card[hidden]{display:none}
/* post */
.post{max-width:900px;padding-top:24px;padding-bottom:32px}
.post-hd h1{font-size:clamp(30px,4.4vw,50px);margin:6px 0 8px}
.cover{width:100%;margin:14px 0 18px}
.body h2{font-size:30px;margin:22px 0 6px}.body h3{font-size:23px;margin:16px 0 6px}.body h4{font:500 13px var(--nav);letter-spacing:.12em;text-transform:uppercase;margin:14px 0 4px}
.body p,.body ul,.body ol,.body blockquote{margin:0 0 12px}
.body ul,.body ol{padding-left:22px}
.body img{width:100%;margin:10px 0}
.body iframe{width:100%;aspect-ratio:426/182;height:auto;border:0;margin:0;display:block;background:#000}
.body iframe[src*="vimeo"],.body iframe[src*="youtube"]{background:#000;box-shadow:none}
.body p:has(>iframe){margin:0;padding:0;line-height:0;font-size:0;background:#000}
.body a{text-decoration:underline;text-underline-offset:2px}
.body blockquote{border-left:3px solid var(--accent);padding-left:14px;font-style:italic}
.post-ft{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font:500 12px var(--nav);letter-spacing:.12em;text-transform:uppercase}
.post-ft a:first-child{text-decoration:none}
.ft{background:var(--dark);color:var(--tint);font-size:13px}
.ft-in{display:flex;justify-content:space-between;padding:18px 4vw;flex-wrap:wrap;gap:8px}
@media(max-width:720px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.nav a:not(.btn){display:none}.grid{grid-template-columns:1fr 1fr;gap:10px}.c-title{font-size:17px}}

/* Blog filter bar — match Real Weddings .mw-bar */
body.blog .bx{display:block;margin:0 var(--s-pad);padding:22px 0 0;border-top:1px solid #000;border-bottom:0;gap:0}
body.blog .bx-bar{display:grid;grid-template-columns:minmax(0,1.55fr) repeat(4,minmax(0,1fr));gap:22px 28px;align-items:end;position:relative;z-index:5}
body.blog .bx-lab,body.blog .bx .fd-l{display:block;width:auto;margin:0 0 4px;padding:0;font:500 10px/1.6 var(--s-nav);letter-spacing:.28em;text-transform:uppercase;color:var(--s-muted,#555);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.blog .bx-field{position:relative;display:block}
body.blog .bx-field svg{position:absolute;left:0;top:50%;width:20px;height:20px;margin-top:-10px;color:#000;pointer-events:none}
body.blog .bx-search input{-webkit-appearance:none;appearance:none;display:block;width:100%;max-width:none;height:auto;margin:0;padding:10px 4px 11px 32px;border:0;border-radius:0;box-shadow:none;outline:0;background:transparent;color:#000;font:300 22px/1.25 var(--s-serif);letter-spacing:normal;text-transform:none;text-align:left}
body.blog .bx-search input::placeholder{color:#8a8580;opacity:1;font-style:italic}
body.blog .bx-search input:focus{outline:0}
body.blog .bx-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:16px;height:16px;cursor:pointer;background:linear-gradient(45deg,transparent 46%,#000 46%,#000 54%,transparent 54%),linear-gradient(-45deg,transparent 46%,#000 46%,#000 54%,transparent 54%)}
body.blog .bx .fd{position:relative;min-width:0}
body.blog .bx .fd-btn{-webkit-appearance:none;appearance:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;width:100%;min-width:0;height:auto;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;color:#000;cursor:pointer;text-align:left;font:inherit;letter-spacing:normal;text-transform:none}
body.blog .bx .fd-btn .fd-l{grid-column:1/-1}
body.blog .bx .fd-v{display:block;min-width:0;grid-column:1;grid-row:2;padding:10px 4px 11px 0;border:0;font:300 22px/1.25 var(--s-serif);color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.blog .bx .fd-chev{width:11px;height:11px;color:#000;align-self:center;margin-top:2px;grid-column:2;grid-row:2;transition:transform .25s}
body.blog .bx .fd.active .fd-v{font-style:italic}
body.blog .bx .fd.open .fd-chev{transform:rotate(180deg)}
body.blog .bx .fd-pop{position:absolute;left:0;top:calc(100% + 10px);z-index:40;min-width:300px;max-height:min(70vh,520px);overflow-y:auto;padding:8px;background:#fff;border:1px solid var(--s-line,#e6e6e6);border-radius:0;box-shadow:0 18px 44px rgba(0,0,0,.10);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s}
body.blog .bx .fd-sort .fd-pop{left:auto;right:0}
body.blog .bx .fd.open .fd-pop{opacity:1;visibility:visible;transform:none}
body.blog .bx .fd-opt{-webkit-appearance:none;appearance:none;display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;height:auto;margin:0;padding:9px 12px;background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;text-align:left;color:#000;font:300 19px/1.3 var(--s-serif);letter-spacing:normal;text-transform:none;transition:background .15s}
body.blog .bx .fd-opt:hover{background:#f6f4f1}
body.blog .bx .fd-opt.on{font-style:italic}
body.blog .bx .fd-opt.on::after{content:"";flex:none;width:5px;height:9px;border:solid #000;border-width:0 1.3px 1.3px 0;transform:rotate(45deg);margin:0 4px 3px 0}
body.blog .bx-sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none}
body.blog .bx-status{display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;margin:26px 0 48px;font:500 10px/1.6 var(--s-nav);letter-spacing:.24em;text-transform:uppercase;color:var(--s-muted,#555)}
body.blog .bx-count{margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
body.blog .bx-count b{color:#000;font-weight:500}
@media (max-width:980px){
  body.blog .bx-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
  body.blog .bx-search{grid-column:1/-1}
}
@media (max-width:820px){
  body.blog .bx{margin:0 20px}
  body.blog .bx .fd{position:static}
  body.blog .bx .fd-pop,body.blog .bx .fd-sort .fd-pop{left:0;right:0;min-width:0;top:calc(100% + 8px)}
  body.blog .bx-lab,body.blog .bx .fd-l{font-size:9px;letter-spacing:.2em}
  body.blog .bx .fd-v{font-size:18px}
  body.blog .bx-search input{font-size:20px}
  body.blog .bx .fd-btn{column-gap:6px}
}
@media (prefers-color-scheme:dark){
  body.blog .bx{border-top-color:var(--dk-rule)!important}
  body.blog .bx-lab,body.blog .bx .fd-l,body.blog .bx-status,body.blog .bx-count{color:var(--dk-muted)!important}
  body.blog .bx-field svg,body.blog .bx .fd-chev{color:var(--dk-text)!important}
  body.blog .bx-search input{color:var(--dk-text)!important;background:transparent!important}
  body.blog .bx-search input::placeholder{color:var(--dk-muted)!important}
  body.blog .bx .fd-btn{color:var(--dk-text)!important;background:transparent!important}
  body.blog .bx .fd-v{color:var(--dk-text)!important}
  body.blog .bx .fd-pop{background:var(--dk-bg)!important;border-color:var(--dk-line)!important}
  body.blog .bx .fd-opt{color:var(--dk-text)!important}
  body.blog .bx .fd-opt:hover{background:var(--dk-panel)!important}
  body.blog .bx .fd-opt.on::after{border-color:var(--dk-rule)!important}
  body.blog .bx-count b{color:var(--dk-text)!important}
}
/* ===== mmc-film-fix-2: poster fills when closed; iframe fills when open =====
   v26m used top/left:50% + width/height:104% + transform:translate(-50%,-50%)
   on .mv-vp iframes. Later inset:0 / top:0 / left:0 rules overrode the offsets
   but left the translate in place, so the player sits half a frame up and left
   (half-width Vimeo bar, vertical seam, black remainder). Cancel that, hide the
   Vimeo layer until click, and make the poster a full-bleed cover. */
html body .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body .mv-vp .mv-vp-d:not([open]) > .mv-vp-open iframe,
html body .mv-vp .mv-vp-d:not([open]) iframe,
html body.blog .body .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body.blog .body .mv-vp .mv-vp-d:not([open]) iframe,
html body .mmc .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body .mmc .mv-vp .mv-vp-d:not([open]) iframe {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html body .mv-vp .mv-vp-d[open] > .mv-vp-open,
html body .mmc .mv-vp .mv-vp-d[open] > .mv-vp-open,
html body.blog .body .mv-vp .mv-vp-d[open] > .mv-vp-open {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: #000 !important;
  overflow: hidden !important;
  transform: none !important;
}
html body .mv-vp iframe,
html body .mv-video iframe,
html body .mv-tyvideo iframe,
html body.blog .body .mv-vp iframe,
html body.blog .body .mv-vp .mv-vp-d[open] iframe,
html body .mmc .mv-vp iframe,
html body .mmc .mv-video iframe,
html body .mmc .mv-vp .mv-vp-d[open] iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  transform: none !important;
  aspect-ratio: auto !important;
  background: #000 !important;
  box-shadow: none !important;
}
html body .mv-vp .mv-vp-d[open] iframe,
html body.blog .body .mv-vp .mv-vp-d[open] iframe,
html body .mmc .mv-vp .mv-vp-d[open] iframe {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 1 !important;
}
html body .mv-vp,
html body.blog .body .mv-vp,
html body .mmc .mv-vp {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  overflow: hidden !important;
  background: #000 !important;
  color-scheme: only light;
}
html body .mv-vp .mv-vp-d,
html body.blog .body .mv-vp .mv-vp-d,
html body .mmc .mv-vp .mv-vp-d {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
html body .mv-vp .mv-vp-d:not([open]) > .mv-vp-s,
html body.blog .body .mv-vp .mv-vp-d:not([open]) > .mv-vp-s,
html body .mmc .mv-vp .mv-vp-d:not([open]) > .mv-vp-s {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  z-index: 3 !important;
  cursor: pointer !important;
  list-style: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
html body .mv-vp .mv-vp-d[open] > .mv-vp-s,
html body.blog .body .mv-vp .mv-vp-d[open] > .mv-vp-s,
html body .mmc .mv-vp .mv-vp-d[open] > .mv-vp-s {
  display: none !important;
}
html body .mv-vp .mv-vp-s img,
html body.blog .body .mv-vp .mv-vp-s img,
html body .mmc .mv-vp .mv-vp-s img,
html body.blog .body .mv-vp .mv-vp-s img.body,
html body .mv-vp img {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: cover !important;
  display: block !important;
  background: #000 !important;
}
html body .mv-vp .mv-vp-play,
html body.blog .body .mv-vp .mv-vp-play,
html body .mmc .mv-vp .mv-vp-play {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  z-index: 4 !important;
  transform: none !important;
}

/* ===== mmc-film-fix-3: no white edge bars; overscale is centered; per-film aspect =====
   100% iframe + leftover v26m translate, or a 1px subpixel/Vimeo letterbox, left
   light vertical hairlines on iPhone. Overscale the OPEN iframe to 102% and
   center it with top/left 50% + translate(-50%,-50%) only — never combine that
   with inset:0 or top/left:0. Container is #000, overflow hidden, and uses
   --vp-ar (from Vimeo oEmbed) so the box matches the film. */
html body .mv-vp,
html body .mv-video,
html body .mv-tyvideo,
html body.blog .body .mv-vp,
html body .mmc .mv-vp {
  aspect-ratio: var(--vp-ar, 426 / 182) !important;
  background: #000 !important;
  background-color: #000 !important;
  overflow: hidden !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  color-scheme: dark;
}
html body .mv-vp .mv-vp-d,
html body .mv-vp .mv-vp-open,
html body.blog .body .mv-vp .mv-vp-d,
html body.blog .body .mv-vp .mv-vp-open,
html body .mmc .mv-vp .mv-vp-d,
html body .mmc .mv-vp .mv-vp-open {
  background: #000 !important;
  background-color: #000 !important;
  overflow: hidden !important;
  border: 0 !important;
  color-scheme: dark;
}
html body .mv-vp iframe,
html body .mv-video iframe,
html body .mv-tyvideo iframe,
html body.blog .body .mv-vp iframe,
html body.blog .body .mv-vp .mv-vp-d[open] iframe,
html body .mmc .mv-vp iframe,
html body .mmc .mv-video iframe,
html body .mmc .mv-vp .mv-vp-d[open] iframe {
  position: absolute !important;
  inset: auto !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: 102% !important;
  height: 102% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  transform: translate(-50%, -50%) !important;
  aspect-ratio: auto !important;
  background: #000 !important;
  background-color: #000 !important;
  color-scheme: dark;
}
html body .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body .mv-vp .mv-vp-d:not([open]) iframe,
html body.blog .body .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body.blog .body .mv-vp .mv-vp-d:not([open]) iframe,
html body .mmc .mv-vp .mv-vp-d:not([open]) > .mv-vp-open,
html body .mmc .mv-vp .mv-vp-d:not([open]) iframe {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html body .mv-vp .mv-vp-d[open] > .mv-vp-open,
html body.blog .body .mv-vp .mv-vp-d[open] > .mv-vp-open,
html body .mmc .mv-vp .mv-vp-d[open] > .mv-vp-open {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  background: #000 !important;
}
html body .mv-vp .mv-vp-d[open] iframe,
html body.blog .body .mv-vp .mv-vp-d[open] iframe,
html body .mmc .mv-vp .mv-vp-d[open] iframe {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 1 !important;
}
