/* A portrait stays personal: steady anatomy, layered surroundings and a bounded stay. */
.scene{--blend:clamp(76px,10svh,116px);--portrait-view:590px;--portrait-light:1.012}
.scene .portrait-frame{isolation:isolate;-webkit-mask-image:none;mask-image:none}
.portrait-window{position:absolute;inset:0;overflow:clip;pointer-events:none;-webkit-mask-image:linear-gradient(#000 0%,#000 calc(100% - 56px),transparent 100%);mask-image:linear-gradient(#000 0%,#000 calc(100% - 56px),transparent 100%)}
.scene .portrait{position:absolute;top:0;left:0;height:var(--portrait-size);width:100%;filter:brightness(var(--portrait-light)) saturate(.97) contrast(.99) drop-shadow(0 10px 19px #425d4917)}
.scene .portrait-interaction{height:var(--portrait-view);transform:perspective(1500px) translate3d(calc(var(--mx)*-2px + var(--portrait-x,0px)),calc(var(--my)*-1px + var(--portrait-y,0px)),0) rotateY(calc(var(--mx)*-.45deg + var(--portrait-ry,0deg))) rotateX(calc(var(--my)*.2deg + var(--portrait-rx,0deg))) scale(var(--portrait-scale,1))}
.scene .portrait-interaction:focus-visible .portrait{filter:brightness(var(--portrait-light)) saturate(.97) contrast(.99) drop-shadow(0 0 5px #72518499) drop-shadow(0 10px 19px #425d4917)}
.scene .photo-wrap{transform:translateX(-50%) translateY(calc(var(--portrait-scroll,0px) + var(--portrait-handoff,0px)))}
.scene:not(.hero-scene) .photo-wrap{width:100%}
.scene:not(.hero-scene) .portrait{width:calc(var(--portrait-size)*.666667);max-width:none;left:calc(50% - var(--portrait-size)*.333333)}
.scene .portrait-arrival{transform-origin:50% 23%;--arrival-x:0px;--arrival-y:18px}
.scene:not(.hero-scene) .portrait-frame::before{content:'';position:absolute;inset:-34px 4% 12px;border-radius:48% 48% 28% 28%;background:radial-gradient(ellipse at 48% 33%,#fffaf282,#fffaf22b 65%,transparent 78%);transform:translate3d(calc(var(--mx)*9px),calc(var(--arch-scroll,0px) + var(--my)*4px),0);pointer-events:none;z-index:-1}
.scene:not(.hero-scene) .portrait-frame::after{content:'';position:absolute;inset:12% 5% 8%;border-radius:45%;background:radial-gradient(ellipse,#8fa18b0c,transparent 70%);transform:translate3d(calc(var(--mx)*-5px),var(--pattern-scroll,0px),0);pointer-events:none;z-index:-1}
.hero-scene .portrait-frame{--portrait-view:calc(100svh - 110px)}

@media(min-width:1001px){
 .scene:not(.hero-scene)>.stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,4vw,64px);align-items:start;min-height:0;padding:112px var(--edge) 32px}
 .scene:not(.hero-scene) .scene-topline{top:87px}
 .scene:not(.hero-scene) .portrait-frame{position:sticky;inset:auto;top:100px;height:clamp(300px,52svh,440px);--portrait-view:clamp(470px,calc(100svh - 130px),820px);width:100%;align-self:start;grid-row:1;overflow:visible}
 .coaching-scene .portrait-frame,.services-scene .portrait-frame{grid-column:1}
 .sheets-scene .portrait-frame,.contact-scene .portrait-frame{grid-column:2}
 .scene:not(.hero-scene) .scene-copy,.scene:not(.hero-scene) .contact-panel{width:100%;max-width:none;margin:0;grid-row:1;min-width:0}
 .coaching-copy,.services-copy{grid-column:2}.shop-copy,.contact-panel{grid-column:1}
 .scene:not(.hero-scene) .shop-copy,.scene:not(.hero-scene) .services-copy{padding-left:0;padding-right:0}
 .scene:not(.hero-scene) .photo-wrap{left:50%;top:0;--portrait-size:clamp(1000px,132svh,1260px)}
 .contact-scene:not(.hero-scene) .photo-wrap{left:48%;--portrait-size:clamp(830px,118svh,1120px)}
 .scene:not(.hero-scene) .portrait-window{height:min(var(--portrait-view),max(var(--portrait-floor,374px),var(--portrait-available,1000px)))}
 .scene:not(.hero-scene) .portrait-interaction{height:min(var(--portrait-view),max(var(--portrait-floor,374px),var(--portrait-available,1000px)))}
 .scene:not(.hero-scene) .portrait-frame::before{bottom:auto;height:calc(var(--portrait-view) + 22px)}
 .scene:not(.hero-scene) .portrait-tap-hint{left:auto;right:12px;top:calc(var(--portrait-view)*.53);bottom:auto;max-width:44%}
 .scene:not(.hero-scene) .portrait-note{width:194px;max-width:calc(100% - 24px);font-size:15px;line-height:1.45}
}
 .portrait-main-active .whatsapp-float{width:50px;height:50px;padding:13px;justify-content:center}
 .portrait-main-active .whatsapp-float .wa-label,.portrait-main-active .whatsapp-float .wa-dot{display:none}
/* Face positions and hand-held props get their own small-screen crops. */
@media(max-width:1000px){
 .scene{--blend:68px}.scene:not(.hero-scene)>.stage{padding-bottom:46px}
 .scene:not(.hero-scene) .portrait-frame{height:360px;--portrait-view:360px;margin-bottom:-18px;overflow:visible;background:transparent}
 .scene:not(.hero-scene) .portrait-window{border-radius:150px 150px 26px 26px}
 .scene:not(.hero-scene) .photo-wrap{left:50%;top:-8px;--portrait-size:710px}
 .coaching-scene:not(.hero-scene) .photo-wrap{--portrait-size:675px}
 .contact-scene:not(.hero-scene) .photo-wrap{left:51%;--portrait-size:680px;top:-12px}
 .scene:not(.hero-scene) .portrait-tap-hint{left:auto;right:14px;top:auto;bottom:31px;font-size:11px}
 .scene:not(.hero-scene) .portrait-note{width:210px;max-width:calc(100% - 24px);font-size:14px;line-height:1.45}
 .hero-scene .portrait-frame{--portrait-view:445px}
}
@media(max-width:600px){
 .scene:not(.hero-scene) .portrait-frame{height:clamp(292px,42svh,350px);--portrait-view:clamp(292px,42svh,350px)}
 .scene:not(.hero-scene) .photo-wrap{--portrait-size:690px;top:-7px}
 .coaching-scene:not(.hero-scene) .photo-wrap{--portrait-size:650px;top:-5px}
 .services-scene:not(.hero-scene) .photo-wrap{--portrait-size:665px}
 .contact-scene:not(.hero-scene) .photo-wrap{--portrait-size:660px;top:-8px}
 .scene:not(.hero-scene) .portrait-tap-hint{bottom:28px}
 .scene:not(.hero-scene) .portrait-note{font-size:13px;width:196px;padding:11px 13px}
 .hero-scene .portrait-frame{--portrait-view:445px}
}
@media(max-width:360px){.scene:not(.hero-scene) .portrait-frame{height:292px;--portrait-view:292px}.scene:not(.hero-scene) .photo-wrap{--portrait-size:640px}.contact-scene:not(.hero-scene) .photo-wrap{--portrait-size:620px}}

/* Each entrance serves the pose; arrival is never removed on a return visit. */
.portrait-ready .hero-scene .portrait-arrival.is-arrived{animation:portrait-hello 760ms var(--ease) both}
.portrait-ready .coaching-scene .portrait-arrival.is-arrived{animation:portrait-present 700ms var(--ease) both}
.portrait-ready .sheets-scene .portrait-arrival.is-arrived{animation:portrait-workbook 760ms var(--ease) both}
.portrait-ready .services-scene .portrait-arrival.is-arrived{animation:portrait-rescue 740ms var(--ease) both}
.portrait-ready .contact-scene .portrait-arrival.is-arrived{animation:portrait-welcome 880ms var(--ease) both}
.portrait-ready .scene .portrait-arrival.portrait-arrived{animation:none;will-change:auto}
@keyframes portrait-hello{from{opacity:0;transform:translate3d(0,12px,0) scale(.977)}to{opacity:1;transform:none}}
@keyframes portrait-present{from{opacity:0;transform:translate3d(-22px,8px,0)}to{opacity:1;transform:none}}
@keyframes portrait-workbook{from{opacity:0;transform:translate3d(8px,20px,0) scale(.987)}to{opacity:1;transform:none}}
@keyframes portrait-rescue{from{opacity:0;transform:translate3d(-25px,5px,0)}to{opacity:1;transform:none}}
@keyframes portrait-welcome{from{opacity:0;transform:translate3d(0,16px,0) scale(.99)}to{opacity:1;transform:none}}
.scene .portrait-note{z-index:8;pointer-events:none;border-radius:19px;box-shadow:0 7px 22px #28594e12;transform-origin:50% 0}
.hero-scene .portrait-note{z-index:8;width:210px;font-size:15px;line-height:1.45}
@media(prefers-reduced-motion:reduce){.scene .portrait-arrival,.scene .portrait-interaction{animation:none!important;transform:none!important}.scene .photo-wrap{transform:translateX(-50%)}.scene .portrait-frame::before,.scene .portrait-frame::after{transform:none}}
.reduced-motion .scene .portrait-arrival,.reduced-motion .scene .portrait-interaction{animation:none!important;transform:none!important}
.reduced-motion .scene .photo-wrap{transform:translateX(-50%)}.reduced-motion .scene .portrait-frame::before,.reduced-motion .scene .portrait-frame::after{transform:none}

@media(max-width:1000px){
 .hero-scene .portrait-window{height:333px;-webkit-mask-image:linear-gradient(#000 0%,#000 72%,transparent 100%);mask-image:linear-gradient(#000 0%,#000 72%,transparent 100%)}
 .hero-scene .portrait-interaction{height:333px}
 .hero-scene .portrait-note{width:190px;font-size:13px;line-height:1.4;padding:11px 13px}
 .hero-scene .portrait-frame.is-chatting .portrait-tap-hint{opacity:0}
}
@media(max-width:600px){.hero-scene .portrait-window,.hero-scene .portrait-interaction{height:calc(clamp(330px,45svh,395px) - 79px)}}
@media(max-width:360px){.hero-scene .portrait-note{width:100px;max-width:none;font-size:12px;padding:9px 11px}}
