/* Each communication style has its own Dota 2 character and palette. */
.personality-layout {
  --personality-accent: #9bd5ed;
  --personality-glow: #397f96;
  --personality-base: #122534;
}
.personality-layout[data-selected="social"] {
  --personality-accent: #d4dc83;
  --personality-glow: #777b3c;
  --personality-base: #242b21;
}
.personality-layout[data-selected="friendly"] {
  --personality-accent: #c8eaa2;
  --personality-glow: #63965b;
  --personality-base: #192c2b;
}
.personality-layout[data-selected="casual"] {
  --personality-accent: #ffc386;
  --personality-glow: #a66643;
  --personality-base: #2d2730;
}
.personality-layout[data-selected="irony"] {
  --personality-accent: #e5b1df;
  --personality-glow: #925874;
  --personality-base: #2d2235;
}
.personality-art { background: var(--personality-base); }
.personality-aura {
  position: absolute;
  inset: 0;
  z-index: -5;
  background: radial-gradient(ellipse at 58% 31%, var(--personality-glow), transparent 74%);
}
.personality-aura::after {
  content: "";
  position: absolute;
  width: 78%;
  aspect-ratio: 1;
  left: 11%;
  top: 12%;
  border: 1px solid #ffffff1c;
  border-radius: 50%;
  box-shadow: 0 0 0 38px #ffffff05, 0 0 0 76px #ffffff03;
}
.personality-art > .personality-hero {
  --hero-scale: 1.07;
  --hero-x: -10px;
  --hero-y: 24px;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: calc(50% + var(--hero-x)) top;
  transform: translate(20px, var(--hero-y)) scale(var(--hero-scale));
  transform-origin: 50% 12%;
  filter: drop-shadow(-12px 18px 15px #07101840);
  opacity: 0;
  transition: opacity .3s ease, transform .45s cubic-bezier(.2,.65,.3,1);
  pointer-events: none;
}
.personality-art > .personality-hero.is-active {
  opacity: 1;
  transform: translate(0, var(--hero-y)) scale(var(--hero-scale));
}
.personality-art > [data-hero="captain"] { --hero-scale: 1.02; --hero-x: -28px; }
.personality-art > [data-hero="social"] { --hero-scale: 1.2; --hero-x: 0px; --hero-y: -70px; }
.personality-art > [data-hero="friendly"] { --hero-scale: 1.2; --hero-x: -26px; --hero-y: 12px; }
.personality-art-overlay {
  background: linear-gradient(0deg, #0f1a24 1%, #0f1a24e8 12%, #0f1a2450 31%, transparent 57%);
}
.character-index {
  color: var(--personality-accent);
  border-color: #ffffff36;
  background: #0c172333;
  font-size: 10px;
  letter-spacing: .08em;
}
.character-game {
  position: absolute;
  right: 29px;
  top: 36px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .16em;
  color: #e9f1f5a1;
}
.character-caption > .micro-label { color: var(--personality-accent); font-size: 10px; }
.character-caption strong { font-size: clamp(43px, 4.6vw, 72px); white-space: nowrap; }
.character-caption > span:last-child { line-height: 1.8; letter-spacing: .065em; }
.personality-hero-name { color: #c6d1d7; }
.personality.active { background: #d0e2eb0b; }
.personality.active::before { background: var(--personality-accent); }
.personality.active strong,
.personality.active .personality-number,
.personality.active .personality-hero-name,
.personality.active > svg { color: var(--personality-accent); }
.personality-preview { border-left-color: var(--personality-accent); }
.personality-preview p { color: var(--personality-accent); }

@media (min-width: 701px) and (max-width: 1000px) {
  .personality-layout { grid-template-columns: 1fr 1fr; }
  .personality-art > [data-hero="captain"] { --hero-x: -60px; }
  .personality-art > [data-hero="irony"] { --hero-x: -35px; }
  .personality { gap: 12px; padding-inline: 12px; }
  .personality strong { font-size: 13px; }
  .personality small { font-size: 10px; }
  .personality > svg { flex-shrink: 0; width: 15px; }
  .character-caption { left: 22px; right: 18px; }
  .character-caption strong { font-size: clamp(33px, 4.25vw, 43px); }
  .character-caption > .micro-label { font-size: 8px; }
  .character-caption > span:last-child { font-size: 8px; }
}
@media (max-width: 700px) {
  .personality-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .personality-control { display: contents; }
  .personality-tabs {
    grid-row: 1;
    display: flex;
    overflow-x: auto;
    padding-bottom: 7px;
    border-top: 0;
    scrollbar-width: thin;
    scrollbar-color: #52606c #18232d;
    scroll-snap-type: x proximity;
  }
  .personality {
    width: auto;
    min-width: 185px;
    flex: 0 0 auto;
    padding: 16px 17px;
    gap: 12px;
    border: 1px solid #ffffff22;
    border-right: 0;
    scroll-snap-align: start;
  }
  .personality:last-child { border-right: 1px solid #ffffff22; }
  .personality.active::before { top: auto; width: 100%; height: 2px; }
  .personality strong { font-size: 12px; }
  .personality small { font-size: 11px; }
  .personality-trait, .personality > svg { display: none; }
  .personality-art { grid-row: 2; min-height: 410px; height: 440px; }
  .personality-art > .personality-hero { object-fit: cover; }
  .personality-art > [data-hero="friendly"] { --hero-y: 35px; }
  .personality-art > [data-hero="casual"] { --hero-y: 40px; }
  .character-game { top: 31px; right: 25px; }
  .character-caption { left: 25px; bottom: 25px; right: 20px; }
  .character-caption strong { font-size: clamp(39px, 10.5vw, 64px); }
  .character-caption > .micro-label { font-size: 9px; }
  .personality-preview { grid-row: 3; margin-top: 0; min-height: 151px; }
}
@media (max-width: 370px) {
  .styles-section .section-top .eyebrow { font-size: 8px; gap: 8px; }
  .styles-section .section-top .technical-label { font-size: 7px; max-width: 75px; }
  .styles-section .section-index { white-space: nowrap; flex-shrink: 0; }
  .personality-art { min-height: 390px; height: 390px; }
  .character-caption { left: 20px; right: 16px; }
  .character-caption strong { font-size: 35px; }
  .character-caption > .micro-label { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .personality-art > .personality-hero { transition: none; }
}
