/* Deliberate phone layouts; desktop proportions stay in their own stylesheets. */
@media (max-width: 640px) {
  body:has(:is(.home-clean, .team-clean, .streams-clean, .rules-clean, .controls-clean, .download-clean)) {
    --home-heading-size: clamp(1.65rem, 7vw, 1.95rem);
  }
  .updates-shell:is(.home-clean, .team-clean, .streams-clean, .rules-clean, .controls-clean, .download-clean) { padding: 2rem 1.25rem 2.5rem; }
  .updates-shell.home-clean .updates-head { gap: 1.25rem; margin-bottom: 1.25rem; }
  .updates-shell.home-clean .updates-subnav { gap: 1.15rem; flex-wrap: wrap; overflow: visible; }
  .updates-shell.home-clean .updates-subnav__link { min-height: 44px; font-size: .95rem; }
  .updates-shell.home-clean .news-card__media { aspect-ratio: 3 / 2; }
  .updates-shell.home-clean .news-card__body { align-items: stretch; text-align: left; gap: .85rem; }
  .updates-shell.home-clean .news-card__title { font-size: 1.2rem; line-height: 1.4; }
  .updates-shell.home-clean .news-card__text { font-size: 1rem; line-height: 1.7; }
  .updates-shell.home-clean .news-card__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
  .updates-shell.home-clean .news-card__foot .news-card__meta { flex: 1 1 100%; justify-content: flex-start; gap: 1rem; }
  .updates-shell.home-clean .news-card__foot .news-card__cta { width: auto; align-self: flex-start; min-height: 44px; margin: 0; }
  .updates-shell.home-clean :is(.pager__btn, .pager__page) { min-width: 44px; min-height: 44px; }
  .updates-shell.home-clean .home-aside { padding-top: 2rem; border-top: 1px solid #3b4145; }
  .updates-shell.home-clean .home-server-details summary { min-height: 44px; }
  .updates-shell.home-clean .about-section__layout { gap: 1.75rem; }
  .updates-shell.home-clean .about-section__lead { font-size: 1rem; }
  .updates-shell.home-clean .about-section__title { max-width: none; }
  .home-clean .li-grid { gap: 1rem; padding-inline: .15rem; }
  .home-clean .li-tile__chip { top: .4rem; right: .4rem; }
  .home-clean .entry-steps { gap: 1.5rem; }
  .home-clean .entry-steps__hit { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .home-clean .entry-steps__node { align-self: start; padding-top: .1rem; }
  .home-clean .entry-steps__node::after { display: none; }
  .team-clean .team-card { padding: 1.25rem; gap: 1rem; }
  .team-clean .team-card__name { font-size: 1.15rem; }
  .team-clean .team-page__stats { gap: .75rem 1.25rem; }
  .streams-clean .streams-toolbar { align-items: flex-start; }
  .streams-clean .streams-filters { width: 100%; gap: .35rem; }
  .streams-clean .streams-filter { min-height: 44px; padding-inline: .8rem; }
  .streams-clean .stream-card__body { padding: 1rem; }
  .streams-clean .stream-card__cta { min-height: 44px; align-items: center; }
  .rules-clean .rules-search { width: 100%; }
  .rules-clean .rules-search__input { min-height: 48px; font-size: 1rem; }
  .rules-clean .rules-rail__item { min-height: 48px; padding: .85rem .6rem; grid-template-columns: 1.5rem minmax(0, 1fr); gap: .35rem; }
  .rules-clean .rules-chapter__summary { line-height: 1.7; }
  .rules-clean .rules-article__content { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .6rem .65rem; }
  .rules-clean .rules-article__content > :is(.rules-article__body, .rules-article__points, .rules-article__note) { grid-column: 1 / -1; }
  .rules-clean .rules-article__body, .rules-clean .rules-article__points { line-height: 1.75; }
  .controls-clean .controls-keyboard-shell { padding: .75rem; overflow-x: auto; overscroll-behavior-x: contain; }
  .controls-clean .controls-keyboard-shell { scrollbar-color: #79303d #191d20; scrollbar-width: thin; }
  .controls-clean .controls-keyboard { width: 760px; min-width: 760px; --key-unit: 44px; --key-gap: 5px; margin: 0; overflow: visible; }
  .controls-clean .controls-key { min-height: 44px; font-size: .85rem; }
  .controls-clean .controls-keyboard-panel::before { content: 'Tastatur seitlich wischen - Taste antippen'; color: var(--muted); font-size: .9rem; line-height: 1.5; }
  .controls-clean .controls-action { min-height: 64px; }
  .controls-clean .controls-action__desc { display: block; overflow: visible; }
  .controls-clean .controls-action__key { max-width: 7rem; overflow-wrap: anywhere; }
  .download-clean .dl-path__item { gap: .75rem; }
  .download-clean .dl-path__heading { font-size: 1.3rem; }
  .download-clean .dl-path__body { padding-bottom: 2rem; margin-bottom: 2rem; }
  .download-clean .dl-path__cta { min-height: 48px; justify-content: space-between; width: 100%; padding: .85rem 1rem; }
  body:has(:is(.home-clean, .team-clean, .streams-clean, .rules-clean, .controls-clean, .download-clean)) .site-footer__shell { padding: 2rem 1.25rem max(1.25rem, env(safe-area-inset-bottom)); }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.25rem; }
  .site-footer__brand { grid-column: 1 / -1; }
  .site-footer__links a { display: flex; align-items: center; min-height: 44px; }
  .site-footer__bar { flex-wrap: wrap; gap: 1rem; line-height: 1.7; }
}
@media (max-width: 380px) {
  .rules-clean .rules-rail { grid-template-columns: 1fr; }
}
@media (hover: none) {
  .home-clean .li-tile__image { filter: none; }
  .home-clean .li-tile__overlay { opacity: 1; transform: none; }
}

/* Narrow-phone refinements after the newer page layouts. */
@media (max-width:767px) {
  .controls-clean .controls-keyboard-panel::before { display:none; }
  .controls-clean .controls-keyboard-disclosure .controls-keyboard-shell { min-width:0; max-width:calc(100% - 2rem); }
  .controls-clean .controls-keyboard-disclosure[open] .controls-keyboard-shell::before { content:'Seitlich wischen - Taste antippen'; display:block; margin-bottom:.65rem; color:#a4aaaf; font-size:.8rem; line-height:1.5; }
  .team-clean .team-card__body { min-width:0; }
  .team-clean .team-card__name { overflow-wrap:anywhere; }
}
@media (max-width:420px) {
  .home-clean .li-grid { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .home-clean .li-post .li-tile { aspect-ratio:1 / 1; transform:none; }
  .home-clean .li-post .li-tile__text { font-size:.95rem; }
}
