/* Visitor and QR views: mobile first, including long names and large text. */
.memorial,.memorial *,.print-card{min-width:0}
.memorial{width:100%;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
.memorial h1{font-size:clamp(32px,6vw,57px);line-height:1.14;letter-spacing:-.035em;overflow-wrap:anywhere;text-wrap:balance}
.memorial h2{font-size:clamp(25px,4vw,34px);line-height:1.25;overflow-wrap:anywhere}
.memorial .eyebrow{line-height:1.6;flex-wrap:wrap;letter-spacing:1.5px}
.memorial .quote{font-size:clamp(23px,4.5vw,31px);line-height:1.6;overflow-wrap:anywhere}
.memorial .story,.memorial .legacy-card p,.memorial .memorial-end,.gallery figcaption{overflow-wrap:anywhere}
.memorial .story{font-size:17px;line-height:1.9}
.memorial .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery button,.gallery figure{width:100%;min-width:0}
.memorial .gallery img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.memorial video{display:block;width:100%;height:auto;max-height:75svh;margin:15px auto;object-fit:contain}
.memorial .btn,.journey-dialog .btn,.print-area .btn{min-height:44px;white-space:normal;text-align:center;line-height:1.5}
.memorial .capsule-link{min-height:44px;padding:12px 0;font-size:15px;line-height:1.7;max-width:100%;overflow-wrap:anywhere}
.memorial .capsule-link small,.memorial .capsule-privacy{font-size:12px;line-height:1.7}
.memorial .memory-tools{background:#f4f7fb;border:1px solid #e2e8f0}
.memorial .visit-intro p{font-size:clamp(21px,4vw,25px);line-height:1.5}
.journey-dialog{max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.journey-dialog .journey-story h2{overflow-wrap:anywhere}
.journey-dialog .journey-top{align-items:flex-start}
.journey-dialog .journey-top .mini-label{overflow-wrap:anywhere;font-size:11px;line-height:1.7}
.journey-dialog .journey-top button{flex-shrink:0}
.journey-dialog .journey-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px}
#lightbox{padding:8px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
#lightbox img{max-width:100%;max-height:calc(100dvh - 60px);object-fit:contain;margin:auto}
#lightbox .close{width:44px;height:44px;right:12px;top:12px;box-shadow:0 2px 12px #0002}
@media screen{
  .print-card{width:100%;max-width:350px;overflow-wrap:anywhere}
  .print-card .qr{max-width:100%;height:auto;aspect-ratio:1}
  .print-card h2{font-size:clamp(24px,6vw,29px);line-height:1.25}
}
@media(max-width:720px){
  .memorial{padding-top:28px;padding-bottom:calc(44px + env(safe-area-inset-bottom))}
  .memorial .portrait{width:148px;height:190px;margin-top:24px}
  .memorial .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
  .memorial .gallery figcaption{font-size:14px;line-height:1.75;padding:10px 2px}
  .memorial .gallery figcaption span{font-size:12px}
  .memorial .visit-buttons{display:grid;grid-template-columns:1fr;gap:10px}
  .memorial .visit-buttons .btn{width:100%;font-size:15px;min-height:48px}
  .memorial .legacy-card{padding:24px 18px;text-align:left}
  .memorial .legacy-card p{font-size:19px;line-height:1.8}
  .memorial.large-reading .story,.memorial.large-reading .legacy-card p{font-size:22px;line-height:1.9}
  .memorial.large-reading .gallery{grid-template-columns:1fr}
  .memorial.large-reading .gallery figcaption{font-size:19px}
  .journey-dialog{width:calc(100vw - 24px);padding:16px}
  .journey-dialog #journey-slide{grid-template-columns:minmax(0,1fr)}
  .journey-dialog #journey-slide>img{height:32svh;max-height:320px}
  .journey-dialog .journey-navigation .btn{font-size:13px;padding:10px 8px}
  .journey-dialog .journey-hint{font-size:12px;line-height:1.7}
  .memorial-view .header{height:auto;min-height:82px;gap:12px;padding:16px 0;flex-wrap:wrap}
  .memorial-view .header .brand{font-size:22px;max-width:100%}
  .memorial-view .header .nav .btn{min-height:44px;font-size:12px}
  .memorial-view>.shell,.memorial-view #app>.shell{padding-left:16px;padding-right:16px}
  .print-area .actions{display:grid;grid-template-columns:1fr;width:100%}
}
@media(max-width:360px){.memorial .gallery{grid-template-columns:1fr}.memorial .memory-tools{padding:20px 14px}.memorial .dates{letter-spacing:1px}}
@media(orientation:landscape) and (max-height:500px){.journey-dialog #journey-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.journey-dialog #journey-slide>img{height:40svh}.journey-dialog .journey-story h2{font-size:20px}}
