.memory-finale{position:absolute;inset:0;z-index:4;pointer-events:none;isolation:isolate;color:var(--tone-f9f2ff,#f9f2ff);font-family:"Segoe UI",sans-serif}
.memory-finale [hidden]{display:none}

.hug-ambience{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,var(--tone-8e53b92e,#8e53b92e),transparent 58%);opacity:var(--hug-light,0);pointer-events:none}
.hug-actor{position:absolute;left:0;top:0;transform-origin:center;pointer-events:none;will-change:transform,opacity}
.hug-body{position:absolute;inset:0;transform-origin:50% 75%}
.hug-pose{position:absolute;inset:0;background-image:var(--character-finale,url("../../../assets/finale-chibi-poses.png"));background-size:200% 100%;background-repeat:no-repeat;pointer-events:none}
.hug-pose-open{background-position:left center}
.hug-pose-closed,.hug-hand{background-position:right center;opacity:0}
.hug-floor{position:absolute;left:20%;right:18%;bottom:1.5%;height:3%;border-radius:50%;background:radial-gradient(ellipse,var(--tone-bd8feb40,#bd8feb40),transparent 70%);pointer-events:none}
.hug-heart{position:absolute;left:15.5%;top:42%;width:72%;aspect-ratio:320/290;padding:0;border:0;background:transparent;pointer-events:none;transform-origin:50% 55%;filter:drop-shadow(0 0 var(--hug-heart-glow,0px) var(--tone-e4bcff88,#e4bcff88))}
.hug-heart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.hug-piece,.hug-heart-outline{opacity:0}
.hug-hand{z-index:2}
.hug-hand-left{clip-path:url(#hug-palm-left)}
.hug-hand-right{clip-path:url(#hug-palm-right)}
.memory-finale[data-phase="complete"] .hug-heart{pointer-events:auto;cursor:zoom-in}
.hug-heart:focus-visible{outline:1px solid var(--tone-e5d2f3,#e5d2f3);outline-offset:8px;border-radius:35%}
.hug-copy{position:absolute;top:var(--hug-copy-top);left:20px;right:20px;text-align:center;pointer-events:none}
.hug-copy h2{margin:0;font:400 clamp(18px,2.6vw,25px)/1.7 Pacifico,"Segoe UI",cursive;letter-spacing:0}
.hug-copy-custom{bottom:calc(max(24px,env(safe-area-inset-bottom)) + 52px);overflow:auto;scrollbar-width:thin}
.hug-copy-custom h2{overflow-wrap:anywhere;text-wrap:pretty}
.memory-finale[data-phase="complete"] .hug-copy-custom{pointer-events:auto}
.hug-line{display:block}
.hug-line span{opacity:0}
.hug-name{position:absolute;bottom:97%;left:50%;transform:translateX(-50%);white-space:nowrap;color:#fff3ee;font:400 clamp(17px,2.4vw,22px)/1.5 Pacifico,"Segoe UI",cursive;text-shadow:0 1px 2px var(--tone-59347799,#59347799),0 0 8px var(--tone-e6c5f54d,#e6c5f54d);pointer-events:none}
.hug-name[data-portrait-aligned]{bottom:auto;transform:translate(-50%,-100%) rotate(var(--portrait-name-angle,0deg));transform-origin:50% 100%}
.hug-actions{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:28px;right:28px;display:flex;justify-content:center;gap:30px;pointer-events:auto}
.hug-actions button{min-height:44px;border:0;border-bottom:1px solid var(--tone-d8c4e733,#d8c4e733);padding:0 5px;background:transparent;color:var(--tone-d7c8e4,#d7c8e4);font:12px/1.5 "Segoe UI",sans-serif;cursor:pointer;touch-action:manipulation}
.hug-actions button:hover{color:white;border-color:var(--tone-d8c4e7,#d8c4e7)}
.hug-actions button:focus-visible{outline:2px solid var(--tone-dfc5f4,#dfc5f4);outline-offset:4px}
.hug-actions span{padding-left:8px}
.hug-pulse{position:absolute;left:50%;top:47%;width:max(100vw,100vh);height:max(100vw,100vh);border:1px solid var(--tone-d9b6ff,#d9b6ff);border-radius:50%;background:radial-gradient(circle,transparent 65%,var(--tone-bc8ff51a,#bc8ff51a) 69%,transparent 71%);transform:translate(-50%,-50%) scale(.35);opacity:0;pointer-events:none}
.hug-status{position:absolute;left:20px;right:20px;bottom:12px;text-align:center;font:12px/1.5 "Segoe UI",sans-serif;color:var(--tone-e5d5f0,#e5d5f0);pointer-events:none}
#memory-space[data-viewing="true"] .memory-finale{visibility:hidden}
@media(max-height:650px){.hug-copy h2{font-size:18px;line-height:1.5}.hug-copy-custom{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 52px)}.hug-actions{bottom:12px;gap:24px}}
@media(min-width:701px) and (max-height:519px){.hug-copy{top:30%;left:53%;right:5%;text-align:left}.hug-copy h2{font-size:22px}.hug-actions{left:53%;right:5%;bottom:12%;justify-content:flex-start}.hug-ambience{background:radial-gradient(ellipse at 32% 49%,var(--tone-8e53b92e,#8e53b92e),transparent 60%)}}


.hug-clip-defs{position:absolute;pointer-events:none}
.hug-sleeves{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transform-origin:50% 60%}

.hug-body>.hug-pose-open,.hug-body>.hug-pose-closed{clip-path:inset(45% 0 0)}
.hug-head{position:absolute;inset:0;transform-origin:51% 43%;pointer-events:none}
.hug-head>.hug-pose{clip-path:inset(0 0 53%)}
.hug-head-open{background-position:left center}
.hug-head-closed{background-position:right center;opacity:0}
.hug-embrace{position:absolute;inset:0;transform-origin:51.5% 69%;pointer-events:none}

/* The final character occupies the next depth plane behind the photo stack. */
.memory-finale[data-phase="preview"]{z-index:0}
.memory-finale[data-phase="entering"]{z-index:0}
