@font-face{font-family:"Cinzel";src:url("brand/fonts/cinzel-400.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Cinzel";src:url("brand/fonts/cinzel-600.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat";src:url("brand/fonts/montserrat-400.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat";src:url("brand/fonts/montserrat-500.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url("brand/fonts/montserrat-600.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
:root{color-scheme:dark;--bg:#0F1114;--surface:#1F2328;--ink:#EAE7E1;--muted:#c3c2bf;--gold:#B98A4A;--line:#50545a;--paper:#EAE7E1;--dark:#1F2328;--header:88px;font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}button,input{font:inherit}a{color:inherit;text-underline-offset:.25em}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button:active,.button:active{transform:translateY(1px)}[hidden]{display:none!important}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:"Cinzel",Georgia,"Times New Roman",serif;font-weight:400;line-height:1.13;letter-spacing:-.035em}h1{font-size:clamp(2.65rem,4.1vw,4.4rem)}h2{font-size:clamp(2.1rem,3vw,3.25rem)}p{max-width:none}button,.button{border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink);padding:.7rem 1.1rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:46px;white-space:nowrap}button:hover,.button:hover{background:var(--surface);border-color:var(--gold)}.gold{background:var(--gold);color:#0F1114;border-color:var(--gold);font-weight:600}.gold:hover{background:#c79a5a;color:#0F1114}.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;left:1rem;top:-100px;z-index:20;background:var(--paper);color:var(--dark);padding:1rem}.skip-link:focus{top:1rem}.site-header{height:var(--header);padding:0 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--bg);border-bottom:1px solid var(--line);position:relative;z-index:5}.wordmark{font-family:"Cinzel",Georgia,"Times New Roman",serif;font-size:1.16rem;line-height:1.2;text-decoration:none;letter-spacing:-.015em}.wordmark span{display:block;font-size:.94rem;letter-spacing:.08em;margin-top:.2rem}.site-header nav a{font-size:.94rem;white-space:nowrap}.site-header nav a span{margin-left:.55rem}.eyebrow{font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem}.gallery-intro{padding-block:4.2rem 4.8rem}.gallery-intro>p:not(.eyebrow){font-size:1.13rem;max-width:42ch;margin-top:1.5rem;color:var(--muted)}.gallery-intro .button{margin-top:2rem}.gallery-heading h2{font-size:2.5rem}.gallery-heading p{color:var(--muted);margin-top:.65rem}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.8rem 0 2.5rem}.filters button{min-height:42px;font-size:.9rem;padding:.5rem 1rem}.filters button[aria-pressed="true"]{color:var(--dark);background:var(--paper);border-color:var(--paper)}.clip-gallery{display:grid;grid-template-columns:1fr 1fr;gap:3.2rem 2rem}.clip-item{min-width:0}.clip-item.is-portrait .clip-media{aspect-ratio:9/16;max-height:650px;max-width:100%;margin-inline:auto}.clip-media{aspect-ratio:16/9;background:#0F1114;overflow:hidden;position:relative}.clip-media video{width:100%;height:100%;display:block;object-fit:contain}.clip-item h3{font-size:1.75rem;margin:1rem 0 .5rem}.clip-description{font-size:.96rem;color:var(--muted)}.clip-detail{font-size:.8rem;color:var(--muted);margin-top:.85rem}.clip-downloads{display:flex;gap:1.25rem;margin-top:.7rem;font-size:.9rem;flex-wrap:wrap}.media-error{padding:.75rem 1rem;background:var(--surface);font-size:.9rem}.project-note{padding-block:5rem}.project-note h2{font-size:2rem;margin-bottom:1.2rem}.project-note p{font-size:.96rem;color:var(--muted);margin-bottom:1rem}.project-note>a{display:inline-block;margin-top:.5rem}.site-footer{padding-block:1.75rem 2.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;color:var(--muted)}
.clip-play{position:absolute;left:1rem;bottom:1rem;background:#0F1114f2;border-color:var(--gold);font-size:.88rem;min-height:44px;padding:.6rem 1.1rem}.clip-play:hover{background:var(--gold);color:#000}.clip-play:focus-visible{outline-offset:-5px}
body[data-page="scroll"] .journey-frame{background:var(--bg)}
/* Layers: ordinary content 0, chapter text 2, sticky mobile picture 3, header 5, motion controls 6, keyboard skip 20. */
body[data-page="scroll"] .site-header{position:sticky;top:0}.motion-controls{position:fixed;z-index:6;bottom:1rem;right:1rem;display:flex;align-items:center;gap:.4rem;padding:.4rem;background:var(--bg);border:1px solid var(--line);border-radius:4px;box-shadow:0 2px 14px #00000044}.motion-controls button{font-size:.8rem;padding:.45rem .7rem;min-height:42px}.motion-controls>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.journey{position:relative;display:grid;grid-template-columns:minmax(300px,32%) minmax(0,1fr);padding-inline:3rem;gap:1.5rem;--collapse:0}.visual-sticky{grid-column:2;grid-row:1;position:sticky;top:var(--header);height:calc(100svh - var(--header));align-self:start;display:flex;align-items:center;padding-block:1.5rem;min-width:0;pointer-events:none}.journey-frame{position:relative;width:100%;height:calc((100svh - var(--header) - 3rem)*(1 - var(--collapse)) + 230px*var(--collapse));background:#0F1114;overflow:hidden;border-radius:3px;transform:translateY(calc(-1 * var(--collapse) * 12svh))}.journey-video,.journey-poster,#journey-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.journey-poster{z-index:1}.video-fallback{position:absolute;z-index:2;bottom:0;background:#0F1114ed;width:100%;padding:.8rem;font-size:.85rem;color:var(--muted)}.chapters{grid-row:1;grid-column:1;position:relative;z-index:2}.chapter{min-height:88svh;display:flex;align-items:center;padding:3rem 0}.chapter.opening{min-height:calc(100svh - var(--header))}.chapter.closing{min-height:75svh}.chapter-copy{max-width:29rem}.chapter-copy h1{font-size:clamp(2.5rem,3.7vw,4.05rem)}.chapter-copy h2{font-size:clamp(2.15rem,3.1vw,3.3rem)}.chapter-copy>p:not(.eyebrow){font-size:1.06rem;color:var(--muted);margin-top:1.5rem;max-width:32ch}.chapter-copy>a{display:inline-block;margin-top:1.7rem}.chapter-copy .memorial-dates{font-size:.92rem;letter-spacing:.015em}.dedications-section{position:relative;background:var(--paper);color:var(--dark);padding-block:5rem 5.5rem}.dedications-section h2{font-size:clamp(2.5rem,4vw,4rem)}.section-lead{margin-top:1rem;font-size:1.1rem}.dedications-section form{max-width:640px;margin-top:2rem}.dedications-section label{display:block;font-weight:600;margin-bottom:.5rem}.search-row{display:flex;gap:.6rem}.search-row input{width:100%;min-width:0;border:1px solid #74777c;border-radius:3px;background:#f4f1ec;color:var(--dark);padding:.9rem 1rem;min-height:50px}.search-row input::placeholder{color:#575b62}.dedications-section button{color:var(--dark);border-color:#74777c}.dedications-section button:hover{background:#dedbd5}.result-count{font-size:.85rem;margin:1.25rem 0 2rem;color:#575b62}.dedication-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem 2.25rem}.dedication-item{display:flex;align-items:center;gap:1rem;min-height:90px;padding-block:.6rem;min-width:0}.dedication-item img{width:80px;height:80px;flex:none;object-fit:contain;background:#dedbd5;border-radius:2px}.dedication-item h3{font-family:"Montserrat","Segoe UI",Arial,sans-serif;font-size:1.05rem;line-height:1.4;letter-spacing:0;font-weight:600;overflow-wrap:anywhere}.dedication-item a{display:inline-block;font-size:.86rem;margin-top:.2rem}.dedication-item .unavailable{font-size:.82rem;margin-top:.25rem;color:#575b62}.route-note{font-size:.81rem;color:#575b62;max-width:85ch;margin-top:2rem}#more-dedications{margin-top:2rem}.motion-off .journey{display:block;max-width:1280px;margin-inline:auto;padding-top:2rem}.motion-off .visual-sticky{position:relative;top:auto;height:min(52vw,600px);padding:0;pointer-events:auto}.motion-off .journey-frame{height:100%;transform:none}.motion-off .chapters{display:grid;grid-template-columns:1fr 1fr;gap:1rem 5rem;padding:2rem 0 4rem}.motion-off .chapter{min-height:0!important;align-items:start;padding:2rem 0}.motion-off .chapter-copy h1{font-size:3.3rem}.motion-off .chapter-copy h2{font-size:2.45rem}
@media (min-width:1800px){.journey{padding-inline:max(3rem,calc((100vw - 1700px)/2))}}
@media (max-width:1000px){.wrap{width:calc(100% - 48px)}.site-header{padding-inline:1.5rem}.journey{padding-inline:1.5rem;grid-template-columns:minmax(250px,34%) minmax(0,1fr);gap:1rem}.chapter-copy h1{font-size:2.9rem}.chapter-copy h2{font-size:2.45rem}.dedication-results{grid-template-columns:repeat(2,minmax(0,1fr))}.motion-off .chapters{gap:1rem 2rem}}
@media (max-width:700px){:root{--header:76px}.site-header{padding-inline:1.1rem;gap:1rem}.wordmark{font-size:.96rem}.wordmark span{font-size:.8rem}.site-header nav a{font-size:.8rem}.site-header nav a span{display:none}.wrap{width:calc(100% - 36px)}.gallery-intro{padding-block:3rem}.gallery-intro h1{font-size:2.8rem}.clip-gallery{grid-template-columns:1fr;gap:2.75rem}.clip-item.is-portrait .clip-media{max-height:590px}.gallery-heading h2{font-size:2rem}.project-note{padding-block:3rem}.site-footer{display:block;padding-bottom:6.5rem}.site-footer>a{display:block;margin-top:.6rem}.journey{display:block;padding-inline:0}.visual-sticky{position:sticky;z-index:3;top:var(--header);height:36svh;background:var(--bg);padding:.6rem 1rem;display:block;margin-bottom:-36svh}.journey-frame{height:calc(100% - 6svh*var(--collapse));transform:none}.chapters{padding-inline:1.25rem}.chapter,.chapter.opening{min-height:84svh;padding:calc(36svh + 1.5rem) 0 2.5rem;align-items:center}.chapter.closing{min-height:84svh}.chapter-copy{max-width:100%}.chapter-copy h1{font-size:2.35rem}.chapter-copy h2{font-size:2.1rem}.chapter-copy .eyebrow{font-size:.68rem;margin-bottom:.85rem}.chapter-copy>p:not(.eyebrow){font-size:.99rem;margin-top:1rem}.chapter-copy>a{margin-top:1rem}.motion-controls{bottom:.6rem;right:.6rem;max-width:calc(100% - 1.2rem)}.motion-controls button{font-size:.74rem;min-height:42px;padding:.4rem .6rem}.dedications-section{padding-block:3.5rem}.dedications-section h2{font-size:2.5rem}.dedication-results{grid-template-columns:1fr;gap:.5rem}.search-row button{padding:.65rem .8rem}.dedication-item{min-height:80px}.dedication-item img{width:72px;height:72px}.motion-off .journey{padding:1.2rem}.motion-off .visual-sticky{height:55vw;margin:0;padding:0}.motion-off .chapters{display:block;padding:1.5rem 0 2rem}.motion-off .chapter{padding:1.4rem 0}.motion-off .chapter-copy h1{font-size:2.65rem}.motion-off .chapter-copy h2{font-size:2.1rem}}
@media (max-height:550px) and (min-width:701px){.chapter-copy h1{font-size:2.65rem}.chapter-copy h2{font-size:2.2rem}.chapter{min-height:110svh}.chapter.opening{min-height:calc(100svh - var(--header))}.chapter-copy>p:not(.eyebrow){margin-top:.8rem;font-size:.95rem}.journey-frame{transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.motion-controls,.site-header nav,.filters,.clip-downloads{display:none}.journey{display:block}.visual-sticky{position:static;height:300px;margin:0}.chapter{min-height:0!important;padding:1rem 0}.chapter-copy{max-width:none}.chapters{display:block}.site-header{position:static!important}.dedication-results{display:block}}
.reconstruction-notice{position:fixed;z-index:6;left:1rem;bottom:1rem;max-width:min(620px,calc(100% - 300px));padding:.55rem .8rem;border:1px solid var(--line);border-radius:3px;background:#0F1114f5;color:var(--muted);font-size:.72rem;line-height:1.5}.site-footer{padding-bottom:6rem}body[data-page="gallery"] .reconstruction-notice{max-width:min(620px,calc(100% - 2rem))}
@media(max-width:700px){.reconstruction-notice,body[data-page="gallery"] .reconstruction-notice{left:.6rem;right:.6rem;bottom:.6rem;max-width:none;font-size:.67rem;line-height:1.45;padding:.5rem .65rem}.motion-controls{top:var(--header);bottom:auto;left:0;right:0;max-width:none;height:54px;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:.35rem 1rem;justify-content:flex-end;box-shadow:none}.journey{margin-top:54px}.visual-sticky{top:calc(var(--header) + 54px);height:30svh;margin-bottom:-30svh}.chapter,.chapter.opening{padding-top:calc(30svh + 1.5rem);padding-bottom:5rem;min-height:calc(100svh - var(--header) - 54px)}.motion-off .journey{margin-top:54px}.site-footer{padding-bottom:6.5rem}}
@media print{.reconstruction-notice{position:static;max-width:none;margin:1rem}.journey{margin-top:0}}
/* Desktop motion opens as a full-viewport picture, then becomes a small header.
   The copy occupies only the left safe area; phones and still-image mode keep
   their separate picture/text layout. */
@media screen and (min-width:701px){
  body:not(.motion-off) .journey{grid-template-columns:1fr;padding-inline:0;gap:0;--header-image-width:min(58vw,680px);--header-image-height:min(32.625vw,382.5px)}
  body:not(.motion-off) .visual-sticky{grid-column:1;grid-row:1;display:block;width:100%;padding:0;overflow:hidden}
  body:not(.motion-off) .journey-frame{position:absolute;top:calc(32px * var(--collapse));left:calc((100% - var(--header-image-width) - max(24px,3vw)) * var(--collapse));width:calc(100% * (1 - var(--collapse)) + var(--header-image-width) * var(--collapse));height:calc((100svh - var(--header)) * (1 - var(--collapse)) + var(--header-image-height) * var(--collapse));border-radius:calc(4px * var(--collapse));transform:none}
  body:not(.motion-off) #journey-video,body:not(.motion-off) .journey-poster{object-fit:cover}
  body:not(.motion-off) .visual-sticky::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(15,17,20,.94) 0%,rgba(15,17,20,.83) 24%,rgba(15,17,20,.42) 36%,rgba(15,17,20,0) 51%);opacity:calc(1 - var(--collapse));z-index:1}
  body:not(.motion-off) .chapters{grid-column:1;grid-row:1;padding-inline:max(24px,3vw)}
  body:not(.motion-off) .chapter-copy{width:min(27vw,410px);max-width:none}
  body:not(.motion-off) .chapter-copy>p:not(.eyebrow){color:var(--ink)}
}

/* Supplied memorial identity: local logo and fonts, with direct model access. */
html{scroll-padding-top:calc(var(--header) + 24px)}
.journey{overflow:clip}
.site-header{position:sticky;top:0}
.wordmark{display:block;flex:none;width:224px;line-height:0}
.wordmark img{display:block;width:100%;height:auto}
.site-header nav{display:flex;align-items:center;gap:1.6rem}
.site-header .header-secondary{display:inline-flex;align-items:center;min-height:44px}
.site-header .view-model{font-weight:600;font-size:.83rem;padding:.65rem .85rem;gap:.5rem}
.site-header .view-model span{margin:0}
h1,h2,h3{letter-spacing:-.025em}
.chapter-copy h1{font-size:clamp(2rem,3.2vw,3.55rem)}
.chapter-copy h2{font-size:clamp(1.9rem,2.7vw,3rem)}
.gallery-intro h1{font-size:clamp(2.1rem,4.1vw,4.4rem)}
@media(min-width:701px) and (max-width:1100px){
  .wordmark{width:205px}.site-header nav{gap:1rem}
  .site-header nav a{font-size:.81rem}
  .chapter-copy h1{font-size:clamp(1.7rem,2.8vw,1.9rem)}
  .chapter-copy h2{font-size:clamp(1.6rem,2.65vw,1.9rem)}
}
@media(max-width:700px){
  :root{--header:116px}
  .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:66px 44px;gap:0 .65rem;padding:3px 1rem}
  .site-header nav{display:contents}
  .wordmark{grid-column:1;grid-row:1;width:min(210px,100%)}
  .site-header .view-model{grid-column:2;grid-row:1;font-size:.73rem;padding:.55rem .7rem;min-height:44px}
  .site-header .header-secondary{grid-column:1 / -1;grid-row:2;justify-self:start;font-size:.83rem}
  .site-header .header-secondary span{display:inline;margin-left:.4rem}
  .chapter-copy h1,.motion-off .chapter-copy h1{font-size:clamp(1.8rem,7.8vw,2.35rem)}
  .chapter-copy h2,.motion-off .chapter-copy h2{font-size:clamp(1.75rem,7.3vw,2.2rem)}
  .chapter-copy>p:not(.eyebrow){font-size:.94rem}
  .motion-controls button{font-size:.72rem}
  .dedications-section h2{font-size:clamp(1.8rem,8vw,2.5rem)}
}
@media print{.site-header{position:static!important}.site-header nav{display:none}}
/* Fade only the outer 1% of the encoded matte into the page background. */
body[data-page="scroll"] #journey-video,
body[data-page="scroll"] .journey-poster{
  mask-image:linear-gradient(90deg,transparent,#000 1%,#000 99%,transparent),linear-gradient(0deg,transparent,#000 1%,#000 99%,transparent);
  mask-composite:intersect;
}
@media(max-width:700px){
  body[data-page="scroll"] #journey-video,
  body[data-page="scroll"] .journey-poster{top:50%;bottom:auto;height:auto;max-height:100%;aspect-ratio:16/9;transform:translateY(-50%)}
}
/* Preserve the first-screen composition, then allow 50% more travel per chapter. */
@media screen and (min-width:701px){
  body:not(.motion-off) .chapter:not(.opening){min-height:132svh}
  body:not(.motion-off) .chapter.closing{min-height:112.5svh}
}
@media screen and (min-width:701px) and (max-height:550px){
  body:not(.motion-off) .chapter:not(.opening){min-height:165svh}
}
@media screen and (max-width:700px){
  body:not(.motion-off) .chapter:not(.opening){min-height:calc((100svh - var(--header) - 54px) * 1.5)}
}
