:root{
  --ink:#241c18; --muted:#725f55; --paper:#fbf4e8; --card:#fffaf2; --olive:#1f4b3f; --terracotta:#b56b45; --gold:#d9ad64;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.65}
a{color:var(--olive);text-decoration:none} a:hover{text-decoration:underline}.site-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:16px clamp(18px,4vw,54px);background:rgba(251,244,232,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(36,28,24,.08)}.brand{font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:700;color:var(--ink)}nav{display:flex;gap:20px;font-weight:700;font-size:14px}.hero{min-height:76vh;display:grid;place-items:center;padding:80px 24px;background:linear-gradient(135deg,rgba(31,75,63,.9),rgba(181,107,69,.78)),url('/static/journal/italy-pattern.svg');color:#fff}.hero-inner{max-width:900px;text-align:center}.eyebrow{letter-spacing:.18em;text-transform:uppercase;font-size:13px;font-weight:800;color:var(--gold);margin:0 0 16px}.hero h1,.form-card h1,.section-copy h1,.section-copy h2{font-family:"Cormorant Garamond",serif;line-height:.95;margin:0}.hero h1{font-size:clamp(58px,10vw,122px)}.lede{font-size:clamp(18px,2.6vw,26px);max-width:760px;margin:24px auto;color:rgba(255,255,255,.88)}.lede.small{color:var(--muted);font-size:18px}.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-block;border:0;border-radius:999px;background:var(--olive);color:#fff;padding:13px 22px;font-weight:800;cursor:pointer}.button:hover{text-decoration:none;background:#17382f}.button.ghost{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.48)}.story-shell{width:min(1180px,92vw);margin:0 auto;padding:70px 0}.story-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:40px;align-items:start;padding:58px 0;border-bottom:1px solid rgba(36,28,24,.12)}.story-section:nth-child(even){grid-template-columns:minmax(320px,520px) minmax(0,1fr)}.story-section:nth-child(even) .section-copy{grid-column:2}.story-section:nth-child(even) .photo-grid{grid-column:1;grid-row:1}.section-copy{position:sticky;top:92px}.section-copy.wide{position:static;max-width:820px}.date-label{font-weight:800;color:var(--terracotta);text-transform:uppercase;letter-spacing:.09em;font-size:13px}.section-copy h2,.section-copy h1{font-size:clamp(40px,6vw,72px);color:#2e211b}.subtitle{font-size:21px;font-weight:700;color:var(--olive);margin:12px 0}.location{color:var(--muted);font-weight:700}.body-copy p{margin:0 0 18px}.add-inline{font-weight:800;margin-top:26px}.photo-rail{grid-column:2}.story-section:nth-child(even) .photo-rail{grid-column:1;grid-row:1}.section-hero-photo{background:var(--card);border-radius:24px;overflow:hidden;box-shadow:0 16px 44px rgba(36,28,24,.16);margin:0 0 18px}.section-hero-photo img{display:block;width:100%;height:auto}.section-hero-photo figcaption{font-size:12px;color:var(--muted);padding:11px 14px}.section-hero-photo figcaption strong{display:block;color:var(--ink);font-size:13px;margin-bottom:3px}.section-hero-photo figcaption span{display:block}.photo-grid{columns:2 210px;column-gap:14px}.photo-card{break-inside:avoid;margin:0 0 14px;background:var(--card);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(36,28,24,.12)}.photo-frame{position:relative;overflow:hidden}.photo-card img{display:block;width:100%;height:auto}.caption-badge{position:absolute;top:10px;right:10px;background:rgba(31,75,63,.92);color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 4px 12px rgba(0,0,0,.22)}.caption-overlay{position:absolute;left:0;right:0;bottom:0;transform:translateY(100%);transition:transform .18s ease;background:linear-gradient(180deg,rgba(36,28,24,0),rgba(36,28,24,.86) 22%);color:#fff;padding:42px 14px 14px;font-size:13px;line-height:1.45}.photo-card.has-caption:hover .caption-overlay,.photo-card.has-caption:focus-within .caption-overlay,.section-hero-photo.has-caption:hover .caption-overlay,.section-hero-photo.has-caption:focus-within .caption-overlay{transform:translateY(0)}.photo-card figcaption{font-size:12px;color:var(--muted);padding:10px 12px}.photo-card figcaption strong{display:block;color:var(--ink);font-size:13px;margin-bottom:3px}.photo-card figcaption span{display:block}.hero-photo{column-span:all}.memory-callout{grid-column:1/-1;background:#fff8f1;border-left:5px solid var(--terracotta);padding:22px 26px;border-radius:14px;box-shadow:0 8px 22px rgba(36,28,24,.08)}.memory-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--terracotta);margin:0}.memory-callout h3{font-family:"Cormorant Garamond",serif;font-size:34px;margin:3px 0 10px}.form-page{min-height:72vh;display:grid;place-items:center;padding:60px 20px}.form-card{width:min(760px,94vw);background:var(--card);padding:clamp(26px,5vw,52px);border-radius:28px;box-shadow:0 20px 60px rgba(36,28,24,.13)}.form-card.center{text-align:center}.form-card h1{font-size:64px}form{display:grid;gap:18px;margin-top:26px}label{display:grid;gap:7px;font-weight:800;color:#3a2a22}input,textarea,select{font:inherit;border:1px solid rgba(36,28,24,.18);border-radius:14px;padding:12px 14px;background:#fff;color:var(--ink)}textarea{resize:vertical}.error{color:#9b1c1c;font-size:13px}.note{background:#fff0d6;padding:12px;border-radius:12px}.site-footer{text-align:center;color:var(--muted);padding:42px 20px}
.toast-stack{position:fixed;right:18px;top:82px;z-index:50;display:grid;gap:10px}.toast{background:var(--olive);color:#fff;padding:11px 15px;border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.18);font-weight:800}.hero-current-badge{position:absolute;margin:-52px 0 0 12px;display:inline-block;background:rgba(217,173,100,.95);color:#241c18;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 5px 14px rgba(0,0,0,.18)}.hero-action-form{padding:9px 10px 0}.hero-action-form button{width:100%;border:1px solid rgba(31,75,63,.25);background:#eef6f0;color:var(--olive);border-radius:999px;padding:8px 10px;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.hero-action-form button:hover{background:var(--olive);color:#fff}@media (max-width:860px){.site-header{position:static}.story-section,.story-section:nth-child(even){display:block}.photo-rail,.story-section:nth-child(even) .photo-rail{display:block}.section-copy{position:static}.photo-grid{margin-top:26px}.hero{min-height:64vh}nav{gap:12px}.story-shell{padding-top:30px}}

/* Hero photo polish: keep section heroes cinematic and controlled on desktop and iPhone. */
.photo-rail{align-self:start;min-width:0}.section-hero-photo{position:relative;border-radius:28px;background:#efe1cf;box-shadow:0 18px 46px rgba(36,28,24,.17);border:1px solid rgba(36,28,24,.08)}.section-hero-photo .photo-frame{aspect-ratio:4/3;max-height:min(58vh,560px);background:linear-gradient(135deg,#e6d6bf,#f8efe2)}.section-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}.section-hero-photo figcaption{background:rgba(255,250,242,.96)}.photo-card{border:1px solid rgba(36,28,24,.06)}.photo-card img{object-fit:cover}.hero-current-badge{pointer-events:none}.story-section{scroll-margin-top:90px}
@media (min-width:861px){.story-section{grid-template-columns:minmax(0,0.95fr) minmax(360px,560px)}.story-section:nth-child(even){grid-template-columns:minmax(360px,560px) minmax(0,0.95fr)}.section-copy h2,.section-copy h1{max-width:760px}.photo-grid{columns:2 190px}.section-hero-photo{margin-bottom:18px}.section-copy{padding-top:6px}}
@media (max-width:860px){.photo-rail{margin-top:26px}.section-hero-photo{border-radius:22px;margin:0 0 16px}.section-hero-photo .photo-frame{aspect-ratio:4/3;max-height:none}.photo-grid{columns:2 150px;column-gap:10px}.photo-card{margin-bottom:10px}.section-copy h2,.section-copy h1{font-size:clamp(42px,12vw,58px)}.subtitle{font-size:18px}.body-copy{font-size:16px}.toast-stack{left:14px;right:14px;top:74px}}
@media (max-width:430px){.site-header{padding:14px 18px}.brand{font-size:26px}nav{font-size:13px}.story-shell{width:100%;padding:26px 18px}.story-section{padding:42px 0}.section-hero-photo .photo-frame{aspect-ratio:1.22}.photo-grid{columns:2 135px}.photo-card figcaption,.section-hero-photo figcaption{font-size:11px;padding:8px 9px}.hero-action-form{padding:7px 8px 0}.hero-action-form button{font-size:11px;padding:7px 8px}.date-label{font-size:12px}.location{font-size:15px}.add-inline{font-size:16px}}

/* Hard guardrail: story photos and story text must never occupy the same grid cell. */
@media (min-width:861px){
  .story-shell{width:min(1488px,93vw)}
  .story-section{grid-template-areas:"copy rail";grid-template-columns:minmax(0,1fr) minmax(380px,560px);gap:clamp(42px,5vw,72px);position:relative;isolation:isolate;overflow:visible}
  .story-section:nth-child(even){grid-template-areas:"rail copy";grid-template-columns:minmax(380px,560px) minmax(0,1fr)}
  .story-section .section-copy,.story-section:nth-child(even) .section-copy{grid-area:copy;grid-column:auto;grid-row:auto;position:relative!important;top:auto!important;z-index:2;align-self:start;max-width:780px;background:var(--paper)}
  .story-section .photo-rail,.story-section:nth-child(even) .photo-rail{grid-area:rail;grid-column:auto;grid-row:auto;position:relative;z-index:1;justify-self:stretch;width:100%;max-width:560px;overflow:hidden}
  .story-section:nth-child(even) .photo-grid{grid-column:auto;grid-row:auto}
  .section-hero-photo,.section-hero-photo .photo-frame,.photo-card,.photo-card .photo-frame{max-width:100%;min-width:0}
  .section-hero-photo img,.photo-card img{display:block;max-width:100%}
}

/* Day picker and non-column photo flow. */
.day-picker{padding:70px 24px 20px;background:#fff7ed;border-bottom:1px solid rgba(36,28,24,.1)}.day-picker-inner{width:min(1320px,94vw);margin:0 auto}.day-picker h2,.day-page-hero h1{font-family:"Cormorant Garamond",serif;line-height:.95;margin:0;color:#2e211b}.day-picker h2{font-size:clamp(44px,6vw,86px)}.day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:28px}.day-card{display:grid;grid-template-rows:150px auto auto auto;gap:4px;background:var(--card);border:1px solid rgba(36,28,24,.08);border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(36,28,24,.1);color:var(--ink);transition:transform .16s ease,box-shadow .16s ease}.day-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 18px 42px rgba(36,28,24,.15)}.day-card img{width:100%;height:150px;object-fit:cover}.day-card-date{padding:12px 14px 0;color:var(--terracotta);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900}.day-card strong{padding:0 14px;font-family:"Cormorant Garamond",serif;font-size:25px;line-height:1.02}.day-card-location{padding:0 14px 14px;color:var(--muted);font-size:12px;font-weight:800}.continuous-link{font-weight:900;margin:24px 0 0}.day-page-hero{padding:72px 24px 38px;text-align:center;background:#fff7ed;border-bottom:1px solid rgba(36,28,24,.1)}.day-page-hero>div{width:min(980px,92vw);margin:auto}.day-page-hero h1{font-size:clamp(50px,8vw,108px)}.section-nav{position:sticky;top:62px;z-index:9;background:rgba(251,244,232,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(36,28,24,.09)}.section-nav-row{display:flex;gap:10px;overflow-x:auto;padding:10px clamp(18px,4vw,54px);scrollbar-width:thin}.section-nav a{white-space:nowrap;border:1px solid rgba(31,75,63,.18);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900;background:rgba(255,250,242,.76)}.section-nav a[aria-current="page"]{background:var(--olive);color:#fff}.day-next-prev{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:30px 0}.button.ghost-dark{background:transparent;color:var(--olive);border:1px solid rgba(31,75,63,.28)}
@media (min-width:861px){.story-section{grid-template-areas:"copy rail" "gallery gallery" "memory memory";grid-template-columns:minmax(0,1fr) minmax(380px,560px);align-items:start}.story-section:nth-child(even){grid-template-areas:"rail copy" "gallery gallery" "memory memory";grid-template-columns:minmax(380px,560px) minmax(0,1fr)}.story-section .photo-gallery-wrap,.story-section:nth-child(even) .photo-gallery-wrap{grid-area:gallery;grid-column:auto;grid-row:auto;width:100%;margin-top:12px}.photo-gallery-wrap .photo-grid{columns:4 220px;column-gap:18px}.story-section-single .photo-gallery-wrap .photo-grid{columns:4 220px}.memory-callout{grid-area:memory}.story-section-single{border-bottom:0}.story-section-single .section-copy{position:relative!important;top:auto!important}}
@media (max-width:860px){.day-picker{padding:48px 18px 10px}.day-grid{grid-template-columns:1fr}.day-card{grid-template-rows:180px auto auto auto}.day-card img{height:180px}.section-nav{position:static}.photo-gallery-wrap{margin-top:16px}.day-next-prev{padding:22px 0}.day-next-prev .button{width:100%;text-align:center}}
@media (min-width:861px){
  .story-section .photo-gallery-wrap,.story-section:nth-child(even) .photo-gallery-wrap{grid-column:1/-1;grid-row:2;width:100%}
  .story-section .memory-callout,.story-section:nth-child(even) .memory-callout{grid-column:1/-1;grid-row:auto}
}
.day-card-placeholder{display:grid;place-items:center;height:150px;background:linear-gradient(135deg,rgba(31,75,63,.9),rgba(181,107,69,.78));color:#fff;font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:700}
@media (max-width:860px){.day-card-placeholder{height:180px}}

/* Landing is now chapter selection; full scroll moved to /continuous/. */
.landing-picker{min-height:calc(100vh - 63px);padding-top:clamp(44px,7vw,92px)}.day-picker h1,.continuous-hero h1{font-family:"Cormorant Garamond",serif;line-height:.95;margin:0;color:#2e211b;font-size:clamp(54px,8vw,112px)}.landing-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.continuous-hero{padding:64px 24px 36px;text-align:center;background:#fff7ed;border-bottom:1px solid rgba(36,28,24,.1)}.continuous-hero>div{width:min(980px,92vw);margin:auto}.chapter-back{font-weight:900;margin:0 0 20px}.day-detail-shell{padding-top:44px}
