:root{
  --bg:#0b0d12;
  --surface:#151821;
  --text:#f5f7fa;
  --muted:#9aa3b2;
  --primary:#119DD9;
  --primary-text:#ffffff;
  --border:#262b36;
  --font-heading:'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-body:'Segoe UI', system-ui, -apple-system, sans-serif;
  --radius-md:12px;
  --radius-lg:20px;
  --space-md:16px;
  --space-lg:32px;
  --space-xl:64px;
  --motion-duration:0.5s;
  --motion-ease:cubic-bezier(0.2, 0.7, 0.2, 1);
  --content-max:72rem;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;--panel:color-mix(in srgb, var(--primary) 16%, var(--surface));}
a{color:inherit;}
img{max-width:100%;}

.site-nav{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);}
.site-nav-inner{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;max-width:var(--content-max);margin:0 auto;}
.site-logo-link{margin-right:auto;display:inline-flex;align-items:center;text-decoration:none;}
.site-logo{display:inline-flex;align-items:center;height:40px;margin-right:auto;}
.site-logo img,.site-logo svg{height:40px;width:auto;max-width:240px;object-fit:contain;display:block;}
.nav-links{display:flex;gap:var(--space-lg);flex-wrap:wrap;align-items:center;}
.nav-links a{color:var(--muted);text-decoration:none;font-weight:600;}
.nav-links a:hover{color:var(--text);}
.nav-cta{padding:0.55rem 1.3rem;border-radius:var(--radius-lg);text-decoration:none;color:var(--primary-text) !important;background:var(--primary);font-weight:700;}

/* Split hero: copy left, decorative panel right (graphic sits on the panel). */
.hero{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:70vh;padding:var(--space-xl) 48% var(--space-xl) var(--space-lg);max-width:var(--content-max);margin:0 auto;text-align:left;overflow:hidden;}
.hero::after{content:"";position:absolute;top:0;right:0;width:44%;height:100%;background:linear-gradient(150deg,var(--panel),transparent);border-left:1px solid var(--border);pointer-events:none;}
.hero h1{font-family:var(--font-heading);font-size:clamp(2.4rem,5.5vw,4rem);line-height:1.04;margin:0 0 var(--space-md);}
.hero p{color:var(--muted);font-size:1.25rem;margin:0;max-width:34rem;}
.hero-badge{display:inline-block;margin-bottom:var(--space-md);padding:0.35rem 0.9rem;border:1px solid var(--border);border-radius:999px;font-size:0.8rem;color:var(--text);background:var(--panel);}
.hero-graphic{position:absolute;top:50%;right:8%;transform:translateY(-50%);width:min(28%,260px);height:auto;aspect-ratio:1;opacity:0.9;pointer-events:none;}
.hero-graphic svg{width:100%;height:100%;}
@media (max-width:760px){
  .hero{padding:var(--space-xl) var(--space-lg);min-height:auto;text-align:center;align-items:center;}
  .hero::after{display:none;}
  .hero p{margin:0 auto;}
  .hero-graphic{position:static;transform:none;width:120px;margin:var(--space-lg) auto 0;}
}

.btn{display:inline-block;padding:0.9rem 1.9rem;border-radius:var(--radius-lg);text-decoration:none;font-weight:700;}
.btn-primary{background:var(--primary);color:var(--primary-text);}
.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border);}
.cta{display:flex;gap:var(--space-md);padding:0 var(--space-lg) var(--space-xl);flex-wrap:wrap;max-width:var(--content-max);margin:0 auto;}

/* Dense three-up feature grid. */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);padding:var(--space-xl) var(--space-lg);max-width:var(--content-max);margin:0 auto;}
@media (max-width:860px){.features{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.features{grid-template-columns:1fr;}}
.feature{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;}
.feature-media{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--panel),transparent);overflow:hidden;}
.feature-media img{width:100%;height:100%;object-fit:cover;display:block;}
.feature-icon{width:64px;height:64px;color:var(--primary);}
.feature-icon svg{width:100%;height:100%;}
.feature-text{padding:var(--space-lg);flex:1 1 auto;min-width:0;}
.feature h3{margin:0 0 var(--space-md);font-family:var(--font-heading);}
.feature p{margin:0;color:var(--muted);}
.feature-foot{padding:var(--space-md) var(--space-lg) var(--space-lg);border-top:1px solid var(--border);}
.feature-btn{display:block;width:100%;text-align:center;}

/* Full-width contrasting closing band. */
.closing{text-align:center;max-width:none;margin:0;padding:var(--space-xl) var(--space-lg);background:var(--primary);color:var(--primary-text);}
.closing h2{font-family:var(--font-heading);font-size:2rem;margin:0 0 var(--space-md);}
.closing p{max-width:42rem;margin:0 auto var(--space-lg);opacity:0.9;}
.closing .btn-primary{background:var(--primary-text);color:var(--primary);}

.prose{max-width:46rem;margin:0 auto;padding:var(--space-xl) var(--space-lg);}
.prose h1{font-family:var(--font-heading);font-size:2.2rem;margin:0 0 var(--space-lg);}
.prose h2{font-family:var(--font-heading);margin:var(--space-lg) 0 var(--space-md);}
.prose p{color:var(--muted);margin:0 0 var(--space-md);}
.disclaimer{color:var(--muted);font-size:0.8rem;text-align:center;padding:0 var(--space-lg) var(--space-md);max-width:48rem;margin:0 auto;}

.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);padding:var(--space-lg) var(--space-lg) var(--space-xl);max-width:var(--content-max);margin:0 auto;}
@media (max-width:760px){.game-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.game-grid{grid-template-columns:1fr;}}
.game-tile{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);text-decoration:none;color:var(--text);}
.game-thumb{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--panel),transparent);overflow:hidden;}
.game-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.game-thumb span{width:64px;height:64px;color:var(--primary);}
.game-thumb svg{width:100%;height:100%;}
.game-name{padding:var(--space-md);font-weight:700;text-align:center;}
.game-detail{max-width:var(--content-max);margin:0 auto;padding:var(--space-lg);}
.game-detail h1{font-family:var(--font-heading);text-align:center;margin:0 0 var(--space-lg);}
.game-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:#000;}
.game-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.game-embed{max-width:460px;margin:0 auto;}
.game-embed iframe{width:100%;height:860px;border:0;display:block;border-radius:var(--radius-md);overflow:hidden;}
.game-desc{color:var(--muted);max-width:46rem;margin:var(--space-lg) auto;}
.game-back{display:inline-block;margin-top:var(--space-md);color:var(--primary);text-decoration:none;font-weight:600;}

.site-footer{border-top:1px solid var(--border);padding:var(--space-xl) var(--space-lg) var(--space-lg);}
.footer-cols{display:grid;gap:var(--space-lg);grid-template-columns:1.4fr repeat(auto-fit,minmax(150px,1fr));max-width:var(--content-max);margin:0 auto var(--space-lg);}
.footer-logo{display:inline-flex;height:30px;margin-bottom:var(--space-md);}
.footer-logo img,.footer-logo svg{height:30px;width:auto;max-width:200px;object-fit:contain;}
.footer-brand p{color:var(--muted);font-size:0.88rem;margin:0;max-width:24rem;}
.footer-col h4{font-family:var(--font-heading);font-size:0.95rem;margin:0 0 var(--space-md);}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.5rem;}
.footer-col a{color:var(--muted);text-decoration:none;font-size:0.88rem;}
.footer-col a:hover{color:var(--primary);}
.footer-bottom{display:flex;flex-direction:column;gap:0.3rem;align-items:center;text-align:center;color:var(--muted);font-size:0.8rem;border-top:1px solid var(--border);padding-top:var(--space-md);max-width:var(--content-max);margin:0 auto;}
.global-disclaimer{color:var(--muted);font-size:0.8rem;text-align:center;padding:0 var(--space-lg) var(--space-md);}
.block-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-lg);}

.bg-animated{animation:bg-pan 18s ease infinite;}
@keyframes bg-pan{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
/* Motion presets (phase 13). */
/* hero_stagger: transform-only entrance so the LCP hero copy paints immediately and never shifts layout. */
.motion-stagger > *{animation:rise var(--motion-duration) var(--motion-ease) both;}
.motion-stagger > *:nth-child(2){animation-delay:0.08s;}
.motion-stagger > *:nth-child(3){animation-delay:0.16s;}
.motion-stagger > *:nth-child(4){animation-delay:0.24s;}
@keyframes rise{from{transform:translateY(10px);}to{transform:none;}}
/* scroll_reveal: JS-gated so content stays visible if the script never runs. */
.motion-ready [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity var(--motion-duration) var(--motion-ease),transform var(--motion-duration) var(--motion-ease);}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none;}
/* hover_micro */
.motion-hover .btn{transition:transform 0.15s var(--motion-ease),box-shadow 0.15s var(--motion-ease);}
.motion-hover .btn:hover,.motion-hover .btn:focus-visible{transform:translateY(-2px);}
.motion-hover .feature{transition:transform 0.2s var(--motion-ease),border-color 0.2s var(--motion-ease);}
.motion-hover .feature:hover{transform:translateY(-3px);border-color:var(--primary);}
/* Always honor the OS preference. */
@media (prefers-reduced-motion: reduce){
  .bg-animated{animation:none;}
  .motion-stagger > *{animation:none;}
  .motion-ready [data-reveal]{opacity:1;transform:none;transition:none;}
  .motion-hover .btn,.motion-hover .feature{transition:none;}
}
/* Per-site hard off-switch. */
.motion-reduced .bg-animated{animation:none;}
.motion-reduced [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
.motion-reduced .motion-stagger > *{animation:none !important;}
:root{--primary:#15d912;--primary-text:#ffffff;}