.themetog{
  display:inline-flex;
  height:22px;
  padding:1px;
  border:1px solid var(--ink-3);
  border-radius:999px;
}

.themetog__opt{
  display:grid;
  place-items:center;
  width:26px;
  height:18px;
  border-radius:999px;
  color:var(--ink-3);
  transition:background-color .2s ease, color .2s ease;
}

.themetog__opt .ico{
  width:12px;
  height:12px;
}

[data-theme="light"] .themetog__opt--light,
[data-theme="dark"] .themetog__opt--dark{
  background:var(--ink);
  color:var(--paper);
}

.tabs-row{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid var(--rule);
}

.tabs{
  display:flex;
  gap:28px;
  margin-bottom:-1px;
  overflow-x:auto;
  scrollbar-width:none;
}

.tabs::-webkit-scrollbar{
  display:none;
}

.tab{
  position:relative;
  flex:none;
  padding:14px 0 13px;
  font-size:11px;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
  color:var(--ink-3);
  transition:color .2s ease;
}

@media (hover:hover){
  .tab:hover{
    color:var(--ink);
  }
}

.tab[aria-selected="true"]{
  color:var(--ink);
}

.tab[aria-selected="true"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--accent);
}

.tab:focus-visible{
  outline-offset:-2px;
}

.tabs-count{
  align-self:center;
  flex:none;
  font-size:12px;
  letter-spacing:.06em;
  color:var(--ink-2);
}

.card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  background:var(--paper);
  contain:layout paint;
  cursor:pointer;
}

.card:hover{
  z-index:5;
}

.card__stage{
  position:relative;
  height:calc(var(--case-w) * var(--case-ratio) + 72px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}

.live{
  position:absolute;
  top:12px;
  right:14px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  font-weight:500;
  letter-spacing:.14em;
  line-height:1.4;
  color:var(--accent-text);
}

.live i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
}

.live--upd{
  color:var(--ink-2);
}

.card__body{
  display:flex;
  flex-direction:column;
  padding:2px 18px 16px;
}

.tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:12px;
}

.tags .chip{
  color:var(--ink-3);
}

.chip--goblin,
.tags .chip.chip--goblin{
  color:var(--goblin-text);
  border-color:var(--goblin);
}

.gv__head .tags{
  margin:0;
}

.card__title{
  font-size:17px;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.25;
}

.card__by{
  margin-top:6px;
  font-size:12px;
  line-height:1.4;
  color:var(--ink-2);
}

.card__author{
  color:var(--ink);
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}

@media (hover:hover){
  .card__author:hover{
    text-decoration-line:underline;
  }
}

.metrics{
  display:grid;
  grid-template-columns:1fr 1.3fr 1fr;
  margin-top:auto;
  border-top:1px solid var(--rule);
}

.metric{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  padding:10px 12px 11px 14px;
}

.metric + .metric{
  border-left:1px solid var(--rule);
}

.metric .label{
  color:var(--ink-3);
}

.metric__val{
  font-size:15px;
  line-height:1.15;
}

.card__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px 12px 14px;
  border-top:1px solid var(--rule);
}

.playbtn{
  flex:none;
  display:inline-flex;
  align-items:center;
  gap:5px;
  height:28px;
  padding:0 12px;
  border:1px solid var(--ink);
  border-radius:999px;
  background:var(--ink);
  color:var(--paper);
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
  transition:background-color .18s ease, border-color .18s ease;
}

@media (hover:hover){
  .playbtn:hover{
    background:var(--ink-2);
    border-color:var(--ink-2);
  }
}

.slot{
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  background:var(--paper);
  color:var(--ink-3);
}

.grid__empty{
  grid-column:1 / -1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:56px 24px;
  background:var(--paper);
  color:var(--ink-2);
}

.grid__empty .label{
  color:var(--ink-3);
}

.stars{
  --s:12px;
  --g:2px;
  position:relative;
  display:inline-flex;
  gap:var(--g);
  width:max-content;
  margin-top:4px;
}

.stars__btn{
  display:block;
  width:var(--s);
  height:var(--s);
}

.stars__btn[aria-disabled="true"]{
  cursor:default;
}

.stars__btn:focus-visible{
  outline-offset:1px;
}

.star{
  display:block;
  width:100%;
  height:100%;
}

.stars__btn .star{
  fill:none;
  stroke:var(--ink-3);
  stroke-width:1.2;
}

.stars__fill{
  position:absolute;
  left:0;
  top:0;
  z-index:1;
  display:flex;
  gap:var(--g);
  width:var(--val);
  height:var(--s);
  overflow:hidden;
  pointer-events:none;
  transition:width .15s ease;
}

.stars__fill .star{
  flex:none;
  width:var(--s);
  height:var(--s);
  fill:var(--ink);
}

.stars.is-voted .stars__fill .star{
  fill:var(--accent);
}

:focus-visible)) .stars__fill{
  width:var(--s);
}

:focus-visible)) .stars__fill{
  width:calc(var(--s) * 2 + var(--g));
}

:focus-visible)) .stars__fill{
  width:calc(var(--s) * 3 + var(--g) * 2);
}

:focus-visible)) .stars__fill{
  width:calc(var(--s) * 4 + var(--g) * 3);
}

:focus-visible)) .stars__fill{
  width:calc(var(--s) * 5 + var(--g) * 4);
}

.stars-static{
  display:inline-flex;
  gap:2px;
}

.stars-static .star{
  width:10px;
  height:10px;
  fill:none;
  stroke:var(--ink-3);
  stroke-width:1.2;
}

.stars-static .star.is-on{
  fill:var(--ink);
  stroke:var(--ink);
}

@keyframes cumBump{
  0%,100%{ transform:scale(1); }
  50%    { transform:scale(1.12); }
}

.mrow{
  display:grid;
  grid-template-columns:28px 30px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  width:100%;
  height:56px;
  padding:0 10px 0 12px;
  text-align:left;
  transition:background-color .2s ease;
}

@media (hover:hover){
  .mrow:hover{
    background:var(--paper-2);
  }
}

.mrow:focus-visible{
  outline-offset:-2px;
}

.mrow__pos{
  font-size:22px;
  line-height:1;
  color:var(--ink);
}

.mrow__pos.is-top{
  color:var(--accent);
}

.mrow__text{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.mrow__title{
  font-size:13px;
  font-weight:500;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.mrow__by{
  font-size:10px;
  line-height:1.4;
  color:var(--ink-3);
}

.mrow__cums{
  font-size:11px;
  color:var(--ink-2);
}

.m-by{
  margin-top:8px;
  font-size:12px;
  color:var(--ink-2);
}

.spec{
  margin-top:22px;
  border:1px solid var(--rule);
}

.spec__head{
  padding:9px 12px;
  border-bottom:1px solid var(--rule);
}

.spec__table{
  width:100%;
}

.spec__table tr + tr{
  border-top:1px solid var(--rule);
}

.spec__table th{
  width:112px;
  padding:9px 12px;
  border-right:1px solid var(--rule);
  font-size:10px;
  font-weight:500;
  letter-spacing:.14em;
  text-align:left;
  vertical-align:top;
  color:var(--ink-3);
}

.spec__table td{
  padding:7px 12px;
  font-size:13px;
}

.spec__table td.num{
  font-size:13px;
}

.spec__rating{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.spec__rating .stars{
  margin-top:0;
}

.m-support{
  margin-top:18px;
}

.m-support__links{
  margin-top:8px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.m-reviews{
  padding:20px 24px 24px;
  border-top:1px solid var(--rule);
}

.rv-list{
  margin-top:10px;
}

.rv{
  padding:14px 0;
  border-bottom:1px solid var(--rule);
}

.rv__head{
  display:flex;
  align-items:center;
  gap:10px;
}

.rv__user{
  font-size:12px;
  font-weight:700;
}

.rv__date{
  margin-left:auto;
  font-size:11px;
  color:var(--ink-3);
}

.rv__body{
  margin-top:4px;
  font-size:14px;
}

.rv-empty{
  padding:14px 0;
  color:var(--ink-3);
  border-bottom:1px solid var(--rule);
}

.rv-form{
  margin-top:20px;
  display:grid;
  gap:14px;
}

.rv-form__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px 20px;
  align-items:end;
}

.field{
  display:grid;
  gap:6px;
}

.field .label,
.rv-rate legend{
  color:var(--ink-3);
}

.field input,
.field textarea{
  width:100%;
  padding:8px 10px;
  border:1px solid var(--ink-3);
  border-radius:0;
  background:transparent;
  font-size:14px;
  line-height:1.5;
  resize:vertical;
}

.field input::placeholder,
.field textarea::placeholder{
  color:var(--ink-3);
  opacity:1;
}

.rv-rate legend{
  margin-bottom:6px;
}

.rv-rate__stars{
  display:flex;
  gap:4px;
  height:37px;
  align-items:center;
}

.rv-rate__btn{
  width:22px;
  height:22px;
  padding:2px;
}

.rv-rate__btn .star{
  fill:none;
  stroke:var(--ink-3);
  stroke-width:1.2;
  transition:fill .12s ease, stroke .12s ease;
}

.rv-rate__btn.is-on .star{
  fill:var(--accent);
  stroke:var(--accent);
}

.rv-form__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.rv-form__msg{
  color:var(--ink-3);
  min-height:1em;
}

.agegate{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:32px 20px;
  overflow-y:auto;
  background:var(--paper);
  color:var(--ink);
  transition:opacity 220ms ease;
}

.age-ok .agegate{
  display:none;
}

.agegate.is-leaving{
  opacity:0;
  pointer-events:none;
}

.agegate__zine{
  position:fixed;
  inset:0;
  overflow:hidden;
  opacity:.04;
  pointer-events:none;
}

.zine__jp{
  position:absolute;
  font-weight:900;
  line-height:.9;
  white-space:nowrap;
}

.zine__dots{
  position:absolute;
  border-radius:50%;
  background-image:radial-gradient(var(--ink) 2px, transparent 2.2px);
  background-size:7px 7px;
}

.zine__bar{
  position:absolute;
  background:var(--ink);
}

.agegate__inner{
  position:relative;
  max-width:460px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.agegate__logo{
  margin-top:6px;
  font-size:34px;
  font-weight:900;
  letter-spacing:-.04em;
  line-height:1;
}

.agegate__label{
  margin-top:22px;
  display:flex;
  gap:8px;
  align-items:baseline;
  color:var(--ink-2);
}

.agegate__title{
  margin-top:8px;
  font-size:22px;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.3;
}

.agegate__body{
  margin-top:10px;
  color:var(--ink-2);
}

.agegate__actions{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}

.agegate__foot{
  margin-top:20px;
  max-width:380px;
  color:var(--ink-3);
}

@media (max-width:719px){
  .m-reviews{
    padding-left:16px;
    padding-right:16px;
  }
  .rv-form__row{
    grid-template-columns:minmax(0,1fr);
  }
  .tabs{
    gap:22px;
  }
  .agegate .mascot--lg{
    width:150px;
    height:187px;
  }
}

@media (prefers-reduced-motion:reduce){
  .grid,
  .agegate,
  .stars__fill{
    transition:none;
  }
}

.toast{
  position:fixed;
  left:50%;
  bottom:24px;
  z-index:1300;
  max-width:min(420px, calc(100vw - 32px));
  padding:10px 16px;
  border-radius:var(--radius);
  background:var(--ink);
  color:var(--paper);
  font-size:12px;
  text-align:center;
  opacity:0;
  visibility:hidden;
  transform:translate(-50%, 6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}

.toast.is-on{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
}

@media (prefers-reduced-motion:reduce){
  .toast{
    transition:none;
  }
}

.stars__base{
  display:flex;
  gap:var(--g);
}

.stars__base .star{
  flex:none;
  width:var(--s);
  height:var(--s);
  fill:none;
  stroke:var(--ink-3);
  stroke-width:1.2;
}

.stars--big{
  --s:22px;
  --g:4px;
  margin-top:8px;
}

.stars--big .stars__btn{
  cursor:pointer;
}

.stars--big .stars__btn .star{
  stroke-width:1;
}

.stars--big:has(.stars__btn:hover) .stars__fill .star,
.stars--big:has(.stars__btn:focus-visible) .stars__fill .star{
  fill:var(--accent);
}

.stars--big:has(.stars__btn:nth-of-type(1):is(:hover,
:focus-visible)) .stars__fill{
  width:var(--s);
}

.stars--big:has(.stars__btn:nth-of-type(2):is(:hover,
:focus-visible)) .stars__fill{
  width:calc(var(--s) * 2 + var(--g));
}

.stars--big:has(.stars__btn:nth-of-type(3):is(:hover,
:focus-visible)) .stars__fill{
  width:calc(var(--s) * 3 + var(--g) * 2);
}

.stars--big:has(.stars__btn:nth-of-type(4):is(:hover,
:focus-visible)) .stars__fill{
  width:calc(var(--s) * 4 + var(--g) * 3);
}

.stars--big:has(.stars__btn:nth-of-type(5):is(:hover,
:focus-visible)) .stars__fill{
  width:calc(var(--s) * 5 + var(--g) * 4);
}

.card__link{
  color:inherit;
}

@media (hover:hover){
  .card__link:hover{
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
  }
}

a.playbtn{
  text-decoration:none;
}

.is-game .mast__brand{
  padding:12px 20px 10px;
}

.is-game .logo{
  font-size:56px;
}

.is-game .mast__tag{
  display:none;
}

.gv{
  padding:16px 32px 56px;
}

.gv__crumbs{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:12px;
  border-bottom:1px solid var(--rule);
}

.gv__back{
  font-size:11px;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
}

@media (hover:hover){
  .gv__back:hover{
    color:var(--ink-3);
  }
}

.gv__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 32px;
  padding:20px 0 18px;
}

.gv__title{
  margin-top:10px;
  font-size:clamp(26px, 3.4vw, 40px);
  font-weight:900;
  letter-spacing:-.025em;
  line-height:1.05;
}

.gv__title:focus{
  outline:none;
}

.gv__stage{
  --paper:#121210;
  --ink:#EDEDE6;
  --ink-2:#A8A8A0;
  --ink-3:#85857E;
  --rule:#2A2A26;
  --case-edge:#4A4A46;
  padding:24px 24px 14px;
  background-color:#0A0A09;
  background-image:radial-gradient(#1C1C1A 0.9px, transparent 0.9px);
  background-size:3px 3px;
  color:var(--ink);
}

.gv__embed{
  position:relative;
  margin:0 auto;
  aspect-ratio:var(--w) / var(--h);
  width:min(100%, calc(var(--w) * 1px), calc((100vh - 170px) * var(--w) / var(--h)));
  background:#000;
  outline:1px solid #2A2A26;
}

.gv__embed:fullscreen{
  width:100%;
  height:100%;
  aspect-ratio:auto;
  outline:0;
}

.gv__embed.is-max{
  position:fixed;
  inset:0;
  z-index:1000;
  width:100%;
  height:100%;
  height:100dvh;
  aspect-ratio:auto;
  outline:0;
}

.is-maxed,
.is-maxed body{
  overflow:hidden;
}

.gv__exit{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  display:none;
  width:34px;
  height:34px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(237,237,230,.35);
  border-radius:50%;
  background:rgba(10,10,9,.6);
  color:#EDEDE6;
  font-size:14px;
  line-height:1;
  cursor:pointer;
  opacity:.55;
  transition:opacity .2s ease;
}

.gv__exit:hover,
.gv__exit:focus-visible{
  opacity:1;
}

.gv__embed:fullscreen .gv__exit,
.gv__embed.is-max .gv__exit{
  display:flex;
}

.gv__frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#000;
}

.gv__poster{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:26px;
  width:100%;
  color:var(--ink);
  cursor:pointer;
}

.gv__poster-case{
  display:block;
}

.gv__poster .case{
  pointer-events:none;
}

.gv__play{
  height:44px;
  padding:0 30px;
  font-size:13px;
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-ink);
}

@media (hover:hover){
  .gv__poster:hover .gv__play{
    background:#C93A25;
    border-color:#C93A25;
  }
  .gv__poster:hover .case__turn{
    transform:rotateY(0deg) translateZ(var(--turn-z));
  }
}

.gv__poster-meta{
  font-size:11px;
  letter-spacing:.06em;
  color:var(--ink-3);
}

.gv__poster:focus-visible{
  outline-offset:-4px;
}

.gv__embed.is-portrait .gv__poster{
  gap:22px;
}

.gv__tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px 16px;
  margin-top:14px;
}

.gv__tools-btns{
  display:flex;
  gap:6px;
}

.gv__tools .pill[disabled]{
  opacity:.4;
  cursor:default;
}

.gv__bar{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;
  border:1px solid var(--rule);
  border-top:0;
}

.gv__bar > *{
  padding:22px 24px;
  min-width:0;
}

.gv__bar > * + *{
  border-left:1px solid var(--rule);
}

.bigcum{
  display:inline-flex;
  align-items:stretch;
  height:76px;
  border:1px solid var(--accent);
  border-radius:999px;
  color:var(--accent-text);
  transition:background-color .18s ease, color .18s ease;
}

.bigcum__word{
  display:flex;
  align-items:center;
  padding:0 26px 0 34px;
  font-size:34px;
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1;
}

.bigcum__count{
  display:flex;
  align-items:center;
  padding:0 32px 0 24px;
  border-left:1px solid var(--accent);
  font-size:28px;
}

@media (hover:hover){
  .bigcum:not(.is-on):hover{
    background:var(--accent);
    color:var(--accent-ink);
  }
  .bigcum:not(.is-on):hover .bigcum__count{
    border-left-color:rgba(255,255,255,.45);
  }
}

.bigcum.is-on{
  background:var(--accent);
  color:var(--accent-ink);
  cursor:default;
}

.bigcum.is-on .bigcum__count{
  border-left-color:rgba(255,255,255,.45);
}

.bigcum.is-bump{
  animation:cumBump 220ms ease-out;
}

.bigcum__note{
  display:grid;
  gap:2px;
  margin-top:12px;
  max-width:380px;
  font-size:12px;
  line-height:1.5;
  color:var(--ink-2);
}

.bigcum__wait{
  font-size:11px;
  color:var(--accent-text);
}

.gv__rate-meta{
  margin-top:10px;
  font-size:12px;
}

.gv__plays{
  text-align:right;
}

.gv__plays-n{
  display:block;
  margin-top:6px;
  font-size:30px;
  line-height:1;
}

.gv__cols{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:32px;
  align-items:start;
  margin-top:28px;
}

.gv__desc{
  max-width:640px;
  margin-bottom:28px;
  font-size:15px;
  color:var(--ink-2);
}

.gv__side{
  position:sticky;
  top:24px;
  display:grid;
  gap:20px;
}

.gv__side .spec{
  margin-top:0;
}

.gv__side .m-support{
  margin-top:0;
}

.gv__more .mrow{
  grid-template-columns:30px minmax(0,1fr) auto;
}

.gv__more .shelf__list > li + li{
  border-top:1px solid var(--rule);
}

.cm-form{
  margin-top:14px;
  padding-bottom:20px;
  border-bottom:1px solid var(--rule);
}

@media (max-width:1099px){
  .gv{
    padding:16px 24px 48px;
  }
  .gv__cols{
    grid-template-columns:minmax(0,1fr);
  }
  .gv__side{
    position:static;
  }
  .gv__bar{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .gv__bar > .bigcum-wrap{
    grid-column:1 / -1;
  }
  .gv__bar > .gv__rate{
    border-left:0;
    border-top:1px solid var(--rule);
  }
  .gv__bar > .gv__plays{
    border-top:1px solid var(--rule);
  }
}

@media (max-width:719px){
  .is-game .logo{
    font-size:44px;
  }
  .gv{
    padding:12px 16px 40px;
  }
  .gv__stage{
    padding:12px 12px 10px;
    margin:0 -16px;
  }
  .gv__embed{
    width:min(100%, calc(var(--w) * 1px), calc((100svh - 140px) * var(--w) / var(--h)));
  }
  .gv__bar > *{
    padding:18px 16px;
  }
  .bigcum{
    height:62px;
  }
  .bigcum__word{
    font-size:28px;
    padding:0 20px 0 26px;
  }
  .bigcum__count{
    font-size:22px;
    padding:0 24px 0 18px;
  }
}

@media (prefers-reduced-motion:reduce){
  .bigcum.is-bump{
    animation:none;
  }
}

.lang{
  position:relative;
}

.lang__btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:24px;
  padding:0 8px 0 5px;
  border:1px solid var(--ink-3);
  border-radius:999px;
  font-size:10px;
  font-weight:500;
  letter-spacing:.12em;
}

.flag{
  width:18px;
  height:12px;
  flex:none;
  border-radius:2px;
  outline:1px solid var(--rule);
}

.lang__menu{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:50;
  min-width:150px;
  padding:4px;
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:var(--radius);
}

.lang__opt{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:7px 10px;
  border-radius:2px;
  font-size:13px;
  white-space:nowrap;
}

.lang__opt[aria-current="true"]{
  font-weight:700;
}

@media (hover:hover){
  .lang__btn:hover{
    border-color:var(--ink);
  }
  .lang__opt:hover{
    background:var(--paper-2);
  }
}

.lang--gate{
  margin-top:22px;
}

.lang--gate .lang__menu{
  top:auto;
  bottom:calc(100% + 6px);
  right:50%;
  transform:translateX(50%);
}

.peek{
  position:fixed;
  z-index:900;
  width:280px;
  padding:14px 14px 12px;
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--ink);
  border-radius:var(--radius);
  box-shadow:0 14px 40px rgba(0,0,0,.28);
  pointer-events:none;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .16s ease, transform .16s ease;
}

.peek.is-on{
  opacity:1;
  transform:none;
}

.peek::before{
  content:"";
  position:absolute;
  top:calc(var(--ay, 50%) - 7px);
  width:12px;
  height:12px;
  background:var(--paper);
  border:1px solid var(--ink);
  transform:rotate(45deg);
}

.peek[data-side="right"]::before{
  left:-7px;
  border-top:0;
  border-right:0;
}

.peek[data-side="left"]::before{
  right:-7px;
  border-bottom:0;
  border-left:0;
}

.peek__title{
  font-size:16px;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.2;
}

.peek__tags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:8px;
}

.peek__desc{
  margin-top:8px;
  font-size:12px;
  line-height:1.5;
  color:var(--ink-2);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.peek__shots{
  display:grid;
  gap:6px;
  margin-top:10px;
}

.peek__shots.is-tall{
  grid-template-columns:1fr 1fr;
}

.peek__shots img,
.shots img{
  display:block;
  width:100%;
  height:auto;
  background:#000;
}

.peek__shots.is-tall img{
  aspect-ratio:9 / 16;
  object-fit:cover;
}

.gv__shots{
  margin-bottom:32px;
}

.shots{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:8px;
  margin-top:12px;
}

.shots.is-tall{
  grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));
}

.shots__btn{
  display:block;
  width:100%;
  padding:0;
  border:1px solid var(--rule);
  background:#000;
  cursor:zoom-in;
  overflow:hidden;
}

.shots__btn img{
  aspect-ratio:16 / 9;
  object-fit:cover;
  transition:transform .3s ease, opacity .2s ease;
}

.shots.is-tall .shots__btn img{
  aspect-ratio:9 / 16;
}

@media (hover:hover){
  .shots__btn:hover img{
    transform:scale(1.03);
  }
}

.shots__btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

.lb{
  position:fixed;
  inset:0;
  z-index:1100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:56px 64px;
  background:rgba(8,8,7,.92);
}

.lb[hidden]{
  display:none;
}

.lb__fig{
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  max-width:100%;
  max-height:100%;
}

.lb__fig img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - 140px);
  width:auto;
  height:auto;
  object-fit:contain;
  background:#000;
}

.lb__count{
  font-size:11px;
  letter-spacing:.14em;
  color:#A8A8A0;
}

.lb__btn{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid rgba(237,237,230,.35);
  border-radius:50%;
  background:rgba(10,10,9,.6);
  color:#EDEDE6;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}

.lb__btn:hover,
.lb__btn:focus-visible{
  border-color:#EDEDE6;
}

.lb__close{
  top:12px;
  right:12px;
  font-size:15px;
}

.lb__nav{
  top:50%;
  margin-top:-21px;
  font-size:26px;
}

.lb__nav--prev{
  left:12px;
}

.lb__nav--next{
  right:12px;
}

@media (max-width:719px){
  .lb{
    padding:56px 8px 72px;
  }
  .lb__nav{
    top:auto;
    bottom:14px;
    margin-top:0;
  }
  .lb__nav--prev{
    left:calc(50% - 52px);
  }
  .lb__nav--next{
    right:calc(50% - 52px);
  }
  .shots{
    grid-template-columns:1fr 1fr;
  }
  .shots.is-tall{
    grid-template-columns:repeat(3, 1fr);
  }
}

@media (prefers-reduced-motion:reduce){
  .peek,
  .shots__btn img{
    transition:none;
  }
}

.legal-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 14px;
}

.legal-links a{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:currentColor;
}

.legal-links a:hover{
  color:var(--ink);
}

.agegate__links{
  margin-top:10px;
  justify-content:center;
  gap:6px 8px;
}

.foot__legal{
  flex-wrap:wrap;
}

.foot__legal .legal-links{
  margin-left:auto;
}

.nf{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  padding:72px 40px 80px;
}

.nf__code{
  font-family:var(--f-dot);
  font-size:96px;
  line-height:1;
  color:var(--accent-text);
}

.nf__title{
  font-size:clamp(28px, 5vw, 44px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.05;
}

.nf__body{
  color:var(--ink-2);
  margin-bottom:10px;
}

.share-btn .ico{
  margin-right:6px;
}
