/* A shared closing scene. Navigation stays clear of the fixed Pop Vuddy. */
.varista-finale{--finale-ink:#161616;position:relative;isolation:isolate;overflow:hidden;background:var(--finale-ink);color:#f4f4f4;padding:66px var(--page) 28px;font-family:var(--font-site);border-radius:36px 36px 0 0;margin-top:32px}
.finale-inner{max-width:1540px;margin:auto}
.finale-upper{position:relative;display:grid;grid-template-columns:1.08fr .95fr .9fr;gap:38px;align-items:start;min-height:330px}
.finale-eyebrow{display:flex;align-items:center;gap:10px;font:700 10px/1.6 var(--font-site);letter-spacing:.13em;margin:0 0 23px;color:#b9c7bf}
.finale-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:#60d6aa}
.varista-finale h2{font-size:clamp(34px,3.3vw,52px);font-weight:900;line-height:1.5;letter-spacing:-.05em;margin:0;color:inherit}
.varista-finale h2 span{display:block;white-space:nowrap}
.finale-contact{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:58px;margin-top:26px;border-radius:999px;padding:9px 11px 9px 26px;background:#1d7d63;color:white;font-size:16px;font-weight:750;transition:background .2s,transform .2s}
.finale-contact svg{display:block;width:38px;height:38px;padding:10px;border-radius:50%;background:white;color:#1d7d63;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .2s}
.finale-contact:hover{background:#239474;transform:translateY(-3px)}
.finale-contact:hover svg{transform:rotate(45deg)}
.finale-nav{display:grid;gap:36px;padding-top:3px;position:relative;z-index:3;border-top:0}
.finale-nav-group{display:grid;align-content:start;row-gap:4px}
.finale-nav-label{font:700 9px/1.5 var(--font-site);letter-spacing:.13em;color:#a6b3ac;margin:0 0 16px}
.varista-finale .finale-nav a{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:48px;padding:11px 0;color:#f4f4f4;font-size:15px;line-height:1.5;border-bottom:0;transition:color .2s,padding .2s}
.finale-nav a::after{content:"";width:17px;height:17px;flex-shrink:0;background:currentColor;color:#60d6aa;mask:url("/assets/icons/arrow-ne.svg") center/contain no-repeat;-webkit-mask:url("/assets/icons/arrow-ne.svg") center/contain no-repeat;transition:transform .2s}
.varista-finale .finale-nav a:hover,.varista-finale .finale-nav a:focus-visible{color:#60d6aa;padding-left:6px}
.finale-nav a:hover::after{transform:translate(2px,-2px)}
.finale-nav-secondary{grid-template-columns:1fr 1fr;column-gap:22px}
.finale-nav-secondary .finale-nav-label{grid-column:1/-1}
.varista-finale .finale-nav-secondary a{font-size:12px;min-height:36px}
.finale-buddy{position:relative;align-self:end;min-width:0;padding-top:70px;z-index:2}
.finale-buddy::before{content:"";position:absolute;inset:14% 0 4%;border:1px solid #60d6aa65;border-radius:49% 51% 45% 55%;transform:rotate(-15deg);background:radial-gradient(ellipse at 50% 65%,#1d7d633b,transparent 70%)}
.finale-buddy-button{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.finale-buddy-portrait{display:block;width:100%;height:auto;max-height:300px;overflow:hidden;transform-origin:50% 85%;transition:transform .45s cubic-bezier(.2,.8,.2,1);mask-image:linear-gradient(#000 89%,transparent 100%)}
.finale-buddy-button:hover .finale-buddy-portrait,.finale-buddy-button:focus-visible .finale-buddy-portrait{transform:rotate(-4deg) translateY(-7px)}
.finale-speech{--speech-fill:#f4f4f4;position:absolute;z-index:2;top:-75px;left:50%;width:max-content;max-width:118%;min-height:76px;display:grid;place-items:center;padding:20px 30px;color:#161616;font-size:17px;font-weight:800;line-height:1.4;transform:translateX(-50%) rotate(6deg)}
.finale-speech-shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(4px 4px 0 #60d6aa);pointer-events:none}
.finale-speech-shape path{fill:var(--speech-fill);stroke:var(--finale-ink);stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .2s}
.finale-speech>span{position:relative;z-index:1;white-space:nowrap}
.finale-buddy-cue{position:absolute;right:0;bottom:8%;font:700 9px/1.5 var(--font-site);letter-spacing:.1em;color:#a6b3ac;writing-mode:vertical-rl}
.varista-finale[data-tone=animation] .finale-speech{--speech-fill:#ffd037}
.varista-finale[data-tone=vuddy] .finale-speech{--speech-fill:#ed68a2}
.varista-finale[data-tone=system] .finale-speech{--speech-fill:#60d6aa}
.varista-finale[data-tone=torudake] .finale-speech{--speech-fill:#fff}
.finale-wordmark{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:baseline;margin:32px -3px -5px;overflow:hidden;font:900 clamp(80px,18.9vw,322px)/.83 var(--font-site);letter-spacing:-.065em;user-select:none}
.finale-wordmark span{display:block;transform-origin:50% 100%;padding:8px 0 4px;transition:color .25s}
.finale-wordmark span:nth-child(4){color:#60d6aa}
.finale-wordmark:hover span:nth-child(4){color:#f4f4f4}
.finale-wordmark span:hover{color:#60d6aa}
.finale-base{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:25px;border-top:0;margin-top:24px}
.finale-base small{font:400 10px/1.6 var(--font-site);color:#b9c7bf;white-space:nowrap}
.finale-social{display:flex;align-items:center;gap:24px;margin-left:auto}
.finale-social a{font:700 12px/1.7 var(--font-site);color:#f4f4f4;min-height:44px;display:inline-flex;align-items:center}
.finale-top{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-left:22px;color:#f4f4f4;font-size:11px;font-weight:700}
.finale-top svg{width:42px;height:42px;padding:12px;border:1px solid #ffffff60;border-radius:50%;fill:none;stroke:currentColor;stroke-width:1.6;transition:background .2s,transform .2s}
.finale-top:hover svg{background:#1d7d63;transform:translateY(-4px)}
.varista-finale a:focus-visible,.varista-finale button:focus-visible{outline:3px solid #60d6aa;outline-offset:6px;border-radius:6px}
.finale-enhanced.is-seen .finale-wordmark span{animation:finale-letter .8s cubic-bezier(.18,.8,.2,1) both;animation-delay:calc(var(--letter)*55ms)}
.finale-enhanced.is-seen .finale-buddy{animation:finale-arrive .9s cubic-bezier(.2,.8,.2,1) both}
.finale-buddy.is-speaking .finale-buddy-portrait{animation:finale-greeting .55s ease-out}
@keyframes finale-letter{from{transform:translateY(110%) rotate(7deg)}to{transform:none}}
@keyframes finale-arrive{from{opacity:0;transform:translateY(45px) rotate(5deg)}to{opacity:1;transform:none}}
@keyframes finale-greeting{0%,100%{transform:rotate(0)}35%{transform:rotate(-5deg) translateY(-8px)}70%{transform:rotate(3deg)}}
@media(min-width:1101px){.pop-layout-open .varista-finale .finale-upper,.pop-layout-open .varista-finale .finale-base{margin-left:max(0px,calc(300px - var(--page)))}.pop-layout-open .finale-upper{grid-template-columns:1.05fr 1fr .9fr;gap:30px}.pop-layout-open .varista-finale h2{font-size:clamp(32px,3vw,48px)}}
@media(max-width:1100px) and (min-width:701px){.varista-finale{padding-top:50px}.finale-upper{grid-template-columns:1fr 1fr .85fr;gap:25px;min-height:300px}.varista-finale h2{font-size:32px}.finale-contact{padding-left:20px;gap:20px;font-size:14px}.varista-finale .finale-nav a{font-size:13px;border-bottom:0}.varista-finale .finale-nav-secondary a{font-size:11px}.finale-speech{font-size:14px;padding:18px 26px;min-height:66px;top:-65px}.finale-nav-secondary{column-gap:14px}}
@media(max-width:700px){.varista-finale{padding:38px var(--page) 90px;border-radius:24px 24px 0 0;margin-top:28px}.finale-upper{grid-template-columns:1.08fr .92fr;gap:36px 12px;min-height:0;align-items:center}.finale-eyebrow{font-size:8px;letter-spacing:.07em;gap:6px;margin-bottom:18px}.finale-eyebrow::before{width:5px;height:5px}.varista-finale h2{font-size:clamp(25px,7vw,43px);line-height:1.5;letter-spacing:-.06em}.finale-contact{font-size:12px;min-height:46px;gap:14px;padding:6px 7px 6px 17px;margin-top:20px}.finale-contact svg{width:32px;height:32px;padding:9px}.finale-buddy{grid-column:2;grid-row:1;padding-top:54px;align-self:center}.finale-buddy-portrait{max-height:255px}.finale-speech{font-size:11px;padding:15px 22px;min-height:56px;max-width:118%;top:-55px}.finale-speech-shape{filter:drop-shadow(3px 3px 0 #60d6aa)}.finale-buddy-cue{font-size:7px;right:-8px}.finale-nav{grid-column:1/-1;grid-row:2;grid-template-columns:1.15fr 1fr;gap:26px;padding-top:22px;border-top:0}.finale-nav-label{font-size:8px;margin-bottom:16px}.finale-nav-secondary{display:flex;flex-direction:column;gap:4px}.varista-finale .finale-nav a,.varista-finale .finale-nav-secondary a{font-size:13px;font-weight:600;min-height:48px;padding:12px 0;gap:8px}.finale-nav a::after{font-size:13px}.finale-wordmark{margin-top:48px;font-size:18.5vw;line-height:.9;letter-spacing:-.07em}.finale-base{display:grid;grid-template-columns:1fr auto;gap:20px 12px;padding-top:18px;margin-top:15px;border-top:0}.finale-base small{grid-row:2;font-size:9px}.finale-social{grid-row:1;grid-column:1;margin:0;gap:23px}.finale-social a{font-size:11px;min-height:32px}.finale-top{grid-row:1/3;grid-column:2;align-self:center;margin:0;gap:8px;font-size:10px}.finale-top svg{width:36px;height:36px;padding:10px}}
@media(max-width:359px){.finale-upper{grid-template-columns:1.1fr .9fr;column-gap:8px}.varista-finale h2{font-size:25px}.finale-speech{font-size:10px;padding:11px 10px}.finale-contact{gap:9px;padding-left:13px}.finale-nav{gap:17px;border-top:0}.varista-finale .finale-nav a,.varista-finale .finale-nav-secondary a{font-size:12px}.finale-eyebrow{font-size:7px}}
.no-motion .varista-finale *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.varista-finale *{animation:none!important;transition:none!important}}

/* The existing Pop Vuddy text remains readable against the dark closing scene. */
.finale-in-view .pop-vuddy-panel{background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003}

.finale-keep{white-space:nowrap}
.finale-wordmark{container-type:inline-size}
.finale-wordmark span{font-size:20.9cqw}
@media(min-width:1101px){.pop-layout-open .varista-finale .finale-wordmark{margin-left:max(0px,calc(300px - var(--page)))}}

/* A continuous reveal of the whole closing scene, underneath the previous page. */
.finale-preceding-section{position:relative;z-index:2;border-radius:0 0 32px 32px}
.varista-finale.finale-scroll-scene{border-radius:0;margin-top:-32px;padding-top:98px}
.finale-scroll-scene .finale-inner{transform:translate3d(0,var(--finale-scene-y,0px),0) scale(var(--finale-scene-scale,1));transform-origin:50% 0}
.finale-scroll-scene::after{content:"";position:absolute;z-index:5;inset:0;pointer-events:none;background:#000;opacity:var(--finale-scene-shade,0)}
.finale-scroll-scene.finale-enhanced.is-seen .finale-wordmark span,
.finale-scroll-scene.finale-enhanced.is-seen .finale-buddy{animation:none}
.finale-scroll-scene:focus-within .finale-inner{transform:none}
.finale-scroll-scene:focus-within::after{opacity:0}
.no-motion .finale-scroll-scene .finale-inner{transform:none}
.no-motion .finale-scroll-scene::after{opacity:0}
@media(max-width:1100px) and (min-width:701px){.varista-finale.finale-scroll-scene{padding-top:98px}}
@media(max-width:700px){
  .finale-preceding-section{border-radius:0 0 24px 24px}
  .varista-finale.finale-scroll-scene{margin-top:-24px;padding-top:74px}
}
@media(prefers-reduced-motion:reduce){.finale-scroll-scene .finale-inner{transform:none}.finale-scroll-scene::after{opacity:0}}
