/* === SOURCE: css/074-anonymous.css === */

.stepper{align-items:stretch}
.stepper button,
.stepper input{
  height:100%;
  min-height:0;
  padding-top:0;
  padding-bottom:0;
  line-height:1;
  vertical-align:middle;
}
.stepper button{
  display:flex;
  align-items:center;
  justify-content:center;
}
.stepper input{
  display:block;
  text-align:center;
}

/* === SOURCE: css/075-v400-build-overview.css === */

/* ===== v4.0 · Build Overview / full-width workspace transition ===== */
@media(min-width:761px){
  .workspace{
    transition:grid-template-columns .44s cubic-bezier(.22,.8,.22,1),gap .44s cubic-bezier(.22,.8,.22,1)!important;
  }
  .left-stack{
    min-width:0;
    transform:translateX(0);
    opacity:1;
    transition:transform .44s cubic-bezier(.22,.8,.22,1),opacity .26s ease;
    will-change:transform,opacity;
  }
  body.build-overview-active .workspace{
    grid-template-columns:0 minmax(0,1fr)!important;
    gap:0!important;
  }
  body.build-overview-active .left-stack{
    transform:translateX(calc(-100% - 36px));
    opacity:0;
    pointer-events:none;
  }
}
body.build-overview-active .main{min-width:0}
body.build-overview-active #mobileStickyControls{display:none!important}

.build-overview-panel{
  margin-top:2px;
  min-width:0;
}
body.build-overview-active .build-overview-panel{
  animation:buildOverviewIn .42s cubic-bezier(.22,.8,.22,1) both;
}
@keyframes buildOverviewIn{
  from{opacity:0;transform:translateX(30px)}
  to{opacity:1;transform:translateX(0)}
}

.build-overview-head{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
  padding:0 4px;
}
.build-overview-head h2{
  margin:3px 0 0;
  font-size:24px;
  letter-spacing:-.025em;
  color:#f0f3f6;
}
.build-overview-head-note{
  color:#68737e;
  font-size:10px;
  font-weight:750;
  letter-spacing:.03em;
}

.build-overview-grid{
  display:grid;
  grid-template-columns:minmax(220px,.82fr) minmax(290px,.9fr) minmax(520px,1.48fr);
  gap:14px;
  align-items:stretch;
  min-height:min(720px,calc(100vh - 210px));
}
.overview-card{
  min-width:0;
  border:1px solid rgba(255,255,255,.082);
  border-radius:22px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 46%,transparent 72%),
    rgba(12,18,24,.90);
  box-shadow:0 18px 46px rgba(0,0,0,.20);
  overflow:hidden;
}
.overview-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.overview-card-head h3{
  margin:3px 0 0;
  color:#e9edf2;
  font-size:18px;
  letter-spacing:-.018em;
}
.overview-source-note{
  color:#64707b;
  font-size:9px;
  font-weight:750;
  white-space:nowrap;
}

/* Column 1: visual identity */
.overview-portrait-card{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  background:
    radial-gradient(circle at 50% 28%,rgba(216,184,95,.08),transparent 36%),
    linear-gradient(180deg,rgba(20,27,35,.97),rgba(9,14,19,.98));
}
.overview-portrait-stage{
  position:relative;
  min-height:500px;
  overflow:hidden;
  isolation:isolate;
}
.overview-model-watermark{
  position:absolute;
  z-index:0;
  width:min(78%,260px);
  height:min(78%,260px);
  left:50%;
  top:15%;
  transform:translateX(-50%);
  object-fit:contain;
  opacity:.055;
  filter:grayscale(1) brightness(1.3) blur(.2px);
}
.overview-player-aura{
  position:absolute;
  z-index:0;
  left:50%;
  top:21%;
  width:72%;
  aspect-ratio:1;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(225,231,236,.055),rgba(225,231,236,.015) 42%,transparent 69%);
  filter:blur(3px);
}
.overview-player-silhouette{
  position:absolute;
  z-index:1;
  width:92%;
  max-width:330px;
  height:auto;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  opacity:.78;
}
.overview-portrait-fade{
  position:absolute;
  z-index:2;
  inset:auto 0 0;
  height:38%;
  background:linear-gradient(180deg,transparent,rgba(9,14,19,.75) 62%,rgba(9,14,19,.98));
}
.overview-portrait-badge{
  position:absolute;
  z-index:3;
  left:18px;
  right:18px;
  bottom:18px;
}
.overview-portrait-badge span{
  display:block;
  color:#69747f;
  font-size:8px;
  font-weight:850;
  letter-spacing:.13em;
}
.overview-portrait-badge strong{
  display:block;
  margin-top:5px;
  color:#c8cfd6;
  font-size:12px;
}
.overview-portrait-footer{
  min-height:72px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  border-top:1px solid rgba(255,255,255,.055);
  background:rgba(255,255,255,.012);
}
.overview-logo-shell{
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  flex:0 0 39px;
}
.overview-logo-shell img{width:36px;height:36px;object-fit:contain}
.overview-portrait-footer strong,
.overview-portrait-footer span{display:block}
.overview-portrait-footer strong{font-size:13px;color:#e3e7ec}
.overview-portrait-footer div>span{margin-top:2px;color:#69747f;font-size:8px;letter-spacing:.05em}

/* Column 2 */
.overview-middle-column{
  min-width:0;
  display:grid;
  grid-template-rows:minmax(0,.92fr) minmax(0,1.08fr);
  gap:14px;
}
.overview-profile-card,
.overview-playstyle-card,
.overview-stats-card{padding:18px}
.overview-position-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.075);
  background:rgba(255,255,255,.025);
  color:#9ca6b1;
  font-size:9px;
  font-weight:800;
}
.overview-model-key{
  margin-top:5px;
  color:#5f6a75;
  font-size:9px;
  font-weight:750;
  letter-spacing:.08em;
}
.overview-profile-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:17px;
}
.overview-profile-grid>div{
  min-height:54px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.overview-profile-grid span{
  color:#68747f;
  font-size:8px;
  font-weight:720;
}
.overview-profile-grid strong{
  margin-top:4px;
  color:#d6dce2;
  font-size:13px;
  font-weight:800;
  font-variant-numeric:tabular-nums lining-nums;
}
#overviewAccelerate{color:#dbc77f}
.overview-ap-strip{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  padding:10px 11px;
  border-radius:12px;
  background:rgba(255,255,255,.018);
  border:1px solid rgba(255,255,255,.05);
  color:#68737e;
  font-size:8px;
}
.overview-ap-strip>span{font-weight:900;letter-spacing:.08em;color:#8d98a3}
.overview-ap-strip strong{
  color:#89949e;
  font-size:9px;
  font-weight:700;
}
.overview-ap-strip strong b{
  color:#d4d9df;
  font-size:12px;
  font-variant-numeric:tabular-nums;
}
.overview-ap-strip i{width:1px;height:14px;background:rgba(255,255,255,.07)}

.overview-playstyle-card{
  display:flex;
  flex-direction:column;
}
.overview-playstyle-section{
  margin-top:15px;
  padding-top:13px;
  border-top:1px solid rgba(255,255,255,.055);
}
.overview-playstyle-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.overview-playstyle-title span{
  color:#7f8a95;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.overview-playstyle-title strong{
  color:#aeb6bf;
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
.overview-playstyle-section.plus .overview-playstyle-title span{color:#a89158}
.overview-playstyle-list{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  min-height:46px;
}
.overview-playstyle-empty{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border:1px dashed rgba(255,255,255,.07);
  border-radius:11px;
  color:#58636d;
  font-size:9px;
}
.overview-playstyle-token{
  width:54px;
  min-width:54px;
  display:grid;
  justify-items:center;
  gap:4px;
}
.overview-playstyle-token img,
.overview-ps-glyph{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  object-fit:contain;
}
.overview-ps-glyph{
  border:1px solid rgba(222,227,232,.24);
  background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.13),rgba(255,255,255,.025) 58%,rgba(0,0,0,.15));
  color:#d9dee3;
  font-size:8px;
  font-weight:900;
}
.overview-playstyle-token.plus .overview-ps-glyph{
  border-color:rgba(216,184,95,.38);
  color:#dcc26f;
  background:radial-gradient(circle at 35% 28%,rgba(216,184,95,.16),rgba(216,184,95,.035) 58%,rgba(0,0,0,.15));
  box-shadow:0 0 12px rgba(216,184,95,.07);
}
.overview-playstyle-token small{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
  color:#7b8792;
  font-size:7px;
}
.overview-slot-preview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:auto;
  padding-top:13px;
}
.overview-slot-caption{color:#606c77;font-size:8px}
.overview-slot-dots{display:flex;align-items:center;gap:5px}
.overview-slot-dot{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.08);
  color:#505b65;
  background:rgba(255,255,255,.018);
  font-size:8px;
  font-weight:850;
}
.overview-slot-dot.open{
  border-color:rgba(205,213,220,.25);
  color:#bac2ca;
  background:rgba(225,230,235,.05);
}

/* Column 3: final match numbers */
.overview-stats-card{
  display:flex;
  flex-direction:column;
}
.overview-face-stats{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  margin-top:15px;
}
.overview-face-stat{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:58px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.overview-face-stat span{
  color:#65717c;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
}
.overview-face-stat strong{
  margin-top:4px;
  color:#edf1f4;
  font-size:20px;
  line-height:1;
  font-weight:850;
  font-variant-numeric:tabular-nums lining-nums;
}
.overview-detailed-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  align-items:start;
  margin-top:12px;
}
.overview-stat-group{
  min-width:0;
  padding:10px 10px 8px;
  border:1px solid rgba(255,255,255,.052);
  border-radius:13px;
  background:rgba(255,255,255,.014);
}
.overview-stat-group h4{
  margin:0 0 7px;
  color:#909aa5;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
}
.overview-stat-list{display:grid;gap:1px}
.overview-stat-row{
  min-width:0;
  min-height:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-bottom:1px solid rgba(255,255,255,.028);
}
.overview-stat-row:last-child{border-bottom:0}
.overview-stat-row>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7e8994;
  font-size:9px;
}
.overview-stat-row strong{
  display:flex;
  align-items:baseline;
  gap:3px;
  color:#dce1e6;
  font-size:13px;
  font-weight:850;
  font-variant-numeric:tabular-nums lining-nums;
}
.overview-stat-row strong small{
  color:#a99662;
  font-size:7px;
  font-weight:850;
}

@media(max-width:1380px) and (min-width:761px){
  .build-overview-grid{
    grid-template-columns:minmax(200px,.76fr) minmax(260px,.88fr) minmax(430px,1.36fr);
    gap:11px;
  }
  .overview-profile-card,.overview-playstyle-card,.overview-stats-card{padding:15px}
  .overview-detailed-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-portrait-stage{min-height:460px}
}
@media(max-width:1050px) and (min-width:761px){
  .build-overview-grid{
    grid-template-columns:minmax(190px,.72fr) minmax(250px,.9fr) minmax(350px,1.18fr);
  }
  .overview-face-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .overview-profile-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  body.build-overview-active .left-stack{display:none!important}
  .build-overview-head{min-height:auto;margin-bottom:9px;padding:4px 1px 0}
  .build-overview-head h2{font-size:20px}
  .build-overview-head-note{display:none}
  .build-overview-grid{display:grid;grid-template-columns:1fr;min-height:0;gap:10px}
  .overview-portrait-stage{min-height:390px}
  .overview-middle-column{grid-template-rows:auto auto;gap:10px}
  .overview-profile-card,.overview-playstyle-card,.overview-stats-card{padding:14px}
  .overview-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .overview-face-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
  .overview-face-stat{min-height:50px;border-radius:9px}
  .overview-face-stat strong{font-size:16px}
  .overview-detailed-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .overview-stat-group{padding:9px 8px 7px}
}
@media(max-width:500px){
  .overview-face-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .overview-detailed-stats{grid-template-columns:1fr}
}

/* === SOURCE: css/076-v401-overview-profile-refine.css === */

/* v4.0.1 · Build Profile: logo + dynamic title, then two compact info rows */
.overview-profile-card.overview-profile-compact{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:22px 20px;
}
.overview-profile-title-row{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
}
.overview-profile-logo{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
}
.overview-profile-logo img{
  width:39px;
  height:39px;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 3px 9px rgba(0,0,0,.22));
}
.overview-profile-title-row h3{
  min-width:0;
  margin:0;
  color:#edf1f4;
  font-size:27px;
  line-height:1.05;
  font-weight:850;
  letter-spacing:-.035em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.overview-profile-meta-row{
  min-width:0;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  margin-left:54px;
  font-variant-numeric:tabular-nums lining-nums;
}
.overview-profile-meta-row i{
  width:1px;
  height:12px;
  flex:0 0 1px;
  background:rgba(255,255,255,.075);
}
.overview-profile-meta-row span{
  color:#737f8b;
  font-size:10px;
  line-height:1.4;
  font-weight:700;
  white-space:nowrap;
}
.overview-profile-meta-row b{
  color:#cfd5db;
  font-size:12px;
  font-weight:850;
}
.overview-profile-primary{
  margin-top:14px;
}
.overview-profile-primary>span:first-child b{
  color:#d8dde2;
}
.overview-profile-secondary{
  margin-top:8px;
}
.overview-profile-secondary #overviewAccelerate{
  color:#dbc77f;
}

/* Old profile elements are retired in v4.0.1; keep legacy CSS harmless. */
.overview-profile-card .overview-profile-grid,
.overview-profile-card .overview-ap-strip,
.overview-profile-card .overview-position-pill,
.overview-profile-card .overview-model-key{
  display:none!important;
}

@media(max-width:1380px) and (min-width:761px){
  .overview-profile-card.overview-profile-compact{padding:19px 17px}
  .overview-profile-title-row h3{font-size:24px}
  .overview-profile-meta-row{margin-left:51px;gap:7px}
  .overview-profile-meta-row span{font-size:9px}
  .overview-profile-meta-row b{font-size:11px}
}
@media(max-width:760px){
  .overview-profile-card.overview-profile-compact{padding:17px 15px}
  .overview-profile-title-row h3{font-size:23px}
  .overview-profile-logo{width:38px;height:38px;flex-basis:38px}
  .overview-profile-logo img{width:35px;height:35px}
  .overview-profile-meta-row{
    margin-left:50px;
    gap:7px;
  }
}

/* === SOURCE: css/077-v402-overview-fit-and-traits.css === */

/* v4.0.2 · desktop Build Overview must fit in one viewport */
@media(min-width:761px){
  body.build-overview-active{
    height:100dvh;
    overflow:hidden;
  }
  body.build-overview-active .shell{
    height:100dvh;
    min-height:0;
    overflow:hidden;
    padding-bottom:14px;
    display:flex;
    flex-direction:column;
  }
  body.build-overview-active .topbar{
    flex:0 0 auto;
    margin-bottom:12px;
  }
  body.build-overview-active .workspace{
    flex:1 1 auto;
    min-height:0;
    align-items:stretch;
  }
  body.build-overview-active .main{
    min-height:0;
    height:100%;
    display:flex;
    flex-direction:column;
  }
  body.build-overview-active .editor-view-tabs{
    flex:0 0 auto;
    margin-bottom:9px;
  }
  body.build-overview-active .build-overview-panel{
    flex:1 1 auto;
    min-height:0;
    margin-top:0;
    display:flex;
    flex-direction:column;
  }
  body.build-overview-active .build-overview-head{
    flex:0 0 auto;
    min-height:38px;
    margin-bottom:8px;
  }
  body.build-overview-active .build-overview-head h2{
    font-size:20px;
  }
  body.build-overview-active .build-overview-grid{
    flex:1 1 auto;
    min-height:0;
    height:auto;
  }
  body.build-overview-active .overview-card,
  body.build-overview-active .overview-middle-column{
    min-height:0;
  }
  body.build-overview-active .overview-portrait-stage{
    min-height:0!important;
  }
  body.build-overview-active .overview-middle-column{
    grid-template-rows:auto minmax(0,1fr);
  }
  body.build-overview-active .overview-profile-card{
    min-height:0;
  }
  body.build-overview-active .overview-playstyle-card{
    min-height:0;
  }
  body.build-overview-active .overview-stats-card{
    min-height:0;
  }
  body.build-overview-active .footer{
    display:none!important;
  }
}

/* Build profile gets a stronger visual hierarchy without adding more factual fields. */
.overview-profile-card.overview-profile-compact{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  justify-content:flex-start;
  padding:18px 18px 16px;
  background:
    linear-gradient(120deg,rgba(255,255,255,.032),rgba(255,255,255,.008) 46%,transparent 70%),
    radial-gradient(circle at 86% 18%,rgba(216,184,95,.065),transparent 31%),
    rgba(12,18,24,.90);
}
.overview-profile-card.overview-profile-compact::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-54px;
  top:-70px;
  width:190px;
  height:190px;
  border-radius:50%;
  border:1px solid rgba(216,184,95,.055);
  box-shadow:
    0 0 0 22px rgba(216,184,95,.018),
    0 0 0 48px rgba(216,184,95,.008);
  pointer-events:none;
}
.overview-profile-title-row{
  position:relative;
  z-index:1;
}
.overview-profile-title-row h3{
  font-size:25px;
}
.overview-profile-meta-row{
  position:relative;
  z-index:1;
}
.overview-profile-primary{
  margin-top:11px;
}
.overview-profile-secondary{
  margin-top:6px;
}
.overview-profile-traits{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin:13px 0 0 54px;
  padding-top:11px;
  border-top:1px solid rgba(255,255,255,.055);
}
.overview-traits-label{
  flex:0 0 auto;
  color:#636e79;
  font-size:8px;
  font-weight:800;
  letter-spacing:.07em;
  white-space:nowrap;
}
.overview-trait-chips{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.overview-trait-chips span{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid rgba(210,217,224,.095);
  background:rgba(227,232,237,.035);
  color:#98a2ac;
  font-size:8px;
  font-weight:760;
  white-space:nowrap;
}
.overview-trait-chips span:first-child{
  border-color:rgba(216,184,95,.18);
  background:rgba(216,184,95,.055);
  color:#bdaa71;
}

/* Slightly tighten the numeric side so 29 attributes stay comfortably visible. */
@media(min-width:761px){
  body.build-overview-active .overview-profile-card,
  body.build-overview-active .overview-playstyle-card,
  body.build-overview-active .overview-stats-card{
    padding:14px;
  }
  body.build-overview-active .overview-face-stats{
    margin-top:10px;
    gap:5px;
  }
  body.build-overview-active .overview-face-stat{
    min-height:48px;
  }
  body.build-overview-active .overview-face-stat strong{
    font-size:18px;
  }
  body.build-overview-active .overview-detailed-stats{
    margin-top:8px;
    gap:7px;
  }
  body.build-overview-active .overview-stat-group{
    padding:7px 8px 6px;
  }
  body.build-overview-active .overview-stat-group h4{
    margin-bottom:4px;
  }
  body.build-overview-active .overview-stat-row{
    min-height:21px;
  }
  body.build-overview-active .overview-stat-row>span{
    font-size:8px;
  }
  body.build-overview-active .overview-stat-row strong{
    font-size:12px;
  }
  body.build-overview-active .overview-playstyle-section{
    margin-top:10px;
    padding-top:9px;
  }
  body.build-overview-active .overview-playstyle-list{
    min-height:38px;
  }
  body.build-overview-active .overview-playstyle-empty{
    min-height:36px;
  }
}

/* Short desktop windows get an extra compact pass instead of page scrolling. */
@media(min-width:761px) and (max-height:820px){
  body.build-overview-active .shell{
    padding-top:12px;
    padding-bottom:10px;
  }
  body.build-overview-active .topbar{
    margin-bottom:8px;
  }
  body.build-overview-active .topbar .subtitle{
    display:none;
  }
  body.build-overview-active h1{
    font-size:30px;
  }
  body.build-overview-active .editor-view-tab{
    min-height:38px;
  }
  body.build-overview-active .build-overview-head{
    min-height:28px;
    margin-bottom:6px;
  }
  body.build-overview-active .build-overview-head h2{
    font-size:18px;
  }
  body.build-overview-active .build-overview-head-note{
    font-size:8px;
  }
  body.build-overview-active .overview-profile-card,
  body.build-overview-active .overview-playstyle-card,
  body.build-overview-active .overview-stats-card{
    padding:11px;
  }
  .overview-profile-logo{
    width:36px;
    height:36px;
    flex-basis:36px;
  }
  .overview-profile-logo img{
    width:33px;
    height:33px;
  }
  .overview-profile-title-row h3{
    font-size:22px;
  }
  .overview-profile-meta-row,
  .overview-profile-traits{
    margin-left:48px;
  }
  .overview-profile-primary{
    margin-top:8px;
  }
  .overview-profile-traits{
    margin-top:8px;
    padding-top:8px;
  }
  body.build-overview-active .overview-face-stat{
    min-height:42px;
  }
  body.build-overview-active .overview-stat-row{
    min-height:18px;
  }
  body.build-overview-active .overview-stat-group{
    padding:5px 7px 4px;
  }
}

/* Mobile remains naturally scrollable; squeezing all three columns into one phone viewport
   would make the data unreadable. */
@media(max-width:760px){
  .overview-profile-traits{
    margin-left:50px;
  }
}

/* === SOURCE: css/078-v403-profile-emphasis-aura.css === */

/* v4.0.3 · stronger Build info module + archetype aura logo */
.overview-profile-card.overview-profile-compact{
  padding:22px 22px 20px;
  background:
    linear-gradient(120deg,rgba(255,255,255,.036),rgba(255,255,255,.010) 46%,transparent 70%),
    radial-gradient(circle at 84% 18%,rgba(216,184,95,.085),transparent 34%),
    rgba(12,18,24,.92);
}
.overview-profile-aura-logo{
  position:absolute;
  right:-46px;
  top:-44px;
  width:270px;
  height:270px;
  object-fit:contain;
  opacity:.115;
  pointer-events:none;
  user-select:none;
  transform:scale(1.06);
  filter:
    brightness(0) saturate(100%)
    invert(80%) sepia(24%) saturate(513%) hue-rotate(8deg) brightness(94%) contrast(87%)
    drop-shadow(0 0 26px rgba(216,184,95,.12));
}
.overview-profile-card.overview-profile-compact::after{
  right:-64px;
  top:-84px;
  width:218px;
  height:218px;
  box-shadow:
    0 0 0 24px rgba(216,184,95,.015),
    0 0 0 54px rgba(216,184,95,.007);
}
.overview-profile-title-row{gap:14px}
.overview-profile-logo{
  width:50px;
  height:50px;
  flex:0 0 50px;
}
.overview-profile-logo img{
  width:46px;
  height:46px;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.24));
}
.overview-profile-title-row h3{
  font-size:32px;
  line-height:1.02;
  letter-spacing:-.04em;
}
.overview-profile-meta-row{
  gap:11px;
  margin-left:64px;
}
.overview-profile-meta-row i{height:16px}
.overview-profile-meta-row span{
  font-size:12px;
  line-height:1.45;
}
.overview-profile-meta-row b{
  font-size:17px;
}
.overview-profile-primary{margin-top:16px}
.overview-profile-secondary{margin-top:10px}
.overview-profile-traits{
  margin:16px 0 0 64px;
  padding-top:13px;
}
.overview-traits-label{
  font-size:9px;
  letter-spacing:.08em;
}
.overview-trait-chips{gap:6px}
.overview-trait-chips span{
  min-height:25px;
  padding:0 10px;
  font-size:10px;
  font-weight:780;
}
@media(min-width:761px){
  body.build-overview-active .overview-middle-column{
    grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);
    gap:12px;
  }
  body.build-overview-active .overview-profile-card{
    padding:18px 18px 16px;
  }
}
@media(min-width:761px) and (max-height:820px){
  .overview-profile-card.overview-profile-compact{padding:18px 18px 16px}
  .overview-profile-aura-logo{
    right:-52px;
    top:-50px;
    width:230px;
    height:230px;
    opacity:.105;
  }
  .overview-profile-logo{width:44px;height:44px;flex-basis:44px}
  .overview-profile-logo img{width:40px;height:40px}
  .overview-profile-title-row h3{font-size:28px}
  .overview-profile-meta-row,
  .overview-profile-traits{margin-left:58px}
  .overview-profile-meta-row span{font-size:11px}
  .overview-profile-meta-row b{font-size:15px}
  .overview-profile-primary{margin-top:12px}
  .overview-profile-secondary{margin-top:7px}
  .overview-profile-traits{margin-top:11px;padding-top:10px}
  .overview-trait-chips span{min-height:23px;padding:0 9px;font-size:9px}
}
@media(max-width:760px){
  .overview-profile-aura-logo{
    right:-58px;
    top:-54px;
    width:210px;
    height:210px;
    opacity:.085;
  }
  .overview-profile-title-row h3{font-size:26px}
  .overview-profile-meta-row,
  .overview-profile-traits{margin-left:50px}
}

/* === SOURCE: css/079-v404-profile-playstyle-ratio-polish.css === */

/* v4.0.4 · middle column = 40% profile / 60% playstyles */
@media(min-width:761px){
  body.build-overview-active .overview-middle-column{
    grid-template-rows:minmax(0,4fr) minmax(0,6fr)!important;
    gap:12px!important;
  }
}

/* Restore v4.0.2's restrained circular gold atmosphere. */
.overview-profile-card.overview-profile-compact{
  justify-content:center;
  padding:20px 20px 18px;
  background:
    linear-gradient(120deg,rgba(255,255,255,.032),rgba(255,255,255,.008) 46%,transparent 70%),
    radial-gradient(circle at 86% 18%,rgba(216,184,95,.065),transparent 31%),
    rgba(12,18,24,.90);
}
.overview-profile-card.overview-profile-compact::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-54px;
  top:-70px;
  width:190px;
  height:190px;
  border-radius:50%;
  border:1px solid rgba(216,184,95,.055);
  box-shadow:
    0 0 0 22px rgba(216,184,95,.018),
    0 0 0 48px rgba(216,184,95,.008);
  pointer-events:none;
}

/* Keep the larger type from v4.0.3, but give it more breathing room. */
.overview-profile-title-row{
  gap:14px;
}
.overview-profile-logo{
  width:50px;
  height:50px;
  flex:0 0 50px;
}
.overview-profile-logo img{
  width:46px;
  height:46px;
}
.overview-profile-title-row h3{
  font-size:32px;
  line-height:1.04;
}
.overview-profile-meta-row{
  gap:11px;
  margin-left:64px;
}
.overview-profile-meta-row i{
  height:16px;
}
.overview-profile-meta-row span{
  font-size:12px;
  line-height:1.55;
}
.overview-profile-meta-row b{
  font-size:17px;
}
.overview-profile-primary{
  margin-top:18px;
}
.overview-profile-secondary{
  margin-top:10px;
}
.overview-profile-traits{
  margin:17px 0 0 64px;
  padding-top:14px;
  gap:10px;
}
.overview-traits-label{
  font-size:9px;
}
.overview-trait-chips{
  gap:7px;
}
.overview-trait-chips span{
  min-height:25px;
  padding:0 10px;
  font-size:10px;
}

/* Short viewports: preserve the same 4:6 relationship while compacting spacing, not typography. */
@media(min-width:761px) and (max-height:820px){
  body.build-overview-active .overview-middle-column{
    grid-template-rows:minmax(0,4fr) minmax(0,6fr)!important;
    gap:10px!important;
  }
  .overview-profile-card.overview-profile-compact{
    padding:16px 17px 14px;
  }
  .overview-profile-logo{
    width:44px;
    height:44px;
    flex-basis:44px;
  }
  .overview-profile-logo img{
    width:40px;
    height:40px;
  }
  .overview-profile-title-row h3{
    font-size:28px;
  }
  .overview-profile-meta-row,
  .overview-profile-traits{
    margin-left:58px;
  }
  .overview-profile-primary{
    margin-top:11px;
  }
  .overview-profile-secondary{
    margin-top:6px;
  }
  .overview-profile-traits{
    margin-top:10px;
    padding-top:9px;
  }
  .overview-profile-meta-row span{
    font-size:11px;
  }
  .overview-profile-meta-row b{
    font-size:15px;
  }
  .overview-trait-chips span{
    min-height:23px;
    padding:0 9px;
    font-size:9px;
  }
}

@media(max-width:760px){
  .overview-profile-card.overview-profile-compact::after{
    right:-54px;
    top:-70px;
    width:190px;
    height:190px;
  }
}

/* === SOURCE: css/080-v405-profile-name-and-alignment.css === */

/* v4.0.5 · inline English archetype name + left-shifted information rhythm */
.overview-profile-name-lockup{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}
.overview-profile-name-lockup h3{
  flex:0 0 auto;
}
.overview-model-english{
  color:#67727e;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.025em;
  white-space:nowrap;
}

/* The title stays tied to the logo, while the three content rows move left
   to reduce the empty gutter before the PlayStyle module below. */
.overview-profile-meta-row,
.overview-profile-traits{
  margin-left:42px!important;
}
.overview-profile-meta-row{
  column-gap:11px;
}
.overview-profile-traits{
  padding-right:8px;
}

/* Let the divider/traits block feel wider after shifting left. */
.overview-profile-traits{
  width:calc(100% - 42px);
}

/* Short desktop windows preserve the same alignment instead of drifting right. */
@media(min-width:761px) and (max-height:820px){
  .overview-profile-meta-row,
  .overview-profile-traits{
    margin-left:38px!important;
  }
  .overview-profile-traits{
    width:calc(100% - 38px);
  }
  .overview-model-english{
    font-size:11px;
  }
}

/* Narrow desktop/tablet: keep English on the title line when possible,
   but allow it to wrap cleanly instead of crushing the Chinese title. */
@media(max-width:1100px) and (min-width:761px){
  .overview-profile-name-lockup{gap:8px}
  .overview-model-english{font-size:10px}
}

@media(max-width:760px){
  .overview-profile-meta-row,
  .overview-profile-traits{
    margin-left:34px!important;
  }
  .overview-profile-traits{
    width:calc(100% - 34px);
  }
  .overview-model-english{
    font-size:10px;
  }
}

/* === SOURCE: css/081-v406-overview-column-order.css === */

/* v4.0.6 · Build Overview column order:
   left = profile/loadout, center = match attributes, right = inspiration player */
.build-overview-grid{
  grid-template-columns:minmax(300px,.90fr) minmax(520px,1.48fr) minmax(220px,.82fr)!important;
  grid-template-areas:"profile stats portrait";
}
.overview-middle-column{
  grid-area:profile;
}
.overview-stats-card{
  grid-area:stats;
}
.overview-portrait-card{
  grid-area:portrait;
}

/* Keep the center attribute column as the visual/data priority. */
.overview-stats-card{
  box-shadow:0 18px 48px rgba(0,0,0,.22);
}
.overview-portrait-card{
  opacity:.97;
}

/* Medium desktops: preserve the same hierarchy, only tighten minimums. */
@media(max-width:1380px) and (min-width:761px){
  .build-overview-grid{
    grid-template-columns:minmax(270px,.88fr) minmax(430px,1.42fr) minmax(200px,.76fr)!important;
    grid-template-areas:"profile stats portrait";
  }
}
@media(max-width:1050px) and (min-width:761px){
  .build-overview-grid{
    grid-template-columns:minmax(245px,.90fr) minmax(360px,1.30fr) minmax(185px,.70fr)!important;
    grid-template-areas:"profile stats portrait";
  }
}

/* Mobile falls back to a readable vertical order:
   profile/loadout -> stats -> portrait. */
@media(max-width:760px){
  .build-overview-grid{
    grid-template-columns:1fr!important;
    grid-template-areas:
      "profile"
      "stats"
      "portrait";
  }
}

/* === SOURCE: css/082-v410-specialization-page.css === */

/* ===== v4.1 · Specializations ===== */
.specialization-nav-tab{overflow:visible!important}
.specialization-tab-label{position:relative;display:inline-flex;align-items:center;line-height:1;overflow:visible}
.specialization-tab-toast{position:absolute;left:50%;top:-6px;z-index:140;transform:translate(-50%,-100%) scale(.98);min-width:max-content;max-width:320px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(16,22,29,.96);color:#d6dde4;box-shadow:0 10px 28px rgba(0,0,0,.35);font-size:10px;font-weight:800;letter-spacing:.01em;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;white-space:nowrap}
.specialization-tab-toast.show{opacity:1;transform:translate(-50%,-112%) scale(1)}
.specialization-tab-toast.gain,.specialization-tab-toast.equip{border-color:rgba(216,184,95,.30);color:#e2cb80;background:rgba(29,27,19,.97)}
.specialization-tab-toast.loss{border-color:rgba(200,90,96,.30);color:#e1a1a5;background:rgba(31,20,24,.97)}
.specialization-tab-toast.info{color:#bdc6cf}
.specialization-panel{margin-top:2px;min-width:0}
.specialization-page-head{min-height:62px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px;padding:0 4px}
.specialization-heading-line{display:flex;align-items:baseline;gap:9px;margin-top:2px}
.specialization-heading-line h2{margin:0;color:#eef2f6;font-size:24px;letter-spacing:-.025em}
.specialization-heading-line span{color:#65717d;font-size:11px;font-weight:800}
.specialization-page-head p{margin:6px 0 0;color:#687480;font-size:10px;line-height:1.4}
.specialization-ap-summary{min-width:96px;display:flex;flex-direction:column;align-items:flex-end;padding:8px 11px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.018)}
.specialization-ap-summary span{color:#6b7681;font-size:8px;font-weight:800}
.specialization-ap-summary strong{margin-top:2px;color:#e2e6ea;font-size:18px;font-weight:900;font-variant-numeric:tabular-nums}
.specialization-cards{display:grid;grid-template-columns:1.03fr repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;padding:7px 4px 10px}
.specialization-card{position:relative;min-width:0;min-height:590px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.075);border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 43%,transparent 70%),rgba(12,18,24,.94);box-shadow:0 14px 34px rgba(0,0,0,.18);overflow:hidden;transform-origin:center bottom;transition:transform .24s cubic-bezier(.22,.8,.22,1),border-color .2s ease,box-shadow .24s ease,opacity .2s ease,filter .2s ease;cursor:pointer}
.specialization-card:hover{border-color:rgba(255,255,255,.14);transform:translateY(-2px)}
.specialization-card.is-focused:not(.state-3){box-shadow:0 14px 34px rgba(0,0,0,.18),inset 0 0 0 1px rgba(220,226,232,.12)}
.specialization-card.state-1{opacity:.70;background:rgba(10,15,20,.92)}
.specialization-card.state-1 .spec-player-image img{filter:grayscale(.78) saturate(.38) brightness(.70)}
.specialization-card.state-2{border-color:rgba(205,214,222,.14)}
.specialization-card.state-3{z-index:3;transform:translateY(-7px) scale(1.035);border-color:rgba(216,184,95,.42);box-shadow:0 22px 46px rgba(0,0,0,.29),0 0 0 1px rgba(216,184,95,.08),0 0 30px rgba(216,184,95,.065)}
.specialization-card.state-3:hover{transform:translateY(-8px) scale(1.038)}
.specialization-card.just-equipped{animation:specEquipPop .68s cubic-bezier(.2,.88,.26,1) both}
@keyframes specEquipPop{0%{filter:brightness(1);transform:translateY(0) scale(1)}42%{filter:brightness(1.12);transform:translateY(-10px) scale(1.052)}100%{filter:brightness(1);transform:translateY(-7px) scale(1.035)}}
.spec-card-status{position:absolute;z-index:5;top:12px;right:12px;min-height:23px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(9,14,19,.78);color:#707b87;font-size:8px;font-weight:900;letter-spacing:.05em;backdrop-filter:blur(10px)}
.state-2 .spec-card-status{color:#b4bec8;border-color:rgba(204,213,221,.18)}
.state-3 .spec-card-status{color:#e1c872;border-color:rgba(216,184,95,.26);background:rgba(38,32,18,.78)}
.spec-player-image{position:relative;height:164px;overflow:hidden;background:#101821}
.spec-player-image img{width:100%;height:100%;display:block;object-fit:cover;object-position:center center;transition:filter .2s ease,transform .3s ease}
.specialization-card:hover .spec-player-image img{transform:scale(1.018)}
.spec-player-fade{position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,transparent,rgba(12,18,24,.96));pointer-events:none}
.spec-player-image>span{position:absolute;z-index:2;left:14px;bottom:10px;color:#b8c1c9;font-size:9px;font-weight:750;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.state-1 .spec-player-image>span{color:#747f89}
.spec-base-visual{height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:radial-gradient(circle at 50% 48%,rgba(216,184,95,.07),transparent 40%)}
.spec-base-visual img{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 9px 20px rgba(0,0,0,.28))}
.spec-base-visual span{color:#606b76;font-size:8px;font-weight:900;letter-spacing:.12em}
.spec-card-title{display:flex;align-items:baseline;gap:7px;padding:14px 14px 0}
.spec-card-title h3{margin:0;color:#e3e8ed;font-size:19px;letter-spacing:-.02em}
.spec-card-title>span{color:#64707b;font-size:9px;font-weight:800;white-space:nowrap}
.state-3 .spec-card-title h3{color:#ead58a}
.spec-requirements,.spec-info-block{margin:12px 14px 0;padding-top:11px;border-top:1px solid rgba(255,255,255,.055)}
.spec-requirements>label,.spec-info-block>label,.spec-reward-row label{display:block;color:#687480;font-size:8px;font-weight:900;letter-spacing:.05em;margin-bottom:7px}
.spec-requirement{min-height:27px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(255,255,255,.028)}
.spec-requirement:last-child{border-bottom:0}
.spec-requirement>span{color:#8a95a0;font-size:10px}
.spec-requirement strong{display:flex;align-items:baseline;gap:3px;color:#d8dee4;font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}
.spec-requirement strong em{font-style:normal;color:#65717c;font-size:8px;font-weight:750}
.spec-requirement.met strong{color:#cfd8df}
.spec-requirement.missing strong{color:#d5968e}
.spec-requirement.met::after{content:'✓';margin-left:-4px;color:#91a69d;font-size:8px}
.spec-reward-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 14px 0}
.spec-reward-row>div{min-width:0;padding:9px 10px;border:1px solid rgba(255,255,255,.055);border-radius:11px;background:rgba(255,255,255,.018)}
.spec-reward-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#cdd4db;font-size:11px}
.spec-reward-row>div:first-child strong{color:#d9bf69}
.signature-style{display:block;color:#d1d8df;font-size:16px;font-weight:900}
.signature-style.plus{color:#ddc472}
.spec-info-block small{display:block;margin-top:3px;color:#606b75;font-size:8px}
.spec-perk-list{display:grid;gap:5px}
.spec-perk-row{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;border:1px solid rgba(255,255,255,.045);border-radius:9px;background:rgba(255,255,255,.015)}
.spec-perk-row span{color:#aab4bd;font-size:10px;font-weight:750}
.spec-perk-row b{color:#75818c;font-size:8px}
.spec-perk-row.locked{opacity:.56}
.spec-card-actions{display:flex;gap:7px;margin:auto 14px 14px;padding-top:12px}
.spec-card-actions.two>button{flex:1 1 0}
.spec-card-actions button{min-height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);color:#9da8b2;font:800 9px/1 inherit;cursor:pointer;transition:.16s ease}
.spec-card-actions button:not(:disabled):hover{border-color:rgba(216,184,95,.28);color:#e2d39b;background:rgba(216,184,95,.055)}
.spec-card-actions button:disabled{cursor:default;opacity:.48}
.spec-card-actions .spec-equip-btn:not(:disabled){border-color:rgba(216,184,95,.28);color:#dbc77f;background:rgba(216,184,95,.055)}
.spec-card-actions .spec-equip-btn.equipped{opacity:1;color:#e5ce7b;border-color:rgba(216,184,95,.34);background:rgba(216,184,95,.085)}
.spec-card-actions .spec-match-btn:not(:disabled){color:#c0c8d0}
.overview-player-portrait{position:absolute;z-index:1;width:108%;height:72%;left:50%;bottom:58px;transform:translateX(-50%);object-fit:cover;object-position:center center;border-radius:18px;filter:saturate(.90) contrast(1.02);-webkit-mask-image:linear-gradient(to bottom,#000 68%,transparent 100%);mask-image:linear-gradient(to bottom,#000 68%,transparent 100%)}
@media(max-width:1280px) and (min-width:761px){.specialization-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.specialization-card{min-height:560px}}
@media(max-width:760px){.specialization-page-head{align-items:flex-start;min-height:auto;margin-bottom:9px}.specialization-heading-line h2{font-size:20px}.specialization-page-head p{font-size:9px}.specialization-ap-summary{min-width:78px;padding:7px 9px}.specialization-cards{grid-template-columns:1fr;gap:10px;padding:4px 0 12px}.specialization-card{min-height:0}.specialization-card.state-3,.specialization-card.state-3:hover{transform:none}.specialization-card.just-equipped{animation:none}.spec-player-image,.spec-base-visual{height:190px}.specialization-tab-toast{top:calc(100% + 8px);font-size:9px;max-width:240px}}

/* === SOURCE: css/083-v411-specialization-compact-equipped.css === */

/* v4.1.1 · shorter specialization cards + safer equipped scale + stronger gold equipped state */

/* Keep the four-card page visually compact on desktop. */
@media(min-width:1281px){
  .specialization-page-head{
    min-height:52px;
    margin-bottom:8px;
  }
  .specialization-cards{
    gap:11px;
    align-items:center;
    padding:12px 6px 12px;
  }
  .specialization-card{
    min-height:0!important;
    height:500px;
    border-radius:18px;
    transform-origin:center center;
  }

  /* The default card used to rise into the explanatory copy because it starts equipped.
     Keep the equipped card enlarged, but do it inside a safe envelope. */
  .specialization-card.state-3{
    transform:scale(1.018);
  }
  .specialization-card.state-3:hover{
    transform:translateY(-1px) scale(1.021);
  }
  @keyframes specEquipPop{
    0%{filter:brightness(1);transform:scale(1)}
    46%{filter:brightness(1.10);transform:scale(1.028)}
    100%{filter:brightness(1);transform:scale(1.018)}
  }

  .spec-player-image,
  .spec-base-visual{
    height:132px;
    flex:0 0 132px;
  }
  .spec-base-visual img{
    width:70px;
    height:70px;
  }

  .spec-card-title{
    padding:11px 12px 0;
  }
  .spec-card-title h3{
    font-size:18px;
  }

  .spec-requirements,
  .spec-info-block{
    margin:8px 12px 0;
    padding-top:8px;
  }
  .spec-requirements>label,
  .spec-info-block>label,
  .spec-reward-row label{
    margin-bottom:5px;
  }
  .spec-requirement{
    min-height:24px;
  }
  .spec-requirement>span{
    font-size:9px;
  }
  .spec-requirement strong{
    font-size:12px;
  }

  .spec-reward-row{
    gap:6px;
    margin:8px 12px 0;
  }
  .spec-reward-row>div{
    padding:7px 8px;
  }
  .spec-reward-row strong{
    font-size:10px;
  }

  .signature-style{
    font-size:15px;
  }
  .spec-info-block small{
    margin-top:2px;
  }
  .spec-perk-list{
    gap:4px;
  }
  .spec-perk-row{
    min-height:26px;
  }
  .spec-perk-row span{
    font-size:9px;
  }

  .spec-card-actions{
    gap:6px;
    margin:8px 12px 11px;
    padding-top:8px;
  }
  .spec-card-actions button{
    min-height:33px;
  }
}

/* State 2 = unlocked / equip-ready: cool silver, intentionally restrained. */
.specialization-card.state-2{
  border-color:rgba(210,219,227,.19);
  box-shadow:
    0 14px 34px rgba(0,0,0,.18),
    inset 0 0 0 1px rgba(220,228,235,.025);
}

/* State 3 = actually equipped: noticeably more premium than state 2. */
.specialization-card.state-3{
  border-color:rgba(216,184,95,.52)!important;
  background:
    linear-gradient(180deg,rgba(216,184,95,.045),transparent 24%),
    linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.008) 43%,transparent 70%),
    rgba(12,18,24,.96);
  box-shadow:
    0 20px 46px rgba(0,0,0,.30),
    0 0 0 1px rgba(216,184,95,.10),
    0 0 34px rgba(216,184,95,.11),
    inset 0 -26px 34px rgba(216,184,95,.045),
    inset 0 0 22px rgba(216,184,95,.035)!important;
}
.specialization-card.state-3::before{
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 69%,rgba(216,184,95,.025) 84%,rgba(216,184,95,.105) 100%);
}
.specialization-card.state-3::after{
  content:"";
  position:absolute;
  z-index:5;
  left:12%;
  right:12%;
  bottom:0;
  height:2px;
  border-radius:999px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(232,205,117,.76),transparent);
  box-shadow:0 0 12px rgba(216,184,95,.22);
}
.specialization-card.state-3 .spec-card-status{
  box-shadow:0 0 12px rgba(216,184,95,.08);
}
.specialization-card.state-3 .spec-equip-btn.equipped{
  box-shadow:inset 0 0 16px rgba(216,184,95,.045);
}

/* At common 1080p-ish browser heights, take one more compact pass instead of
   letting the equipped card or the default card touch the copy above/bottom edge. */
@media(min-width:1281px) and (max-height:900px){
  .specialization-page-head{
    min-height:46px;
    margin-bottom:6px;
  }
  .specialization-page-head p{
    margin-top:4px;
  }
  .specialization-cards{
    padding-top:10px;
    padding-bottom:9px;
  }
  .specialization-card{
    height:466px;
  }
  .spec-player-image,
  .spec-base-visual{
    height:116px;
    flex-basis:116px;
  }
  .spec-base-visual img{
    width:62px;
    height:62px;
  }
  .spec-card-title{
    padding-top:9px;
  }
  .spec-requirements,
  .spec-info-block{
    margin-top:6px;
    padding-top:6px;
  }
  .spec-requirement{
    min-height:22px;
  }
  .spec-reward-row{
    margin-top:6px;
  }
  .spec-card-actions{
    margin-bottom:9px;
    padding-top:6px;
  }
}

/* Two-column desktop/tablet layout also gets shorter cards. */
@media(max-width:1280px) and (min-width:761px){
  .specialization-card{
    min-height:500px!important;
  }
  .specialization-card.state-3,
  .specialization-card.state-3:hover{
    transform:scale(1.012);
    transform-origin:center center;
  }
  .spec-player-image,
  .spec-base-visual{
    height:138px;
  }
}

/* Mobile keeps natural document flow and no scale-up. */
@media(max-width:760px){
  .specialization-card.state-3,
  .specialization-card.state-3:hover{
    transform:none!important;
  }
}

/* === SOURCE: css/084-v412-specialization-interaction-polish.css === */

/* v4.1.2 · unified specialization action button + lighter reward text + stronger dock motion */
@media(min-width:1281px){
  .specialization-cards{
    display:flex!important;
    align-items:flex-end;
    gap:12px;
    overflow:visible;
  }
  .specialization-card{
    flex-grow:1;
    flex-basis:0;
    min-width:0;
    --spec-lift:0px;
    --spec-scale:1;
    transform:translateY(var(--spec-lift)) scale(var(--spec-scale));
    transition:transform .28s cubic-bezier(.22,.8,.22,1),border-color .2s ease,box-shadow .24s ease,opacity .2s ease,filter .2s ease,flex-grow .28s cubic-bezier(.22,.8,.22,1);
  }
  .specialization-card.base-card{flex-grow:1.03;}
  .specialization-card:hover{transform:translateY(var(--spec-lift)) scale(var(--spec-scale));}
  .specialization-card.state-3{--spec-lift:-2px;--spec-scale:1.02;z-index:3;}
  .specialization-card.state-3:hover{--spec-lift:-2px;--spec-scale:1.02;}
  .specialization-card.dock-hover{flex-grow:1.18;--spec-lift:-7px;--spec-scale:1.095;z-index:5;}
  .specialization-card.state-3.dock-hover{--spec-lift:-9px;--spec-scale:1.108;}
  .specialization-card.dock-near{flex-grow:.93;}
  .specialization-card.dock-far{flex-grow:.88;}
  @keyframes specEquipPop{0%{filter:brightness(1);transform:translateY(0) scale(1)}46%{filter:brightness(1.10);transform:translateY(-6px) scale(1.07)}100%{filter:brightness(1);transform:translateY(var(--spec-lift)) scale(var(--spec-scale))}}

  .spec-reward-row{margin:7px 12px 0;gap:6px}
  .spec-reward-row>div{padding:7px 8px;border-radius:10px}
  .spec-reward-row label{font-size:7px;letter-spacing:.045em;margin-bottom:4px;color:#64707b}
  .spec-reward-row strong{font-size:9px;line-height:1.25;font-weight:800;color:#c6ced6}
  .spec-reward-row>div:first-child strong{color:#d2bb72}

  .spec-card-actions.single{margin:9px 12px 12px;padding-top:9px}
  .spec-action-btn{
    width:100%;
    min-height:37px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.09);
    background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
    color:#a6b0ba;
    font:700 9px/1 inherit;
    letter-spacing:.04em;
    cursor:pointer;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.045),inset 0 -10px 18px rgba(0,0,0,.12),0 6px 16px rgba(0,0,0,.18);
    transition:transform .16s ease,border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease,opacity .18s ease;
  }
  .spec-action-btn:not(:disabled):hover{
    transform:translateY(-1px);
    border-color:rgba(255,255,255,.15);
    color:#d8dee4;
    background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.028));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -12px 18px rgba(0,0,0,.14),0 10px 20px rgba(0,0,0,.22);
  }
  .spec-action-btn.is-match:not(:disabled){color:#bcc5ce;}
  .spec-action-btn.is-match:not(:disabled):hover{border-color:rgba(200,210,220,.18);color:#e3e8ed;background:linear-gradient(180deg,rgba(214,222,230,.055),rgba(255,255,255,.025));}
  .spec-action-btn.is-equip:not(:disabled){border-color:rgba(216,184,95,.24);color:#d9c574;background:linear-gradient(180deg,rgba(216,184,95,.09),rgba(216,184,95,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -12px 18px rgba(62,49,14,.18),0 8px 18px rgba(0,0,0,.2);}
  .spec-action-btn.is-equip:not(:disabled):hover{border-color:rgba(216,184,95,.34);color:#eddc9d;background:linear-gradient(180deg,rgba(216,184,95,.12),rgba(216,184,95,.05));}
  .spec-action-btn.is-active{cursor:default;opacity:1;color:#d7bf74;border-color:rgba(216,184,95,.22);background:linear-gradient(180deg,rgba(216,184,95,.05),rgba(216,184,95,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.03),inset 0 -10px 16px rgba(58,47,17,.16);}
  .spec-action-btn:disabled{opacity:1}
}

@media(max-width:1280px) and (min-width:761px){
  .spec-reward-row strong{font-size:9.5px}
  .spec-card-actions.single{margin:8px 12px 10px;padding-top:7px}
  .spec-action-btn{width:100%;min-height:35px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.018));color:#a6b0ba;font:700 9px/1 inherit;letter-spacing:.04em;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),inset 0 -10px 16px rgba(0,0,0,.12),0 6px 16px rgba(0,0,0,.16)}
  .spec-action-btn.is-equip:not(:disabled){border-color:rgba(216,184,95,.24);color:#d9c574;background:linear-gradient(180deg,rgba(216,184,95,.09),rgba(216,184,95,.035));}
  .spec-action-btn.is-active{opacity:1;color:#d7bf74;border-color:rgba(216,184,95,.22);background:linear-gradient(180deg,rgba(216,184,95,.05),rgba(216,184,95,.025));}
  .spec-action-btn:disabled{opacity:1}
}

@media(max-width:760px){
  .spec-card-actions.single{margin:8px 0 0;padding-top:8px}
  .spec-action-btn{width:100%;min-height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#b6bec7;font:700 10px/1 inherit;letter-spacing:.03em}
  .spec-action-btn.is-equip:not(:disabled){border-color:rgba(216,184,95,.24);color:#d9c574;background:rgba(216,184,95,.08)}
  .spec-action-btn.is-active{opacity:1;color:#d7bf74;border-color:rgba(216,184,95,.22);background:rgba(216,184,95,.05)}
  .spec-action-btn:disabled{opacity:1}
  .spec-reward-row strong{font-size:10px}
}

/* === SOURCE: css/085-v413-equipped-spotlight.css === */

/* v4.1.3 · Equipped Spotlight
   Stable four-card layout: no Dock expansion, no hover scaling. */

@media(min-width:1281px){
  .specialization-cards{
    display:grid!important;
    grid-template-columns:1.03fr repeat(3,minmax(0,1fr))!important;
    gap:17px!important;
    align-items:center!important;
    padding:13px 9px 13px!important;
    overflow:visible;
  }
  .specialization-card,
  .specialization-card.base-card,
  .specialization-card.dock-hover,
  .specialization-card.dock-near,
  .specialization-card.dock-far{
    flex:none!important;
    height:448px!important;
    min-height:0!important;
    --spec-lift:0px!important;
    --spec-scale:1!important;
    transform:none!important;
    transform-origin:center center!important;
    transition:border-color .22s ease,box-shadow .26s ease,opacity .2s ease,filter .2s ease,background .24s ease!important;
  }
  .specialization-card:hover,
  .specialization-card.state-3,
  .specialization-card.state-3:hover,
  .specialization-card.state-3.dock-hover{
    transform:none!important;
  }

  /* Keep browsing/focus understated; equipment is the only premium visual state. */
  .specialization-card.is-focused:not(.state-3){
    border-color:rgba(221,228,234,.18)!important;
    box-shadow:0 14px 34px rgba(0,0,0,.18),inset 0 0 0 1px rgba(220,226,232,.055)!important;
  }

  /* Compact cards so the whole specialization page remains safely inside one viewport. */
  .spec-player-image,
  .spec-base-visual{
    height:108px!important;
    flex:0 0 108px!important;
  }
  .spec-base-visual img{width:58px!important;height:58px!important}
  .spec-card-title{padding:8px 11px 0!important}
  .spec-card-title h3{font-size:17px!important}
  .spec-card-title>span{font-size:8px!important}
  .spec-requirements,
  .spec-info-block{margin:6px 11px 0!important;padding-top:6px!important}
  .spec-requirements>label,
  .spec-info-block>label,
  .spec-reward-row label{margin-bottom:4px!important}
  .spec-requirement{min-height:21px!important}
  .spec-requirement>span{font-size:8.5px!important}
  .spec-requirement strong{font-size:11px!important}
  .spec-reward-row{margin:6px 11px 0!important;gap:6px!important}
  .spec-reward-row>div{padding:6px 7px!important}
  .spec-reward-row label{font-size:7px!important}
  .spec-reward-row strong{font-size:8.5px!important}
  .signature-style{font-size:14px!important}
  .spec-info-block small{font-size:7px!important}
  .spec-perk-list{gap:3px!important}
  .spec-perk-row{min-height:23px!important;padding:0 7px!important}
  .spec-perk-row span{font-size:8.5px!important}
  .spec-perk-row b{font-size:7px!important}
  .spec-card-actions.single{margin:7px 11px 10px!important;padding-top:7px!important}
  .spec-action-btn{min-height:34px!important;font-size:8.5px!important}

  /* State 3 = equipped: fixed size, but lit from above and warmed at the base. */
  .specialization-card.state-3{
    position:relative;
    z-index:3;
    border-color:rgba(223,192,99,.58)!important;
    background:
      radial-gradient(ellipse 78% 34% at 50% -4%,rgba(245,220,139,.20),rgba(216,184,95,.075) 38%,transparent 72%),
      linear-gradient(180deg,rgba(216,184,95,.045),transparent 27%),
      linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.008) 43%,transparent 70%),
      rgba(12,18,24,.96)!important;
    box-shadow:
      0 20px 44px rgba(0,0,0,.30),
      0 0 0 1px rgba(216,184,95,.11),
      0 -10px 32px rgba(229,201,115,.10),
      0 0 40px rgba(216,184,95,.12),
      inset 0 24px 44px rgba(239,211,128,.035),
      inset 0 -30px 42px rgba(216,184,95,.055)!important;
  }
  .specialization-card.state-3::before{
    content:"";
    position:absolute;
    z-index:4;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:
      radial-gradient(ellipse 66% 21% at 50% 0%,rgba(255,229,147,.16),transparent 72%),
      linear-gradient(180deg,transparent 70%,rgba(216,184,95,.025) 84%,rgba(216,184,95,.11) 100%)!important;
  }
  .specialization-card.state-3::after{
    content:"";
    position:absolute;
    z-index:5;
    left:11%;
    right:11%;
    bottom:0;
    height:2px;
    border-radius:999px;
    pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(241,214,128,.86),transparent)!important;
    box-shadow:0 0 15px rgba(216,184,95,.28)!important;
  }
  .specialization-card.state-3 .spec-card-status{
    color:#ead58a!important;
    border-color:rgba(216,184,95,.36)!important;
    background:rgba(43,35,18,.82)!important;
    box-shadow:0 0 16px rgba(216,184,95,.11)!important;
  }
  .specialization-card.state-3 .spec-card-title h3{color:#efd98a!important}

  /* Equipment transition: brief light-up, then settle at fixed dimensions. */
  .specialization-card.just-equipped{
    animation:specSpotlightEquip .48s cubic-bezier(.2,.88,.26,1) both!important;
  }
  @keyframes specSpotlightEquip{
    0%{filter:brightness(1);box-shadow:0 14px 34px rgba(0,0,0,.18)}
    42%{filter:brightness(1.13);box-shadow:0 20px 50px rgba(0,0,0,.30),0 0 52px rgba(229,201,115,.22)}
    100%{filter:brightness(1)}
  }
}

/* Short desktop heights: same fixed layout, slightly shorter cards. */
@media(min-width:1281px) and (max-height:900px){
  .specialization-cards{gap:16px!important;padding-top:10px!important;padding-bottom:10px!important}
  .specialization-card,
  .specialization-card.base-card{height:424px!important}
  .spec-player-image,
  .spec-base-visual{height:96px!important;flex-basis:96px!important}
  .spec-card-title{padding-top:7px!important}
  .spec-requirements,
  .spec-info-block{margin-top:5px!important;padding-top:5px!important}
  .spec-requirement{min-height:19px!important}
  .spec-reward-row{margin-top:5px!important}
  .spec-card-actions.single{margin-bottom:8px!important;padding-top:5px!important}
}

/* Tablet: don't scale cards either. */
@media(max-width:1280px) and (min-width:761px){
  .specialization-card,
  .specialization-card.state-3,
  .specialization-card.state-3:hover{transform:none!important}
}

/* === SOURCE: css/086-v414-equipped-rise.css === */

/* v4.1.4 · Equipped card "grows upward" instead of scaling.
   All cards share the same bottom baseline; the equipped card gains height,
   so only its top edge rises. Internal type/image sizing stays unchanged. */

@media(min-width:1281px){
  .specialization-cards{
    align-items:end!important;
    padding-top:28px!important;
    padding-bottom:8px!important;
  }

  .specialization-card,
  .specialization-card.base-card{
    --spec-normal-height:418px;
    --spec-equipped-height:448px;
    height:var(--spec-normal-height)!important;
    min-height:0!important;
    transition:
      height .44s cubic-bezier(.22,.8,.22,1),
      border-color .22s ease,
      box-shadow .26s ease,
      opacity .2s ease,
      filter .2s ease,
      background .24s ease!important;
  }

  /* State 3 changes height only; width, type, images and internal spacing do not scale. */
  .specialization-card.state-3{
    height:var(--spec-equipped-height)!important;
  }

  /* Newly equipped card visibly rises from the normal card height. */
  .specialization-card.just-equipped{
    animation:specRiseEquip .52s cubic-bezier(.2,.88,.26,1) both!important;
  }
  @keyframes specRiseEquip{
    0%{
      height:var(--spec-normal-height);
      filter:brightness(1);
      box-shadow:0 14px 34px rgba(0,0,0,.18);
    }
    48%{
      height:calc(var(--spec-equipped-height) + 4px);
      filter:brightness(1.10);
      box-shadow:
        0 20px 48px rgba(0,0,0,.30),
        0 0 46px rgba(229,201,115,.18);
    }
    100%{
      height:var(--spec-equipped-height);
      filter:brightness(1);
    }
  }
}

/* Short desktop windows: same ~30px rise, with a slightly smaller baseline
   so the page still fits without vertical scrolling. */
@media(min-width:1281px) and (max-height:900px){
  .specialization-cards{
    padding-top:24px!important;
    padding-bottom:6px!important;
  }
  .specialization-card,
  .specialization-card.base-card{
    --spec-normal-height:394px;
    --spec-equipped-height:424px;
    height:var(--spec-normal-height)!important;
  }
  .specialization-card.state-3{
    height:var(--spec-equipped-height)!important;
  }
}

/* Tablet/mobile remain stable; no vertical growth that could complicate stacked layouts. */
@media(max-width:1280px){
  .specialization-card,
  .specialization-card.state-3{
    height:auto;
  }
}

/* === SOURCE: css/087-v415-slow-rise-bloom.css === */

/* v4.1.5 · slower, more visible equipped transition.
   Same final dimensions as v4.1.4; only the timing/feeling changes. */

@media(min-width:1281px){
  .specialization-card,
  .specialization-card.base-card{
    transition:
      height .92s cubic-bezier(.25,.72,.30,1),
      border-color .42s ease,
      box-shadow .70s ease,
      opacity .3s ease,
      filter .55s ease,
      background .62s ease!important;
  }

  .specialization-card.just-equipped{
    animation:specRiseEquipSlow 1.18s cubic-bezier(.22,.68,.26,1) both!important;
  }

  @keyframes specRiseEquipSlow{
    0%{
      height:var(--spec-normal-height);
      filter:brightness(1);
      box-shadow:0 14px 34px rgba(0,0,0,.18);
    }
    22%{
      height:calc(var(--spec-normal-height) + 7px);
      filter:brightness(1.025);
      box-shadow:
        0 16px 38px rgba(0,0,0,.21),
        0 0 12px rgba(229,201,115,.035);
    }
    58%{
      height:calc(var(--spec-normal-height) + 23px);
      filter:brightness(1.065);
      box-shadow:
        0 19px 44px rgba(0,0,0,.26),
        0 0 30px rgba(229,201,115,.11);
    }
    80%{
      height:calc(var(--spec-equipped-height) + 2px);
      filter:brightness(1.095);
      box-shadow:
        0 21px 50px rgba(0,0,0,.30),
        0 0 48px rgba(229,201,115,.19);
    }
    100%{
      height:var(--spec-equipped-height);
      filter:brightness(1);
    }
  }

  /* Let the top spotlight bloom in gradually instead of appearing immediately. */
  .specialization-card.state-3.just-equipped::before{
    animation:specTopLightBloom 1.18s cubic-bezier(.22,.68,.26,1) both!important;
  }
  @keyframes specTopLightBloom{
    0%{opacity:.12}
    24%{opacity:.28}
    58%{opacity:.66}
    82%{opacity:1}
    100%{opacity:1}
  }

  /* Bottom gold line arrives a little later, reinforcing the "settled" state. */
  .specialization-card.state-3.just-equipped::after{
    transform-origin:center center;
    animation:specBottomLineReveal 1.18s ease both!important;
  }
  @keyframes specBottomLineReveal{
    0%,34%{opacity:0;transform:scaleX(.28)}
    68%{opacity:.46;transform:scaleX(.72)}
    88%,100%{opacity:1;transform:scaleX(1)}
  }
}

/* Preserve the exact same final 30px rise on short desktop windows. */
@media(min-width:1281px) and (max-height:900px){
  .specialization-card.just-equipped{
    animation-duration:1.14s!important;
  }
  .specialization-card.state-3.just-equipped::before,
  .specialization-card.state-3.just-equipped::after{
    animation-duration:1.14s!important;
  }
}

/* === SOURCE: css/088-v4110-delayed-gold-bloom.css === */

/* v4.1.10 · two-stage equip choreography:
   1) card rises + portrait grows for 2s
   2) near the end, the gold frame / spotlight blooms in */

@media(min-width:1281px){
  /* Disable the older immediate light animations; this version uses a delayed phase. */
  .specialization-card.state-3.just-equipped::before,
  .specialization-card.state-3.just-equipped::after{
    animation:none!important;
  }

  /* While growing, state 3 deliberately looks almost like a clean state-2 card. */
  .specialization-card.state-3.gold-pending{
    border-color:rgba(210,219,227,.18)!important;
    background:
      linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 43%,transparent 70%),
      rgba(12,18,24,.96)!important;
    box-shadow:
      0 18px 40px rgba(0,0,0,.25),
      inset 0 0 0 1px rgba(220,228,235,.018)!important;
  }

  .specialization-card.state-3.gold-pending .spec-card-title h3{
    color:#e3e8ed!important;
  }
  .specialization-card.state-3.gold-pending .spec-card-status{
    color:#aeb8c2!important;
    border-color:rgba(204,213,221,.17)!important;
    background:rgba(9,14,19,.78)!important;
    box-shadow:none!important;
  }
  .specialization-card.state-3.gold-pending .spec-action-btn.is-active{
    color:#aeb8c2!important;
    border-color:rgba(255,255,255,.09)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.018))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035),inset 0 -10px 16px rgba(0,0,0,.12)!important;
  }

  /* Hide the spotlight and bottom gold line until the delayed phase begins. */
  .specialization-card.state-3.gold-pending::before{
    opacity:0!important;
  }
  .specialization-card.state-3.gold-pending::after{
    opacity:0!important;
    transform:scaleX(.25)!important;
  }

  /* Once gold-pending is removed (~1.65s), ease gently into the full equipped look. */
  .specialization-card.state-3{
    transition:
      border-color .72s cubic-bezier(.22,.7,.25,1),
      box-shadow .82s cubic-bezier(.22,.7,.25,1),
      background .82s cubic-bezier(.22,.7,.25,1),
      opacity .3s ease,
      filter .55s ease!important;
  }
  .specialization-card.state-3 .spec-card-title h3{
    transition:color .68s ease;
  }
  .specialization-card.state-3 .spec-card-status{
    transition:
      color .68s ease,
      border-color .68s ease,
      background .68s ease,
      box-shadow .68s ease;
  }
  .specialization-card.state-3 .spec-action-btn.is-active{
    transition:
      color .68s ease,
      border-color .68s ease,
      background .68s ease,
      box-shadow .68s ease;
  }
  .specialization-card.state-3::before{
    opacity:1;
    transition:opacity .82s cubic-bezier(.22,.7,.25,1);
  }
  .specialization-card.state-3::after{
    opacity:1;
    transform:scaleX(1);
    transform-origin:center center;
    transition:
      opacity .72s ease,
      transform .82s cubic-bezier(.22,.7,.25,1);
  }
}

/* === SOURCE: css/089-v4110c-toast-and-requirement-fix.css === */

/* v4.1.10c · only fixes the two issues reported in screenshots */

/* Toast is re-parented to <body>, so it cannot be clipped by the tabs bar. */
.specialization-tab-toast{
  position:fixed!important;
  z-index:10000!important;
  transform:translate(-50%,calc(-100% + 4px)) scale(.98)!important;
}
.specialization-tab-toast.show{
  transform:translate(-50%,-100%) scale(1)!important;
}

/* Remove the old right-side pseudo check completely. */
.spec-requirement.met::after{
  content:none!important;
  display:none!important;
}

/* Restore the original number block geometry.
   The check is absolutely positioned to the LEFT, so it consumes no width
   and can never move the number or create a second column. */
.spec-requirement strong{
  position:relative!important;
  display:flex!important;
  align-items:baseline!important;
  gap:3px!important;
  min-width:0!important;
  justify-content:initial!important;
}
.spec-requirement .ok{
  position:absolute!important;
  right:100%!important;
  top:50%!important;
  width:auto!important;
  margin-right:6px!important;
  transform:translateY(-52%)!important;
  color:#91a69d!important;
  font-style:normal!important;
  font-size:9px!important;
  font-weight:900!important;
  line-height:1!important;
  visibility:hidden;
}
.spec-requirement.met .ok{
  visibility:visible;
}

/* === SOURCE: css/090-v4110d-cursor-feedback.css === */

/* v4.1.10d · shared pointer-position feedback.
   Intended for unlock/loss and insufficient-AP feedback across specialization
   and future PlayStyle interactions. */
.build-cursor-feedback{
  position:fixed;
  z-index:12000;
  display:inline-flex;
  align-items:center;
  min-height:27px;
  max-width:min(320px,calc(100vw - 24px));
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(12,17,23,.96);
  color:#d7dee5;
  box-shadow:0 9px 24px rgba(0,0,0,.34);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font-size:10px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.01em;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transform:translateY(4px) scale(.97);
  transform-origin:top left;
  transition:opacity .14s ease,transform .16s ease;
}
.build-cursor-feedback.show{
  opacity:1;
  transform:translateY(0) scale(1);
}
.build-cursor-feedback.gain{
  color:#ddca88;
  border-color:rgba(216,184,95,.30);
  background:rgba(30,27,18,.96);
}
.build-cursor-feedback.loss,
.build-cursor-feedback.error{
  color:#e6a2a7;
  border-color:rgba(200,90,96,.38);
  background:rgba(43,21,24,.97);
  box-shadow:0 9px 24px rgba(0,0,0,.34),0 0 0 1px rgba(200,90,96,.035) inset;
}
.build-cursor-feedback.info{
  color:#cbd3da;
  border-color:rgba(210,220,230,.14);
}

/* === SOURCE: css/091-v4110f-base-perk-layout-reset.css === */

/* v4.1.10f: base/spec card layout + local reset button + Lv.10 base perk unlock */
.specialization-card .spec-card-title h3{font-size:26px;line-height:1.04}
.specialization-card .spec-card-title span{font-size:11px}
.specialization-card .spec-info-block{margin:12px 14px 0;padding-top:12px}
.specialization-card .spec-info-block>label,
.specialization-card .spec-requirements>label{font-size:8px;letter-spacing:.055em}
.specialization-card .spec-info-block strong{display:block;color:#dbe2e8;font-size:12px;font-weight:860;line-height:1.28}
.specialization-card .spec-info-block small{display:block;margin-top:4px;color:#7b8690;font-size:8.4px;line-height:1.42}
.specialization-card .spec-info-block .signature-style{font-size:16px;font-weight:900}
.specialization-card .spec-info-block .signature-style.plus,
.specialization-card .spec-playstyle-block strong{color:#d9bf69}
.base-signature-block .spec-inline-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.base-signature-block .spec-inline-note{margin-top:0;text-align:right;white-space:nowrap;color:#7f8a94}
.base-signature-block .spec-inline-meta .signature-style{min-width:0}
.base-perk-block .spec-perk-list.rich-list,
.spec-extra-perk-block .spec-perk-list.rich-list{gap:8px!important}
.base-perk-block .spec-perk-row.rich,
.spec-extra-perk-block .spec-perk-row.rich{padding:10px 11px!important;border-radius:13px;background:linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.016));border:1px solid rgba(255,255,255,.06)}
.base-perk-block .spec-perk-row.rich.is-unlocked{border-color:rgba(216,184,95,.16);background:linear-gradient(180deg,rgba(216,184,95,.06),rgba(255,255,255,.018))}
.base-perk-block .spec-perk-row.rich.locked{opacity:.86}
.base-perk-block .spec-perk-top span,
.spec-extra-perk-block .spec-perk-top span{font-size:11px;line-height:1.24;color:#d7dee4}
.base-perk-block .spec-perk-top b,
.spec-extra-perk-block .spec-perk-top b{font-size:8.2px;font-weight:850}
.base-perk-block .spec-perk-row.rich.is-unlocked .spec-perk-top b{color:#d6bd73}
.base-perk-block .spec-perk-desc,
.spec-extra-perk-block .spec-perk-desc{font-size:9px;line-height:1.44;color:#85909a}
.spec-playstyle-block .spec-main-emphasis{font-size:15px;font-weight:900;color:#d7be70}
.spec-extra-perk-block .spec-main-emphasis{font-size:13px;font-weight:860;color:#dfe5ea}
.spec-extra-perk-block .spec-reward-desc{margin-top:5px;font-size:8.9px;line-height:1.44;color:#85919b}
.spec-extra-perk-block .spec-perk-top{justify-content:flex-start}
.spec-card .spec-reward-row{display:none!important}
.spec-card .spec-requirements{margin-top:12px}
.spec-card .spec-card-actions{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:8px;align-items:center;margin-top:auto;padding:12px 14px 14px}
.spec-card .spec-card-actions .spec-action-btn{width:100%}
.spec-local-reset-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.016));color:#c4ccd4;font-size:11px;font-weight:820;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}
.spec-local-reset-btn:hover{border-color:rgba(214,184,108,.22);background:linear-gradient(180deg,rgba(214,184,108,.08),rgba(255,255,255,.018));color:#e1c97f;transform:translateY(-1px)}
.spec-local-reset-btn:active{transform:translateY(0)}
.spec-local-reset-btn .spec-local-reset-icon{font-size:12px;line-height:1;color:#cdb77a}
.spec-card.state-1 .spec-local-reset-btn{opacity:.92}
@media(max-width:760px){
  .spec-card .spec-card-actions{grid-template-columns:minmax(0,1fr) 68px;gap:7px}
  .specialization-card .spec-card-title h3{font-size:24px}
  .spec-playstyle-block .spec-main-emphasis{font-size:14px}
  .spec-extra-perk-block .spec-main-emphasis{font-size:12px}
  .base-perk-block .spec-perk-desc,.spec-extra-perk-block .spec-perk-desc,.spec-extra-perk-block .spec-reward-desc{font-size:9.2px}
}
