: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;display:grid;grid-template-columns:260px 1fr;align-items:start;}
a{color:inherit;}
img{max-width:100%;}

/* Left rail: full height, stacked, sticky. */
.site-nav{grid-row:1/-1;align-self:stretch;position:sticky;top:0;height:100vh;overflow:auto;padding:var(--space-lg);background:var(--surface);border-right:1px solid var(--border);}
.site-nav-inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-lg);max-width:none;margin:0;}
.site-logo-link{margin:0;display:inline-flex;align-items:center;text-decoration:none;}
.site-logo{display:inline-flex;align-items:center;height:40px;margin:0;}
.site-logo img,.site-logo svg{height:40px;width:auto;max-width:200px;object-fit:contain;display:block;}
.nav-links{display:flex;flex-direction:column;align-items:flex-start;gap:0.75rem;width:100%;}
.nav-links a{color:var(--muted);text-decoration:none;font-weight:600;transition:color 0.2s var(--motion-ease);}
.nav-links a:hover{color:var(--text);}
.nav-cta{margin-top:auto;padding:0.6rem 1.2rem;border-radius:var(--radius-lg);font-weight:700;text-decoration:none;color:var(--primary-text) !important;background:var(--primary);text-align:center;}

/* Content sits in the right column. */
main,.site-footer{grid-column:2;}

.hero{padding:var(--space-xl) var(--space-lg);max-width:60rem;margin:0 auto;text-align:left;position:relative;}
.hero h1{font-family:var(--font-heading);font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 var(--space-md);}
.hero p{color:var(--muted);font-size:1.2rem;margin:0;max-width:42rem;}
.hero-badge{display:inline-block;margin-bottom:var(--space-md);padding:0.3rem 0.9rem;border:1px solid var(--border);border-radius:999px;font-size:0.8rem;color:var(--muted);}
.hero-graphic{position:absolute;top:var(--space-lg);right:var(--space-lg);width:96px;height:96px;opacity:0.4;pointer-events:none;}
.hero-graphic svg{width:100%;height:100%;}

.btn{display:inline-block;padding:0.85rem 1.75rem;border-radius:var(--radius-lg);text-decoration:none;font-weight:600;}
.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;}

.features{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);padding:0 var(--space-lg) var(--space-xl);max-width:64rem;margin:0 auto;}
@media (max-width:760px){.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:var(--bg);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;}

.closing{text-align:left;max-width:60rem;margin:0 auto;padding:var(--space-xl) var(--space-lg);}
.closing h2{font-family:var(--font-heading);font-size:1.8rem;margin:0 0 var(--space-md);}
.closing p{color:var(--muted);max-width:42rem;margin:0 0 var(--space-lg);}

.prose{max-width:46rem;margin:0;padding:var(--space-xl) var(--space-lg);}
.prose h1{font-family:var(--font-heading);font-size: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;padding:0 var(--space-lg) var(--space-md);max-width:48rem;}

.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);padding:0 var(--space-lg) var(--space-xl);max-width:64rem;margin:0 auto;}
@media (max-width:560px){.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:var(--bg);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:600;text-align:center;}
.game-detail{max-width:64rem;margin:0 auto;padding:var(--space-lg);}
.game-detail h1{font-family:var(--font-heading);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) 0;}
.game-back{display:inline-block;margin-top:var(--space-md);color:var(--primary);text-decoration:none;}

.site-footer{border-top:1px solid var(--border);padding:var(--space-lg);}
.footer-cols{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:60rem;margin:0 auto var(--space-lg);}
.footer-brand p{color:var(--muted);font-size:0.85rem;margin:var(--space-md) 0 0;}
.footer-logo{display:inline-flex;height:28px;margin-bottom:var(--space-md);}
.footer-logo img,.footer-logo svg{height:28px;width:auto;max-width:200px;object-fit:contain;}
.footer-col h4{font-family:var(--font-heading);font-size:0.9rem;margin:0 0 var(--space-md);}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.4rem;}
.footer-col a{color:var(--muted);text-decoration:none;font-size:0.85rem;}
.footer-col a:hover{color:var(--primary);}
.footer-bottom{display:flex;flex-direction:column;gap:0.3rem;text-align:left;color:var(--muted);font-size:0.8rem;border-top:1px solid var(--border);padding-top:var(--space-md);max-width:60rem;margin:0 auto;}
.global-disclaimer{color:var(--muted);font-size:0.8rem;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);}

/* Stack the rail into a top bar on narrow screens. */
@media (max-width:860px){
  body{display:block;}
  .site-nav{position:static;height:auto;border-right:0;border-bottom:1px solid var(--border);}
  .site-nav-inner{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-md);}
  .nav-links{flex-direction:row;flex-wrap:wrap;width:auto;}
  .nav-cta{margin-top:0;}
  main,.site-footer{grid-column:auto;}
}

.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:#3312d9;--primary-text:#ffffff;}