.memory-garden-page{padding-top:24px}
.memory-garden-shell{min-width:0}
.single-garden-state{margin-top:52px}
.single-garden-state h1{margin:0;font-family:var(--font-display);font-size:42px;font-weight:500;letter-spacing:-.035em;line-height:1.05;color:var(--ink)}
.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--terra-dark);font-size:13px;font-weight:700}
.back-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.memory-garden-header{max-width:860px;padding-top:22px}
.memory-garden-header h1{margin:10px 0 12px;font-family:var(--font-display);font-size:58px;font-weight:500;line-height:.98;letter-spacing:-.04em}
.memory-garden-header p{max-width:760px;margin:0;color:var(--muted);font-size:16px}
.garden-scene-card{padding-top:28px}
.garden-scene-frame{position:relative;overflow:hidden;border-radius:30px;background:#d8ccc3;box-shadow:var(--shadow-md)}
.garden-scene-track{position:relative;overflow:hidden;outline:0;overscroll-behavior-inline:contain}
.garden-scene{position:relative;width:100%;min-height:660px;isolation:isolate}
.garden-scene__image{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;object-fit:cover;filter:saturate(1.02)}
.garden-scene__image[hidden]{display:none}
.scene-wash{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(34,24,20,.3),rgba(34,24,20,.07) 44%,rgba(34,24,20,0) 67%);pointer-events:none}
.scene-carousel-control{position:absolute;top:50%;z-index:20;width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(255,252,249,.9);color:var(--ink);box-shadow:0 12px 28px rgba(50,34,28,.2);backdrop-filter:blur(12px);cursor:pointer;transform:translateY(-50%)}
.scene-carousel-control--previous{left:18px}.scene-carousel-control--next{right:18px}
.scene-carousel-control svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.scene-carousel-control:disabled{opacity:.46;cursor:default;box-shadow:0 7px 18px rgba(50,34,28,.12)}
.scene-carousel-meta{position:absolute;left:50%;bottom:18px;z-index:20;display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(53,35,29,.5);color:white;box-shadow:0 10px 24px rgba(39,25,21,.18);backdrop-filter:blur(12px);transform:translateX(-50%)}
.scene-carousel-meta__label{font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.scene-carousel-dots{display:flex;align-items:center;gap:5px}
.scene-carousel-dot{width:7px;height:7px;display:block;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.48);cursor:pointer;transition:width .18s ease,background-color .18s ease}
.scene-carousel-dot.is-active{width:19px;border-radius:999px;background:white}
.scene-carousel-dot--indicator{cursor:default}
.scene-pan-affordance{display:none}
.memorial-marker{position:absolute;left:var(--marker-x);top:var(--marker-y);z-index:3;display:block;transform:translate(-50%,-50%)}
.memorial-marker.marker--empty,.memorial-marker.marker--reserved{z-index:2;cursor:default}
a.memorial-marker{border-radius:50%}
a.memorial-marker.is-active,a.memorial-marker:focus-visible{z-index:12}
.marker-paw{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%}
.marker-paw:before{content:"";position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(255,225,132,.46) 0%,rgba(255,205,89,.2) 34%,rgba(255,188,57,.08) 54%,transparent 72%);filter:blur(2px);transform:scale(.96)}
.marker-paw:after{content:"";position:absolute;left:50%;bottom:2px;width:42px;height:13px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,211,105,.58),rgba(255,198,75,.18) 48%,transparent 74%);filter:blur(3px);transform:translateX(-50%)}
.marker-emblem{position:relative;z-index:1;width:40px;height:40px;fill:#fff8dd;filter:drop-shadow(0 0 4px rgba(255,248,211,.98)) drop-shadow(0 0 11px rgba(255,213,102,.9)) drop-shadow(0 0 24px rgba(255,180,48,.5));transform:translateY(-3px)}
.marker--glow-strong .marker-paw:before{opacity:1;transform:scale(1.16)}
.marker--glow-strong .marker-paw:after{opacity:1;transform:translateX(-50%) scale(1.14)}
.marker--glow-strong .marker-emblem{width:44px;height:44px;filter:drop-shadow(0 0 5px rgba(255,251,226,1)) drop-shadow(0 0 13px rgba(255,218,108,1)) drop-shadow(0 0 30px rgba(255,177,39,.78))}
.marker--glow-mid .marker-paw:before{opacity:.78;transform:scale(1.02)}
.marker--glow-mid .marker-paw:after{opacity:.78}
.marker--glow-mid .marker-emblem{opacity:.92;filter:drop-shadow(0 0 4px rgba(255,246,210,.96)) drop-shadow(0 0 10px rgba(255,211,102,.82)) drop-shadow(0 0 22px rgba(255,181,46,.5))}
.marker--glow-soft .marker-paw:before{opacity:.52;transform:scale(.9)}
.marker--glow-soft .marker-paw:after{opacity:.5;transform:translateX(-50%) scale(.86)}
.marker--glow-soft .marker-emblem{width:36px;height:36px;opacity:.75;filter:drop-shadow(0 0 4px rgba(255,244,205,.82)) drop-shadow(0 0 9px rgba(255,204,91,.54))}
.marker--glow-faint .marker-paw:before{opacity:.24;transform:scale(.76)}
.marker--glow-faint .marker-paw:after{opacity:.24;transform:translateX(-50%) scale(.72)}
.marker--glow-faint .marker-emblem{width:34px;height:34px;opacity:.46;filter:drop-shadow(0 0 3px rgba(255,239,194,.52)) drop-shadow(0 0 7px rgba(255,197,78,.3))}
.marker-available,.marker-reserved{position:relative;display:block;width:34px;height:18px;border-radius:50%;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 7px 13px rgba(50,34,27,.18)}
.marker-available{border:1px solid rgba(255,246,235,.46);background:linear-gradient(180deg,rgba(221,205,190,.48),rgba(131,107,91,.4));opacity:.68}
.marker-available:before,.marker-reserved:before{content:"";position:absolute;inset:4px 7px;border-radius:50%}
.marker-available:before{border:1px solid rgba(77,59,49,.2)}
.marker-available:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:rgba(255,244,229,.48);transform:translate(-50%,-50%)}
.marker-reserved{border:1px solid rgba(245,235,224,.35);background:linear-gradient(180deg,rgba(121,105,96,.58),rgba(68,55,50,.54));opacity:.58}
.marker-reserved:before{border:1px dashed rgba(255,244,229,.35)}
.marker-bubble{position:absolute;left:50%;bottom:73px;min-width:264px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(221,208,198,.82);border-radius:22px;background:linear-gradient(180deg,rgba(255,253,251,.97),rgba(252,247,243,.96));box-shadow:0 22px 46px rgba(52,35,29,.18),inset 0 1px 0 rgba(255,255,255,.82);backdrop-filter:blur(16px);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.marker-bubble:before{content:"";position:absolute;inset:1px;border-radius:21px;background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,0));pointer-events:none}
.marker-bubble:after{content:"";position:absolute;left:50%;bottom:-9px;width:18px;height:18px;background:linear-gradient(180deg,rgba(255,253,251,.97),rgba(252,247,243,.96));border-right:1px solid rgba(221,208,198,.82);border-bottom:1px solid rgba(221,208,198,.82);box-shadow:6px 6px 18px rgba(52,35,29,.08);transform:translateX(-50%) rotate(45deg)}
a.memorial-marker.is-active .marker-bubble,a.memorial-marker:focus-visible .marker-bubble{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.marker-bubble--align-left{left:0;transform:translate(0,8px)}
a.memorial-marker.is-active .marker-bubble--align-left,a.memorial-marker:focus-visible .marker-bubble--align-left{transform:translate(0,0)}
.marker-bubble--align-left:after{left:31px;transform:rotate(45deg)}
.marker-bubble--align-right{right:0;left:auto;transform:translate(0,8px)}
a.memorial-marker.is-active .marker-bubble--align-right,a.memorial-marker:focus-visible .marker-bubble--align-right{transform:translate(0,0)}
.marker-bubble--align-right:after{right:31px;left:auto;transform:rotate(45deg)}
.marker-bubble--below{top:73px;bottom:auto}
.marker-bubble--below:after{top:-9px;bottom:auto;border:0;border-left:1px solid rgba(221,208,198,.82);border-top:1px solid rgba(221,208,198,.82);box-shadow:-5px -5px 16px rgba(52,35,29,.06)}
.marker-bubble__thumb-wrap{position:relative;z-index:1;width:64px;height:64px;padding:3px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,233,225,.96));box-shadow:0 8px 20px rgba(58,40,35,.12)}
.marker-bubble img{width:100%;height:100%;display:block;border-radius:15px;object-fit:cover}
.marker-bubble__body{position:relative;z-index:1;min-width:0}
.marker-bubble__eyebrow{display:block;margin-bottom:6px;color:var(--terra-dark);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.marker-bubble__body strong,.marker-bubble__body small,.marker-bubble__body em{display:block}
.marker-bubble__body strong{overflow:hidden;color:var(--ink);font-family:var(--font-display);font-size:28px;font-weight:600;line-height:.95;text-overflow:ellipsis;white-space:nowrap}
.marker-bubble__body small{max-width:178px;margin-top:4px;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.marker-bubble__body em{display:inline-flex;align-items:center;gap:6px;margin-top:9px;color:var(--terra-dark);font-size:11px;font-style:normal;font-weight:800}
.marker-bubble__body em svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7}
.garden-scene--dense .marker-paw{width:54px;height:54px}.garden-scene--dense .marker-emblem{width:34px;height:34px}.garden-scene--dense .marker-available,.garden-scene--dense .marker-reserved{width:30px;height:16px}
.garden-scene--very-dense .marker-paw{width:46px;height:46px}.garden-scene--very-dense .marker-paw:before{inset:-10px}.garden-scene--very-dense .marker-emblem{width:29px;height:29px}.garden-scene--very-dense .marker-available,.garden-scene--very-dense .marker-reserved{width:26px;height:14px}
.memory-garden-story{max-width:930px;padding:24px 6px 0}
.memory-garden-description{margin:0;color:var(--muted);font-size:15px;line-height:1.7}
.memory-garden-capacity{margin:12px 0 0;color:var(--terra-dark);font-size:14px;font-weight:650}
.memory-garden-state-message{margin:7px 0 0;color:var(--muted);font-size:13px}
.memorials-below{padding-top:76px}
.memorials-below .section-heading{margin-bottom:32px}
.memorials-below .section-heading>div{max-width:760px}
.memorials-below .section-heading p{margin:12px 0 0;color:var(--muted);font-size:14px}
.memorials-below .garden-results-range{color:var(--terra-dark);font-size:12px;font-weight:700}
.memorials-below .memorial-card{width:100%;min-width:0}
.memorials-below .memorial-card__body{min-height:102px}
.memorials-below .memorial-card__body>div{min-width:0}
.memorials-below .memorial-card h3 a,.memorials-below .memorial-card p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.garden-memorials-empty{display:flex;align-items:center;gap:13px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--muted);box-shadow:var(--shadow-sm)}
.garden-memorials-empty>span{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--terra-soft);color:var(--terra)}
.garden-memorials-empty svg{width:24px;height:24px;fill:currentColor}
.garden-memorials-empty p{margin:0}
.back-link:focus-visible,.garden-scene-track:focus-visible,.scene-carousel-control:focus-visible,.scene-carousel-dot:focus-visible,a.memorial-marker:focus-visible,.memorials-below .memorial-card a:focus-visible{outline:3px solid rgba(185,101,73,.42);outline-offset:4px}
a.memorial-marker:focus-visible{outline-color:rgba(255,245,205,.9);outline-offset:7px}
@media(max-width:1180px){
  .memory-garden-header h1{font-size:54px}
  .garden-scene{min-height:620px}
  .marker-paw{width:60px;height:60px}.marker-emblem{width:38px;height:38px}
}
@media(max-width:900px){
  .memory-garden-page{padding-top:18px}
  .memory-garden-header h1{font-size:50px}
  .garden-scene{min-height:560px}
  .marker-bubble{min-width:236px}
  .scene-carousel-control{width:44px;height:44px}.scene-carousel-control--previous{left:14px}.scene-carousel-control--next{right:14px}
  .memorials-below .memorial-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .memory-garden-page{padding-top:14px}
  .single-garden-state{margin-top:34px}
  .single-garden-state h1{font-size:36px}
  .memory-garden-header h1{font-size:42px}
  .memory-garden-header p{font-size:15px}
  .garden-scene-frame{border-radius:24px}
  .garden-scene-track{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
  .garden-scene-track::-webkit-scrollbar{display:none}
  .garden-scene{width:var(--garden-scene-mobile-width,720px);min-height:430px}
  .scene-carousel-control{top:auto;bottom:14px;width:40px;height:40px;transform:none}.scene-carousel-control--previous{left:14px}.scene-carousel-control--next{right:14px}
  .scene-carousel-meta{bottom:15px;padding:7px 10px}.scene-carousel-meta__label{display:none}
  .scene-pan-affordance:not([hidden]){display:contents}
  .marker-paw{width:46px;height:46px}.marker-paw:before{inset:-10px}.marker-paw:after{bottom:0;width:32px;height:10px}.marker-emblem{width:29px;height:29px}.marker--glow-strong .marker-emblem{width:32px;height:32px}.marker--glow-soft .marker-emblem{width:27px;height:27px}.marker--glow-faint .marker-emblem{width:25px;height:25px}.marker-available,.marker-reserved{width:27px;height:14px}
  .marker-bubble{bottom:54px;min-width:206px;padding:11px 12px;grid-template-columns:50px minmax(0,1fr);gap:10px}
  .marker-bubble--below{top:54px;bottom:auto}
  .marker-bubble__thumb-wrap{width:50px;height:50px;padding:2px;border-radius:14px}
  .marker-bubble img{border-radius:12px}.marker-bubble__body strong{font-size:22px}.marker-bubble__body small{max-width:126px;font-size:11px}.marker-bubble__body em{font-size:11px}
  .memory-garden-story{padding:18px 0 0}
  .memory-garden-description{font-size:14px}.memory-garden-capacity{font-size:13px}
  .memorials-below{padding-top:64px}
  .memorials-below .section-heading{margin-bottom:24px}
  .memorials-below .memorial-grid{display:flex;grid-template-columns:none;gap:14px;overflow-x:auto;overflow-y:visible;padding:4px 2px 18px;scroll-padding-inline:2px;scroll-snap-type:x mandatory;scrollbar-width:thin}
  .memorials-below .memorial-card{width:310px;flex:0 0 min(310px,calc(100vw - 58px));scroll-snap-align:start}
}
@media(hover:hover) and (pointer:fine){
  .back-link:hover{color:var(--terra)}
  .scene-carousel-control:not(:disabled):hover{background:white;box-shadow:0 15px 32px rgba(50,34,28,.26)}
  .scene-carousel-dot:hover{background:white}
  [data-v2-single-memory-garden-runtime]:not(.is-touch-input) a.memorial-marker:hover{z-index:12}
  [data-v2-single-memory-garden-runtime]:not(.is-touch-input) a.memorial-marker:hover .marker-bubble{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
  [data-v2-single-memory-garden-runtime]:not(.is-touch-input) a.memorial-marker:hover .marker-bubble--align-left,[data-v2-single-memory-garden-runtime]:not(.is-touch-input) a.memorial-marker:hover .marker-bubble--align-right{transform:translate(0,0)}
}
@media(hover:none),(pointer:coarse){
  .marker-bubble{transition:none}
}
@media(prefers-reduced-motion:reduce){
  .scene-carousel-dot,.marker-bubble{transition:none}
}

/* Phase 1 locator: the requested public memorial is centered and visibly distinguished without taking DOM focus. */
a.memorial-marker[data-locator-target] .marker-paw{box-shadow:0 0 0 4px rgba(255,255,255,.9),0 0 0 9px rgba(185,101,73,.58),0 0 34px rgba(255,204,89,.72)}
