/* =============================================================================
   WORK  |  Filter links and the video grid.
   HTML: index.html -> <!-- SECTION: WORK -->     JS: js/work.js
   Edit only this file when you want to change how work looks.
   ============================================================================= */

@keyframes ring{from{transform:scale(1);opacity:.8}to{transform:scale(1.7);opacity:0}}
.bar{display:flex;flex-wrap:wrap;gap:.3rem 1.3rem;justify-content:center;margin:0 auto 1.6rem}
.tag{font:inherit;font-size:.82rem;font-weight:500;cursor:pointer;padding:.3rem .1rem;border:0;border-bottom:1.5px solid transparent;border-radius:0;background:none;color:var(--muted);transition:color .25s,border-color .25s;position:relative;overflow:hidden}
.tag:hover,.tag:focus-visible{color:var(--ink);border-bottom-color:rgba(142,198,65,.55);outline:none}
.tag[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--green)}
.gallery{columns:2;column-gap:.6rem}
@media(min-width:560px){
  .gallery{columns:2;column-gap:1rem}
}
@media(min-width:900px){
  .gallery{columns:3}
}
@media(min-width:1100px){
  .gallery{columns:4}
}
.card{break-inside:avoid;margin:0 0 1rem;padding:.5rem;border-radius:24px;transition:transform .35s}
.card:hover{transform:translateY(-4px)}
.card:active{transform:scale(.98)}
.card.hide{display:none}
.player{position:relative;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:var(--ar,16/9)}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.poster{position:absolute;inset:0;width:100%;height:100%;border:0;cursor:pointer;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 25% 15%,var(--c1),transparent 62%),radial-gradient(circle at 85% 95%,var(--c2),transparent 58%),#0c0f08}

/* thumbnail image fills the card behind the play button (set in config.js, or YouTube's own) */
.poster .thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.poster .play{z-index:1}

.play{position:relative;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1.5px 1px rgba(255,255,255,.6),0 0 30px rgba(255,255,255,.25);transition:transform .25s}
.play::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);animation:ring 2.4s ease-out infinite}
.poster:hover .play,.poster:focus-visible .play{transform:scale(1.12)}
.play svg{width:22px;height:22px;margin-left:3px;fill:#fff}
.meta{display:flex;justify-content:space-between;gap:.5rem;padding:.65rem .5rem .25rem;font-size:.9rem}
.meta b{font-weight:600}
.meta span{color:var(--muted);font-size:.8rem}
.empty{display:none;text-align:center;padding:2rem;color:var(--muted)}
@media(pointer:coarse){
  .tag{padding:.7rem .2rem}
}
@media(max-width:559px){
  .card{margin-bottom:.6rem;padding:.35rem;border-radius:18px}
  .card.wide{column-span:all}               /* landscape videos use the full phone width */
  .card.wide,.card.qtile.alone{margin-top:.6rem}   /* the browser drops the gap above a full-width card, so it is added back here */
  .player{border-radius:13px}
  .meta{flex-direction:column;gap:0;padding:.5rem .3rem .2rem;font-size:.82rem}
  .play{width:44px;height:44px}
  .play svg{width:18px;height:18px}
}

/* THE QUOTE TILE ("Want videos like these? Get a quote"), the last card in the gallery */
.ctabox{aspect-ratio:4/5;border-radius:18px;padding:1.4rem 1.2rem;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.8rem;
  background:radial-gradient(circle at 85% 12%,rgba(142,198,65,.42),transparent 58%),radial-gradient(circle at 8% 100%,rgba(214,240,168,.7),transparent 55%),rgba(255,255,255,.4)}
[data-theme=dark] .ctabox{background:radial-gradient(circle at 85% 12%,rgba(142,198,65,.3),transparent 58%),radial-gradient(circle at 8% 100%,rgba(142,198,65,.14),transparent 55%),rgba(255,255,255,.04)}
.ctabox h3{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.08}
.ctabox h3 b{font-weight:700}
.ctabox h3 i{font-style:italic;font-weight:500;color:var(--green-d)}
.ctabox p{margin:0;color:var(--muted);font-size:.92rem}
.ctabox .btn{margin-top:.4rem}
@media(max-width:559px){
  .ctabox{padding:1rem .9rem;gap:.55rem;border-radius:13px}
  .ctabox h3{font-size:1.15rem}
  .ctabox p{font-size:.78rem}
  .ctabox .btn{padding:.6rem 1rem;font-size:.82rem}
  .card.qtile.alone{column-span:all}           /* if the tile would be alone on a row, it goes full width */
  .card.qtile.alone .ctabox{aspect-ratio:auto;padding:1.4rem 1.2rem;gap:.7rem}
  .card.qtile.alone .ctabox h3{font-size:1.5rem}
  .card.qtile.alone .ctabox p{font-size:.9rem}
}
