:root{--color-bg-primary: #ffffff;--color-bg-secondary: #fafafa;--color-bg-gradient-start: #f8f9fa;--color-bg-gradient-end: #ffffff;--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-text-muted: rgba(26, 26, 26, .4);--color-accent-primary: #57534e;--color-accent-hover: #44403c;--color-accent-light: rgba(87, 83, 78, .1);--color-control-bg: rgba(255, 255, 255, .95);--color-control-border: rgba(0, 0, 0, .08);--color-progress-track: rgba(0, 0, 0, .1);--color-progress-fill: #57534e;--color-progress-hover: #44403c;--color-button-bg: #57534e;--color-button-text: #ffffff;--color-button-hover: #44403c;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .12);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-full: 9999px}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.cover-image{-webkit-user-select:none;user-select:none;pointer-events:none;touch-action:none}button,input{-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans TC,sans-serif;background:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{width:100%;height:100vh;display:flex;flex-direction:column}.player{flex:1;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg-gradient-start) 0%,var(--color-bg-gradient-end) 100%);position:relative;overflow:hidden}.player:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,rgba(99,102,241,.05) 0%,transparent 70%);pointer-events:none}.countdown{flex:1;align-items:center;padding:32px 24px;position:relative;z-index:1;gap:24px}.countdown-header{font-size:13px;font-weight:500;color:var(--color-text-secondary);letter-spacing:.5px;text-align:center;animation:fadeIn .6s ease-out}.cover-container{max-width:500px;width:90%;aspect-ratio:1;animation:fadeIn .6s ease-out .2s both;margin:15vh auto 0}.cover-image{width:100%;height:100%;object-fit:cover}.player-main{position:fixed;bottom:0;left:0;right:0;background:var(--color-control-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:3px solid var(--color-control-border);padding:0;z-index:1000;box-shadow:var(--shadow-lg)}.progress-section{width:100%;padding:8px 16px 0}.progress-container{width:100%;height:44px;display:flex;align-items:center;position:relative;cursor:pointer;margin-bottom:4px;-webkit-tap-highlight-color:transparent;padding:12px 0;touch-action:none}.progress-bar{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;outline:none;position:relative;z-index:2;cursor:pointer;transition:height .15s ease;touch-action:none}.progress-bar::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:transparent}@keyframes fade{0%{opacity:0}to{opacity:1}}.progress-bar[data-played=true]::-webkit-slider-thumb{background:var(--color-accent-primary);width:16px;height:16px;border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s cubic-bezier(.4,0,.2,1);opacity:0;animation:fade 1s forwards}.progress-bar::-moz-range-thumb{width:16px;height:16px;border-radius:var(--radius-full);background:var(--color-accent-primary);cursor:pointer;border:none;box-shadow:var(--shadow-sm);transition:all .15s cubic-bezier(.4,0,.2,1);opacity:1}@media(hover:hover){.progress-container{height:20px;padding:0}.progress-bar{height:4px}.progress-bar::-webkit-slider-thumb{width:12px;height:12px;opacity:0}.progress-bar::-moz-range-thumb{width:12px;height:12px;opacity:0}.progress-container:hover .progress-bar::-webkit-slider-thumb{opacity:1}.progress-container:hover .progress-bar::-moz-range-thumb{opacity:1}.progress-container:hover .progress-bar{height:6px}}.progress-bar:active::-webkit-slider-thumb{opacity:1;transform:scale(1.2)}.progress-bar:active::-moz-range-thumb{opacity:1;transform:scale(1.2)}.progress-buffered{position:absolute;left:0;top:50%;transform:translateY(-50%);height:4px;background:#57534e33;border-radius:var(--radius-full);pointer-events:none;transition:width .3s ease,height .15s ease;z-index:0}.progress-fill{position:absolute;left:0;top:50%;transform:translateY(-50%);height:4px;background:var(--color-progress-fill);border-radius:var(--radius-full);pointer-events:none;transition:height .15s ease;z-index:1}.progress-bar[data-loading=true]~.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:progressShimmer 1.5s ease-in-out infinite;border-radius:var(--radius-full)}@keyframes progressShimmer{0%{transform:translate(-40px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translate(40px);opacity:0}}@media(hover:hover){.progress-container:hover .progress-buffered{height:6px}.progress-container:hover .progress-fill{height:6px;background:var(--color-progress-hover)}}.progress-container:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;height:4px;background:var(--color-progress-track);border-radius:var(--radius-full);z-index:0;transition:height .15s ease}@media(hover:hover){.progress-container:hover:before{height:6px}}.time-row{display:flex;justify-content:space-between;padding:0 4px 8px}.time-display{font-size:11px;font-weight:500;color:var(--color-text-muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.controls-section{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 16px}.controls-left,.controls-center,.controls-right{display:flex;align-items:center;gap:12px}.controls-left,.controls-right{min-width:120px}.controls-center{flex:1;justify-content:center}.controls-right{min-width:100px;justify-content:flex-end}.play-button{width:48px;height:48px;min-width:48px;border-radius:var(--radius-full);border:none;background:var(--color-button-bg);color:var(--color-button-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md)}@media(hover:hover){.play-button:hover{transform:scale(1.06);background:var(--color-button-hover);box-shadow:var(--shadow-lg)}}.play-button:active{transform:scale(.96)}.play-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.play-button svg{transition:all .2s ease}.volume-control{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:120px}.volume-button{width:32px;height:32px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}@media(hover:hover){.volume-button:hover{color:var(--color-accent-primary);background:var(--color-progress-track)}}.volume-button:active{transform:scale(.9)}.volume-slider{-webkit-appearance:none;appearance:none;width:80px;height:4px;background:var(--color-progress-track);outline:none;border-radius:var(--radius-full);transition:all .2s ease}.volume-slider:disabled{opacity:.45}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-accent-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s cubic-bezier(.4,0,.2,1)}.volume-slider::-moz-range-thumb{width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-accent-primary);cursor:pointer;border:none;box-shadow:var(--shadow-sm);transition:all .15s cubic-bezier(.4,0,.2,1)}@media(hover:hover){.volume-slider:hover::-webkit-slider-thumb{transform:scale(1.2)}.volume-slider:hover::-moz-range-thumb{transform:scale(1.2)}}.loading,.error,.expired{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;text-align:center;background:linear-gradient(180deg,var(--color-bg-gradient-start) 0%,var(--color-bg-gradient-end) 100%);gap:24px}.loading{font-size:16px;color:var(--color-text-secondary);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.error .cover-container,.expired .cover-container{max-width:300px;width:80%;aspect-ratio:1;animation:fadeIn .6s ease-out}.error img,.expired img{font-size:32px;margin-bottom:16px;color:var(--color-accent-primary);font-weight:700;animation:fadeIn .6s ease-out .2s both}.error p,.expired p{font-size:16px;color:var(--color-text-secondary);line-height:1.6;max-width:400px;animation:fadeIn .6s ease-out .4s both}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}audio{display:none}.play-button:focus-visible,.volume-button:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.progress-bar:focus-visible,.volume-slider:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:4px}@media(min-width:768px){.countdown-header{font-size:13px}.cover-container{max-width:400px}.progress-section{padding:12px 24px 0}.time-row{padding:0 8px 12px}.time-display{font-size:12px}.controls-section{padding:16px 24px 20px}.controls-left,.controls-right{min-width:180px}.play-button{width:56px;height:56px;min-width:56px}.volume-control{min-width:140px}.volume-slider{width:100px}}@media(min-width:1024px){.progress-section{padding:16px 48px 0;max-width:1200px;margin:0 auto}.time-row{padding:0 12px 16px}.controls-section{padding:20px 48px 24px;max-width:1200px;margin:0 auto}}@media(max-width:374px){.countdown-header{font-size:11px}.cover-container{max-width:280px}.play-button{width:44px;height:44px;min-width:44px}.volume-control{display:none}.controls-right{min-width:auto}}@media(max-height:500px)and (orientation:landscape){.countdown{padding:16px 24px}.countdown-time{font-size:48px}.player-main{padding-bottom:env(safe-area-inset-bottom)}}.player-main{padding-bottom:env(safe-area-inset-bottom)}.waiting-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;background:linear-gradient(180deg,var(--color-bg-gradient-start) 0%,var(--color-bg-gradient-end) 100%);gap:48px}.waiting-cover{max-width:300px;width:80%;aspect-ratio:1;animation:fadeIn .6s ease-out}.countdown-block{display:flex;flex-direction:column;align-items:center}.countdown-text{width:100%;text-align:center;margin-top:12px;color:var(--color-accent-primary);font-size:14px}.countdown-timer{display:flex;align-items:center;gap:12px;margin-top:10px;animation:fadeIn .6s ease-out .2s both}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:8px}.countdown-value{min-width:64px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-light);color:var(--color-accent-primary);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.countdown-value:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#ffffff1a}.countdown-label{font-size:13px;font-weight:500;color:var(--color-text-secondary);letter-spacing:.5px}.countdown-separator{font-size:32px;font-weight:700;color:var(--color-accent-primary);margin:0 -4px;padding-bottom:28px;font-variant-numeric:tabular-nums}@media(max-width:374px){.countdown-timer{gap:8px}.countdown-value{min-width:52px;height:60px;font-size:26px}.countdown-label{font-size:11px}.countdown-separator{font-size:26px;margin:0 -6px;padding-bottom:24px}.waiting-view{gap:32px}}@media(min-width:768px){.countdown-timer{gap:16px}.countdown-value{min-width:80px;height:88px;font-size:40px;border-radius:var(--radius-lg)}.countdown-label{font-size:14px}.countdown-separator{font-size:40px;margin:0 -8px;padding-bottom:32px}.waiting-cover{max-width:360px}.waiting-view{gap:64px}}
