.lyp-feed{--lyp-cols:3;--lyp-ratio:2/3;max-width:100%}
.lyp-grid{display:grid;grid-template-columns:repeat(var(--lyp-cols),1fr);gap:4px}
.lyp-tile{position:relative;display:block;aspect-ratio:var(--lyp-ratio);overflow:hidden;background:#111;line-height:0}
.lyp-tile img,.lyp-tile video{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .15s}
.lyp-tile:hover img,.lyp-tile:hover video{opacity:.85}
.lyp-badge{position:absolute;top:8px;right:8px;color:#fff;line-height:0;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}
.lyp-morewrap{text-align:center;margin:20px 0 0}
.lyp-more{cursor:pointer}
@media(max-width:600px){.lyp-grid{gap:2px}}

html.lyp-lock{overflow:hidden}
.lyp-ov{--lyp-sh:min(88vh,1600px);--lyp-gap:3vh;--lyp-pad:3vh;position:fixed;inset:0;z-index:999999;background:#000}
.lyp-ov[hidden]{display:none!important}
.lyp-ov [hidden]{display:none!important}
.lyp-ov button{font:inherit;cursor:pointer;border:0;color:#fff;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 0 0 1px rgba(255,255,255,.18);border-radius:50%;width:44px;height:44px;padding:0;line-height:1;font-size:18px;display:flex;align-items:center;justify-content:center}
.lyp-ov button:hover{background:rgba(0,0,0,.8)}
.lyp-ov button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lyp-x{position:fixed;top:16px;right:20px;z-index:5}
.lyp-del{position:fixed;top:16px;left:20px;z-index:5}
.lyp-del:hover{background:rgba(200,30,30,.8)!important}
.lyp-nav{position:fixed;right:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:5}

/* Laufband: ein Beitrag pro Raster-Schritt, unten schaut der nächste heraus */
.lyp-scroller{position:absolute;inset:0;z-index:1;overflow-y:auto;scroll-snap-type:y mandatory;scroll-padding-top:var(--lyp-pad);padding-top:var(--lyp-pad);overscroll-behavior:contain;scrollbar-width:none}
.lyp-scroller::-webkit-scrollbar{display:none}
.lyp-scroller::after{content:"";display:block;height:calc(100vh - var(--lyp-sh) - var(--lyp-pad))}
.lyp-post{height:calc(var(--lyp-sh) + var(--lyp-gap));display:flex;align-items:flex-start;justify-content:center;scroll-snap-align:start;scroll-snap-stop:always;opacity:.4;transition:opacity .25s}
.lyp-post.lyp-on{opacity:1}

/* Rahmen: Standard 2:3 hoch, bei Querformat 3:2 */
.lyp-stage{position:relative;background:#000;border-radius:8px;overflow:hidden}
.lyp-col{display:flex;flex-direction:column;align-items:stretch}
.lyp-ov{--lyp-bar:52px}
.lyp-port{height:calc(var(--lyp-sh) - var(--lyp-bar));aspect-ratio:2/3;max-width:96vw}
.lyp-land{width:min(92vw,calc((var(--lyp-sh) - var(--lyp-bar))*1.5),1200px);aspect-ratio:3/2;margin-top:calc((var(--lyp-sh) - var(--lyp-bar) - min(92vw,calc((var(--lyp-sh) - var(--lyp-bar))*1.5),1200px)/1.5)/2)}
.lyp-bg{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(28px) brightness(.55);z-index:0}
.lyp-track{position:absolute;inset:0;z-index:1;display:flex;overflow-x:hidden;scroll-snap-type:x mandatory;scrollbar-width:none}
.lyp-track::-webkit-scrollbar{display:none}
.lyp-multi .lyp-track{overflow-x:auto}
.lyp-slide{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}
.lyp-slide img,.lyp-slide video{display:block;width:100%;height:100%;object-fit:contain;user-select:none}
.lyp-slide video{cursor:pointer}

.lyp-sl,.lyp-sr{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:40px!important;height:40px!important;font-size:24px!important}
.lyp-sl{left:10px}.lyp-sr{right:10px}
.lyp-dots{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.55);pointer-events:none}
.lyp-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45)}
.lyp-dots i.on{background:#fff}
.lyp-count{position:absolute;top:12px;left:12px;z-index:3;padding:5px 11px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:13px;line-height:1.2;pointer-events:none}
.lyp-mute{position:absolute;right:14px;bottom:18px;z-index:4;width:auto!important;height:46px!important;padding:0 18px!important;border-radius:999px!important;gap:8px;font-size:15px!important;line-height:1;white-space:nowrap}
.lyp-mute span:first-child{font-size:18px}
.lyp-hasv .lyp-cap{padding-right:160px}
.lyp-prog{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:4;background:rgba(255,255,255,.25)}
.lyp-prog i{display:block;height:100%;width:0;background:#fff}
.lyp-cap{position:absolute;left:0;right:0;bottom:3px;z-index:3;padding:48px 16px 14px;color:#fff;font-size:14px;line-height:1.45;background:linear-gradient(to top,rgba(0,0,0,.75),transparent);pointer-events:none}
.lyp-cap .lyp-txt{max-height:28vh;overflow:auto;pointer-events:auto}
.lyp-cap .lyp-txt p{margin:0 0 .5em;color:inherit}
.lyp-cap .lyp-txt p:last-child{margin-bottom:0}
.lyp-cap .lyp-meta{font-size:12px;opacity:.8;pointer-events:auto;margin-top:6px}
.lyp-cap a{color:#fff;text-decoration:underline}

@media(max-width:700px){
.lyp-ov{--lyp-sh:100dvh;--lyp-gap:0px;--lyp-pad:0px}
.lyp-port{width:100vw;aspect-ratio:auto;max-width:100vw;border-radius:0}
.lyp-land{width:100vw;border-radius:0;margin-top:calc((var(--lyp-sh) - var(--lyp-bar) - 100vw/1.5)/2)}
.lyp-scroller::after{display:none}
.lyp-nav{top:auto;bottom:7px;right:10px;transform:none;flex-direction:row}
.lyp-count{top:62px}
.lyp-ov button{width:38px;height:38px}
}
@media(prefers-reduced-motion:reduce){.lyp-tile img,.lyp-tile video,.lyp-post{transition:none}}

.lyp-single-media img,.lyp-single-media video{display:block;max-width:100%;height:auto;margin:0 0 1em}

/* Frontend-Upload (nur Admin) */
.lyp-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.lyp-add,.lyp-fav,.lyp-offer,.lyp-share,.lyp-adopt{cursor:pointer;border:0;border-radius:6px;padding:9px 16px;background:#222;color:#fff;font:inherit;font-size:14px}
.lyp-add:hover,.lyp-fav:hover,.lyp-offer:hover,.lyp-share:hover,.lyp-adopt:hover{background:#000}
.lyp-share[hidden],.lyp-adopt[hidden]{display:none}
.lyp-offer{background:#1f7a3d}
.lyp-offer[hidden]{display:none}
.lyp-up{position:fixed;inset:0;z-index:1000000;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:12px}
.lyp-up-box{background:#1a1a1a;color:#fff;border-radius:10px;padding:20px;width:min(760px,96vw);max-height:94vh;overflow:auto;font-size:14px}
.lyp-up-box h3{margin:0 0 12px;color:#fff;font-size:18px}
.lyp-drop{border:2px dashed #555;border-radius:8px;padding:26px 12px;text-align:center;cursor:pointer;line-height:1.5}
.lyp-drop:hover{border-color:#999}
.lyp-drop small{opacity:.7}
.lyp-up-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 6px}
.lyp-up-item{position:relative;width:104px;aspect-ratio:2/3;background:#000;border-radius:6px;overflow:hidden;cursor:grab}
.lyp-up-item img,.lyp-up-item video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.lyp-up-tag{position:absolute;left:6px;top:6px;color:#fff;text-shadow:0 1px 3px #000;font-size:13px}
.lyp-up-x{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;cursor:pointer;line-height:1;padding:0}
.lyp-up-cv{position:absolute;left:4px;right:4px;bottom:4px;border:0;border-radius:4px;background:rgba(0,0,0,.7);color:#fff;font-size:12px;padding:4px;cursor:pointer}
.lyp-up-type{opacity:.75;margin:0 0 10px;min-height:1.2em}
.lyp-up-cover{margin:0 0 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lyp-up-cover video{max-width:100%;max-height:50vh;background:#000;border-radius:6px}
.lyp-up-cover img{height:90px;width:auto;border-radius:4px}
.lyp-up-cover button,.lyp-up-act button{cursor:pointer;border:0;border-radius:6px;padding:8px 14px;background:#333;color:#fff;font:inherit}
.lyp-up-cover button:hover,.lyp-up-act button:hover{background:#444}
.lyp-up-box textarea{width:100%;box-sizing:border-box;background:#111;color:#fff;border:1px solid #444;border-radius:6px;padding:8px;font:inherit}
.lyp-up-draft{display:block;margin:10px 0}
.lyp-up-msg{min-height:1.4em;margin:6px 0}
.lyp-up-msg.bad{color:#ff8a8a}
.lyp-up-act{display:flex;gap:8px}
.lyp-up-act .lyp-up-go{background:#2e7d32}
.lyp-up-act .lyp-up-go:hover{background:#3a9340}
.lyp-up-act .lyp-up-go:disabled{opacity:.45;cursor:not-allowed}
.lyp-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1000001;background:#111;color:#fff;padding:10px 18px;border-radius:8px;box-shadow:0 4px 18px rgba(0,0,0,.5)}

/* Download-Abschreckung */
html.lyp-protect .lyp-feed img,html.lyp-protect .lyp-feed video,html.lyp-protect .lyp-ov img,html.lyp-protect .lyp-ov video,html.lyp-protect .lyp-single-media img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
html.lyp-protect .lyp-tile img,html.lyp-protect .lyp-tile video,html.lyp-protect .lyp-slide img,html.lyp-protect .lyp-slide video,html.lyp-protect .lyp-single-media img{pointer-events:none}
.lyp-slide:has(video){cursor:pointer}
@media print{html.lyp-protect .lyp-feed,html.lyp-protect .lyp-ov,html.lyp-protect .lyp-single-media{display:none!important}}

/* Likes (nur Browser, nur diese Sitzung) */
.lyp-favmode .lyp-grid:not(.lyp-grid-fav),.lyp-favmode .lyp-morewrap{display:none}
.lyp-feed:not(.lyp-favmode) .lyp-grid-fav{display:none}
.lyp-tile.lyp-liked::after{content:"\2665";position:absolute;left:8px;bottom:6px;color:#ff4d6d;font-size:22px;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.lyp-actions{height:var(--lyp-bar);display:flex;align-items:center;padding-left:2px}
.lyp-ov button.lyp-like,.lyp-ov button.lyp-sharep{width:46px;height:46px;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff}
.lyp-ov button.lyp-like:hover,.lyp-ov button.lyp-sharep:hover{background:rgba(255,255,255,.1)}
.lyp-burst{position:absolute;left:50%;top:50%;z-index:6;width:110px;height:110px;margin:-55px 0 0 -55px;pointer-events:none;color:#fff;filter:drop-shadow(0 2px 10px rgba(0,0,0,.5));animation:lypburst .85s ease-out forwards}
.lyp-burst svg{width:100%;height:100%;fill:currentColor}
@keyframes lypburst{0%{transform:scale(.3);opacity:0}25%{transform:scale(1.15);opacity:1}55%{transform:scale(.95);opacity:1}100%{transform:scale(1.1);opacity:0}}
.lyp-track{touch-action:manipulation}
.lyp-like svg,.lyp-sharep svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.lyp-like[aria-pressed="true"]{color:#ff4d6d}
.lyp-like[aria-pressed="true"] svg{fill:currentColor}
