/* Patricia & Nikolas — shared stylesheet for every page.
   Palette and type scale live in :root at the top. Display serif (Cormorant Garamond) for headings
   and narrative text; DM Sans for labels and practical details. Sections open with a fine double gilt rule. */
/* ===== Site ===== */
:root{--color-ivory:#f6efe0;
  --color-parchment:#ebdfc6;
  --color-linen:#dfcfae;
  --color-gilt-line:#c4aa79;
  --color-walnut:#765a40;
  --color-honey-oak:#4f3a2b;
  --color-lacquer:#1e1916;
  --color-mulberry:#4a2530;
  --color-aubergine:#2a161b;
  --color-salon-green:#1c3326;
  --color-brass:#b08d57;
  --color-brass-light:#d4b98a;
  --color-old-gold:#7d5f2c;
  --color-tulip:#d9907a;
  --color-olive:#7a7340;
  --color-oxblood:#6b1d22;
  --color-canvas:var(--color-ivory);

  --font-display:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --font-script:"Pinyon Script","Snell Roundhand","Apple Chancery",cursive;
  --font-sans:"DM Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;

  --text-caption:13px;
  --text-body:15px;
  --text-body-lg:clamp(22px,2.2vw,26px);
  --text-heading-sm:clamp(38px,4.4vw,50px);
  --text-heading:clamp(44px,5.6vw,65px);
  --text-heading-lg:clamp(46px,6vw,69px);
  --text-names:clamp(52px,10.5vw,150px);

  --space-4:4px;--space-6:6px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;
  --space-24:24px;--space-28:28px;--space-32:32px;--space-42:42px;--space-92:92px;--space-160:160px;
  --section-gap:clamp(72px,11vw,160px);
  --gutter:clamp(16px,4vw,42px);
  --page-max-width:1440px;
  --measure:62ch;
  --radius-sm:3px;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --dur:.4s;
  --overlay-hero:linear-gradient(180deg,rgba(42,22,27,.35) 0%,rgba(42,22,27,.82) 100%);

  
  --wallpaper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='90' viewBox='0 0 60 90'%3E%3Cg fill='none' stroke='%23b08d57' stroke-opacity='.12' stroke-width='1'%3E%3Cpath d='M0 0C0 22 30 22 30 45S0 68 0 90M60 0C60 22 30 22 30 45S60 68 60 90'/%3E%3Cpath d='M15 0C15 22 45 22 45 45S15 68 15 90' stroke-opacity='.07'/%3E%3C/g%3E%3Cg fill='%23b08d57' fill-opacity='.14'%3E%3Cpath d='M30 42L32 45L30 48L28 45Z'/%3E%3C/g%3E%3C/svg%3E");
  color-scheme:light;}
*, *::before, *::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--space-92)}
body{margin:0;background:var(--color-canvas);color:var(--color-lacquer);
  font:500 var(--text-body)/1.4 var(--font-sans);letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block}
[hidden]{display:none!important}
h1, h2, h3{font-family:var(--font-display);font-weight:300;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
:focus-visible{outline:1px solid var(--color-brass);outline-offset:4px}
.wrap{max-width:var(--page-max-width);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-gap)}
.caption{font:500 var(--text-caption)/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-walnut)}
.dark .caption{color:var(--color-brass)}
.h-section{font-size:var(--text-heading);line-height:.85;letter-spacing:-.04em;text-transform:uppercase}
.h-sm{font-size:var(--text-heading-sm);line-height:.9;letter-spacing:-.03em;text-transform:uppercase}
.lead{font:300 var(--text-body-lg)/1.2 var(--font-display);letter-spacing:-.006em;color:var(--color-honey-oak);max-width:var(--measure)}
.body{color:var(--color-honey-oak);max-width:var(--measure)}
.dark{color:var(--color-ivory)}
.dark .h-section, .dark .h-sm{color:var(--color-brass-light)}
.dark .lead, .dark .body{color:var(--color-ivory)}
.section-head{display:flex;flex-direction:column;gap:var(--space-16)}
.stack{display:flex;flex-direction:column;gap:var(--space-24)}
.tbc{color:var(--color-walnut)}
.dark .tbc{color:var(--color-brass-light)}
.btn{display:inline-block;padding:var(--space-16) var(--space-28);border:1px solid currentColor;border-radius:var(--radius-sm);
  background:transparent;color:var(--color-lacquer);font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;
  transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease);}
.btn:hover{color:var(--color-old-gold)}
.dark .btn{color:var(--color-brass-light)}
.dark .btn:hover{background:rgba(212,185,138,.1);color:var(--color-brass-light)}
.link{font:500 var(--text-caption)/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;
  text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--dur) var(--ease)}
.link:hover{text-decoration-color:var(--color-brass)}
.tag{display:inline-block;padding:var(--space-4) var(--space-8);border:1px solid var(--color-gilt-line);border-radius:var(--radius-sm);
  font:500 12px/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-walnut)}
.tag.official{border-color:var(--color-brass);color:var(--color-old-gold)}
.site-nav{position:fixed;top:0;left:0;right:0;z-index:20;
  padding-top:calc(env(safe-area-inset-top,0px) + var(--space-20));padding-bottom:var(--space-20);
  color:var(--color-ivory);border-bottom:1px solid transparent;
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.site-nav.solid{background:var(--color-canvas);border-bottom-color:var(--color-gilt-line);color:var(--color-lacquer)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-24)}
.nav-right{display:flex;align-items:center;gap:var(--space-28)}
.mono{font:italic 300 var(--text-body-lg)/1 var(--font-display);color:var(--color-brass-light);text-decoration:none;white-space:nowrap}
.site-nav.solid .mono{color:var(--color-old-gold)}
.nav-links{display:flex;align-items:center;gap:var(--space-24);list-style:none;margin:0;padding:0}
.nav-links a{font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--dur) var(--ease);white-space:nowrap}
.nav-links a:hover{text-decoration-color:var(--color-brass)}
.menu-btn{display:none;background:none;border:0;padding:var(--space-8) 0;color:inherit;cursor:pointer;font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase}
.lang{display:flex;align-items:center;gap:var(--space-12)}
.lang button{background:none;border:0;padding:var(--space-8) 0;color:inherit;cursor:pointer;opacity:.7;
  font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;
  transition:opacity var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease)}
.lang button:hover{opacity:1}
.lang button[aria-pressed="true"]{opacity:1;color:var(--color-brass-light);text-decoration-color:var(--color-brass)}
.site-nav.solid .lang button[aria-pressed="true"]{color:var(--color-old-gold)}
.lang button:disabled, .lang button:disabled:hover{opacity:.45;cursor:default}
.lang .soon{font:500 12px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;opacity:.6}
.menu-panel{position:fixed;inset:0;z-index:30;background:var(--color-aubergine) var(--wallpaper) 0 0/60px 90px;color:var(--color-ivory);
  padding:calc(env(safe-area-inset-top,0px) + var(--space-20)) var(--gutter) calc(env(safe-area-inset-bottom,0px) + var(--space-42));
  display:flex;flex-direction:column;gap:var(--space-42);overflow-y:auto;}
.menu-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-20)}
.menu-panel ul a{font:300 var(--text-heading-sm)/.9 var(--font-display);letter-spacing:-.03em;text-transform:uppercase;color:var(--color-brass-light);text-decoration:none}
.menu-panel .menu-btn{display:inline-block}
.menu-panel .caption{color:var(--color-brass);margin-top:auto}
@media (max-width:860px){
  .site-nav .nav-links{display:none}
  .menu-btn{display:inline-block}
}
@media (max-width:420px){
  .nav-right{gap:var(--space-20)}
}
.hero{position:relative;min-height:88svh;display:flex;flex-direction:column;justify-content:flex-end;
  background:var(--overlay-hero),var(--hero-photo,var(--wallpaper)) center/var(--hero-size,60px 90px),var(--color-aubergine);
  color:var(--color-ivory);
  padding-top:calc(var(--space-92) + var(--space-42));padding-bottom:var(--space-42);}
.hero-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-42);text-align:center;flex:1;justify-content:center}
.names{font-size:var(--text-names);line-height:.8;letter-spacing:-.03em;text-transform:uppercase;color:var(--color-ivory)}
.names em{display:block;font-style:italic;color:var(--color-brass-light);font-size:.5em;line-height:1.1;letter-spacing:0;text-transform:none}
.hero-meta{display:flex;justify-content:space-between;gap:var(--space-16);flex-wrap:wrap;margin-top:var(--space-42)}
.hero-meta .caption{color:var(--color-brass-light)}
@media (max-width:640px){
  .hero-meta{flex-direction:column;align-items:center;text-align:center;gap:var(--space-8)}
}
.frame{margin:0;padding:var(--space-8);border:1px solid var(--color-gilt-line);background:var(--color-canvas);min-width:0}
.frame img, .ph{width:100%;height:auto;aspect-ratio:var(--ratio,4/5);object-fit:cover}
.ph{display:grid;place-items:center;text-align:center;padding:var(--space-16);
  background:var(--color-mulberry) var(--wallpaper) 0 0/60px 90px;color:var(--color-brass-light);}
.ph span{font:500 var(--text-caption)/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase}
.facts{margin:0;display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--color-gilt-line)}
.facts div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-16);padding-block:var(--space-16);border-top:1px solid var(--color-gilt-line)}
.facts dt{font:500 var(--text-caption)/1.6 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-walnut)}
.facts dd{margin:0;color:var(--color-honey-oak)}
@media (max-width:480px){
  .facts div{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
}
.countdown{background:var(--color-mulberry) var(--wallpaper) 0 0/60px 90px;padding-block:var(--space-92);text-align:center}
.days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-42);margin-top:var(--space-92)}
.day{min-width:0;display:flex;flex-direction:column;gap:var(--space-8)}
.day-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8);margin-bottom:var(--space-4)}
.day-head .caption, .day > .caption{color:var(--color-old-gold)}
.day ol{list-style:none;margin:var(--space-24) 0 0;padding:0;border-bottom:1px solid var(--color-gilt-line)}
.day-note{font:300 var(--text-body-lg)/1.2 var(--font-display);letter-spacing:-.006em;color:var(--color-honey-oak);margin-top:var(--space-16);padding-top:var(--space-20);border-top:1px solid var(--color-gilt-line)}
@media (max-width:1180px){
  .days{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-92) var(--space-42)}
}
@media (max-width:760px){
  .days{grid-template-columns:minmax(0,1fr);gap:var(--space-42);margin-top:var(--space-42)}
}
#schedule .tag{background:color-mix(in srgb,var(--color-brass) 22%,var(--color-ivory));border-color:var(--color-brass);color:var(--color-honey-oak)}
#coming-soon{background:var(--color-parchment)}
#coming-soon .tag{background:var(--color-ivory)}
.panels.tint{background:rgba(74,37,48,.28);border-color:rgba(74,37,48,.28)}
.panels.tint .panel{background:color-mix(in srgb,var(--color-mulberry) 18%,var(--color-ivory))}
.panels.tint .caption{color:var(--color-mulberry)}
.panels.tint h3{color:var(--color-lacquer)}
.panels.tint .body{color:var(--color-honey-oak)}
.panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--color-gilt-line);border:1px solid var(--color-gilt-line);margin-top:var(--space-92)}
.panel{background:var(--color-ivory);padding:var(--space-28);display:flex;flex-direction:column;gap:var(--space-16);min-width:0}
.panel h3{font-size:var(--text-body-lg);line-height:1.2;letter-spacing:-.006em}
.panel .body{flex:1}
.panel .link{align-self:flex-start;margin-top:var(--space-8)}
@media (max-width:960px){
  .panels{grid-template-columns:minmax(0,1fr);margin-top:var(--space-42)}
}
.sub{margin-top:var(--space-92);padding-top:var(--space-42);border-top:1px solid var(--color-gilt-line);display:flex;flex-direction:column;gap:var(--space-42)}
.sub-head{display:flex;flex-direction:column;gap:var(--space-12);max-width:var(--measure)}
.sub .panels{margin-top:0}
.rows{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--color-gilt-line)}
.rows li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--space-16);padding-block:var(--space-16);border-top:1px solid var(--color-gilt-line);align-items:baseline}
.rows b{font:300 var(--text-body-lg)/1.2 var(--font-display)}
.rows span{color:var(--color-honey-oak)}
#from-the-us .rows{max-width:920px}
#from-the-us .rows li{grid-template-columns:minmax(0,1fr)}
@media (max-width:600px){
  .rows li{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
}
.soon-rows{margin-top:var(--space-42);max-width:920px}
.soon-rows li{grid-template-columns:minmax(0,1fr) auto;align-items:center}
@media (max-width:600px){
  .soon-rows li{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-12)}
}
.gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-24);margin-top:var(--space-92)}
.gallery .frame:nth-child(1){grid-column:span 4;--ratio:3/2}
.gallery .frame:nth-child(2){grid-column:span 2;--ratio:2/3}
.gallery .frame:nth-child(3), .gallery .frame:nth-child(4), .gallery .frame:nth-child(5){grid-column:span 2;--ratio:4/5}
.gallery .frame:nth-child(6){grid-column:span 6;--ratio:21/9}
@media (max-width:860px){
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16);margin-top:var(--space-42)}
  .gallery .frame:nth-child(n){grid-column:span 1;--ratio:4/5}
  .gallery .frame:nth-child(1), .gallery .frame:nth-child(6){grid-column:span 2;--ratio:3/2}
}
.site-footer{background:var(--color-aubergine);color:var(--color-ivory);padding-block:var(--space-92) calc(env(safe-area-inset-bottom,0px) + var(--space-92));text-align:center}
.site-footer .wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-20)}
.site-footer .mono{font-size:var(--text-heading-sm)}
.site-footer .caption{color:var(--color-brass)}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-12) var(--space-24);list-style:none;margin:0;padding:0}
.welcome{padding-block:var(--section-gap)}
.letter{position:relative;max-width:760px;margin-inline:auto;background:var(--color-ivory);
  padding:clamp(42px,7vw,92px) clamp(24px,6vw,84px) clamp(42px,6vw,72px);
  outline:1px solid var(--color-gilt-line);outline-offset:calc(var(--space-8) * -1);border:1px solid var(--color-gilt-line)}
.letter .caption{text-align:center;margin-bottom:var(--space-32)}
.letter p.l{font:300 clamp(20px,2vw,23px)/1.5 var(--font-display);letter-spacing:-.004em;color:var(--color-honey-oak);margin-top:var(--space-20)}
.letter p.salute{font:italic 400 clamp(24px,2.5vw,29px)/1.3 var(--font-display);color:var(--color-lacquer);margin-top:0}
.sign{display:flex;align-items:center;justify-content:space-between;gap:var(--space-24);margin-top:var(--space-42);flex-wrap:wrap}
.sign-text{display:flex;flex-direction:column;gap:var(--space-4)}
.sign-text .with{font:300 clamp(20px,2vw,23px)/1.5 var(--font-display);letter-spacing:-.004em;color:var(--color-honey-oak)}
.sign-text .names-script{font:400 clamp(40px,5vw,56px)/1.15 var(--font-script);color:var(--color-lacquer)}
.wax{flex:none;width:76px;height:76px;display:grid;place-items:center;border-radius:47% 53% 50% 50% / 52% 47% 53% 48%;
  background:radial-gradient(circle at 34% 28%,#92353a 0%,var(--color-oxblood) 42%,#45110f 100%);
  box-shadow:0 4px 8px rgba(0,0,0,.28),inset 0 -3px 5px rgba(0,0,0,.35),inset 0 2px 3px rgba(255,220,210,.14);position:relative;transform:rotate(-8deg)}
.wax::before{content:"";position:absolute;inset:15%;border-radius:50%;border:1.5px solid rgba(40,6,6,.45)}
.wax span{position:relative;font:italic 400 24px/1 var(--font-display);color:#4f1417;text-shadow:0 1px 0 rgba(255,205,195,.22),0 -1px 0 rgba(0,0,0,.35)}
.wax small{font-size:.55em;margin:0 .08em;vertical-align:.25em}
.jump{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-12);margin:var(--space-42) auto 0;max-width:960px}
.btn.solid{background:#94763f;border-color:#94763f;color:var(--color-ivory);box-shadow:inset 0 0 0 4px #94763f,inset 0 0 0 5px rgba(247,242,231,.75)}
.dark .btn.solid{color:var(--color-ivory)}
.btn.solid:hover, .dark .btn.solid:hover{background:#7d6233;border-color:#7d6233;color:var(--color-ivory);box-shadow:inset 0 0 0 4px #7d6233,inset 0 0 0 5px rgba(247,242,231,.75)}
.jump-cta{margin-top:var(--space-24)}
.places-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-42);margin-top:var(--space-92)}
.place-card{display:flex;flex-direction:column;gap:var(--space-16);min-width:0}
.place-card .frame{--ratio:4/3;margin-bottom:var(--space-8)}
.place-card .facts{margin-top:var(--space-8)}
@media (max-width:860px){
  .places-grid{grid-template-columns:minmax(0,1fr);margin-top:var(--space-42)}
}
.place-text{display:flex;flex-direction:column;gap:var(--space-16);flex:1}
.place-card .frame{margin:var(--space-8) 0 0}
.guide{padding:0 0 var(--space-92)}
.guide-band{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--page-max-width) - 2 * var(--gutter));margin:var(--space-92) auto var(--space-42);
  padding-top:var(--space-42);border-top:3px double var(--color-gilt-line)}
.guide-band .wrap{padding-inline:0}
.guide-band .section-head{gap:var(--space-16)}
.sec-num{display:inline-block;margin-right:.35em;color:var(--color-brass);font-style:italic;letter-spacing:0}
.guide .days, .guide .places-grid, .guide .soon-rows, .guide .panels{margin-top:0}
#coming-soon{background:var(--color-canvas)}
#coming-soon .tag{background:var(--color-parchment)}
@media (max-width:760px){
  .guide-band{margin-top:var(--space-42);padding-top:var(--space-32)}
}
.guide .chapter{font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-old-gold)}
.guide .chapter + .panels{margin-top:var(--space-24)}
.guide .places-grid{margin-top:0}
@supports (grid-template-rows:subgrid){
  .places-grid{grid-template-rows:repeat(4,auto);row-gap:0}
  .place-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:var(--space-16)}
  .place-text{flex:none}
}
@media (max-width:860px){
  .place-card{grid-row:auto;display:flex}
  .places-grid{grid-template-rows:none;row-gap:var(--space-42)}
}
@media (max-width:760px){
  .guide-band{padding-block:var(--space-42);margin-bottom:var(--space-42)}
}
.mapbox{margin-top:var(--space-24)}
.map-tabs{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-16)}
.map-tabs button{font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  padding:var(--space-12) var(--space-20);border:1px solid var(--color-gilt-line);border-radius:var(--radius-sm);background:transparent;color:var(--color-walnut)}
.map-tabs button[aria-selected="true"]{background:var(--color-salon-green);border-color:var(--color-salon-green);color:var(--color-ivory)}
.map-stage{position:relative;padding:var(--space-8);border:1px solid var(--color-gilt-line);background:var(--color-ivory)}
.tripmap{display:block;width:100%;height:auto}
.map-stage{max-width:calc(82vh * 1000 / 800 + 18px)}
.map-stage:has(.map-view[data-view="near"]:not([hidden])){max-width:calc(82vh * 1000 / 700 + 18px)}
.tripmap .sea{fill:color-mix(in srgb,var(--color-salon-green) 20%,var(--color-ivory))}
.tripmap .land{fill:var(--color-ivory);stroke:var(--color-walnut);stroke-width:1.1;stroke-linejoin:round}
.tripmap .border{fill:none;stroke:var(--color-gilt-line);stroke-width:1;stroke-dasharray:4 4}
.tripmap .sea-l{font:500 15px var(--font-sans);letter-spacing:.32em;text-transform:uppercase;fill:var(--color-walnut);opacity:.6}
.tripmap .bay-l{font:italic 300 24px var(--font-display);fill:var(--color-walnut);opacity:.75}
.pin{cursor:pointer;outline:none}
.pin .hit{fill:transparent}
.pin .halo{fill:var(--color-brass);opacity:.18;transition:opacity var(--dur) var(--ease)}
.pin .dot{fill:var(--color-brass);stroke:var(--color-ivory);stroke-width:2.5}
.pin.home .dot{fill:var(--color-oxblood)}
.pin.home .halo{fill:var(--color-oxblood)}
.pin text{font:500 19px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;fill:var(--color-lacquer);
  paint-order:stroke;stroke:var(--color-ivory);stroke-width:5px;stroke-linejoin:round}
.pin:hover .halo, .pin:focus-visible .halo, .pin.active .halo{opacity:.45}
.pin:focus-visible .dot{stroke:var(--color-lacquer)}
.pin.active text{fill:var(--color-old-gold)}
.map-pop{position:absolute;z-index:3;width:min(300px,calc(100% - 16px));background:var(--color-ivory);color:var(--color-lacquer);
  border:1px solid var(--color-brass);border-radius:var(--radius-sm);padding:var(--space-20) var(--space-20) var(--space-16);
  box-shadow:0 18px 36px -18px rgba(30,25,22,.55);transform:translate(-50%,calc(-100% - 22px))}
.map-pop::after{content:"";position:absolute;left:var(--arrow,50%);bottom:-7px;width:12px;height:12px;background:var(--color-ivory);
  border-right:1px solid var(--color-brass);border-bottom:1px solid var(--color-brass);transform:translateX(-50%) rotate(45deg)}
.map-pop.below{transform:translate(-50%,22px)}
.map-pop.below::after{bottom:auto;top:-7px;transform:translateX(-50%) rotate(225deg)}
.map-pop h4{font:300 26px/1.1 var(--font-display);margin:var(--space-6) 0 var(--space-8)}
.map-pop p{color:var(--color-honey-oak);font-size:14px;line-height:1.45}
.map-pop .how{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px solid var(--color-gilt-line)}
.map-pop .how b{display:block;font:500 12px/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-old-gold);margin-bottom:var(--space-4)}
.map-pop .x{position:absolute;top:var(--space-8);right:var(--space-8);width:32px;height:32px;border:0;background:none;cursor:pointer;
  font:300 24px/1 var(--font-display);color:var(--color-walnut)}
.map-chips{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:var(--space-16)}
.map-chips button{font:500 12px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:var(--space-8) var(--space-12);
  border:1px solid var(--color-gilt-line);border-radius:var(--radius-sm);background:var(--color-ivory);color:var(--color-walnut)}
.map-chips button:hover, .map-chips button.active{border-color:var(--color-brass);color:var(--color-old-gold)}
.map-key{display:flex;gap:var(--space-20);flex-wrap:wrap;margin-top:var(--space-12);font:500 12px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-walnut)}
.map-key span{display:inline-flex;align-items:center;gap:var(--space-8)}
.map-key i{width:10px;height:10px;border-radius:50%;background:var(--color-brass);display:inline-block}
.map-key i.h{background:var(--color-oxblood)}
@media (max-width:640px){
  .pin text{font-size:30px;stroke-width:7px}
  .tripmap .sea-l{font-size:22px}
  .tripmap .bay-l{font-size:32px}
  .map-pop, .map-pop.below{position:relative;left:auto!important;top:auto!important;transform:none;width:auto;margin-top:var(--space-8)}
  .map-pop::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}
:root{--text-caption:12px;
  --text-body:15px;
  --text-body-lg:clamp(19px,1.6vw,21px);
  --text-h4:clamp(21px,1.8vw,23px);
  --text-heading-sm:clamp(26px,2.5vw,32px);
  --text-heading:clamp(36px,4.2vw,52px);
  --text-heading-lg:clamp(38px,4.6vw,56px);}
body{line-height:1.55}
.caption, .link, .btn, .tag, .nav-links a, .lang button, .menu-btn, .map-tabs button, .map-chips button, .map-key, .chapter{letter-spacing:.14em}
.h-section{line-height:1;letter-spacing:-.015em}
.h-sm{line-height:1.08;letter-spacing:.01em}
.lead{line-height:1.45}
.body, .panel .body, .place-card .body{line-height:1.65}
.day-note{font-size:var(--text-body-lg);line-height:1.5}
.panel h3, .rows b, .timeline b, .map-pop h4{font-size:var(--text-h4);line-height:1.2;letter-spacing:0}
.letter p.l, .sign-text .with{font-size:clamp(19px,1.7vw,21px);line-height:1.65}
.letter p.salute{font-size:clamp(23px,2.2vw,26px)}
.sign-text .names-script{font-size:clamp(38px,4.4vw,50px)}
.count-line{font:300 clamp(34px,3.6vw,46px)/1.1 var(--font-display);letter-spacing:-.01em;color:var(--color-brass-light);text-align:center;text-wrap:balance;margin:0}
.count-line b{font-weight:300;font-variant-numeric:lining-nums tabular-nums}
.count-line span{font:500 var(--text-caption)/1.3 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--color-brass);margin-left:var(--space-8);vertical-align:.35em}
.hero .btn.hero-story{color:var(--color-brass-light);border-color:rgba(212,185,138,.6)}
.hero .btn.hero-story:hover{background:rgba(212,185,138,.12);color:var(--color-brass-light)}
.mono{font-size:clamp(20px,1.8vw,23px)}
.site-footer .mono{font-size:var(--text-heading-sm)}
.sec-num{font-weight:300}
.days .day{padding:var(--space-24) var(--space-24) var(--space-28)}
.days{gap:var(--space-16)}
.footnote{font:italic 300 16px/1.45 var(--font-display);color:var(--color-walnut)}
.day.official{border:1px solid var(--color-gilt-line);box-shadow:inset 0 0 0 5px var(--color-ivory),inset 0 0 0 6px var(--color-gilt-line)}
.site-footer{border-top:3px double var(--color-brass)}

/* ===== Our Story page ===== */
.story-hero{min-height:56svh}
.back{font:500 var(--text-caption)/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.story-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-92);align-items:center}
.story-intro > *{min-width:0}
.photo-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-24);margin-top:var(--space-92)}
.photo-row .frame{grid-column:span 2;--ratio:4/5}
.photo-row .frame:nth-child(10){grid-column:span 6;--ratio:16/9}
.photo-note{margin-top:var(--space-24)}
@media (max-width:860px){.story-intro{grid-template-columns:minmax(0,1fr);gap:var(--space-42)}.photo-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16);margin-top:var(--space-42)}.photo-row .frame,.photo-row .frame:nth-child(n){grid-column:span 1;--ratio:4/5}.photo-row .frame:nth-child(1){grid-column:span 2;--ratio:4/3}.photo-row .frame:nth-child(10){grid-column:span 2;--ratio:1/1}.photo-row .frame:nth-child(10) img{object-position:center 72%!important}}
