/* Mobile overrides shared by the portfolio and the music page. */
@media (max-width: 800px) {
  /* Avoid continuous animation and expensive backdrop repainting on phones. */
  .float-card, .record, .track-play i {animation: none !important}
  .player, body > header, .float-card {backdrop-filter: none; -webkit-backdrop-filter: none}
  .identity:before {display: none}
  .coin img {filter: none}
  .project-photo:hover > img, .mix:hover, .button:hover {transform: none}
  .button:before {display: none}
  .player {background: var(--bg)}
  html[data-theme=light] .player {background: var(--bg)}
  input[type=search] {font-size: 16px}
  .prefs > *, .preferences > *, .menu {min-height: 44px; min-width: 44px}
}
@media (max-width: 760px) {
  body > header {background: var(--bg)}
  .nav.wrap {width: calc(100% - 24px)}
  .nav .wordmark {flex-shrink: 1; min-width: 0}
  #mobile-nav {max-height: calc(100dvh - 72px); overflow-y: auto}
  #mobile-nav a {min-height: 44px}
  .hero.wrap {min-height: 0; padding-block: 30px 40px; gap: 32px}
  .hero.wrap .actions {display: grid; grid-template-columns: 1fr; width: 100%}
  .hero.wrap .identity {width: min(280px, 85%)}
  .hero.wrap .intro {font-size: 16px; line-height: 1.7}
  .hero.wrap .hello {margin-top: 22px}
  .hero.wrap .identity-caption {font-size: 8px; letter-spacing: 1.5px}
  .section {padding-block: 44px}
  .channels-section {padding-top: 0}
  .project-info {padding: 22px}
  .channel-card {padding: 20px; gap: 12px}
  .channel-card > div {min-width: 0}
  .channel-card .round-arrow {display: none}
  .channel-card h3 {overflow-wrap: anywhere}
  .bot-card .button {width: 100%}
  .clothing-photo figcaption {padding: 16px}
  .clothing-photo h3 {margin-bottom: 12px}
}
@media (max-width: 600px) {
  /* A full-width music transport instead of two cramped desktop columns. */
  .shell aside {padding: 12px 16px; gap: 10px}
  .shell aside .back {min-height: 44px; display: flex; align-items: center}
  .shell main {padding: 16px 14px calc(250px + env(safe-area-inset-bottom, 0px))}
  .shell header {margin-bottom: 16px; gap: 8px}
  .shell header > span {font-size: 9px; letter-spacing: .6px; max-width: 48%}
  .shell .hero {min-height: 0; padding: 24px 20px; border-radius: 18px}
  .shell .hero > div:first-child {max-width: 100%}
  .shell .hero h1 {font-size: clamp(30px, 8vw, 40px); letter-spacing: -1.5px; max-width: none}
  .shell .hero p {max-width: none; font-size: 14px; margin-bottom: 16px}
  .shell .record-scene {display: none}
  .shell .primary {min-height: 48px}
  .shell .mixes {display: flex; overflow-x: auto; gap: 12px; scroll-snap-type: x proximity}
  .shell .mix {flex: 0 0 72%; min-height: 155px; padding: 18px; gap: 16px}
  .shell .mix strong {font-size: 28px}
  .shell .section-title {margin-top: 24px; gap: 8px}
  .shell .section-title > span {letter-spacing: .5px; white-space: nowrap}
  .shell .list-head, .shell .track {grid-template-columns: 18px minmax(0, 1fr) 36px 20px; gap: 8px; padding-inline: 10px}
  .shell .genre, .shell .list-head > span:nth-child(3) {display: none}
  .shell .track {min-height: 76px}
  .shell .track-name b, .shell .track-name small {white-space: normal; overflow-wrap: anywhere; line-height: 1.4}
  .shell .search-box {min-height: 48px; padding: 10px 12px}
  .player {left: 0; right: 0; bottom: 0; border-radius: 18px 18px 0 0; padding: 12px 16px calc(8px + env(safe-area-inset-bottom, 0px)); display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; box-shadow: 0 -4px 16px #0002}
  .player .now {grid-column: 1; grid-row: 1; gap: 10px}
  .player .now b {font-size: 14px}
  .player .now small {font-size: 12px; margin-top: 3px}
  .player .mini-cover {width: 36px; height: 36px}
  .player .transport {grid-column: 1; grid-row: 2; min-width: 0}
  .player .transport-buttons {gap: 24px}
  .player .transport button {width: 48px; height: 48px}
  .player .timeline {margin-top: 0; gap: 10px; font-size: 11px}
  .player .timeline input {height: 32px; margin: 0}
  .player .volume {grid-column: 1; grid-row: 3; justify-content: flex-end; gap: 10px; min-height: 32px}
  .player .volume input {width: min(140px, 45vw); height: 32px; margin: 0}
}
@media (max-width: 380px) {
  .nav .wordmark {font-size: 15px; gap: 4px}
  .nav .wordmark img {display: none}
  .nav {gap: 5px}
  .preferences {gap: 4px}
  .shell .brand {font-size: 15px; gap: 4px}
}
