/* Full viewport coverage, including changing mobile browser chrome.
   Content may grow vertically so short screens and the keyboard never clip forms. */
html{min-height:100%;}
body.speas-auth-page[data-business]{min-height:100vh;min-height:100dvh;height:auto;margin:0;overflow-y:auto;}
body.speas-auth-page[data-business] .auth-window{box-sizing:border-box;min-height:100vh;min-height:100dvh;height:auto;}
body.speas-auth-page[data-business]::before{position:fixed;inset:0;width:100%;height:100%;background-size:cover;background-repeat:no-repeat;}

/* Use the available CSS viewport, including OS display scaling. Do not zoom the
   page or lock its height: browser zoom, error messages and keyboards must reflow. */
@media (min-width:901px) {
 body.speas-auth-page.speas-cinematic[data-business] { --auth-viewport-pad:clamp(16px,4dvh,64px); }
 body.speas-auth-page.speas-cinematic[data-business] .auth-window { padding:var(--auth-viewport-pad) clamp(24px,4vw,72px); }
 body.speas-auth-page.speas-cinematic[data-business] .auth-workspace { min-height:calc(100dvh - 2 * var(--auth-viewport-pad)); align-items:stretch; }
 body.speas-auth-page.speas-cinematic[data-business] .auth-sidebar { min-height:0; gap:clamp(12px,2dvh,24px); }
 body.speas-auth-page.speas-cinematic[data-business] .scene-copy { padding:clamp(8px,2dvh,30px) 0; }
 body.speas-auth-page.speas-cinematic[data-business] .scene-word { font-size:clamp(64px,min(9.5vw,15dvh),148px); }
 body.speas-auth-page.speas-cinematic[data-business] .scene-business { min-height:0; margin:12px 0 16px; }
 body.speas-auth-page.speas-cinematic[data-business] .scene-business svg { height:clamp(64px,11dvh,110px); width:clamp(105px,18dvh,180px); }
 body.speas-auth-page.speas-cinematic[data-business] .scene-business img { width:clamp(64px,11dvh,112px); height:clamp(64px,11dvh,112px); }
 body.speas-auth-page.speas-cinematic[data-business] .scene-copy h1 { font-size:clamp(26px,min(3.1vw,5dvh),48px); margin:clamp(12px,2dvh,26px) 0 12px; }
 body.speas-auth-page.speas-cinematic[data-business] .auth-card { padding:clamp(24px,4dvh,44px); }
}
