/* direct-entry-v21.css */
/* The quiz opens immediately. The archived entrance is inert template content. */
body[data-screen="game"] .game-screen{position:relative;z-index:2;animation:none}
body[data-screen="game"] .site-header{z-index:3;transition:background-color 320ms ease,border-color 320ms ease}
body[data-screen="game"]{background:#f5f4ed;transition:background-color 320ms ease}
body[data-screen="game"]::before{content:"";position:fixed;inset:0;z-index:1;background:#080c18;opacity:0;pointer-events:none;transition:opacity 320ms ease}
body[data-screen="game"].summoning{background:#080c18}
body[data-screen="game"].summoning::before{opacity:1;transition-duration:180ms}
body[data-screen="game"].summoning .site-header{background:#080c18f5;border-bottom-color:#253044;box-shadow:none}
body.summoning .nav-brand img{filter:brightness(1.4)}
body.summoning .header-offer-copy strong{color:#eae3d4;background:none}
body.summoning .header-offer-copy>small,body.summoning .header-offer-price>span{color:#c7bea9}
body.summoning .header-offer-price>strong{color:#ff7883;text-shadow:none}
body[data-screen="game"].summoning .game-screen:has(+ #sales-page:not([hidden])) .game-window{background:#080c18}
.experience-footer{position:relative;z-index:2}
body.summoning .experience-footer .privacy-button{color:#c9c2d7}
@media(prefers-reduced-motion:reduce){
 body[data-screen="game"],body[data-screen="game"]::before,body[data-screen="game"] .site-header{transition:none}
 body[data-screen="game"]::before{display:none}
}

/* entrance.css */
/* One continuous camera: approach, automatic doors, same reception, room dissolve. */
.massage-scene{background:#eee9e5}
.indoor-world{position:absolute;inset:0;z-index:3;opacity:0;transition:opacity .5s cubic-bezier(.22,0,.24,1)}
.entry-stage{position:absolute;inset:0;z-index:2;overflow:hidden;background:#f4f1ff;pointer-events:none}
.facade-camera{position:absolute;left:0;top:16.6667%;width:100%;aspect-ratio:3/2;transform-origin:60% 45%;transform:translate(0,0) scale(1);will-change:transform}
.facade-art{width:100%;height:100%;image-rendering:pixelated}
.facade-picture,.portal-picture{display:block;width:100%;height:100%}
.entry-portal{position:absolute;left:19.6%;top:48.1%;width:34.3%;height:30.2%;overflow:hidden;background:#b3a087;box-shadow:inset 0 0 0 2px #39312b}
.portal-view{width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:pixelated;filter:brightness(.88)}
.door-pane{position:absolute;top:0;bottom:0;width:50%;border:2px solid #443a30;background:linear-gradient(128deg,#cbd2d653 0%,#eee1bf24 24%,#c3c4c033 25%,#ffffff4d 27%,#d3c5af13 28%,#b5b8b226 70%,#ffffff38 72%,#21222c33 73%);box-shadow:inset 0 0 0 1px #b8b2a654;transition:transform .5s cubic-bezier(.4,0,.25,1);will-change:transform}
.door-pane:after{content:'';position:absolute;top:44%;width:3px;height:18%;background:#dfd6b9;box-shadow:1px 1px 0 #534f47}
.door-left{left:0}.door-left:after{right:7%}
.door-right{right:0}.door-right:after{left:7%}

/* Keep the same animation active across phases; opening the doors never restarts it. */
.massage-home:not([data-entry="loading"]):not([data-entry="ready"]) .facade-camera{animation:arrival-push 1.75s cubic-bezier(.5,0,.4,1) both}
@keyframes arrival-push{
  from{transform:translate(0,0) scale(1)}
  to{transform:translate(-2%,3%) scale(1.32)}
}
.massage-home[data-entry="doors"] .door-left,
.massage-home[data-entry="reception"] .door-left,
.massage-home[data-entry="room"] .door-left{transform:translateX(-102%)}
.massage-home[data-entry="doors"] .door-right,
.massage-home[data-entry="reception"] .door-right,
.massage-home[data-entry="room"] .door-right{transform:translateX(102%)}

/* Fade the room over the still-visible reception. Neither scene slides sideways. */
.massage-home[data-entry="room"] .indoor-world,
.massage-home[data-entry="ready"] .indoor-world{opacity:1}
.massage-home[data-entry="ready"] .indoor-world{transition:none}
.massage-home[data-entry="ready"] .entry-stage{display:none}
.massage-home .start-area{transition:opacity .25s ease}
.massage-home:not([data-entry="ready"]) .start-area{visibility:hidden;opacity:0;pointer-events:none}
.massage-home[data-entry="ready"] .start-area{visibility:visible;opacity:1}
html[data-motion="paused"] .indoor-world{transition:none}
@media(prefers-reduced-motion:reduce){.indoor-world,.door-pane,.massage-home .start-area{transition:none}.facade-camera{animation:none!important}}

/* refinements-v22.css */
/* Equal outer tracks keep the offer at the panel centre, independent of logo width. */
body[data-screen] .header-inner{grid-template-columns:155px minmax(0,1fr) 155px}
body[data-screen] .header-offer{text-align:center;justify-self:center;width:100%;min-width:0}
body[data-screen] .header-offer-copy p,body[data-screen] .header-offer-price{justify-content:center;padding-left:0;margin-left:0}
body[data-screen] .header-offer-copy>small{margin-left:0;padding-left:0}
body[data-screen] .header-actions{justify-self:end}
.entrance-only{display:block!important;width:min(640px,calc(100% - 32px));margin:16px auto!important;padding:0!important}
.entrance-only[hidden]{display:none!important}
.entrance-viewport{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:#f5f4ed}
.entrance-only .entry-stage{background:#f5f4ed;transition:opacity .35s ease}
.entrance-only[data-entry="room"] .entry-stage{opacity:0}
@media(max-width:700px){body[data-screen] .header-inner{grid-template-columns:106px minmax(0,1fr) 106px;gap:9px}body[data-screen] .header-offer-copy>small{font-size:8px;white-space:normal}}
@media(max-width:350px){body[data-screen] .header-inner{grid-template-columns:91px minmax(0,1fr) 91px;gap:7px}body[data-screen] .header-offer-copy strong{font-size:11px}body[data-screen] .header-offer-copy>small{font-size:7px}}

/* layout-v24.css */
/* v24: full-screen entry, compact quiz chrome, and a balanced result. */
html,body{background:#f5f4ed}
main{min-height:100dvh}
.game-window{position:relative}
.game-window:has(iframe[data-loading]){min-height:720px}
.game-window iframe[data-loading]{visibility:hidden;pointer-events:none}
.quiz-loading{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:linear-gradient(140deg,#f5f4ed,#dae8f1);color:#1b3a56;font-size:clamp(16px,2vw,20px);font-weight:700;letter-spacing:.04em;text-align:center;padding:24px}
.entrance-only{position:fixed!important;inset:0;z-index:50;width:100vw!important;height:100dvh;margin:0!important;background:#0b1118}
.entrance-only[hidden]{display:none!important}
.entrance-viewport{width:100%;height:100%;aspect-ratio:auto;overflow:hidden;background:#0b1118}
.entrance-only .entry-stage{inset:0;background:#0b1118}
.entrance-only .facade-camera{left:0;top:0;width:100%;height:100%;aspect-ratio:auto;transform-origin:62% 48%}
.entrance-only .facade-art{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.entrance-only .entry-portal{left:19.6%;top:48.1%;width:34.3%;height:30.2%}
.entrance-only:not([data-entry="loading"]):not([data-entry="ready"]) .facade-camera{animation:arrival-push-full .65s cubic-bezier(.5,0,.4,1) both}
@keyframes arrival-push-full{from{transform:scale(1)}to{transform:scale(1.32)}}
body[data-screen="game"] .game-screen{margin-top:16px}
@media(max-width:620px){
 .entrance-only .facade-art{object-position:58% 50%}
 body[data-screen="game"] .game-screen{width:100%;margin:0 auto 18px}
 body[data-screen="game"] .game-window{border-left:0;border-right:0;border-radius:0;box-shadow:none}
}

/* Quiz header: the brand belongs beside progress, while the room image stays clean. */
.passport .progress-panel{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:22px;align-items:center;max-width:660px;margin:auto}
.quiz-brand{grid-row:1 / 3;width:76px;height:48px;object-fit:contain}
.passport .progress-row,.passport .progress-track{grid-column:2;width:100%;max-width:none}
.passport .progress-track{margin-top:10px}
.consultation-logo{display:none!important}
.option strong,.body-options .option strong{font-size:18px;line-height:1.35}

.quiz-bottom-call{display:flex;align-items:center;justify-content:center;gap:14px;width:calc(100% - 64px);max-width:690px;min-height:72px;margin:16px auto 28px;padding:12px 20px;background:#ffcd7d;border:2px solid #17314f;box-shadow:0 6px 0 #17314f;color:#17314f;text-decoration:none;text-align:center}
.quiz-bottom-call svg{width:23px;height:23px;fill:currentColor;flex:none}.quiz-bottom-call span{display:grid;gap:2px}.quiz-bottom-call b{font-size:18px}.quiz-bottom-call small{font-size:10px;color:#765e3d}
.showing-result .quiz-bottom-call{display:none}

/* Result: one strong card, one concise decision column, then the celebrity proof. */
.showing-result .quest-content{padding:28px 34px 14px}
.result-showcase{grid-template-columns:minmax(320px,370px) minmax(320px,1fr);gap:clamp(34px,5vw,64px);align-items:center;max-width:940px;margin:auto}
.result-info>.personality-kicker{margin-bottom:3px;color:#806742;font-weight:800}
.personality-code{font-size:clamp(54px,7vw,82px);line-height:1;letter-spacing:.08em;color:#17314f;margin:0 0 13px;font-weight:950}
.personality-summary{font-size:16px;line-height:1.8;color:#526474;margin:0 0 17px;max-width:520px}
.result-info .preference-tags{margin-bottom:13px}
.result-info .personality-offer{padding:15px 0}
.result-info .offer-total{font-size:39px}
.result-info .call-button{min-height:76px;font-size:17px}
.personality-inspiration{max-width:940px;margin:28px auto 8px;grid-template-columns:minmax(0,1.4fr) minmax(210px,.6fr);gap:32px}
.personality-inspiration .personality-kicker{font-weight:850;color:#806742}

@media(max-width:620px){
 .passport .progress-panel{grid-template-columns:54px minmax(0,1fr);column-gap:12px}.quiz-brand{width:54px;height:36px}.passport .progress-track{margin-top:7px}
 .option strong,.body-options .option strong{font-size:17px}
 .quiz-bottom-call{width:calc(100% - 34px);min-height:68px;margin:13px auto 23px;padding:10px 12px}.quiz-bottom-call b{font-size:16px}
 .showing-result .quest-content{padding:14px 17px 8px}.result-showcase{display:flex;gap:22px;padding-top:8px}.personality-code{font-size:56px}.personality-summary{font-size:14px;margin-bottom:13px}.result-info .call-button{min-height:70px}.personality-inspiration{margin-top:25px;padding-top:22px}.personality-inspiration img{margin-bottom:14px}
}

/* idle-massage.css */
/* The idle loop owns its own layer so it cannot override the click reaction. */
.idle-massage{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.idle-backdrop{position:absolute;inset:0 auto auto 0;width:300%;max-width:none;height:auto;display:block;image-rendering:pixelated}
/* Lock the room, chair and smiling guest; animate only the therapist and foot. */
.idle-figure{position:absolute;inset:0;clip-path:polygon(60% 25%,85% 25%,85% 43%,92% 43%,92% 76%,63% 76%,63% 70%,51% 70%,51% 59%,54% 59%,54% 50%,60% 50%)}
.idle-sheet{position:absolute;inset:0 auto auto 0;width:300%;max-width:none;height:auto;display:block;image-rendering:pixelated;transform:translateX(0);user-select:none}
.massage-scene[data-idle="playing"] .idle-sheet{animation:gentle-knead 1.8s steps(1,end) infinite}
@keyframes gentle-knead{
  0%,100%{transform:translateX(0)}
  25%,75%{transform:translateX(-33.333333333%)}
  50%{transform:translateX(-66.666666667%)}
}
html[data-motion="paused"] .idle-sheet{animation:none!important}
@media(prefers-reduced-motion:reduce){.idle-sheet{animation:none!important}}

/* strong-press-variant.css */
/* Local strong-press branch: mount behind the entrance, reveal at room phase. */
body[data-screen="home"] .strong-press-home{min-height:calc(100svh - 38px);justify-content:center;padding-top:18px}
.strong-press-home[hidden]{display:none!important}
.strong-press-home[data-entry="room"] .indoor-world{opacity:1;transition:none}
/* At room phase the storefront itself dissolves into the actual room image.
   Both opaque canvases must clear; the stage keeps its .35s opacity transition. */
.entrance-only[data-entry="room"],.entrance-only[data-entry="ready"],
.entrance-only[data-entry="room"] .entrance-viewport,.entrance-only[data-entry="ready"] .entrance-viewport{background:transparent}
.entrance-only[data-entry="room"] .entry-stage,.entrance-only[data-entry="ready"] .entry-stage{opacity:0}
.strong-press-home .service-actions{display:block}
.strong-press-home .massage-start{margin-inline:auto}
.strong-press-home .scene-logo{display:block}
@media(max-width:700px){body[data-screen="home"] .strong-press-home{min-height:calc(100svh - 24px);padding-top:10px}.strong-press-home .scene-column{gap:10px}}

/* wuxia-lite.css */
/* Independent v0.1: warm paper, jade ink, cinnabar and mature wuxia sprites.
   Same responsive container and reveal lifecycle as the frozen conversion page. */
:root{--wuxia-ink:#233f39;--wuxia-jade:#466a59;--wuxia-red:#9e4434;--wuxia-paper:#f6f0e2}
.option.selected{background:#e1ebdf;border-color:#466a59;color:#233f39;box-shadow:0 4px 0 #a2b19a}
.option.selected .option-check{background:#466a59;border-color:#466a59}
.option:focus-visible{outline:3px solid #a87637;outline-offset:3px}
.persona-card{--card-ink:#264d46;--card-tone:#bcd6ca;--card-light:#f7f0dc;--scene-sky:#bfe3d2;--scene-haze:#e9e3b8;--scene-far:#5d8c76;--scene-near:#254f49;--scene-sun:#ffe3a1}
.persona-card.palette-1{--card-ink:#595736;--card-tone:#e1d8b7;--card-light:#fbf1df;--scene-sky:#efdca6;--scene-haze:#f8edce;--scene-far:#9a8b55;--scene-near:#4f5638;--scene-sun:#fff0a8}
.persona-card.palette-2{--card-ink:#4e4a59;--card-tone:#d2cbd6;--card-light:#f6eee1;--scene-sky:#bfc9dd;--scene-haze:#e9e1d8;--scene-far:#6f7189;--scene-near:#3d435a;--scene-sun:#f5d8b0}
.persona-card.palette-3{--card-ink:#394753;--card-tone:#c5d2d3;--card-light:#f5f0e1;--scene-sky:#d4a995;--scene-haze:#ecd9bc;--scene-far:#806961;--scene-near:#344852;--scene-sun:#ffd48d}
.persona-card .card-face{border-radius:8px;background:linear-gradient(145deg,#c5ae72,#ece1b7 42%,#a48d58);padding:6px}
.persona-card .card-face .holo-card__front{border-radius:3px;background:var(--card-light)}
.persona-card .card-face .holo-card__rotator{border-radius:3px}
.card-heading{font-size:11px;letter-spacing:.15em}
.card-name{padding:10px 0 9px;justify-content:flex-start}
.card-name .result-title{font-size:29px;font-weight:850;letter-spacing:.09em}
.card-art{height:222px;border-color:#8e906e;background:radial-gradient(circle at 76% 23%,var(--scene-sun) 0 10%,transparent 10.5%),linear-gradient(180deg,var(--scene-sky) 0 48%,var(--scene-haze) 100%)}
.card-art::before{display:block;content:'';position:absolute;inset:30% -8% -7%;background:linear-gradient(145deg,transparent 0 22%,var(--scene-far) 22.5% 40%,transparent 40.5%) 0 0/58% 100% no-repeat,linear-gradient(215deg,transparent 0 24%,var(--scene-far) 24.5% 45%,transparent 45.5%) 100% 0/62% 100% no-repeat,linear-gradient(148deg,transparent 0 29%,var(--scene-near) 29.5% 58%,transparent 58.5%) -20% 100%/75% 82% no-repeat,linear-gradient(212deg,transparent 0 28%,var(--scene-near) 28.5% 60%,transparent 60.5%) 120% 100%/78% 88% no-repeat;opacity:.78}
.card-art::after{display:block;content:'';position:absolute;left:-15%;right:-15%;bottom:-19px;width:auto;height:76px;border-radius:50%;background:repeating-radial-gradient(ellipse at 50% 100%,#fffceb 0 8px,#fffceb99 9px 15px,transparent 16px 24px);opacity:.78;filter:blur(.4px);box-shadow:none}
.card-orbit{display:block;width:170px;height:170px;border-color:#fff8;outline-color:#fff4;opacity:.6}
.card-art .personality-avatar{width:228px;max-width:90%;filter:drop-shadow(0 4px 2px #233f3920)}
.art-star{display:none}
.art-caption{font-size:10px;bottom:6px;letter-spacing:.09em;background:var(--card-ink);border:0;padding:3px 10px}
.wuxia-preferences{display:grid;gap:10px;margin-top:12px}
.preference-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;line-height:1.5;margin-bottom:5px;color:#52624c}
.preference-label>span{letter-spacing:.18em;font-weight:750}.preference-label>b{font-weight:750;color:var(--card-ink)}
.preference-scale{position:relative;height:9px;border-radius:5px;margin:0 5px;background:linear-gradient(90deg,#367bc0 0%,#79b6d2 34%,#e7d9b7 50%,#df8b68 68%,#c33d45 100%);box-shadow:inset 0 1px 2px #17314f45,0 0 0 1px #8a7b5d55}
.wuxia-preference:nth-child(2) .preference-scale{background:linear-gradient(90deg,#4e9e93 0%,#8bc5b2 34%,#eadcb5 50%,#d98172 68%,#a83f5d 100%)}
.wuxia-preference:nth-child(3) .preference-scale{background:linear-gradient(90deg,#2b83b6 0%,#78b8c7 34%,#eadcb5 50%,#bd7f8d 68%,#744b91 100%)}
.preference-scale::before{content:'';position:absolute;top:1px;bottom:1px;width:1px;left:50%;background:#80745455}
.preference-scale i{position:absolute;top:-4px;left:var(--position);width:13px;height:17px;transform:translateX(-50%);background:#fff6d3;border:2px solid #293e50;box-shadow:0 2px 0 #6c704d,0 0 0 1px #fff8}
.preference-scale .position-1{--position:0%}.preference-scale .position-15{--position:14.1414%}.preference-scale .position-40{--position:39.3939%}.preference-scale .position-50{--position:49.4949%}.preference-scale .position-65{--position:64.6465%}.preference-scale .position-90{--position:89.899%}.preference-scale .position-100{--position:100%}
.preference-poles{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#726950;margin-top:5px;line-height:1}
.preference-poles>span:nth-child(2){font-variant-numeric:tabular-nums;color:#676954;font-size:10px}.preference-poles small{font-size:8px;color:#908771}
.flexible-preference{margin:0;color:#726950;font-size:11px;line-height:1.5;padding:4px 0;border-top:1px dashed #c9bea1}
.card-footer{font-size:11px;margin-top:12px}
/* Keep the familiar reveal-side treatment from the original card: the new
   wuxia wording changes, but its gold frame, orbit and glow stay recognisable. */
.card-back{border-radius:15px;background:repeating-linear-gradient(45deg,#ffffff04 0 1px,transparent 1px 10px),radial-gradient(ellipse,#35595b,#182e39);box-shadow:inset 0 0 0 7px #cfb373,inset 0 0 0 9px #f0d693,inset 0 0 0 13px #183544}
.card-back .back-emblem{font-size:90px;line-height:1.2;font-weight:inherit;border:0;padding:0;text-shadow:0 0 30px #f7d580}
.card-back::after{border-radius:50%;inset:24px}
.card-back small{font-size:8px;letter-spacing:.16em}
.result-info>.personality-kicker{color:#8a663c;font-size:14px;letter-spacing:.15em}
.personality-code{font-size:clamp(32px,4vw,48px);line-height:1.3;letter-spacing:.08em;margin:0 0 16px;color:#233f39;white-space:nowrap}
.personality-summary{display:block;color:#526257;font-size:17px;border:0;border-left:3px solid #b9a379;background:#eee9db;padding:14px 18px;max-width:none}
.result-info .preference-tags span{background:#e9e5d5;color:#3f5b4d;font-size:13px}
.result-info .personality-offer{border-color:#c7bda4}
.result-info .offer-total{color:#ad4336}
.result-showcase{align-items:center}
@media(max-width:850px){.card-art{height:208px}.card-art .personality-avatar{width:218px}.card-name .result-title{font-size:26px}.personality-code{font-size:34px}}
@media(max-width:620px){.personality-code{font-size:37px;text-align:center;letter-spacing:.08em}.result-info>.personality-kicker{text-align:center;font-size:12px}.personality-summary{font-size:16px}.result-info .preference-tags{justify-content:center}.result-info .preference-tags span{font-size:12px}.card-name .result-title{font-size:28px}.option strong{font-size:18px}.card-art{height:216px}.card-art .personality-avatar{width:222px}}
@media(max-width:350px){.card-art{height:195px}.card-art .personality-avatar{width:202px}.card-name .result-title{font-size:25px}.personality-code{font-size:32px}.preference-label{font-size:11px}.wuxia-preferences{gap:9px}.result-info .preference-tags span{font-size:11px}}
@media(max-width:420px){
 .passport .progress-panel{grid-template-columns:42px minmax(0,1fr);column-gap:10px;padding-left:13px;padding-right:13px}
 .passport .quiz-brand{width:42px;height:34px}
 .passport .progress-row{min-width:0;gap:8px}
 .passport .stamp-path{min-width:0;gap:7px}
 .passport .stamp-stop{min-width:0;gap:3px}
 .passport #completion-count{min-width:31px;font-size:14px;flex:none}
 .passport .stamp-stop>b{font-size:9px}
 .passport .stamp{width:24px;height:24px}
 .passport .stamp>svg{width:15px;height:15px}
 .quiz-bottom-call{gap:9px;padding-left:10px;padding-right:10px}
 .quiz-bottom-call b{font-size:14px;white-space:nowrap}
 .quiz-bottom-call svg{width:17px;height:17px}
}

/* immersive-v3.css */
/* Local immersive trial: scenery reaches the edges, controls stay readable. */
.persona-card .card-art{background:#173d43 url('assets/card-atmosphere-v7.jpg') center center/cover no-repeat}
.persona-card .card-art::before,.persona-card .card-orbit{display:none}
.persona-card .card-art::after{content:'';display:block;position:absolute;left:50%;right:auto;bottom:5px;width:148px;height:20px;border-radius:50%;background:#102c3a38;box-shadow:none;filter:blur(3px);opacity:1;transform:translateX(-50%);z-index:0}
.persona-card .card-art .personality-avatar{position:relative;top:18px;z-index:1;filter:drop-shadow(0 6px 3px #102c3a45)}
.showing-result .result-showcase{padding-bottom:8px}
.showing-result .quest-content{padding-bottom:0}
/* A transformed card does not expand the iframe's layout height. Reserve room
   before the summon begins, then release it when the card returns to rest. */
#result-panel[data-reveal-pending="true"] .result-showcase,#result-panel.is-revealing .result-showcase{padding-bottom:clamp(88px,11vw,120px)}
#sales-page .sales-scroll{height:44px;margin-bottom:0}
#sales-page .space-section{padding-top:16px}
body[data-screen="home"] .strong-press-home{width:100%;height:100dvh;min-height:600px;padding:0;position:relative;overflow:hidden;background:#342e26}
/* Hold a room-toned edge while the real indoor scene paints; the decorative
   banner is requested only after the entrance is ready. Both layers are
   absolute, so revealing the banner never changes the hero's geometry. */
body[data-screen="home"] .strong-press-home::before{content:'';position:absolute;inset:-25px;z-index:0;background:radial-gradient(ellipse at 48% 35%,#625a50 0%,#403a34 58%,#292623 100%)}
body[data-screen="home"] .strong-press-home::after{content:'';position:absolute;inset:-25px;z-index:0;pointer-events:none;opacity:0;filter:blur(8px) brightness(.55);background-position:center;background-size:cover;transition:opacity .35s ease}
body[data-screen="home"] .strong-press-home.ambient-banner-ready::after{background-image:url('assets/space-banner-q85.webp');opacity:1}
html[data-motion="paused"] body[data-screen="home"] .strong-press-home::after{transition:none}
body[data-screen="home"] .strong-press-home .scene-column{width:100%;height:100%;gap:0;justify-content:center;position:relative;z-index:1}
body[data-screen="home"] .strong-press-home .massage-scene{width:min(100vw,100dvh);height:min(100vw,100dvh);max-width:none;mask-image:none;aspect-ratio:1;margin:auto}
body[data-screen="home"] .strong-press-home .hero-controls{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 32px));z-index:10}
body[data-screen="home"] .strong-press-home .massage-start{min-height:72px;box-shadow:0 6px 0 #17314f,0 12px 30px #0005}
body[data-screen="home"] .strong-press-home .guest-dialogue{top:5%;left:5%;font-size:clamp(16px,2vw,21px)}
body[data-screen="home"] .experience-footer{position:absolute;bottom:0;right:12px;z-index:11;min-height:20px;color:white}
body[data-screen="game"] .game-screen{width:100%;max-width:none;margin:0}
body[data-screen="game"] .game-window{border:0;border-radius:0;box-shadow:none;overflow:visible}
body[data-screen="game"] .game-window iframe{width:100%;display:block}
/* --stage-viewport is supplied by parent, never based on the resizing iframe. */
body:not(.showing-result):has(.quest-layout){min-height:var(--stage-viewport,100dvh);background:#514b3b url('assets/space-banner-q85.webp') center/cover fixed}
body:not(.showing-result) .quest-layout{min-height:calc(var(--stage-viewport,100dvh) - 98px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(230px,1fr) auto;background:#15352e18}
body:not(.showing-result) .passport{background:#fff7e7ee}
body:not(.showing-result) .passport .progress-panel{max-width:840px}
body:not(.showing-result) .consultation-stage{height:auto;min-height:230px;background:transparent}
body:not(.showing-result) .consultation-room{filter:brightness(.95);object-position:center 48%;inset:0;width:100%;height:100%}
body:not(.showing-result) .therapist-portrait{height:calc(100% - 76px);max-height:560px;top:auto;bottom:76px}
body:not(.showing-result) .consultation-subtitles{background:#fffaf0}
body:not(.showing-result) .consultation-subtitles .consultation-dialogue{max-width:840px;margin:auto;border:0;background:transparent;min-height:85px}
body:not(.showing-result) .quest-content{background:#fffaf0ee;padding:0 max(20px,calc((100% - 800px)/2)) 16px}
body:not(.showing-result) .options{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
body:not(.showing-result) .options .option{min-height:64px}
body:not(.showing-result) .quiz-bottom-call{margin:12px auto 20px;min-height:66px;width:min(800px,calc(100% - 40px))}
@media(max-width:620px){
 body[data-screen="home"] .strong-press-home{min-height:520px}
 body[data-screen="home"] .strong-press-home .massage-scene{width:100vw;height:100vw;max-height:none;max-width:none;position:absolute;top:42%;left:0;transform:translateY(-42%)}
 body[data-screen="home"] .strong-press-home .guest-dialogue{left:4%;width:65%;top:3%;font-size:15px}
 body[data-screen="home"] .strong-press-home .scene-logo{right:4%;width:16%}
 body:not(.showing-result) .quest-layout{min-height:calc(var(--stage-viewport,100dvh) - 96px);grid-template-rows:auto minmax(240px,1fr) auto}
 body:not(.showing-result) .quest-content{padding:0 16px 10px}
 body:not(.showing-result) .options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 body:not(.showing-result) .options .option{min-height:54px;padding:9px}
 body:not(.showing-result) .consultation-subtitles .question-title{font-size:21px}
 body:not(.showing-result) .quiz-bottom-call{width:calc(100% - 32px)}
}

/* Full cutout stays inside the card: source aspect ratios never dictate cropping. */
.persona-card .card-art{height:280px}
.persona-card .card-art .personality-avatar{height:100%;width:100%;max-width:100%;top:0;aspect-ratio:auto;object-fit:contain;object-position:center bottom;margin:0;filter:drop-shadow(0 3px 2px #34251a25)}
@media(max-width:620px){.persona-card .card-art{height:255px}}
