.feed{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none}.feed::-webkit-scrollbar{display:none}.video-card{height:100vh;min-height:650px;position:relative;scroll-snap-align:start;overflow:hidden;background:#151a28}.video-card video{width:100%;height:100%;object-fit:cover;display:block}.video-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#05060a70 0%,transparent 25%,transparent 48%,#05060af5 100%);pointer-events:none}.video-info{position:absolute;z-index:2;right:17px;left:88px;bottom:103px}.creator{display:flex;align-items:center;gap:9px;font-weight:800;margin-bottom:9px;font-size:14px}.avatar{width:42px;height:42px;border-radius:50%;border:2px solid #fff;object-fit:cover;box-shadow:0 3px 10px #0008}.verified{color:var(--cyan);font-size:14px}.follow-btn{margin-right:4px;color:#fff;border:1px solid #ffffffbb;border-radius:7px;padding:2px 7px;font-size:10px;font-weight:700}.caption{font-size:14px;line-height:1.8;margin:4px 0;color:#fff;text-shadow:0 1px 4px #000}.sound{font-size:12px;color:#f1f2f7;display:flex;gap:6px;align-items:center;margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sound-icon{font-size:15px}.actions{position:absolute;z-index:3;left:14px;bottom:106px;display:flex;flex-direction:column;align-items:center;gap:16px}.action{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;text-shadow:0 1px 4px #000;min-width:38px}.action i{font-style:normal;font-size:29px;line-height:29px}.action.liked i{color:var(--pink);text-shadow:0 0 12px #ff3f8088}.action.bookmarked i{color:var(--yellow)}.ad-badge{position:absolute;z-index:3;top:91px;right:18px;background:var(--yellow);color:#19140b;font-size:10px;font-weight:800;padding:5px 10px;border-radius:20px;box-shadow:0 3px 12px #0005}.ad-visit{position:absolute;z-index:3;bottom:99px;right:17px;left:88px;height:39px;border-radius:12px;background:#fff;color:#13151d;font-size:12px;font-weight:800;box-shadow:0 6px 20px #0005}.progress{position:absolute;z-index:4;bottom:79px;left:0;right:0;height:3px;background:#ffffff3b}.progress i{display:block;width:34%;height:100%;background:#fff;border-radius:0 3px 3px 0}.empty{position:fixed;z-index:4;inset:37% 20px auto;text-align:center;color:var(--muted)}.empty-icon{font-size:42px;color:var(--cyan)}.empty h3{color:#fff;margin:5px 0}.empty p{font-size:12px}

.tap-layer{position:absolute;inset:0;z-index:1}
.mute-btn{position:absolute;z-index:3;top:126px;right:15px;width:36px;height:36px;border-radius:50%;background:#0008;font-size:16px;backdrop-filter:blur(6px)}
.play-hint{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);font-size:58px;color:#fffc;opacity:0;pointer-events:none;transition:.2s}
.video-card.paused .play-hint{opacity:1}
.heart-burst{position:absolute;z-index:2;top:45%;left:50%;transform:translate(-50%,-50%) scale(0);font-size:96px;color:var(--pink);pointer-events:none;text-shadow:0 0 30px #ff3f80aa;opacity:0}
.heart-burst.go{animation:burst .8s ease-out}
@keyframes burst{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}30%{transform:translate(-50%,-50%) scale(1.15);opacity:1}100%{transform:translate(-50%,-80%) scale(1);opacity:0}}
.progress i{width:0;transition:width .25s linear}
.points-pill.bump{animation:bump .4s}
@keyframes bump{50%{transform:scale(1.15)}}
