body.ios.pwa .playback-controls,body.ios.pwa .main-content{padding-bottom:env(safe-area-inset-bottom,20px)}:root{--font-family-heading: "Lora", Georgia, "Times New Roman", serif;--font-family-ui: "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-base: var(--font-family-ui);--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-root: 16px;--balfolk-primary: #A41E22;--balfolk-primary-rgb: 164, 30, 34;--balfolk-primary-dark: #82181C;--balfolk-primary-light: #C73C3F;--balfolk-accent: #E6B012;--balfolk-accent-rgb: 230, 176, 18;--balfolk-accent-light: #F4C85B;--balfolk-background: #f7f6f6;--balfolk-surface: #F1E1D3;--balfolk-surface-alt: #FDF3E5;--balfolk-text: #4A1E1F;--balfolk-text-secondary: #7A3B3C;--balfolk-muted: #C79F8C;--balfolk-success: #4E8A3A;--balfolk-danger: #932126;--balfolk-warning: #E6B012;--balfolk-info: #7A4D74;--ion-color-primary: var(--balfolk-primary);--ion-color-primary-rgb: var(--balfolk-primary-rgb);--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: var(--balfolk-primary-dark);--ion-color-primary-tint: var(--balfolk-primary-light);--ion-color-secondary: var(--balfolk-accent);--ion-color-secondary-rgb: var(--balfolk-accent-rgb);--ion-color-secondary-contrast: #4A1E1F;--ion-color-secondary-contrast-rgb: 74, 30, 31;--ion-color-secondary-shade: #B68C0E;--ion-color-secondary-tint: #ECC341;--ion-color-tertiary: #7A3B3C;--ion-color-tertiary-rgb: 122, 59, 60;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #5F2D2E;--ion-color-tertiary-tint: #8F5151;--ion-color-success: var(--balfolk-success);--ion-color-success-rgb: 78, 138, 58;--ion-color-success-contrast: #fff;--ion-color-success-contrast-rgb: 255, 255, 255;--ion-color-success-shade: #3D6D2E;--ion-color-success-tint: #66A057;--ion-color-warning: var(--balfolk-warning);--ion-color-warning-rgb: 230, 176, 18;--ion-color-warning-contrast: #4A1E1F;--ion-color-warning-contrast-rgb: 74, 30, 31;--ion-color-warning-shade: #B68C0E;--ion-color-warning-tint: #ECC341;--ion-color-danger: var(--balfolk-danger);--ion-color-danger-rgb: 147, 33, 38;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #74191C;--ion-color-danger-tint: #A14145;--ion-color-medium: #92949c;--ion-color-medium-rgb: 146, 148, 156;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #808289;--ion-color-medium-tint: #9d9fa6;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-background-color: var(--balfolk-background);--ion-background-color-rgb: 247, 237, 226;--ion-text-color: var(--balfolk-text);--ion-text-color-rgb: 74, 30, 31;--ion-color-step-50: #ebe7e1;--ion-color-step-100: #e4dfd7;--ion-color-step-150: #dcd6cd;--ion-color-step-200: #48282A;--ion-color-step-250: #512E30;--ion-color-step-300: #5A3436;--ion-color-step-350: #633A3C;--ion-color-step-400: #6C4042;--ion-color-step-450: #754747;--ion-color-step-500: #7E4D4D;--ion-color-step-550: #875352;--ion-color-step-600: #915958;--ion-color-step-650: #9B605E;--ion-color-step-700: #A46664;--ion-color-step-750: #AE6D6A;--ion-color-step-800: #B87370;--ion-color-step-850: #C27A75;--ion-color-step-900: #CC807B;--ion-color-step-950: #D68681;--ion-card-background: rgba(76, 33, 34, .82);--ion-item-background: transparent;--player-bg: linear-gradient(135deg, rgba(55, 23, 24, .92), rgba(34, 14, 15, .9))}:root{--balfolk-primary: #A41E22;--balfolk-primary-rgb: 164, 30, 34;--balfolk-primary-dark: #82181C;--balfolk-primary-light: #C73C3F;--balfolk-accent: #E6B012;--balfolk-accent-rgb: 230, 176, 18;--balfolk-accent-light: #F4C85B;--balfolk-background: #F7EDE2;--balfolk-surface: #F1E1D3;--balfolk-surface-alt: #FDF3E5;--balfolk-text: #4A1E1F;--balfolk-text-secondary: #7A3B3C;--balfolk-muted: #C79F8C;--balfolk-success: #4E8A3A;--balfolk-danger: #932126;--balfolk-warning: #E6B012;--balfolk-info: #7A4D74;--ion-color-primary: var(--balfolk-primary);--ion-color-primary-rgb: var(--balfolk-primary-rgb);--ion-color-primary-contrast: #FEF7EB;--ion-color-primary-contrast-rgb: 254, 247, 235;--ion-color-primary-shade: var(--balfolk-primary-dark);--ion-color-primary-tint: var(--balfolk-primary-light);--ion-color-secondary: var(--balfolk-accent);--ion-color-secondary-rgb: var(--balfolk-accent-rgb);--ion-color-secondary-contrast: var(--balfolk-text);--ion-color-secondary-contrast-rgb: 74, 30, 31;--ion-color-secondary-shade: #B68C0E;--ion-color-secondary-tint: #ECC341;--ion-color-tertiary: #7A3B3C;--ion-color-tertiary-rgb: 122, 59, 60;--ion-color-tertiary-contrast: #FEF7EB;--ion-color-tertiary-contrast-rgb: 254, 247, 235;--ion-color-tertiary-shade: #5F2D2E;--ion-color-tertiary-tint: #8F5151;--ion-color-success: var(--balfolk-success);--ion-color-success-rgb: 78, 138, 58;--ion-color-success-contrast: #FEF7EB;--ion-color-success-contrast-rgb: 254, 247, 235;--ion-color-success-shade: #3D6D2E;--ion-color-success-tint: #66A057;--ion-color-warning: var(--balfolk-warning);--ion-color-warning-rgb: 230, 176, 18;--ion-color-warning-contrast: var(--balfolk-text);--ion-color-warning-contrast-rgb: 74, 30, 31;--ion-color-warning-shade: #B68C0E;--ion-color-warning-tint: #ECC341;--ion-color-danger: var(--balfolk-danger);--ion-color-danger-rgb: 147, 33, 38;--ion-color-danger-contrast: #FEF7EB;--ion-color-danger-contrast-rgb: 254, 247, 235;--ion-color-danger-shade: #74191C;--ion-color-danger-tint: #A14145;--ion-color-dark: #331617;--ion-color-dark-rgb: 51, 22, 23;--ion-color-dark-contrast: #FEEFDA;--ion-color-dark-contrast-rgb: 254, 239, 218;--ion-color-dark-shade: #260F10;--ion-color-dark-tint: #4B2929;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--ion-border-radius: 10px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 2px 4px rgba(74, 30, 31, .06);--shadow-sm: 0 4px 10px rgba(74, 30, 31, .08);--shadow-md: 0 8px 18px rgba(74, 30, 31, .1);--shadow-lg: 0 12px 28px rgba(74, 30, 31, .12);--shadow-xl: 0 18px 36px rgba(74, 30, 31, .14);--ion-card-box-shadow: var(--shadow-sm);--song-card-bg: var(--balfolk-surface-alt);--song-card-border: rgba(164, 30, 34, .12);--song-card-active-bg: #FFE8C7;--song-card-active-border: var(--balfolk-primary);--song-card-shadow: 0 8px 20px rgba(74, 30, 31, .1);--song-card-active-shadow: 0 12px 28px rgba(164, 30, 34, .18);--song-card-text: var(--balfolk-text);--song-card-text-secondary: var(--balfolk-text-secondary);--player-bg: linear-gradient(135deg, rgba(247, 237, 226, .96), rgba(241, 225, 211, .94));--player-border: rgba(164, 30, 34, .2);--player-text: var(--balfolk-text);--player-text-secondary: var(--balfolk-text-secondary);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 34px;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--tap-target-min: 44px;--tap-target-comfortable: 48px;--tap-target-large: 56px;--touch-target-small: 44px;--touch-target-medium: 48px;--touch-target-large: 56px;--touch-target-md: 48px;--button-height-sm: 36px;--button-height-md: 44px;--button-height-lg: 52px;--icon-size-xs: 16px;--icon-size-sm: 20px;--icon-size-md: 24px;--icon-size-lg: 28px;--icon-size-xl: 36px;--item-height-sm: 36px;--item-height-md: 48px;--item-height-lg: 60px;--header-height: 56px;--tab-bar-height: 56px;--playback-controls-height: 120px;--ad-banner-height: 80px;--z-base: 1;--z-sticky: 10;--z-dropdown: 50;--z-header: 100;--z-overlay: 500;--z-modal: 1000;--z-toast: 2000;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .24s cubic-bezier(.4, 0, .2, 1);--transition-slow: .36s cubic-bezier(.4, 0, .2, 1)}body.dark{--ion-background-color: #1F1011;--ion-background-color-rgb: 31, 16, 17;--ion-text-color: #FDEADB;--ion-text-color-rgb: 253, 234, 219;--ion-color-step-50: #2A1617;--ion-color-step-100: #321B1C;--ion-color-step-150: #3E2324;--ion-color-step-200: #48282A;--ion-color-step-250: #512E30;--ion-color-step-300: #5A3436;--ion-color-step-350: #633A3C;--ion-color-step-400: #6C4042;--ion-color-step-450: #754747;--ion-color-step-500: #7E4D4D;--ion-color-step-550: #875352;--ion-color-step-600: #915958;--ion-color-step-650: #9B605E;--ion-color-step-700: #A46664;--ion-color-step-750: #AE6D6A;--ion-color-step-800: #B87370;--ion-color-step-850: #C27A75;--ion-color-step-900: #CC807B;--ion-color-step-950: #D68681;--ion-card-background: rgba(76, 33, 34, .82);--ion-item-background: transparent;--player-bg: linear-gradient(135deg, rgba(55, 23, 24, .92), rgba(34, 14, 15, .9))}.text-center{text-align:center}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-4{gap:16px}h1,h2,h3,h4,h5,h6{color:var(--ion-text-color);font-family:var(--font-family-heading, "Lora", serif)}.text-muted{color:var(--balfolk-text-secondary)}ion-button.round{--border-radius: 50%}ion-card.elevated{box-shadow:var(--shadow-md)}@media (prefers-reduced-motion: no-preference){ion-button,ion-card{transition:transform .2s ease,box-shadow .2s ease}ion-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}ion-button:active{transform:translateY(0);box-shadow:inset 0 2px 6px rgba(0,0,0,.15)}ion-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}}@media (prefers-contrast: high){:root{--ion-text-color: #2C0F10;--ion-background-color: #FFFFFF;--ion-color-primary: var(--balfolk-primary);--ion-color-secondary: var(--balfolk-text-secondary);--ion-card-background: #FFF6E8}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.bottom-tab-bar{--background: var(--ion-color-light);--border: 1px solid var(--ion-color-light-shade);box-shadow:0 -2px 8px rgba(0,0,0,.1);height:var(--tab-bar-height);position:fixed;bottom:0;left:0;right:0;z-index:999}.bottom-tab-bar ion-tab-button{--color: var(--ion-color-medium);--color-selected: var(--ion-color-warning);min-height:var(--tab-bar-height);padding:var(--spacing-xs) var(--spacing-xs);display:flex;flex-direction:column;justify-content:center}.bottom-tab-bar ion-tab-button ion-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-xs);white-space:nowrap;overflow:visible;text-overflow:clip}.bottom-tab-bar ion-tab-button ion-icon{font-size:38px}.bottom-tab-bar ion-tab-button:focus-visible{outline:2px solid var(--ion-color-warning);outline-offset:2px;border-radius:var(--radius-sm)}ion-content{--padding-bottom: calc(var(--tab-bar-height) + var(--playback-bottom-offset, 0px))}body{font-family:var(--font-family-base, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--ion-text-color)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading, "Lora", Georgia, serif);margin:0 0 .25em}button,input,textarea,select,label,ion-button{font-family:var(--font-family-base)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@media (prefers-contrast: high){.bottom-tab-bar{border-top:2px solid var(--ion-color-dark)}ion-card{border:2px solid var(--ion-color-dark)}}@media (max-width: 768px){.bottom-tab-bar{height:var(--tab-bar-height)}.bottom-tab-bar ion-tab-button{min-height:var(--tab-bar-height);padding:var(--spacing-xs) var(--spacing-xs)}.bottom-tab-bar ion-tab-button ion-label{font-size:10px}.bottom-tab-bar ion-tab-button ion-icon{font-size:28px}}@media (min-width: 769px){.bottom-tab-bar{max-width:500px;left:50%;transform:translate(-50%);border-radius:var(--radius-lg) var(--radius-lg) 0 0}}.song-item-card{--background: var(--ion-background-color);border-radius:var(--radius-lg);box-shadow:0 2px 8px rgba(0,0,0,.08);margin:0 0 var(--spacing-sm) 0;transition:all .3s ease;border:2px solid transparent}.song-item-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.12);transform:translateY(0)}.song-item-card.active{--background: rgba(230, 176, 18, .08);border-color:var(--balfolk-primary);box-shadow:0 4px 16px rgba(230,176,18,.2)}.song-item-content{padding:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md)}.play-button{--padding-start: 0;--padding-end: 0;width:56px;height:56px;flex-shrink:0;margin:0;--box-shadow: 0 4px 12px rgba(230, 176, 18, .3)}.play-button ion-icon{font-size:28px}.play-button ion-spinner{width:28px;height:28px}.song-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.song-header{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.song-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--balfolk-text-primary);margin:0;line-height:var(--line-height-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.category-badge{--background: var(--balfolk-primary);--color: var(--balfolk-base03);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.song-metadata{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.metadata-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--balfolk-text-secondary)}.metadata-item ion-icon{font-size:16px;color:var(--balfolk-primary);flex-shrink:0}.metadata-item.artist{flex:1;min-width:0}.artist-name{font-weight:var(--font-weight-semibold);color:var(--balfolk-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metadata-item.duration{flex-shrink:0;font-variant-numeric:tabular-nums}.action-button{--padding-start: var(--spacing-sm);--padding-end: var(--spacing-sm);width:44px;height:44px;flex-shrink:0;margin:0;transition:all .2s ease}.action-button ion-icon{font-size:24px}.action-button.add-button{--color: var(--balfolk-primary)}.action-button.add-button:hover{--background: rgba(230, 176, 18, .1);transform:scale(1.1)}.action-button.remove-button{--color: var(--balfolk-danger)}.action-button.remove-button:hover{--background: rgba(220, 50, 47, .1);transform:scale(1.1)}.song-item-card.active .song-title{color:var(--balfolk-primary)}.song-item-card.active .play-button{animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 4px 12px rgba(230,176,18,.3)}50%{box-shadow:0 4px 20px rgba(230,176,18,.5)}}@media (max-width: 768px){.song-item-content{padding:var(--spacing-xs);gap:var(--spacing-md)}.play-button{width:48px;height:48px}.play-button ion-icon{font-size:24px}.song-title{font-size:var(--font-size-base)}.category-badge{font-size:10px;padding:2px 6px}.metadata-item{font-size:var(--font-size-xs)}.metadata-item ion-icon{font-size:14px}.action-button{width:40px;height:40px}.action-button ion-icon{font-size:20px}}.song-item-card .play-button[disabled]{opacity:.7}.play-button,.action-button{border-radius:var(--radius-full)}.play-button:focus-visible,.play-button:focus,.action-button:focus-visible,.action-button:focus{outline:none;box-shadow:0 0 0 3px rgba(230,176,18,.35)}.song-item-card,.play-button,.action-button,.song-title{transition:all .3s cubic-bezier(.4,0,.2,1)}.ad-banner-placeholder{background:linear-gradient(135deg,var(--balfolk-primary),var(--balfolk-accent));margin:0;text-align:center;color:#fff;position:relative;width:100%;min-height:var(--ad-banner-height);display:flex;align-items:center;justify-content:center}.ad-banner-placeholder .ad-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ad-banner-placeholder span{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.ad-banner-placeholder small{opacity:.85;font-size:var(--font-size-xs)}.ad-banner-native{min-height:var(--ad-banner-height);margin:var(--spacing-md) var(--spacing-lg);background:transparent;position:relative}.ad-error{background:#fce5e5;color:var(--balfolk-danger);padding:8px 16px;text-align:center}.ad-loading{background:#f3f4f6;color:#6b7280;padding:8px 16px;text-align:center;font-size:.9em}.page-content-with-ad{padding-top:70px}.donation-modal{--height: 90%;--border-radius: var(--radius-xl) var(--radius-xl) 0 0}.donation-modal ion-toolbar{--min-height: 56px}.donation-modal ion-toolbar ion-title{padding-inline-start:16px;padding-inline-end:8px;font-size:20px;font-weight:500;letter-spacing:.15px}.donation-modal ion-buttons{padding-inline-end:8px}.donation-modal ion-buttons ion-button{min-width:48px;min-height:48px}.donation-content{--padding-top: 0;--padding-bottom: var(--spacing-xl)}.donation-container{max-width:600px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.donation-header{text-align:center;margin-bottom:var(--spacing-xl)}.heart-icon{font-size:64px;color:var(--balfolk-danger);animation:heartbeat 1.5s ease-in-out infinite;margin-bottom:var(--spacing-md)}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.1)}20%,40%{transform:scale(1)}}.donation-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--balfolk-text-primary);margin:0}.donation-message{margin-bottom:var(--spacing-xl)}.donation-message .intro{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--balfolk-text-primary);margin-bottom:var(--spacing-lg);text-align:center}.why-donate,.impact{background:var(--balfolk-base2);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);border-left:4px solid var(--balfolk-primary)}.why-donate h3,.impact h3{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--balfolk-primary);margin:0 0 var(--spacing-md) 0}.why-donate h3 ion-icon,.impact h3 ion-icon{font-size:1.3em}.why-donate ul{list-style:none;padding:0;margin:0}.why-donate li{padding:var(--spacing-sm) 0;line-height:var(--line-height-relaxed);color:var(--balfolk-text-primary)}.why-donate li strong{color:var(--balfolk-primary);font-weight:var(--font-weight-semibold)}.impact p{margin:0;line-height:var(--line-height-relaxed);color:var(--balfolk-text-primary)}.donation-amounts{margin-bottom:var(--spacing-xl)}.donation-amounts h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--balfolk-text-primary);margin-bottom:var(--spacing-md);text-align:center}.amount-buttons{display:flex;flex-direction:column;gap:var(--spacing-md)}.amount-buttons ion-button{--border-radius: var(--radius-lg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);height:48px}.amount-buttons ion-button.custom-amount{margin-top:var(--spacing-sm);--background: transparent;--border-width: 2px;--border-style: solid;--border-color: var(--balfolk-primary)}.donation-footer{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid var(--balfolk-base2)}.donation-footer .thank-you{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--balfolk-primary);margin-bottom:var(--spacing-sm)}.donation-footer .no-obligation{font-size:var(--font-size-sm);font-style:italic;margin:0}@media (max-width: 768px){.donation-container{padding:var(--spacing-md) var(--spacing-sm)}.donation-header h2{font-size:var(--font-size-xl)}.donation-message .intro{font-size:var(--font-size-base)}.why-donate h3,.impact h3{font-size:var(--font-size-lg)}}.page-template{--background: var(--ion-background-color)}.page-header{box-shadow:0 2px 4px rgba(0,0,0,.08);position:relative}.page-toolbar{--min-height: 56px;--padding-top: 0;--padding-bottom: 0;--padding-start: 4px;--padding-end: 4px}.page-title{padding-inline-start:16px;padding-inline-end:16px;font-size:20px;font-weight:500;letter-spacing:.15px;line-height:24px;text-align:start}.page-header-content{display:flex;align-items:center;gap:12px;padding-inline-start:12px;padding-inline-end:12px;min-height:56px;flex:1;min-width:0}.page-header-content img{flex-shrink:0;object-fit:cover}.page-header-content span,.page-header-content ion-title{font-size:20px;font-weight:500;letter-spacing:.15px;line-height:24px;color:inherit;padding:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-actions{padding-inline-end:4px;display:flex;align-items:center;gap:4px}.page-header-actions ion-button{--padding-start: 8px;--padding-end: 8px;--border-radius: 50%;min-width:48px;min-height:48px;margin:0}.page-header-actions ion-button ion-icon{font-size:24px;pointer-events:none}.donation-button{--color: #ff69b4;--ripple-color: rgba(255, 105, 180, .2);position:relative}.donation-button:active{--color: #ff1493;transform:scale(.95);transition:transform .1s ease}.donation-button ion-icon{animation:heartbeat 2s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1);opacity:1}14%{transform:scale(1.15);opacity:.9}28%{transform:scale(1);opacity:1}}@media (min-width: 768px){.page-toolbar{--min-height: 64px}.page-title{padding-inline-start:24px;font-size:22px;text-align:start}.page-header-content{padding-inline-start:20px;min-height:64px}.page-header-content span,.page-header-content ion-title{font-size:22px}.page-header-actions{padding-inline-end:8px;gap:8px}.page-header-actions ion-button{--padding-start: 12px;--padding-end: 12px}}.ad-banner-wrapper.sticky-ad{position:sticky;top:0;z-index:var(--z-header);background:var(--ion-background-color);box-shadow:var(--shadow-sm);margin-bottom:0;min-height:var(--ad-banner-height);display:flex;align-items:center}.page-content-wrapper{padding:var(--spacing-md);padding-top:0;padding-bottom:0;flex:1 1 auto;min-height:0;background-color:var(--ion-color-light)}.page-template-content{padding-bottom:var(--playback-bottom-offset, 0px);min-height:0;height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto}.page-template-content.has-ad-banner .page-content-wrapper{padding:0px var(--spacing-sm) 0px var(--spacing-sm)}@media (min-width: 768px){.page-content-wrapper{padding:var(--spacing-md);padding-top:0;padding-bottom:0;margin:0 auto}}@media (min-width: 1024px){.page-content-wrapper{padding:var(--spacing-md);padding-top:0;padding-bottom:0}}.modern-searchbar input,.modern-searchbar ::part(native-input),.modern-searchbar ::part(native){color:#1a1a1a!important;font-size:16px!important;font-weight:500!important;-webkit-text-fill-color:#1a1a1a!important;background:transparent!important;caret-color:#a41e22!important}.modern-searchbar input::placeholder,.modern-searchbar ::part(native-input)::placeholder,.modern-searchbar ::part(native)::placeholder{color:#666!important;opacity:1!important;-webkit-text-fill-color:#666666!important}.modern-searchbar * input{color:#1a1a1a!important;-webkit-text-fill-color:#1a1a1a!important}.modern-searchbar * input::placeholder{color:#666!important;-webkit-text-fill-color:#666666!important;opacity:1!important}.search-bar-wrapper{padding:0;width:100%}.modern-searchbar{--background: #f5f5f5;--color: #1a1a1a;--placeholder-color: #666666;--placeholder-opacity: 1;--border-radius: 12px;--box-shadow: 0 2px 8px rgba(0, 0, 0, .08), inset 0 0 0 1px rgba(0, 0, 0, .06);--icon-color: #666666;height:44px;font-size:16px;font-weight:400;transition:all .2s ease}.modern-searchbar::part(native){padding-inline-start:44px;padding-inline-end:16px}.modern-searchbar ion-icon[slot=start]{margin-inline-start:12px;margin-inline-end:8px;font-size:20px;color:var(--icon-color)}.modern-searchbar ion-icon[slot=end]{margin-inline-end:8px;font-size:20px;color:var(--icon-color)}.modern-searchbar.searchbar-has-focus{--background: #ffffff;--box-shadow: 0 4px 12px rgba(0, 0, 0, .12), inset 0 0 0 2px var(--balfolk-primary);--icon-color: var(--balfolk-primary)}.modern-searchbar.searchbar-has-value{--background: #ffffff;--box-shadow: 0 2px 8px rgba(0, 0, 0, .1), inset 0 0 0 1px rgba(0, 0, 0, .08)}.modern-searchbar .searchbar-clear-button{width:32px;height:32px}@media (min-width: 769px){.search-bar-wrapper{padding:0;width:100%;margin:0 auto}.modern-searchbar{height:48px;font-size:17px;--border-radius: 14px}}@media (min-width: 1024px){.search-bar-wrapper{padding:0;width:100%}}@media (prefers-contrast: high){.modern-searchbar{--background: #ffffff;--box-shadow: 0 2px 8px rgba(0, 0, 0, .15), inset 0 0 0 2px #1a1a1a;--color: #000000;--placeholder-color: #333333;--icon-color: #000000}.modern-searchbar.searchbar-has-focus{--box-shadow: 0 4px 12px rgba(0, 0, 0, .2), inset 0 0 0 3px var(--balfolk-primary)}}@media (prefers-color-scheme: dark){.modern-searchbar{--background: rgba(255, 255, 255, .15);--color: #ffffff;--placeholder-color: rgba(255, 255, 255, .6);--box-shadow: 0 2px 8px rgba(0, 0, 0, .3), inset 0 0 0 1px rgba(255, 255, 255, .15);--icon-color: rgba(255, 255, 255, .7)}.modern-searchbar.searchbar-has-focus{--background: rgba(255, 255, 255, .2);--box-shadow: 0 4px 12px rgba(0, 0, 0, .4), inset 0 0 0 2px var(--balfolk-primary);--icon-color: var(--balfolk-primary)}.modern-searchbar.searchbar-has-value{--background: rgba(255, 255, 255, .18);--box-shadow: 0 2px 8px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(255, 255, 255, .2)}}.category-filter{padding:0 16px 6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%;position:relative;box-shadow:0 4px 12px -4px rgba(0,0,0,.12);margin-bottom:4px}.category-filter::-webkit-scrollbar{display:none}.category-chips{display:flex;gap:8px;min-width:min-content}.category-chip{--background: rgba(118, 118, 128, .12);--color: var(--balfolk-text);height:28px;font-size:13px;font-weight:500;border-radius:14px;padding:0 12px;border:none;transition:all .2s ease;cursor:pointer;white-space:nowrap;flex-shrink:0;letter-spacing:-.08px}.category-chip:active{transform:scale(.96)}.category-chip.selected{--background: var(--balfolk-primary);--color: #ffffff;font-weight:600;box-shadow:0 2px 8px rgba(164,30,34,.25)}.category-chip ion-icon{margin-right:4px;font-size:14px}.category-chip ion-label{margin:0;padding:0}@media (min-width: 769px){.category-filter{padding:0 24px 8px;width:100%;margin:0 auto}.category-chips{gap:10px}.category-chip{height:32px;font-size:14px;padding:0 14px;border-radius:16px}}.add-to-playlist-modal{--height: 70%;--border-radius: 16px 16px 0 0}.add-to-playlist-modal ion-toolbar{--min-height: 56px}.add-to-playlist-modal ion-toolbar ion-title{padding-inline-start:16px;padding-inline-end:8px;font-size:20px;font-weight:500;letter-spacing:.15px}.add-to-playlist-modal ion-buttons{padding-inline-end:8px}.add-to-playlist-modal ion-buttons ion-button{min-width:48px;min-height:48px}.add-to-playlist-content{padding:16px}.selected-song-info{display:flex;align-items:center;gap:16px;padding:16px;background:var(--song-card-bg);border:1px solid rgba(251,191,36,.15);border-radius:12px;margin-bottom:20px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.selected-song-info ion-icon{font-size:40px;flex-shrink:0}.selected-song-info h3{margin:0;font-size:18px;font-weight:600;color:var(--ion-color-dark)}.selected-song-info p{margin:4px 0 0;font-size:14px;color:var(--ion-color-medium)}.create-playlist-button{margin:0 auto var(--spacing-lg);--border-radius: var(--radius-md);font-weight:600;text-transform:none;height:48px;max-width:400px;width:calc(100% - var(--spacing-md) * 2)}.playlists-list{background:transparent}.list-header{display:block;padding:8px 16px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.list-header p{margin:0}.playlist-item,.playlist-item-disabled{--background: var(--song-card-bg);--border-radius: 12px;--padding-start: 16px;--padding-end: 16px;margin-bottom:12px;border:1px solid rgba(230,176,18,.18);box-shadow:0 1px 3px rgba(0,0,0,.08);transition:all .2s ease}.playlist-item:hover{--background: var(--balfolk-surface-alt);box-shadow:0 2px 6px rgba(230,176,18,.22);transform:translateY(1px)}.playlist-item-disabled{opacity:.6}.playlist-item ion-label h2{font-weight:600;color:var(--ion-color-dark);margin-bottom:4px}.playlist-item ion-label p{font-size:13px;color:var(--ion-color-medium);margin-bottom:2px}.playlist-meta{font-size:12px!important;color:var(--balfolk-accent);font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-state ion-icon{margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:16px}.playlist-item-disabled ion-icon[slot=end]{font-size:24px}.home-header-logo{width:32px;height:32px;border-radius:8px;object-fit:cover;flex-shrink:0}.home-header-title{font-size:20px;font-weight:500;letter-spacing:.15px;line-height:24px;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 768px){.home-header-logo{width:36px;height:36px;border-radius:10px}.home-header-title{font-size:22px}}.home-page-content{display:flex;flex-direction:column;height:100%}.songs-section{padding:0;display:flex;flex-direction:column;flex:1;min-height:0}.songs-section h2{margin:var(--spacing-lg) 0 var(--spacing-sm);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--ion-text-color);font-family:var(--font-family-base)}.songs-list-container{flex:1;min-height:0;overflow-y:auto;padding-right:var(--spacing-2xs);margin-right:calc(var(--spacing-2xs) * -1)}.songs-list{background:transparent;padding:0}.songs-list-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--inner-padding-start: 0;--inner-padding-top: 0;--inner-padding-bottom: 0;--background: transparent;--background-hover: transparent;--background-activated: transparent;--min-height: auto;padding:0;margin-bottom:var(--spacing-md);width:100%}.songs-list-item::part(native){padding:0}.songs-list-item:last-of-type{margin-bottom:0}.songs-list-item .song-item-card{width:100%;margin-bottom:0}.playlist-toast{--background: var(--ion-color-success);--color: white;--border-radius: 12px;--box-shadow: 0 4px 12px rgba(16, 185, 129, .3);font-weight:600;margin-top:16px}@media (max-width: 768px){.page-content{padding:0 var(--spacing-md) var(--spacing-md);padding-bottom:calc(var(--playback-controls-height) + var(--tab-bar-height) + var(--spacing-lg))}.page-content h2{font-size:var(--font-size-xl);margin:var(--spacing-md) 0 var(--spacing-xs)}}.playlist-page-content{display:flex;flex-direction:column;height:100%}.playlists-list{background:transparent;padding:0}.playlists-list ion-item{--border-width: 0;--border-style: none;--inner-border-width: 0;--border-color: transparent}.playlist-item{--padding-start: var(--spacing-md);--padding-end: var(--spacing-md);--min-height: 64px;margin-bottom:var(--spacing-xs);transition:background-color .2s ease;--border-width: 0;--border-style: none;--inner-border-width: 0}.playlist-item:active{--background-activated: rgba(230, 176, 18, .1)}.playlist-item.active-playlist{--background: rgba(230, 176, 18, .05);border-left:4px solid var(--balfolk-accent)}.playlist-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--ion-text-color);margin:0 0 4px}.playlist-count{font-size:var(--font-size-sm);color:var(--ion-color-medium);margin:0}.playlist-songs-container{background:rgba(0,0,0,.02);padding:var(--spacing-md);margin:0;animation:slideDown .3s ease-out}body.dark .playlist-songs-container{background:rgba(255,255,255,.03)}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:2000px;transform:translateY(0)}}.playlist-songs-list{background:transparent;padding:0}.empty-playlist-songs{text-align:center;padding:var(--spacing-xl);background:rgba(0,0,0,.02)}body.dark .empty-playlist-songs{background:rgba(255,255,255,.03)}.empty-playlist-songs p{margin:0;font-size:var(--font-size-sm);color:var(--ion-color-medium);font-style:italic}.playlist-songs-list ion-reorder-group{width:100%}.playlist-reorder-item{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;--inner-padding-end: 0;--inner-padding-start: 0;--inner-padding-top: 0;--inner-padding-bottom: 0;--background: transparent;--background-hover: transparent;--background-activated: transparent;--background-focused: transparent;--min-height: auto;margin-bottom:var(--spacing-md);--border-width: 0;--border-style: none;--inner-border-width: 0}.playlist-reorder-item::part(native){padding:0}.playlist-reorder-item .song-item-card{margin-bottom:0;width:100%}.playlist-reorder-item ion-reorder{margin-left:var(--spacing-sm);align-self:center}.playlist-songs-list ion-reorder-group[disabled] ion-reorder::part(icon){display:none}.playlist-songs-list ion-reorder::part(icon){color:var(--balfolk-text-secondary);opacity:.6;font-size:24px}.playlist-songs-list ion-reorder-group.reorder-active ion-reorder{animation:reorder-wiggle 2s ease-in-out infinite}.playlist-songs-list ion-reorder-group.reorder-active .song-item-card{border-color:var(--ion-color-success);box-shadow:0 0 0 2px rgba(16,185,129,.2)}.playlist-songs-list ion-reorder-group.reorder-active ion-reorder::part(icon){color:var(--ion-color-success);opacity:1;animation:pulse-icon 2s ease-in-out infinite}@keyframes reorder-wiggle{0%,to{transform:rotate(0)}10%{transform:rotate(-.5deg)}20%{transform:rotate(.5deg)}30%{transform:rotate(-.5deg)}40%,60%{transform:rotate(0)}}@keyframes pulse-icon{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion: reduce){.playlist-songs-list ion-reorder-group.reorder-active ion-reorder{animation:none}.playlist-songs-list ion-reorder-group.reorder-active ion-reorder::part(icon){animation:none;opacity:1}.playlist-songs-container{animation:none}}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-lg)}.empty-state ion-icon{font-size:5em;margin-bottom:var(--spacing-lg);color:var(--ion-color-warning)}.empty-state h3{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--ion-text-color);font-family:var(--font-family-base)}.empty-state p{margin:0;font-size:var(--font-size-base);color:var(--ion-color-medium);font-weight:var(--font-weight-medium)}@media (max-width: 768px){.page-content{padding:0 var(--spacing-md) var(--spacing-md);padding-bottom:calc(var(--playback-controls-height) + var(--tab-bar-height) + var(--spacing-lg))}.empty-state{padding:var(--spacing-3xl) var(--spacing-md)}.empty-state ion-icon{font-size:4em;margin-bottom:var(--spacing-md)}}.contact-content{--background: var(--ion-background-color, #fafafa)}.contact-container{max-width:600px;margin:0 auto;padding:32px 16px}.contact-header{text-align:center;margin-bottom:32px}.contact-header-icon{font-size:64px;color:var(--balfolk-primary, #E6B012);margin-bottom:16px;animation:fadeInDown .5s ease-out}.contact-header h2{font-size:28px;font-weight:600;color:var(--balfolk-text, #1a1a1a);margin:0 0 12px;font-family:var(--font-family-heading, "Lora", serif)}.contact-header p{font-size:16px;line-height:1.5;margin:0;padding:0 16px}.contact-form{animation:fadeInUp .6s ease-out}.contact-item{--background: #ffffff;--border-radius: 12px;--padding-start: 16px;--padding-end: 16px;--padding-top: 12px;--padding-bottom: 12px;--inner-padding-end: 0;margin-bottom:16px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.06)}.contact-item ion-label{font-weight:600;font-size:14px;color:var(--balfolk-text, #1a1a1a);margin-bottom:8px}.contact-input,.contact-textarea{--background: transparent;--color: var(--balfolk-text, #1a1a1a);--padding-start: 0;--padding-end: 0;font-size:16px;margin-top:8px}.contact-textarea{min-height:120px}.contact-submit-button{--background: var(--balfolk-primary, #E6B012);--background-hover: #d6a010;--background-activated: #c69010;--color: #1a1a1a;--border-radius: 12px;--padding-top: 16px;--padding-bottom: 16px;margin-top:24px;font-weight:600;font-size:18px;height:56px;box-shadow:0 4px 12px rgba(230,176,18,.3);transition:all .2s ease}.contact-submit-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(230,176,18,.4)}.contact-submit-button:active{transform:translateY(0)}.contact-submit-button[disabled]{opacity:.6;cursor:not-allowed}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 768px){.contact-container{padding:48px 24px}.contact-header h2{font-size:32px}.contact-header p{font-size:18px}.contact-item{--padding-start: 20px;--padding-end: 20px;--padding-top: 16px;--padding-bottom: 16px}}@media (min-width: 1024px){.contact-container{padding:64px 32px}}.playback-controls{position:fixed;bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom));left:0;right:0;z-index:900;background:var(--ion-color-dark);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,20px));box-shadow:var(--shadow-lg);border-top:1px solid rgba(230,176,18,.25);transition:bottom var(--transition-base);color:var(--player-text)}.playback-controls.minimized{padding:0 var(--spacing-xs) calc(6px + env(safe-area-inset-bottom,20px)) var(--spacing-xs);min-height:calc(48px + env(safe-area-inset-bottom,20px));height:48px;display:flex;align-items:center;min-height:calc(48px + env(safe-area-inset-bottom));padding-bottom:calc(6px + env(safe-area-inset-bottom))}.minimized-bar{display:flex;align-items:center;width:100%;gap:8px;min-height:48px;height:48px}.minimized-song-info{flex:1 1 0;overflow:hidden;min-width:0;display:flex;align-items:center;position:relative;padding:4px 0}.minimized-text-container{display:flex;flex-direction:column;gap:2px;min-width:0;width:100%;overflow:hidden}.minimized-title,.minimized-artist{display:inline-block;white-space:nowrap;max-width:fit-content}.minimized-title{font-size:.95rem;font-weight:600;color:var(--ion-color-light);line-height:1.2;text-shadow:0 0 1px rgba(255,255,255,.3)}.minimized-artist{font-size:.8rem;font-weight:500;color:#4a4a4a;opacity:1;line-height:1.2}.minimized-title.overflow,.minimized-artist.overflow{animation:marquee-scroll-continuous 10s linear infinite}@keyframes marquee-scroll-continuous{0%{transform:translate(100%)}to{transform:translate(-100%)}}@media (hover: hover){.minimized-song-info:hover .minimized-title.overflow,.minimized-song-info:hover .minimized-artist.overflow{animation-play-state:paused}}.minimized-controls{display:flex;align-items:center;justify-content:center;gap:2px}.minimized-controls ion-button{--padding-start: 4px;--padding-end: 4px;min-width:32px;min-height:32px;--color: #ffffff}.minimized-controls ion-button ion-icon{color:#fff;font-weight:500;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.minimized-controls ion-button[fill=solid]{--background: var(--balfolk-primary);--box-shadow: 0 2px 8px rgba(164, 30, 34, .4)}.minimized-controls ion-button[fill=solid] ion-icon{color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.playback-header{display:flex;justify-content:space-between;align-items:center;min-height:var(--touch-target-medium);margin-bottom:var(--spacing-xs)}.minimize-button,.close-button{width:var(--touch-target-md);height:var(--touch-target-md);--color: #ffffff;--background: transparent;--background-hover: rgba(255, 255, 255, .1);--background-activated: rgba(255, 255, 255, .2);--padding-start: 0;--padding-end: 0;margin:0;display:flex;align-items:center;justify-content:center}.minimize-button ion-icon,.close-button ion-icon{font-size:var(--font-size-2xl);color:#fff;font-weight:500;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.minimize-button ion-icon{transition:transform var(--transition-base)}.minimize-button ion-icon.rotated{transform:rotate(180deg)}.minimize-button:hover,.close-button:hover{--color: var(--balfolk-danger)}.current-song-info{text-align:center;margin-bottom:var(--spacing-md)}.playback-controls.minimized .current-song-info{margin-bottom:0}.current-song-info h3{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--player-text);line-height:var(--line-height-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-song-info p{margin:0;font-size:var(--font-size-sm);color:var(--player-text-secondary);line-height:var(--line-height-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-category{text-transform:uppercase}.minimized-controls{display:flex;justify-content:center;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xs) 0}.minimized-controls ion-button{--padding-start: var(--spacing-sm);--padding-end: var(--spacing-sm)}.minimized-controls ion-button[fill=solid]{--padding-start: var(--spacing-md);--padding-end: var(--spacing-md)}.playback-controls.minimized .playback-header{margin-bottom:var(--spacing-2xs)}.playback-controls.minimized .current-song-info h3{font-size:var(--font-size-base);margin-bottom:0}.playback-controls.minimized .current-song-info p{display:none}.progress-container{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:0 var(--spacing-xs)}.progress-wrapper{position:relative;flex:1;height:20px;display:flex;align-items:center}.buffer-indicator{position:absolute;left:0;top:50%;transform:translateY(-50%);height:5px;background:rgba(255,107,53,.25);border-radius:2.5px;pointer-events:none;transition:width .3s ease-out;z-index:0}.time-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--ion-color-medium);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.time-labels{display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-xs);margin-top:calc(-1 * var(--spacing-sm));margin-bottom:var(--spacing-sm)}.progress-slider{flex:1;position:relative;z-index:1;--bar-height: 5px;--bar-background: rgba(230, 176, 18, .2);--bar-background-active: var(--balfolk-primary);--knob-size: 20px;--knob-background: var(--balfolk-primary);--knob-box-shadow: var(--shadow-sm)}.control-buttons{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) 0}.control-buttons ion-button{--border-radius: var(--radius-full);margin:0;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.control-buttons ion-button:active{transform:scale(.95)}.control-buttons ion-button[fill=clear]{width:var(--button-height-lg);height:var(--button-height-lg);--padding-start: 0;--padding-end: 0;--color: #ffffff;color:#fff;--background-hover: rgba(255, 255, 255, .1);--background-activated: rgba(255, 255, 255, .2)}.control-buttons ion-button[fill=clear] ion-icon{font-size:var(--font-size-2xl);color:#fff;font-weight:500;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.control-buttons ion-button[fill=clear].active{--color: var(--balfolk-accent);color:var(--balfolk-accent)}.control-buttons ion-button[fill=clear].active ion-icon{color:var(--balfolk-accent);filter:drop-shadow(0 1px 3px rgba(230,176,18,.5))}.play-button{width:68px;height:68px;--border-radius: 50%;--box-shadow: var(--shadow-md);margin:0 var(--spacing-lg)!important}.play-button ion-icon{font-size:var(--font-size-3xl)}.play-button:active{--box-shadow: var(--shadow-sm)}@media (max-width: 768px){.playback-controls{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md)}.playback-controls.minimized{padding:var(--spacing-xs) var(--spacing-md)}.current-song-info h3{font-size:var(--font-size-base)}.current-song-info p{font-size:var(--font-size-xs)}.control-buttons{gap:var(--spacing-sm)}.control-buttons ion-button[fill=clear]{width:var(--button-height-md);height:var(--button-height-md)}.control-buttons ion-button[fill=clear] ion-icon{font-size:var(--font-size-xl)}.play-button{width:var(--touch-target-medium);height:var(--touch-target-medium);margin:0 var(--spacing-md)!important}.play-button ion-icon{font-size:var(--font-size-2xl)}.time-label{font-size:var(--font-size-xs);min-width:36px}}@media (min-width: 1024px){.playback-controls{max-width:900px;left:50%;transform:translate(-50%)}}@media (prefers-color-scheme: dark){.playback-controls{border-top-color:rgba(var(--ion-color-warning-rgb),.3)}.current-song-info h3{color:var(--ion-color-light)}.current-song-info p{color:var(--ion-color-medium)}}.minimize-button,.close-button,.control-buttons ion-button{border-radius:var(--radius-full)}.minimize-button:focus-visible,.close-button:focus-visible,.minimize-button:focus,.close-button:focus,.control-buttons ion-button:focus-visible,.control-buttons ion-button:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--ion-color-warning-rgb, 230,176,18),.25)}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.onboarding-modal{--height: 100dvh;--width: 100vw;display:flex;flex-direction:column;height:100dvh;width:100vw;max-height:100dvh;max-width:100vw;box-sizing:border-box}.onboarding-modal ion-toolbar{--min-height: 56px;flex-shrink:0}.onboarding-modal ion-toolbar ion-title{padding-inline-start:16px;padding-inline-end:8px;font-size:20px;font-weight:500;letter-spacing:.15px}.onboarding-modal ion-buttons{padding-inline-end:8px}.onboarding-modal ion-buttons ion-button{min-width:48px;min-height:48px}.onboarding-modal ion-content{--padding-top: 0;--padding-bottom: 0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;height:100%;box-sizing:border-box;overflow:hidden;position:relative}.onboarding-slides{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:stretch;justify-content:stretch;height:100%;box-sizing:border-box;overflow-y:auto;position:relative;z-index:1}.onboarding-animated-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden}.onboarding-animated-bg svg{width:100%;height:100%;display:block}.onboarding-bg-wave{animation:onboardingWaveMove 8s ease-in-out infinite alternate;transform-origin:center}@keyframes onboardingWaveMove{0%{transform:translateY(0) scaleX(1);opacity:.85}50%{transform:translateY(-18px) scaleX(1.04);opacity:1}to{transform:translateY(0) scaleX(.98);opacity:.85}}.onboarding-bg-wave2{animation:onboardingWaveMove2 14s ease-in-out infinite alternate;opacity:.5}@keyframes onboardingWaveMove2{0%{transform:translateY(0) scaleX(1)}50%{transform:translateY(12px) scaleX(1.03)}to{transform:translateY(0) scaleX(.97)}}.onboarding-slide{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;height:100%}.slide-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:320px;width:100%;height:100%;justify-content:center}.slide-icon{margin-bottom:30px;padding:20px;border-radius:50%;background:rgba(var(--ion-color-warning-rgb),.1);width:120px;height:120px;display:flex;align-items:center;justify-content:center}.slide-icon ion-icon{font-size:48px}.slide-logo{object-fit:cover;border-radius:54px}.slide-text{margin-bottom:30px}.slide-text h1{font-size:28px;font-weight:700;margin:0 0 16px;color:var(--ion-color-dark);line-height:1.3}.slide-text .subtitle{font-size:16px;color:var(--ion-color-medium);margin:0;line-height:1.5}.benefits-list{display:flex;flex-direction:column;width:100%;margin-bottom:20px}.benefit-item{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:8px 0}.benefit-icon{font-size:18px;margin-top:2px;flex-shrink:0}.benefit-item p{margin:0;font-size:14px;color:var(--ion-text-color);line-height:1.4}.onboarding-footer{flex-shrink:0;background:var(--ion-color-light);padding:16px 20px;border-top:1px solid var(--ion-color-light-shade);width:100%;box-sizing:border-box;position:relative;bottom:0;left:0;right:0;z-index:2}.progress-dots{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--ion-color-light-shade);transition:all .3s ease}.progress-dot.active{background:var(--ion-color-warning);transform:scale(1.2)}.dont-show-item{--background: transparent;--padding-start: 0;--padding-end: 0;--inner-padding-start: 0;--inner-padding-end: 0;margin:0 auto 12px;width:clamp(240px,60%,420px);display:flex;align-items:center;justify-content:flex-end}.dont-show-item::part(native){display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:0;white-space:nowrap}.dont-show-item ion-checkbox{margin:0;order:2}.dont-show-item ion-label{font-size:var(--font-size-sm);color:var(--ion-color-medium);margin:0 12px 0 0;white-space:nowrap;order:1}.copyright-item{--background: transparent;--padding-start: 0;--padding-end: 0;margin:0 auto 8px;max-width:90%}.copyright-item ion-label{text-align:center;margin:0}.navigation-buttons{display:flex;justify-content:center;gap:var(--spacing-md);width:100%}.next-button{--border-radius: var(--radius-md);height:48px;font-weight:600;font-size:var(--font-size-base);max-width:400px;width:100%}.skip-button{--color: var(--ion-color-light-contrast);font-size:14px;font-weight:500}@media (max-height: 640px){.slide-content{max-width:280px}.slide-icon{width:80px;height:80px;margin-bottom:20px}.slide-icon ion-icon{font-size:32px}.slide-text h1{font-size:24px;margin-bottom:12px}.slide-text .subtitle{font-size:14px}.benefits-list{margin-bottom:16px}.benefit-item p{font-size:13px}}@media (min-width: 768px){.onboarding-slide{padding:40px}.slide-content{max-width:400px}.slide-icon{width:140px;height:140px;margin-bottom:40px}.slide-icon ion-icon{font-size:56px}.slide-text h1{font-size:32px;margin-bottom:20px}.slide-text .subtitle{font-size:18px}.benefit-item p{font-size:16px}.navigation-buttons{max-width:300px;margin:0 auto}}.pwa-install-modal{--height: auto;--border-radius: 24px 24px 0 0;--box-shadow: 0 -8px 32px rgba(0, 0, 0, .12)}.pwa-install-modal::part(backdrop){background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}.pwa-install-content{--background: linear-gradient( 180deg, var(--balfolk-surface-alt) 0%, var(--balfolk-background) 100% );--padding-top: 0;--padding-bottom: env(safe-area-inset-bottom, 20px)}.pwa-close-button{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.05);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s ease}.pwa-close-button:active{background:rgba(0,0,0,.1);transform:scale(.95)}.pwa-close-button ion-icon{font-size:20px;color:var(--balfolk-text-secondary)}.pwa-install-container{padding:32px 24px 24px;text-align:center;max-width:400px;margin:0 auto}.pwa-app-icon{width:96px;height:96px;margin:0 auto 24px;position:relative;animation:floatIn .6s ease-out}.pwa-app-icon img{width:100%;height:100%;border-radius:22px;box-shadow:0 8px 24px rgba(164,30,34,.2),0 2px 8px rgba(0,0,0,.1);object-fit:cover}@keyframes floatIn{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.pwa-title{margin-bottom:32px;animation:fadeInUp .6s ease-out .1s both}.pwa-title h2{font-size:28px;font-weight:700;color:var(--balfolk-text);margin:0 0 8px;font-family:var(--font-family-heading, "Lora", serif)}.pwa-subtitle{font-size:16px;color:var(--balfolk-text-secondary);margin:0;font-weight:500;font-family:var(--font-family-base)}.pwa-benefits{display:flex;gap:16px;margin-bottom:32px;animation:fadeInUp .6s ease-out .2s both}.pwa-benefit-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;background:rgba(255,255,255,.6);border-radius:16px;border:1px solid rgba(230,176,18,.15);transition:all .2s ease}.pwa-benefit-item:active{transform:scale(.98)}.pwa-benefit-icon{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,rgba(230,176,18,.15),rgba(164,30,34,.1));display:flex;align-items:center;justify-content:center}.pwa-benefit-icon ion-icon{font-size:22px}.pwa-benefit-item p{margin:0;font-size:13px;font-weight:500;color:var(--balfolk-text);line-height:1.3;text-align:center}.pwa-ios-instructions,.pwa-manual-instructions{padding:20px;background:rgba(164,30,34,.08);border-radius:16px;margin-bottom:16px;border:1px solid rgba(164,30,34,.15);animation:fadeInUp .6s ease-out .3s both}.pwa-ios-instructions p,.pwa-manual-instructions p{margin:0;font-size:15px;line-height:1.6;color:var(--balfolk-text)}.pwa-ios-instructions strong,.pwa-manual-instructions strong{color:var(--balfolk-primary);font-weight:600}.ios-share-icon{display:inline-block;font-size:18px;font-weight:700;color:var(--balfolk-accent);margin:0 2px}.pwa-install-button{--border-radius: 16px;--box-shadow: 0 4px 16px rgba(230, 176, 18, .3);margin-bottom:12px;height:56px;font-size:17px;font-weight:600;text-transform:none;letter-spacing:.5px;animation:fadeInUp .6s ease-out .3s both}.pwa-install-button:active{transform:scale(.98)}.pwa-later-button{--border-radius: 12px;height:48px;font-size:15px;font-weight:500;text-transform:none;animation:fadeInUp .6s ease-out .4s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 360px){.pwa-install-container{padding:24px 20px 20px}.pwa-app-icon{width:80px;height:80px;margin-bottom:20px}.pwa-title h2{font-size:24px}.pwa-benefits{gap:12px}.pwa-benefit-item{padding:12px 6px}.pwa-benefit-icon{width:36px;height:36px}.pwa-benefit-item p{font-size:12px}}@media (min-width: 768px){.pwa-install-modal{--width: 480px;--border-radius: 24px}.pwa-install-container{padding:40px 32px 32px}.pwa-app-icon{width:112px;height:112px}.pwa-title h2{font-size:32px}.pwa-subtitle{font-size:18px}}@media (prefers-color-scheme: dark){.pwa-benefit-item{background:rgba(0,0,0,.2)}.pwa-ios-instructions{background:rgba(164,30,34,.15)}}
