:root{
  --gv-bg:#08090c;
  --gv-panel:#101217;
  --gv-panel-2:#151820;
  --gv-line:rgba(228,190,104,.19);
  --gv-line-soft:rgba(255,255,255,.09);
  --gv-gold:#e3b85c;
  --gv-gold-soft:#f0d292;
  --gv-text:#f4f1e9;
  --gv-muted:#8f96a3;
  --gv-green:#67d3a4;
  --gv-red:#ee6d77;
  --gv-blue:#72b7ff;
}

body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--gv-bg);color:var(--gv-text)}
button,input{letter-spacing:0}

/* Main menu: a full-bleed game scene, not a floating title card. */
#title{
  z-index:60;
  align-items:stretch;
  justify-content:center;
  overflow:auto;
  padding:clamp(24px,5vw,72px);
  background-color:#08090c;
  background-image:url("assets/game/forge-menu-v2.jpg?v=1");
  background-position:center;
  background-size:cover;
  image-rendering:auto;
}
#title::before{content:"";position:absolute;inset:0;background:rgba(5,6,8,.82);opacity:1}
#title::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.04);pointer-events:none}
#title.hide{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.018);transition:opacity .45s ease,transform .55s ease,visibility .45s}
.gv2-title-wrap{
  position:relative;z-index:2;width:min(1180px,100%);min-height:min(720px,calc(100vh - 96px));margin:auto;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,430px);align-items:center;gap:clamp(50px,8vw,120px)
}
.gv2-title-copy{max-width:680px;align-self:center}
.gv2-brand{display:flex;align-items:center;gap:14px;margin-bottom:clamp(42px,8vh,92px);font-size:17px;font-weight:900;letter-spacing:.15em;color:var(--gv-gold-soft)}
.gv2-brand img{width:190px;height:auto;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 18px rgba(227,184,92,.2))}
.gv2-kicker{display:block;color:var(--gv-gold);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.16em}
.gv2-title-copy h1{margin:10px 0 18px;font-size:clamp(72px,10vw,142px);line-height:.82;font-weight:920;color:var(--gv-text);letter-spacing:0;text-shadow:0 12px 38px rgba(0,0,0,.65)}
.gv2-title-copy p{max-width:610px;margin:0;color:#c5c7cb;font-size:clamp(17px,1.65vw,22px);line-height:1.55;font-weight:520}
.gv2-feature-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.gv2-feature-row span{padding:9px 12px;border:1px solid var(--gv-line-soft);background:rgba(8,9,12,.72);font-size:12px;font-weight:750;color:#c6c9cf;text-transform:uppercase;letter-spacing:.08em}
.gv2-entry-panel{align-self:center;padding:30px;border-left:1px solid var(--gv-line);background:rgba(9,10,13,.88);box-shadow:-28px 0 60px rgba(0,0,0,.28)}
.gv2-entry-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;color:var(--gv-text);font-size:22px;font-weight:850}
.gv2-name-label{display:block;margin-bottom:8px;color:var(--gv-muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
#title #nameInput{width:100%;height:52px;margin:0 0 12px;padding:0 15px;border:1px solid var(--gv-line-soft);border-radius:6px;background:#0d0f14;color:var(--gv-text);font:700 16px inherit;outline:none;box-shadow:none}
#title #nameInput:focus{border-color:rgba(227,184,92,.6);box-shadow:0 0 0 3px rgba(227,184,92,.09)}
.gv2-mode-btn{width:100%;min-height:72px;margin-top:10px;padding:14px 46px 14px 16px;position:relative;text-align:left;cursor:pointer;border:1px solid var(--gv-line-soft);border-radius:6px;background:#12151b;color:var(--gv-text);font-family:inherit;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.gv2-mode-btn::after{content:"→";position:absolute;right:17px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--gv-muted);transition:transform .18s ease,color .18s ease}
.gv2-mode-btn b,.gv2-mode-btn span{display:block}.gv2-mode-btn b{font-size:16px}.gv2-mode-btn span{margin-top:4px;color:var(--gv-muted);font-size:12.5px;font-weight:620}
.gv2-mode-btn.primary{border-color:rgba(227,184,92,.42);background:#1a1813}
.gv2-mode-btn.primary b{color:var(--gv-gold-soft)}
.gv2-mode-btn:hover{transform:translateY(-2px);border-color:rgba(227,184,92,.5);background:#181a20}
.gv2-mode-btn:hover::after{transform:translate(3px,-50%);color:var(--gv-gold)}
#title #playBtn.gv2-mode-btn{min-height:72px;padding:14px 46px 14px 16px;border:1px solid var(--gv-line-soft);border-radius:6px;background:#12151b;color:var(--gv-text);box-shadow:none;text-transform:none}
#title #campaignBtn.gv2-mode-btn.primary{background:var(--gv-gold);border-color:var(--gv-gold);color:#17130b}
#title #campaignBtn.gv2-mode-btn.primary b{color:#17130b}
#title #campaignBtn.gv2-mode-btn.primary span{color:#5d4a23}
#title #campaignBtn.gv2-mode-btn.primary::after{color:#5d4a23}
#title #playBtn.gv2-mode-btn:hover{background:#181a20;border-color:rgba(227,184,92,.5)}
.gv2-separator{display:flex;align-items:center;gap:12px;margin:22px 0 14px;color:#686f7b;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.1em}
.gv2-separator::before,.gv2-separator::after{content:"";height:1px;flex:1;background:var(--gv-line-soft)}
#title #clubBtn,.gv2-club-btn{width:100%;min-height:48px;border:1px solid rgba(227,184,92,.34);border-radius:6px;background:transparent;color:var(--gv-gold-soft);box-shadow:none;font:800 14px inherit;cursor:pointer;transition:background .18s,border-color .18s}
#title #clubBtn:hover{background:rgba(227,184,92,.08);border-color:rgba(227,184,92,.58)}
#title .title-note{margin-top:11px;color:#6f7580;font-size:11.5px;text-align:center}
#title .login-status{margin-top:12px;border-width:1px;border-radius:5px;background:#12151a;box-shadow:none}
.brand-pixel{display:none!important}

.gv2-icon-btn{display:flex;align-items:center;justify-content:center;border:1px solid var(--gv-line-soft);border-radius:6px;background:#11141a;color:var(--gv-text);cursor:pointer}
.gv2-icon-btn.small{width:42px;height:42px;font-size:19px}
#gameMenuBtn{position:fixed;top:14px;right:14px;z-index:28;width:46px;height:46px;opacity:0;pointer-events:none;gap:5px;transition:opacity .2s,transform .18s,border-color .18s}
body.ingame #gameMenuBtn{opacity:1;pointer-events:auto}
#gameMenuBtn span{width:4px;height:17px;border-radius:2px;background:var(--gv-gold-soft)}
#gameMenuBtn:hover{transform:translateY(-2px);border-color:rgba(227,184,92,.48)}

/* Premium game HUD overrides. */
.chip,#skills,#routeHud,#prompt,#toast,#chatInput,#minimap{border:1px solid rgba(255,255,255,.1)!important;border-radius:6px!important;background:rgba(10,12,16,.9)!important;box-shadow:0 12px 35px rgba(0,0,0,.28)!important;backdrop-filter:blur(10px)!important}
.chip{min-height:42px;color:#d9dbe0!important}.chip b{color:var(--gv-text)}
.chip-btn{border:1px solid rgba(255,255,255,.09)!important;background:#12151b!important;box-shadow:none!important;transition:transform .16s,border-color .16s!important}
.chip-btn:hover{transform:translateY(-2px);border-color:rgba(227,184,92,.45)!important;background:#171a20!important}
#skills h3,.route-k{color:var(--gv-gold)!important}
.bar{border:0!important;border-radius:3px!important;background:#222630!important}.bar i{border-radius:3px!important;background:var(--gv-gold)!important}

/* Campaign level selector. */
.gv2-screen{position:fixed;inset:0;z-index:48;display:flex;flex-direction:column;background:rgba(7,8,11,.97);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:opacity .26s ease,transform .3s ease,visibility .26s}
.gv2-screen.show{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.gv2-screen-head{min-height:104px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:30px;padding:22px clamp(22px,5vw,70px);border-bottom:1px solid var(--gv-line-soft)}
.gv2-screen-head h2{margin:5px 0 0;font-size:clamp(28px,4vw,48px);line-height:1;font-weight:900}
.gv2-progress-summary{display:grid;grid-template-columns:auto auto;gap:1px 10px;align-items:center;padding-left:24px;border-left:1px solid var(--gv-line-soft)}
.gv2-progress-summary b{font-size:22px;color:var(--gv-gold-soft)}.gv2-progress-summary span{font-size:11px;color:var(--gv-muted);text-transform:uppercase;letter-spacing:.08em}
.gv2-close{width:46px;height:46px;border:1px solid var(--gv-line-soft);border-radius:6px;background:#111319;color:var(--gv-text);font:300 30px/1 inherit;cursor:pointer}
.gv2-level-scroll{flex:1;overflow:auto;padding:clamp(22px,4vw,54px) clamp(22px,5vw,70px)}
.gv2-levels{width:min(1280px,100%);margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gv2-level{position:relative;min-height:210px;padding:20px;display:flex;flex-direction:column;text-align:left;border:1px solid var(--gv-line-soft);border-radius:6px;background:#101218;color:var(--gv-text);cursor:pointer;overflow:hidden;transition:transform .2s,border-color .2s,background .2s}
.gv2-level::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--level-color,var(--gv-gold))}
.gv2-level:hover:not(:disabled){transform:translateY(-4px);border-color:color-mix(in srgb,var(--level-color,var(--gv-gold)) 55%,transparent);background:#151820}
.gv2-level:disabled{cursor:default;opacity:.42;filter:saturate(.35)}
.gv2-level-num{font-size:11px;font-weight:850;color:var(--level-color,var(--gv-gold));letter-spacing:.14em;text-transform:uppercase}
.gv2-level h3{margin:22px 0 7px;font-size:21px;line-height:1.1}.gv2-level p{margin:0;color:var(--gv-muted);font-size:13px;line-height:1.4}
.gv2-level-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:22px;border-top:1px solid rgba(255,255,255,.06)}
.gv2-stars{letter-spacing:.08em;color:#545a64;font-size:18px}.gv2-stars .on{color:var(--gv-gold-soft);text-shadow:0 0 14px rgba(227,184,92,.24)}
.gv2-level-meta span:last-child{color:#717884;font-size:11px;font-weight:750;text-transform:uppercase}
.gv2-level.locked::after{content:"Закрыто";position:absolute;right:14px;top:14px;color:#777e89;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}
.gv2-level.secret{border-color:rgba(159,113,255,.3);--level-color:#a778ff}

/* Active challenge. */
#campaignHud{position:fixed;left:50%;top:14px;z-index:27;width:min(520px,calc(100vw - 150px));padding:12px 15px;border:1px solid rgba(227,184,92,.26);border-radius:6px;background:rgba(10,12,16,.94);box-shadow:0 16px 44px rgba(0,0,0,.38);opacity:0;visibility:hidden;transform:translate(-50%,-12px);transition:opacity .22s,transform .25s,visibility .22s}
#campaignHud.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gv2-run-top,.gv2-run-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.gv2-run-top span{font-size:12px;font-weight:850;color:var(--gv-gold-soft)}.gv2-run-top strong{font-size:21px;font-variant-numeric:tabular-nums;color:var(--gv-text)}
.gv2-run-goals{display:flex;gap:5px;margin:10px 0}.gv2-run-goal{position:relative;flex:1;height:7px;background:#272b33;overflow:hidden}.gv2-run-goal i{display:block;height:100%;background:var(--gv-gold);transition:width .25s ease}.gv2-run-goal.done i{background:var(--gv-green)}
.gv2-run-foot{font-size:10px;color:var(--gv-muted);text-transform:uppercase;letter-spacing:.08em}.gv2-run-foot b{font-size:15px;color:var(--gv-gold-soft)}

/* Pause and result screens. */
.gv2-modal{position:fixed;inset:0;z-index:52;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(5,6,8,.88);backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s,visibility .22s}
.gv2-modal.show{opacity:1;visibility:visible;pointer-events:auto}
.gv2-result-panel,.gv2-pause-panel{width:min(520px,100%);padding:36px;border:1px solid var(--gv-line);border-radius:7px;background:#101217;box-shadow:0 30px 100px rgba(0,0,0,.58);text-align:center;transform:translateY(12px) scale(.98);transition:transform .28s}
.gv2-modal.show>div{transform:none}
.gv2-result-panel h2,.gv2-pause-panel h2{margin:7px 0 20px;font-size:clamp(34px,6vw,54px);line-height:1;font-weight:900}
.gv2-result-stars{margin:14px 0 26px;color:#4b5059;font-size:46px;letter-spacing:.08em}.gv2-result-stars .on{color:var(--gv-gold-soft);text-shadow:0 0 28px rgba(227,184,92,.32)}
.gv2-result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 26px;border-block:1px solid var(--gv-line-soft)}
.gv2-result-stats div{padding:18px 8px}.gv2-result-stats div+div{border-left:1px solid var(--gv-line-soft)}.gv2-result-stats b,.gv2-result-stats span{display:block}.gv2-result-stats b{font-size:24px;color:var(--gv-text)}.gv2-result-stats span{margin-top:4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gv-muted)}
.gv2-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gv2-btn{min-height:50px;padding:0 18px;border:1px solid var(--gv-line-soft);border-radius:6px;background:#15181f;color:var(--gv-text);font:850 14px inherit;cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.gv2-btn:hover{transform:translateY(-2px);border-color:rgba(227,184,92,.5)}.gv2-btn.primary{background:var(--gv-gold);border-color:var(--gv-gold);color:#17130b}.gv2-btn.secondary{background:#15181f}
.gv2-pause-panel{width:min(430px,100%)}.gv2-pause-panel>.gv2-btn{width:100%;margin-top:9px}
.gv2-settings{margin:24px 0 12px;padding-top:18px;border-top:1px solid var(--gv-line-soft);display:grid;gap:16px;text-align:left}.gv2-settings label{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:14px;color:#b8bcc4;font-size:12px;font-weight:750}.gv2-settings input{width:100%;accent-color:var(--gv-gold)}
.gv2-text-btn{margin-top:14px;border:0;background:transparent;color:#7f8691;font:700 12px inherit;cursor:pointer}.gv2-text-btn:hover{color:var(--gv-text)}

body.gv-paused #touch{pointer-events:none;opacity:.22}
body.gv-campaign-active #wbossBar{display:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media (max-width:900px){
  #title{padding:28px}.gv2-title-wrap{grid-template-columns:1fr;gap:30px;align-content:center}.gv2-title-copy{max-width:none}.gv2-brand{margin-bottom:36px}.gv2-title-copy h1{font-size:86px}.gv2-title-copy p{font-size:17px}.gv2-entry-panel{border-left:0;border-top:1px solid var(--gv-line);box-shadow:0 -24px 60px rgba(0,0,0,.2)}
  .gv2-levels{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  #title{padding:calc(20px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));background-position:56% center}.gv2-title-wrap{min-height:auto;display:block}.gv2-title-copy{padding:8px 4px 24px}.gv2-brand{margin-bottom:44px;font-size:14px}.gv2-brand img{width:168px;height:auto}.gv2-title-copy h1{font-size:64px;margin-top:8px}.gv2-title-copy p{font-size:15px;line-height:1.45}.gv2-feature-row{margin-top:20px}.gv2-feature-row span{font-size:10px}.gv2-entry-panel{padding:22px 4px 4px;background:rgba(8,9,12,.9)}
  .gv2-screen-head{grid-template-columns:1fr auto;gap:12px;padding:18px 16px}.gv2-screen-head h2{font-size:28px}.gv2-progress-summary{grid-row:2;grid-column:1/-1;padding:12px 0 0;border-left:0;border-top:1px solid var(--gv-line-soft);display:flex;gap:8px}.gv2-progress-summary span{margin-right:14px}.gv2-close{grid-row:1;grid-column:2}
  .gv2-level-scroll{padding:14px 12px}.gv2-levels{grid-template-columns:1fr}.gv2-level{min-height:164px;padding:16px}.gv2-level h3{margin-top:16px}
  #campaignHud{top:calc(8px + env(safe-area-inset-top));left:8px;width:calc(100vw - 70px);transform:translateY(-12px)}#campaignHud.show{transform:none}
  #gameMenuBtn{top:calc(8px + env(safe-area-inset-top));right:8px;width:48px;height:48px}
  .gv2-result-panel,.gv2-pause-panel{padding:28px 18px}.gv2-result-stats b{font-size:20px}.gv2-result-actions{grid-template-columns:1fr}.gv2-settings label{grid-template-columns:1fr;gap:6px}
  body.touch #hudTop{top:calc(env(safe-area-inset-top) + 66px)}
  body.gv-campaign-active.touch #routeHud{top:calc(env(safe-area-inset-top) + 108px);left:8px;right:auto;width:min(300px,calc(100vw - 16px))}
  body.gv-campaign-active.touch #hudTop{opacity:0;pointer-events:none}
}
