/* Mobile adaptations preserve the shared KESTREL palette and font metrics. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.kestrel-menu-toggle { display:none; }
@media (pointer:coarse) {
  html body :is(button,a,input,select,textarea) { touch-action:manipulation; }
  html body :is(button,[role=button],.platform-nav-item,.api-nav-item,.plan-button) { min-height:44px; }
  html body :is(.square-action,.drama-icon-btn,.settings-toggle) { min-width:44px; min-height:44px; }
}
@media (max-width:860px) {
  html body { min-width:0; -webkit-text-size-adjust:100%; }
  html body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,[contenteditable=true]) {
    font-size:16px!important; line-height:1.5!important; max-width:100%;
  }
  html body :is(button,[role=button]) { min-height:44px; }
  html body :is(.workspace,.workspace-scroll,.studio-panel,.model-row,.schema-field,.inspector,.api-main,.panel) { min-width:0; }
  html body :is(.task-title,.task-notice,.status,.hint,.drama-save-state) { overflow-wrap:anywhere; }
  html body :is(.schema-grid,.prompt-settings-grid,.model-row,.image-studio-field-grid) { grid-template-columns:minmax(0,1fr)!important; }
  html body :is(dialog,.modal-card,.confirm-card) { max-width:calc(100vw - 24px); max-height:85dvh; overflow:auto; }
  .kestrel-menu-toggle {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px;
    padding:9px 12px; border:1px solid var(--kestrel-edge); border-radius:8px;
    background:var(--kestrel-panel); color:var(--kestrel-text); font:600 13px/1.5 var(--kestrel-font);
    cursor:pointer;
  }
  .kestrel-menu-toggle svg { width:18px; height:18px; flex:none; }
  .kestrel-menu-toggle[aria-expanded=true] { border-color:var(--kestrel-accent); color:var(--kestrel-accent); }
  /* The marketing entry keeps all destinations in an expandable menu. */
  .restrel-landing { --landing-type-title:600 1.125rem/1.35 var(--restrel-font); min-height:100svh; height:auto; position:relative; overflow:visible; }
  .restrel-landing[hidden],.restrel-landing.is-exited { display:none!important; }
  body.restrel-landing-active .app-shell { display:none!important; }
  .landing-promo { padding-inline:max(14px,env(safe-area-inset-left)); }
  .landing-nav { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:10px 14px; gap:10px; height:auto; min-height:66px; }
  .landing-brand { min-width:0; gap:8px; font-size:1.25rem; }
  .landing-brand img { width:40px; height:40px; }
  .landing-brand>span { white-space:nowrap; }
  .landing-nav-actions { gap:6px; }
  .landing-nav-note { display:none; }
  .landing-text-button { min-width:44px; padding-inline:8px; }
  .landing-nav .landing-nav-links { display:none; }
  .landing-nav[data-mobile-open=true] .landing-nav-links {
    display:grid; grid-column:1/-1; grid-row:2; grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%; gap:6px; padding:8px 0; border-top:1px solid var(--kestrel-edge);
  }
  .landing-nav-links a { display:flex; align-items:center; min-height:44px; padding:10px; color:var(--kestrel-text); }
  .landing-main { display:flex; flex-direction:column; padding:28px 16px 20px; gap:26px; }
  .landing-copy { display:block; min-width:0; }
  .landing-copy h1 { max-width:none; font-size:clamp(32px,8.6vw,54px); line-height:1.22; letter-spacing:-.035em; }
  .landing-lede { max-width:45ch; margin-top:16px; }
  .landing-copy-mark { margin-bottom:16px; }
  .landing-copy-actions { margin-top:20px; flex-wrap:wrap; gap:12px; }
  .landing-proof-row { margin-top:22px; }
  .landing-showcase { display:grid; width:100%; min-width:0; min-height:0; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto 180px; gap:10px; }
  .landing-media-main { grid-column:1/-1; grid-row:1; aspect-ratio:16/9; min-height:190px; }
  .landing-media-image { grid-column:1; grid-row:2; }
  .landing-media-orbit { grid-column:2; grid-row:2; }
  .landing-media :is(img,video) { max-width:100%; }
  .landing-tools { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 16px; }
  .landing-tools-intro { grid-column:1/-1; min-height:68px; }
  .landing-tool { padding:12px; min-width:0; min-height:68px; }
  .landing-footer { flex-wrap:wrap; gap:10px; padding:18px 16px max(20px,env(safe-area-inset-bottom)); }
  .landing-footer>span { overflow-wrap:anywhere; }
  /* Account, redemption and secondary tools remain reachable on phones. */
  html body .app-shell.app-shell { padding:10px max(10px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important; gap:12px!important; }
  html body .app-shell.app-shell>.platform-nav { position:relative!important; display:flex!important; flex-direction:column!important; height:auto!important; padding:12px!important; }
  html body .app-shell.app-shell>.platform-nav .platform-nav-brand { height:50px!important; min-height:50px!important; width:160px; padding:0!important; justify-content:flex-start!important; }
  html body .app-shell.app-shell>.platform-nav .restrel-wordmark { width:154px!important; max-width:100%!important; transform:none!important; }
  .platform-nav>.kestrel-menu-toggle { position:absolute; top:15px; right:12px; }
  html body .app-shell.app-shell>.platform-nav>.platform-nav-section { display:flex!important; flex-direction:row!important; flex-wrap:nowrap!important; overflow-x:auto!important; gap:6px!important; padding:4px 0!important; }
  html body .app-shell.app-shell>.platform-nav>.platform-nav-section~.platform-nav-section,
  html body .app-shell.app-shell>.platform-nav>.header-account { display:none!important; }
  html body .app-shell.app-shell>.platform-nav[data-mobile-open=true]>.platform-nav-section~.platform-nav-section { display:flex!important; flex-wrap:wrap!important; overflow:visible!important; }
  html body .app-shell.app-shell>.platform-nav[data-mobile-open=true]>.header-account {
    display:grid!important; position:static!important; width:100%!important; max-height:none!important;
    margin:12px 0 0!important; padding:16px!important; gap:12px!important; text-align:left!important;
  }
  html body .app-shell.app-shell>.platform-nav .platform-nav-item { min-height:44px!important; font-size:13px!important; padding:10px 12px!important; }
  html body .app-shell.app-shell>.platform-nav .platform-nav-footer { display:none!important; }
  html body .app-shell.app-shell>.platform-nav .header-account :is(.header-account-label,.membership-label,.credit-rate,.credits-badge,.frozen-credits-badge,.header-account-identity strong,.account-action,.logout-all) { font-size:13px!important; line-height:1.6!important; }
  html body .app-shell.app-shell>.platform-nav .header-account .redeem-card-row { height:auto!important; gap:8px!important; }
  html body .app-shell.app-shell>.platform-nav .header-account .redeem-card-row :is(button,input) { min-height:44px!important; height:auto!important; font-size:14px!important; }
  html body .app-shell.app-shell>.platform-nav .password-panel { position:static!important; width:100%!important; max-width:none!important; }
  html body .app-shell.app-shell>.platform-nav .password-panel input { font-size:16px!important; }
  html body .app-shell.app-shell .workspace-header { position:static!important; flex-wrap:wrap!important; padding:12px 2px!important; gap:12px!important; }
  html body .app-shell.app-shell .workspace-header-actions { flex-wrap:wrap; margin-left:0!important; }
  html body .app-shell.app-shell .workspace-header .settings-toggle { width:auto!important; min-width:44px!important; min-height:44px!important; padding:8px 12px!important; font-size:13px!important; }
  html body .app-shell.app-shell .workspace-header .settings-toggle::after { content:none!important; }
  html body .app-shell.app-shell .workspace-header .new-project-action { display:inline-flex; align-items:center; min-height:44px!important; font-size:13px!important; }
  html body .app-shell.app-shell .studio-panel :is(input,select,textarea) { font-size:16px!important; min-height:44px!important; }
  html body .app-shell.app-shell .studio-panel textarea { min-height:150px!important; line-height:1.75!important; }
  html body .app-shell.app-shell .studio-panel :is(label,.media-title,.frame-tool-title,.schema-field small,.prompt-dock-tip) { font-size:13px!important; line-height:1.6!important; }
  html body .app-shell.app-shell :is(.media-grid,.model-row,.schema-grid,.prompt-settings-grid) { grid-template-columns:minmax(0,1fr)!important; }
  html body .app-shell.app-shell>.inspector { position:static!important; width:100%!important; height:auto!important; max-height:none!important; }
  html body .app-shell.app-shell .inspector-scroll { max-height:none!important; height:auto!important; overflow:visible!important; }
  html body .app-shell.app-shell .settings-panel { position:fixed!important; top:70px!important; right:12px!important; max-width:calc(100vw - 24px)!important; max-height:calc(100dvh - 90px); overflow:auto; }
  html body .auth-gate { padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom)); overflow-y:auto!important; align-items:start; }
  html body .auth-panel { width:100%!important; max-width:430px!important; margin-block:auto; padding:28px 20px!important; }
  html body .auth-panel :is(input,button) { min-height:48px; }
  html body .auth-panel input { font-size:16px!important; }
  /* Editing stays in document flow so the software keyboard can scroll it. */
  .drama-topbar { position:relative; flex-wrap:wrap; padding-top:max(12px,env(safe-area-inset-top)); }
  .drama-topbar-actions { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .drama-topbar-actions>a:not(.drama-back) { display:inline-flex; }
  .drama-topbar-actions a { display:inline-flex; align-items:center; min-height:44px; padding:8px; }
  .drama-head-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .drama-save-state { grid-column:1/-1; }
  .drama-head-actions button { width:100%; padding:10px 8px; }
  .drama-workspace-head h1 { font-size:22px; }
  .drama-model-config select { font-size:16px; min-height:44px; }
  .drama-asset-filter { flex-wrap:wrap; }
  .drama-group-head { flex-wrap:wrap; }
  .drama-group-settings { grid-template-columns:minmax(0,1fr); }
  .drama-edit-item { grid-template-columns:20px minmax(0,1fr) 44px; }
  .drama-icon-btn { width:44px; min-height:44px; }
  .drama-inline-fields { flex-direction:column; }
  .drama-toast { min-width:0; width:max-content; max-width:calc(100% - 32px); bottom:max(20px,env(safe-area-inset-bottom)); }
  .drama-preview-grid { flex-wrap:wrap; }
  .drama-inspector { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  /* API and admin keep wide tables inside their own scroll region. */
  .api-topbar { display:flex; height:auto; min-height:64px; flex-wrap:wrap; gap:10px; padding:12px 16px; }
  .api-top-account { flex-wrap:wrap; }
  .api-layout { display:block; }
  .api-sidebar { position:static; width:100%; display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px; }
  .api-sidebar-caption,.api-sidebar-foot { width:100%; }
  .api-nav-item { width:auto; flex:1 0 auto; min-height:44px; }
  .api-main { padding:20px 16px; }
  .api-page-heading { flex-wrap:wrap; gap:12px; }
  .api-product-grid,.api-stat-grid,.api-key-form { grid-template-columns:minmax(0,1fr); }
  .api-product-card { min-width:0; }
  .api-product-card small { white-space:normal; }
  .api-main :is(pre,.api-table-wrap) { max-width:100%; overflow-x:auto; }
  html body.admin-page main { padding:12px 12px max(28px,env(safe-area-inset-bottom))!important; }
  html body.admin-page :is(.table-wrap,.api-table-wrap) { width:100%; max-width:100%; overflow-x:auto; }
  html body.admin-page :is(.section-head,.user-list-tools,.card-actions,.head-actions) { flex-wrap:wrap; gap:10px; }
  html body.admin-page :is(.distributor-form,.card-batch-form,.api-cost-row,.grid,.api-catalog-grid) { grid-template-columns:minmax(0,1fr)!important; }
  html body.admin-page .admin-section-nav { position:relative; top:auto; overflow-x:auto; }
  html body.admin-page .admin-section-nav button { min-width:max-content; min-height:48px; }
  html body.admin-page :is(input,select,textarea) { min-width:0!important; max-width:100%; }
  html body.admin-page .admin-gate { width:100%; max-width:430px; margin:24px auto; padding:22px 16px; }
  .purchase-shell { padding-inline:16px; }
  .purchase-header { gap:12px; flex-wrap:wrap; }
  .purchase-header .brand img { max-width:155px; }
  .plans { grid-template-columns:minmax(0,1fr); }
  html body .paper-shader-canvas { display:none!important; }
}
@media (max-width:480px) {
  .landing-nav { column-gap:6px; }
  .landing-nav .kestrel-menu-toggle { gap:6px; padding-inline:8px; }
  .landing-nav-cta { display:none; }
  .landing-promo-status { display:none; }
  .landing-promo { display:block; min-height:26px; }
  .landing-copy h1 { font-size:clamp(30px,8.6vw,42px); }
  .landing-media-main { min-height:170px; }
  .landing-tool-no { display:none; }
}
