.g-bot{display:block;flex:none;overflow:visible}
.g-glow{animation:gGlow 2.4s ease-in-out infinite}
.g-eyes{animation:gBlink 5s infinite;transform-origin:32px 30px}
@keyframes gGlow{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes gBlink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes gBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes gPop{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}

.g-wallet{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:700;color:var(--good);text-decoration:none;border:1.5px solid var(--good);border-radius:99px;padding:3px 10px;white-space:nowrap}
.rail a.g-rail .n{border-color:var(--accent);color:var(--accent-ink)}
.rail a.locked{opacity:1}.rail a.locked .t,.rail a.locked .rt{color:var(--muted)}.rail a.locked .n{opacity:.55}
.rail a.locked .n{background:var(--surface)}

.g-promo{display:flex;gap:24px;align-items:center;border:2px solid var(--accent);border-radius:18px;padding:22px 26px;margin:28px 0;background:var(--accent-soft)}
.g-promo h2{margin:4px 0 8px;font-family:Unbounded,system-ui,sans-serif;font-size:1.35rem;line-height:1.25}
.g-promo p{margin:0 0 14px;max-width:62ch}
.g-promo .g-bot{animation:gBob 3s ease-in-out infinite}
.g-promo.on{background:var(--surface);border-color:var(--line)}
.g-promo>div{flex:1;min-width:0}

.g-scene{border:2px solid var(--blue);border-radius:18px;padding:22px 24px;margin:8px auto 30px;max-width:780px;background:var(--blue-soft);animation:gPop .4s ease-out}
.g-scene.soon{display:flex;gap:16px;align-items:center;border-style:dashed}
.g-scene.soon p{margin:4px 0 0}
.g-scene-head{display:flex;gap:16px;align-items:center;margin-bottom:10px}
.g-scene-head h2{margin:2px 0 0;font-family:Unbounded,system-ui,sans-serif;font-size:1.3rem}
.g-scene .eyebrow{color:var(--blue)}
.g-lines p{margin:0 0 8px;line-height:1.55}
.g-q{font-weight:700;font-size:1.1rem;margin:14px 0 10px}
.g-choices{display:grid;gap:10px}
.g-choice{display:flex;gap:12px;align-items:flex-start;text-align:left;font:inherit;font-size:16px;line-height:1.4;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;transition:transform .15s,border-color .15s}
.g-choice:hover:not(:disabled){border-color:var(--blue);transform:translateX(3px)}
.g-choice:disabled{cursor:default}
.g-choice.picked{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.g-choice.faded{opacity:.45}
.g-key{flex:none;width:26px;height:26px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.g-out{display:flex;gap:16px;align-items:flex-start;margin:16px 0 14px;padding:14px 16px;border-radius:12px;background:var(--bg);border-left:5px solid var(--warn);animation:gPop .35s ease-out}
.g-out.good{border-left-color:var(--good)}
.g-out p{margin:4px 0 0}
.g-delta{flex:none;font-family:Unbounded,system-ui,sans-serif;font-size:1.25rem;font-weight:700;min-width:84px;color:var(--warn)}
.g-out.good .g-delta{color:var(--good)}

.g-missions{list-style:none;margin:10px 0 6px;padding:0;display:grid;gap:8px}
.g-missions li{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg)}
.g-missions li.done{border-color:var(--good)}
.g-check{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff}
.g-missions li.done .g-check{background:var(--good);border-color:var(--good)}
.g-mt{flex:1;min-width:0;font-size:15px}
.g-bar{display:block;height:5px;border-radius:99px;background:var(--line);margin-top:6px;overflow:hidden}
.g-bar i{display:block;height:100%;background:var(--good);border-radius:99px;transition:width .4s}
.g-mr{font-size:13px;color:var(--muted);white-space:nowrap}

.g-hub-head{display:flex;gap:30px;align-items:center;margin:20px 0 10px}
.g-hub-head h1{margin:6px 0 8px;font-family:Unbounded,system-ui,sans-serif}
.g-hub-head .g-bot{animation:gBob 3s ease-in-out infinite}
.g-stats{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 4px}
.g-stats div{border:1.5px solid var(--line);border-radius:12px;padding:10px 16px;min-width:130px}
.g-stats b{display:block;font-size:1.2rem}
.g-stats span{font-size:13px;color:var(--muted)}
.g-evolve{display:flex;gap:14px;flex-wrap:wrap}
.g-evolve div{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;border:1.5px solid var(--line);border-radius:14px;min-width:96px}
.g-evolve div.off{opacity:.35;filter:grayscale(1)}
.g-evolve small{font-size:12px;color:var(--muted);text-align:center}
.g-story{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.g-story li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}
.g-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.g-card{position:relative;border-radius:14px;padding:14px;border:2px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:6px;min-height:170px;transition:transform .2s}
.g-card:not(.off):hover{transform:translateY(-3px) rotate(-1deg)}
.g-card b{font-size:15px;line-height:1.3}
.g-card small{font-size:12px;color:var(--muted);line-height:1.35}
.g-card svg{color:var(--ink);margin:4px 0}
.g-card.r1{border-color:var(--blue)}
.g-card.r1 svg{color:var(--blue)}
.g-card.r2{border-color:var(--accent)}
.g-card.r2 svg{color:var(--accent)}
.g-card.off{border-style:dashed;border-color:var(--line);opacity:.7}
.g-card.off svg{color:var(--muted)}
.g-card-top{display:flex;justify-content:flex-end}
.g-rar{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.g-card.r1:not(.off) .g-rar{color:var(--blue)}
.g-card.r2:not(.off) .g-rar{color:var(--accent-ink)}

.g-lock{text-align:center;max-width:560px;margin:60px auto}
.g-lock .g-bot{margin:0 auto 12px}
.g-lock h1{font-family:Unbounded,system-ui,sans-serif;font-size:1.6rem}

.g-dock{position:fixed;left:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}
.g-dock-bot{pointer-events:auto;border:0;background:var(--bg);border-radius:50%;width:74px;height:74px;display:grid;place-items:center;box-shadow:0 4px 18px rgba(0,0,0,.16);cursor:pointer;padding:0}
.g-dock-bot .g-bot{animation:gBob 3s ease-in-out infinite}
.g-bubble{pointer-events:auto;max-width:280px;background:var(--bg);color:var(--ink);border:2px solid var(--ink);border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:14px;line-height:1.4;display:none;box-shadow:0 4px 18px rgba(0,0,0,.12)}
.g-bubble a{display:block;margin-top:6px;font-weight:700;font-size:13px}
.g-dock.talk .g-bubble{display:block;animation:gPop .3s ease-out}

@media (max-width:760px){
  .g-promo,.g-hub-head{flex-direction:column;text-align:center;align-items:center}
  .g-promo .row-actions,.g-hub-head .row-actions{justify-content:center}
  .g-stats{justify-content:center}
  .g-dock{left:10px;bottom:10px}
  .g-dock-bot{width:60px;height:60px}
  .g-dock-bot .g-bot{width:46px;height:46px}
  .g-scene{padding:16px}
  .g-out{flex-direction:column;gap:6px}
  .g-wallet{font-size:12px;padding:2px 8px}
}

.g-ending{display:flex;gap:22px;align-items:center;border:2px solid var(--good);border-radius:18px;padding:20px 24px;background:var(--surface)}
.g-ending h3{font-family:Unbounded,system-ui,sans-serif;font-size:1.4rem;margin:0 0 6px;color:var(--good)}
.g-ending p{margin:0 0 10px}
.g-cert-form{margin:22px 0 12px;max-width:420px}
.g-err{display:block;color:var(--accent-ink);font-size:13px;min-height:18px;margin-top:4px}
.g-cert{border:3px double var(--ink);border-radius:6px;padding:10px;background:var(--bg);max-width:760px}
.g-cert-in{border:1.5px solid var(--line);padding:34px 28px;text-align:center;display:flex;flex-direction:column;align-items:center}
.g-cert-k{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-weight:700}
.g-cert-name{font-family:Unbounded,system-ui,sans-serif;font-size:2rem;margin:18px 0 6px;border-bottom:2px solid var(--ink);padding:0 24px 6px}
.g-cert-book{font-family:Unbounded,system-ui,sans-serif;font-size:1.3rem;color:var(--accent);margin:4px 0}
.g-cert-meta{color:var(--muted);font-size:14px}
.g-cert p{margin:6px 0}
@media print{
  body.print-cert *{visibility:hidden}
  body.print-cert .g-cert,body.print-cert .g-cert *{visibility:visible}
  body.print-cert .g-cert{position:absolute;left:0;top:0;width:100%;max-width:none;border-color:#000;background:#fff;color:#000}
  body.print-cert .g-cert-in{min-height:88vh;justify-content:center;border-color:#999}
  body.print-cert .g-cert-k{font-size:18pt;color:#d93a28}
  body.print-cert .g-cert-name{font-size:40pt;color:#000;border-color:#000;margin:28px 0 14px}
  body.print-cert .g-cert p{font-size:16pt;color:#000}
  body.print-cert .g-cert-book{font-size:28pt;color:#d93a28}
  body.print-cert .g-cert-meta{font-size:12pt!important;color:#555!important}
  body.print-cert .g-cert .g-bot{width:110px;height:110px;margin-top:18px}
  @page{size:A4 landscape;margin:12mm}
}
@media (max-width:760px){.g-ending{flex-direction:column;text-align:center}.g-cert-name{font-size:1.4rem}}
@media (max-width:520px){.g-wallet{display:none}}
@media print{.g-dock,.g-wallet{display:none}}
/* season 2 */
.g-scene.s2{border-color:var(--accent);background:var(--accent-soft);margin-left:0}
.g-scene.s2 .eyebrow{color:var(--accent-ink)}
.g-s2card{display:flex;gap:18px;align-items:center;border:2px solid var(--accent);border-radius:18px;padding:16px 20px;background:var(--surface);color:var(--ink);text-decoration:none;max-width:780px}
.g-s2card:hover{transform:translateY(-1px)}
.g-s2card>div{flex:1}
.g-s2card b{font-family:Unbounded,system-ui,sans-serif;font-size:1.1rem}
.g-s2card p{margin:4px 0 0;color:var(--muted);font-size:15px}
.g-s2card.off{border-style:dashed;border-color:var(--line)}
.g-s2lock{border:1.5px dashed var(--line);border-radius:14px;padding:14px 16px;margin:14px 0;color:var(--muted)}
.g-ending.s2end{border-color:var(--accent);margin:8px 0 30px;max-width:780px}
.g-ending.s2end h3{color:var(--accent-ink)}
@media (max-width:600px){.g-s2card{flex-direction:column;text-align:center}}
