.ghyt-gallery,
.ghyt-gallery * { box-sizing: border-box; }
.ghyt-gallery {
  --ghyt-columns: 3;
  --ghyt-gold: #e7d47a;
  --ghyt-text: #f7f3fa;
  --ghyt-muted: rgba(255,255,255,.64);
  --ghyt-line: rgba(255,255,255,.15);
  --ghyt-modal-bg: #2b2b2b;
  width: 100%;
  color: var(--ghyt-text);
  font-family: inherit;
}
.ghyt-toolbar { display:flex; justify-content:flex-end; margin: 0 0 28px; }
.ghyt-search-wrap { position:relative; width:min(315px,100%); }
.ghyt-search {
  width:100%; height:38px; border:1px solid rgba(255,255,255,.22); border-radius:0;
  background:rgba(255,255,255,.03); color:#fff; padding:0 40px 0 13px; outline:none;
  font:inherit; font-size:14px;
}
.ghyt-search::placeholder { color:rgba(255,255,255,.42); }
.ghyt-search:focus { border-color:var(--ghyt-gold); box-shadow:0 0 0 1px var(--ghyt-gold); }
.ghyt-search-icon { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:rgba(255,255,255,.42); font-size:20px; line-height:1; pointer-events:none; }
.ghyt-grid { display:grid; grid-template-columns:repeat(var(--ghyt-columns), minmax(0,1fr)); gap:38px 18px; }
.ghyt-item { min-width:0; }
.ghyt-card {
  width:100%; display:block; margin:0; padding:0; border:0; background:transparent; color:inherit;
  text-align:left; cursor:pointer; font:inherit; appearance:none; -webkit-appearance:none;
}
.ghyt-thumb-wrap { position:relative; display:block; width:100%; aspect-ratio:16/9; overflow:hidden; background:#111; }
.ghyt-thumb { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease, filter .25s ease; }
.ghyt-card:hover .ghyt-thumb, .ghyt-card:focus-visible .ghyt-thumb { transform:scale(1.025); filter:brightness(.86); }
.ghyt-play {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:52px; height:38px; border-radius:9px;
  background:rgba(255,255,255,.64); display:grid; place-items:center; transition:background .2s ease, transform .2s ease;
}
.ghyt-play span { width:0; height:0; border-top:10px solid transparent; border-bottom:10px solid transparent; border-left:17px solid rgba(0,0,0,.82); margin-left:4px; }
.ghyt-card:hover .ghyt-play, .ghyt-card:focus-visible .ghyt-play { background:rgba(255,255,255,.88); transform:translate(-50%,-50%) scale(1.05); }
.ghyt-duration { position:absolute; right:5px; bottom:5px; background:rgba(0,0,0,.78); color:#fff; padding:3px 5px; font:700 11px/1.15 Arial,sans-serif; }
.ghyt-title { display:block; margin-top:12px; color:#f5f0f6; font-weight:700; font-size:14px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ghyt-date { display:block; margin-top:8px; color:var(--ghyt-muted); font-size:12px; line-height:1.25; }
.ghyt-excerpt { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin-top:10px; color:rgba(255,255,255,.72); font-size:12px; line-height:1.35; }
.ghyt-empty, .ghyt-error { padding:18px; border:1px solid var(--ghyt-line); color:var(--ghyt-text); background:rgba(0,0,0,.16); }

.ghyt-modal[hidden] { display:none !important; }
.ghyt-modal { position:fixed; inset:0; z-index:999999; display:flex; align-items:flex-start; justify-content:center; padding:6vh 18px 30px; overflow:auto; }
.ghyt-backdrop { position:fixed; inset:0; background:rgba(7,4,12,.84); backdrop-filter:blur(2px); }
.ghyt-dialog { position:relative; z-index:1; width:min(920px,94vw); background:var(--ghyt-modal-bg); box-shadow:0 24px 80px rgba(0,0,0,.55); }
.ghyt-close { position:absolute; right:-42px; top:-8px; z-index:3; width:38px; height:38px; border:0; background:transparent; color:#fff; font:300 36px/1 Arial,sans-serif; cursor:pointer; opacity:.85; }
.ghyt-close:hover { opacity:1; }
.ghyt-player-wrap { width:100%; aspect-ratio:16/9; background:#000; }
.ghyt-player-wrap iframe { display:block; width:100%; height:100%; border:0; }
.ghyt-modal-info { padding:24px 24px 28px; color:#fff; }
.ghyt-modal-title { margin:0; font:500 20px/1.35 inherit; color:#fff; }
.ghyt-modal-meta { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.7); font-size:12px; }
.ghyt-channel-row { display:flex; align-items:center; gap:12px; margin-top:18px; }
.ghyt-channel-avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; background:#444; }
.ghyt-channel-name { font-size:14px; color:#fff; }
.ghyt-modal-description { margin:16px 0 0 54px; color:rgba(255,255,255,.85); white-space:pre-line; font-size:13px; line-height:1.55; max-height:180px; overflow:auto; }
body.ghyt-modal-open { overflow:hidden; }

@media (max-width: 900px) {
  .ghyt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 16px; }
  .ghyt-close { right:4px; top:-44px; }
  .ghyt-modal { padding-top:58px; }
}
@media (max-width: 600px) {
  .ghyt-toolbar { margin-bottom:20px; }
  .ghyt-search-wrap { width:100%; }
  .ghyt-grid { grid-template-columns:1fr; gap:28px; }
  .ghyt-title { white-space:normal; font-size:15px; }
  .ghyt-modal { padding:52px 8px 14px; }
  .ghyt-dialog { width:100%; }
  .ghyt-modal-info { padding:18px 16px 22px; }
  .ghyt-modal-title { font-size:17px; }
  .ghyt-modal-description { margin-left:0; max-height:150px; }
}
@media (prefers-reduced-motion: reduce) {
  .ghyt-thumb, .ghyt-play { transition:none; }
}

/* Home page latest-three presentation */
.ghyt-latest .ghyt-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ghyt-latest .ghyt-title { margin-top:10px; }
.ghyt-latest .ghyt-date { margin-top:7px; }
.ghyt-latest .ghyt-excerpt { margin-top:9px; }
.ghyt-library-cta { display:flex; justify-content:center; margin-top:34px; }
.ghyt-library-button {
  display:inline-flex; align-items:center; justify-content:center; min-width:118px; min-height:42px;
  padding:9px 20px; border:3px solid #fff; border-radius:999px; background:rgba(135,105,170,.82);
  color:#fff !important; text-decoration:none !important; font:700 13px/1 Arial,sans-serif;
  box-shadow:0 0 0 1px rgba(255,255,255,.18) inset; transition:transform .18s ease, background .18s ease;
}
.ghyt-library-button:hover, .ghyt-library-button:focus-visible { background:rgba(161,126,198,.95); transform:translateY(-1px); }
@media (max-width: 900px) {
  .ghyt-latest .ghyt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 16px; }
  .ghyt-latest .ghyt-item:nth-child(3) { grid-column:1 / -1; width:min(50%, 420px); justify-self:center; }
}
@media (max-width: 600px) {
  .ghyt-latest .ghyt-grid { grid-template-columns:1fr; gap:28px; }
  .ghyt-latest .ghyt-item:nth-child(3) { grid-column:auto; width:100%; }
  .ghyt-library-cta { margin-top:28px; }
}
