/*
Theme Name: Video Islands
Author: f2x and OpenAI Codex
Description: A flexible video discovery theme for sites with channel and topic categories.
Version: 0.2.47
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: video-islands
*/
:root{--page:#8c9cb5;--accent:#9c7363;--panel:#f9f5ef;--ink:#29313c;--link:#65483e;--soft:#58616b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}a{color:var(--link)}img{max-width:100%;height:auto}.site-wrap{max-width:1320px;margin:auto;padding:7px 22px 22px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:7px}.site-header .custom-logo{width:auto;max-width:145px;max-height:70px}.site-title{font-size:28px;font-weight:700;text-decoration:none}.header-right{display:flex;align-items:center;gap:20px}.site-menu{display:flex;gap:18px;list-style:none;margin:0;padding:0}.site-menu a{text-decoration:none;font-size:14px}.site-search{display:flex}.site-search input{width:155px;min-width:0;padding:8px;border:1px solid #d4d0cb;border-radius:8px 0 0 8px;background:var(--panel)}.site-search button{border:0;border-radius:0 8px 8px 0;background:var(--accent);color:#fffaf4;padding:0 12px;cursor:pointer}.island{background:var(--panel);border-radius:19px;box-shadow:0 10px 24px #29313c36;padding:19px}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.watch-main h1{font-size:clamp(24px,3vw,34px);line-height:1.18;margin:0}.post-meta{font-size:13px;color:var(--soft);margin:10px 0 18px}.source-credit{font-size:14px;margin-bottom:14px}.source-credit p{margin:0}.video-shell{aspect-ratio:16/9;position:relative;background:#293b56;border-radius:13px;overflow:hidden}.video-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-play{width:100%;height:100%;display:grid;place-items:center;position:relative;background:#293b56 center/cover no-repeat;border:0;cursor:pointer;color:#fff}.video-play::before{content:'';position:absolute;inset:0;background:linear-gradient(#0001,#0004)}.video-play span{position:relative;background:var(--accent);border-radius:50%;width:66px;height:66px;display:grid;place-items:center;font-size:27px}.youtube-link{display:block;text-align:right;margin:8px 2px 15px;font-size:13px;text-decoration:none}.youtube-link:hover,.youtube-link:focus-visible{text-decoration:underline}.description{border-top:1px solid #d2c5c1;padding-top:14px;font-size:14px;line-height:1.55}.description p:first-child{margin-top:0}.description-body.is-collapsed{max-height:4.7em;overflow:hidden;position:relative}.description-body.is-collapsed::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2.3em;background:linear-gradient(transparent,var(--panel));pointer-events:none}.description-toggle{border:0;background:none;color:var(--link);padding:5px 0;cursor:pointer}.description a::after{content:' ↗';font-size:.8em}.watch-sidebar{position:relative;min-height:0;overflow:hidden;background:var(--accent);color:#fffaf4}.watch-sidebar h2,.discover h2{font-size:20px;margin:0 0 14px}.watch-sidebar .sidebar-list{position:absolute;top:60px;left:19px;right:19px;bottom:10px;overflow:hidden}.watch-sidebar.has-overflow .sidebar-list{mask-image:linear-gradient(#000 0%,#000 79%,transparent 100%)}.video-card{display:flex;gap:10px;margin-bottom:15px;text-decoration:none;color:inherit}.video-card img{flex:none;width:112px;aspect-ratio:16/9;object-fit:cover;border-radius:9px;background:#52647a}.video-card strong{display:block;font-size:13px;line-height:1.3}.video-card small{display:block;color:#f2e7df;font-size:11px;margin-top:4px}.discover{margin-top:18px}.discover-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.discover .video-card{display:block;color:var(--ink);margin:0}.discover .video-card img{width:100%;margin-bottom:6px}.discover .video-card small{color:var(--soft)}.mix-button{display:block;margin:10px 0 -8px auto;border:0;background:transparent;color:var(--link);font-size:20px;cursor:pointer}.site-footer{padding:20px 4px;color:var(--ink);font-size:12px}.to-top{position:fixed;right:18px;bottom:18px;border:0;border-radius:50%;background:var(--accent);color:#fffaf4;width:40px;height:40px;font-size:22px;cursor:pointer;box-shadow:0 5px 15px #29313c55}.archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.archive-grid .video-card{display:block;color:var(--ink)}.archive-grid .video-card img{width:100%}.pagination{margin-top:20px}.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);overflow:hidden;width:1px;height:1px}.screen-reader-text:focus{position:static;clip:auto;width:auto;height:auto}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:800px){.watch-layout{grid-template-columns:1fr}.watch-sidebar{height:350px}.watch-sidebar .sidebar-list{top:53px}.site-header{flex-wrap:wrap}.header-right{width:100%;justify-content:space-between}.archive-grid,.discover-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.site-wrap{padding:14px}.island{padding:14px}.header-right{flex-wrap:wrap}.site-menu{gap:10px;flex-wrap:wrap}.site-search{width:100%}.site-search input{flex:1}.archive-grid,.discover-grid{gap:12px}}

/* Front page: a changing arrangement of the newest posts. */
.home-intro{margin-bottom:20px}.home-intro h1{margin:0 0 5px;font-size:clamp(27px,3vw,38px)}.home-intro p{margin:0;color:var(--soft)}
.home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:16px}
.home-tile{min-width:0}.home-tile .video-card{display:block;margin:0;color:var(--ink);text-decoration:none}.home-tile .video-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:11px;background:#52647a}.home-tile .video-card strong{font-size:14px;line-height:1.36;margin-top:7px}.home-tile .category-focus{display:inline-block;margin-top:7px;font-size:12px;text-decoration:none;color:var(--link)}.home-tile .category-focus:hover{text-decoration:underline}
.home-tile.is-featured{grid-column:span 2}.home-tile.is-featured .video-card strong{font-size:18px}.home-tile.is-featured .video-card img{aspect-ratio:16/9}
@media(max-width:800px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.home-grid{gap:13px}.home-tile.is-featured .video-card strong{font-size:15px}}

/* Compact gallery tracks let shorter cards fill gaps beside wider ones. */
.home-grid{grid-auto-flow:dense;grid-auto-rows:8px;row-gap:14px;align-items:stretch}
.home-tile{background:#fffcf7;border-radius:13px;padding:9px;box-shadow:0 4px 11px #29313c19;grid-row-end:span 24}
.home-tile .video-card strong{margin-top:8px}.home-tile .category-focus{margin-top:6px}
.home-tile.is-featured{grid-column:span 2}
@media(max-width:520px){.home-grid{grid-auto-rows:6px;row-gap:10px}.home-tile{padding:7px}.home-tile .video-card strong{font-size:12px}.home-tile.is-featured .video-card strong{font-size:16px}}

/* Excerpts come from the description following the stored video iframe. */
.video-card .card-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;margin:7px 0 0;color:var(--soft);font-size:12px;line-height:1.45;font-weight:400}
.home-tile.is-featured .card-excerpt{-webkit-line-clamp:4;line-clamp:4;font-size:13px}
.archive-grid{align-items:start}.archive-grid .video-card .card-excerpt{font-size:12px}

.category-intro{margin-bottom:20px}.category-intro h1{font-size:clamp(21px,2.4vw,27px);line-height:1.25;margin:0 0 10px}.category-description{font-size:14px;line-height:1.55;max-width:75ch;color:var(--ink)}.category-description p:first-child{margin-top:0}.category-description p:last-child{margin-bottom:0}.category-description a{overflow-wrap:anywhere}

.watch-main h1{font-size:20px;line-height:1.35}

.to-top[hidden]{display:none}.to-top{display:grid;place-items:center}.to-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:520px){.site-wrap{padding:5px 14px 14px}}

.category-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 12px;font-size:13px;color:var(--soft)}.category-breadcrumbs a{text-decoration:none}.category-breadcrumbs a:hover{text-decoration:underline}
.post-category-path{display:inline}.post-category-path a{text-decoration:none}.post-category-path a:hover{text-decoration:underline}
.category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;align-items:start;grid-auto-flow:row}
.category-tile{min-width:0;background:#fffcf7;border-radius:13px;padding:9px;box-shadow:0 4px 11px #29313c19}
.category-tile .video-card{display:block;margin:0;text-decoration:none}.category-tile .video-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:9px}.category-tile .video-card strong{display:block;margin-top:7px}
.category-tile.is-featured{grid-column:span 2}.category-tile.is-featured .video-card strong{font-size:18px}.category-tile.is-featured .card-excerpt{-webkit-line-clamp:4;line-clamp:4;font-size:13px}
@media(max-width:800px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-tile.is-featured{grid-column:span 1}}
@media(max-width:520px){.category-grid{gap:12px}.category-tile{padding:7px}.category-tile .video-card strong{font-size:12px}.category-tile.is-featured .video-card strong{font-size:16px}}

/* Short tracks let later chronological cards sit beneath shorter neighbors. */
.category-grid{grid-auto-rows:8px;row-gap:14px;grid-auto-flow:row dense;align-items:stretch}
.category-tile{grid-row-end:span 24}
@media(max-width:520px){.category-grid{grid-auto-rows:6px;row-gap:10px}}

.home-intro h1{font-size:20px;line-height:1.35}

.home-intro h1{margin:0}

.discover-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.discover-heading h2{margin:0}.discover-heading nav{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}.discover-heading nav a{text-decoration:none}.discover-heading nav a:hover{text-decoration:underline}

.directory-intro{margin-bottom:18px}.directory-intro h1{font-size:24px;margin:0 0 5px}.directory-intro p{margin:0 0 12px;color:var(--soft);font-size:14px}.directory-intro input{width:min(100%,360px);padding:10px 12px;border:1px solid #c7bbb2;border-radius:9px;background:#fff;color:var(--ink)}.directory-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.directory-jump a{padding:5px 11px;border-radius:999px;background:#e6d9d0;text-decoration:none;font-size:13px}.directory-root{margin-top:18px;scroll-margin-top:16px}.directory-root h2{font-size:22px;margin:0 0 9px}.directory-root h2 a,.directory-group h3 a{text-decoration:none}.directory-root h2 a:hover,.directory-group h3 a:hover{text-decoration:underline}.directory-description{margin:0 0 15px;max-width:78ch;color:var(--soft);font-size:14px}.directory-groups{columns:3 240px;column-gap:20px}.directory-group{break-inside:avoid;background:#fffcf7;border-radius:12px;padding:12px;margin:0 0 15px;box-shadow:0 3px 10px #29313c16}.directory-group h3,.directory-direct h3{font-size:16px;margin:0 0 8px}.directory-list{list-style:none;padding:0;margin:0}.directory-list li{margin:5px 0;font-size:13px}.directory-list .directory-list{padding-left:14px;border-left:2px solid #dccdc6}.directory-direct{margin-top:15px}.directory-direct ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 14px;list-style:none;padding:0;margin:0}.directory-direct li{font-size:13px}.directory-root[hidden],.directory-group[hidden],.directory-direct[hidden],.directory-direct li[hidden]{display:none}@media(max-width:800px){.directory-direct ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.directory-direct ul{grid-template-columns:1fr}}

/* Category directory: readable links without underlines. */
.directory-root a,.directory-group a,.directory-direct a,.directory-jump a{text-decoration:none}
.directory-root h2 a:hover,.directory-group h3 a:hover,.directory-root a:hover,.directory-group a:hover,.directory-direct a:hover,.directory-jump a:hover{text-decoration:none;color:#694538}
.directory-list li,.directory-direct li{font-size:15px;line-height:1.5}
.directory-jump a{font-size:14px}

/* Larger navigation targets on phones. */
@media(max-width:520px){.site-menu{gap:4px 8px}.site-menu a{display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;font-size:18px;line-height:1.25}}
/* Visitor's clock and optional weather sit in the unused heading space. */
.home-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.home-local{display:flex;align-items:center;justify-content:flex-end;gap:8px 12px;flex-wrap:wrap;color:var(--soft);font-size:13px;text-align:right}
.home-local-time{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px;font-weight:700;color:var(--ink)}
.home-local-weather{color:var(--ink);white-space:nowrap}
.home-weather-toggle,.home-weather-form button{border:1px solid #c8b7a9;border-radius:8px;background:#fffaf4;color:var(--ink);padding:5px 9px;cursor:pointer;font:inherit}
.home-weather-form{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;justify-content:flex-end}
.home-weather-form[hidden],.home-local-weather[hidden],.home-weather-credit[hidden],.home-weather-remove[hidden]{display:none}
.home-weather-form label{font-size:13px}.home-weather-form input{width:185px;max-width:100%;padding:6px;border:1px solid #c8b7a9;border-radius:8px;font:inherit}
.home-weather-actions{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.home-weather-credit{font-size:11px}.home-weather-credit a{text-decoration:none}
@media(max-width:520px){.home-intro{gap:5px}.home-local{width:100%;justify-content:flex-start;text-align:left}.home-weather-form{justify-content:flex-start}}

/* Independent destinations for the video and its channel category. */
.video-card{display:block}
.video-post-link{display:flex;gap:10px;text-decoration:none;color:inherit}
.video-post-link>span{min-width:0}
.video-card .category-focus{display:inline-block;margin-top:6px;font-size:12px;line-height:1.4;color:var(--link);text-decoration:none}
.video-card .category-focus:hover,.video-card .category-focus:focus-visible{text-decoration:underline}
.watch-sidebar .video-card .category-focus{margin-left:122px;color:#fffaf4;font-size:11px}
.home-tile .video-post-link,.category-tile .video-post-link,.discover .video-post-link,.archive-grid .video-post-link{display:block}
.ordinary-page h1{margin:0 0 18px;font-size:clamp(24px,3vw,34px);line-height:1.2}
.ordinary-content{overflow-wrap:anywhere}
.ordinary-content>:first-child{margin-top:0}
.ordinary-content img{max-width:100%;height:auto}

/* Classic Editor image alignment and text wrapping. */
.alignright{float:right;margin:0 0 1em 1.5em}
.alignleft{float:left;margin:0 1.5em 1em 0}
.aligncenter{display:block;float:none;margin:1em auto}
.alignnone{float:none;margin:1em 0}
.wp-caption{max-width:100%}
.wp-caption img{display:block}
.wp-caption-text{margin:.5em 0 0;font-size:12px;color:var(--soft);text-align:center}
.ordinary-content::after{content:"";display:block;clear:both}
@media(max-width:600px){
  .ordinary-content .alignright,.ordinary-content .alignleft,.description-body .alignright,.description-body .alignleft{float:none;display:block;margin:1em auto;max-width:100%}
}

/* Primary navigation: desktop dropdowns and mobile disclosure menu. */
.site-navigation{position:relative;z-index:100;min-width:0}
.site-menu{flex-wrap:wrap;gap:4px 12px;align-items:center}
.site-menu li{position:relative;list-style:none;margin:0;padding:0}
.site-menu a{display:block;padding:10px 8px;line-height:1.35;overflow-wrap:anywhere}
.site-menu .has-submenu>a{padding-right:44px}
.site-menu .sub-menu{list-style:none;margin:0;padding:6px;background:var(--panel);border:1px solid #29313c33;border-radius:10px;box-shadow:0 8px 20px #29313c35}
.site-menu>li>.sub-menu{position:absolute;top:100%;left:0;width:260px;max-width:calc(100vw - 28px);max-height:65vh;overflow:auto}
.site-menu>li.submenu-align-right>.sub-menu{left:auto;right:0}
.site-menu .sub-menu .sub-menu{position:static;margin:0 0 4px 12px;border:0;border-left:2px solid var(--accent);border-radius:0;box-shadow:none;padding:0 0 0 4px}
.site-navigation.is-enhanced .sub-menu{display:none}
.site-navigation.is-enhanced li.is-open>.sub-menu{display:block}
.submenu-toggle{position:absolute;right:0;top:2px;width:40px;height:36px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--link);cursor:pointer;font:inherit}
.submenu-toggle:hover,.site-menu a:hover{background:#29313c12;border-radius:7px}
.submenu-toggle[aria-expanded="true"] span{transform:rotate(180deg)}
.menu-toggle{display:none;border:1px solid #29313c33;border-radius:8px;padding:8px 12px;background:var(--panel);color:var(--ink);font:inherit;min-height:44px;cursor:pointer;align-items:center;gap:8px}
@media(max-width:800px){
 .header-right{flex-wrap:wrap;gap:10px;min-width:0}
 .site-navigation{flex:1}
 .site-navigation.is-enhanced .menu-toggle{display:inline-flex}
 .site-navigation.is-enhanced .menu-panel{display:none}
 .site-navigation.is-enhanced.is-menu-open .menu-panel{display:block}
 .site-navigation.is-enhanced .menu-panel{position:absolute;left:0;top:calc(100% + 6px);width:340px;max-width:calc(100vw - 28px);max-height:65vh;overflow:auto;background:var(--panel);padding:8px;border:1px solid #29313c33;border-radius:12px;box-shadow:0 8px 20px #29313c35}
 .site-menu{display:block}
 .site-menu a{display:block;font-size:16px;min-height:44px;padding:11px 10px}
 .site-menu>li>.sub-menu{position:static;width:auto;max-width:none;max-height:none;overflow:visible;margin-left:12px;border:0;border-left:2px solid var(--accent);border-radius:0;box-shadow:none;padding:0 0 0 4px}
 .submenu-toggle{height:44px;top:0}
}
@media(min-width:801px){
 .site-navigation:not(.is-enhanced) .sub-menu{display:none}
 .site-navigation:not(.is-enhanced) li:hover>.sub-menu,
 .site-navigation:not(.is-enhanced) li:focus-within>.sub-menu{display:block}
}

.menu-toggle[hidden]{display:none}

/* Keep the hamburger beside the brand on narrow screens only. */
@media(max-width:800px){
 .site-header.has-mobile-navigation{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px 14px}
 .has-mobile-navigation .header-right{display:contents}
 .has-mobile-navigation .site-brand{grid-column:2;grid-row:1;min-width:0}
 .has-mobile-navigation .site-navigation{grid-column:1;grid-row:1}
 .has-mobile-navigation .site-search{grid-column:1 / -1;grid-row:2;width:100%}
 .has-mobile-navigation .site-search input{flex:1;width:auto}
}

[data-below] .mix-button[hidden]{display:none}
[data-below] .mix-button:disabled{opacity:.5;cursor:wait}

.card-date{display:block;font-size:11px;line-height:1.4;margin-top:5px;color:var(--soft)}
.watch-sidebar .card-date{color:#f2e7df}

/* Dates lead the text on the main blog index only. */
.home-tile .video-post-link>span{display:flex;flex-direction:column}
.home-tile .card-date{order:-1;margin:0 0 5px}

/* The Below uses the same quiet date-first text hierarchy. */
[data-below] .video-post-link>span{display:flex;flex-direction:column}
[data-below] .card-date{order:-1;margin:0 0 5px}

/* Match The Above: remove inline-image baseline space and bottom margin. */
[data-below] .video-post-link>img{display:block;margin-bottom:0}

/* Dates sit immediately beneath the thumbnail, aligned with its right edge. */
.home-tile .card-date,
.archive-grid .card-date,
[data-below] .card-date{margin:0 0 5px;text-align:right}
.archive-grid .video-post-link>img{display:block;margin-bottom:0}

/* Leaf-category counts are secondary to channel names. */
.directory-post-count{font-weight:400;color:var(--soft);white-space:nowrap}
