:root{
  --ag-bg:#fff;
  --ag-page:#f5f5f7;
  --ag-soft:#f7f7f8;
  --ag-text:#171719;
  --ag-muted:#6f6f76;
  --ag-line:rgba(20,20,24,.08);
  --ag-accent:#c8102e;
  --ag-accent-dark:#9f0f27;
  --ag-blue:#0071e3;
  --ag-radius:22px;
  --ag-shadow:rgba(0,0,0,.02) 0 0 0 1px,rgba(0,0,0,.05) 0 8px 26px,rgba(0,0,0,.08) 0 18px 48px;
}

.ag-wrap{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ag-text);
  margin:2rem auto;
  max-width:1180px;
}

.ag-album-header{
  background:linear-gradient(180deg,var(--ag-page),#fff);
  border:1px solid var(--ag-line);
  border-radius:30px;
  padding:clamp(1.4rem,4vw,3rem);
  margin-bottom:1.5rem;
}

.ag-album-hero{
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.8);
  text-align:center;
}

.ag-album-hero .ag-kicker,
.ag-album-hero h2{
  text-align:center;
}

.ag-album-hero .ag-description{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.ag-gallery-stage{
  background:linear-gradient(180deg,#ffffff 0%,#f5f5f7 100%);
}

.ag-kicker,
.ag-card-type{
  color:var(--ag-accent);
  font-weight:900;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 .35rem;
}

.ag-album-header h2{
  font-size:clamp(2rem,6vw,4rem);
  line-height:1.02;
  letter-spacing:-.055em;
  margin:0;
  text-transform:uppercase;
}

.ag-description{
  color:var(--ag-muted);
  max-width:760px;
  font-size:1.05rem;
  line-height:1.55;
  margin-top:1rem;
}

.ag-grid{
  display:grid;
  gap:1rem;
}

.ag-grid-grid-large{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}

.ag-grid-grid-small{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}

.ag-grid-list{
  grid-template-columns:1fr;
}

.ag-card{
  background:var(--ag-bg);
  border-radius:var(--ag-radius);
  overflow:hidden;
  box-shadow:var(--ag-shadow);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.ag-card:hover{
  transform:translateY(-3px);
  box-shadow:rgba(0,0,0,.10) 0 10px 30px,rgba(0,0,0,.08) 0 22px 55px;
}

.ag-card-link{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none!important;
  outline:none;
}

.ag-card-link:focus-visible,
.ag-nav-button:focus-visible,
.ag-lightbox-trigger:focus-visible{
  outline:3px solid rgba(0,113,227,.35);
  outline-offset:3px;
}

.ag-card-media{
  display:block;
  aspect-ratio:4/3;
  background:var(--ag-soft);
  overflow:hidden;
  position:relative;
}

.ag-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}

.ag-card:hover .ag-card-media img{
  transform:scale(1.035);
}

.ag-card-body{
  padding:1rem;
}

.ag-card-body h4{
  font-size:1.15rem;
  margin:.2rem 0 0;
  line-height:1.1;
  letter-spacing:-.03em;
  text-transform:uppercase;
}

.ag-game-grid{
  align-items:stretch;
}

.ag-game-card{
  border:1px solid rgba(20,20,24,.07);
  background:#fff;
  min-height:100%;
}

.ag-game-card .ag-card-media{
  aspect-ratio:16/10;
}

.ag-album-clean-cover{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:1.2rem;
  box-sizing:border-box;
  background:linear-gradient(135deg,#f7f7f8 0%,#ffffff 62%,#f2f2f4 100%);
}

.ag-album-cover-frame{
  display:grid;
  place-items:center;
  width:min(78%,260px);
  height:min(78%,260px);
  border-radius:22px;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(20,20,24,.055),0 10px 30px rgba(0,0,0,.045);
  overflow:hidden;
}

.ag-album-cover-frame img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  padding:.35rem;
  box-sizing:border-box;
  filter:saturate(1.04) contrast(1.02);
}

.ag-album-cover-placeholder{
  min-height:100%;
}

.ag-card-badge{
  position:absolute;
  top:.8rem;
  left:.8rem;
  z-index:2;
  background:var(--ag-accent);
  color:#fff;
  border-radius:999px;
  padding:.34rem .7rem;
  font-size:.68rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 8px 22px rgba(200,16,46,.24);
}

.ag-card-scoreline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--ag-muted);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  min-height:1.2rem;
}

.ag-card-scoreline span:last-child{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  color:#fff;
  background:var(--ag-text);
  font-size:1.35rem;
  line-height:1;
  transform:translateX(.25rem);
  transition:transform .18s ease,background .18s ease;
}

.ag-game-card:hover .ag-card-scoreline span:last-child{
  background:var(--ag-accent);
  transform:translateX(.45rem);
}

.ag-card figcaption{
  color:var(--ag-muted);
  font-size:.9rem;
  margin:0;
  padding:.8rem 1rem 1rem;
}

.ag-card-list,
.ag-view-list .ag-image-card,
.ag-view-list .ag-game-card .ag-card-link{
  display:grid;
  grid-template-columns:minmax(140px,240px) 1fr;
  align-items:center;
}

.ag-image-card{
  position:relative;
}

.ag-lightbox-trigger{
  cursor:zoom-in;
  border:0;
  background:transparent;
  padding:0;
  width:100%;
  color:inherit;
  text-align:left;
}

.ag-image-card .ag-card-media{
  aspect-ratio:4/3;
}

.ag-placeholder{
  display:grid;
  place-items:center;
  height:100%;
  min-height:190px;
  font-size:3rem;
  background:linear-gradient(135deg,#f3f3f4,#fff);
}

.ag-parent-album-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:0 0 1rem;
  padding:.75rem;
  border:1px solid var(--ag-line);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  box-shadow:rgba(0,0,0,.035) 0 8px 24px;
  flex-wrap:wrap;
}

.ag-parent-link{
  background:var(--ag-text);
  color:#fff!important;
}

.ag-parent-link:hover{
  background:var(--ag-accent);
  border-color:var(--ag-accent);
}

.ag-breadcrumb-trail{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.45rem;
  color:var(--ag-muted);
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.ag-breadcrumb-trail span:not(:last-child)::after{
  content:'›';
  margin-left:.45rem;
  color:var(--ag-accent);
}

.ag-detail-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:0 0 1rem;
  flex-wrap:wrap;
}

.ag-detail-nav-group{
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
}

.ag-nav-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  min-height:42px;
  border-radius:999px;
  padding:.65rem 1rem;
  background:#fff;
  color:var(--ag-text)!important;
  text-decoration:none!important;
  border:1px solid var(--ag-line);
  box-shadow:rgba(0,0,0,.04) 0 4px 14px;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.01em;
}

.ag-nav-button:hover{
  background:var(--ag-text);
  color:#fff!important;
}

.ag-next-link{
  background:var(--ag-accent);
  border-color:var(--ag-accent);
  color:#fff!important;
}

.ag-prev-link:hover,
.ag-next-link:hover{
  background:var(--ag-accent-dark);
  border-color:var(--ag-accent-dark);
}

.ag-notice{
  background:#fff4f4;
  color:#8a1023;
  border:1px solid rgba(200,16,46,.22);
  border-radius:18px;
  padding:1rem;
  margin:1rem 0;
}

.ag-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(0,0,0,.86);
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(1rem,4vw,3rem);
}

.ag-lightbox.is-open{
  display:flex;
}

.ag-lightbox img{
  max-width:min(1100px,92vw);
  max-height:82vh;
  border-radius:18px;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}

.ag-lightbox-caption{
  color:#fff;
  text-align:center;
  margin:.8rem 0 0;
}

.ag-lightbox-close,
.ag-lightbox-prev,
.ag-lightbox-next{
  position:absolute;
  border:0;
  border-radius:999px;
  width:44px;
  height:44px;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:2rem;
  cursor:pointer;
  display:grid;
  place-items:center;
}

.ag-lightbox-close{
  top:1rem;
  right:1rem;
}

.ag-lightbox-prev,
.ag-lightbox-next{
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:52px;
  font-size:2.4rem;
}

.ag-lightbox-prev{left:1rem}
.ag-lightbox-next{right:1rem}

@media (max-width:700px){
  .ag-wrap{margin:1.1rem auto;padding:0 .85rem;max-width:100%;box-sizing:border-box}
  .ag-album-header{border-radius:24px;padding:1.35rem;margin-bottom:1rem}
  .ag-grid{gap:1rem}
  .ag-grid-grid-large,.ag-grid-grid-small{grid-template-columns:1fr}
  .ag-game-card{border-radius:24px}
  .ag-game-card .ag-card-media{aspect-ratio:16/11}
  .ag-album-clean-cover{padding:1rem}
  .ag-album-cover-frame{width:min(74%,230px);height:min(74%,230px);border-radius:20px}
  .ag-card-badge{top:.7rem;left:.7rem;font-size:.66rem;padding:.34rem .68rem}
  .ag-card-scoreline span:last-child{width:2.35rem;height:2.35rem;transform:none}
  .ag-view-list .ag-image-card,.ag-view-list .ag-game-card .ag-card-link{grid-template-columns:1fr}
  .ag-detail-nav{align-items:stretch}
  .ag-detail-nav,.ag-detail-nav-group,.ag-nav-button{width:100%}
  .ag-parent-album-nav{border-radius:22px;align-items:stretch}
  .ag-breadcrumb-trail{width:100%;padding:0 .35rem}
  .ag-card-body{padding:1rem 1.1rem 1.15rem}
}
