/* Core Beast visual cleanup layer. Keeps future monster image slots clear. */
:root{
  --cb-ink:#07101b;
  --cb-floor:#0c1725;
  --cb-panel:rgba(10,18,31,.94);
  --cb-panel-soft:rgba(15,25,42,.9);
  --cb-edge:rgba(145,190,220,.22);
  --cb-edge-strong:rgba(129,218,255,.45);
}
body{background:#050912}
.app{
  min-height:640px;
  background:
    radial-gradient(circle at 76% 18%,rgba(93,168,211,.16),transparent 30%),
    linear-gradient(180deg,#08111e 0%,#07101b 52%,#050914 100%);
}
#scene{opacity:.74;filter:saturate(.82) contrast(.92) brightness(.75)}
.screen{padding:22px}
.panel,.unit-box,.command-panel,.hud{
  border-color:var(--cb-edge)!important;
  background:linear-gradient(180deg,var(--cb-panel),rgba(6,12,22,.94))!important;
  box-shadow:0 16px 42px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.035)!important;
}
.panel:before,.unit-box:before,.command-panel:before{border-color:rgba(255,255,255,.04)}
.hud{
  height:46px;
  width:calc(100% - 14px);
  margin:0 auto;
  border-width:2px!important;
  padding:8px 12px;
  backdrop-filter:blur(6px);
}
.small-btn{padding:7px 12px;background:#131c2e;border-color:rgba(255,255,255,.18)}
.battle-screen{
  grid-template-columns:minmax(250px,300px) 1fr minmax(250px,300px);
  grid-template-rows:52px 1fr 158px;
  gap:14px;
  padding:12px 14px 14px;
}
.unit-box{
  width:100%;
  min-height:128px;
  border-width:2px!important;
}
.enemy-box{grid-column:3;grid-row:2;margin:34px 18px 0 0;align-self:start}
.player-box{grid-column:1;grid-row:2;margin:0 0 76px 18px;align-self:end}
.unit-head strong{font-size:18px;letter-spacing:-.03em}
.hp{height:14px;margin:12px 0 10px;border-color:rgba(255,255,255,.15);background:#111723}
.hp i{background:linear-gradient(90deg,#9dff9a 0%,#f6e97a 62%,#f07b65 100%)}
.battle-log{
  top:82px;
  width:360px;
  max-height:94px;
  border-color:rgba(255,255,255,.09);
  background:rgba(6,10,17,.68);
  padding:8px 10px;
}
.battle-log p{font-size:12px;color:#cbd8e3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.command-panel{
  border-width:2px!important;
  grid-template-columns:280px minmax(390px,1fr) 150px;
  min-height:148px;
  padding:12px 14px;
  margin:0 8px;
}
.team-chip,.move-btn,.core-card,.reward-card,.shop-card,.menu-card{
  border-color:rgba(255,255,255,.14)!important;
  background:rgba(16,25,40,.82)!important;
  box-shadow:none!important;
}
.team-chip.active,.core-card.selected{border-color:#ffe66d!important;background:rgba(255,230,109,.1)!important}
.move-grid{gap:8px}
.move-btn{min-height:86px;padding:12px}
.side-actions{align-items:stretch}.side-actions .btn{height:56px}
.home-btn{right:10px;bottom:10px;opacity:.82}
/* desktop title layout: keep every menu reachable instead of clipping the right rail */
#titleScreen.title-screen{
  height:100vh;
  min-height:0;
  grid-template-columns:minmax(360px,min(760px,58vw)) minmax(320px,380px);
  align-items:stretch;
  justify-content:center;
  gap:22px;
  padding:clamp(14px,2vh,22px) clamp(18px,4vw,52px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
}
#titleScreen .hero-panel{
  align-self:center;
  width:100%;
  max-width:760px;
  margin-left:0;
}
#titleScreen .side-panel{
  align-self:start;
  width:100%;
  max-height:calc(100vh - 44px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:20px;
}
#titleScreen .side-panel h2{margin:16px 0 10px;font-size:26px;line-height:1.15}
#titleScreen .side-panel h2:first-child{margin-top:0}
#titleScreen .menu-card{margin:8px 0;padding:13px 14px;min-height:0}
#titleScreen .menu-card b{font-size:16px;line-height:1.2}
#titleScreen .menu-card span{font-size:12px;line-height:1.35}
#titleScreen .hero-panel h1{font-size:clamp(56px,7vw,102px)}
#titleScreen .lead{margin:12px 0 0;max-width:620px}
#titleScreen .hero-actions{margin-top:18px}
#titleScreen .stat-board{margin-top:16px}
#titleScreen .stat-board div{padding:11px 12px}
@media(max-height:760px) and (min-width:901px){
  .app{min-height:0}
  #titleScreen.title-screen{padding:12px 36px;gap:18px}
  #titleScreen .hero-panel{padding:20px}
  #titleScreen .hero-panel h1{font-size:clamp(48px,6.1vw,82px);line-height:.9}
  #titleScreen .lead{font-size:16px;line-height:1.45}
  #titleScreen .btn{padding:10px 14px}
  #titleScreen .side-panel{max-height:calc(100vh - 24px);padding:16px}
  #titleScreen .side-panel h2{font-size:24px;margin:13px 0 8px}
  #titleScreen .menu-card{padding:11px 13px;margin:7px 0}
}
/* clean starter select: 3 large readable choices */
#starterScreen .full-panel{max-width:980px;height:auto;max-height:calc(100vh - 52px);overflow:auto}
#starterScreen .top-row{align-items:flex-end;border-bottom:2px solid rgba(255,255,255,.08);padding-bottom:14px}
#starterScreen .top-row .muted{font-size:0}
#starterScreen .top-row .muted:after{content:'3개의 동기화 후보 중 하나를 고르세요. 나머지 코어는 탐사 중 동기화로 얻습니다.';font-size:14px;color:#91a8b8}
#starterScreen .cost-box{display:none}
#starterGrid{grid-template-columns:repeat(3,minmax(210px,1fr));gap:16px;align-items:stretch}
#starterGrid .core-card{min-height:360px;padding:18px;text-align:left;display:flex;flex-direction:column;justify-content:flex-start}
#starterGrid .core-card .pixel-sigil{float:none;display:grid;place-items:center;width:100%;height:130px;margin:0 0 14px;font-size:58px;border:2px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.18));image-rendering:pixelated}
#starterGrid .core-card strong{font-size:22px;margin-bottom:10px}
#starterGrid .core-card small{display:block;max-height:4.2em;overflow:hidden;color:#aebdca}
#starterGrid .core-card:not(.starter-choice){display:none!important}
#starterGrid .core-card.starter-choice:after{content:'이미지 슬롯';display:block;margin-top:auto;padding-top:12px;color:rgba(255,255,255,.28);font-size:12px;text-align:right}
#startRunBtn{min-width:180px}
/* room feeling instead of raw grid */
.battle-screen:before{
  content:'';
  position:absolute;
  inset:64px 20px 174px;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 55%,rgba(92,230,255,.06),transparent 38%),
    linear-gradient(180deg,transparent 0%,rgba(0,0,0,.2) 70%,rgba(0,0,0,.42) 100%);
  border-top:1px solid rgba(255,255,255,.04);
}
.battle-screen > *{position:relative;z-index:2}
@media(max-width:900px){
  .battle-screen{grid-template-columns:1fr;grid-template-rows:auto;min-height:100vh;padding:10px}
  .enemy-box,.player-box{margin:0}.battle-log{position:relative;top:auto;width:100%;max-height:110px}
  .command-panel{grid-template-columns:1fr;margin:0}.move-grid{grid-template-columns:1fr}.team-bar{flex-direction:row;overflow:auto}
  #starterGrid{grid-template-columns:1fr}.hero-panel h1{font-size:56px}
  #titleScreen.title-screen{height:auto;min-height:100vh;grid-template-columns:1fr;overflow:visible;padding:16px}
  #titleScreen .hero-panel{align-self:start}
  #titleScreen .side-panel{max-height:none;overflow:visible;padding:18px}
}
