/* CONFYRA Aufzug R81. Styles are isolated to the lift application. */
.lift-app {
  --ink: #183f43;
  --text: #243c40;
  --muted: #536267;
  --paper: #f6f3eb;
  --surface: #fffdf8;
  --line: #cdd5ce;
  --accent: #e8b861;
  --accent-soft: #f6ead2;
  --blue: #21627e;
  --blue-soft: #e5f0f3;
  --green-soft: #e7efe7;
  --danger: #9b392d;
  margin: 0;
  color: var(--text);
  background: var(--paper);
  font: 400 16px/1.48 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  height: 100vh;
  height: 100dvh;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}
.lift-app *, .lift-app *::before, .lift-app *::after { box-sizing: border-box; }
.lift-app [hidden] { display: none !important; }
.lift-app button, .lift-app input, .lift-app select, .lift-app textarea { font: inherit; color: inherit; }
.lift-app button, .lift-app select, .lift-app input[type="button"], .lift-app summary { touch-action: manipulation; }
.lift-app button, .lift-app a.button {
  min-height: 46px;
  border: 1px solid #aab8b2;
  border-radius: 9px;
  padding: 10px 16px;
  background: var(--surface);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  transition: background-color .16s, border-color .16s;
}
.lift-app button:hover:not(:disabled), .lift-app a.button:hover { background: #edf0e8; border-color: #5a7774; }
.lift-app button:active:not(:disabled) { background: #e2e9df; }
.lift-app button:disabled { cursor: not-allowed; color: #58665e; border-color: #c5cdc5; background: #ecefe9; }
.lift-app button.primary, .lift-app a.primary { background: var(--ink); color: #fffdf8; border-color: var(--ink); min-height: 48px; }
.lift-app button.primary:hover:not(:disabled), .lift-app a.primary:hover { background: #28585b; border-color: #28585b; }
.lift-app button.accent { background: var(--accent); color: #233b3e; border-color: #bb8f47; }
.lift-app button.quiet { background: transparent; border-color: transparent; }
.lift-app button.quiet:hover:not(:disabled) { background: #e9ece4; border-color: #c1ccc1; }
.lift-app button[aria-pressed="true"], .lift-app button.selected { background: var(--green-soft); border-color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.lift-app button.primary[aria-pressed="true"] { background: var(--ink); color: #fff; }
.lift-app :focus-visible { outline: 3px solid #146d9a; outline-offset: 3px; }
.lift-app a { color: var(--ink); text-underline-offset: 3px; }
.lift-app h1, .lift-app h2, .lift-app h3, .lift-app p { margin: 0; }
.lift-app h1 { font-size: 18px; line-height: 1.2; font-weight: 650; letter-spacing: -.03em; }
.lift-app h2 { font-size: clamp(21px, 1.75vw, 29px); line-height: 1.2; letter-spacing: -.035em; font-weight: 650; }
.lift-app h3 { font-size: 18px; line-height: 1.3; letter-spacing: -.015em; }
.lift-app .eyebrow { font-size: 12px; line-height: 1.4; font-weight: 650; letter-spacing: .085em; text-transform: uppercase; }
.lift-app .hint, .lift-app .muted { color: var(--muted); }
.lift-app .hint { font-size: 14px; line-height: 1.5; }
.lift-app .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lift-app .skip { position: fixed; left: 16px; top: 8px; z-index: 500; padding: 12px 20px; background: var(--surface); border: 2px solid var(--ink); border-radius: 8px; transform: translateY(-150%); }
.lift-app .skip:focus { transform: translateY(0); }
.lift-app .app-header { grid-row: 1; min-height: 64px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; padding: 8px max(24px, env(safe-area-inset-right)) 8px max(24px, env(safe-area-inset-left)); border-bottom: 1px solid var(--line); background: var(--surface); }
.lift-app .back-link { justify-self: start; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-weight: 600; text-decoration: none; }
.lift-app .back-link span:first-child { font-size: 23px; }
.lift-app .app-heading { display: flex; align-items: center; gap: 18px; }
.lift-app .wordmark { font-size: 17px; font-weight: 800; letter-spacing: .1em; text-decoration: none; }
.lift-app .wordmark span { color: #996d35; }
.lift-app .heading-divider { width: 1px; height: 24px; background: var(--line); }
.lift-app #progress-open { justify-self: end; }
.lift-app .mode-nav { grid-row: 2; display: flex; justify-content: center; align-items: stretch; gap: 4px; min-width: 0; padding: 0 16px; border-bottom: 1px solid var(--line); background: #f4f3ec; }
.lift-app .mode-nav button { flex: 0 1 auto; min-height: 48px; padding: 10px 22px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; font-size: 14px; }
.lift-app .mode-nav button[aria-current="page"], .lift-app .mode-nav button.active, .lift-app .mode-nav button[aria-selected="true"] { color: var(--ink); background: #e6ece3; border-bottom-color: var(--ink); }
.lift-app .learning-workspace { grid-row: 3; min-width: 0; min-height: 0; display: grid; grid-template-rows: minmax(180px, 1fr) auto; }
.lift-app[data-mode="start"] .learning-workspace { grid-row: 2 / 4; }
.lift-app .stage-shell { min-height: 0; min-width: 0; position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto; background: #e3e7e5; overflow: hidden; }
.lift-app .stage { position: relative; min-height: 0; min-width: 0; overflow: hidden; isolation: isolate; }
.lift-app .stage > canvas { position: absolute; display: block; inset: 0; width: 100%; height: 100%; touch-action: none; }
.lift-app .scene-caption { position: absolute; top: 20px; left: 28px; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; max-width: calc(100% - 220px); pointer-events: none; }
.lift-app #scene-label { display: inline-block; padding: 7px 10px; border-radius: 5px; background: rgba(255,253,248,.93); color: var(--ink); }
.lift-app .pill { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; border: 1px solid #cad4cb; padding: 4px 9px; border-radius: 30px; color: #40574e; background: #f4f7ef; font-size: 12px; line-height: 1.3; font-weight: 550; }
.lift-app .pill.warning, .lift-app .pill[data-tone="warning"], .lift-app #scene-badge[data-tone="warning"] { color: #6e4b17; background: #fff0cc; border-color: #c7a867; }
.lift-app .stage-size-button { position: absolute; top: 17px; right: 24px; z-index: 5; background: rgba(255,253,248,.96); box-shadow: 0 3px 12px #173c3710; }
.lift-app .component-labels { position: absolute; z-index: 3; max-width: 150px; padding: 7px 10px; border: 1px solid #a8beb6; border-radius: 7px; background: rgba(255,253,248,.96); color: var(--ink); box-shadow: 0 2px 7px #173c3718; font-size: 14px; font-weight: 600; pointer-events: none; }
.lift-app .component-labels:empty { display: none; }
.lift-app .component-labels button { position: absolute; max-width: 170px; min-height: 44px; padding: 8px 11px; background: rgba(255,253,248,.96); box-shadow: 0 2px 7px #173c3718; pointer-events: auto; font-size: 14px; }
.lift-app .stage-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; min-height: 0; padding: 6px 20px; background: rgba(242,245,237,.96); border-top: 1px solid #c6d1c6; }
.lift-app .stage-toolbar:empty { display: none; }
.lift-app .stage-toolbar button { min-height: 44px; padding: 8px 13px; font-size: 14px; }
.lift-app .stage-toolbar label { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; font-size: 14px; }
.lift-app .stage-toolbar select { min-height: 44px; max-width: 250px; background: var(--surface); }
.lift-app .loading-view { position: absolute; inset: 0; z-index: 4; display: grid; align-content: center; justify-items: center; gap: 16px; padding: 24px; color: var(--ink); background: #e3e7e5; text-align: center; }
.lift-app .loading-symbol { display: block; width: 40px; height: 50px; border: 2px solid #7f9793; border-radius: 5px; position: relative; }
.lift-app .loading-symbol::after { content: ""; position: absolute; left: 8px; right: 8px; top: 13px; height: 25px; border: 2px solid var(--ink); border-radius: 2px; background: #d4e4df; }
.lift-app .fallback { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(200px, .6fr) minmax(0, 1fr); gap: 20px; align-items: center; padding: 78px 7% 20px; overflow: auto; color: var(--ink); background: #e3e7e5; }
.lift-app .fallback-info { display: grid; gap: 12px; max-width: 380px; }
.lift-app .fallback-info p { font-size: 15px; }
.lift-app .fallback-info button { justify-self: start; }
.lift-app #fallback-drawing { min-height: 130px; height: 100%; min-width: 0; }
.lift-app #fallback-drawing svg { display: block; width: 100%; height: 100%; max-height: 100%; }
.lift-app .orientation { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 350px); align-items: center; column-gap: clamp(24px, 4vw, 72px); row-gap: 16px; padding: 19px max(32px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(32px, env(safe-area-inset-left)); border-top: 1px solid #bdcbbc; background: var(--surface); max-height: 47dvh; min-height: 210px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.lift-app .orientation:focus { outline: none; }
.lift-app .orientation:focus-visible { outline: 3px solid #146d9a; outline-offset: -4px; }
.lift-app .orientation-copy { max-width: 900px; display: grid; gap: 7px; min-width: 0; }
.lift-app .orientation-status { color: #65734e; }
.lift-app .orientation-now, .lift-app .orientation-why { max-width: 80ch; }
.lift-app .orientation-why { color: #465c5e; }
.lift-app .orientation-next { color: var(--ink); font-weight: 650; border-left: 3px solid #c79849; padding: 5px 0 5px 12px; }
.lift-app .orientation-now:empty, .lift-app .orientation-why:empty, .lift-app .orientation-next:empty, .lift-app .orientation-status:empty { display: none; }
.lift-app .orientation-tools { display: grid; gap: 10px; min-width: 0; }
.lift-app .actions { display: flex; flex-direction: column; gap: 8px; }
.lift-app .actions:empty, .lift-app .guide-controls:empty, .lift-app .context-panel:empty { display: none; }
.lift-app .guide-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.lift-app .guide-controls > button { flex: 1 1 auto; }
.lift-app .guide-controls label { flex: 1 1 100%; }
.lift-app .guide-controls select { width: 100%; }
.lift-app .context-panel { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 14px; min-width: 0; }
.lift-app .context-panel > :first-child { margin-top: 0; }
.lift-app .context-panel > * + *, .lift-app .dialog-content > * + * { margin-top: 14px; }
.lift-app .button-row, .lift-app .inline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lift-app .stack { display: grid; gap: 12px; }
.lift-app .choice-grid, .lift-app .component-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 10px; }
.lift-app .choice-grid button, .lift-app .component-grid button { text-align: left; }
.lift-app .choice-grid button > strong, .lift-app .component-grid button > strong { display: block; }
.lift-app .choice-grid button > small, .lift-app .component-grid button > small, .lift-app .choice-grid button > span, .lift-app .component-grid button > span { display: block; margin-top: 5px; font-size: 14px; line-height: 1.45; font-weight: 400; }
.lift-app .scenario-card, .lift-app .explanation { display: grid; gap: 10px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: #f4f5ee; }
.lift-app .scenario-card.selected { border-color: #477474; background: #eaf1e9; }
.lift-app .feedback { padding: 14px 17px; border: 1px solid #b6cbb6; border-left: 4px solid #477750; border-radius: 7px; background: #eef4e9; color: #27462e; }
.lift-app .feedback.warning, .lift-app .feedback[data-tone="warning"] { border-color: #d2bb83; border-left-color: #986a22; background: #fcf1d7; color: #654513; }
.lift-app .feedback.error, .lift-app .feedback[data-tone="error"] { border-color: #dbb9af; border-left-color: #9b392d; background: #faefea; color: #803529; }
.lift-app .feedback > * + * { margin-top: 8px; }
.lift-app .field { display: grid; gap: 6px; min-width: 0; }
.lift-app label { font-weight: 550; }
.lift-app input:not([type="checkbox"]):not([type="radio"]), .lift-app select, .lift-app textarea { min-height: 46px; padding: 9px 12px; border: 1px solid #a9b7ad; border-radius: 7px; background: #fffef9; max-width: 100%; }
.lift-app textarea { width: 100%; min-height: 100px; resize: vertical; }
.lift-app input[type="checkbox"], .lift-app input[type="radio"] { accent-color: var(--ink); width: 20px; height: 20px; vertical-align: middle; }
.lift-app label:has(> input[type="checkbox"]), .lift-app label:has(> input[type="radio"]) { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; }
.lift-app progress { accent-color: var(--ink); max-width: 100%; }
.lift-app details > summary { cursor: pointer; padding: 11px 4px; min-height: 44px; font-weight: 600; }
.lift-app details[open] > summary { margin-bottom: 8px; }
.lift-app details > p + p { margin-top: 12px; }
.lift-app .learning-dialog { color: var(--text); background: var(--surface); width: min(860px, calc(100% - 40px)); max-height: min(88dvh, 920px); padding: 0; border: 1px solid #b1beb2; border-radius: 15px; box-shadow: 0 24px 90px #0b2e3540; overscroll-behavior: contain; }
.lift-app .learning-dialog::backdrop { background: #132e3a80; }
.lift-app .dialog-heading { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--surface); }
.lift-app .dialog-heading h2 { font-size: 24px; }
.lift-app .dialog-heading .eyebrow { margin-bottom: 6px; }
.lift-app .dialog-heading button { flex-shrink: 0; }
.lift-app .dialog-content { padding: 22px 24px 26px; }
.lift-app .dialog-content p, .lift-app .dialog-content li { max-width: 74ch; }
.lift-app .dialog-content ul, .lift-app .dialog-content ol { padding-left: 24px; }
.lift-app .dialog-content li + li { margin-top: 8px; }
.lift-app table { border-collapse: collapse; width: 100%; font-size: 16px; }
.lift-app th, .lift-app td { text-align: left; padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.lift-app th { font-weight: 650; background: #edf0e7; }
.lift-app .about-learning { padding: 8px 24px 24px; border-top: 1px solid var(--line); color: var(--muted); }
.lift-app .noscript { position: fixed; inset: 0; z-index: 200; display: grid; align-content: center; gap: 20px; padding: max(24px, 10vw); background: var(--surface); }
.lift-app.is-large-view { grid-template-rows: auto minmax(0,1fr); }
.lift-app.is-large-view .mode-nav, .lift-app.is-large-view .orientation { display: none; }
.lift-app.is-large-view .learning-workspace { grid-row: 2; grid-template-rows: minmax(0, 1fr); }
.lift-app.is-large-view .stage-shell { grid-template-rows: minmax(0, 1fr) auto; }

@media (min-width: 1600px) {
  .lift-app .orientation { padding-left: max(48px, calc((100vw - 1660px) / 2)); padding-right: max(48px, calc((100vw - 1660px) / 2)); min-height: 220px; }
  .lift-app .orientation-copy { gap: 9px; }
}
@media (max-width: 900px) {
  .lift-app .app-header { gap: 12px; padding-left: 16px; padding-right: 16px; }
  .lift-app .app-heading { gap: 10px; }
  .lift-app .wordmark, .lift-app .heading-divider { display: none; }
  .lift-app .orientation { column-gap: 22px; grid-template-columns: minmax(0, 1fr) minmax(200px, 260px); padding: 17px 22px; }
  .lift-app .orientation-now, .lift-app .orientation-why { line-height: 1.4; }
}
@media (max-width: 600px) {
  .lift-app .app-header { min-height: 56px; grid-template-columns: auto 1fr auto; gap: 10px; padding: 5px max(12px, env(safe-area-inset-right)) 5px max(12px, env(safe-area-inset-left)); }
  .lift-app .app-heading { justify-content: center; }
  .lift-app .app-heading h1 { font-size: 16px; text-align: center; }
  .lift-app .back-link { gap: 4px; font-size: 14px; }
  .lift-app .back-link span:first-child { font-size: 21px; }
  .lift-app #progress-open { padding: 8px 7px; min-height: 44px; font-size: 14px; }
  .lift-app .mode-nav { gap: 0; padding: 0 max(6px, env(safe-area-inset-left)); }
  .lift-app .mode-nav button { flex: 1 1 25%; min-width: 0; min-height: 49px; padding: 6px 4px; font-size: 14px; line-height: 1.3; }
  .lift-app .learning-workspace { grid-template-rows: minmax(170px, 1fr) auto; }
  .lift-app .scene-caption { top: 12px; left: 12px; max-width: calc(100% - 126px); gap: 5px; flex-direction: column; align-items: flex-start; }
  .lift-app #scene-label { font-size: 12px; letter-spacing: .03em; padding: 5px 7px; }
  .lift-app .scene-caption .pill { font-size: 12px; min-height: 23px; padding: 3px 6px; max-width: 100%; }
  .lift-app .stage-size-button { top: 9px; right: 10px; min-height: 44px; padding: 8px 9px; font-size: 12px; }
  .lift-app .stage-toolbar { justify-content: flex-start; flex-wrap: nowrap; gap: 6px; padding: 5px 10px; overflow-x: auto; scrollbar-width: thin; }
  .lift-app .stage-toolbar button { flex-shrink: 0; padding: 7px 10px; font-size: 13px; }
  .lift-app .stage-toolbar label { flex-shrink: 0; }
  .lift-app .stage-toolbar select { max-width: 190px; }
  .lift-app .component-labels button { max-width: 135px; font-size: 12px; }
  .lift-app .orientation { display: flex; flex-direction: column; align-items: stretch; min-height: 230px; max-height: 47dvh; gap: 12px; padding: 15px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); scrollbar-gutter: auto; }
  .lift-app .orientation-copy { gap: 6px; flex-shrink: 0; }
  .lift-app h2 { font-size: 22px; }
  .lift-app .orientation-status { font-size: 11px; }
  .lift-app .orientation-now, .lift-app .orientation-why, .lift-app .orientation-next { font-size: 16px; line-height: 1.4; }
  .lift-app .orientation-next { padding: 3px 0 3px 10px; }
  .lift-app .orientation-tools { position: sticky; bottom: -16px; z-index: 2; gap: 8px; flex-shrink: 0; background: var(--surface); padding: 8px 0; }
  .lift-app .actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .lift-app .actions > button { flex: 1 1 140px; padding: 10px 12px; }
  .lift-app .actions > button.primary { flex-basis: 100%; }
  .lift-app[data-mode="start"] .actions > button { flex: 1 1 130px; }
  .lift-app .guide-controls { gap: 7px; }
  .lift-app .guide-controls > button { font-size: 14px; padding: 8px 10px; }
  .lift-app .guide-controls label { flex-basis: 100%; }
  .lift-app .context-panel { padding-top: 12px; flex-shrink: 0; }
  .lift-app .choice-grid, .lift-app .component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lift-app .choice-grid button, .lift-app .component-grid button { padding: 11px 12px; min-height: 50px; font-size: 15px; }
  .lift-app .choice-grid button > small, .lift-app .component-grid button > small { font-size: 14px; }
  .lift-app .scenario-card, .lift-app .explanation { padding: 14px; }
  .lift-app .learning-dialog { width: calc(100% - 20px); max-height: 92dvh; border-radius: 12px; }
  .lift-app .dialog-heading { padding: 13px 15px; gap: 10px; }
  .lift-app .dialog-heading h2 { font-size: 21px; }
  .lift-app .dialog-heading button { padding: 8px 9px; font-size: 14px; }
  .lift-app .dialog-content { padding: 17px 16px 22px; }
  .lift-app .about-learning { padding: 7px 16px 20px; }
  .lift-app .fallback { grid-template-columns: 1fr; grid-template-rows: auto minmax(90px, 1fr); padding: 66px 15px 12px; gap: 7px; }
  .lift-app .fallback-info { gap: 5px; }
  .lift-app .fallback-info strong { font-size: 14px; }
  .lift-app .fallback-info p { font-size: 13px; }
  .lift-app .fallback-info button { font-size: 13px; min-height: 44px; padding: 7px 11px; }
  .lift-app #fallback-drawing { min-height: 90px; }
}
@media (max-width: 600px) and (max-height: 700px) and (orientation: portrait) {
  .lift-app .orientation { min-height: 260px; max-height: 49dvh; padding-top: 12px; padding-bottom: 12px; gap: 10px; }
  .lift-app .orientation-copy { gap: 5px; }
  .lift-app .orientation h2 { font-size: 21px; }
}
@media (max-height: 550px) and (orientation: landscape) {
  .lift-app .app-header { min-height: 48px; padding-top: 2px; padding-bottom: 2px; }
  .lift-app .mode-nav button { min-height: 44px; padding-top: 7px; padding-bottom: 7px; }
  .lift-app .learning-workspace { grid-template-columns: minmax(0, 1fr) minmax(280px, 38%); grid-template-rows: minmax(0, 1fr); }
  .lift-app .orientation { display: flex; flex-direction: column; align-items: stretch; gap: 12px; min-height: 0; max-height: none; padding: 15px 18px; border-top: 0; border-left: 1px solid #bdcbbc; }
  .lift-app .orientation-copy, .lift-app .orientation-tools, .lift-app .context-panel { flex-shrink: 0; }
  .lift-app .orientation h2 { font-size: 22px; }
  .lift-app .actions { flex-direction: column; }
  .lift-app .actions > button { flex: 0 0 auto; }
  .lift-app .scene-caption { top: 10px; left: 12px; max-width: calc(100% - 130px); }
  .lift-app #scene-label { font-size: 12px; padding: 5px 6px; }
  .lift-app .stage-size-button { top: 7px; right: 10px; font-size: 12px; min-height: 44px; padding: 7px 9px; }
  .lift-app .stage-toolbar { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding: 5px 8px; }
  .lift-app .stage-toolbar button { flex-shrink: 0; font-size: 13px; }
  .lift-app .choice-grid, .lift-app .component-grid { grid-template-columns: 1fr; }
  .lift-app.is-large-view .learning-workspace { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .lift-app *, .lift-app *::before, .lift-app *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  .lift-app { display: block; height: auto; overflow: visible; }
  .lift-app .stage-shell, .lift-app .mode-nav, .lift-app .app-header, .lift-app button { display: none; }
  .lift-app .learning-workspace { display: block; }
  .lift-app .orientation { display: block; overflow: visible; max-height: none; padding: 12px 0; }
  .lift-app .learning-dialog[open] { position: static; width: 100%; max-height: none; border: 0; box-shadow: none; }
}

/* Contextual learning controls; these never create a permanent tool sidebar. */
.lift-app .orientation-status[data-state="running"] { color: #2d6658; }
.lift-app .orientation-status[data-state="paused"] { color: #775114; }
.lift-app .orientation-status[data-state="waiting"] { color: #85432d; }
.lift-app .answer-list, .lift-app .order-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr)); gap: 9px; }
.lift-app .answer-list button, .lift-app .order-options button { text-align: left; }
.lift-app .exercise-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 9px; }
.lift-app .exercise-picker button { display: flex; align-items: center; gap: 13px; min-height: 62px; text-align: left; }
.lift-app .exercise-picker .eyebrow { width: 29px; height: 29px; flex: 0 0 29px; display: inline-grid; place-items: center; border-radius: 50%; background: #e8eee3; color: #50614b; font-size: 11px; }
.lift-app .exercise-picker strong { font-size: 16px; line-height: 1.4; font-weight: 600; }
.lift-app .chosen-order { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; counter-reset: chosen-step; list-style: none; }
.lift-app .chosen-order:empty { display: none; }
.lift-app .chosen-order li { counter-increment: chosen-step; display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: 8px; background: var(--blue-soft); color: #164d60; }
.lift-app .chosen-order li::before { content: counter(chosen-step); font-size: 12px; display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 24px; background: #fff; color: #164d60; border: 1px solid #9abfca; border-radius: 50%; }
.lift-app .mass-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 680px; }
.lift-app .mass-comparison p { padding: 15px 18px; background: #edf1e7; border: 1px solid #cbd7c4; border-radius: 8px; }
.lift-app .mass-comparison p:last-child { background: #e9f1f4; border-color: #c0d3da; }
.lift-app .mass-comparison strong { display: inline-block; margin-top: 6px; font-size: 25px; letter-spacing: -.03em; }
.lift-app .evidence { display: grid; gap: 12px; padding: 16px; border: 1px solid #bdd0d4; border-radius: 8px; background: #eaf3f5; }
.lift-app .evidence > strong { color: #20576a; }
.lift-app .function-line { padding: 12px 15px; border: 1px solid #c8d9d9; border-radius: 7px; background: #eef4f1; }
.lift-app .floor-choice { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.lift-app .floor-choice > span { font-weight: 600; margin-right: 4px; }
.lift-app .view-options { position: static; }
.lift-app .view-options > summary { padding: 9px 14px; border: 1px solid #aab8b2; border-radius: 8px; background: var(--surface); white-space: nowrap; }
.lift-app .view-options[open] > summary { margin: 0; }
.lift-app .view-options > .button-row { position: absolute; z-index: 6; bottom: 64px; left: 20px; right: 20px; padding: 12px; border: 1px solid #aab8b2; border-radius: 10px; background: var(--surface); box-shadow: 0 5px 24px #183f4320; }
.lift-app .sections { flex: 1 1 auto; }
.lift-app .sections > summary { min-height: 46px; padding: 10px 13px; border: 1px solid #aab8b2; border-radius: 9px; background: var(--surface); }
.lift-app .section-list { display: grid; gap: 6px; margin-top: 8px; }
.lift-app .section-list button { text-align: left; font-size: 14px; }
.lift-app .guide-controls > .button-row > button { flex: 1 1 auto; }
.lift-app .guide-controls > .button-row { width: 100%; }
.lift-app .secondary-actions { gap: 6px; }
.lift-app .secondary-actions button { font-size: 14px; font-weight: 550; }
.lift-app .resume-note { display: inline; color: var(--muted); margin-right: 15px; }
.lift-app .signal-list { margin: 0; display: grid; gap: 0; border: 1px solid #c7d5cc; border-radius: 8px; overflow: hidden; }
.lift-app .signal-list > div { display: flex; gap: 16px; justify-content: space-between; padding: 12px 14px; background: #f2f4ec; border-bottom: 1px solid #c7d5cc; }
.lift-app .signal-list > div:last-child { border-bottom: 0; }
.lift-app .signal-list dt { font-weight: 500; }
.lift-app .signal-list dd { margin: 0; font-weight: 700; white-space: nowrap; }
.lift-app .signal-steps { display: grid; gap: 10px; list-style: none; padding: 0 !important; }
.lift-app .signal-steps li { margin: 0 !important; padding: 13px 16px; background: #eaf1f4; border-left: 3px solid #52899b; border-radius: 4px; }
.lift-app .success { color: #274c36; }
@media (max-width: 600px) {
  .lift-app .answer-list, .lift-app .order-options { grid-template-columns: 1fr; }
  .lift-app .exercise-picker { grid-template-columns: 1fr; }
  .lift-app .floor-choice button { flex: 1 1 90px; padding: 9px 10px; font-size: 14px; }
  .lift-app .floor-choice > span { flex-basis: 100%; }
  .lift-app .view-options > .button-row { bottom: 62px; left: 8px; right: 8px; padding: 9px; gap: 6px; }
  .lift-app .view-options > .button-row button { flex: 1 1 110px; }
  .lift-app .sections > summary { min-height: 44px; font-size: 14px; padding: 9px 11px; }
  .lift-app .mass-comparison { gap: 8px; }
  .lift-app .mass-comparison p { padding: 12px; font-size: 15px; }
  .lift-app .mass-comparison strong { font-size: 23px; }
  .lift-app .component-labels { max-width: 135px; font-size: 12px; }
  .lift-app .resume-note { display: block; margin: 0 0 7px; }
}

/* Expanded model keeps playback controls available. */
.lift-app #large-controls { display: none; }
.lift-app.is-large-view #large-controls { position: absolute; left: 26px; top: 82px; z-index: 5; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; max-width: min(520px, calc(100% - 52px)); padding: 10px 13px; border: 1px solid #bfcdc2; border-radius: 10px; background: rgba(255,253,248,.97); box-shadow: 0 3px 15px #183f4310; }
.lift-app.is-large-view #large-controls:empty { display: none; }
.lift-app #large-controls p, .lift-app #large-controls span { font-size: 14px; color: var(--ink); }
.lift-app #large-controls button { min-height: 44px; padding: 8px 14px; }
/* A model-linked detail reserves its own area instead of covering the active part. */
.lift-app.model-detail-open { --model-detail-height: clamp(240px, 42dvh, 360px); }
.lift-app.model-detail-open .learning-workspace { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0, 1fr) var(--model-detail-height); }
.lift-app.model-detail-open .stage-shell { grid-row: 1; }
.lift-app.model-detail-open .orientation { display: none; }
.lift-app .learning-dialog.model-detail { position: fixed; top: auto; bottom: 0; left: 0; right: 0; margin: 0; width: 100%; height: var(--model-detail-height, 360px); max-height: var(--model-detail-height, 360px); border-radius: 14px 14px 0 0; border: 0; border-top: 1px solid #aebfb4; box-shadow: 0 -5px 22px #183f4318; }
.lift-app .learning-dialog.model-detail::backdrop { background: transparent; }
.lift-app .learning-dialog.model-detail .dialog-heading { padding: 11px max(24px, env(safe-area-inset-right)) 11px max(24px, env(safe-area-inset-left)); }
.lift-app .learning-dialog.model-detail .dialog-heading h2 { font-size: 22px; }
.lift-app .learning-dialog.model-detail .dialog-content { padding: 15px 24px max(18px, env(safe-area-inset-bottom)); max-width: 1250px; margin: 0 auto; }
.lift-app .learning-dialog.model-detail .signal-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 600px) {
  .lift-app.is-large-view #large-controls { top: 90px; left: 12px; max-width: calc(100% - 24px); padding: 9px 11px; gap: 8px; }
  .lift-app .learning-dialog.model-detail .dialog-heading { padding: 9px 15px; }
  .lift-app .learning-dialog.model-detail .dialog-heading h2 { font-size: 20px; }
  .lift-app .learning-dialog.model-detail .dialog-content { padding: 13px 16px max(18px, env(safe-area-inset-bottom)); }
  .lift-app .learning-dialog.model-detail .signal-steps { grid-template-columns: 1fr; }
}
@media (max-height: 550px) and (orientation: landscape) {
  .lift-app.model-detail-open { --model-detail-width: 43%; }
  .lift-app.model-detail-open .learning-workspace { grid-template-columns: minmax(0, 1fr) var(--model-detail-width); grid-template-rows: minmax(0, 1fr); }
  .lift-app.model-detail-open .stage-shell { grid-column: 1; grid-row: 1; }
  .lift-app .learning-dialog.model-detail { top: var(--chrome-height, 92px); bottom: 0; right: 0; left: auto; width: var(--model-detail-width); height: calc(100dvh - var(--chrome-height, 92px)); max-height: calc(100dvh - var(--chrome-height, 92px)); border-radius: 0; border-top: 0; border-left: 1px solid #aebfb4; }
  .lift-app .learning-dialog.model-detail .dialog-heading { padding: 9px 13px; gap: 8px; }
  .lift-app .learning-dialog.model-detail .dialog-heading h2 { font-size: 19px; }
  .lift-app .learning-dialog.model-detail .dialog-heading button { font-size: 14px; padding: 8px; }
  .lift-app .learning-dialog.model-detail .dialog-content { padding: 14px; }
  .lift-app .learning-dialog.model-detail .signal-steps { grid-template-columns: 1fr; }
  .lift-app.is-large-view.model-detail-open .learning-workspace { grid-template-columns: minmax(0,1fr) var(--model-detail-width); }
  .lift-app.is-large-view .learning-dialog.model-detail { top: var(--chrome-height, 48px); height: calc(100dvh - var(--chrome-height, 48px)); max-height: calc(100dvh - var(--chrome-height, 48px)); }
}

/* The expanded view retains the full orientation without covering the model. */
.lift-app.is-large-view .stage-shell { grid-template-rows: minmax(100px, 1fr) auto auto; }
.lift-app.is-large-view #large-controls { position: static; inset: auto; display: flex; gap: 18px; align-items: center; max-width: none; width: 100%; max-height: 35dvh; overflow-y: auto; padding: 12px max(20px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); border-radius: 0; border: 0; border-top: 1px solid var(--line); background: var(--surface); box-shadow: none; }
.lift-app .large-copy { display: grid; gap: 3px; flex: 1; max-width: 90ch; }
.lift-app #large-controls .large-copy p { font-size: 16px; }
.lift-app #large-controls > button { flex: 0 0 auto; }
@media (max-width:600px) {
 .lift-app.is-large-view #large-controls { align-items: flex-start; gap: 10px; padding: 10px 14px max(10px, env(safe-area-inset-bottom)); max-height: 36dvh; }
 .lift-app #large-controls > button { min-width: 80px; padding: 10px; }
}

@media (max-width:600px) {
 .lift-app .scene-caption #scene-label { display: none; }
 .lift-app .scene-caption { max-width: 145px; }
 .lift-app .scene-caption .pill { max-width: 145px; }
}

/* R57: an explicit return route remains reachable on narrow phones. */
@media (max-width:600px) {
 .lift-app .back-link { font-size: 13px; white-space: nowrap; }
 .lift-app .app-header { column-gap: 8px; }
}

/* R57: use the elevator's height on desktop; the learning step stays beside it. */
@media screen and (min-width: 1000px) and (min-height: 551px) {
 .lift-app .learning-workspace { grid-template-columns: minmax(0, 3fr) minmax(330px, 1fr); grid-template-rows: minmax(0, 1fr); }
 .lift-app .stage-shell { grid-column: 1; grid-row: 1; }
 .lift-app .orientation { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 20px; min-height: 0; max-height: none; padding: clamp(22px, 2vw, 36px) clamp(20px, 1.8vw, 34px); border-top: 0; border-left: 1px solid var(--line); overflow-y: auto; }
 .lift-app .orientation-copy, .lift-app .orientation-tools, .lift-app .context-panel { flex: 0 0 auto; min-width: 0; }
 .lift-app .orientation-copy { gap: 11px; max-width: 42ch; }
 .lift-app .orientation h2 { font-size: clamp(24px, 1.65vw, 30px); line-height: 1.22; }
 .lift-app .orientation-now, .lift-app .orientation-why, .lift-app .orientation-next { font-size: 16px; line-height: 1.5; }
 .lift-app .orientation-tools { position: static; }
 .lift-app .actions { flex-direction: column; }
 .lift-app .actions > button { width: 100%; }
 .lift-app .guide-controls > .button-row { flex-direction: column; align-items: stretch; }
 .lift-app .guide-controls > .button-row > button { width: 100%; }
 .lift-app .component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .lift-app .component-grid button { padding: 11px 10px; font-size: 15px; overflow-wrap: anywhere; }
 .lift-app .choice-grid, .lift-app .answer-list, .lift-app .order-options, .lift-app .exercise-picker { grid-template-columns: minmax(0, 1fr); }
 .lift-app .context-panel { width: 100%; padding-top: 16px; }
 .lift-app.is-large-view .learning-workspace { grid-template-columns: minmax(0, 1fr); }
 .lift-app.model-detail-open { --model-detail-width: clamp(340px, 29vw, 480px); }
 .lift-app.model-detail-open .learning-workspace { grid-template-columns: minmax(0, 1fr) var(--model-detail-width); grid-template-rows: minmax(0, 1fr); }
 .lift-app .learning-dialog.model-detail { top: var(--chrome-height, 112px); bottom: 0; right: 0; left: auto; width: var(--model-detail-width); height: calc(100dvh - var(--chrome-height, 112px)); max-height: calc(100dvh - var(--chrome-height, 112px)); border-radius: 0; border-top: 0; border-left: 1px solid var(--line); }
 .lift-app .learning-dialog.model-detail .dialog-heading { padding: 18px 20px; gap: 12px; }
 .lift-app .learning-dialog.model-detail .dialog-content { padding: 20px; }
 .lift-app .learning-dialog.model-detail .signal-steps { grid-template-columns: minmax(0, 1fr); }
}
/* At browser zoom or large text, keep readable content scrollable instead of clipping it. */
@media screen and (min-width: 601px) and (max-width: 999px) and (min-height: 551px) {
 .lift-app .orientation { min-height: 0; max-height: 48dvh; overflow-y: auto; }
}

/* R58: the current action precedes optional knowledge checks; text remains readable. */
.lift-app .guide-main-action > button { width: 100%; }
.lift-app .guide-secondary { margin-top: 6px; }
.lift-app .quick-check { padding: 0; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.lift-app .quick-check > summary { min-height: 44px; padding: 11px 13px; font-weight: 650; cursor: pointer; }
.lift-app .quick-check > p, .lift-app .quick-check > .answer-list { margin: 10px 13px; }
.lift-app .quick-check button { text-align: left; }
.lift-app .quick-check button:disabled { opacity: 1; }
.lift-app .quick-check button[aria-pressed="true"] { border: 2px solid var(--ink); }
.lift-app .orientation-next { border-left: 3px solid #b28438; padding-left: 12px; }
.lift-app .orientation-status[data-state="paused"] { color: #72521f; }
.lift-app .confyra-release-badge { opacity: .75; font-size: 10px; }
@media (max-width: 600px) {
 .lift-app .scene-caption { top: 9px; left: 10px; max-width: calc(100% - 130px); gap: 5px; }
 .lift-app .scene-caption #scene-label { display: block; max-width: 100%; font-size: 11px; padding: 6px 8px; }
 .lift-app .scene-caption .pill { display: none; }
 .lift-app .stage-size-button { right: 10px; top: 9px; font-size: 13px; padding: 9px 10px; }
 .lift-app .guide-secondary > button { flex: 1; }
 .lift-app .orientation-next { line-height: 1.45; }
}

/* R64: visible choices, short observations, and reachable actions at every height. */
.lift-app .target-choice { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; margin: 0 0 12px; }
.lift-app .target-choice button { min-height: 52px; border: 1px solid #78908d; background: #f9faf7; color: #183f43; font-size: 20px; font-weight: 700; }
.lift-app .target-choice button[aria-pressed="true"] { border: 2px solid #936921; background: #fff0ce; box-shadow: inset 0 0 0 2px #fff; }
.lift-app .controller-observations { display: grid; gap: 8px; border: 1px solid #adbfba; border-radius: 10px; padding: 13px; background: #edf3ee; }
.lift-app .controller-observations span { font-size: 15px; line-height: 1.4; }
.lift-app .controller-observations strong { border-top: 1px solid #c4d0c9; padding-top: 8px; line-height: 1.45; }
.lift-app .guide-secondary { display: flex; flex-direction: row !important; flex-wrap: wrap; }
.lift-app .guide-secondary > button { flex: 1 1 100px; width: auto !important; }
.lift-app .stage-toolbar .view-options { position: relative; }
.lift-app .stage-toolbar .view-options[open] .button-row { position: absolute; bottom: 100%; left: 0; width: min(380px,80vw); z-index: 20; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 10px; background: #fbfaf6; border: 1px solid #acbdb7; border-radius: 10px; box-shadow: 0 -8px 26px #17333822; }
.lift-app .learning-dialog .dialog-content > .primary { margin-top: 14px; width: 100%; }
.lift-app .orientation-tools { position: sticky; bottom: 0; z-index: 2; padding: 8px 0; background: var(--surface); }
@media (max-width: 600px), (max-height: 620px) {
 .lift-app .orientation { gap: 12px; }
 .lift-app .orientation-copy { gap: 7px; }
 .lift-app .orientation-tools { box-shadow: 0 -7px 12px var(--surface); }
 .lift-app .target-choice button { min-height: 44px; }
 .lift-app .stage-toolbar { gap: 6px; padding: 6px 10px; flex-wrap: wrap; }
 .lift-app .stage-toolbar button, .lift-app .stage-toolbar summary { min-height: 40px; font-size: 13px; padding: 8px 10px; }
}

/* R70: one deliberate action per discovery step, with secondary tools folded away. */
.lift-app .discovery-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; width: 100%; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: #f0f3eb; }
.lift-app .discovery-tabs button { min-height: 44px; padding: 8px 12px; border: 0; background: transparent; }
.lift-app .discovery-tabs button[aria-pressed="true"] { background: var(--surface); box-shadow: 0 1px 4px #173c3718; }
.lift-app .scenario-select { display: grid; width: 100%; gap: 6px; font-size: 14px; font-weight: 600; }
.lift-app .scenario-select select { min-height: 46px; width: 100%; min-width: 0; padding: 9px 11px; background: var(--surface); border: 1px solid #aab8b2; border-radius: 8px; }
.lift-app .scenario-main-action, .lift-app .scenario-main-action > button { width: 100%; }
.lift-app .scenario-secondary:empty { display: none; }
.lift-app .scenario-secondary { margin-top: 4px; }
.lift-app .scenario-secondary > button { flex: 1 1 auto; }
.lift-app .discovery-extra { border: 1px solid var(--line); border-radius: 10px; background: #f7f8f2; }
.lift-app .discovery-extra > summary { min-height: 46px; padding: 12px 14px; cursor: pointer; font-weight: 600; font-size: 15px; }
.lift-app .discovery-extra > .button-row { padding: 4px 10px 12px; }
.lift-app .discovery-extra .button-row > button { text-align: left; font-size: 14px; }
.lift-app[data-mode="discover"] .guide-controls { width: 100%; display: grid; gap: 12px; }
.lift-app[data-mode="discover"] .orientation-tools { gap: 12px; }
.lift-app.is-large-view #large-controls .scenario-main-action { width: auto; min-width: min(260px,100%); }
@media (min-width:1000px) and (min-height:551px) {
 .lift-app[data-mode="discover"] .orientation { gap: 16px; padding-top: 22px; padding-bottom: 18px; }
 .lift-app[data-mode="discover"] .orientation-copy { gap: 8px; }
}
@media (max-width:600px) {
 .lift-app .scenario-select select { font-size: 16px; }
 .lift-app .discovery-tabs button, .lift-app .scenario-secondary button { min-height: 44px; }
 .lift-app.is-large-view #large-controls { flex-wrap: wrap; }
 .lift-app.is-large-view #large-controls .scenario-main-action { flex: 1 1 100%; }
}

/* Questions and answers share one reading position; help opens only on request. */
.lift-app .exercise-response { display: grid; gap: 12px; margin-top: 10px; }
.lift-app .exercise-response:empty { display: none; }
.lift-app .exercise-help { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #f7f8f2; }
.lift-app .exercise-help details + details { border-top: 1px solid var(--line); }
.lift-app .exercise-help summary, .lift-app .exercise-evidence summary { min-height: 46px; padding: 12px 14px; font-size: 15px; cursor: pointer; font-weight: 600; }
.lift-app .exercise-help details > p { padding: 0 14px 14px; font-size: 16px; line-height: 1.5; }
.lift-app .exercise-evidence .evidence { margin-top: 8px; }
.lift-app[data-mode="exercise"] .context-panel > button.quiet { margin-top: 8px; }
.lift-app[data-mode="exercise"] .orientation-tools:has(.actions:empty):has(.guide-controls:empty) { display: none; }

/* R71: hands-on inspection with one clear manipulation and an explicit return. */
.lift-app .principle-label { display: inline-block; color: #725221; font-size: 12px; letter-spacing: .065em; text-transform: uppercase; border: 1px solid #ccb990; border-radius: 99px; padding: 5px 10px; background: #f9f1df; }
.lift-app .principle-control { display: grid; gap: 10px; margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #f0f3ed; }
.lift-app .principle-control input[type="range"] { width: 100%; height: 44px; padding: 0; margin: 0; accent-color: #285a58; cursor: ew-resize; }
.lift-app .range-endpoints { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 13px; }
.lift-app .range-endpoints > :last-child { text-align: right; }
.lift-app .learning-dialog.model-detail .dialog-content > .primary:first-child { margin: 0 0 17px; }
@media (max-width:600px) {
 .lift-app.model-detail-open { --model-detail-height: clamp(260px,46dvh,380px); }
 .lift-app .principle-control { margin: 14px 0; padding: 12px; }
.lift-app .principle-control input[type="range"] { height: 48px; }
 .lift-app .scene-caption:has(+.principle-label) { max-width: calc(100% - 130px); }
}

/* R81: one view menu; keyboard/touch buttons remain alternatives to dragging. */
.lift-app .orientation-copy p:empty, .lift-app .context-panel:empty { display: none; }
.lift-app .stage-toolbar { overflow: visible; }
.lift-app .stage-toolbar .view-options { position: static; }
.lift-app .stage-toolbar .view-options > summary { min-height: 44px; min-width: 112px; font-size: 15px; }
.lift-app .stage-toolbar .view-options[open] .button-row {
 position: absolute; bottom: 60px; left: 12px; right: 12px; width: auto;
 max-width: 440px; max-height: calc(100% - 72px); overflow-y: auto;
 overscroll-behavior: contain; grid-template-columns: repeat(2,minmax(0,1fr));
}
.lift-app .stage-toolbar .view-options[open] .button-row > button { min-height: 44px; min-width: 0; white-space: normal; font-size: 14px; }
@media (max-width: 600px) and (orientation: portrait) {
 .lift-app:not(.is-large-view):not(.model-detail-open) { height: auto; min-height: 100svh; overflow-y: auto; }
 .lift-app:not(.is-large-view):not(.model-detail-open) .learning-workspace { grid-template-rows: clamp(300px, calc(100svh - 310px), 600px) auto; }
 .lift-app:not(.is-large-view):not(.model-detail-open) .orientation { max-height: none; min-height: 0; overflow: visible; padding: 16px 16px max(18px, env(safe-area-inset-bottom)); }
 .lift-app:not(.is-large-view):not(.model-detail-open) .orientation-tools { position: static; padding: 0; box-shadow: none; }
 .lift-app .stage-toolbar { flex-wrap: nowrap; overflow: visible; min-height: 56px; padding: 5px 12px; }
 .lift-app .stage-toolbar .view-options > summary { padding: 10px 14px; }
 .lift-app[data-mode="start"] .orientation { gap: 10px; }
 .lift-app[data-mode="start"] .orientation-status { display: none; }
 .lift-app[data-mode="start"] .orientation-next { border: 0; padding: 0; color: var(--muted); font-size: 14px; }
 .lift-app[data-mode="start"] .actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 2px; }
 .lift-app[data-mode="start"] .actions > button { width: 100%; min-height: 44px; }
 .lift-app[data-mode="start"] .orientation h2 { font-size: 23px; }
 .lift-app .app-header { min-height: 56px; padding: 6px 12px; gap: 8px; grid-template-columns: auto minmax(0,1fr) auto; }
 .lift-app .back-link { font-size: 13px; gap: 5px; }
 .lift-app .app-heading h1 { font-size: 15px; }
 .lift-app #progress-open { padding: 9px 6px; font-size: 13px; }
 .lift-app .mode-nav { padding: 0 4px; }
 .lift-app .scene-caption { max-width: calc(100% - 140px); }
 .lift-app.is-large-view, .lift-app.model-detail-open { position: fixed; inset: 0; height: 100dvh; overflow: hidden; }
}
