/* Progressive motion and visual rhythm for the homepage. Content remains fully
   visible without JavaScript and all motion is disabled for reduced-motion. */
body.home-motion{--motion-green:#173c2b;--motion-gold:#a87320;--motion-paper:#fffdf8}
body.home-motion .site-header{transition:background-color .3s ease,box-shadow .3s ease,border-color .3s ease}
body.home-motion .site-header.is-scrolled{background:rgba(255,253,248,.96);border-color:rgba(178,160,122,.45);box-shadow:0 10px 30px rgba(18,43,31,.1)}
body.home-motion .site-header nav a{position:relative;padding-block:18px;transition:color .2s ease}
body.home-motion .site-header nav a:after{content:"";position:absolute;right:50%;bottom:10px;left:50%;height:1px;background:#a87320;transition:right .25s ease,left .25s ease}
body.home-motion .site-header nav a:hover{color:#8b5915}
body.home-motion .site-header nav a:hover:after{right:0;left:0}

/* The hero's ::before layer is reserved for the architectural artwork. */
body.home-motion .hero__inner:after{content:"";position:absolute;right:6%;bottom:-34px;left:6%;height:1px;background:linear-gradient(90deg,transparent,rgba(231,193,111,.8),transparent);pointer-events:none}
body.home-motion .hero__inner{will-change:transform}
body.home-motion .hero h1{letter-spacing:-.035em;text-wrap:balance}
body.home-motion .hero .search{border:1px solid rgba(255,255,255,.55);box-shadow:0 24px 60px rgba(4,20,12,.38),0 0 0 7px rgba(255,255,255,.045)}
body.home-motion .hero .search button{position:relative;overflow:hidden;transition:background .2s ease,transform .2s ease}
body.home-motion .hero .search button:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.25) 47%,transparent 68%);transform:translateX(-125%);transition:transform .65s ease}
body.home-motion .hero .search button:hover{background:#986619;transform:translateY(-1px)}
body.home-motion .hero .search button:hover:after{transform:translateX(125%)}

body.home-motion .results--home{border:1px solid rgba(194,179,147,.5);border-radius:18px;background:linear-gradient(145deg,rgba(255,253,248,.94),rgba(246,241,230,.82));box-shadow:0 24px 65px rgba(28,48,37,.075)}
body.home-motion .results--home .section-title{position:relative}
body.home-motion .results--home .section-title:after{content:"";position:absolute;bottom:-1px;left:0;width:76px;height:2px;background:linear-gradient(90deg,#8d5b18,#d5ae60)}
body.home-motion .cards--home-preview .card{transition:transform .28s cubic-bezier(.2,.75,.25,1),box-shadow .28s ease,filter .28s ease}
body.home-motion .cards--home-preview .card:hover{transform:translateY(-7px);filter:saturate(1.04);box-shadow:inset 0 0 0 2px rgba(238,239,235,.72),inset 9px 6px 17px rgba(255,255,255,.34),inset -10px -7px 18px rgba(45,47,44,.28),0 4px 0 #6f716d,0 24px 42px rgba(36,37,34,.28)}
body.home-motion .home-list-cta,body.home-motion .digital-tour-card{--mx:50%;--my:50%}
body.home-motion .home-list-cta:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx) var(--my),rgba(210,170,86,.14),transparent 34%);opacity:0;transition:opacity .3s ease}
body.home-motion .home-list-cta:hover:before{opacity:1}
body.home-motion .digital-tour-card{transition:transform .32s cubic-bezier(.2,.75,.25,1),box-shadow .32s ease}
body.home-motion .digital-tour-card:hover{transform:translateY(-6px);box-shadow:0 32px 70px rgba(13,42,28,.28),inset 0 -3px #c9973e}

body.home-motion .memory-journey{position:relative;padding:52px 50px;border:1px solid rgba(194,179,147,.48);border-radius:18px;background:linear-gradient(145deg,#fffdf8,#f0e9db);box-shadow:0 22px 58px rgba(28,48,37,.07)}
body.home-motion .memory-journey:after{content:"✦";position:absolute;top:0;left:50%;padding:0 16px;background:#f4f0e6;color:#a87320;font:18px/1 "Noto Serif VN",serif;transform:translate(-50%,-50%)}
body.home-motion .memory-journey li>b{background:transparent}
body.home-motion .memory-journey li:after{content:"";position:absolute;top:7px;left:35px;width:8px;height:8px;border:2px solid #a87320;border-radius:50%;background:#fffdf8;box-shadow:0 0 0 5px rgba(168,115,32,.09)}

body.home-motion .about-page--embedded{position:relative;overflow:hidden}
body.home-motion .about-page--embedded:before{content:"";position:absolute;z-index:0;top:8%;right:-180px;width:420px;height:420px;border:1px solid rgba(168,115,32,.09);border-radius:50%;box-shadow:0 0 0 52px rgba(168,115,32,.025),0 0 0 104px rgba(168,115,32,.018);pointer-events:none}
body.home-motion .about-page--embedded>section,body.home-motion .about-page--embedded>figure{position:relative;z-index:1}
body.home-motion .about-photo--wide{overflow:hidden;border-radius:16px;box-shadow:0 28px 70px rgba(27,46,36,.16)}
body.home-motion .about-photo--wide img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
body.home-motion .about-photo--wide:hover img{transform:scale(1.025)}
body.home-motion .about-history,body.home-motion .about-homecoming,body.home-motion .about-stele{position:relative}
body.home-motion .about-history:before,body.home-motion .about-homecoming:before,body.home-motion .about-stele:before{content:"";position:absolute;top:0;right:0;left:0;height:1px;background:linear-gradient(90deg,transparent,rgba(168,115,32,.4),transparent)}
body.home-motion .about-homecoming__image{filter:drop-shadow(0 22px 30px rgba(31,47,38,.16))}
body.home-motion .about-stele figure{transition:transform .3s ease,box-shadow .3s ease}
body.home-motion .about-stele figure:hover{transform:translateY(-6px);box-shadow:0 18px 35px rgba(31,47,38,.18)}
body.home-motion .about-stele figure:nth-child(2):hover{transform:translateY(39px)}
body.home-motion .about-final{position:relative;overflow:hidden}
body.home-motion .about-final:before{content:"";position:absolute;top:-170px;left:50%;width:430px;height:430px;border:1px solid rgba(228,194,116,.15);border-radius:50%;box-shadow:0 0 0 50px rgba(228,194,116,.025),0 0 0 100px rgba(228,194,116,.018);transform:translateX(-50%);pointer-events:none}

/* One spacing and width system for the large homepage chapters. */
body.home-motion main{position:relative;z-index:1;overflow:hidden}
body.home-motion .results--home{width:min(1120px,calc(100% - 48px));max-width:none;margin:56px auto 0;padding:50px 38px 42px}
body.home-motion .results--home:has(+.digital-tour-card){padding-bottom:42px}
body.home-motion .results--home+.digital-tour-card{width:min(1120px,calc(100% - 48px));margin-top:34px}
body.home-motion .digital-tour-card+.memory-journey{width:min(1120px,calc(100% - 48px));margin-top:82px;margin-bottom:70px}
body.home-motion .memory-journey:has(+.about-page--embedded){margin-bottom:70px}
body.home-motion .about-page--embedded .about-lead{width:min(1120px,calc(100% - 48px));gap:64px}
body.home-motion .about-page--embedded .about-history,body.home-motion .about-page--embedded .about-homecoming,body.home-motion .about-page--embedded .about-stele{width:min(1120px,calc(100% - 48px))}
body.home-motion .cards--home-preview{gap:28px 20px}

/* Animated paper/granite texture stays behind every interactive element. */
body.home-motion:before,body.home-motion:after{content:"";position:fixed;z-index:0;inset:0;pointer-events:none}
body.home-motion:before{background-image:url("images/granite-fine.svg");background-size:420px 420px;opacity:.035;mix-blend-mode:multiply}
body.home-motion:after{inset:-22%;background:radial-gradient(circle at 14% 24%,rgba(184,135,49,.1),transparent 22%),radial-gradient(circle at 82% 66%,rgba(36,78,58,.09),transparent 25%),radial-gradient(circle at 62% 10%,rgba(255,255,255,.62),transparent 18%);filter:blur(2px);animation:homeTextureDrift 24s ease-in-out infinite alternate}
body.home-motion .site-header,body.home-motion footer{position:relative;z-index:4}
@keyframes homeTextureDrift{0%{transform:translate3d(-1.2%,-.7%,0) scale(1)}50%{transform:translate3d(1%,1.1%,0) scale(1.025)}100%{transform:translate3d(-.3%,1.6%,0) scale(1.012)}}

/* Image-only parallax: text and controls remain stable while scrolling. */
body.home-motion [data-parallax="image"]{--parallax-y:0px;will-change:transform}
body.home-motion .about-photo--wide img{transform:translate3d(0,var(--parallax-y),0) scale(1.035)}
body.home-motion .about-photo--wide:hover img{transform:translate3d(0,var(--parallax-y),0) scale(1.06)}
body.home-motion .about-homecoming__image img{transform:translate3d(0,var(--parallax-y),0) scale(1.035)}
body.home-motion .digital-tour-card__visual{background-position:center calc(50% + var(--parallax-y,0px))}

body.home-motion.motion-ready [data-motion]{opacity:0;transform:translate3d(0,28px,0);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--motion-delay,0ms)}
body.home-motion.motion-ready [data-motion="left"]{transform:translate3d(-34px,14px,0)}
body.home-motion.motion-ready [data-motion="right"]{transform:translate3d(34px,14px,0)}
body.home-motion.motion-ready [data-motion="scale"]{transform:scale(.965)}
body.home-motion.motion-ready [data-motion].is-visible{opacity:1;transform:none}
body.home-motion.motion-ready .hero [data-motion]{animation:homeHeroIn .85s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--motion-delay,0ms)}
@keyframes homeHeroIn{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}

@media(max-width:760px){
  body.home-motion .results--home{width:calc(100% - 24px);margin-top:28px;padding:36px 12px 30px;border-radius:14px}
  body.home-motion .results--home:has(+.digital-tour-card){padding-bottom:30px}
  body.home-motion .results--home+.digital-tour-card{width:calc(100% - 24px);margin-top:24px}
  body.home-motion .digital-tour-card+.memory-journey{width:calc(100% - 24px);margin-top:54px;margin-bottom:48px}
  body.home-motion .memory-journey:has(+.about-page--embedded){margin-bottom:48px}
  body.home-motion .memory-journey{padding:36px 20px;border-radius:14px}
  body.home-motion .about-page--embedded .about-lead,body.home-motion .about-page--embedded .about-history,body.home-motion .about-page--embedded .about-homecoming,body.home-motion .about-page--embedded .about-stele{width:calc(100% - 40px)}
  body.home-motion .cards--home-preview{gap:20px 12px}
  body.home-motion .memory-journey li:after{left:27px}
  body.home-motion .about-photo--wide{border-radius:0}
  body.home-motion .about-stele figure:nth-child(2):hover{transform:none}
  body.home-motion:after{animation-duration:32s;opacity:.7}
}

/* v8 — larger, more readable body copy across the homepage. */
body.home-motion .results--home .card p.stone-hometown{font-size:15px;line-height:1.55}
body.home-motion .memory-journey li p{font-size:15.5px;line-height:1.75}
body.home-motion .about-page--embedded .about-lead p:not(.about-dropcap),
body.home-motion .about-page--embedded .about-copy p,
body.home-motion .about-page--embedded .about-homecoming p,
body.home-motion .about-page--embedded .about-stele__intro>p,
body.home-motion .about-page--embedded .about-final>p{font-size:16px;line-height:1.85}
body.home-motion .about-page--embedded .about-numbers span{font-size:11px;line-height:1.45}
@media(max-width:760px){
  body.home-motion .results--home .card p.stone-hometown{min-height:38px;font-size:13.5px;line-height:1.5}
  body.home-motion .memory-journey li p{font-size:15.5px;line-height:1.75}
  body.home-motion .about-page--embedded .about-lead p:not(.about-dropcap),
  body.home-motion .about-page--embedded .about-copy p,
  body.home-motion .about-page--embedded .about-homecoming p,
  body.home-motion .about-page--embedded .about-stele__intro>p,
  body.home-motion .about-page--embedded .about-final>p{font-size:16px;line-height:1.8}
}
@media(prefers-reduced-motion:reduce){
  body.home-motion *,body.home-motion *:before,body.home-motion *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  body.home-motion.motion-ready [data-motion]{opacity:1!important;transform:none!important}
  body.home-motion:after{animation:none!important}
  body.home-motion [data-parallax="image"]{--parallax-y:0px!important}
}

/* Let the memorial records sit directly on the page instead of inside a
   second oversized card. Individual stone cards remain the visual anchors. */
body.home-motion .results--home{
  margin-top:64px;
  padding:0 0 30px;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
}
body.home-motion .results--home:has(+.digital-tour-card){padding-bottom:30px}

@media(max-width:760px){
  body.home-motion .results--home{
    width:calc(100% - 24px);
    margin-top:38px;
    padding:0 0 24px;
    border-radius:0;
  }
  body.home-motion .results--home:has(+.digital-tour-card){padding-bottom:24px}
}

/* Open timeline chapter: no outer card, with a mathematically aligned rail. */
body.home-motion .memory-journey{
  padding:8px 0 0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
}
body.home-motion .memory-journey:after{content:none}
body.home-motion .memory-journey ol::before{
  top:7px;
  bottom:9px;
  left:91px;
  background:linear-gradient(180deg,#b88731 0%,#d5c69f 14%,#d5c69f 86%,#b88731 100%);
}
body.home-motion .memory-journey li{
  grid-template-columns:72px minmax(0,1fr);
  gap:38px;
  padding-bottom:32px;
}
body.home-motion .memory-journey li>b{
  padding:0;
  color:#946018;
  font-size:16px;
  line-height:1.4;
  text-align:right;
}
body.home-motion .memory-journey li:after{
  top:5px;
  left:85px;
  box-sizing:border-box;
  width:13px;
  height:13px;
  border:3px solid #f4f0e6;
  background:#a87320;
  box-shadow:0 0 0 1px #a87320,0 0 0 6px rgba(168,115,32,.08);
}
body.home-motion .memory-journey li>div{padding-top:0}
body.home-motion .memory-journey li strong{display:block;line-height:1.35}
body.home-motion .memory-journey li p{margin-top:7px;line-height:1.65}

@media(max-width:760px){
  body.home-motion .memory-journey{width:calc(100% - 28px);padding:0}
  body.home-motion .memory-journey__intro{position:relative;margin-bottom:29px;padding:0 12px 22px 0}
  body.home-motion .memory-journey__intro:after{content:"";position:absolute;bottom:0;left:0;width:76px;height:2px;background:linear-gradient(90deg,#8d5b18,#d6b365 72%,transparent)}
  body.home-motion .memory-journey__intro h2{max-width:330px;margin:0;color:#173c2b;font-size:clamp(34px,9.6vw,40px);line-height:1.14;letter-spacing:-.025em;text-wrap:balance}
  body.home-motion .memory-journey ol{--timeline-rail:76px;margin-top:4px}
  body.home-motion .memory-journey ol::before{top:7px;bottom:8px;left:var(--timeline-rail)}
  body.home-motion .memory-journey li{
    grid-template-columns:60px minmax(0,1fr);
    column-gap:32px;
    align-items:start;
    padding-bottom:34px;
  }
  body.home-motion .memory-journey li>b{width:60px;color:#895715;font-size:14px;line-height:21px;letter-spacing:.01em;white-space:nowrap;text-align:right}
  body.home-motion .memory-journey li:after{top:3px;left:calc(var(--timeline-rail) - 7px);width:15px;height:15px;border-width:3px;background:#9f691d;box-shadow:0 0 0 1px #9f691d,0 0 0 7px rgba(168,115,32,.09)}
  body.home-motion .memory-journey li>div{min-width:0;padding-top:0}
  body.home-motion .memory-journey li strong{color:#18392b;font-size:20px;line-height:1.28;letter-spacing:-.01em;text-wrap:balance}
  body.home-motion .memory-journey li p{margin-top:8px;color:#59675f;font-size:14px;line-height:1.72}
}

/* Final readability pass; kept last so legacy mobile rules cannot shrink copy. */
body.home-motion .results--home .card p.stone-hometown{font-size:15px;line-height:1.55}
body.home-motion .memory-journey li p{font-size:15.5px;line-height:1.75}
body.home-motion .about-page--embedded .about-lead p:not(.about-dropcap),
body.home-motion .about-page--embedded .about-copy p,
body.home-motion .about-page--embedded .about-homecoming p,
body.home-motion .about-page--embedded .about-stele__intro>p,
body.home-motion .about-page--embedded .about-final>p{font-size:16px;line-height:1.85}
body.home-motion .about-page--embedded .about-numbers span{font-size:11px;line-height:1.45}
@media(max-width:760px){
  body.home-motion .results--home .card p.stone-hometown{min-height:38px;font-size:13.5px;line-height:1.5}
  body.home-motion .memory-journey li p{font-size:15.5px;line-height:1.75}
  body.home-motion .about-page--embedded .about-lead p:not(.about-dropcap),
  body.home-motion .about-page--embedded .about-copy p,
  body.home-motion .about-page--embedded .about-homecoming p,
  body.home-motion .about-page--embedded .about-stele__intro>p,
  body.home-motion .about-page--embedded .about-final>p{font-size:16px;line-height:1.8}
}
