:root {
  --ink: #32224e;
  --sub: #705f88;
  --background: #f8f4ff;
  --purple: #7653d6;
  --white: #fff;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: radial-gradient(circle at 8% 4%, #fff0f6 0, transparent 25%),
              radial-gradient(circle at 90% 30%, #effaff 0, transparent 33%),
              var(--background);
  color: var(--ink);
  font-family: ui-rounded, "Trebuchet MS", "Arial Rounded MT Bold", system-ui, -apple-system, Arial, sans-serif;
  line-height: 1.45;
}
a { -webkit-tap-highlight-color: transparent; }
.site-shell { max-width: 1090px; margin: 0 auto; padding: 24px 22px 40px; }
.hero {
  isolation: isolate;
  position: relative;
  overflow: hidden;
  min-height: 280px;
  border-radius: 34px;
  padding: 28px 30px 44px;
  background:
    radial-gradient(circle at 6% 88%, #d3c4ff 0 8%, transparent 8.3%),
    radial-gradient(circle at 95% 10%, #c3acff 0 12%, transparent 12.3%),
    linear-gradient(119deg, #8d6ff1, #7355d7 55%, #a987ee);
  box-shadow: 0 14px 35px #6853ba21;
  color: white;
  text-align: center;
}
.hero__eyebrow { margin: 0; font-size: 13px; font-weight: 800; letter-spacing: .085em; text-transform: uppercase; }
.hero__eyebrow-dot { display: inline-block; width: 8px; height: 8px; margin: 0 6px 1px 0; background: #f6e68b; border-radius: 50%; }
.hero__symbol { margin: 10px auto 3px; color: #fff3ad; font-size: 35px; line-height: 1; }
.hero h1 { font-size: clamp(35px, 5vw, 57px); font-weight: 950; line-height: 1.08; letter-spacing: -.045em; margin: 5px 0 10px; }
.hero h1 em { font-style: normal; color: #fff2aa; }
.hero__subtitle { margin: 0; font-size: 17px; font-weight: 600; color: #f9f3ff; }
.hero__spark { position: absolute; color: #fff3b4; opacity: .8; z-index: -1; }
.hero__spark--one { top: 60px; left: 10%; font-size: 35px; transform: rotate(-10deg); }
.hero__spark--two { top: 60px; right: 10%; font-size: 45px; }
.hero__spark--three { bottom: 33px; right: 22%; font-size: 23px; }
.hero__cloud { position: absolute; width: 100px; height: 30px; background: #e4d5ff7a; border-radius: 50px; bottom: 25px; z-index: -1; }
.hero__cloud::before { content: ''; position: absolute; width: 47px; height: 45px; background: inherit; border-radius: 50%; bottom: 8px; left: 16px; }
.hero__cloud::after { content: ''; position: absolute; width: 39px; height: 35px; background: inherit; border-radius: 50%; bottom: 8px; right: 12px; }
.hero__cloud--left { left: 8%; }
.hero__cloud--right { right: 8%; bottom: 46px; transform: scale(.8); }
.catalogo { padding: 36px 10px 20px; }
.catalogo__heading { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 23px; }
.catalogo__eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .15em; color: #a77ece; font-weight: 900; margin: 0 0 3px; }
.catalogo h2 { font-size: clamp(25px, 3vw, 32px); font-weight: 950; margin: 0; line-height: 1.16; letter-spacing: -.04em; }
.catalogo__contador { white-space: nowrap; background: #ece5ff; color: #6850b5; border-radius: 50px; padding: 9px 15px; margin: 0 0 2px; font-size: 13px; font-weight: 900; }
.grade-jogos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.jogo {
  display: block;
  overflow: hidden;
  min-width: 0;
  background: var(--white);
  text-decoration: none;
  color: inherit;
  border: 2px solid #ede7f7;
  border-radius: 24px;
  box-shadow: 0 7px 19px #67499b12;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
a.jogo:hover { transform: translateY(-5px); box-shadow: 0 12px 26px #67499b24; border-color: #ceb7f6; }
a.jogo:focus-visible { outline: 4px solid #5834ae; outline-offset: 4px; }
.jogo__imagem { position: relative; aspect-ratio: 4 / 5; background: var(--cover-bg); overflow: hidden; }
.jogo__capa { display: block; width: 100%; height: 100%; object-fit: cover; }
.jogo__placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  position: relative;
  overflow: hidden;
  background: var(--cover-bg);
}
.jogo__placeholder::before { content: ''; position: absolute; width: 67%; aspect-ratio: 1; top: 18%; left: 16%; background: #fff9; border-radius: 50%; filter: blur(1px); }
.jogo__placeholder::after { content: ''; position: absolute; width: 140%; height: 34%; bottom: -13%; background: #ffffff65; transform: rotate(-10deg); border-radius: 50%; }
.jogo__emoji { position: relative; z-index: 1; font-size: clamp(55px, 7vw, 88px); filter: drop-shadow(0 9px 7px #43265b21); transform: rotate(-9deg); }
.jogo__placeholder-caption { position: absolute; z-index: 2; bottom: 16%; font-size: 11px; color: #604879; letter-spacing: .06em; font-weight: 900; text-transform: uppercase; }
.jogo__estrela { position: absolute; z-index: 1; color: #fff; opacity: .9; }
.jogo__estrela--a { top: 12%; left: 20%; font-size: 27px; }
.jogo__estrela--b { top: 29%; right: 12%; font-size: 26px; }
.jogo__estrela--c { bottom: 23%; left: 12%; font-size: 33px; }
.jogo--lilas { --cover-bg: linear-gradient(145deg, #d2b2ff, #e5b9ff 55%, #b7b0ff); }
.jogo--ceu { --cover-bg: linear-gradient(145deg, #a0d3ff, #b5f4fc 55%, #e5d6ff); }
.jogo--rosa { --cover-bg: linear-gradient(145deg, #ffaedb, #ffd2dd 55%, #e3b9ff); }
.jogo--menta { --cover-bg: linear-gradient(145deg, #aaf0cc, #ddf7ae 55%, #abe7e2); }
.jogo__etiqueta { position: absolute; z-index: 3; top: 13px; left: 13px; background: #ffffffed; color: #67557d; padding: 6px 10px; border-radius: 999px; font-size: 10px; font-weight: 900; box-shadow: 0 2px 8px #40385c13; }
.jogo__etiqueta--aberto { background: #fff9c8; color: #574179; }
.jogo__detalhes { padding: 18px 16px 19px; }
.jogo h3 { font-size: 17px; line-height: 1.22; letter-spacing: -.025em; margin: 0 0 8px; font-weight: 950; }
.jogo p { font-size: 12.5px; min-height: 54px; line-height: 1.5; margin: 0 0 13px; color: var(--sub); }
.jogo__acao { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: var(--purple); font-weight: 950; font-size: 12.5px; }
.jogo__seta { display: grid; place-items: center; width: 31px; height: 31px; background: #f0eaff; border-radius: 50%; font-size: 18px; }
.jogo--indisponivel .jogo__acao { color: #968aa5; }
.rodape { font-size: 12px; color: #9888aa; text-align: center; padding: 24px 10px 16px; font-weight: 700; }
.rodape span { color: #e18ac0; }
@media (max-width: 1000px) {
  .grade-jogos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jogo__emoji { font-size: 88px; }
  .jogo h3 { font-size: 20px; }
  .jogo p { font-size: 14px; min-height: 42px; }
}
@media (max-width: 570px) {
  .site-shell { padding: 12px 12px 26px; }
  .hero { min-height: 240px; padding: 27px 12px 38px; border-radius: 25px; }
  .hero__eyebrow { font-size: 10px; }
  .hero__symbol { font-size: 27px; }
  .hero h1 { font-size: clamp(31px, 8vw, 44px); }
  .hero__subtitle { font-size: 14px; }
  .hero__cloud--left { left: -10px; bottom: 12px; transform: scale(.7); }
  .hero__cloud--right { right: -12px; bottom: 12px; transform: scale(.6); }
  .hero__spark--one { left: 3%; top: 70px; font-size: 23px; }
  .hero__spark--two { right: 5%; top: 65px; font-size: 27px; }
  .catalogo { padding: 27px 2px 6px; }
  .catalogo__heading { align-items: center; margin-bottom: 17px; }
  .catalogo h2 { font-size: 23px; }
  .catalogo__contador { font-size: 10px; padding: 7px 10px; }
  .grade-jogos { gap: 11px; }
  .jogo { border-radius: 18px; border-width: 1px; }
  .jogo__etiqueta { font-size: 9px; top: 9px; left: 8px; padding: 5px 7px; }
  .jogo__emoji { font-size: clamp(48px, 12vw, 72px); }
  .jogo__placeholder-caption { font-size: 8px; }
  .jogo__detalhes { padding: 13px 10px 13px; }
  .jogo h3 { font-size: 14px; min-height: 35px; margin-bottom: 7px; }
  .jogo p { font-size: 11px; min-height: 49px; margin-bottom: 9px; }
  .jogo__acao { font-size: 11px; }
  .jogo__seta { width: 25px; height: 25px; font-size: 16px; }
  .rodape { font-size: 10px; }
}
@media (max-width: 330px) {
  .grade-jogos { grid-template-columns: 1fr; }
  .jogo__imagem { aspect-ratio: 5 / 4; }
  .jogo p, .jogo h3 { min-height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
