:root{--bg-primary: #08090d;--bg-surface: rgba(18, 22, 34, .7);--bg-surface-hover: rgba(28, 34, 52, .85);--glass-border: rgba(255, 255, 255, .09);--glass-shadow: 0 16px 40px -8px rgba(0, 0, 0, .65), 0 0 0 1px rgba(255, 255, 255, .08);--accent-primary: #3b82f6;--accent-primary-glow: rgba(59, 130, 246, .4);--accent-heart: #ff2a6d;--accent-heart-glow: rgba(255, 42, 109, .5);--accent-success: #05d59e;--accent-warning: #f59e0b;--accent-danger: #ef4444;--text-main: #f3f4f6;--text-muted: #9ca3af;--text-dim: #6b7280;--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--bsp-gap: 8px;--anim-duration: 1.2s;--anim-ease: cubic-bezier(.25, 1, .5, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);overflow:hidden;width:100vw;height:100vh;margin:0;padding:0}#app{position:relative;width:100vw;height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 50%,#111422,#08090d)}.glass-panel{background:var(--bg-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}#top-bar{position:absolute;top:16px;left:16px;right:16px;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:100;transition:opacity .4s ease,transform .4s ease}body.idle-controls #top-bar{opacity:0;transform:translateY(-20px);pointer-events:none}body.is-scanning #top-bar{opacity:1!important;transform:none!important;pointer-events:auto!important}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:26px;height:26px;color:var(--accent-primary);filter:drop-shadow(0 0 8px var(--accent-primary-glow))}.brand-title{font-size:1.25rem;font-weight:700;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 40%,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-badge{font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:20px;background:#05d59e26;color:var(--accent-success);border:1px solid rgba(5,213,158,.3);text-transform:uppercase;letter-spacing:.5px}.top-stats{display:flex;align-items:center;gap:8px}.stat-pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:4px 10px;border-radius:12px;font-size:.82rem;font-family:var(--font-mono);color:var(--text-muted)}.stat-pill svg{width:14px;height:14px}.stat-liked{color:var(--accent-heart);background:#ff2a6d1a;border-color:#ff2a6d40}.stat-banned{color:var(--accent-danger);background:#ef44441a;border-color:#ef444440}.top-actions{display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;border:none;outline:none;font-family:var(--font-sans);font-size:.88rem;font-weight:600;padding:8px 16px;border-radius:10px;cursor:pointer;transition:all .25s cubic-bezier(.2,.8,.2,1)}.btn svg{width:16px;height:16px}.btn-primary{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;box-shadow:0 4px 14px var(--accent-primary-glow)}.btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);transform:translateY(-1px);box-shadow:0 6px 20px var(--accent-primary-glow)}.btn-secondary{background:#ffffff12;color:var(--text-main);border:1px solid rgba(255,255,255,.12)}.btn-secondary:hover{background:#ffffff21;border-color:#ffffff38}.btn-danger{background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.4)}.btn-danger:hover{background:#ef444466}.btn-icon{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);color:var(--text-main);cursor:pointer;transition:all .2s ease}.btn-icon svg{width:18px;height:18px}.btn-icon:hover:not(:disabled){background:#ffffff26;border-color:#ffffff40;transform:translateY(-1px)}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.btn-large{padding:14px 28px;font-size:1.05rem;border-radius:14px}#slideshow-container{position:relative;width:100vw;height:100vh;overflow:hidden}.welcome-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:540px;width:90%;padding:40px;text-align:center;z-index:10;display:flex;flex-direction:column;align-items:center;gap:16px}.welcome-box h1{font-size:2.6rem;font-weight:700;letter-spacing:-1px;background:linear-gradient(135deg,#fff 50%,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.welcome-desc{color:var(--text-muted);font-size:1.05rem;line-height:1.5;max-width:460px}.welcome-actions{display:flex;gap:14px;margin-top:10px}.bsp-stage{position:absolute;top:0;left:0;width:100%;height:100%;padding:var(--bsp-gap);box-sizing:border-box}.bsp-cell{position:absolute;overflow:hidden;border-radius:14px;box-shadow:0 8px 30px #00000080;background:#11141e;border:1px solid rgba(255,255,255,.08);contain:layout paint;transition:left var(--anim-duration) var(--anim-ease),top var(--anim-duration) var(--anim-ease),width var(--anim-duration) var(--anim-ease),height var(--anim-duration) var(--anim-ease),transform .4s ease,opacity .5s ease;will-change:left,top,width,height,transform}.bsp-cell.hero-cell{z-index:10;box-shadow:0 20px 60px #000c,0 0 0 2px #3b82f659}.bsp-cell.cell-entering{opacity:0;transform:scale(.92)}.bsp-cell.cell-leaving{opacity:0;transform:scale(.92);pointer-events:none}.cell-media-container{width:100%;height:100%;position:relative;overflow:hidden}.cell-error-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;background:radial-gradient(circle,#ef444426,#11141ef2);color:#fca5a5;gap:10px;box-sizing:border-box}.cell-error-icon{font-size:2.2rem}.cell-error-card h4{font-size:1rem;font-weight:700;color:#fff}.cell-error-card p{font-size:.8rem;color:#cbd5e1;max-width:360px;line-height:1.4}.cell-media{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1),filter .3s ease}.bsp-cell.fit-contain .cell-media{object-fit:contain;background-color:#0b0d13}.bsp-cell:hover .cell-media:not(.ken-burns){transform:scale(1.03)}.bsp-cell:hover .cell-media.ken-burns,body.is-paused .cell-media.ken-burns{animation-play-state:paused!important}.cell-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#080a10e0,#080a1033 40%,#080a1066);opacity:0;pointer-events:none;transition:opacity .3s ease;display:flex;flex-direction:column;justify-content:space-between;padding:16px}.bsp-cell:hover .cell-overlay{opacity:1;pointer-events:auto}.bsp-cell.hover-inactive .cell-overlay{opacity:0!important;pointer-events:none!important}.bsp-cell.hover-inactive .cell-media:not(.ken-burns){transform:none!important}.bsp-cell.hover-inactive .cell-media.ken-burns{animation-play-state:running!important}.cell-badge-container{display:flex;align-items:center;justify-content:space-between}.cell-type-badge{font-size:.68rem;font-weight:700;letter-spacing:.8px;padding:3px 8px;border-radius:6px;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#e2e8f0;text-transform:uppercase}.cell-type-badge.badge-gif{background:#a855f740;border-color:#a855f780;color:#c084fc}.cell-type-badge.badge-video{background:#3b82f640;border-color:#3b82f680;color:#93c5fd}.cell-pause-tag{font-size:.7rem;font-weight:600;color:var(--accent-warning);background:#f59e0b33;border:1px solid rgba(245,158,11,.4);padding:3px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:4px}.cell-bottom-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.cell-file-info{display:flex;flex-direction:column;gap:3px;max-width:65%}.cell-file-name{font-size:.88rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 4px rgba(0,0,0,.8)}.cell-file-path{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.cell-actions{display:flex;align-items:center;gap:10px}.cell-btn{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.cell-btn svg{width:22px;height:22px}.cell-btn-heart{background:#ff2a6d33;color:#fff;border:1.5px solid rgba(255,42,109,.5)}.cell-btn-heart:hover{background:var(--accent-heart);box-shadow:0 0 20px var(--accent-heart-glow);transform:scale(1.15)}.cell-btn-heart.active{background:var(--accent-heart);box-shadow:0 0 22px var(--accent-heart-glow);color:#fff}.cell-btn-trash{background:#ef444433;color:#fff;border:1.5px solid rgba(239,68,68,.5)}.cell-btn-trash:hover{background:var(--accent-danger);box-shadow:0 0 20px #ef444480;transform:scale(1.15)}#audio-dock{position:absolute;bottom:20px;left:20px;height:60px;padding:0 16px;display:flex;align-items:center;gap:14px;z-index:100;transition:opacity .4s ease,transform .4s ease;max-width:440px}body.idle-controls #audio-dock{opacity:0;transform:translateY(20px);pointer-events:none}body.has-active-visualizer.idle-controls #audio-dock{opacity:.95!important;transform:translateY(0)!important;pointer-events:auto!important}body.has-active-visualizer.idle-controls #audio-dock .audio-controls{opacity:.45;transition:opacity .3s ease}body.has-active-visualizer.idle-controls #audio-dock:hover .audio-controls{opacity:1}.audio-equalizer{display:flex;align-items:flex-end;gap:3px;height:18px}.audio-equalizer span{width:3px;height:6px;background:var(--accent-primary);border-radius:2px;transition:height .2s ease}.audio-equalizer.playing span{animation:eq-bounce 1s ease-in-out infinite alternate}.audio-equalizer.playing span:nth-child(1){animation-delay:.1s}.audio-equalizer.playing span:nth-child(2){animation-delay:.4s}.audio-equalizer.playing span:nth-child(3){animation-delay:.2s}.audio-equalizer.playing span:nth-child(4){animation-delay:.6s}@keyframes eq-bounce{0%{height:4px}to{height:18px}}.audio-info{display:flex;flex-direction:column;gap:2px;overflow:hidden;max-width:170px}.audio-title{font-size:.82rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-meta{font-size:.7rem;color:var(--text-dim);font-family:var(--font-mono)}.audio-controls{display:flex;align-items:center;gap:8px}.btn-audio-ctrl{background:none;border:none;color:var(--text-main);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:6px;border-radius:8px;transition:background .2s ease,transform .1s ease}.btn-audio-ctrl svg{width:16px;height:16px}.btn-audio-ctrl:hover{background:#ffffff1a}.btn-audio-main{background:#ffffff1f;border-radius:50%;width:32px;height:32px}.btn-audio-main:hover{background:#ffffff40;transform:scale(1.05)}.volume-container{display:flex;align-items:center;gap:4px}.volume-slider{width:55px;height:4px;accent-color:var(--accent-primary);cursor:pointer}.pause-indicator{position:absolute;bottom:24px;right:24px;padding:8px 16px;display:flex;align-items:center;gap:8px;z-index:90;font-size:.82rem;font-weight:600;color:var(--accent-warning);background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);border-radius:30px;pointer-events:none;animation:fadeInPulse 1.8s infinite alternate}.pause-indicator svg{width:14px;height:14px}@keyframes fadeInPulse{0%{opacity:.65;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#040508bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .25s ease}.modal-panel{width:100%;max-width:680px;max-height:85vh;overflow-y:auto;padding:28px;border-radius:20px;display:flex;flex-direction:column;gap:20px}.modal-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:16px}.modal-header h2{font-size:1.3rem;font-weight:700;display:flex;align-items:center;gap:10px}.modal-body{display:flex;flex-direction:column;gap:24px}.setting-group{display:flex;flex-direction:column;gap:14px;background:#ffffff06;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:16px 18px}.setting-group h3{font-size:.95rem;font-weight:600;color:#e2e8f0}.setting-hint{font-size:.8rem;color:var(--text-muted);line-height:1.4}.setting-hint code{font-family:var(--font-mono);background:#ffffff14;padding:2px 6px;border-radius:4px;color:#93c5fd}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.setting-label{display:flex;flex-direction:column;gap:3px}.setting-label span{font-size:.88rem;font-weight:500;color:var(--text-main)}.setting-label small{font-size:.75rem;color:var(--text-dim)}.slider-control{width:160px;accent-color:var(--accent-primary);cursor:pointer}.select-control{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:var(--text-main);padding:6px 12px;border-radius:8px;font-family:var(--font-sans);font-size:.85rem;outline:none;cursor:pointer}.select-control option{background:#111422;color:#fff}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider-toggle{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#ffffff26;transition:.3s cubic-bezier(.2,.8,.2,1);border-radius:24px}.slider-toggle:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s cubic-bezier(.2,.8,.2,1);border-radius:50%}input:checked+.slider-toggle{background-color:var(--accent-primary)}input:checked+.slider-toggle:before{transform:translate(20px)}.setting-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:6px}.btn-file{position:relative;overflow:hidden}.hotkeys-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hotkey-item{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--text-muted)}kbd{font-family:var(--font-mono);background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-bottom:2px solid rgba(255,255,255,.28);border-radius:6px;padding:3px 7px;color:#fff;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.cell-media.ken-burns{will-change:transform;animation-duration:18s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-fill-mode:both}.cell-media.ken-burns.kb-variant-1{animation-name:kbZoomInUp}.cell-media.ken-burns.kb-variant-2{animation-name:kbZoomOutDown}.cell-media.ken-burns.kb-variant-3{animation-name:kbPanRight}.cell-media.ken-burns.kb-variant-4{animation-name:kbPanLeft}@keyframes kbZoomInUp{0%{transform:scale(1) translate(0)}to{transform:scale(1.16) translate(-2%,-2%)}}@keyframes kbZoomOutDown{0%{transform:scale(1.18) translate(-2%,-1%)}to{transform:scale(1.02) translate(1%,2%)}}@keyframes kbPanRight{0%{transform:scale(1.12) translate(-3%)}to{transform:scale(1.14) translate(3%,-1%)}}@keyframes kbPanLeft{0%{transform:scale(1.13) translate(3%,1%)}to{transform:scale(1.11) translate(-3%,-1%)}}#kiosk-widget{position:absolute;bottom:24px;right:24px;padding:16px 22px;z-index:95;pointer-events:none;transition:opacity .4s ease,transform .4s ease;min-width:180px;border-radius:18px}body.idle-controls #kiosk-widget{opacity:.95}.kiosk-inner{display:flex;flex-direction:column;gap:3px}.kiosk-clock{display:flex;align-items:baseline;font-family:var(--font-mono);line-height:1}.kiosk-time-main{font-size:2.3rem;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.85);letter-spacing:-1px}.kiosk-time-sec{font-size:1.15rem;font-weight:500;color:var(--accent-primary);margin-left:2px}.kiosk-date{font-size:.86rem;color:var(--text-muted);font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.7)}.kiosk-weather{display:flex;align-items:center;gap:6px;font-size:.82rem;margin-top:6px;color:#e2e8f0;padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}.kiosk-weather-icon{font-size:1.05rem}.kiosk-weather-temp{font-weight:600;color:#60a5fa;font-family:var(--font-mono)}.kiosk-weather-desc{color:var(--text-dim);font-size:.78rem;margin-left:2px}.audio-visualizer-canvas{height:28px;width:110px;border-radius:4px;margin-left:4px;background:#0003;border:1px solid rgba(255,255,255,.06)}.btn-fav-active{background:var(--accent-heart)!important;color:#fff!important;box-shadow:0 0 16px var(--accent-heart-glow)!important;border-color:var(--accent-heart)!important}.btn-pwa{background:linear-gradient(135deg,#3b82f633,#a855f733);border-color:#a855f766}.btn-pwa:hover{background:linear-gradient(135deg,#3b82f659,#a855f759);box-shadow:0 0 16px #a855f766}
