/* Оформление страницы игр.
   Общие переменные, фокус, уменьшенное движение и шапка
   определены в official-reference.css.
*/

body.public-ui.projects-page{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 50% -8%,rgba(34,217,230,.08),transparent 34%),
    linear-gradient(180deg,#030a0e 0%,var(--ufg-bg) 100%);
  color:var(--ufg-text);
  font-family:Inter,sans-serif;
}

.projects-page .games-shell{
  width:min(var(--ufg-frame),calc(100% - 18px));
  margin:10px auto 0;
  border:1px solid var(--ufg-line);
  background:rgba(2,8,11,.78);
  box-shadow:0 22px 56px rgba(0,0,0,.42);
  clip-path:polygon(0 0,calc(100% - var(--ufg-radius-cut)) 0,100% var(--ufg-radius-cut),100% 100%,var(--ufg-radius-cut) 100%,0 calc(100% - var(--ufg-radius-cut)));
}

.projects-page .games-hero{
  position:relative;
  min-height:520px;
  display:grid;
  grid-template-columns:minmax(0,var(--ufg-minor)) minmax(0,var(--ufg-major));
  overflow:hidden;
  border-bottom:1px solid var(--ufg-line);
}
.projects-page .games-hero-media{
  position:absolute;
  inset:0;
}
.projects-page .games-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  filter:saturate(.82) contrast(1.08) brightness(.66);
}
.projects-page .games-hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#02090d 0%,rgba(2,9,13,.98) 21%,rgba(2,9,13,.82) 38%,rgba(2,9,13,.3) 63%,rgba(2,9,13,.08) 100%),
    linear-gradient(180deg,rgba(0,0,0,.04),rgba(2,8,11,.44));
}
.projects-page .games-hero-copy{
  position:relative;
  z-index:2;
  grid-column:1;
  align-self:center;
  padding:clamp(34px,4vw,62px);
}
.projects-page .games-kicker{
  color:var(--ufg-cyan-bright);
  font:700 .66rem Sora,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.projects-page .games-hero h1,
.projects-page .games-section h2{
  font-family:Sora,sans-serif;
  text-transform:uppercase;
  letter-spacing:-.045em;
}
.projects-page .games-hero h1{
  max-width:9ch;
  margin:12px 0 16px;
  font-size:clamp(3.1rem,5.3vw,5.8rem);
  line-height:.92;
  text-wrap:balance;
}
.projects-page .games-hero h1 span{
  display:block;
  margin-top:10px;
  color:var(--ufg-cyan-bright);
  font-size:.42em;
  line-height:1.05;
  letter-spacing:.12em;
}
.projects-page .games-lead{
  max-width:58ch;
  margin:0;
  color:#bac9cd;
  font-size:clamp(.98rem,1.3vw,1.08rem);
  line-height:1.65;
}
.projects-page .games-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.projects-page .games-hero-actions .btn{
  min-height:46px;
  padding-inline:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--ufg-line-strong);
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
  font:700 .72rem Sora,sans-serif;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.projects-page .games-hero-actions .btn-primary{
  border-color:var(--ufg-cyan-bright);
  background:linear-gradient(180deg,var(--ufg-cyan-bright),var(--ufg-cyan));
  color:#021014;
  box-shadow:0 0 18px rgba(92,244,255,.16);
}
.projects-page .games-hero-actions .btn-ghost{
  background:rgba(4,14,18,.78);
  color:var(--ufg-text);
}
.projects-page .games-hero-code{
  position:relative;
  z-index:2;
  grid-column:2;
  align-self:end;
  justify-self:end;
  margin:0 28px 30px 0;
  color:#6f9299;
  font:600 .62rem Sora,sans-serif;
  letter-spacing:.26em;
  text-transform:uppercase;
  writing-mode:vertical-rl;
}

.projects-page .games-strip{
  display:flex;
  gap:28px;
  align-items:center;
  overflow:hidden;
  padding:12px 20px;
  border-bottom:1px solid var(--ufg-line);
  background:#040d11;
  color:#8ca1a7;
  font:600 .62rem Sora,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
}
.projects-page .games-strip i{
  color:var(--ufg-gold);
  font-style:normal;
}

.projects-page .games-section{
  padding:clamp(32px,4vw,54px) clamp(18px,2.2vw,34px);
  border-bottom:1px solid var(--ufg-line);
}
.projects-page .games-section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.projects-page .games-section h2{
  margin:6px 0 0;
  font-size:clamp(1.8rem,3vw,2.8rem);
  line-height:.96;
}
.projects-page .games-intro{
  max-width:72ch;
  margin:0 0 24px;
  color:var(--ufg-muted);
  line-height:1.65;
}

.projects-page .shop-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}
.projects-page .shop-filters button{
  min-height:42px;
  padding:0 15px;
  border:1px solid var(--ufg-line-strong);
  background:#061217;
  color:#9eb0b5;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));
  cursor:pointer;
  font:700 .66rem Sora,sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:border-color .18s ease,color .18s ease,background-color .18s ease,transform .18s ease;
}
.projects-page .shop-filters button.active,
.projects-page .shop-filters button[aria-pressed="true"]{
  border-color:var(--ufg-cyan-bright);
  background:linear-gradient(180deg,#0b252b,#061217);
  color:var(--ufg-text);
}
@media (hover:hover) and (pointer:fine){
  .projects-page .shop-filters button:hover{
    border-color:var(--ufg-cyan);
    color:var(--ufg-text);
    transform:translateY(-1px);
  }
}

.projects-page .portfolio-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.projects-page .portfolio-grid .project-card{
  min-width:0;
  min-height:420px;
  display:grid;
  grid-template-columns:minmax(0,var(--ufg-major)) minmax(0,var(--ufg-minor));
  overflow:hidden;
  border:1px solid var(--ufg-line-strong);
  background:linear-gradient(145deg,var(--ufg-panel-2),var(--ufg-panel));
  color:inherit;
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
  text-decoration:none;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.projects-page .project-card.hide{display:none}
.projects-page .project-card .project-art{
  min-height:420px;
  overflow:hidden;
  background:#071116;
}
.projects-page .project-card .project-art img,
.projects-page .project-card .art-image{
  width:100%;
  height:100%;
  min-height:420px;
  display:block;
  object-fit:cover;
  filter:saturate(.82) contrast(1.06);
}
.projects-page .project-card .project-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,3.5vw,50px);
}
.projects-page .project-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.projects-page .project-tags .tag{
  padding:6px 9px;
  border:1px solid var(--ufg-line);
  color:#88a3aa;
  font:700 .58rem Sora,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.projects-page .project-card h3{
  margin:18px 0 12px;
  color:var(--ufg-text);
  font:700 clamp(2rem,4vw,3.5rem) Sora,sans-serif;
  letter-spacing:-.045em;
  line-height:.98;
  text-wrap:balance;
  text-transform:uppercase;
}
.projects-page .project-card p{
  margin:0;
  color:#98aab0;
  line-height:1.65;
}
@media (hover:hover) and (pointer:fine){
  .projects-page .portfolio-grid .project-card:hover{
    border-color:var(--ufg-cyan);
    box-shadow:0 0 24px rgba(34,217,230,.09),0 22px 48px rgba(0,0,0,.28);
    transform:translateY(-2px);
  }
}

.projects-page .games-method-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.projects-page .games-method-card{
  min-height:180px;
  padding:22px;
  border:1px solid var(--ufg-line);
  background:linear-gradient(180deg,var(--ufg-panel-2),var(--ufg-panel));
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
}
.projects-page .games-method-card h3{
  margin:30px 0 10px;
  font:700 1.08rem Sora,sans-serif;
  letter-spacing:-.02em;
  text-transform:uppercase;
}
.projects-page .games-method-card p{
  margin:0;
  color:var(--ufg-muted);
  line-height:1.6;
}

.projects-page footer{
  margin-top:0;
  border-top:1px solid var(--ufg-line);
  background:#02070a;
}

.projects-page .games-shell,
.projects-page .games-hero-copy,
.projects-page .games-section,
.projects-page .portfolio-grid,
.projects-page .project-card .project-body,
.projects-page .games-method-card{
  min-width:0;
}

@media(max-width:980px){
  .projects-page .games-shell{width:calc(100% - 12px)}
  .projects-page .games-hero{
    min-height:560px;
    display:flex;
    align-items:flex-end;
  }
  .projects-page .games-hero-copy{
    width:100%;
    box-sizing:border-box;
    padding:36px 20px 30px;
  }
  .projects-page .games-hero-media::after{
    background:linear-gradient(180deg,rgba(2,8,11,.08) 8%,rgba(2,8,11,.35) 42%,rgba(2,8,11,.96) 88%);
  }
  .projects-page .games-hero h1{max-width:11ch}
  .projects-page .games-hero-code{display:none}
  .projects-page .portfolio-grid .project-card{grid-template-columns:1fr;min-height:0}
  .projects-page .project-card .project-art,
  .projects-page .project-card .project-art img,
  .projects-page .project-card .art-image{min-height:300px;height:300px}
  .projects-page .games-method-grid{grid-template-columns:1fr}
}

@media(max-width:920px){
  .projects-page #site-header .nav-links{
    position:fixed;
    top:68px;
    left:10px;
    right:10px;
    z-index:120;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    margin:0;
    padding:10px;
    max-height:calc(100vh - 88px);
    overflow-y:auto;
    background:#061015;
    border:1px solid var(--ufg-line-strong);
    box-shadow:0 18px 40px rgba(0,0,0,.5);
  }
  .projects-page #site-header .nav-links.open{display:flex}
  .projects-page #site-header .nav-links a{display:block;padding:14px 10px}
  .projects-page #site-header .nav-links a::after{display:none}
}

@media(max-width:620px){
  .projects-page .games-shell{width:calc(100% - 8px);margin-top:4px}
  .projects-page .games-hero{min-height:520px}
  .projects-page .games-hero-copy{padding:28px 14px 24px}
  .projects-page .games-hero h1{font-size:clamp(2.55rem,13vw,4rem);max-width:100%;overflow-wrap:anywhere}
  .projects-page .games-hero h1 span{font-size:.38em;letter-spacing:.09em}
  .projects-page .games-lead{font-size:.94rem;line-height:1.55}
  .projects-page .games-hero-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  .projects-page .games-hero-actions .btn{width:100%;box-sizing:border-box}
  .projects-page .games-strip{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;gap:20px;padding-inline:14px}
  .projects-page .games-strip::-webkit-scrollbar{display:none}
  .projects-page .games-section{padding:28px 14px}
  .projects-page .games-section h2{font-size:clamp(1.7rem,8vw,2.35rem);overflow-wrap:anywhere}
  .projects-page .shop-filters{display:grid;grid-template-columns:1fr 1fr}
  .projects-page .shop-filters button{width:100%;min-width:0}
  .projects-page .project-card .project-art,
  .projects-page .project-card .project-art img,
  .projects-page .project-card .art-image{min-height:240px;height:240px}
  .projects-page .project-card .project-body{padding:22px 18px}
  .projects-page .project-card h3{font-size:clamp(1.8rem,9vw,2.7rem);overflow-wrap:anywhere}
  .projects-page .footer-row{align-items:flex-start;flex-direction:column}
  .projects-page .footer-links{flex-wrap:wrap}
}

@media(max-width:420px){
  .projects-page .shop-filters{grid-template-columns:1fr}
  .projects-page .project-card .project-art,
  .projects-page .project-card .project-art img,
  .projects-page .project-card .art-image{min-height:210px;height:210px}
  .projects-page .games-method-card{min-height:0;padding:18px}
  .projects-page .games-method-card h3{margin-top:22px}
}
