
  :root{
    --font-display:"Poppins","Segoe UI",system-ui,sans-serif;
    --font-body:"Inter","Segoe UI",system-ui,sans-serif;
    --maxw:1040px;
    --ease:cubic-bezier(.2,.8,.2,1);
  }
  [data-theme="playful"]{
    --bg:#fff7fb;
    --bg-alt:#fff;
    --surface:#fff;
    --text:#241a2e;
    --muted:#5b5165;
    --border:#f0e2ee;
    --accent:#7c3aed;
    --brand-grad:linear-gradient(120deg,#7c3aed,#ec4899 55%,#06b6d4);
    --gate-grad:linear-gradient(120deg,#1d3557,#2ba58b 55%,#3fb0f0);
    --hero-bg:radial-gradient(800px 500px at 5% 0%,rgba(63,176,240,.3),transparent 58%),radial-gradient(700px 470px at 100% 20%,rgba(43,165,139,.24),transparent 60%),linear-gradient(180deg,#ecfff6,#fff);
    --nav-bg:rgba(255,255,255,.78);
    --shadow:0 28px 70px -28px rgba(29,53,87,.44);
    --shadow-sm:0 14px 36px -18px rgba(124,58,237,.25);
  }
  [data-theme="dark"]{
    --bg:#0a0a12;
    --bg-alt:#0f0f1c;
    --surface:rgba(255,255,255,.045);
    --text:#f2f2fb;
    --muted:#9a9ab5;
    --border:rgba(255,255,255,.09);
    --accent:#a855f7;
    --brand-grad:linear-gradient(120deg,#a855f7,#f43f9d 55%,#22d3ee);
    --gate-grad:linear-gradient(120deg,#eef4fb,#42d3b4 55%,#69c8fa);
    --hero-bg:radial-gradient(800px 500px at 5% 0%,rgba(63,176,240,.2),transparent 58%),radial-gradient(700px 470px at 100% 20%,rgba(43,165,139,.18),transparent 60%),linear-gradient(180deg,#122a30,#0a0a12);
    --nav-bg:rgba(10,10,18,.72);
    --shadow:0 30px 70px -24px rgba(0,0,0,.72);
    --shadow-sm:0 16px 40px -20px rgba(0,0,0,.65);
  }

  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    min-height:100vh;
    overflow-x:hidden;
    color:var(--text);
    background:var(--bg);
    font-family:var(--font-body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    transition:background .45s var(--ease),color .45s var(--ease);
  }
  a{color:inherit;text-decoration:none;}
  h1,h2,h3{font-family:var(--font-display);line-height:1.08;letter-spacing:-.025em;}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:24px;}
  .brand-text{
    color:transparent;
    background:var(--gate-grad);
    background-size:220% auto;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:brandShift 9s ease-in-out infinite;
  }
  @keyframes brandShift{0%,100%{background-position:0 center;}50%{background-position:100% center;}}

  .download-guide{display:none;}
  header{
    position:sticky;
    top:0;
    z-index:20;
    border-bottom:1px solid var(--border);
    background:var(--nav-bg);
    backdrop-filter:saturate(180%) blur(14px);
  }
  nav{display:flex;align-items:center;justify-content:space-between;height:68px;}
  .logo{display:flex;align-items:center;}
  .logo img{display:block;width:auto;height:28px;}
  .logo-dark{display:none!important;}
  [data-theme="dark"] .logo-light{display:none!important;}
  [data-theme="dark"] .logo-dark{display:block!important;}
  .back{color:var(--muted);font-weight:650;font-size:.9rem;}
  .back:hover{color:var(--text);}
  .gamebar{border-bottom:1px solid var(--border);background:var(--bg-alt);}
  .gamebar-inner{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:18px;}
  .game-identity{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:750;}
  .game-identity img{width:36px;height:36px;border-radius:10px;box-shadow:var(--shadow-sm);}
  .game-tabs{display:flex;min-width:0;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);}
  .game-tabs a{padding:7px 13px;border-radius:999px;color:var(--muted);font-family:var(--font-display);font-size:.78rem;font-weight:650;white-space:nowrap;}
  .game-tabs a:hover{color:var(--text);}
  .game-tabs a[aria-current="page"]{color:#fff;background:#1d3557;}
  [data-theme="dark"] .game-tabs a[aria-current="page"]{background:#2ba58b;}

  .hero{
    overflow:hidden;
    border-bottom:1px solid var(--border);
    background:var(--hero-bg);
  }
  .hero-inner{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:58px;
    align-items:center;
    min-height:660px;
    padding-block:72px 84px;
  }
  .eyebrow{
    display:inline-block;
    margin-bottom:16px;
    color:#236b83;
    font-family:var(--font-display);
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  [data-theme="dark"] .eyebrow{color:#78d4e8;}
  .hero h1{max-width:690px;margin-bottom:20px;font-size:clamp(3rem,6vw,4.8rem);}
  .lead{max-width:44ch;margin-bottom:28px;color:var(--muted);font-size:1.13rem;}
  .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:13px;}
  .appstore-badge{display:inline-block;line-height:0;transition:transform .18s var(--ease);}
  .appstore-badge:hover{transform:translateY(-2px);}
  .appstore-badge img{display:block;width:auto;height:50px;}
  .badge-white{display:none!important;}
  [data-theme="dark"] .badge-black{display:none!important;}
  [data-theme="dark"] .badge-white{display:block!important;}
  .support-button{
    display:inline-flex;
    min-height:50px;
    align-items:center;
    border:1px solid var(--border);
    border-radius:13px;
    padding:0 20px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
    font-family:var(--font-display);
    font-size:.88rem;
    font-weight:650;
    transition:transform .18s var(--ease);
  }
  .support-button:hover{transform:translateY(-2px);}
  .quick-facts{display:flex;flex-wrap:wrap;gap:26px;margin-top:34px;}
  .quick-fact b{display:block;font-family:var(--font-display);font-size:1.05rem;}
  .quick-fact span{color:var(--muted);font-size:.78rem;}

  .stage{
    position:relative;
    display:flex;
    min-height:430px;
    align-items:center;
    justify-content:center;
  }
  .glow{
    position:absolute;
    width:360px;
    height:360px;
    border-radius:50%;
    background:rgba(255,255,255,.5);
    border:1px solid rgba(29,53,87,.1);
    box-shadow:var(--shadow);
  }
  [data-theme="dark"] .glow{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.08);}
  .route-ring{
    position:absolute;
    width:330px;
    height:330px;
    border:2px dashed rgba(29,53,87,.3);
    border-radius:50%;
    animation:routeTurn 24s linear infinite;
  }
  [data-theme="dark"] .route-ring{border-color:rgba(238,244,251,.24);}
  @keyframes routeTurn{to{transform:rotate(360deg);}}
  .hero-icon{
    position:relative;
    z-index:2;
    width:238px;
    height:238px;
    border-radius:28%;
    box-shadow:0 28px 70px -28px rgba(29,53,87,.74);
    animation:iconFloat 6s var(--ease) infinite;
  }
  @keyframes iconFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
  .route-plane{
    position:absolute;
    z-index:3;
    top:48px;
    right:44px;
    display:grid;
    width:52px;
    height:52px;
    place-items:center;
    border:3px solid #1d3557;
    border-radius:50%;
    color:#1d3557;
    background:#fff;
    box-shadow:0 5px 0 #1d3557;
    font-size:1.35rem;
    transform:rotate(-10deg);
  }
  .game-chip{
    position:absolute;
    z-index:3;
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid rgba(29,53,87,.14);
    border-radius:999px;
    padding:7px 13px 7px 8px;
    color:#1d3557;
    background:rgba(255,255,255,.9);
    box-shadow:var(--shadow-sm);
    backdrop-filter:blur(10px);
    font-family:var(--font-display);
    font-size:.76rem;
    font-weight:700;
  }
  [data-theme="dark"] .game-chip{color:#eef4fb;background:rgba(18,42,48,.9);border-color:var(--border);}
  .chip-symbol{
    width:27px;
    height:27px;
    flex:0 0 27px;
    display:grid;
    place-items:center;
    border-radius:9px;
    color:#1d3557;
    box-shadow:inset 0 0 0 1px rgba(29,53,87,.08);
  }
  .chip-symbol svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .daily .chip-symbol{background:linear-gradient(145deg,#ffe38a,#ffbd45);}
  .passport .chip-symbol{background:linear-gradient(145deg,#a8ebff,#9ce9ce);}
  [data-theme="dark"] .chip-symbol{
    color:#102a43;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  }
  .game-chip.daily{left:5px;top:116px;}
  .game-chip.passport{right:-4px;bottom:88px;}

  .features-section{padding:88px 0;background:var(--bg-alt);}
  .section-heading{max-width:680px;margin-bottom:38px;}
  .section-heading h2{margin-bottom:12px;font-size:clamp(2.1rem,5vw,3.2rem);}
  .section-heading p{color:var(--muted);font-size:1.05rem;}
  .feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
  .feature{
    min-height:190px;
    border:1px solid var(--border);
    border-radius:18px;
    padding:25px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .feature .fic{display:block;margin-bottom:12px;color:var(--accent);}
  .feature .fic svg{display:block;width:30px;height:30px;}
  [data-theme="playful"] .feature .fic{color:#8b3ff0;}
  .feature h3{margin-bottom:8px;font-size:1.08rem;}
  .feature p{color:var(--muted);font-size:.88rem;line-height:1.55;}

  .download-section{
    padding:86px 0;
    border-top:1px solid var(--border);
    background:var(--bg);
  }
  .download-card{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:28px;
    align-items:center;
    border:1px solid var(--border);
    border-radius:24px;
    padding:28px;
    background:var(--surface);
    box-shadow:var(--shadow);
  }
  .download-card>img{width:92px;height:92px;border-radius:23px;}
  .download-copy h2{margin-bottom:6px;font-size:1.65rem;}
  .download-copy p{max-width:46ch;color:var(--muted);font-size:.92rem;}

  .lang-toggle,.theme-toggle{
    position:fixed;
    z-index:30;
    bottom:16px;
    display:flex;
    align-items:center;
    border:1px solid var(--border);
    border-radius:999px;
    padding:9px 14px;
    color:var(--text);
    background:var(--nav-bg);
    box-shadow:var(--shadow-sm);
    backdrop-filter:blur(14px);
    cursor:pointer;
    font:650 .82rem var(--font-display);
  }
  .lang-toggle{left:16px;}
  .theme-toggle{right:16px;gap:8px;}
  .theme-toggle .moon,.theme-toggle .dark-label{display:none;}
  [data-theme="dark"] .theme-toggle .sun,[data-theme="dark"] .theme-toggle .light-label{display:none;}
  [data-theme="dark"] .theme-toggle .moon,[data-theme="dark"] .theme-toggle .dark-label{display:inline;}
  html[data-lang="en"] [data-l="no"],html[data-lang="no"] [data-l="en"]{display:none!important;}

  footer{
    padding:38px 24px 82px;
    border-top:1px solid var(--border);
    color:var(--muted);
    font-size:.86rem;
    text-align:center;
  }
  .footer-links{display:flex;justify-content:center;gap:18px;margin-top:7px;font-weight:650;}

  @media(max-width:820px){
    .hero-inner{grid-template-columns:1fr;gap:22px;min-height:auto;padding-block:62px 68px;text-align:center;}
    .lead{margin-inline:auto;}
    .hero-actions,.quick-facts{justify-content:center;}
    .stage{min-height:360px;}
    .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  }
  @media(max-width:760px){
    header{display:none;}
    html.is-ios .download-guide{
      position:relative;
      z-index:21;
      display:block;
      border-bottom:1px solid var(--border);
      background:linear-gradient(105deg,rgba(124,58,237,.1),rgba(236,72,153,.08) 55%,rgba(6,182,212,.1));
    }
    .download-guide .wrap{
      position:relative;
      min-height:70px;
      padding-top:9px;
      padding-right:82px;
      padding-bottom:9px;
    }
    .download-guide strong{
      display:block;
      margin-bottom:2px;
      font-family:var(--font-display);
      font-size:.92rem;
      line-height:1.3;
    }
    .download-guide span[data-l]{
      display:block;
      max-width:35ch;
      color:var(--muted);
      font-size:.74rem;
      line-height:1.35;
    }
    .download-arrow{
      position:absolute;
      top:50%;
      right:24px;
      display:grid;
      width:42px;
      height:42px;
      margin-top:-21px;
      place-items:center;
      border-radius:50%;
      color:#fff;
      background:var(--brand-grad);
      box-shadow:0 10px 24px -10px rgba(124,58,237,.55);
      max-width:none;
      color:#fff;
      font:700 1.4rem/1 var(--font-display);
      animation:pointUp 1.15s var(--ease) infinite;
    }
    .download-arrow::after{
      position:absolute;
      inset:-7px;
      border:2px solid rgba(236,72,153,.24);
      border-radius:50%;
      content:"";
      animation:guidePulse 1.7s ease-out infinite;
    }
    html.is-ios .gamebar-inner{min-height:54px;justify-content:center;}
    html.is-ios .game-identity{display:none;}
  }
  @media(max-width:560px){
    .wrap{padding-inline:18px;}
    .logo img{height:25px;}
    .gamebar-inner{gap:10px;}
    .game-tabs{overflow-x:auto;scrollbar-width:none;}
    .game-tabs a{padding-inline:10px;}
    .game-tabs::-webkit-scrollbar{display:none;}
    .hero h1{font-size:clamp(2.7rem,14vw,3.7rem);}
    .stage{min-height:320px;}
    .glow{width:270px;height:270px;}
    .route-ring{width:248px;height:248px;}
    .hero-icon{width:174px;height:174px;}
    .route-plane{top:34px;right:28px;width:44px;height:44px;font-size:1.1rem;}
    .game-chip.daily{left:0;top:80px;}
    .game-chip.passport{right:0;bottom:56px;}
    .feature-grid{grid-template-columns:1fr;}
    .feature{min-height:0;}
    .download-card{grid-template-columns:72px 1fr;gap:18px;padding:22px;}
    .download-card>img{width:72px;height:72px;border-radius:18px;}
    .download-card .appstore-badge{grid-column:1/-1;justify-self:stretch;}
    .download-card .appstore-badge img{width:100%;height:auto;max-width:190px;margin:auto;}
  }
  @keyframes pointUp{0%,100%{transform:translateY(4px);}50%{transform:translateY(-6px);}}
  @keyframes guidePulse{0%{opacity:.8;transform:scale(.78);}75%,100%{opacity:0;transform:scale(1.2);}}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .brand-text,.route-ring,.hero-icon,.download-arrow,.download-arrow::after{animation:none;}
    *{transition:none!important;}
  }

/* Shared landing layout; each app keeps its own identity. */
[data-app="hue-bounce"]{--hero-bg:radial-gradient(ellipse at 75% 20%,rgba(191,101,248,.2),transparent 65%),var(--bg);--brand-grad:linear-gradient(120deg,#7735d1,#db438e 55%,#6354dc);}
[data-app="glucolumi"]{--hero-bg:radial-gradient(ellipse at 75% 20%,rgba(38,188,190,.22),transparent 65%),var(--bg);--brand-grad:linear-gradient(120deg,#087a83,#227aca 55%,#6954d9);}
.app-landing .stage .glow{max-width:90vw;}
.app-landing .notice{margin-top:24px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--muted);font-size:1rem;}
.app-landing .notice a{text-decoration:underline;}
.primary-button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:10px 22px;border-radius:13px;background:#087a83;color:white;font-family:var(--font-display);font-weight:600;}
h1,h2,h3,p{overflow-wrap:anywhere;}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px;}
@media(max-width:560px){header .logo img{max-width:160px;height:auto;}header .back{font-size:.82rem;}header nav{gap:12px;}.app-landing .hero h1{font-size:clamp(2rem,8vw,3rem);}.app-landing .hero-inner{padding-block:44px;}.app-landing .stage{min-height:330px;}.app-landing .glow{width:290px;height:290px;}.app-landing .hero-icon{width:210px;height:210px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}}

.app-landing[data-app="hue-bounce"],.app-landing[data-app="glucolumi"]{--gate-grad:var(--brand-grad);}

/* Support both existing Gate Rush labels and the common app label names. */
.theme-toggle .ic-moon,.theme-toggle .lbl-dark{display:none;}
[data-theme="dark"] .theme-toggle .ic-sun,[data-theme="dark"] .theme-toggle .lbl-light{display:none;}
[data-theme="dark"] .theme-toggle .ic-moon,[data-theme="dark"] .theme-toggle .lbl-dark{display:inline;}
@media(max-width:560px){
.theme-toggle .lbl-light,.theme-toggle .lbl-dark,.theme-toggle .light-label,.theme-toggle .dark-label{display:none!important;}
}
