/* V8.9 ambient photo motion, water-glass entry, locators, chapter transition. */

/* V8.9 enhancements */
body{overflow-x:hidden}
/* stronger idle photo movement */
.chapter.is-active[data-chapter="0"] .living-photo img{animation:v89DriftA 10s ease-in-out infinite alternate !important}
.chapter.is-active[data-chapter="1"] .living-photo img{animation:v89DriftB 11.5s ease-in-out infinite alternate !important}
.chapter.is-active[data-chapter="2"] .living-photo img{animation:v89DriftC 9.5s ease-in-out infinite alternate !important}
.chapter.is-active[data-chapter="3"] .living-photo img{animation:v89DriftD 12.5s ease-in-out infinite alternate !important}
.chapter.is-active[data-chapter="4"] .living-photo img{animation:v89DriftE 10.8s ease-in-out infinite alternate !important}
.chapter.is-active[data-chapter="5"] .living-photo img{animation:v89DriftF 13s ease-in-out infinite alternate !important}
@keyframes v89DriftA{0%{transform:translate3d(-8px,2px,0) rotate(-1.2deg) scale(1.01)}100%{transform:translate3d(10px,-6px,0) rotate(1.5deg) scale(1.03)}}
@keyframes v89DriftB{0%{transform:translate3d(8px,-2px,0) rotate(1deg) scale(1.02)}100%{transform:translate3d(-10px,8px,0) rotate(-1.6deg) scale(1.04)}}
@keyframes v89DriftC{0%{transform:translate3d(-5px,-4px,0) rotate(-.6deg) scale(1.01)}50%{transform:translate3d(6px,6px,0) rotate(.5deg) scale(1.035)}100%{transform:translate3d(-8px,4px,0) rotate(-1.2deg) scale(1.02)}}
@keyframes v89DriftD{0%{transform:translate3d(5px,-7px,0) rotate(.8deg) scale(1.015)}100%{transform:translate3d(-7px,7px,0) rotate(-1deg) scale(1.03)}}
@keyframes v89DriftE{0%{transform:translate3d(-6px,2px,0) rotate(-.9deg) scale(1.015)}100%{transform:translate3d(8px,-8px,0) rotate(1deg) scale(1.035)}}
@keyframes v89DriftF{0%{transform:translate3d(6px,3px,0) rotate(.9deg) scale(1.015)}100%{transform:translate3d(-9px,-7px,0) rotate(-1.1deg) scale(1.03)}}
/* subtle monitor markers */
.chapter .living-photo::after{content:"";position:absolute;inset:10px auto auto 10px;width:72px;height:46px;border:1px solid rgba(111,146,182,.22);opacity:0;animation:v89Marker 7.2s ease-in-out infinite;pointer-events:none}
.chapter .living-photo::before{content:"";position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-right:1px solid rgba(111,146,182,.22);border-bottom:1px solid rgba(111,146,182,.22);opacity:0;animation:v89Marker 7.2s ease-in-out infinite 2.4s;pointer-events:none}
@keyframes v89Marker{0%,68%,100%{opacity:0;transform:translateY(0)}72%,78%{opacity:1}84%{opacity:.12;transform:translateY(-2px)}}
/* wipe stage adjustments */
#wipeScene .wipe-photo-image{filter:blur(8px) saturate(.93);transition:filter 1.2s ease, transform 1.3s ease}
#wipeScene.is-cleared .wipe-photo-image{filter:blur(0) saturate(1)}
/* Signature is ink printed on the photograph from the first frame. Its fog is provided by the wipe canvas, not a fade-in. */
#wipeScene .signed-photograph,
#wipeScene.is-cleared .signed-photograph{opacity:1;transform:none;transition:none;z-index:1;background:transparent}
#wipeScene .wipe-light{opacity:.62}
#wipeScene .wipe-canvas{mix-blend-mode:screen;opacity:.92}
#wipeScene.is-touching .wipe-photo{transform:translateY(-2px) scale(1.01)}
#wipeScene.is-cleared .wipe-photo{transform:scale(1.035)}
#photoEnter{display:none!important}
/* server overlay */
.server-extra{overflow:hidden}
.v89-locator{position:absolute;inset:0;pointer-events:none}
.v89-locator .loc-frame{position:absolute;width:34%;height:38%;border:1px solid rgba(112,148,185,.52);opacity:0;transition:opacity .24s ease, transform .45s ease;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.v89-locator .loc-frame::before,.v89-locator .loc-frame::after{content:"";position:absolute;border:1px solid rgba(112,148,185,.72)}
.v89-locator .loc-frame::before{inset:-6px auto auto -6px;width:18px;height:14px;border-right:none;border-bottom:none}
.v89-locator .loc-frame::after{inset:auto -6px -6px auto;width:18px;height:14px;border-left:none;border-top:none}
.v89-locator .loc-map{position:absolute;width:42%;height:48%;background:radial-gradient(circle at 64% 48%,rgba(141,176,214,.65) 0 2px,transparent 3px),linear-gradient(160deg,rgba(202,221,240,.55),rgba(173,203,232,.18)),linear-gradient(transparent 0 45%, rgba(112,148,185,.16) 45% 46%, transparent 46% 100%),linear-gradient(90deg, transparent 0 28%, rgba(112,148,185,.16) 28% 29%, transparent 29% 100%);border-radius:16px 4px 14px 6px;opacity:0;filter:blur(.25px);transform:scale(.92)}
.server-extra[data-loc="0"] .loc-frame{left:7%;top:12%}
.server-extra[data-loc="0"] .loc-map{right:6%;top:8%}
.server-extra[data-loc="1"] .loc-frame{right:10%;bottom:18%}
.server-extra[data-loc="1"] .loc-map{left:8%;top:10%}
.server-extra.v89-flicker .loc-frame{animation:v89Flicker .42s steps(2,end) 4}
.server-extra.v89-show .loc-frame,.server-extra.v89-show .loc-map{opacity:1}
.server-extra.v89-show .loc-map{animation:v89MapAppear .65s ease both}
@keyframes v89Flicker{0%,100%{opacity:.05}20%,60%{opacity:.98}40%,80%{opacity:.22}}
@keyframes v89MapAppear{0%{opacity:0;filter:blur(7px);transform:scale(.82)}100%{opacity:.92;filter:blur(.25px);transform:scale(1)}}
/* random style tags */
.style-tags .is-picked{background:#d5e7f7!important;color:#244b6d!important;box-shadow:0 6px 18px rgba(114,157,197,.18);transform:translateY(-2px)}
.v89-tag-action{margin-top:14px;border:none;background:transparent;color:#6b8aa8;padding:0;font:11px 'Courier New',monospace;letter-spacing:.12em;display:inline-flex;align-items:center;gap:8px}
.v89-tag-action i{font-style:normal;font-size:13px}
/* Transition imagery and clip animation are owned by original style.css.
   Old white gradient overlay deleted; full-bleed adaptation lives in refinements.css. */
@media (prefers-reduced-motion:reduce){.chapter.is-active .living-photo img,.chapter .living-photo::after,.chapter .living-photo::before{animation:none!important}}

