page { width: 100%; min-height: 100%; background: #1c130f; color: #2f241d; } button::after { border: 0; } .audio-leaf { box-sizing: border-box; width: 100vw; height: 100vh; min-height: 320px; padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); display: flex; flex-direction: column; gap: 8px; background: radial-gradient(circle at 48% 45%, #423024 0, #211611 70%); } .audio-leaf-topbar { height: 52px; flex: 0 0 52px; display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px; align-items: center; padding-right: max(92px, env(safe-area-inset-right)); color: #f5e6b7; } .back-top { box-sizing: border-box; width: 100%; max-width: 100%; min-height: 48px; border: 1px solid #9b7a51; border-radius: 10px; background: #38251b; color: #f7e8bd; font-size: 20px; line-height: 48px; text-align: center; padding: 0 12px; } .leaf-heading { display: flex; align-items: baseline; gap: 12px; } .leaf-kicker { font-size: 20px; font-weight: 700; } .leaf-count { color: #d9bb78; font-size: 18px; } .audio-leaf-spread { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr); border: 2px solid #b99762; background: #efe2bd; box-shadow: 0 10px 34px rgba(0, 0, 0, .4); } .leaf-art-frame { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #17100c; border-right: 4px solid #8d271f; } .leaf-art { width: 100%; height: 100%; display: block; } .leaf-stamp { position: absolute; left: 18px; bottom: 16px; padding: 6px 12px; background: rgba(86, 24, 20, .9); color: #f5e6bd; font-size: 17px; letter-spacing: 2px; } .leaf-copy { min-width: 0; min-height: 0; padding: 18px 20px 14px; display: flex; flex-direction: column; background: repeating-linear-gradient(0deg, rgba(119, 87, 46, .04) 0, rgba(119, 87, 46, .04) 1px, transparent 1px, transparent 4px), #f6edcf; } .leaf-title { color: #8f271f; font-size: 28px; font-weight: 800; line-height: 1.25; } .leaf-caption { margin-top: 10px; font-size: 22px; font-weight: 600; line-height: 1.48; } .leaf-seek-row { min-width: 0; min-height: 48px; margin-top: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; } .leaf-slider { min-width: 0; width: 100%; margin: 0; } .leaf-time { min-width: 82px; color: #6d5b48; font-size: 17px; text-align: right; } .leaf-controls { min-width: 0; margin-top: 6px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .leaf-button, .back-bottom { box-sizing: border-box; min-height: 48px; border: 2px solid #7e6648; border-radius: 10px; background: #eadbb5; color: #37291f; font-size: 18px; font-weight: 700; line-height: 46px; min-width: 0; margin: 0; padding: 0 6px; } .leaf-button { width: 100%; max-width: 100%; } .leaf-button.primary { border-color: #8f271f; background: #9e3027; color: #fff2cf; } .leaf-button[disabled] { opacity: .72; } .leaf-rate-row { min-width: 0; min-height: 48px; margin-top: 6px; display: grid; grid-template-columns: auto repeat(3, minmax(48px, 1fr)); gap: 6px; align-items: center; } .leaf-rate-label { color: #6d5b48; font-size: 18px; font-weight: 700; } .leaf-rate-button { box-sizing: border-box; min-width: 48px; min-height: 48px; margin: 0; padding: 0 4px; border: 2px solid #9d896a; border-radius: 9px; background: #f3e7c8; color: #4d3b2d; font-size: 17px; font-weight: 700; line-height: 46px; } .leaf-rate-button { width: 100%; max-width: 100%; } .leaf-rate-button.active { border-color: #8f271f; background: #8f271f; color: #fff2cf; } .leaf-rate-button[disabled] { opacity: .72; } .leaf-error { margin-top: 8px; color: #8f271f; font-size: 17px; line-height: 1.35; } .back-bottom { margin-top: 8px; width: 100%; } @media (max-height: 430px) { .audio-leaf { gap: 4px; padding-top: 4px; padding-bottom: 4px; } .audio-leaf-topbar { height: 48px; flex-basis: 48px; } .leaf-copy { padding: 8px 12px; overflow-y: auto; } .leaf-title { font-size: 23px; } .leaf-caption { margin-top: 4px; font-size: 17px; line-height: 1.3; } .leaf-seek-row { min-height: 48px; } .leaf-controls, .leaf-rate-row { margin-top: 3px; gap: 5px; } .leaf-button, .back-bottom { min-height: 48px; line-height: 46px; font-size: 17px; } .leaf-rate-button { min-height: 48px; line-height: 46px; font-size: 16px; } .leaf-rate-label { font-size: 16px; } .back-bottom { display: none; } }