/* The object owns the middle of the screen. Reading and decisions have edges. */
#whaleHeading,#whaleStageArea{position:absolute;pointer-events:none}
#whaleHeading{left:32px;right:32px;top:92px;color:#263c36}
#whaleHeading h1{font-size:clamp(24px,2.6vw,34px);line-height:1.25;margin:0 0 8px;white-space:normal;font-weight:500;letter-spacing:.02em}
#whaleHeading #sentence{font-size:14px;line-height:1.55;margin:0;max-width:840px;color:#4b5a51}
#whaleHeading #inquiryContext{font-size:16px;font-weight:600;line-height:1.45;margin:0 0 7px;color:#745521;overflow-wrap:anywhere;max-height:74px;overflow:auto;pointer-events:auto}
body[data-whale=true]:not([data-semantic=true]) .identity{top:20px;left:260px;right:275px;max-width:none;text-align:center;font-size:10px;gap:3px;letter-spacing:.02em}
body[data-whale=true]:not([data-semantic=true]) .identity #kind{font-size:11px}
body[data-whale=true]:not([data-semantic=true]) .story{left:32px;bottom:22px;width:calc(100% - 320px);max-width:none}
body[data-whale=true]:not([data-semantic=true]) .continue{right:32px;bottom:22px;width:246px;max-width:none;gap:4px;display:grid;grid-template-columns:1fr 1fr;align-items:center}
body[data-whale=true]:not([data-semantic=true]) .continue .next{grid-column:1/-1;justify-content:flex-end;gap:12px;font-size:15px;text-align:left;line-height:1.5;margin-bottom:8px}
body[data-whale=true]:not([data-semantic=true]) .continue .next span{display:inline}
body[data-whale=true]:not([data-semantic=true]) .continue .next b{flex:0 0 48px;width:48px;height:48px;font-size:24px}
body[data-whale=true]:not([data-semantic=true]) .continue .source{font-size:12px;border:0;text-align:right;max-width:none}
body[data-whale=true]:not([data-semantic=true]) #curiosityDoor{font-size:13px;text-align:right;padding:8px 0}
body[data-whale=true]:not([data-semantic=true]) .gesture{top:auto;bottom:0;left:32px;transform:none;padding:0;border:0;background:none;backdrop-filter:none;font-size:10px;max-width:calc(100vw - 64px);white-space:normal;line-height:18px;color:#536258}
body[data-whale=true]:not([data-semantic=true]) .scrim{background:none}
body[data-whale=true]:not([data-semantic=true]) .steps{margin:0;gap:16px}
body[data-whale=true]:not([data-semantic=true]) #connections{display:none}
body[data-whale=true]:not([data-semantic=true]) #parameterBox{margin:0;max-width:480px}
body[data-whale=true]:not([data-semantic=true]) #parameterBox label{font-size:12px}
body[data-whale=true]:not([data-semantic=true]) #discoveryChoices{margin-top:8px;gap:8px}
body[data-whale=true]:not([data-semantic=true]) #discoveryChoices button{min-height:48px;background:#eae7dd90;border-color:#78827460;padding:8px 16px}
body[data-whale=true]:not([data-semantic=true]) #journeyControls{margin:0}
body[data-whale=true]:not([data-semantic=true]) .journey-stations{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;gap:4px;padding-bottom:4px}
body[data-whale=true]:not([data-semantic=true]) .journey-stations button{flex-shrink:0;min-height:48px;font-size:12px;padding:8px 12px}
body[data-whale=true]:not([data-semantic=true]) #journeyScope{font-size:11px;line-height:1.5;margin-top:4px;color:#526050}
body[data-whale=true]:not([data-semantic=true]) .journey-time{font-size:11px;margin-top:2px}
body[data-whale=true]:not([data-semantic=true]) #whaleRelationCue{margin-left:12px;font-size:12px;max-width:none}
body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels{position:absolute;left:32px;right:32px;margin:0;gap:24px;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}
body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels article{padding:0;background:none;border:0;text-align:center;min-width:0}
body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels h3{font-size:13px;font-weight:500;margin:0}
body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels p{font-size:11px;line-height:1.45;color:#526050;margin:0}
#journeyObjectLabels button{pointer-events:auto;min-height:48px;border:1px solid #69756560;background:#f7f3e6d9;border-radius:24px;padding:8px 18px;color:#2c4439;font-size:13px;line-height:1.4}
#journeyObjectLabels button[aria-pressed=true]{background:#344f42;color:#fff8e9;border-color:#344f42}
body[data-whale=true]:not([data-semantic=true]) #structureLens{top:var(--whale-stage-top,190px);height:auto;max-height:var(--whale-stage-height,300px)!important;left:50%;width:min(820px,calc(100% - 64px));background:transparent;box-shadow:none;padding:0;border-radius:0;overflow:auto}
body[data-whale=true]:not([data-semantic=true]) #structureLens svg{max-height:calc(var(--whale-stage-height,300px) - 110px);min-height:100px}
body[data-whale=true]:not([data-semantic=true]) #structureLens nav{gap:16px;justify-content:flex-start}
body[data-whale=true]:not([data-semantic=true]) #structureLens nav button{padding:8px 16px;font-size:13px;border-radius:24px;min-height:48px}
body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan]{left:32px;transform:none;width:calc(100% - 64px);max-height:none!important;overflow:visible;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan] p{display:block;flex-basis:100%;font-size:11px;text-align:left;margin:0;color:#566357}
body[data-whale=true]:not([data-semantic=true]) #structureLens #scanRelationCue{margin:0;justify-content:flex-start;font-size:12px}
body[data-whale=true]:not([data-semantic=true]) #structureLens #scanRelationCue svg{min-height:0}
body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan] .whale-cue-icon{flex-basis:48px}
body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan] .whale-cue-icon svg{width:48px;height:28px}
body[data-whale=true]:not([data-semantic=true]) #structureLens .structure-parts{display:none}
body[data-whale=true]:not([data-semantic=true]) #structureLens #locateStructure{display:none}
body[data-whale=true]:not([data-semantic=true]) #structureLens p{max-width:780px;text-align:center;font-size:12px;line-height:1.5}
body[data-whale=true]:not([data-semantic=true]) #structureLens nav button[aria-pressed=true]{background:#344f42;color:#fff8e9}
@media(max-width:760px){
 #whaleHeading{top:85px;left:20px;right:20px}#whaleHeading h1{font-size:23px}#whaleHeading #sentence{font-size:12px}#whaleHeading #inquiryContext{font-size:14px}
 body[data-whale=true]:not([data-semantic=true]) .identity{display:none}
 body[data-whale=true]:not([data-semantic=true]) .story{left:20px;bottom:24px;width:calc(100% - 125px)}
 body[data-whale=true]:not([data-semantic=true]) .continue{right:14px;bottom:24px;width:91px;display:flex;gap:0}
 body[data-whale=true]:not([data-semantic=true]) .continue .next{font-size:11px;gap:3px;flex-direction:column-reverse;margin:0;text-align:center}
 body[data-whale=true]:not([data-semantic=true]) .continue .source,body[data-whale=true]:not([data-semantic=true]) #curiosityDoor{font-size:11px;text-align:center;min-height:44px}
 body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan]{left:20px;width:calc(100% - 40px);gap:2px}
 body[data-whale=true]:not([data-semantic=true]) #structureLens nav{gap:2px}body[data-whale=true]:not([data-semantic=true]) #structureLens nav button{padding:8px;font-size:12px}
 body[data-whale=true]:not([data-semantic=true]) #structureLens #scanRelationCue{font-size:11px}
 body[data-whale=true]:not([data-semantic=true]) .gesture{left:20px;font-size:9px;line-height:12px}
 body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels{left:20px;right:20px;gap:8px}#journeyObjectLabels button{font-size:11px;padding:5px 8px}
 body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels p{font-size:10px}
 body[data-whale=true]:not([data-semantic=true]) #discoveryChoices{gap:4px}body[data-whale=true]:not([data-semantic=true]) #discoveryChoices button{font-size:11px;padding:6px 9px}
 body[data-whale=true]:not([data-semantic=true]) #journeyScope{font-size:10px}
}
@media(prefers-reduced-motion:reduce){#whaleHeading *,#journeyObjectLabels *{transition:none!important}}
#whaleHeading:has(#inquiryContext:not([hidden])) h1{font-size:18px;font-weight:450;color:#4e6055}
#whaleHeading:has(#inquiryContext:not([hidden])) #inquiryContext{font-size:24px;line-height:1.35}
/* Short windows use document flow: a real inspection area, then the controls. */
@media(max-width:600px),(max-height:600px){
 body[data-whale=true]:not([data-semantic=true]) #app{position:relative;display:flex;flex-direction:column;min-height:100dvh;background:#d9d5ca}
 body[data-whale=true]:not([data-semantic=true]) header{position:relative;inset:auto;margin:14px 18px;order:0;gap:8px}
 body[data-whale=true]:not([data-semantic=true]) #whaleHeading{position:relative;inset:auto;margin:4px 20px 14px;order:1}
 body[data-whale=true]:not([data-semantic=true]) #structureLens,body[data-whale=true]:not([data-semantic=true]) #structureLens[data-mode=scan]{position:relative;inset:auto!important;transform:none;width:auto;margin:0 20px 12px;order:2;max-height:none!important;overflow:visible}
 body[data-whale=true]:not([data-semantic=true]) #structureLens svg{max-height:250px}
 body[data-whale=true]:not([data-semantic=true]) #world{position:relative;inset:auto;height:340px;flex:none;order:3}
 body[data-whale=true][data-structure=body] #world,body[data-whale=true][data-structure=relation] #world{display:none}
 body[data-whale=true]:not([data-semantic=true]) #journeyObjectLabels{position:relative;inset:auto!important;margin:10px 20px;order:4;gap:12px}
 body[data-whale=true]:not([data-semantic=true]) .story{position:relative;inset:auto;width:auto;margin:10px 20px;order:5}
 body[data-whale=true]:not([data-semantic=true]) .continue{position:relative;inset:auto;width:auto;max-width:none;margin:0 20px 12px;order:6;display:grid;grid-template-columns:1fr 1fr;gap:6px}
 body[data-whale=true]:not([data-semantic=true]) .continue .next{flex-direction:row;justify-content:space-between;font-size:14px;text-align:left;margin:0}
 body[data-whale=true]:not([data-semantic=true]) .continue .source,body[data-whale=true]:not([data-semantic=true]) #curiosityDoor{font-size:12px;text-align:left}
 body[data-whale=true]:not([data-semantic=true]) .gesture{position:relative;inset:auto;margin:0 20px 14px;order:7;font-size:11px;line-height:1.5;max-width:none}
 body[data-whale=true]:not([data-semantic=true]) #whaleStageArea{display:none}
 body[data-whale=true]:not([data-semantic=true]) #toast{position:fixed;z-index:20}
 body[data-whale=true]:not([data-semantic=true]) #loading{position:fixed;z-index:15}
}
