:root{
  --bg:#000;--fg:#fff;
  --dim:rgba(255,255,255,.55);--dim2:rgba(255,255,255,.3);
  --accent:#c8973b;--accent2:#e8b84b;
  --glass:rgba(0,0,0,.35);--glass2:rgba(0,0,0,.6);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{font-family:"Be Vietnam Pro",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}

.reels-container{height:100vh;height:100dvh;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.reels-container::-webkit-scrollbar{display:none}

.top-bar{position:fixed;top:0;left:0;right:0;z-index:200;padding:.9rem 1rem;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.top-bar>*{pointer-events:auto}
.tb-logo{font-size:.85rem;font-weight:800;letter-spacing:.02em;text-shadow:0 2px 16px rgba(0,0,0,.8)}
.tb-logo span{color:var(--accent)}
.tb-actions{display:flex;align-items:center;gap:.5rem}
.tb-mute{width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;border:1px solid rgba(255,255,255,.1);color:var(--fg);transition:background .3s,box-shadow .3s;padding:0;font-family:inherit}
.tb-mute:hover{background:var(--glass2)}
.tb-mute svg{width:18px;height:18px}
.tb-mute.is-muted{box-shadow:0 0 0 2px var(--accent)}
.tb-hamburger{width:38px;height:38px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;border:1px solid rgba(255,255,255,.1);transition:background .3s}
.tb-hamburger:hover{background:var(--glass2)}
.tb-hamburger i{display:block;width:16px;height:1.5px;background:var(--fg);border-radius:2px;pointer-events:none}

.nav-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.94);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s ease}
.nav-overlay.open{opacity:1;pointer-events:auto}
.nav-overlay .close-btn{position:absolute;top:.9rem;right:1rem;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--fg);cursor:pointer;background:none;border:none;font-family:inherit}
.nav-overlay a{font-size:1.6rem;font-weight:800;color:var(--fg);text-decoration:none;padding:.5rem 0;letter-spacing:-.02em;transition:color .2s;opacity:0;transform:translateY(16px)}
.nav-overlay.open a{opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s ease,color .2s}
.nav-overlay.open a:nth-child(2){transition-delay:.06s}
.nav-overlay.open a:nth-child(3){transition-delay:.12s}
.nav-overlay.open a:nth-child(4){transition-delay:.18s}
.nav-overlay.open a:nth-child(5){transition-delay:.24s}
.nav-overlay a:hover{color:var(--accent)}
.nav-overlay .nav-footer{position:absolute;bottom:2rem;font-size:.68rem;color:var(--dim2);letter-spacing:.06em}

.progress-dots{position:fixed;left:.5rem;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:.5rem}
.dot{width:3px;height:14px;border-radius:3px;background:var(--dim2);cursor:pointer;transition:height .3s,background .3s;border:none;padding:0}
.dot.active{height:28px;background:var(--accent)}

.slide{height:100vh;height:100dvh;width:100%;scroll-snap-align:start;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.slide-bg{position:absolute;inset:0;z-index:0}
.slide-bg iframe,.slide-bg img{width:100%;height:100%;object-fit:cover;border:none;pointer-events:none}
.slide-bg .vimeo-bg-wrap{position:absolute;inset:-50% -50%;width:200%;height:200%;display:flex;align-items:center;justify-content:center}
.slide-bg .vimeo-bg-wrap iframe{width:100%;height:100%;min-width:177.77vh;min-height:56.25vw}
.slide-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.25) 100%);z-index:1;pointer-events:none}

.slide-content{position:relative;z-index:10;width:100%;padding:0 4.5rem 1.2rem 1.1rem}
.slide-handle{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:800;color:var(--bg);flex-shrink:0;border:2px solid var(--fg)}
.handle-name{font-size:.78rem;font-weight:700}
.handle-follow{font-size:.68rem;font-weight:700;color:var(--fg);background:none;border:1px solid var(--fg);border-radius:6px;padding:.2rem .7rem;cursor:pointer;margin-left:.3rem;transition:all .2s;font-family:inherit}
.handle-follow:hover{background:var(--fg);color:var(--bg)}
.slide-caption{font-size:.8rem;line-height:1.5;margin-bottom:.5rem;text-shadow:0 1px 8px rgba(0,0,0,.6);max-width:340px}
.slide-caption strong{font-weight:700}
.slide-caption em{color:var(--accent);font-style:normal;font-weight:700}
.slide-tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.slide-tags span{font-size:.68rem;font-weight:600;color:var(--fg)}
.audio-ticker{display:flex;align-items:center;gap:.5rem;font-size:.68rem;color:var(--dim);overflow:hidden;max-width:220px}
.audio-ticker svg{flex-shrink:0}
.audio-ticker .ticker-text{white-space:nowrap;animation:tickerScroll 8s linear infinite}
@keyframes tickerScroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}

.slide-actions{position:absolute;right:.75rem;bottom:1.2rem;z-index:20;display:flex;flex-direction:column;align-items:center;gap:1.2rem}
.action-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;cursor:pointer;transition:transform .2s;background:none;border:none;color:var(--fg);padding:0;font-family:inherit;text-decoration:none}
.action-btn:hover{transform:scale(1.12)}
.action-btn:active{transform:scale(.92)}
.action-btn svg{width:26px;height:26px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.action-count{font-size:.6rem;font-weight:700;color:var(--fg);text-shadow:0 1px 4px rgba(0,0,0,.6)}
.action-album{width:28px;height:28px;border-radius:6px;border:2px solid rgba(255,255,255,.3);background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.45rem;font-weight:800;color:var(--bg);animation:albumSpin 4s linear infinite;cursor:pointer}
@keyframes albumSpin{to{border-radius:50%;transform:rotate(1turn)}}

.cta-slide{display:flex;align-items:center;justify-content:center;text-align:center}
.cta-slide .slide-content{padding-right:1.1rem;display:flex;flex-direction:column;align-items:center}
.cta-slide .slide-bg{background:linear-gradient(165deg,#1a0f2e,#3a1a5a 50%,#0a0518)}
.cta-slide .slide-caption{text-align:center;max-width:360px;margin:0 auto .5rem;font-size:.85rem}
.cta-btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:.8rem;padding:.85rem 2rem;background:var(--accent);color:var(--bg);font-family:inherit;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:none;border-radius:8px;cursor:pointer;text-decoration:none;transition:background .3s,transform .2s}
.cta-btn:hover{background:var(--accent2);transform:scale(1.03)}
.cta-ghost{background:transparent;border:1.5px solid rgba(255,255,255,.25);color:var(--fg)}
.cta-ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent}
.cta-sub{margin-top:1.2rem;font-size:.65rem;color:var(--dim2);letter-spacing:.05em}
.cta-social{display:flex;gap:2rem;margin:.6rem 0 1rem;align-items:center;justify-content:center}
.cta-social .action-btn svg{width:32px;height:32px}
.cta-social .action-count{font-size:.68rem}

@media (min-width:768px){
  .slide-content{max-width:560px;padding-right:5.5rem}
  .slide-actions{right:1.2rem;bottom:2rem;gap:1.5rem}
  .action-btn svg{width:28px;height:28px}
  .progress-dots{left:1rem}
  .slide-caption{font-size:.88rem;max-width:400px}
  .cta-slide .slide-content{max-width:500px;padding-right:1.2rem}
}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
