/* Smoke-only visibility correction; original paths and exclusion masks retained. */
.visit .tpl-0{--smoke-ink:#d8cbbb;--smoke-peak:.33}
.visit .tpl-1{--smoke-ink:#73796e;--smoke-peak:.25}
.visit .tpl-2{--smoke-ink:#b9c4cc;--smoke-peak:.30}
.visit .tpl-3{--smoke-ink:#c7c7b5;--smoke-peak:.30}
.visit .tpl-4{--smoke-ink:#505953;--smoke-peak:.26}
.visit .tpl-5{--smoke-ink:#aab6b5;--smoke-peak:.29}
.visit .tpl-6{--smoke-ink:#cfc1ab;--smoke-peak:.33}
.visit .tpl-7{--smoke-ink:#516773;--smoke-peak:.26}
.visit .tpl-8{--smoke-ink:#6d7467;--smoke-peak:.25}
.visit .shrine-stage .approved-smoke path{
 stroke:var(--smoke-ink);stroke-linecap:round;stroke-dasharray:150 240;
 --smoke-drift:8px;--smoke-rise:-10px;--smoke-strength:1;--smoke-width:4.0;
 animation:final-smoke-wisp 5.4s linear infinite;animation-delay:-.6s;
}
.visit .approved-smoke path:nth-child(2){--smoke-drift:-7px;--smoke-rise:-12px;--smoke-strength:.82;--smoke-width:3.0;animation-duration:6.2s;animation-delay:-2.7s}
.visit .approved-smoke path:nth-child(3){--smoke-drift:12px;--smoke-rise:-8px;--smoke-strength:.68;--smoke-width:4.6;animation-duration:7s;animation-delay:-4.8s}
@keyframes final-smoke-wisp{
 0%{stroke-dashoffset:138;opacity:0;transform:translate(0,2px);stroke-width:1.2;filter:blur(.45px)}
 18%{opacity:calc(var(--smoke-peak) * var(--smoke-strength));stroke-width:var(--smoke-width);filter:blur(.55px)}
 48%{opacity:calc(var(--smoke-peak) * var(--smoke-strength));transform:translate(calc(var(--smoke-drift) * .45),calc(var(--smoke-rise) * .4));stroke-width:var(--smoke-width);filter:blur(.7px)}
 75%{opacity:calc(var(--smoke-peak) * var(--smoke-strength) * .55);stroke-width:2;filter:blur(1px)}
 100%{stroke-dashoffset:-122;opacity:0;transform:translate(var(--smoke-drift),var(--smoke-rise));stroke-width:.7;filter:blur(1.3px)}
}
@media(prefers-reduced-motion:reduce){.visit .shrine-stage .approved-smoke path{animation:none;stroke-dashoffset:-22;stroke-width:2.5;opacity:calc(var(--smoke-peak) * .6);filter:blur(.6px);transform:none}}

/* Targeted 05 / 08 revision: same paths, masks, tint and drift. */
.visit .tpl-7{--smoke-peak:.38}
.visit .tpl-7 .approved-smoke path{stroke-dasharray:185 240;--smoke-width:4.6;animation-name:light-scene-smoke-wisp}
.visit .tpl-7 .approved-smoke path:nth-child(2){--smoke-width:3.5}
.visit .tpl-7 .approved-smoke path:nth-child(3){--smoke-width:5.2}
@keyframes light-scene-smoke-wisp{
 0%{stroke-dashoffset:110;opacity:0;transform:translate(0,2px);stroke-width:1.2;filter:blur(.45px)}
 18%{opacity:calc(var(--smoke-peak) * var(--smoke-strength));stroke-width:var(--smoke-width);filter:blur(.55px)}
 48%{opacity:calc(var(--smoke-peak) * var(--smoke-strength));transform:translate(calc(var(--smoke-drift) * .45),calc(var(--smoke-rise) * .4));stroke-width:var(--smoke-width);filter:blur(.7px)}
 62%{opacity:calc(var(--smoke-peak) * var(--smoke-strength) * .95);stroke-width:var(--smoke-width)}
 75%{opacity:calc(var(--smoke-peak) * var(--smoke-strength) * .72);stroke-width:2.3;filter:blur(1px)}
 100%{stroke-dashoffset:-95;opacity:0;transform:translate(var(--smoke-drift),var(--smoke-rise));stroke-width:.7;filter:blur(1.3px)}
}
@media(prefers-reduced-motion:reduce){.visit .tpl-7 .approved-smoke path{animation:none}}

/* 05 only: a fine core and soft halo share each approved upward path. */
.visit .tpl-4{--fine-smoke-ink:#56534e}
.visit .tpl-4 .approved-smoke{z-index:8;opacity:1;mix-blend-mode:normal}
.visit .tpl-4 .approved-smoke path.independent-wisp{
 stroke:var(--fine-smoke-ink);stroke-linecap:round;stroke-linejoin:round;
 stroke-dasharray:115 160;fill:none;mix-blend-mode:normal;
 --fine-width:1.7;--fine-peak:.34;--fine-blur:.3px;--fine-drift:2px;
 opacity:0;transform:none;
 animation:fine-incense-rise 5.2s linear infinite;animation-delay:-1.2s;
}
.visit .tpl-4 .approved-smoke path.strand-2{
 --fine-width:1.5;--fine-peak:.24;--fine-drift:-2px;
 animation-duration:6.1s;animation-delay:-3.1s;
}
.visit .tpl-4 .approved-smoke path.strand-3{
 --fine-width:1.2;--fine-peak:.16;--fine-drift:1px;
 animation-duration:6.8s;animation-delay:-4.9s;
}
.visit .tpl-4 .approved-smoke path.smoke-halo{--fine-width:3.6;--fine-peak:.12;--fine-blur:1.3px}
.visit .tpl-4 .approved-smoke path.strand-2.smoke-halo{--fine-width:3.2;--fine-peak:.10;--fine-blur:1.5px}
.visit .tpl-4 .approved-smoke path.strand-3.smoke-halo{--fine-width:2.6;--fine-peak:.075;--fine-blur:1.6px}
@keyframes fine-incense-rise{
 0%{stroke-dashoffset:115;opacity:0;stroke-width:calc(var(--fine-width) * .6);transform:translateX(0);filter:blur(var(--fine-blur))}
 12%{stroke-dashoffset:24;opacity:calc(var(--fine-peak) * .82);stroke-width:var(--fine-width)}
 24%{stroke-dashoffset:0;opacity:var(--fine-peak);stroke-width:var(--fine-width)}
 55%{stroke-dashoffset:-4;opacity:calc(var(--fine-peak) * .94);stroke-width:var(--fine-width);transform:translateX(calc(var(--fine-drift) * -.5))}
 74%{stroke-dashoffset:-12;opacity:calc(var(--fine-peak) * .82);stroke-width:calc(var(--fine-width) * .9)}
 88%{stroke-dashoffset:-48;opacity:calc(var(--fine-peak) * .4);stroke-width:calc(var(--fine-width) * .65)}
 100%{stroke-dashoffset:-100;opacity:0;stroke-width:calc(var(--fine-width) * .3);transform:translateX(var(--fine-drift));filter:blur(calc(var(--fine-blur) + .2px))}
}
@media(prefers-reduced-motion:reduce){
 .visit .tpl-4 .approved-smoke path.independent-wisp{animation:none;stroke-dashoffset:0;opacity:calc(var(--fine-peak) * .7);stroke-width:var(--fine-width);filter:blur(var(--fine-blur));transform:none}
}

/* 08 mobile: adopt exactly the locked 38px-gap preview; no new layout tuning. */
@media(max-width:699px){
 .visit .tpl-7 .memorial-photo-inscription{margin-top:-4px}
 .visit .tpl-7 .censer{margin-top:28px}
}

.visit .tpl-7{--fine-smoke-ink:#58616a}
.visit .tpl-7 .approved-smoke.mobile-smoke{z-index:8;opacity:1;mix-blend-mode:normal}
.visit .tpl-7 .approved-smoke.mobile-smoke path.independent-wisp{
 stroke:var(--fine-smoke-ink);stroke-linecap:round;stroke-linejoin:round;
 stroke-dasharray:115 160;fill:none;mix-blend-mode:normal;
 --fine-width:1.7;--fine-peak:.32;--fine-blur:.3px;--fine-drift:2px;
 opacity:0;transform:none;
 animation:fine-incense-rise 5.2s linear infinite;animation-delay:-1.2s;
}
.visit .tpl-7 .approved-smoke.mobile-smoke path.strand-2{
 --fine-width:1.4;--fine-peak:.23;--fine-drift:-2px;
 animation-duration:6.1s;animation-delay:-3.1s;
}
.visit .tpl-7 .approved-smoke.mobile-smoke path.strand-3{
 --fine-width:1.1;--fine-peak:.15;--fine-drift:1px;
 animation-duration:6.8s;animation-delay:-4.9s;
}
.visit .tpl-7 .approved-smoke.mobile-smoke path.smoke-halo{--fine-width:3.4;--fine-peak:.10;--fine-blur:1.3px}
.visit .tpl-7 .approved-smoke.mobile-smoke path.strand-2.smoke-halo{--fine-width:2.9;--fine-peak:.08;--fine-blur:1.5px}
.visit .tpl-7 .approved-smoke.mobile-smoke path.strand-3.smoke-halo{--fine-width:2.4;--fine-peak:.055;--fine-blur:1.6px}
@media(prefers-reduced-motion:reduce){
 .visit .tpl-7 .approved-smoke.mobile-smoke path.independent-wisp{animation:none;stroke-dashoffset:0;opacity:calc(var(--fine-peak) * .7);stroke-width:var(--fine-width);filter:blur(var(--fine-blur));transform:none}
}
