.vibes-page{min-height:100vh;padding:80px 40px;background:var(--bg-dark)}.vibes-container{max-width:1400px;margin:0 auto}.vibes-back{display:inline-block;margin-bottom:40px;opacity:.6;transition:opacity .2s}.vibes-back:hover{opacity:1}.vibes-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px;gap:20px}.vibes-header-text{flex:1}.vibes-title{font-family:var(--font-title);font-size:32px;font-weight:400;text-transform:uppercase;letter-spacing:4px;color:var(--text-primary);margin-bottom:8px}.vibes-subtitle{font-size:14px;color:var(--text-dim);line-height:1.6}.vibes-controls{gap:12px;flex-shrink:0}.vibes-controls,.vibes-shuffle{display:flex;align-items:center}.vibes-shuffle{gap:6px;padding:8px 16px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-title);font-size:11px;text-transform:uppercase;letter-spacing:2px;cursor:pointer;transition:border-color .2s,color .2s}.vibes-shuffle:hover{border-color:var(--accent);color:var(--text-primary)}.vibes-shuffle-icon{font-size:14px}.vibes-count{font-family:var(--font-mono,"Space Mono",monospace);font-size:11px;color:var(--text-dim);letter-spacing:1px}.vibes-empty{padding:80px 0;text-align:center}.vibes-empty p{font-size:14px;color:var(--text-dim);font-style:italic}.vibes-grid{-moz-columns:4;column-count:4;-moz-column-gap:12px;column-gap:12px}.vibes-tile{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:12px;position:relative;cursor:pointer;overflow:hidden;background:var(--bg-card);border:1px solid transparent;transition:border-color .2s}.vibes-tile:before{content:"";position:absolute;top:50%;left:50%;width:24px;height:24px;background:url(/images/icons/Ludos_Loop_Web.webp) 50%/contain no-repeat;animation:mediaLoaderPulse 2s ease-in-out infinite;pointer-events:none;z-index:1;transition:opacity .4s ease}.vibes-tile[data-loaded]:before{opacity:0;animation:none}.vibes-tile:not([data-loaded]){min-height:80px}.vibes-tile:hover{border-color:var(--border)}.vibes-tile-media{display:block;width:100%;height:auto;-o-object-fit:cover;object-fit:cover;opacity:0;transition:opacity .4s ease}.vibes-tile[data-loaded] .vibes-tile-media{opacity:1}.vibes-tile-video{position:relative}.vibes-tile-video .vibes-tile-media{display:block}.vibes-tile-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:rgba(0,0,0,.7);border:2px solid hsla(0,0%,100%,.3);display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background .2s,border-color .2s;z-index:2}.vibes-tile:hover .vibes-tile-play{background:rgba(255,21,22,.8);border-color:rgba(255,21,22,.6)}.vibes-tile-play:after{content:"";display:block;width:0;height:0;border-color:transparent transparent transparent #fff;border-style:solid;border-width:8px 0 8px 14px;margin-left:3px}.vibes-tile-link{padding:20px 16px;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.vibes-tile-link-has-thumb{padding:0}.vibes-tile-link-has-thumb .vibes-tile-link-info{padding:12px 16px 16px}.vibes-tile-link-title{font-family:var(--font-body);font-size:13px;color:var(--text-primary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.vibes-tile-link-domain{font-family:var(--font-mono,"Space Mono",monospace);font-size:11px;color:var(--accent);letter-spacing:.5px;display:flex;align-items:center;gap:4px}.vibes-tile-link-domain:before{content:"\2197";font-size:12px}.vibes-tile-domain-badge{bottom:8px;left:8px;padding:3px 8px;background:rgba(0,0,0,.75);color:var(--accent)}.vibes-tile-domain-badge,.vibes-tile-group{position:absolute;font-family:var(--font-mono,"Space Mono",monospace);font-size:10px;letter-spacing:.5px;backdrop-filter:blur(4px);z-index:2}.vibes-tile-group{top:8px;right:8px;padding:2px 7px;background:rgba(0,0,0,.7);color:var(--text-secondary)}.vibes-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:120px 0}.vibes-loading-text{font-family:var(--font-mono,"Space Mono",monospace);font-size:11px;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase}.vibes-loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:vibes-spin .8s linear infinite}@keyframes vibes-spin{to{transform:rotate(1turn)}}.vibes-more-container{padding:48px 0 16px}.vibes-more,.vibes-more-container{display:flex;justify-content:center}.vibes-more{align-items:center;gap:8px;min-width:120px;padding:12px 32px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-title);font-size:12px;text-transform:uppercase;letter-spacing:3px;cursor:pointer;transition:border-color .2s,color .2s}.vibes-more:hover{border-color:var(--accent);color:var(--text-primary)}.vibes-more:disabled{cursor:default;border-color:var(--border);color:var(--text-dim)}.vibes-more .vibes-loading-spinner{width:16px;height:16px}.vibes-end{text-align:center;padding:30px 0 10px;font-size:12px;color:var(--text-dim);font-family:var(--font-mono,"Space Mono",monospace);letter-spacing:1px}.vibes-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);animation:vibes-lightbox-in .2s ease-out}@keyframes vibes-lightbox-in{0%{opacity:0}to{opacity:1}}.vibes-lightbox-close{position:absolute;top:20px;right:24px;background:none;border:none;color:var(--text-dim);font-size:28px;cursor:pointer;padding:4px 8px;z-index:10;transition:color .2s;font-family:var(--font-body);line-height:1}.vibes-lightbox-close:hover{color:var(--text-primary)}.vibes-lightbox-content{max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center;position:relative;min-width:200px;min-height:150px}.vibes-lightbox-content:before{content:"";position:absolute;top:50%;left:50%;width:32px;height:32px;background:url(/images/icons/Ludos_Loop_Web.webp) 50%/contain no-repeat;animation:mediaLoaderPulse 2s ease-in-out infinite;pointer-events:none;z-index:1;transition:opacity .4s ease}.vibes-lightbox-content[data-loaded]:before{opacity:0;animation:none}.vibes-lightbox-image{max-width:90vw;max-height:85vh;-o-object-fit:contain;object-fit:contain;display:block;opacity:0;transition:opacity .4s ease}.vibes-lightbox-content[data-loaded] .vibes-lightbox-image{opacity:1}.vibes-lightbox-video{max-width:90vw;max-height:85vh;display:block;outline:none;opacity:0;transition:opacity .4s ease}.vibes-lightbox-content[data-loaded] .vibes-lightbox-video{opacity:1}.vibes-lightbox-embed{width:min(90vw,960px);aspect-ratio:16/9;border:none;display:block}.vibes-lightbox-link-card{max-width:480px;background:var(--bg-card);border:1px solid var(--border);padding:32px;text-align:center}.vibes-lightbox-link-card img{width:100%;max-height:240px;-o-object-fit:cover;object-fit:cover;margin-bottom:20px}.vibes-lightbox-link-title{font-family:var(--font-body);font-size:16px;color:var(--text-primary);line-height:1.5;margin-bottom:8px}.vibes-lightbox-link-desc{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.vibes-lightbox-link-open{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border:1px solid var(--accent);color:var(--accent);text-decoration:none;font-family:var(--font-title);font-size:11px;text-transform:uppercase;letter-spacing:2px;transition:background .2s,color .2s}.vibes-lightbox-link-open:hover{background:var(--accent);color:#000}.vibes-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.6);border:1px solid var(--border);color:var(--text-secondary);font-size:24px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,color .2s;z-index:10;font-family:var(--font-body);line-height:1}.vibes-lightbox-nav:hover{border-color:var(--text-dim);color:var(--text-primary)}.vibes-lightbox-prev{left:20px}.vibes-lightbox-next{right:20px}.vibes-lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-family:var(--font-mono,"Space Mono",monospace);font-size:12px;color:var(--text-dim);letter-spacing:1px}.comms-vibes{flex:1;overflow-y:auto;padding:16px 20px}.comms-vibes .vibes-header{display:none}.comms-vibes .vibes-grid{-moz-columns:3;column-count:3}.comms-vibes .vibes-back{display:none}@media (max-width:1200px){.vibes-grid{-moz-columns:3;column-count:3}}@media (max-width:1024px){.comms-vibes .vibes-grid,.vibes-grid{-moz-columns:2;column-count:2}}@media (max-width:768px){.vibes-page{padding:40px 16px}.vibes-header{flex-direction:column;align-items:flex-start}.vibes-title{font-size:24px;letter-spacing:3px}.vibes-grid{-moz-columns:2;column-count:2;-moz-column-gap:8px;column-gap:8px}.vibes-tile{margin-bottom:8px}.comms-vibes .vibes-grid{-moz-columns:1;column-count:1}.vibes-lightbox-content,.vibes-lightbox-image{max-width:95vw;max-height:90vh}.vibes-lightbox-video{max-width:95vw}.vibes-lightbox-embed{width:95vw}.vibes-lightbox-nav{width:36px;height:36px;font-size:20px}.vibes-lightbox-prev{left:8px}.vibes-lightbox-next{right:8px}.vibes-lightbox-close{top:12px;right:12px}}@media (max-width:480px){.vibes-grid{-moz-columns:1;column-count:1}}.portfolio-page{min-height:100vh;padding:60px 40px;background:var(--bg-dark)}.portfolio-container{max-width:900px;margin:0 auto}.portfolio-back{display:inline-block;margin-bottom:40px;opacity:.6;transition:opacity .2s}.portfolio-back:hover{opacity:1}.portfolio-header{margin-bottom:50px;padding-bottom:30px;border-bottom:1px solid var(--border)}.portfolio-title{font-family:var(--font-title);font-size:32px;font-weight:400;text-transform:uppercase;letter-spacing:3px;color:var(--text-primary);margin-bottom:8px}.portfolio-author{font-size:14px;color:var(--text-dim);margin-bottom:16px}.portfolio-description{font-size:15px;color:var(--text-secondary);line-height:1.7;max-width:600px}.portfolio-empty{padding:60px 0;text-align:center}.portfolio-empty p{font-size:14px;color:var(--text-dim)}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.portfolio-item{background:var(--bg-card);border:1px solid var(--border);overflow:hidden;transition:border-color .2s}.portfolio-item:hover{border-color:var(--text-dim)}.portfolio-item-media{width:100%;aspect-ratio:16/10;overflow:hidden;background:#0a0a0a}.portfolio-item-media img,.portfolio-item-media video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.portfolio-item-info{padding:20px}.portfolio-item-title{font-family:var(--font-title);font-size:14px;font-weight:400;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-primary);margin-bottom:8px}.portfolio-item-description{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:8px}.portfolio-item-ref{font-family:var(--font-mono,"Space Mono",monospace);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.portfolio-item-gallery{display:flex;gap:2px;padding:0 2px 2px}.portfolio-gallery-thumb{flex:1;aspect-ratio:1;overflow:hidden;background:#0a0a0a}.portfolio-gallery-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.portfolio-footer{margin-top:60px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.portfolio-footer p{font-size:12px;color:var(--text-dim)}.portfolio-ludos-link{color:var(--accent);text-decoration:none}.portfolio-ludos-link:hover{text-decoration:underline}@media (max-width:768px){.portfolio-page{padding:40px 20px}.portfolio-title{font-size:24px;letter-spacing:2px}.portfolio-grid{grid-template-columns:1fr}}@keyframes mediaLoaderPulse{0%,to{opacity:.15;transform:translate(-50%,-50%) scale(.92)}50%{opacity:.35;transform:translate(-50%,-50%) scale(1)}}.video-player{position:relative}.video-player-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000;z-index:2;transition:opacity .4s ease}.video-player-loader.video-player-loaded{opacity:0;pointer-events:none}.video-player-loader-icon{width:36px;height:auto;opacity:.9;animation:loadingPulse 2s ease-in-out infinite}.video-player-loader-bar{width:80px;height:2px;background:rgba(255,21,22,.15);border-radius:1px;overflow:hidden}.video-player-loader-bar-fill{height:100%;width:40%;background:#ff1516;border-radius:1px;animation:loadingBarSlide 1.2s ease-in-out infinite;box-shadow:0 0 8px rgba(255,21,22,.5)}