/* Full-size, on-demand Favorite Videos gallery. No media resizing or transcoding. */
:root{color-scheme:dark;--bg:#090a0b;--panel:#111315;--line:#2b2d31;--text:#f3f3f1;--muted:#a9adb1;--gold:#f4de78;--gutter:24px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:24px;scroll-padding-bottom:52px}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:4px}
button,input,summary{font:inherit}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.skip-link{position:absolute;top:-100px;left:16px;z-index:20;background:var(--gold);color:#111;padding:12px}
.skip-link:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{max-width:1888px;margin:auto;min-height:64px;padding:16px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{flex-shrink:0;font-weight:800;letter-spacing:.10em;font-size:19px;text-decoration:none}
.brand span{color:var(--gold)}
.desktop-nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.desktop-nav a{font-size:12px;color:var(--muted);text-decoration:none;white-space:nowrap}
.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--gold)}
.site-menu{display:none;position:relative}
.site-menu summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:5px;padding:8px 15px;color:var(--gold)}
.site-menu summary::-webkit-details-marker{display:none}
.site-menu nav{position:absolute;right:0;top:48px;background:var(--panel);border:1px solid var(--line);border-radius:8px;width:min(310px,calc(100vw - 32px));padding:8px;z-index:20;box-shadow:0 12px 40px #0009}
.site-menu nav a{display:block;padding:11px 14px;text-decoration:none;font-size:14px}
.site-menu nav a:hover,.site-menu nav a[aria-current]{color:var(--gold);background:#ffffff08}
main{width:calc(100% - 2 * var(--gutter));max-width:1840px;margin:auto}
.gallery-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:26px 0 22px}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--gold);margin:0 0 5px}
h1{font-size:clamp(28px,3vw,40px);line-height:1.12;letter-spacing:-.035em;margin:0;font-weight:700}
.title-dot{color:var(--gold)}
.intro-note{margin:8px 0 0;font-size:14px;color:var(--muted)}
.play-note{margin:0 0 2px;font-size:12px;line-height:1.7;color:var(--muted);text-align:right}
.play-note>span{color:var(--gold);font-size:10px}
.browse-panel{display:grid;gap:12px;padding:14px 0 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.browse-top{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.search-box{display:flex;align-items:center;gap:10px;min-width:270px;flex:1;max-width:560px;background:var(--panel);border:1px solid #35383d;border-radius:7px;padding:0 13px;height:44px;color:var(--muted)}
.search-box:focus-within{border-color:var(--gold)}
.search-box svg{flex-shrink:0}
.search-box input{width:100%;min-width:0;padding:10px 0;border:0;background:transparent;color:var(--text);outline:0;font-size:14px}
.search-box input::-webkit-search-cancel-button{display:none}
.search-box input::placeholder{color:#989ca1}
#clear-search{border:0;background:transparent;color:var(--text);font-size:24px;line-height:1;padding:3px}
.browse-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.filters-toggle-btn{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.filters-toggle-btn:hover{border-color:#767a80}
.filters-toggle-btn.has-active-filters{border-color:var(--gold);color:var(--gold)}
.filter-badge{background:var(--gold);color:#15130e;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;line-height:1.2}
.reset-filters{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);white-space:nowrap}
.reset-filters:hover{border-color:#767a80;color:#fff}
.filter-row{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start;gap:10px}
.filter-label{margin:0;padding-top:12px;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.filters{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.filters button{padding:9px 12px;border:1px solid var(--line);background:transparent;border-radius:6px;color:#c8cbcf;white-space:nowrap;font-size:12px;min-height:42px}
.filters button[aria-pressed=true]{background:var(--gold);color:#171612;border-color:var(--gold);font-weight:700}
.filters button:hover:not([aria-pressed=true]){border-color:#767a80;color:#fff}
.filters button span{margin-left:5px;opacity:.72;font-variant-numeric:tabular-nums}
.preset-filters button{border-radius:20px;font-size:11px;padding:8px 13px}
.preset-filters button.is-preset-active{background:#f4de7826;border-color:var(--gold);color:var(--gold);font-weight:700}
.more-filters-section{display:grid;gap:12px;padding:10px 0 4px;border-top:1px dashed #2a2c31;margin-top:2px}
.view-sort-bar{display:flex;align-items:center;gap:18px 24px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.view-mode-group,.shelf-by-group,.sort-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bar-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-right:2px}
.gallery-status{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px;font-size:12px;color:var(--muted)}
.gallery-status p{margin:0}
.gallery-status>span{color:#95999f}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(560px,1fr));column-gap:24px;row-gap:25px;align-items:start}
.shelves-view{display:grid;gap:36px;padding:12px 0 40px}
.shelf-section{border-bottom:1px solid var(--line);padding-bottom:22px;min-width:0}
.shelf-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.shelf-title-wrap{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.shelf-title{font-size:clamp(18px,2.2vw,24px);margin:0;font-weight:700;color:var(--text);letter-spacing:-.02em}
.shelf-count{font-size:12px;color:var(--muted)}
.play-shelf-btn{padding:7px 14px;min-height:36px;border:1px solid var(--gold);border-radius:6px;background:transparent;color:var(--gold);font-size:12px;font-weight:600}
.play-shelf-btn:hover{background:var(--gold);color:#171612}
.shelf-rail{display:flex;gap:20px;overflow-x:auto;padding:8px 4px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-padding:0 20px}
.shelf-rail .video-card{flex:0 0 min(540px,82vw);max-width:540px;border-bottom:0;scroll-snap-align:start;padding-bottom:0}
.shelf-rail::-webkit-scrollbar{height:8px}
.shelf-rail::-webkit-scrollbar-track{background:#111315;border-radius:4px}
.shelf-rail::-webkit-scrollbar-thumb{background:#35383d;border-radius:4px}
.shelf-rail::-webkit-scrollbar-thumb:hover{background:var(--gold)}
.video-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:9px;scroll-margin-top:24px}
.video-card:target .card-heading{color:var(--gold)}
.video-card:target .video-frame{outline:2px solid var(--gold);outline-offset:3px}
.video-card:focus{outline:none}
.video-card:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.card-heading{display:flex;align-items:center;gap:13px;min-height:68px;padding:7px 0 11px}
.card-heading>div{min-width:0}
.item-number{font-size:11px;color:#848990;font-weight:700;font-variant-numeric:tabular-nums;width:23px;flex-shrink:0}
.card-heading h2{font-size:16px;font-weight:600;line-height:1.3;margin:0;letter-spacing:-.012em;overflow-wrap:anywhere}
.card-heading p{margin:4px 0 0;color:#8f949a;font-size:10px;line-height:1.25;letter-spacing:.02em;overflow-wrap:anywhere}
.card-heading p span{color:#555b63;margin:0 5px}
.new-badge{display:inline-block;background:var(--gold);color:#15130e;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;margin-left:8px;vertical-align:middle;letter-spacing:.05em;text-transform:uppercase}
.video-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border:1px solid #2a2c31;border-radius:7px;overflow:hidden}
.video-frame video,.play-trigger{display:block;width:100%;height:100%;position:absolute;top:0;left:0;right:0;bottom:0;inset:0}
.video-frame video{object-fit:contain;background:#000;outline:0}
@supports not (aspect-ratio:16/9){.video-frame{height:0;padding-bottom:56.25%}}
.play-trigger{text-decoration:none;color:#fff;overflow:hidden;scroll-margin-bottom:44px}
.play-trigger img{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.play-trigger::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;inset:0;background:linear-gradient(transparent 70%,#000b);pointer-events:none}
.play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;align-items:center;width:70px;height:70px;border:2px solid #fff;border-radius:50%;background:#0008;color:#fff;z-index:1;box-shadow:0 4px 20px #0004}
.play-icon svg{margin-left:4px}
.play-trigger:hover .play-icon,.play-trigger:focus-visible .play-icon{background:var(--gold);border-color:var(--gold);color:#15130e}
.play-label{position:absolute;left:16px;bottom:13px;font-size:12px;z-index:1;font-weight:600}
.duration{position:absolute;right:12px;bottom:10px;padding:3px 7px;border-radius:3px;background:#000b;font-size:12px;z-index:1;font-variant-numeric:tabular-nums}
.card-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:10px;color:#9da3aa;padding-top:10px;letter-spacing:.02em}
.card-tags{min-width:0;overflow-wrap:anywhere}
.meta-separator{margin:0 6px;color:#555b63}
.permalink{text-decoration:none;color:#bdc1c6;font-size:11px;min-height:26px;display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
.permalink:hover{color:var(--gold)}
.video-error{font-size:13px;color:var(--gold);margin:5px 0 7px}
.gallery-actions{justify-content:center;padding:20px 0 34px}
.gallery-actions button{background:var(--panel)}
.gallery-actions #show-all{color:var(--gold)}
.empty-state{text-align:center;padding:64px 16px 96px;color:var(--muted)}
.empty-state h2{color:var(--text);font-size:22px}
.empty-state button{padding:12px 20px;background:var(--gold);color:#161512;border:0;border-radius:6px}
.site-footer{max-width:1840px;width:calc(100% - 2 * var(--gutter));margin:0 auto;padding:22px 0 30px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.site-footer a{color:var(--gold);text-decoration:none}
.site-footer span span{margin:0 10px;color:#555}
.playlist-controls{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line);scroll-margin-top:16px}
.playlist-actions{display:flex;gap:8px;flex-wrap:wrap}
.playlist-actions button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font-size:13px;white-space:nowrap}
.playlist-actions #play-all{background:var(--gold);color:#171612;border-color:var(--gold);font-weight:700}
.playlist-actions #play-shuffle{border-color:var(--gold);color:var(--gold);font-weight:600}
.playlist-actions #play-shuffle:hover:not(:disabled){background:var(--gold);color:#171612}
.playlist-actions button:hover:not(:disabled){border-color:var(--gold)}
.playlist-actions button:disabled{opacity:.45;cursor:not-allowed}
#playlist-status{flex:1 1 280px;min-width:0;margin:0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.playlist-player{width:100%;max-width:850px;margin:20px auto 28px}
.playlist-player header{padding-bottom:12px}
.playlist-player h2{margin:0;font-size:clamp(16px,2vw,21px);line-height:1.35;overflow-wrap:anywhere}
.video-card.is-queue-current .card-heading{color:var(--gold)}
.video-card.is-queue-current .video-frame{outline:2px solid var(--gold);outline-offset:3px}
@media(min-width:1776px){.video-grid{grid-template-columns:repeat(3,minmax(560px,1fr))}}
@media(max-width:1191px){.video-grid{grid-template-columns:minmax(0,1fr);max-width:850px;margin-inline:auto}.desktop-nav{gap:13px}.desktop-nav a{font-size:11px}.search-box{max-width:none}.filter-row{grid-template-columns:74px minmax(0,1fr)}}
@media(max-width:959px){.desktop-nav{display:none}.site-menu{display:block}.play-note{display:none}.browse-top{flex-wrap:wrap}.search-box{flex-basis:100%}.browse-actions{width:100%;justify-content:space-between}.reset-filters{margin-left:auto}.filter-row{grid-template-columns:1fr;gap:5px}.filter-label{padding-top:2px}.gallery-status>span{display:none}}
@media(max-width:599px){:root{--gutter:14px}.site-header{min-height:58px;padding-block:12px}.brand{font-size:17px}.gallery-intro{padding-block:22px 18px}.intro-note{font-size:12px;max-width:38ch}.browse-panel{gap:10px}.filters{gap:5px;width:100%}.filters button{font-size:11px;padding:8px 9px;min-height:40px}.preset-filters button{padding:7px 11px;font-size:10px}.filters-toggle-btn,.reset-filters{font-size:12px;padding:9px 11px}.gallery-status{margin-top:15px}.video-grid{gap:19px}.card-heading{min-height:64px;gap:9px}.card-heading h2{font-size:14px}.card-heading p{font-size:9px}.item-number{width:20px;font-size:10px}.play-icon{width:58px;height:58px}.play-icon svg{width:24px;height:24px}.card-meta{font-size:9px}.shelf-rail .video-card{flex:0 0 88vw}.playlist-actions{gap:6px}.playlist-actions button{padding:10px 12px}.playlist-controls{gap:10px}.playlist-player{margin-block:16px 22px}.gallery-actions{padding-bottom:26px}.site-footer{flex-wrap:wrap;font-size:11px}.site-footer>span{order:3;width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
@media print{.site-header,.browse-panel,.playlist-controls,.playlist-player,.gallery-actions,.play-icon,.site-footer{display:none}.video-grid,.shelves-view{display:block}.video-card{break-inside:avoid}}
