@media (max-width: 950px) and (orientation: landscape) {
  :root {
    --land-nav-w: 74px;
  }

  html,
  body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  body {
    padding: 0 0 0 var(--land-nav-w);
  }

  .app {
    height: 100svh;
    padding: 0;
    overflow: hidden;
  }

  .topbar {
    height: 54px;
    min-height: 54px;
    padding: max(7px, env(safe-area-inset-top)) 14px 5px;
  }

  .brand h1 {
    font-size: 1.5rem;
  }

  .dot-menu-button {
    width: 42px;
    height: 42px;
    grid-template-columns: repeat(2, 5px);
    grid-template-rows: repeat(3, 5px);
    gap: 4px;
  }

  .dot-menu-button i {
    width: 5px;
    height: 5px;
  }

  .quick-mode-menu {
    top: 52px;
    right: 10px;
  }

  .bottom-nav {
    top: 0;
    right: auto;
    bottom: 0;
    left: 0;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 1fr);
    width: var(--land-nav-w);
    height: 100svh;
    padding: max(8px, env(safe-area-inset-top)) 6px max(8px, env(safe-area-inset-bottom));
    border-top: 0;
    border-right: 3px solid #090909;
  }

  .nav-btn {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: .68rem;
  }

  .mode {
    height: calc(100svh - 54px);
    min-height: 0;
    overflow: hidden;
  }

  .desktop-grid {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    height: 100%;
    gap: 8px;
    padding: 0 8px 8px;
  }

  .side-program,
  .side-select {
    order: 1;
    min-height: 0;
    margin: 0;
    padding: 9px;
    border-radius: 14px;
    overflow: hidden;
  }

  #programTrainer,
  #selectTrainer {
    order: 2;
    min-width: 0;
    min-height: 0;
  }

  .section-head {
    margin-bottom: 6px;
  }

  .section-head h2 {
    font-size: .9rem;
  }

  .section-head .subcopy {
    display: none;
  }

  .progress-block {
    margin-bottom: 6px;
  }

  .program-actions {
    margin-top: 5px;
  }

  .program-actions .btn {
    min-height: 34px;
    font-size: .68rem;
  }

  .task-list {
    max-height: calc(100svh - 142px);
    gap: 5px;
  }

  .task-card {
    min-height: 52px;
    padding: 7px;
    box-shadow: 2px 2px 0 #090909;
  }

  .task-card strong {
    font-size: .72rem;
  }

  .task-card .badges {
    margin-top: 3px;
  }

  .task-card .badge {
    padding: 2px 5px;
    font-size: .56rem;
  }

  .program-sort-item {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 4px;
  }

  .drag-handle {
    min-height: 52px;
    font-size: .9rem;
  }

  .trainer {
    position: relative;
    display: grid;
    grid-template-columns: minmax(280px, 54%) minmax(250px, 46%);
    grid-template-rows: minmax(0, 1fr) auto auto;
    height: 100%;
    min-height: 0;
    border: 3px solid #090909;
    border-radius: 16px;
    overflow: hidden;
  }

  .visual {
    grid-column: 1;
    grid-row: 1 / 4;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .task-info {
    grid-column: 2;
    grid-row: 1;
    min-height: 0;
    padding: 12px 12px 4px;
    overflow-y: auto;
    align-items: flex-start;
    text-align: left;
  }

  .task-info h2 {
    max-width: 100%;
    margin: 0;
    font-size: clamp(1.55rem, 4.2vw, 2.5rem);
    line-height: .9;
    text-align: left;
  }

  .task-info > p:not(.source) {
    max-width: none;
    margin: 7px 0 0;
    font-size: .68rem;
    text-align: left;
  }

  .task-info .source {
    margin: 8px 0 0;
    font-size: .72rem;
  }

  .chips {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    margin-top: 8px;
  }

  .chip {
    min-height: 31px;
    padding: 3px;
    font-size: .64rem;
  }

  .chip small {
    display: none;
  }

  .route {
    grid-column: 2;
    grid-row: 2;
    padding: 5px 10px;
    font-size: .62rem;
    text-align: left;
    white-space: nowrap;
    overflow-x: auto;
  }

  .transport {
    position: static;
    grid-column: 2;
    grid-row: 3;
    padding: 7px;
    border-top: 2px solid rgba(9, 9, 9, .2);
  }

  .transport .btn {
    min-height: 38px;
    font-size: .66rem;
  }

  .controls {
    position: absolute;
    z-index: 12;
    right: 12px;
    bottom: 54px;
    display: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(480px, calc(100vw - var(--land-nav-w) - 30px));
    padding: 9px;
    border: 3px solid #090909;
    border-radius: 12px;
    box-shadow: 5px 5px 0 #090909;
  }

  .trainer.settings-open .controls {
    display: grid;
  }

  .controls label {
    min-height: 54px;
    padding: 6px;
  }

  .landscape-settings-btn {
    position: absolute;
    z-index: 13;
    right: 12px;
    top: 8px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 2px solid #090909;
    border-radius: 50%;
    background: #fff;
    color: #090909;
    font-size: 1rem;
    font-weight: 900;
    box-shadow: 2px 2px 0 #090909;
  }

  #makingMode {
    height: calc(100svh - 54px);
    padding: 0 8px 8px;
  }

  .making-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    height: 100%;
    gap: 8px;
  }

  #makingMode .maker,
  #makingMode .making-layout > aside {
    min-height: 0;
    overflow: hidden;
    border-radius: 14px;
  }

  #makingMode .maker {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 7px;
    padding: 9px;
  }

  .making-mascot {
    display: none;
  }

  #makingMode .maker > .section-head {
    grid-column: 1;
    grid-row: 1;
  }

  .maker-fields {
    grid-column: 1;
    grid-row: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    margin: 0;
  }

  .maker-fields label:first-child {
    grid-column: 1 / -1;
  }

  #makingMode .maker > label {
    grid-column: 1;
    grid-row: 3;
    align-self: start;
    margin: 0 !important;
  }

  .input-methods {
    grid-column: 1;
    grid-row: 3;
    align-self: end;
    grid-template-columns: 1fr;
    margin: 0;
  }

  .input-method {
    min-height: 36px;
  }

  .grid-mode-wrap,
  .capture-panel {
    grid-column: 2;
    grid-row: 1 / 5;
    min-height: 0;
    margin: 0;
  }

  .grid-wrap {
    width: 100%;
    height: 100%;
    max-height: none;
  }

  .capture-panel.active {
    display: block;
    height: 100%;
    overflow: auto;
  }

  .piano {
    height: 132px;
  }

  .piano-key {
    height: 132px;
  }

  .piano-key.black {
    height: 80px;
  }

  .voice-orb {
    width: 84px;
    height: 84px;
    margin: 3px auto;
  }

  .maker-actions {
    grid-column: 1;
    grid-row: 4;
    grid-template-columns: 1fr 1fr;
    margin: 0;
  }

  .maker-actions .save-wide {
    grid-column: 1 / -1;
  }

  .saved-list {
    max-height: calc(100svh - 108px);
  }

  .saved-item {
    padding: 7px;
  }

  .saved-item strong {
    font-size: .72rem;
  }
}

@media (max-width: 700px) and (orientation: landscape) {
  .desktop-grid {
    grid-template-columns: 150px minmax(0, 1fr);
  }

  .trainer {
    grid-template-columns: 50% 50%;
  }

  .task-info h2 {
    font-size: 1.45rem;
  }

  #makingMode .maker {
    grid-template-columns: 170px minmax(0, 1fr);
  }

  .making-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  #makingMode .making-layout > aside {
    display: none;
  }
}
