/* ══════════════════════════════════════════════════════════════
   MARENSA GAME ENGINE : STYLESHEET
   Shared by every Marensa interactive scenario game.
   Depends on the design tokens declared in /styles.css :root
   Do not add game-specific rules here. Use the page shell.
   ══════════════════════════════════════════════════════════════ */

.lang-toggle,.lang-toggle-mobile,.lang-dropdown,.lang-mobile-pills{display:none!important}

/* ── GAME HERO ─────────────────────────────────────────────── */
.g-hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:clamp(96px,11vw,150px) 0 clamp(64px,8vw,104px)}
.g-hero__art{position:absolute;inset:0;z-index:0;opacity:0.95}
.g-hero__art svg{width:100%;height:100%}
.g-hero .container{position:relative;z-index:2}
.g-hero__grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(32px,5vw,72px);align-items:center}
.g-hero__label{font-family:var(--sans);font-size:0.7rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold)}
.g-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.08;margin-top:18px;letter-spacing:-0.01em}
.g-hero__sub{font-size:1.05rem;line-height:1.75;color:rgba(255,255,255,0.74);margin-top:22px;max-width:520px}
.g-hero__meta{display:flex;gap:32px;flex-wrap:wrap;margin-top:34px}
.g-hero__meta-item{border-left:2px solid var(--gold);padding-left:14px}
.g-hero__meta-num{font-family:var(--serif);font-size:1.5rem;line-height:1.1}
.g-hero__meta-lbl{font-size:0.64rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:4px}
.g-play{display:inline-flex;align-items:center;gap:12px;margin-top:38px;background:var(--gold);color:var(--navy);border:none;cursor:pointer;font-family:var(--sans);font-size:0.82rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:18px 38px;border-radius:4px;transition:all var(--ease)}
.g-play:hover{background:#d4a832;transform:translateY(-2px);box-shadow:0 12px 32px rgba(193,154,61,0.28)}
.g-play__arrow{font-size:1rem;transition:transform var(--ease)}
.g-play:hover .g-play__arrow{transform:translateX(4px)}
.g-hero__panelwrap{display:flex;justify-content:center}

/* ── GAME BOARD ────────────────────────────────────────────── */
.g-stage{background:var(--bg);padding:clamp(48px,6vw,88px) 0;display:none}
.g-stage.active{display:block}
.g-shell{max-width:920px;margin:0 auto}

.g-hud{background:var(--navy);border-radius:6px;padding:22px 26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:26px}
.g-hud__item{min-width:0}
.g-hud__top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.g-hud__name{font-size:0.62rem;letter-spacing:0.15em;text-transform:uppercase;color:rgba(255,255,255,0.55);font-weight:600}
.g-hud__val{font-family:var(--serif);font-size:0.95rem;color:#fff}
.g-hud__bar{height:4px;background:rgba(255,255,255,0.12);border-radius:2px;margin-top:9px;overflow:hidden}
.g-hud__fill{height:100%;border-radius:2px;transition:width 0.7s cubic-bezier(0.22,0.61,0.36,1),background 0.4s ease}
.g-hud__delta{font-size:0.66rem;font-weight:600;margin-top:6px;height:14px;opacity:0;transition:opacity 0.3s ease;letter-spacing:0.04em}
.g-hud__delta.show{opacity:1}
.g-hud__delta.up{color:#5FBF8F}.g-hud__delta.down{color:#E08A7A}

.g-progress{display:flex;gap:5px;margin:26px 0 0}
.g-progress__seg{flex:1;height:3px;background:var(--border);border-radius:2px;transition:background 0.4s ease}
.g-progress__seg.done{background:var(--gold)}
.g-progress__seg.current{background:var(--navy)}
.g-chapmeta{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;gap:16px;flex-wrap:wrap}
.g-chapmeta__n{font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);font-weight:600}
.g-chapmeta__t{font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3)}

.g-card{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:clamp(28px,4vw,48px);margin-top:20px;box-shadow:0 18px 56px rgba(11,31,58,0.05)}
.g-card h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.2;margin-bottom:18px}
.g-card__brief{font-size:1rem;line-height:1.78;color:var(--text-2)}
.g-card__brief p{margin-bottom:14px}
.g-card__brief p:last-child{margin-bottom:0}
.g-card__q{font-family:var(--serif);font-size:1.08rem;color:var(--navy);margin-top:26px;padding-top:22px;border-top:1px solid var(--border-light)}

.g-opts{margin-top:22px;display:flex;flex-direction:column;gap:12px}
.g-opt{text-align:left;background:var(--white);border:1px solid var(--border);border-radius:5px;padding:18px 22px;cursor:pointer;font-family:var(--sans);transition:all var(--ease);display:flex;gap:16px;align-items:flex-start;width:100%}
.g-opt:hover{border-color:var(--gold);background:var(--gold-light);transform:translateX(3px)}
.g-opt__key{font-family:var(--serif);font-size:0.95rem;color:var(--gold);flex-shrink:0;width:20px;line-height:1.5}
.g-opt__txt{font-size:0.94rem;line-height:1.6;color:var(--text)}
.g-opt[disabled]{cursor:default;opacity:0.45;transform:none}
.g-opt.chosen{border-color:var(--navy);background:var(--cream);opacity:1}
.g-opt.chosen .g-opt__key{color:var(--navy)}

/* ── OUTCOME REVEAL ────────────────────────────────────────── */
.g-reveal{margin-top:24px;border-left:3px solid var(--gold);background:var(--cream);border-radius:0 5px 5px 0;padding:24px 26px;display:none}
.g-reveal.show{display:block;animation:gFade 0.5s cubic-bezier(0.22,0.61,0.36,1)}
@keyframes gFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.g-reveal__lbl{font-size:0.64rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);font-weight:600}
.g-reveal__txt{font-size:0.95rem;line-height:1.75;color:var(--text-2);margin-top:10px}
.g-reveal__note{font-size:0.86rem;line-height:1.7;color:var(--navy);margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.g-reveal__note strong{font-weight:700}
.g-next{margin-top:20px;background:var(--navy);color:#fff;border:none;cursor:pointer;font-family:var(--sans);font-size:0.76rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:15px 34px;border-radius:4px;transition:all var(--ease)}
.g-next:hover{background:var(--gold);color:var(--navy)}

/* ── RESULTS ───────────────────────────────────────────────── */
.g-res{display:none}
.g-res.show{display:block;animation:gFade 0.6s cubic-bezier(0.22,0.61,0.36,1)}
.g-res__head{background:var(--navy);color:#fff;border-radius:6px;padding:clamp(34px,5vw,56px);text-align:center;position:relative;overflow:hidden}
.g-res__head svg{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:0.5}
.g-res__head > *{position:relative;z-index:1}
.g-res__lbl{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.g-res__rank{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.1;margin-top:14px}
.g-res__score{font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-top:14px}
.g-res__verdict{font-size:1rem;line-height:1.8;color:rgba(255,255,255,0.8);margin-top:22px;max-width:640px;margin-left:auto;margin-right:auto}

.g-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px}
.g-score{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:26px 24px}
.g-score__n{font-size:0.64rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.g-score__v{font-family:var(--serif);font-size:2.2rem;line-height:1.1;margin-top:10px}
.g-score__v span{font-size:0.9rem;color:var(--text-3)}
.g-score__d{font-size:0.84rem;line-height:1.6;color:var(--text-2);margin-top:10px}

.g-review{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:clamp(28px,4vw,44px);margin-top:20px}
.g-review h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-bottom:6px}
.g-review__sub{font-size:0.9rem;color:var(--text-2);margin-bottom:26px}
.g-review__row{display:grid;grid-template-columns:34px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--border-light)}
.g-review__num{font-family:var(--serif);font-size:1.1rem;color:var(--gold)}
.g-review__t{font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-3);font-weight:600}
.g-review__c{font-size:0.95rem;line-height:1.6;color:var(--navy);margin-top:6px}
.g-review__score{font-size:0.8rem;color:var(--text-2);margin-top:8px}
.g-review__flag{display:inline-block;font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:700;padding:3px 9px;border-radius:3px;margin-top:10px}
.g-review__flag.good{background:#E6F2EA;color:#2E7D50}
.g-review__flag.mid{background:var(--gold-light);color:#8A6A18}
.g-review__flag.bad{background:#FBEAE6;color:#A64A34}

.g-cta{background:var(--cream);border-radius:6px;padding:clamp(30px,4vw,48px);margin-top:20px;text-align:center}
.g-cta h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2}
.g-cta p{font-size:0.98rem;line-height:1.75;color:var(--text-2);margin-top:14px;max-width:560px;margin-left:auto;margin-right:auto}
.g-cta__btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.g-replay{background:transparent;border:1px solid var(--navy);color:var(--navy);cursor:pointer;font-family:var(--sans);font-size:0.76rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;padding:15px 32px;border-radius:4px;transition:all var(--ease)}
.g-replay:hover{background:var(--navy);color:#fff}

.g-disc{font-size:0.78rem;line-height:1.7;color:var(--text-3);margin-top:26px;text-align:center;max-width:720px;margin-left:auto;margin-right:auto}

@media(max-width:860px){
  .g-hero__grid{grid-template-columns:1fr}
  .g-hero__panelwrap{display:none}
  .g-hud{grid-template-columns:1fr;gap:16px}
  .g-scores{grid-template-columns:1fr}
  .g-board{grid-template-columns:1fr}
}

/* ═══ SCENE ILLUSTRATION ═══ */
.g-scene{position:relative;margin:calc(-1*clamp(28px,4vw,48px)) calc(-1*clamp(28px,4vw,48px)) 30px;border-radius:5px 5px 0 0;overflow:hidden;background:var(--navy);height:clamp(160px,19vw,240px)}
.g-scene svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.g-scene__cap{position:absolute;left:clamp(22px,3vw,36px);bottom:16px;z-index:2;font-size:0.6rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.52);font-weight:600}
.g-scene .fx{opacity:0;animation:scIn 0.75s cubic-bezier(0.22,0.61,0.36,1) forwards}
.g-scene .fx1{animation-delay:0.04s}.g-scene .fx2{animation-delay:0.16s}.g-scene .fx3{animation-delay:0.28s}
.g-scene .fx4{animation-delay:0.40s}.g-scene .fx5{animation-delay:0.52s}.g-scene .fx6{animation-delay:0.64s}
@keyframes scIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.g-scene .dr{stroke-dasharray:1600;stroke-dashoffset:1600;animation:scDraw 1.6s cubic-bezier(0.4,0,0.2,1) 0.25s forwards}
@keyframes scDraw{to{stroke-dashoffset:0}}
.g-scene .glow{animation:scGlow 3s ease-in-out infinite}
@keyframes scGlow{0%,100%{opacity:0.22}50%{opacity:0.85}}

/* ═══ BOARD: MAP + LIVE STRUCTURE ═══ */
.g-board{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.g-panel{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:16px 18px 14px}
.g-panel__h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.g-panel__t{font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-3);font-weight:700}
.g-panel__s{font-size:0.66rem;color:var(--gold);font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.g-map svg,.g-struct svg{width:100%;height:auto;display:block}
.g-map .grat{fill:none;stroke:var(--navy);stroke-opacity:0.07;stroke-width:1}
.g-map .city circle.dot{fill:#C6CCD4;transition:fill 0.5s var(--ease),r 0.5s var(--ease)}
.g-map .city.on circle.dot{fill:var(--gold)}
.g-map .city circle.halo{fill:none;stroke:var(--gold);stroke-width:1;opacity:0}
.g-map .city.on circle.halo{opacity:1;animation:mapPulse 2.4s ease-out infinite}
@keyframes mapPulse{0%{r:6;opacity:0.65}100%{r:24;opacity:0}}
.g-map .city text{font-size:9.5px;fill:#A9B1BA;letter-spacing:1.4px;transition:fill 0.5s var(--ease)}
.g-map .city.on text{fill:var(--navy);font-weight:700}
.g-map .arc{fill:none;stroke:var(--gold);stroke-width:1.1;stroke-dasharray:900;stroke-dashoffset:900;animation:scDraw 1.1s cubic-bezier(0.4,0,0.2,1) forwards;opacity:0.62}

.g-struct .lk{fill:none;stroke-width:1.2;transition:stroke 0.5s var(--ease)}
.g-struct text{font-family:var(--sans)}
.g-struct .nd rect{transition:fill 0.5s var(--ease),stroke 0.5s var(--ease)}
.g-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.g-chip{font-size:0.58rem;letter-spacing:0.11em;text-transform:uppercase;font-weight:700;padding:5px 9px;border-radius:3px;border:1px solid var(--border);color:var(--text-3);background:var(--bg);transition:all 0.4s var(--ease)}
.g-chip.ok{border-color:rgba(95,191,143,0.55);color:#2E7C58;background:rgba(95,191,143,0.10)}
.g-chip.warn{border-color:rgba(193,154,61,0.55);color:#8A6B1E;background:rgba(193,154,61,0.11)}
.g-chip.bad{border-color:rgba(224,138,122,0.6);color:#B04A38;background:rgba(224,138,122,0.11)}
.g-chip.flash{animation:chipIn 0.6s cubic-bezier(0.22,0.61,0.36,1)}
@keyframes chipIn{0%{opacity:0;transform:translateY(7px) scale(0.94)}60%{transform:translateY(0) scale(1.04)}100%{opacity:1;transform:none}}

.g-blue{margin-top:22px;background:var(--white);border:1px solid var(--border);border-radius:6px;padding:clamp(22px,3.2vw,36px)}
.g-blue h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.2rem,2.2vw,1.5rem);margin-bottom:6px}
.g-blue__sub{font-size:0.87rem;line-height:1.7;color:var(--text-2);margin-bottom:22px;max-width:620px}
.g-blue .g-struct{max-width:640px;margin:0 auto}
.g-scene::after{content:'';position:absolute;left:0;right:0;bottom:0;height:66px;background:linear-gradient(to top,rgba(11,31,58,0.88),rgba(11,31,58,0));z-index:1;pointer-events:none}

/* ── optional illustrated artwork ─────────────────────────── */
.g-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.g-hero__cast{width:100%;max-width:520px;height:auto;display:block;opacity:0;animation:gArtIn 0.9s cubic-bezier(0.22,0.61,0.36,1) 0.15s forwards}
.g-scene__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;opacity:0;animation:gArtIn 0.85s cubic-bezier(0.22,0.61,0.36,1) forwards}
@keyframes gArtIn{to{opacity:1}}
@media(max-width:860px){.g-hero__cast{max-width:340px;margin:28px auto 0}}

@media(max-width:860px){
  .g-board{grid-template-columns:1fr!important;gap:12px}
  .g-scene{height:158px}
  .g-scene__cap{font-size:0.53rem;letter-spacing:0.15em;left:16px;bottom:11px;max-width:72%;line-height:1.5}
  .g-panel{padding:14px 15px 12px}
  .g-chip{font-size:0.55rem;padding:4px 7px}
}
