:root{
  --bg0:#070b14;
  --bg1:#0b1020;

  --panel: rgba(20,27,35,.58);
  --panel-solid: rgba(20,27,35,.92);
  --stroke: rgba(255,255,255,.08);

  --text:#EAF2FF;
  --muted: rgba(234,242,255,.72);

  --radius: 18px;
  --radius-sm: 14px;

  --ease: cubic-bezier(.2,.8,.2,1);

  --shadow-1: 0 10px 30px rgba(0,0,0,.35);
  --shadow-2: 0 18px 60px rgba(0,0,0,.55);

  --neon-r: 77;
  --neon-g: 163;
  --neon-b: 255;

  --neon: rgb(var(--neon-r), var(--neon-g), var(--neon-b));
  --neon-a12: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .12);
  --neon-a18: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .18);
  --neon-a22: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .22);
  --neon-a35: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .35);
  --neon-a55: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .55);
  --neon-a80: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .80);
  --neon-a95: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .95);
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; background:#070b14; }
::selection{ background: rgba(109,220,255,.25); }

html, body{ overflow-x: clip; }

body{
  margin:0;
  font-family: system-ui, -apple-system, sans-serif;
  color: var(--text);
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(77,163,255,.16), transparent 55%),
    radial-gradient(800px 500px at 85% 25%, rgba(109,220,255,.10), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  background-attachment: fixed;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.06;
  mix-blend-mode: overlay;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}

@media (max-width: 768px){
  body::before{ display:none; }
}

body.modal-open{
  background-attachment: scroll !important;
}

.css-intro{
  position:fixed;
  inset:0;
  z-index:99999;
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(77,163,255,.16), transparent 55%),
    radial-gradient(800px 500px at 85% 25%, rgba(109,220,255,.10), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  display:flex;
  align-items:center;
  justify-content:center;
  animation: introFadeOut 2.5s ease forwards;
}

.css-intro::after{
  content:"";
  width: clamp(320px, 28vw, 420px);
  height: clamp(120px, 10vw, 160px);
  background:url("olympiclogo.png") center/contain no-repeat;
  will-change: transform, opacity;
  transform: translateZ(0) scale(.3);
  opacity:0;
  filter: drop-shadow(0 0 32px rgba(109,220,255,.35));
  animation: logoReveal 1.4s cubic-bezier(.16,.84,.44,1) forwards;
}

@keyframes logoReveal{
  0%{ opacity:0; transform: translateZ(0) scale(.3); }
  55%{ opacity:1; transform: translateZ(0) scale(1.08); }
  100%{ opacity:1; transform: translateZ(0) scale(1); }
}

@keyframes introFadeOut{
  0%,70%{ opacity:1; }
  100%{ opacity:0; visibility:hidden; }
}

@media (min-width: 1024px){
  .css-intro::after{ width:680px; height:300px; }
}

.header{
  position: relative;
  padding: 28px 20px 10px;
  text-align:center;
  background: transparent;
}

.header-inner{
  display:flex;
  justify-content:center;
}

.hero-panel{
  width: min(980px, 96vw);
  padding: 28px 22px 22px;
  border-radius: 24px;
  text-align:center;
  position: relative;
  overflow:hidden;

  background:
    radial-gradient(900px 280px at 50% -40px, var(--neon-a18), transparent 70%),
    linear-gradient(180deg, rgba(12,14,26,.88), rgba(8,10,18,.84));

  box-shadow: var(--shadow-2), 0 0 34px var(--neon-a22);
  border: 1px solid var(--neon-a18);
}

.hero-panel::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, var(--neon-a55), var(--neon-a18), rgba(255,255,255,.06));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events:none;
  opacity:.75;
}

.hero-panel::after{
  content:"";
  position:absolute;
  left:-20%; right:-20%; top:-70px;
  height: 140px;
  background: radial-gradient(circle at 50% 70%, var(--neon-a35), transparent 65%);
  filter: blur(6px);
  opacity: .9;
  pointer-events:none;
}

.main-logo{
  width: 720px;
  max-width: 92%;
  height:auto;
  display:block;
  margin: 0 auto;
  filter: drop-shadow(0 0 28px var(--neon-a22));
}

.tagline{
  margin-top: 10px;
  font-size: 20px;
  letter-spacing: .5px;
  color: rgba(255, 250, 200, .92);
  text-shadow: 0 0 16px rgba(255, 230, 120, .10);
}

.fast-badge{
  display:inline-block;
  margin-top: 14px;
  padding: 8px 18px;
  border-radius: 999px;

  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;

  color:#0b1020;
  background: linear-gradient(135deg, rgba(234,242,255,1) 0%, rgba(109,220,255,.88) 100%);
  box-shadow: var(--shadow-1), 0 0 22px var(--neon-a22);
}

.container{
  padding: 10px 30px 40px;
  max-width:11600px;
  margin:0 auto;
  position: relative;
  z-index: 5;
}

.games-launcher{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:22px;
}

@media (min-width: 900px) and (max-width: 1199px){
  .games-launcher{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 600px) and (max-width: 899px){
  .games-launcher{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 599px){
  .games-launcher{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap:14px; }
}

@media (max-width:768px){
  .header{ padding-top: 22px; }
  .tagline{ font-size: 16px; }
  .main-logo{ width: 360px; }
}

.game-card{
  position:relative;
  isolation:isolate;
  overflow: visible;
  background: var(--panel);
  border-radius: var(--radius);
  border: 1px solid var(--stroke);
  padding:14px;
  cursor:pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transition: transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  will-change: transform;
}

@supports not (backdrop-filter: blur(1px)){
  .game-card{ background: var(--panel-solid); }
}

.game-card:focus-visible{
  outline: 2px solid rgba(109,220,255,.55);
  outline-offset: 2px;
}

.game-card:hover{
  transform: translateY(-8px) scale(1.015);
  border-color: rgba(var(--neon-r), var(--neon-g), var(--neon-b), .28);
  box-shadow: var(--shadow-2),
    0 0 60px rgba(var(--neon-r), var(--neon-g), var(--neon-b), .35);
}

.game-card .hover-glow{
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  z-index:-1;
}

.game-card .hover-glow::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: calc(var(--radius) + 2px);
  opacity:0;
  transform: scale(.985);
  transition: opacity .22s ease, transform .22s ease;
  box-shadow:
    0 0 8px  var(--neon-a95),
    0 0 18px var(--neon-a80),
    0 0 40px rgba(var(--neon-r),var(--neon-g),var(--neon-b),.55),
    0 0 80px rgba(var(--neon-r),var(--neon-g),var(--neon-b),.35);
  filter: blur(1px);
}

.game-card .hover-glow::after{
  content:"";
  position:absolute;
  inset:-34px;
  border-radius: calc(var(--radius) + 18px);
  opacity:0;
  transform: scale(.98);
  transition: opacity .28s ease, transform .28s ease, filter .28s ease;
  background: radial-gradient(
    70% 60% at 50% 50%,
    rgba(var(--neon-r), var(--neon-g), var(--neon-b), .35) 0%,
    rgba(var(--neon-r), var(--neon-g), var(--neon-b), .22) 45%,
    transparent 75%
  );
  filter: blur(34px);
}

.game-card:hover .hover-glow::before{
  opacity:1;
  transform: scale(1);
}

.game-card:hover .hover-glow::after{
  opacity:1;
  transform: scale(1.03);
  filter: blur(40px);
}

.game-media{
  aspect-ratio: 1 / 1;
  position: relative;
  overflow:hidden;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(160px 100px at 30% 25%, rgba(109,220,255,0.13), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
}

.game-media::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    110deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.14) 40%,
    rgba(255,255,255,0) 80%
  );
  transform: translateX(-120%);
  animation: shimmer 1.2s ease-in-out infinite;
  opacity: .95;
  pointer-events:none;
}

.game-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  opacity:0;
  transform: scale(1.02);
  transition: opacity .25s ease, transform .55s var(--ease), filter .35s var(--ease);
}

.game-media.is-loaded::before{
  opacity:0;
  animation:none;
}

.game-media.is-loaded img{
  opacity:1;
  transform: scale(1);
}

.game-card:hover .game-media img{
  transform: scale(1.06);
  filter: brightness(1.05);
}

@keyframes shimmer{
  0%{ transform: translateX(-120%); }
  100%{ transform: translateX(120%); }
}

.game-name{
  margin-top: 12px;
  font-size: 15px;
  text-align:center;
  color: var(--text);
  opacity: .92;
  letter-spacing: .2px;
  color:#F9FFAB !important;
  opacity: 1 !important;
  text-shadow: 0 0 16px rgba(255, 249, 171, .14);
}

.badge-new{
  position:absolute;
  top:10px;
  left:12px;
  background:none !important;
  box-shadow:none !important;
  padding:0 !important;
}

.badge-new img{
  display:block;
  width: clamp(50px, 7vw, 56px);
  height:auto;
  pointer-events:none;
  user-select:none;
}

#game-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 20px;
}

#game-modal .modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(3, 7, 14, .78);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .25s ease;
}

#game-modal.is-open .modal-backdrop{ opacity: 1; }
#game-modal.is-closing .modal-backdrop{ opacity: 0; }

#game-modal .game-modal-content{
  --toolbar-height: 68px;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  background: #05070b;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0,0,0,.55);
  transform: translateY(10px) scale(.985);
  opacity: 0;
   transition: transform .25s ease, opacity .25s ease;
}

#game-modal .game-modal-content.is-switching-mode{
  transition: none !important;
}

#game-modal.is-open .game-modal-content{
  transform: translateY(0) scale(1);
  opacity: 1;
}

#game-modal.is-closing .game-modal-content{
  transform: translateY(10px) scale(.985);
  opacity: 0;
}

#game-modal .game-modal-content.view-desktop{
  width: min(1200px, 95vw, calc((92vh - 68px) * 16 / 9));
}

#game-modal .game-modal-content.view-phone-landscape{
  width: min(960px, 95vw, calc((92vh - 68px) * 19.5 / 9));
}

#game-modal .game-modal-content.view-phone-portrait{
  width: min(473px, 94vw, calc((94vh - 48px) * 10 / 19.5));
}

#game-modal .game-modal-toolbar{
  min-height: var(--toolbar-height);
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: linear-gradient(180deg, rgba(15,20,31,.98), rgba(9,13,22,.94));
  border-bottom: 1px solid rgba(255,255,255,.08);
}

#game-modal .game-modal-title{
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: #fff2b2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#game-modal .game-modal-view-switcher{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
}

#game-modal .game-modal-actions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

#game-modal .toolbar-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 42px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  color: #eef6ff;
  cursor: pointer;
  font: inherit;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, filter .18s ease;
}

#game-modal .toolbar-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.1);
  border-color: rgba(109,220,255,.35);
}

#game-modal .toolbar-mode-btn{
  min-width: 0;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 13px;
  white-space: nowrap;
}

#game-modal .toolbar-mode-btn.is-active{
  color: #06111d;
  background: linear-gradient(135deg, rgba(255,245,186,.96), rgba(109,220,255,.9));
  border-color: rgba(255,255,255,.2);
  font-weight: 700;
}

#game-modal .toolbar-btn-close{
  background: rgba(255, 90, 90, .12);
}

#game-modal .toolbar-btn-close:hover{
  background: rgba(255, 90, 90, .2);
  border-color: rgba(255, 120, 120, .35);
}

#game-modal .game-modal-frame-wrap{
  width: 100%;
  background: #000;
}

#game-modal .view-desktop .game-modal-frame-wrap{
  aspect-ratio: 16 / 9;
}

#game-modal .view-phone-landscape .game-modal-frame-wrap{
  aspect-ratio: 19.5 / 9;
}

#game-modal .view-phone-portrait .game-modal-frame-wrap{
  aspect-ratio: 9 / 19.5;
}









#game-modal iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #000;
}

#game-modal.is-fullscreen .game-modal-content{
  width: 100vw !important;
  height: 100vh !important;
  max-width: none !important;
  border-radius: 0;
}

#game-modal.is-fullscreen .game-modal-frame-wrap{
  flex: 1 1 auto;
  aspect-ratio: auto !important;
}

#game-modal.is-fullscreen iframe{
  height: 100%;
}

@media (max-width: 980px){
  #game-modal{
    padding: 10px;
  }

  #game-modal .game-modal-toolbar{
    grid-template-columns: 1fr;
    justify-items: center;
  }

  #game-modal .game-modal-title,
  #game-modal .game-modal-actions{
    width: 100%;
  }

  #game-modal .game-modal-title{
    text-align: center;
  }

  #game-modal .game-modal-actions{
    justify-content: center;
  }
}

@media (max-width: 640px){
  #game-modal .game-modal-view-switcher{
    width: 100%;
    flex-wrap: wrap;
    border-radius: 16px;
  }

  #game-modal .toolbar-mode-btn{
    flex: 1 1 calc(33.333% - 8px);
  }
}

.footer{
  padding:40px 20px;
  text-align:center;
  font-size:13px;
  color: rgba(234,242,255,.55);
}

@media (hover:hover){
  ::-webkit-scrollbar{ width: 10px; height: 10px; }
  ::-webkit-scrollbar-track{ background: rgba(255,255,255,.04); }
  ::-webkit-scrollbar-thumb{
    background: linear-gradient(180deg, rgba(77,163,255,.55), rgba(109,220,255,.35));
    border-radius: 999px;
    border: 2px solid rgba(11,16,32,.9);
  }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }

  .css-intro{
    animation: introFadeOut 1.7s ease forwards !important;
  }

  .css-intro::after{
    animation: logoReveal 1.1s cubic-bezier(.16,.84,.44,1) forwards !important;
  }

  .game-media::before{ animation:none; }
  .game-card, .game-media img, .close-game{
    transition:none !important;
  }
}

@media (hover:hover){
  .game-media img{
    transition: transform .55s cubic-bezier(.2,.8,.2,1),
                filter .35s cubic-bezier(.2,.8,.2,1),
                opacity .25s ease !important;
    transform: scale(1.02);
    will-change: transform;
  }

  .game-card:hover .game-media img{
    transform: scale(1.10) !important;
    filter: brightness(1.08) saturate(1.08) !important;
  }

  .game-card:hover .game-media{
    box-shadow: 0 0 0 1px rgba(255,255,255,.06),
                0 14px 30px rgba(0,0,0,.35),
                0 0 26px rgba(var(--neon-r), var(--neon-g), var(--neon-b), .18);
  }
}

@media (hover:hover){
  .hero-panel{
    transition: transform .6s cubic-bezier(.2,.8,.2,1),
                box-shadow .4s ease;
  }
  .hero-panel:hover{
    transform: scale(1.015);
    box-shadow:
      var(--shadow-2),
      0 0 50px rgba(var(--neon-r), var(--neon-g), var(--neon-b), .28);
  }
}

@media (hover:hover){
  .hero-panel{
    overflow: hidden; 
  }
  .main-logo{
    transition: transform .6s cubic-bezier(.2,.8,.2,1),
                filter .4s ease;
    will-change: transform;
  }
  .hero-panel:hover .main-logo{
    transform: scale(1.06);
    filter: drop-shadow(0 0 38px rgba(var(--neon-r), var(--neon-g), var(--neon-b), .35));
  }

}

#game-modal{
  background: rgba(0,0,0,0.72);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#game-modal .modal-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;

  background:
    radial-gradient(900px 500px at 20% 10%, rgba(77,163,255,.18), transparent 60%),
    radial-gradient(800px 500px at 85% 25%, rgba(109,220,255,.12), transparent 65%),
    linear-gradient(180deg,#070b14,#0b1020);
}

#game-modal .game-modal-content{
  position:relative;
  z-index:1;
}

#game-modal{
  background:#000; 
}

#game-modal .modal-backdrop{
  position:absolute;
  inset:0;
  z-index:0;

  background:
    radial-gradient(900px 520px at 50% -10%, rgba(255,46,166,.22), transparent 60%),
    radial-gradient(760px 520px at 20% 20%, rgba(161,0,255,.18), transparent 60%),
    radial-gradient(900px 620px at 85% 35%, rgba(255,0,85,.12), transparent 60%),
    linear-gradient(180deg, #050507, #08050b);

}
#game-modal .modal-backdrop::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(1200px 700px at 50% 10%, transparent 40%, rgba(0,0,0,.65) 100%);
  opacity:.35;
}

#game-modal .game-modal-content{
  position:relative;
  z-index:1;
}

.main-banner {
    width: 100%;
    margin-bottom: 30px;
    border-radius: 16px;
    overflow: hidden;
}

.main-banner img {
    width: 100%;
    display: block;
    border-radius: 16px;
    transition: transform 0.3s ease;
}

.main-banner img:hover {
    transform: scale(1.02);
}

.hero-panel.hero-split{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 22px;
  text-align:left;
}

.hero-carousel{
  flex: 0 0 auto;
}

.hero-frame{
  width: 460px;
  height: 250px;  
  border-radius: 18px;
  overflow:hidden;
  position:relative;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);

}

.hero-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit: cover;
  transition: opacity .35s var(--ease), transform .35s var(--ease);
  opacity: 1;
  transform: scale(1);
}

.hero-frame img.is-fading{
  opacity: 0;
  transform: scale(.985);
}

.hero-brand{
  flex: 1 1 auto;
  min-width: 0;
  text-align:center;
}

.hero-panel.hero-split .main-logo{
  width: 680px;
  max-width: 100%;
}

@media (max-width: 760px){
  .hero-panel.hero-split{
    flex-direction: column;
    text-align:center;
  }
  .hero-frame{
    width: 190px;
    height: 190px;
  }
}

.hero-panel.hero-split{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 22px;
  text-align:left;

  flex-direction: row-reverse; 
}

.hero-frame{
  width: 460px;
  height: 250px;       
  border-radius: 18px;
  overflow:hidden;
  position:relative;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

.hero-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit: cover;   
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}

.hero-brand{
  flex: 1 1 auto;
  min-width: 0;
  text-align:center;

  padding: 10px 0 18px;    
}

.hero-brand .tagline{
  margin-top: 10px;
}

.hero-brand .fast-badge{
  margin-top: 8px;
}

@media (max-width: 760px){
  .hero-frame{
    width: 100%;
    max-width: 520px;
    height: 240px;
  }
}

.header-inner{
  max-width: 11600px;       
  margin: 0 auto;
  padding: 0 18px;          
}

.hero-panel{
  width: 100%;
  margin: 0;               
  border-radius: 18px;
}

.hero-brand .tagline{
  font-size: 22px;          
  letter-spacing: .5px;
  margin-top: 12px;
  opacity: .95;
}

.hero-brand{
  padding: 18px 0 26px;     
}

.hero-frame{
  width: 560px;
  height: 280px;
  border-radius: 18px;
  overflow: hidden;
}

@media (max-width: 1000px){
  .hero-frame{ width: 480px; height: 240px; }
}

@media (max-width: 760px){
  .hero-frame{ width: 100%; max-width: 560px; height: 240px; }
}

.hero-panel.hero-split{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 24px;
}

.hero-frame{
  flex: 0 0 auto;
  width: 460px;     
  height: 250px;    
  border-radius: 18px;
  overflow:hidden;
}

.hero-frame img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.hero-brand{
  flex: 1 1 auto;
  padding: 20px 0 28px;
  text-align:center;
}

.hero-brand .tagline{
  font-size: 24px;   
  margin-top: 12px;
}

@media (max-width: 1100px){
  .hero-frame{ width: 500px; height: 250px; }
}

@media (max-width: 900px){
  .hero-frame{ width: 440px; height: 220px; }
}

@media (max-width: 760px){
  .hero-panel.hero-split{ flex-direction: column; }
  .hero-frame{ width: 100%; max-width: 560px; height: 240px; }
}

.hero-frame{
  flex: 0 0 auto;

  width: clamp(250px, 42vw, 460px);   
  aspect-ratio: 560 / 280;            
  height: auto;

  border-radius: 18px;
  overflow:hidden;
  position:relative;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

.hero-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit: cover;
}

.preload-ui{
  margin-top: 18px;
  width: min(520px, 80vw);
}

.preload-text{
  font-size: 14px;
  opacity: .9;
  margin-bottom: 10px;
  text-align: center;
  letter-spacing: .2px;
}

.preload-bar{
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
}

.preload-bar-fill{
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: rgba(80, 170, 255, .95);
  transition: width .12s linear;
}

#IntroOverlay{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  background: #101525; 
  pointer-events: all;

background:
    radial-gradient(900px 500px at 20% 10%, rgba(77,163,255,.16), transparent 55%),
    radial-gradient(800px 500px at 85% 25%, rgba(109,220,255,.10), transparent 60%),
    linear-gradient(180deg, #070b14, #0b1020);
}

#IntroOverlayInner{
  width: min(980px, 92vw);
  padding: 26px 22px;
  border-radius: 22px;
  background:
    radial-gradient(900px 280px at 50% -40px, rgba(64,140,255,.18), transparent 70%),
    linear-gradient(180deg, rgba(12,14,26,.88), rgba(8,10,18,.84));
  border: 1px solid rgba(64,140,255,.18);
  box-shadow: 0 10px 40px rgba(0,0,0,.45);
  text-align: center;
}

.intro-logo{
  width: min(820px, 90vw);
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 18px;
}

#IntroOverlay .preload-ui{
  width: min(520px, 80vw);
  margin: 0 auto;
}

body:not(.is-ready) > header,
body:not(.is-ready) > main,
body:not(.is-ready) > footer{
  opacity: 0;
  pointer-events: none;
}

body.is-ready > header,
body.is-ready > main,
body.is-ready > footer{
  opacity: 1;
  transition: opacity .18s ease;
}

body.is-ready #IntroOverlay{
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
body.is-ready #IntroOverlay.removed{
  display: none;
}

.hero-frame{
  position: relative;
  overflow: hidden;
}

#heroSlide{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  will-change: transform, opacity;
  transform: translateZ(0);
  backface-visibility: hidden;
}

#heroSlide.slide-out{
  animation: heroParallaxOut .6s cubic-bezier(.22,.61,.36,1) forwards;
}

#heroSlide.slide-in{
  animation: heroParallaxIn 1.1s cubic-bezier(.22,.61,.36,1) forwards;
}

@keyframes heroParallaxOut{
  0%{
    opacity: 1;
    transform: translateX(0) scale(1);
  }
  100%{
    opacity: 0;
    transform: translateX(-3%) scale(1.03);
  }
}

@keyframes heroParallaxIn{
  0%{
    opacity: 0;
    transform: translateX(3%) scale(1.05);
  }
  100%{
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

@media (max-width: 760px){
  .hero-carousel{
    order: 1;
  }
  .hero-brand{
    order: 2;
  }
}

@media (max-width: 760px){
  .hero-panel.hero-split{
    flex-direction: column;
    align-items: center;
  }
  .hero-brand{ order: 1; }
  .hero-carousel{ order: 2; }
}

.header{
  position: relative;
}

.header::after{
  content: "";
  display: block;
  height: 40px;
  margin-top: 18px;

  background:
    radial-gradient(
      60% 100% at 50% 0%,
      rgba(77,163,255,.35),
      transparent 70%
    );

  filter: blur(10px);
  opacity: .8;
}   

.container{
  position: relative;
}

.container::after{
  content: "";
  display: block;
  height: 1px;
  margin: 50px auto 30px;   
  width: min(1100px, 94%);

  background: linear-gradient(
    90deg,
    transparent,
    rgba(77,163,255,.6),
    rgba(109,220,255,.9),
    rgba(77,163,255,.6),
    transparent
  );

  box-shadow: 0 0 14px rgba(109,220,255,.4);
}

@media (max-width: 760px){
  .hero-brand .tagline{
    font-size: 12px !important; 
    margin-top: 18px !important;
  }
}

@media (orientation: landscape) and (max-width: 1000px){
  .hero-brand .tagline{
    font-size: 16px !important; 
  }
}

a.hero-frame{
  display: block;
  text-decoration: none;
  color: inherit;
}

@media (max-width: 760px) and (orientation: portrait){
  .hero-brand{
    position: relative;
    padding-bottom: 18px; 
  }

  .hero-brand::after{
    content:"";
    display:block;
    height: 1px;
    width: min(520px, 92%);
    margin: 16px auto 0;

    background: linear-gradient(
      90deg,
      transparent,
      rgba(77,163,255,.6),
      rgba(109,220,255,.9),
      rgba(77,163,255,.6),
      transparent
    );

    box-shadow: 0 0 14px rgba(109,220,255,.4);
  }
}

@media (max-width: 760px) and (orientation: portrait){
  .hero-carousel{
    margin-top: -10px;
  }
}

.hero-brand{
  padding-bottom: 10px;
}

.container{
  padding: 10px 30px 40px;
}

.games-launcher{
  margin-top: -8px;
}

@media (hover: hover) and (pointer: fine){
  .badge-new img{
    width: clamp(72px, 6vw, 80px);
  }
}

  .badge-new{
    top: 9px;
    left: 20px;
  }

@media (hover: hover) and (pointer: fine){
  .badge-new{
    top: 6px;
    left: 20px;
  }
}

a{
  text-decoration: none;
}

 .footer{
  padding:20px 20px 26px;
}

.hero-frame{
  position: relative;
  z-index: 2;
}

.hero-panel::after{
  top:-90px;
  height:90px;
}

#game-modal.is-open .game-modal-content{
  animation: modalIn .48s cubic-bezier(.2,.8,.2,1) both;
  transform-origin: 50% 50%;
}
#game-modal.is-closing .game-modal-content{
  animation: modalOut .18s ease both;
}

@keyframes modalIn{
  from{
    opacity:0;
    transform: perspective(1200px) rotateY(-8deg) translateY(14px) scale(.985);
    filter: blur(3px);
  }
  to{
    opacity:1;
    transform: perspective(1200px) rotateY(0deg) translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes modalOut{
  to{
    opacity:0;
    transform: perspective(1200px) rotateY(4deg) translateY(10px) scale(.99);
    filter: blur(2px);
  }
}

body.modal-open > header,
body.modal-open > main,
body.modal-open > footer{
  visibility: hidden;
}

body.modal-open #game-modal{
  visibility: visible;
}

body.modal-open *{
  animation-play-state: paused !important;
}
body.modal-open #game-modal,
body.modal-open #game-modal *{
  animation-play-state: running !important;
}


@media (max-width: 768px){
  body{
    background:
      radial-gradient(380px 180px at 50% 0%, rgba(77,163,255,.12), transparent 70%),
      linear-gradient(180deg, var(--bg0), var(--bg1));
    background-attachment: scroll;
  }

  #IntroOverlay{
    background:
      radial-gradient(380px 180px at 50% 0%, rgba(77,163,255,.12), transparent 70%),
      linear-gradient(180deg, var(--bg0), var(--bg1));
  }

  body::before{
    display:none;
  }
}

#IntroOverlay{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
}

#IntroOverlayInner{
  width: min(980px, 92vw);
  padding: 26px 22px;
  border-radius: 22px;
  background:
    radial-gradient(900px 280px at 50% -40px, rgba(64,140,255,.18), transparent 70%),
    linear-gradient(180deg, rgba(12,14,26,.88), rgba(8,10,18,.84));
  border: 1px solid rgba(64,140,255,.18);
  box-shadow: 0 10px 40px rgba(0,0,0,.45);
  text-align: center;

  opacity: 0;
  transform: translateY(38px) scale(.965);
  filter: blur(8px);

  animation: introCardIn .9s cubic-bezier(.16,.84,.44,1) forwards;
}

@keyframes introCardIn{
  0%{
    opacity: 0;
    transform: translateY(38px) scale(.365);
    filter: blur(8px);
  }
  60%{
    opacity: 1;
    transform: translateY(-4px) scale(1.05);
    filter: blur(0);
  }
  100%{
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-view-switcher .js-view-mode{
  display: inline-flex;
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-view-switcher{
  width: auto;
  flex-wrap: nowrap;
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-toolbar{
  grid-template-columns: 1fr;
  justify-items: center;
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-title,
#game-modal .game-modal-content.view-phone-portrait .game-modal-actions{
  display: none;
}

#game-modal .game-modal-content{
  border:1px solid transparent;

  background:
    linear-gradient(#0b1220,#0b1220) padding-box,
    linear-gradient(135deg,
      rgba(46,203,255,0.35),
      rgba(124,58,237,0.35),
      rgba(255,47,208,0.35)
    ) border-box;

  box-shadow:0 25px 80px rgba(0,0,0,0.9);
}

#game-modal .game-modal-view-switcher{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;

  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 8px 24px rgba(0,0,0,0.35);
}

#game-modal .toolbar-mode-btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;

  background:
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  color: rgba(255,255,255,0.88);

  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 4px 14px rgba(0,0,0,0.28);

  transition:
    transform .16s ease,
    background .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#game-modal .toolbar-mode-btn > span[aria-hidden="true"]{
  font-size: 15px;
  opacity: 0.9;
  transform: translateY(-.5px);
}

#game-modal .toolbar-mode-btn:hover{
  color: #fff;
  border-color: rgba(255,255,255,0.16);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.04));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 8px 18px rgba(0,0,0,0.34);
}

#game-modal .toolbar-mode-btn:active{
  transform: translateY(1px) scale(0.985);
}

#game-modal .toolbar-mode-btn.is-active{
  color: #0d1720;
  border-color: rgba(196,245,233,0.65);

  background:
    linear-gradient(180deg, #dff8ef 0%, #c8f1e4 100%);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.5),
    0 8px 20px rgba(0,0,0,0.28),
    0 0 0 1px rgba(217,255,244,0.16);
}

#game-modal .toolbar-mode-btn.is-active:hover{
  background:
    linear-gradient(180deg, #e8fff7 0%, #d4f7ec 100%);
}

#game-modal .toolbar-mode-btn:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 2px rgba(90,180,255,0.35),
    0 0 0 5px rgba(90,180,255,0.12),
    inset 0 1px 0 rgba(255,255,255,0.08);
}

#game-modal .toolbar-btn svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  display:block;
  transition:transform .15s ease, opacity .15s ease;
}

#game-modal .toolbar-mode-btn .mode-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
}

#game-modal .toolbar-mode-btn{
  gap:8px;
}

#game-modal .toolbar-btn:hover svg{
  transform:scale(1.05);
}

#game-modal .toolbar-mode-btn.is-active svg{
  opacity:1;
}

#game-modal .toolbar-btn:not(.is-active) svg{
  opacity:.85;
}

#game-modal .game-modal-content.view-phone-portrait
.game-modal-view-switcher .toolbar-mode-btn span:last-child{
  display:none;
}


#game-modal .game-modal-content.view-phone-portrait .game-modal-view-switcher{
  width: auto;
  gap: 8px;
  padding: 6px 8px;
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-view-switcher .toolbar-mode-btn{
  width: 52px;
  height: 38px;
  min-width: 52px;
  padding: 0 10px;
  justify-content: center;
  border-radius: 12px;
}

#game-modal .game-modal-content.view-phone-portrait .game-modal-view-switcher .toolbar-mode-btn svg{
  width: 22px;
  height: 22px;
}


#game-modal .game-modal-content.view-phone-portrait
.game-modal-view-switcher .toolbar-mode-btn[data-mode="desktop"] span:last-child{
  display:inline;
}

#game-modal .game-modal-content.view-phone-portrait
.toolbar-mode-btn[data-mode="desktop"]{
  width:auto;
  padding:0 12px;
}

#game-modal.is-fullscreen .game-modal-content{
  transition: none !important;
}

#game-modal.is-fullscreen .game-modal-toolbar{
  opacity:0;
  pointer-events:none;
  height:0;
  overflow:hidden;
  display: none !important;
}

#game-modal.is-fullscreen .game-modal-frame-wrap{
  height: 100vh !important;
}

#game-modal .game-modal-view-switcher{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border-radius:16px;

  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 8px 22px rgba(0,0,0,.32);
}

#game-modal .toolbar-mode-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;

  padding:0 12px;
  min-height:36px;

  border:none;
  border-radius:10px;
  background:transparent;

  color:rgba(255,255,255,.88);
  font-size:14px;
  font-weight:500;
  line-height:1;
  white-space:nowrap;

  cursor:pointer;
  transition:
    color .16s ease,
    background .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}

#game-modal .toolbar-mode-btn:hover{
  color:#fff;
  background: rgba(255,255,255,.04);
}

#game-modal .toolbar-mode-btn.is-active{
  border-radius:12px;
  color:#07141e;

  background: linear-gradient(
    180deg,
    #edfdf7 0%,
    #d4f3e8 100%
  );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    0 4px 12px rgba(0,0,0,.28);
}

#game-modal .toolbar-mode-btn:active{
  transform:scale(.97);
}

#game-modal .toolbar-mode-btn .mode-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
}

#game-modal .toolbar-mode-btn svg{
  width:16px;
  height:16px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  display:block;
}

#game-modal .game-modal-content{
  position: relative;
}

#game-modal iframe{
  position: relative;
  z-index: 1;
}

#game-modal .fullscreen-back-btn{
  position: absolute;
  top: 14px;
right: 14px;
left: auto;
  z-index: 50;

  width: 74px;
  height: 74px;
  display: none;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  background: rgba(15,20,31,.88);
  color: #eef6ff;
  cursor: pointer;

  box-shadow:
    0 10px 30px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.05);

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease,
    opacity .18s ease;
}

#game-modal .fullscreen-back-btn:hover{
  transform: translateY(-1px);
  background: rgba(24,31,46,.94);
  border-color: rgba(109,220,255,.35);
}

#game-modal .fullscreen-back-btn svg{
  width: 50px;
  height: 50px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}

#game-modal.is-fullscreen .fullscreen-back-btn{
  display: inline-flex;
}

#game-modal .game-modal-content.view-phone-portrait{
  width: min(460px, 92vw, calc((88vh - 68px) * 11 / 19.5));
}

#game-modal .view-phone-portrait .game-modal-frame-wrap{
  aspect-ratio: 10 / 19.5;
}

#game-modal .toolbar-mode-btn{
  padding: 0 10px;
  min-width: 56px;
}

#game-modal .toolbar-mode-btn .mode-icon{
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
}

#game-modal .toolbar-mode-btn .mode-icon img{
  max-width: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
}

#game-modal .toolbar-mode-btn span:last-child{
  display: none;
}

#game-modal .game-modal-view-switcher{
  gap: 6px;
  padding: 4px;
  border-radius: 18px;
  background: rgba(15, 23, 42, 0.72);
  border: 1px solid rgba(255,255,255,0.08);
}

#game-modal .toolbar-mode-btn{
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
}

#game-modal .toolbar-mode-btn .mode-icon{
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
}

#game-modal .toolbar-mode-btn svg{
  display: none;
}

#game-modal .toolbar-mode-btn span:last-child{
  display: none;
}

#game-modal .toolbar-mode-btn .mode-icon{
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
}

#game-modal .toolbar-mode-btn .mode-icon img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

#game-modal .toolbar-mode-btn .sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#game-modal .game-modal-title{
  display: flex;
  align-items: center;
  justify-content: center; 

  text-align: center;     

  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.3px;

  padding: 6px 12px;
  border-radius: 12px;

  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);

  text-shadow: 0 0 6px rgba(120, 180, 255, 0.25);
  backdrop-filter: blur(6px);

  max-width: min(220px, 30vw);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#game-modal .toolbar-mode-btn .mode-icon{
  width: 32px;
  height: 34px;
  flex: 0 0 34px;
}


html.modal-open,
body.modal-open{
  overflow: hidden !important;
}

body.modal-open{
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
}




.game-card{
  position:relative;
  isolation:isolate;
  overflow: visible;
  background: var(--panel);
  border-radius: var(--radius);
  border: 1px solid var(--stroke);
  padding:14px;
  cursor:pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transition: transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  will-change: transform;

  -webkit-tap-highlight-color: transparent;
  outline: none;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}




#game-modal{
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(77,163,255,.18), transparent 60%),
    radial-gradient(800px 500px at 85% 25%, rgba(109,220,255,.12), transparent 65%),
    linear-gradient(180deg, #070b14, #0b1020) !important;
}

#game-modal .modal-backdrop,
#game-modal .modal-backdrop::after{
  display: none !important;
  content: none !important;
}




.hero-panel{
  position: relative;
  width: 100%;
  margin: 0;
  border-radius: 24px;
  padding: 26px 30px;
  overflow: hidden;

  background:
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018)),
    linear-gradient(135deg, rgba(14,18,26,.92), rgba(8,10,14,.96));

  border: 1px solid rgba(255,255,255,.08);

  box-shadow:
    0 18px 45px rgba(0,0,0,.26),
    0 32px 100px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.06);
}


body.direct-game-mode .header,
body.direct-game-mode .container,
body.direct-game-mode .footer {
  display: none !important;
}
.game-card:hover .game-name{
  font-weight: 700;
  transform: scale(1.05);
}


    html, body {
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;
      min-height: 100% !important;
      background: #0b1020 !important;
      color: white !important;
    }
