/* Public-readiness responsive layer. Retains all v25 copy, scenes, cards and
   transport behaviour. Narrow/short viewports scroll the page, never a clipped
   diagnosis pane. Viewport dimensions are enhancements over the vh fallback. */
:root { --safe-top:env(safe-area-inset-top,0px); --safe-right:env(safe-area-inset-right,0px); --safe-bottom:env(safe-area-inset-bottom,0px); --safe-left:env(safe-area-inset-left,0px); }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body.diagnosis-first { height:100vh; height:var(--page-viewport-height,100dvh); }
.diagnosis-first .page-scroll { height:100vh; height:var(--page-viewport-height,100dvh); max-height:none; scroll-padding-bottom:24px; }
html.recruitment-open .diagnosis-first .page-scroll { height:auto; max-height:none; }
.diagnosis-first .diagnosis-scene { height:100vh; height:100svh; }
.diagnosis-first .diagnosis-scene[data-phase="start"],
.diagnosis-first .diagnosis-scene[data-phase="question"] {
 height:auto; min-height:100vh; min-height:100svh; flex-direction:column;
 padding:0 24px 48px; gap:20px; overflow:hidden;
}
.diagnosis-scene[data-phase="start"] .diagnosis-header,
.diagnosis-scene[data-phase="question"] .diagnosis-header {
 position:relative; flex:none; width:calc(100% + 48px); margin-inline:-24px;
 padding-top:calc(22px + var(--safe-top)); padding-left:calc(24px + var(--safe-left)); padding-right:calc(24px + var(--safe-right));
 flex-wrap:wrap; gap:8px 20px;
}
.diagnosis-header .diagnosis-brand,.diagnosis-header .consult-skip { min-height:44px; display:flex; align-items:center; }
.diagnosis-header .diagnosis-brand { min-width:0; flex-wrap:wrap; }
.diagnosis-header .consult-skip { white-space:normal; }
.diagnosis-scene[data-phase="start"] .diagnosis-start {
 position:relative; left:auto; top:auto; transform:none; width:550px; max-width:100%;
 flex:none; margin:auto; max-height:none; overflow:visible;
}
.diagnosis-scene[data-phase="start"] .quiz-center,
.diagnosis-scene[data-phase="intro"] .quiz-center { display:none; }
.diagnosis-scene[data-phase="question"] .quiz-center {
 width:570px; max-width:100%; max-height:none; overflow:visible; flex:none; margin:auto;
}
.diagnosis-scene .diagnosis-start-button { max-width:100%; overflow-wrap:break-word; }
.diagnosis-scene .quiz-top { flex-wrap:wrap; gap:5px 12px; }
.diagnosis-scene :is(.quiz-option,.character-topline,.character-share,.result-cta) { min-width:0; }
.diagnosis-scene :is(h2,h3,p,a,button,dd) { overflow-wrap:break-word; }
.diagnosis-scene :is(.quiz-option > span:last-child,.character-tags > div) { min-width:0; }
.complete-b .diagnosis-scene[data-phase="result"] { min-height:100vh; min-height:100svh; padding-top:calc(115px + var(--safe-top)); }
.diagnosis-scene[data-phase="result"] .diagnosis-header { padding-top:calc(22px + var(--safe-top)); padding-left:calc(24px + var(--safe-left)); padding-right:calc(24px + var(--safe-right)); flex-wrap:wrap; }
.diagnosis-scene :is(.copy-button,.reset-button,.result-line,.shared-quiz-start,.character-share a,.character-share button,.gallery-link) { min-height:44px; }
.diagnosis-scene .result-line { display:flex; justify-content:center; align-items:center; }
.diagnosis-scene .reset-button { white-space:normal; }
.diagnosis-scene .scene-footer { bottom:calc(16px + var(--safe-bottom)); }
#recruitment .lp-shell,.character-lp-end .lp-shell { min-width:0; }
#recruitment :is(a,button,summary),.character-lp-end a { min-height:44px; }
#recruitment .lp-text-link,.character-lp-end nav a { display:inline-flex; align-items:center; }
#recruitment :is(h1,h2,h3,p,dt,dd,a,button),.character-lp-end :is(p,a,dd) { overflow-wrap:break-word; }
#recruitment :is(input:not([type="checkbox"]),select,textarea) { font-size:16px; min-height:48px; max-width:100%; }
#recruitment :is(input,select,textarea,button) { scroll-margin-top:24px; scroll-margin-bottom:32px; }
#recruitment .lp-job-navigation { flex-wrap:wrap; }
.complete-b .fixed-cta.lp-dock { padding-left:calc(10px + var(--safe-left)); padding-right:calc(10px + var(--safe-right)); padding-bottom:calc(10px + var(--safe-bottom)); }
.complete-b .fixed-cta.lp-dock a { min-height:48px; min-width:0; white-space:normal; }
/* Existing ordinary grids plus measured common row minima override the earlier
   subgrid declarations. Keep all six row-aligned cards; no fixed-height text. */
#recruitment #job-examples.is-job-carousel .lp-example-card,
#recruitment #job-examples.is-job-carousel .lp-example-body { min-width:0; }
/* Plain vh still gives scenery a definite canvas on pre-svh engines. */
#recruitment .lp-environment picture,#recruitment .lp-environment .scene-plane { height:100vh; height:100svh; }
#recruitment .lp-bridge .lp-environment .scene-plane,
#recruitment .lp-bridge .lp-environment .scene-base { height:100%; }
@media(max-width:640px) {
 .diagnosis-first .diagnosis-scene[data-phase="start"],.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-inline:24px; padding-bottom:40px; gap:12px; }
 .diagnosis-scene[data-phase="question"] .quiz-center { width:330px; max-height:none; }
 .diagnosis-header .diagnosis-brand { display:block; }
 .diagnosis-header .diagnosis-brand strong,.diagnosis-header .diagnosis-brand > span { display:block; }
 .diagnosis-scene[data-phase="start"] .diagnosis-header,.diagnosis-scene[data-phase="question"] .diagnosis-header { gap:8px 12px; padding-bottom:18px; }
 .complete-b .diagnosis-scene[data-phase="result"] { padding-top:calc(108px + var(--safe-top)); }
 .complete-b .diagnosis-scene .character-topline { flex-wrap:wrap; }
 .complete-b .diagnosis-scene .result-content { min-width:0; }
 .complete-b .diagnosis-scene .character-tags { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 #recruitment .lp-form-wrap { min-width:0; }
 .complete-b .fixed-cta.lp-dock { padding-inline:calc(8px + var(--safe-left)) calc(8px + var(--safe-right)); }
}
@media(max-width:359px) {
 .diagnosis-first .diagnosis-scene[data-phase="start"],.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-inline:18px; }
 .diagnosis-scene[data-phase="start"] .diagnosis-header,.diagnosis-scene[data-phase="question"] .diagnosis-header { width:calc(100% + 36px); margin-inline:-18px; padding-inline:calc(18px + var(--safe-left)) calc(18px + var(--safe-right)); }
 .diagnosis-header .diagnosis-brand strong { font-size:23px; }
 .diagnosis-header .consult-skip { max-width:114px; }
 .complete-b .diagnosis-scene .character-tags { grid-template-columns:minmax(0,1fr); }
 .complete-b .diagnosis-scene .character-tags > div:last-child { grid-column:auto; }
 #recruitment .lp-contact-secondary { grid-template-columns:minmax(0,1fr); }
}
@media(max-height:500px) and (min-width:641px) {
 .diagnosis-scene[data-phase="start"] .diagnosis-header,.diagnosis-scene[data-phase="question"] .diagnosis-header { padding-block:10px; }
 .diagnosis-first .diagnosis-scene[data-phase="start"],.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-bottom:38px; gap:12px; }
 .diagnosis-scene[data-phase="start"] .diagnosis-start { padding-block:20px; }
 .diagnosis-scene[data-phase="question"] .quiz-center { width:570px; }
}
@media(prefers-reduced-motion:reduce) { .diagnosis-first .page-scroll { scroll-behavior:auto; } }
.diagnosis-scene summary { min-height:44px; }
/* Result headings also stay below an enlarged/wrapped header, without guessing
   a fixed pixel header height. This preserves the same normal-size spacing. */
.complete-b .diagnosis-scene[data-phase="result"] {
 display:flex; flex-direction:column; align-items:center;
 padding-top:0; gap:16px;
}
.diagnosis-scene[data-phase="result"] .diagnosis-header {
 position:relative; flex:none; width:calc(100% + 48px); margin-inline:-24px;
 padding-bottom:18px;
}
.diagnosis-scene[data-phase="result"] .quiz-center { flex:none; margin:0 auto; }
@media(max-width:640px) {
 .diagnosis-scene[data-phase="result"] .diagnosis-header { width:calc(100% + 30px); margin-inline:-15px; padding-left:calc(18px + var(--safe-left)); padding-right:calc(18px + var(--safe-right)); }
}
/* Safe-area space is additive even when the short-height rules apply. */
.diagnosis-first .diagnosis-scene[data-phase="start"],
.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-bottom:calc(48px + var(--safe-bottom)); }
@media(max-width:640px) {
 .diagnosis-first .diagnosis-scene[data-phase="start"],.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-bottom:calc(40px + var(--safe-bottom)); }
}
@media(max-height:500px) and (min-width:641px) {
 .diagnosis-scene[data-phase="start"] .diagnosis-header,.diagnosis-scene[data-phase="question"] .diagnosis-header { padding-top:calc(10px + var(--safe-top)); }
 .diagnosis-first .diagnosis-scene[data-phase="start"],.diagnosis-first .diagnosis-scene[data-phase="question"] { padding-bottom:calc(38px + var(--safe-bottom)); }
}
