/* The available explorer rectangle governs the scene and its over-model cards. */
html{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--header-height:64px}
html,body{height:100%;overflow:hidden}.site-header{height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) max(20px,var(--safe-right)) 0 max(20px,var(--safe-left));background:var(--paper);z-index:30}.wordmark{font-size:22px}.wordmark span{font-size:7px}.header-centre{font-size:9px}
#explorer{--sheet-width:370px;--scene-bottom:76px;--panel-height:43%;position:relative;display:block;width:calc(100% - var(--safe-left) - var(--safe-right));height:calc(var(--app-height,100dvh) - var(--header-height) - var(--safe-top) - var(--safe-bottom));min-height:0;max-height:none;padding:0;margin:0 var(--safe-right) 0 var(--safe-left);overflow:hidden;background:radial-gradient(ellipse at 48% 45%,#e7e8df 0%,#f0f0e9 35%,var(--paper) 72%);container:explorer / size}
#explorer .model-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;margin:0}
#explorer model-viewer{position:absolute;inset:78px 0 76px;width:100%;height:calc(100% - 154px);min-height:0;max-height:none;touch-action:none;transition:none}
.navigator{position:absolute;z-index:12;top:20px;left:24px;width:220px;max-height:none;overflow:visible}.intro h1{font-size:40px;margin:0 0 10px}.intro .eyebrow{font-size:9px}.intro>p:last-child{font-size:13px;margin:0 0 18px}.guide-selector{margin:0 0 12px}.segmented{width:184px;background:#ecece3e8}.segmented button{min-height:44px}.field-label{font-size:9px}
#areaMenu{width:184px;display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;font-size:12px;min-height:44px;background:#fffef8e8}#areaMenuContent{position:absolute;top:100%;left:0;width:248px;max-height:calc(100% + 250px);overflow:auto;padding:8px 14px;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 35px #353d2922}.area-nav{display:grid;width:auto;margin:0;gap:0;overflow:visible}.area-nav button{min-height:44px;width:100%;border:0;border-radius:0;border-bottom:1px solid var(--line);font-size:13px;padding:9px 0}.area-nav .area-number{display:none}.browse{margin:4px 0 0;min-height:44px;font-size:12px}
.stage-label{top:20px}.scene-path{position:absolute;top:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;z-index:5;max-width:calc(100% - 430px);padding:2px 12px;background:#fffef8eb;border:1px solid var(--line);border-radius:8px;white-space:nowrap}.scene-path>span{min-width:0;overflow:hidden;text-overflow:ellipsis;font:17px Georgia,serif}.scene-path>.text-button{min-height:44px;flex-shrink:0;font-size:12px}.scene-path>[hidden]{display:none}
.zoom-controls{position:absolute;right:20px;top:88px;z-index:6;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fffef8ed}.zoom-controls button{width:44px;min-width:44px;min-height:44px;background:transparent;border:0;font-size:23px}.zoom-controls button+button{border-top:1px solid var(--line)}
.view-controls{position:absolute;z-index:6;bottom:24px;left:50%;width:auto;min-width:0;max-width:calc(100% - 24px);padding:4px;gap:2px;flex-wrap:nowrap;white-space:nowrap}.view-controls button{font-size:11px;min-height:44px;padding:7px 10px}.stage-hint{bottom:7px;font-size:11px}
.consultation-panel{align-self:stretch;position:absolute;z-index:8;right:20px;top:88px;bottom:86px;left:auto;width:var(--sheet-width);height:auto;min-height:0;max-height:none;padding:18px;margin:0;overflow:auto;overscroll-behavior:contain;border:1px solid #d0d0c3;background:#fffef8f5;border-radius:12px;box-shadow:0 12px 40px #323c2c19;animation:popup-enter .18s ease}.consultation-panel[hidden]{display:none}.consultation-panel h2{font-size:29px}.panel-top{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:4px}.panel-top .text-button{min-height:44px}.step-label{font-size:8px;letter-spacing:.09em}.close-popup{width:44px;height:44px;flex-shrink:0;border:0;border-radius:50%;background:#e9e9df;font-size:24px}.panel-search input{font-size:16px;min-height:44px}.choice-list{gap:8px}.choice-button{font-size:14px;min-height:48px}.choice-button small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.panel-description{font-size:14px;line-height:1.55}.small-caption{font-size:12px;line-height:1.5}.full-width{width:100%}.popup-connector{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.popup-connector path{fill:none;stroke:#a58b48;stroke-width:1.2;stroke-dasharray:4 4;opacity:.65}
.popup-open #explorer model-viewer{width:calc(100% - var(--sheet-width) - 40px)}.popup-open .scene-path,.popup-open .view-controls{left:calc((100% - var(--sheet-width) - 40px)/2)}.popup-open .zoom-controls{right:calc(var(--sheet-width) + 54px)}.popup-open .stage-hint{width:calc(100% - var(--sheet-width) - 40px)}
body:not([data-explorer-step=welcome]) .navigator{display:flex;align-items:center;justify-content:space-between;left:20px;right:20px;top:14px;width:auto;pointer-events:none}body:not([data-explorer-step=welcome]) .navigator>*{pointer-events:auto}body:not([data-explorer-step=welcome]) .intro,body:not([data-explorer-step=welcome]) .field-label,body:not([data-explorer-step=welcome]) .stage-label{display:none}body:not([data-explorer-step=welcome]) .guide-selector{margin:0}body:not([data-explorer-step=welcome]) #areaMenuContent{left:auto;right:0;top:52px;max-height:calc(var(--app-height,100dvh) - 145px)}
.visit-dock{position:absolute;z-index:15;right:20px;left:auto;bottom:12px;width:var(--sheet-width);height:60px;min-height:0;padding:8px 12px;background:#fdfcf6;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 16px #323c2c10}.visit-dock strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:175px}.visit-dock .primary-button{font-size:11px;min-height:44px;padding:10px}.has-consultation .consultation-panel{bottom:86px}
.side-selector{display:flex;gap:6px;margin:0 0 12px}.side-selector button{flex:1;min-height:44px;padding:6px;border:1px solid var(--line);border-radius:6px;background:transparent;font-size:12px}.side-selector button[aria-pressed=true]{background:#e5decb;border-color:#ab945f}
.treatment-entry{border-bottom:1px solid var(--line);padding:10px 0;font-size:13px}.treatment-entry summary{min-height:44px;cursor:pointer;line-height:1.5}.treatment-entry summary small{display:block;color:var(--muted);font-size:11px}.treatment-entry ul{padding-left:18px;line-height:1.6;font-size:12px}
.surface-pin{width:44px;height:44px;min-width:44px;min-height:44px}.surface-pin>span{font-size:11px;width:max-content;max-width:170px;white-space:normal}.surface-pin.compact>span{display:none}.surface-pin.compact:hover>span,.surface-pin.compact:focus-visible>span,.surface-pin.compact[aria-pressed=true]>span{display:block}
.model-fallback{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,calc(100% - 32px));padding:22px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:12px}.model-fallback h2{font:28px Georgia,serif}.model-fallback p{font-size:14px;line-height:1.5}.model-fallback button{min-height:44px;margin-top:10px}.model-unavailable model-viewer{opacity:.12;pointer-events:none}.model-unavailable .zoom-controls,.model-unavailable .view-controls,.model-unavailable .stage-hint,.model-unavailable #modelStatus{display:none}.site-footer,.legal-links{display:none}
body[data-layout=wide][data-explorer-step=welcome] .scene-path{display:none}
body[data-layout=stacked] .header-centre{display:none}
body[data-layout=stacked] .navigator,body[data-layout=stacked]:not([data-explorer-step=welcome]) .navigator{left:12px;right:12px;top:10px;width:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}body[data-layout=stacked] .navigator>*{pointer-events:auto}body[data-layout=stacked] .intro,body[data-layout=stacked] .field-label,body[data-layout=stacked] .stage-label{display:none}body[data-layout=stacked] .guide-selector{margin:0}body[data-layout=stacked] .segmented{width:152px}body[data-layout=stacked] #areaMenu{width:155px}body[data-layout=stacked] #areaMenuContent{left:auto;right:0;top:50px;max-height:calc(var(--app-height,100dvh) - 145px)}
body[data-layout=stacked] .scene-path,body[data-layout=stacked].popup-open .scene-path{top:64px;left:50%;max-width:calc(100% - 24px);width:max-content;gap:6px;padding:0 8px}body[data-layout=stacked] .scene-path>span{font-size:15px}body[data-layout=stacked] .scene-path .text-button{font-size:11px}
body[data-layout=stacked] #explorer model-viewer{inset:112px 0 74px;width:100%;height:calc(100% - 186px)}body[data-layout=stacked] .consultation-panel{top:auto;bottom:var(--scene-bottom);left:12px;right:12px;width:auto;height:var(--panel-height);max-height:calc(100% - 124px - var(--scene-bottom));padding:12px 14px}body[data-layout=stacked].popup-open #explorer model-viewer{height:calc(100% - 124px - var(--panel-height) - var(--scene-bottom));min-height:36px}body[data-layout=stacked] .consultation-panel h2{font-size:25px;margin:4px 0 10px}body[data-layout=stacked] .panel-description{font-size:13px}body[data-layout=stacked] .search-results{display:grid;grid-template-columns:1fr 1fr}body[data-layout=stacked] .role-list{grid-template-columns:1fr}body[data-layout=stacked] .popup-connector{display:none}
body[data-layout=stacked] .view-controls,body[data-layout=stacked].popup-open .view-controls{left:50%;bottom:20px;padding:3px;gap:0}body[data-layout=stacked] .view-controls button{font-size:10px;padding-inline:7px}body[data-layout=stacked] .stage-hint{display:none}body[data-layout=stacked] .zoom-controls,body[data-layout=stacked].popup-open .zoom-controls{top:120px;right:12px}body[data-layout=stacked] .surface-pin>span{font-size:10px;max-width:125px}
body[data-layout=stacked].has-consultation #explorer{--scene-bottom:140px;--panel-height:40%}body[data-layout=stacked].has-consultation .view-controls{bottom:82px}body[data-layout=stacked] .visit-dock{left:12px;right:12px;bottom:10px;width:auto;height:58px}body[data-layout=stacked].has-consultation:not(.popup-open) #explorer model-viewer{height:calc(100% - 254px)}
body[data-layout=stacked][data-explorer-step=review] .consultation-panel,body[data-layout=stacked][data-explorer-step=triage] .consultation-panel,body[data-layout=stacked][data-explorer-step=booking] .consultation-panel,body[data-layout=stacked][data-explorer-step=treatments] .consultation-panel{top:112px;height:auto;bottom:var(--scene-bottom);max-height:none}body[data-layout=stacked]:is([data-explorer-step=review],[data-explorer-step=triage],[data-explorer-step=booking],[data-explorer-step=treatments]) .zoom-controls{display:none}
body[data-layout=landscape]{--header-height:48px}body[data-layout=landscape] .header-centre,body[data-layout=landscape] .intro,body[data-layout=landscape] .field-label,body[data-layout=landscape] .stage-label{display:none}body[data-layout=landscape] .wordmark{font-size:17px}body[data-layout=landscape] #explorer{--sheet-width: min(48%,340px)}body[data-layout=landscape] .navigator,body[data-layout=landscape]:not([data-explorer-step=welcome]) .navigator{top:5px;left:10px;right:10px;width:auto;display:flex;justify-content:space-between;pointer-events:none}body[data-layout=landscape] .navigator>*{pointer-events:auto}body[data-layout=landscape] .guide-selector{margin:0}body[data-layout=landscape] .segmented{width:142px}body[data-layout=landscape] #areaMenu{width:146px}body[data-layout=landscape] #areaMenuContent{left:auto;right:0;top:48px;max-height:calc(var(--app-height,100dvh) - 115px)}
body[data-layout=landscape] #explorer model-viewer{top:54px;bottom:54px;height:calc(100% - 108px)}body[data-layout=landscape].popup-open #explorer model-viewer{width:calc(100% - var(--sheet-width) - 20px)}body[data-layout=landscape] .scene-path,body[data-layout=landscape].popup-open .scene-path{top:5px;left:calc((100% - var(--sheet-width) - 20px)/2);max-width:calc(100% - var(--sheet-width) - 24px);gap:4px;padding-inline:5px}body[data-layout=landscape] .scene-path>span{font-size:12px}body[data-layout=landscape] .scene-path .text-button{font-size:10px}body[data-layout=landscape][data-explorer-step=welcome] .scene-path{display:none}body[data-layout=landscape]:not([data-explorer-step=welcome]) .guide-selector{visibility:hidden}
body[data-layout=landscape] .consultation-panel{top:56px;bottom:8px;right:8px;width:var(--sheet-width);padding:8px 12px;height:auto;max-height:none}body[data-layout=landscape].has-consultation .consultation-panel{bottom:74px}body[data-layout=landscape] .consultation-panel h2{font-size:22px}body[data-layout=landscape] .panel-top .step-label{font-size:7px}body[data-layout=landscape] .view-controls{bottom:4px;left:50%;padding:2px}body[data-layout=landscape].popup-open .view-controls{left:calc((100% - var(--sheet-width) - 20px)/2);max-width:calc(100% - var(--sheet-width) - 24px);overflow-x:auto}body[data-layout=landscape] .view-controls button{font-size:9px;padding:5px}body[data-layout=landscape] .stage-hint,body[data-layout=landscape] .popup-connector{display:none}body[data-layout=landscape] .zoom-controls{top:64px;right:10px}body[data-layout=landscape].popup-open .zoom-controls{right:calc(var(--sheet-width) + 18px)}body[data-layout=landscape] .visit-dock{right:8px;bottom:8px;width:var(--sheet-width);height:58px}
@container explorer (max-width:360px){.segmented{width:136px!important}#areaMenu{width:145px!important;font-size:11px}.scene-path>span{font-size:12px!important}.scene-path .text-button{font-size:10px!important}.step-label{display:none}.view-controls button{padding-inline:5px!important}.choice-button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.consultation-panel{animation:none}*{scroll-behavior:auto!important}}
@keyframes popup-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

body[data-layout=stacked] .surface-pin:not(.compact)>span{display:block}

body[data-layout=wide].popup-open .scene-path{left:50%;max-width:calc(100% - 430px)}

/* Persistent area names: callouts on wide screens, a numbered key on touch layouts. */
.surface-pin::before{inset:9px}.surface-pin::after{display:none}.point-number{position:absolute;inset:0;display:grid;place-items:center;font:600 11px/1 Arial,sans-serif;color:white;pointer-events:none}.surface-pin[data-occluded]{visibility:hidden;pointer-events:none}.popup-open .surface-pin[aria-pressed=false]{visibility:hidden;pointer-events:none}
body[data-label-mode=callouts] .surface-pin>span{display:block;opacity:1;pointer-events:auto;font-size:11px;line-height:1.35;white-space:normal;box-sizing:border-box;padding:7px 9px;min-height:30px}
body[data-label-mode=key] .surface-pin>span,.popup-open .surface-pin>span{display:none!important}
.label-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.label-lines path{fill:none;stroke:#ab955f;stroke-width:1;opacity:.7}
.point-key{display:none;position:absolute;z-index:5;left:12px;right:12px;bottom:74px;height:136px;border:1px solid #d0d0c3;border-radius:9px;background:#fffef8f2;padding:7px 8px 4px;box-sizing:border-box}.point-key[hidden]{display:none!important}.point-key-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;margin-bottom:5px}.point-key-heading span{font-size:9px;color:var(--muted)}.point-key-list{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-height:90px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a68c50 #eceadf}.point-key-list button{display:flex;align-items:center;gap:6px;min-height:43px;border:1px solid var(--line);background:#fffef9;border-radius:5px;text-align:left;font-size:11px;line-height:1.25;padding:5px 6px}.point-key-list b{flex-shrink:0;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#9a7b3d;color:white;font:600 11px Arial,sans-serif}.point-key-list small{margin-left:auto;font-size:9px;color:var(--muted)}.point-key p{font-size:9px;color:var(--muted);margin:4px 0 0}
body[data-layout=stacked]:not(.popup-open) .point-key{display:block}body[data-layout=stacked]:not(.popup-open) #explorer model-viewer{height:calc(100% - 330px);bottom:218px;min-height:76px}body[data-layout=stacked].has-consultation:not(.popup-open) .point-key{bottom:140px}body[data-layout=stacked].has-consultation:not(.popup-open) #explorer model-viewer{height:calc(100% - 396px)}
body[data-layout=landscape]:not(.popup-open) .point-key{display:block;left:auto;right:8px;top:58px;bottom:58px;width:min(37%,280px);height:auto}body[data-layout=landscape]:not(.popup-open) .point-key-list{grid-template-columns:1fr;max-height:calc(100% - 42px)}body[data-layout=landscape]:not(.popup-open) #explorer model-viewer{width:calc(100% - min(37%,280px) - 20px)}body[data-layout=landscape]:not(.popup-open) .zoom-controls{right:calc(min(37%,280px) + 30px)}body[data-layout=landscape]:not(.popup-open) .view-controls{left:calc((100% - min(37%,280px) - 20px)/2)}
/* Reserve real space for choices instead of spending the sheet on repeated copy. */
body[data-layout=stacked]{--panel-height:48%}body[data-layout=stacked] #explorer{--panel-height:clamp(240px,48%,370px)}
.consultation-panel .panel-top{margin-bottom:2px}.consultation-panel .panel-description{margin-bottom:10px}.consultation-panel .panel-search[hidden]{display:none}.consultation-panel .search-count{margin-bottom:6px}.consultation-panel .side-selector{margin-bottom:6px}
body[data-layout=stacked].popup-open .point-key{display:none}body[data-layout=stacked] .consultation-panel{padding:8px 12px}body[data-layout=stacked] .consultation-panel h2{font-size:23px;margin:2px 0 7px}body[data-layout=stacked] .consultation-panel .panel-top{height:44px}body[data-layout=stacked] .consultation-panel .panel-description{display:none}body[data-layout=stacked] .panel-search{margin-bottom:6px}body[data-layout=stacked] .choice-list{gap:5px}body[data-layout=stacked] .side-selector button{min-height:40px}
body[data-layout=landscape] .consultation-panel .panel-description,body[data-layout=landscape] .consultation-panel .step-label{display:none}body[data-layout=landscape] .consultation-panel .panel-search{margin-bottom:5px}body[data-layout=landscape] .consultation-panel .panel-top{height:36px}body[data-layout=landscape] .consultation-panel h2{margin:0 0 6px;font-size:21px}
@container explorer (max-height:650px) and (max-width:479px){
 .popup-open .navigator{display:none!important}.popup-open .scene-path{top:5px!important}.popup-open #explorer model-viewer{top:56px!important;height:calc(100% - 68px - var(--panel-height) - var(--scene-bottom))!important;min-height:70px}
 .popup-open .zoom-controls{top:62px!important}.consultation-panel .step-label{display:none}.consultation-panel h2{font-size:20px!important}.consultation-panel .panel-top{height:38px!important}.consultation-panel .panel-top .text-button{min-height:38px}.consultation-panel .close-popup{width:38px;height:38px}.consultation-panel .choice-button{min-height:44px;padding:8px;font-size:12px}
}
.choice-list-heading{grid-column:1/-1;font-size:11px;color:var(--muted);padding:12px 2px 3px}
/* Smaller overview marks keep the face readable; the touch target stays 44px. */
body[data-full-guide=true] .surface-pin::before{inset:12px}
body[data-full-guide=true] .point-number{font-size:10px}

/* Keep callouts beside the person in narrow browser panes and portrait phones. */
body[data-label-mode=callouts] .point-key{display:none!important}
body[data-label-mode=callouts][data-layout=stacked]:not(.popup-open) #explorer model-viewer{height:calc(100% - 186px);bottom:74px}
body[data-label-mode=callouts][data-layout=stacked].has-consultation:not(.popup-open) #explorer model-viewer{height:calc(100% - 252px);bottom:140px}
body[data-label-mode=callouts][data-layout=stacked] .surface-pin>span{font-size:10px;line-height:1.3;padding:6px;min-height:30px;max-width:138px}

/* Area-first entry and a quieter, expandable scene. */
.area-start{position:absolute;inset:0;z-index:10;overflow:auto;background:radial-gradient(ellipse at 75% 35%,#e8ece5,#f7f6ef 75%);padding:76px 24px 30px;overscroll-behavior:contain}
.area-start[hidden]{display:none}.area-start-inner{max-width:720px;margin:0 auto}.area-start h1{font:clamp(32px,4vw,50px)/1.06 Georgia,serif;letter-spacing:-.035em;margin:12px 0 16px}.area-start p:not(.eyebrow){font-size:14px;line-height:1.6;color:var(--muted);max-width:460px;margin:0 0 22px}.start-areas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 14px}.start-areas button{position:relative;display:flex;flex-direction:column;gap:6px;min-height:82px;padding:16px 34px 16px 16px;text-align:left;border:1px solid #d6d8ca;border-radius:14px;background:#fffff7d9;box-shadow:0 3px 16px #28382c04;transition:background .18s,transform .18s}.start-areas button:hover,.start-areas button:focus-visible{background:#fff;transform:translateY(-2px);border-color:#a79870}.start-areas button>span{font-size:15px;font-weight:500}.start-areas small{font-size:11px;color:#62685d;line-height:1.4}.start-areas b{position:absolute;right:14px;top:18px;font-size:16px;font-weight:400;color:#8a7746}
body[data-explorer-step=welcome] :is(.scene-path,.scene-tools,.zoom-controls,.view-controls,.stage-hint,.point-key,.label-lines){visibility:hidden}
body[data-explorer-step=welcome] .intro{display:none}body[data-explorer-step=welcome] .navigator{top:14px;left:24px;right:24px;width:auto;display:flex;justify-content:space-between}body[data-explorer-step=welcome] .field-label{display:none}body[data-explorer-step=welcome] #areaMenu{visibility:hidden}
.scene-tools{position:absolute;top:78px;right:20px;display:flex;gap:6px;z-index:7}.scene-tools button{min-height:40px;padding:8px 12px;border:1px solid #d0d2c5;border-radius:20px;background:#fffef6e8;font-size:12px;backdrop-filter:blur(16px)}.scene-tools [hidden]{display:none}.zoom-controls{top:126px}
body[data-layout=stacked] .scene-tools{top:112px;right:12px}body[data-layout=stacked] .zoom-controls,body[data-layout=stacked].popup-open .zoom-controls{top:158px}body[data-layout=stacked] .scene-tools button{padding:6px 10px;font-size:11px}
body[data-layout=stacked] .area-start{padding:76px 18px 24px}body[data-layout=stacked] .area-start h1{font-size:36px}body[data-layout=stacked] .start-areas{gap:8px}body[data-layout=stacked] .start-areas button{min-height:82px;padding:13px 24px 13px 12px}body[data-layout=stacked] .start-areas button>span{font-size:13px}body[data-layout=stacked] .start-areas b{right:9px;top:13px}
body.focus-view{--header-height:0px}body.focus-view .site-header{display:none}body.focus-view .intro,body.focus-view .stage-label{display:none}body.focus-view .navigator{top:12px}.scene-path,.view-controls{backdrop-filter:blur(18px);box-shadow:0 5px 22px #34433108;border-radius:14px}
body[data-layout=landscape] .scene-tools{top:auto;bottom:8px;left:8px;right:auto}body[data-layout=landscape] .scene-tools button{font-size:10px;padding:6px}body[data-layout=landscape] .scene-tools span{display:none}body[data-layout=landscape] .area-start{padding:62px 24px 24px}body[data-layout=landscape] .area-start h1 br{display:none}body[data-layout=landscape] .area-start h1{font-size:30px}.xr-overlay{position:fixed;inset:0;z-index:100;background:#f5f5ec;display:grid;place-items:center}.xr-overlay canvas{position:absolute;inset:0;width:100%;height:100%}.xr-overlay p,.xr-overlay>button{position:relative;z-index:1}.xr-overlay>button{position:absolute;right:20px;top:20px;border:1px solid #b6bcae;background:white;border-radius:20px;padding:12px 18px;min-height:44px}
@container explorer (max-width:360px){.area-start h1{font-size:31px!important}.area-start p:not(.eyebrow){font-size:12px;margin-bottom:12px}.start-areas small{font-size:10px}.start-areas button{min-height:76px!important}.area-start .eyebrow{font-size:8px}.scene-tools button span{display:none}}
@media(prefers-reduced-motion:reduce){.start-areas button{transition:none}.start-areas button:hover{transform:none}}
body[data-layout=stacked] .scene-tools{left:12px;right:auto}
body[data-layout=stacked] .zoom-controls,body[data-layout=stacked].popup-open .zoom-controls{top:112px;flex-direction:row;border-radius:20px}
body[data-layout=stacked] .zoom-controls button+button{border-top:0;border-left:1px solid var(--line)}
body[data-layout=stacked].popup-open .scene-tools{display:none}
@container explorer (max-height:650px) and (max-width:479px){.popup-open .zoom-controls{top:62px!important}}

/* One live 3D scene is reused in the entry layout and the immersive explorer. */
.area-start-inner{max-width:1120px;display:grid;grid-template-columns:minmax(300px,1fr) minmax(260px,1fr);column-gap:40px;align-items:center}
.start-copy{grid-area:1/1}.start-choices{grid-area:2/1}.start-guide{grid-area:1/2/3/3;position:relative;align-self:stretch;min-height:530px}
body[data-explorer-step=welcome] #explorer .start-guide .model-stage{position:absolute;inset:0 0 40px;height:calc(100% - 40px);animation:guide-float 6s ease-in-out infinite}
body[data-explorer-step=welcome] #explorer .start-guide model-viewer{inset:0;width:100%;height:100%;cursor:pointer}
.start-guide :is(.stage-label,.model-status.ready){display:none}
.start-guide-caption{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:4;white-space:nowrap;min-height:44px;padding:10px 14px;border:1px solid #d6d8ca;border-radius:24px;background:#fffdf3cc;font-size:12px}
.area-start .start-fee{font-size:12px;margin:0;color:#6b6c60}.start-fee strong{font-weight:500;color:#393f34}
.consultation-price{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin:4px 0 16px;background:#ebece1;border:1px solid #d7d9ca;border-radius:12px}.consultation-price strong{font:20px Georgia,serif}.consultation-price span{font-size:12px;line-height:1.5}
@keyframes guide-float{0%,100%{transform:translateY(3px)}50%{transform:translateY(-7px)}}
@container explorer (max-width:760px){
 .area-start-inner{grid-template-columns:1fr 1fr;column-gap:0;max-width:560px}.start-copy{grid-area:1/1;z-index:1}.start-guide{grid-area:1/2;min-height:300px;margin:-16px -16px 0 -20px}.start-choices{grid-area:2/1/3/3}
 .area-start .eyebrow{font-size:8px;line-height:1.6;max-width:160px}.area-start p:not(.eyebrow){font-size:13px;margin-bottom:12px}.area-start .start-fee{font-size:11px}.start-guide-caption{font-size:10px;padding:8px 10px}.start-areas{margin-top:12px}.area-start h1{font-size:42px!important}
}
@container explorer (max-width:360px){.start-guide{min-height:280px}.area-start h1{font-size:36px!important}.start-guide-caption{white-space:normal;width:130px}.area-start p:not(.eyebrow){font-size:12px}}
@container explorer (max-height:500px) and (min-width:761px){.start-guide{min-height:450px}.area-start-inner{align-items:start}}
@media(prefers-reduced-motion:reduce){body[data-explorer-step=welcome] #explorer .start-guide .model-stage{animation:none}}

/* Entry scene keeps its own camera rectangle instead of inheriting the
   shortened portrait explorer viewport. This also makes touch bubbles legible. */
body[data-explorer-step=welcome] #explorer .start-guide model-viewer{inset:0!important;height:100%!important;width:100%!important;bottom:0!important}
body[data-explorer-step=welcome] .start-guide .label-lines{visibility:visible}
body[data-explorer-step=welcome] .surface-pin::before{inset:13px}
body[data-explorer-step=welcome] .surface-pin .point-number{display:none}
body[data-explorer-step=welcome] .start-guide .surface-pin>span{display:block!important;opacity:1;pointer-events:auto;font-size:11px;line-height:1.35;white-space:normal;box-sizing:border-box;padding:7px 9px;min-height:32px}
@container explorer (max-width:760px){
 .area-start-inner{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .start-copy{max-width:520px}.area-start h1{font-size:36px!important;margin:7px 0 8px}.area-start h1 br{display:none}.area-start h1 br::after{content:' '}
 .area-start .eyebrow{max-width:none;margin-bottom:8px}.area-start .start-copy>p:not(.eyebrow){font-size:13px;max-width:420px;margin-bottom:8px}
 .start-fee br{display:none}.start-fee strong{margin-left:4px}
 .start-guide{min-height:0;height:clamp(380px,56dvh,520px);margin:4px -12px 4px;align-self:stretch}
 .start-choices{width:100%}.start-guide-caption{white-space:nowrap;width:auto;font-size:12px;min-height:40px}.start-areas{margin-top:14px}
}

/* Keep the WebGL element connected while switching layouts. Detaching a
   model-viewer invalidates its surface projections during a camera move. */
body:not([data-explorer-step=welcome]) :is(.area-start,.area-start-inner,.start-guide){display:contents!important}
body:not([data-explorer-step=welcome]) :is(.start-copy,.start-choices,.start-guide-caption){display:none!important}

@container explorer (min-width:761px){.start-guide{align-self:start;position:sticky;top:0;min-height:380px;height:clamp(380px,calc(100dvh - 176px),620px)}}
@container explorer (max-height:500px) and (min-width:761px){.start-guide{min-height:230px;height:calc(100dvh - 144px)}}

/* Keep patient information visible in the small-screen sheet. */
.concern-summary,.triage-intro,.empty-state{font-size:14px;line-height:1.6;color:#53594f;margin:6px 0 14px}
.concern-learning{margin:0 0 14px;border:1px solid #d8d9cd;border-radius:10px;background:#f5f5eb}
.concern-learning summary{padding:13px 14px;min-height:44px;box-sizing:border-box;font-size:13px;font-weight:500;cursor:pointer}
.concern-learning>p,.concern-learning>ul,.concern-learning>h3{margin:0 14px 14px;font-size:13px;line-height:1.6}
.concern-learning>h3{font-size:12px;font-weight:600;margin-bottom:5px}.concern-learning>ul{padding-left:18px}
.concern-learning .learning-note{font-size:11px;color:#62685d}
.concern-action{position:sticky;bottom:-8px;z-index:3;background:#fffef8f5;padding:8px 0;backdrop-filter:blur(10px)}
.choice-button>span:first-child{min-width:0}.choice-button small{display:block;line-height:1.4;margin-top:5px;color:#687060;font-size:10px;font-weight:400}
body[data-layout=stacked] .concern-summary{font-size:13px;margin-bottom:10px}
body[data-layout=landscape] .concern-summary{font-size:12px}.empty-state{grid-column:1/-1}
.concern-area{display:block;font-size:12px;font-weight:500;margin:12px 0}.concern-area select{display:block;width:100%;min-height:44px;margin-top:6px;padding:8px;border:1px solid #cecfbf;border-radius:8px;background:#fffef8;color:#30362d}
