:root{--bg: #f4f8fc;--bg-soft: #e8f1fa;--surface: #ffffff;--ink: #0b1f33;--ink-soft: #1e3a55;--muted: #6b849c;--line: #d4e3f2;--line-strong: #b7cfe6;--accent: #1a6fb5;--accent-strong: #0f5a9a;--accent-soft: #dff0ff;--accent-glow: rgba(26, 111, 181, .18);--glass: rgba(255, 255, 255, .92);--glass-strong: rgba(255, 255, 255, .97);--nav-bg: rgba(255, 255, 255, .94);--card-on: #eef6fd;--card-on-inset: rgba(26, 111, 181, .16);--track: #c5d9ec;--track-on: #9ec4e6;--thumb-border: #ffffff;--meta-hover: #cfe7fb;--overlay: rgba(11, 31, 51, .38);--shadow: rgba(15, 55, 100, .1);--radius: 14px;--radius-sm: 10px;--nav-h: 64px;--player-gap: 8px;--safe-bottom: env(safe-area-inset-bottom, 0px);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--ease: cubic-bezier(.16, 1, .3, 1)}html[data-theme=dark]{--bg: #0c1219;--bg-soft: #121a24;--surface: #171f2a;--ink: #f3f6fa;--ink-soft: #d7e0ea;--muted: #8b9aab;--line: #2a3646;--line-strong: #3d4d61;--accent: #6bb4ef;--accent-strong: #8ec8f6;--accent-soft: rgba(107, 180, 239, .16);--accent-glow: rgba(107, 180, 239, .22);--glass: rgba(23, 31, 42, .92);--glass-strong: rgba(23, 31, 42, .97);--nav-bg: rgba(12, 18, 25, .94);--card-on: #1c2a3a;--card-on-inset: rgba(107, 180, 239, .22);--track: #2f4156;--track-on: #4a6d8f;--thumb-border: #171f2a;--meta-hover: rgba(107, 180, 239, .28);--overlay: rgba(0, 0, 0, .52);--shadow: rgba(0, 0, 0, .38)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink-soft);font-family:var(--font-sans);font-weight:400;letter-spacing:-.016em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}body{min-height:100dvh}#app{min-height:100dvh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 70% 45% at 15% 0%,var(--accent-glow),transparent 55%),radial-gradient(ellipse 55% 40% at 100% 100%,var(--accent-soft),transparent 50%),linear-gradient(180deg,var(--bg-soft) 0%,var(--bg) 40%,var(--bg) 100%)}.app-shell{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;min-height:100dvh;padding:0 20px calc(var(--nav-h) + 88px + var(--safe-bottom))}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 0 10px;min-height:44px}.theme-switch{justify-self:start;display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:9999px;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 14px var(--shadow)}.theme-switch__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);width:32px;height:28px;border-radius:9999px;display:grid;place-items:center;cursor:pointer;padding:0}.theme-switch__btn svg{width:16px;height:16px}.theme-switch__btn.is-on{background:var(--accent-soft);color:var(--accent-strong)}.install-btn{justify-self:center;grid-column:2;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--accent-strong);font:inherit;font-size:.75rem;font-weight:600;border-radius:9999px;padding:8px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 4px 14px var(--shadow)}.install-btn[hidden]{display:none}.install-btn svg{width:16px;height:16px}.install-btn:active{transform:scale(.97)}.view-stack{position:relative;flex:1;display:flex;flex-direction:column}.view{display:flex;flex:1;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s var(--ease),visibility 0s linear .14s}.view.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .14s var(--ease),visibility 0s;animation:viewIn .18s var(--ease)}@keyframes viewIn{0%{transform:translate3d(0,8px,0)}to{transform:none}}.view:not(.is-active){position:absolute;left:0;right:0;top:0;flex:none}.sound-group{margin-bottom:22px}.sound-group:last-child{margin-bottom:0}.sound-group__title{margin:0 0 12px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sound-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 12px}.sound-grid.is-instant .sound-tile{animation:none}.sound-tile{--i: 0;display:flex;flex-direction:column;gap:8px;animation:enter .56s var(--ease) both;animation-delay:calc(var(--i) * 40ms)}.sound-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--surface);border-radius:16px;padding:14px 8px 12px;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:1;min-height:0;box-shadow:0 4px 14px var(--shadow);transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);color:inherit;font:inherit;position:relative}@keyframes enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sound-card:hover{box-shadow:0 8px 20px var(--accent-glow)}.sound-card:active{transform:scale(.97)}.sound-card.is-on{background:var(--card-on);box-shadow:inset 0 2px 10px var(--card-on-inset)}.sound-card__icon{width:46px;height:46px;color:var(--accent);flex-shrink:0;overflow:visible}.sound-card.is-on .sound-card__icon{color:var(--accent-strong)}.fav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);width:28px;height:28px;border-radius:8px;display:grid;place-items:center;cursor:pointer;padding:0;position:absolute;top:4px;right:4px;opacity:.55}.fav-btn svg{width:15px;height:15px}.fav-btn.is-on{color:var(--accent);opacity:1}.sound-card__title{font-size:.75rem;font-weight:600;letter-spacing:-.01em;color:var(--accent);line-height:1.2;margin:0;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.volume{display:flex;align-items:center;padding:0 2px;opacity:.55;transition:opacity .2s var(--ease)}.sound-tile.is-on .volume{opacity:1}.volume input[type=range],.master input[type=range],.settings-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:3px;background:var(--line);border-radius:2px;outline:none;margin:0}.volume input[type=range]{height:4px;background:var(--track)}.sound-tile.is-on .volume input[type=range]{background:var(--track-on)}.volume input[type=range]::-webkit-slider-thumb,.master input[type=range]::-webkit-slider-thumb,.settings-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--thumb-border);box-shadow:0 1px 4px var(--accent-glow);cursor:pointer}.volume input[type=range]::-moz-range-thumb,.master input[type=range]::-moz-range-thumb,.settings-row input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--thumb-border);box-shadow:0 1px 4px var(--accent-glow);cursor:pointer}.empty-state{margin:48px 8px 0;text-align:center;color:var(--muted)}.empty-state h2{margin:0 0 8px;font-size:1.1rem;color:var(--ink);font-weight:600}.empty-state p{margin:0;font-size:.875rem;line-height:1.45}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;display:flex;flex-direction:column;gap:18px}.settings-row{display:flex;flex-direction:column;gap:10px}.settings-row__label{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;font-weight:600;color:var(--ink)}.settings-row__value{color:var(--muted);font-weight:500;font-size:.8125rem}.settings-hint{font-size:.8125rem;color:var(--muted);line-height:1.45;margin:0}.dock{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--safe-bottom));transform:translate(-50%);width:min(480px,100%);padding:0 16px var(--player-gap);z-index:8;pointer-events:none}.dock__panel{pointer-events:auto;position:relative;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:16px;padding:8px 12px 10px;display:flex;flex-direction:column;align-items:stretch;gap:6px;box-shadow:0 8px 22px var(--shadow)}.dock__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}.dock__meta{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--accent-soft);color:var(--accent-strong);font:inherit;font-size:.6875rem;font-weight:600;letter-spacing:.02em;border-radius:9999px;padding:5px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .16s var(--ease),transform .16s var(--ease)}.dock__meta:hover{background:var(--meta-hover)}.dock__meta:active{transform:scale(.98)}.dock__meta strong{font-weight:700}.dock__meta-caret{width:12px;height:12px;transition:transform .2s var(--ease)}.dock__panel.is-open .dock__meta-caret{transform:rotate(180deg)}.controls{display:flex;align-items:center;justify-content:flex-end;gap:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;transition:transform .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease)}.btn:active{transform:scale(.96)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;width:40px;height:40px;border-radius:12px;box-shadow:0 6px 14px var(--accent-glow)}.btn--primary:hover{background:var(--accent-strong)}.btn svg{width:16px;height:16px}.btn--primary svg{width:18px;height:18px}.master{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.master svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}.master input[type=range]{flex:1;width:auto}.active-sheet{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:var(--glass-strong);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px var(--shadow);padding:10px;max-height:min(42vh,280px);overflow:auto;display:none;flex-direction:column;gap:6px;animation:sheetIn .22s var(--ease) both}.dock__panel.is-open .active-sheet{display:flex}@keyframes sheetIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.active-sheet__empty{padding:18px 12px;text-align:center;color:var(--muted);font-size:.8125rem}.active-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--bg);border:1px solid transparent;overflow:hidden;max-height:64px;flex-shrink:0;transition:opacity .22s var(--ease),transform .28s var(--ease),max-height .28s var(--ease),padding .28s var(--ease),margin .28s var(--ease),border-width .28s var(--ease)}.active-item.is-leaving{opacity:0;transform:translate(12px);max-height:0;padding-top:0;padding-bottom:0;margin-bottom:-6px;border-width:0;pointer-events:none}.active-item__icon{width:22px;height:22px;color:var(--accent);flex-shrink:0}.active-item__title{flex:1;font-size:.8125rem;font-weight:600;color:var(--ink);margin:0;min-width:0}.active-item__off{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--accent-strong);font:inherit;font-size:.75rem;font-weight:600;border-radius:8px;padding:6px 10px;cursor:pointer;white-space:nowrap}.active-item__off:active{transform:scale(.97)}.navbar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(480px,100%);height:calc(var(--nav-h) + var(--safe-bottom));padding:0 12px var(--safe-bottom);background:var(--nav-bg);border-top:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:grid;grid-template-columns:repeat(2,1fr);z-index:10}.nav-indicator{position:absolute;top:6px;left:12px;width:calc((100% - 24px)/2);height:calc(var(--nav-h) - 12px);border-radius:14px;background:var(--accent-soft);transform:translate(0);transition:transform .18s var(--ease);pointer-events:none;z-index:0}.navbar[data-tab=favorites] .nav-indicator{transform:translate(100%)}.nav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.6875rem;font-weight:600;letter-spacing:.01em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:8px 4px 6px;position:relative;z-index:1;transition:color .16s var(--ease)}.nav-item svg{width:22px;height:22px}.nav-item.is-active{color:var(--accent)}.install-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:42;display:grid;place-items:end center;padding:16px 16px calc(16px + var(--safe-bottom));background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.install-sheet[hidden]{display:none}.install-sheet__card{width:min(400px,100%);background:var(--surface);border-radius:18px;padding:20px 18px 16px;box-shadow:0 16px 40px var(--shadow)}.install-sheet__card h2{margin:0 0 12px;font-size:1.05rem;color:var(--ink)}.install-sheet__steps{margin:0 0 12px;padding-left:18px;color:var(--ink-soft);font-size:.875rem;line-height:1.55}.install-sheet__steps svg{width:16px;height:16px;vertical-align:-3px;color:var(--accent)}.install-sheet__hint{margin:0 0 14px;font-size:.75rem;color:var(--muted);line-height:1.4}.install-sheet__ok{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:none;background:var(--accent);color:#fff;font:inherit;font-size:.875rem;font-weight:600;border-radius:12px;padding:12px;cursor:pointer}.load-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.load-modal[hidden]{display:none}.load-modal__card{width:min(280px,100%);background:var(--surface);border-radius:18px;padding:22px 20px 18px;text-align:center;box-shadow:0 16px 40px var(--shadow)}.load-modal__spinner{width:28px;height:28px;margin:0 auto 12px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.load-modal__title{margin:0 0 6px;font-size:.9375rem;font-weight:700;color:var(--ink)}.load-modal__text{margin:0;font-size:.8125rem;color:var(--muted);line-height:1.4}@keyframes spin{to{transform:rotate(360deg)}}
