/* Character face row + left profile drawer */
.cast-refresh{padding-top:clamp(64px,7vw,104px);padding-bottom:clamp(72px,8vw,116px)}
.cast-refresh .section-heading{margin-bottom:24px}
.cast-face-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.cast-face{
  --accent:#075fc3;
  position:relative;
  appearance:none;
  display:block;
  min-width:0;
  padding:0;
  border:2px solid var(--navy);
  background:var(--paper);
  text-align:left;
  overflow:hidden;
  cursor:pointer;
  box-shadow:0 0 0 var(--navy);
  transition:transform .22s ease,box-shadow .22s ease;
}
.cast-face--alex{--accent:#075fc3}
.cast-face--nico{--accent:#e1aa00}
.cast-face--dorian{--accent:#ed6657}
.cast-face--jace{--accent:#0b5a38}
.cast-face__portrait{
  display:block;
  height:350px;
  overflow:hidden;
  background:#eee;
  border-bottom:2px solid var(--navy);
}
.cast-face__portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 30%;
  transform:scale(1.02);
  transition:transform .34s cubic-bezier(.2,.7,.2,1),filter .34s ease;
}
.cast-face__number{
  position:absolute;
  z-index:2;
  top:12px;
  left:12px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  background:var(--paper);
  border:2px solid var(--navy);
  box-shadow:3px 3px 0 var(--navy);
  font-size:10px;
  font-weight:1000;
}
.cast-face__copy{
  display:block;
  padding:16px 18px 5px;
}
.cast-face__copy b{
  display:block;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:clamp(29px,2.7vw,45px);
  line-height:.9;
  text-transform:uppercase;
}
.cast-face__copy small{
  display:block;
  margin-top:8px;
  color:var(--accent);
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cast-face__open{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:12px 18px 18px;
  padding-top:12px;
  border-top:1px solid rgba(7,27,45,.25);
  font-size:10px;
  font-weight:1000;
  letter-spacing:.08em;
}
.cast-face__open::after{
  content:"";
  width:28px;
  height:5px;
  background:var(--accent);
  transition:width .22s ease;
}

@media (hover:hover) and (pointer:fine){
  .cast-face:hover{
    transform:translateY(-7px) rotate(-.25deg);
    box-shadow:7px 7px 0 var(--navy);
  }
  .cast-face:nth-child(even):hover{transform:translateY(-7px) rotate(.25deg)}
  .cast-face:hover .cast-face__portrait img{
    transform:scale(1.07) translateY(-4px);
    filter:saturate(1.06) contrast(1.025);
  }
  .cast-face:hover .cast-face__open::after{width:64px}
}

/* Drawer */
.cast-drawer-backdrop{
  position:fixed;
  inset:0;
  z-index:79;
  background:rgba(7,19,30,.58);
  backdrop-filter:blur(3px);
}
.cast-drawer-backdrop[hidden]{display:none}
.cast-drawer{
  --drawer-accent:#075fc3;
  position:fixed;z-index:80;top:0;left:0;
  width:min(1180px,94vw);height:100dvh;padding:0 0 0 48px;
  background:var(--paper);color:var(--navy);border:0;border-right:3px solid var(--navy);
  box-shadow:14px 0 0 rgba(7,27,45,.14);
  transform:translateX(-104%);visibility:hidden;
  transition:transform .34s cubic-bezier(.22,.75,.16,1),visibility .34s;overflow:hidden
}
.cast-drawer.is-open{transform:translateX(0);visibility:visible}
.cast-drawer__rail{position:absolute;inset:0 auto 0 0;width:48px;display:flex;align-items:center;justify-content:space-between;padding:20px 0;writing-mode:vertical-rl;transform:rotate(180deg);background:var(--drawer-accent);color:#fff;border-right:2px solid var(--navy);font-size:9px;font-weight:1000;letter-spacing:.14em}
.cast-drawer__rail b{font-size:10px}
.cast-drawer__close{position:absolute;z-index:5;right:18px;top:18px;width:46px;height:46px;display:grid;place-items:center;border:2px solid var(--navy);background:var(--paper);color:var(--navy);box-shadow:3px 3px 0 var(--navy);font-size:28px;line-height:1;cursor:pointer}
.cast-drawer__close:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--navy)}
.cast-drawer__body{height:100%;min-height:0;display:grid;grid-template-columns:minmax(500px,1.05fr) minmax(0,.95fr)}
.cast-drawer__figure{position:relative;min-height:0;height:100%;display:grid;place-items:center;overflow:hidden;padding:58px 26px 26px;background:color-mix(in srgb,var(--drawer-accent) 12%,white);border-right:2px solid var(--navy)}
.cast-drawer__figure::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.52),transparent 44%)}
.cast-drawer__figure::after{display:none}
.cast-drawer__figure img{position:relative;z-index:1;width:min(100%,640px);height:auto;max-height:calc(100dvh - 92px);object-fit:contain;object-position:center;border:2px solid rgba(7,27,45,.28);background:#fff;box-shadow:8px 10px 0 rgba(7,27,45,.12);filter:none;transform:none!important;clip-path:none!important}
.cast-drawer__index{position:absolute;z-index:2;left:20px;top:20px;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:68px;line-height:.8;color:var(--drawer-accent);-webkit-text-stroke:1px var(--navy);opacity:.96}
.cast-drawer__info{min-width:0;max-height:100%;overflow:auto;align-self:stretch;display:block;padding:72px clamp(28px,4vw,54px) 44px}
.cast-drawer__kicker{margin:0 0 11px;color:var(--drawer-accent);font-size:10px;font-weight:1000;letter-spacing:.16em}
.cast-drawer__info h3{margin:0;max-width:520px;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:clamp(58px,5.8vw,92px);line-height:.82;text-transform:uppercase;letter-spacing:-.03em}
.cast-drawer__nick{margin:12px 0 18px;color:var(--drawer-accent);font-size:18px;font-weight:1000;text-transform:uppercase;letter-spacing:.05em}
.cast-drawer__chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 20px}
.cast-drawer__chips span{min-height:30px;display:inline-flex;align-items:center;padding:7px 10px;border:2px solid var(--navy);background:#fff;box-shadow:2px 2px 0 var(--navy);font-size:9px;font-weight:1000;letter-spacing:.08em}
.cast-drawer__chips span:first-child{background:var(--drawer-accent);color:#fff}
.cast-drawer__lede{max-width:540px;margin:0 0 22px;font-size:16px;line-height:1.52}
.cast-drawer__facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:570px}
.cast-drawer__facts div{min-height:94px;padding:12px 13px 13px;border:2px solid var(--navy);border-left:7px solid var(--drawer-accent);background:#fff;box-shadow:3px 3px 0 rgba(7,27,45,.12)}
.cast-drawer__facts div:first-child{grid-column:1/-1;min-height:auto}
.cast-drawer__facts span,.cast-drawer__lore-grid span{display:block;margin-bottom:7px;color:var(--drawer-accent);font-size:8px;font-weight:1000;letter-spacing:.14em}
.cast-drawer__facts b,.cast-drawer__lore-grid b{display:block;font-size:12px;line-height:1.4}
.cast-drawer__lore{max-width:570px;margin-top:22px}
.cast-drawer__lore-title{margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--navy);font-size:10px;font-weight:1000;letter-spacing:.15em;color:var(--drawer-accent)}
.cast-drawer__lore-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cast-drawer__lore-grid div{padding:11px 12px;border:1px solid rgba(7,27,45,.30);background:color-mix(in srgb,var(--drawer-accent) 5%,white)}
.cast-drawer__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.cast-drawer__actions:empty{display:none}
.cast-drawer__actions a{display:inline-flex;align-items:center;min-height:42px;padding:10px 13px;border:2px solid var(--navy);background:var(--drawer-accent);color:white;text-decoration:none;font-size:11px;font-weight:1000;box-shadow:3px 3px 0 var(--navy)}
body.cast-drawer-open{overflow:hidden}

@media(max-width:1020px){
  .cast-face-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cast-face__portrait{height:390px}
  .cast-drawer{width:100%;padding-left:0;overflow:auto}
  .cast-drawer__rail{display:none}
  .cast-drawer__body{height:auto;min-height:100%;grid-template-columns:1fr}
  .cast-drawer__figure{height:auto;min-height:640px;border-right:0;border-bottom:2px solid var(--navy);padding:64px 20px 28px}
  .cast-drawer__figure img{width:min(92%,700px);max-height:none}
  .cast-drawer__info{max-height:none;overflow:visible;padding:38px 22px 48px}
}
@media(max-width:760px){
  .cast-face-row{grid-template-columns:1fr 1fr;gap:8px}
  .cast-face__portrait{height:260px}
  .cast-face__copy{padding:12px 12px 4px}
  .cast-face__copy b{font-size:30px}
  .cast-face__open{margin:10px 12px 14px}
  .cast-drawer__figure{min-height:500px}
  .cast-drawer__info h3{font-size:64px}
  .cast-drawer__facts,.cast-drawer__lore-grid{grid-template-columns:1fr}
  .cast-drawer__facts div:first-child{grid-column:auto}
}
@media(max-width:430px){
  .cast-face-row{grid-template-columns:1fr}
  .cast-face__portrait{height:350px}
  .cast-drawer__figure{min-height:420px}
}
  .cast-face__portrait{height:350px}
}
@media(prefers-reduced-motion:reduce){
  .cast-face,.cast-face__portrait img,.cast-face__open::after,.cast-drawer,.cast-drawer__figure img{transition:none!important}
}

.cast-drawer__kit{
  position:relative;
  max-width:570px;
  min-height:138px;
  margin-top:18px;
  padding:12px 14px;
  overflow:hidden;
  border:2px solid var(--navy);
  background:var(--kit-background,#fff1ec);
  box-shadow:4px 4px 0 rgba(7,27,45,.14);
}
.cast-drawer__kit[hidden]{display:none}
.cast-drawer__kit-copy{position:relative;z-index:2;max-width:150px}
.cast-drawer__kit-copy span{display:block;color:var(--kit-accent,#ed6657);font-size:9px;font-weight:1000;letter-spacing:.15em}
.cast-drawer__kit-copy b{display:block;margin-top:5px;font-size:15px;line-height:1.05}
.cast-drawer__kit img{
  position:absolute;
  z-index:1;
  right:-5px;
  bottom:-6px;
  width:min(76%,430px);
  height:auto;
  filter:drop-shadow(0 7px 5px rgba(7,27,45,.14));
}
.cast-face--dorian::after{
  content:"🍑";
  position:absolute;
  z-index:3;
  right:12px;
  top:12px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:2px solid var(--navy);
  border-radius:50%;
  background:#fff1ec;
  font-size:20px;
  box-shadow:3px 3px 0 var(--navy);
  transform:rotate(8deg);
}
@media(max-width:760px){
  .cast-drawer__kit{min-height:156px}
  .cast-drawer__kit img{width:78%}
}

/* Dorian kit fix: contained, responsive, and fed by a real asset file. */
.cast-drawer__kit{
  display:grid;
  grid-template-columns:125px minmax(0,1fr);
  align-items:center;
  gap:10px;
  max-width:570px;
  min-height:142px;
  margin-top:18px;
  padding:12px 14px;
  overflow:hidden;
  border:2px solid var(--navy);
  background:var(--kit-background,#fff1ec);
  box-shadow:4px 4px 0 rgba(7,27,45,.14);
}
.cast-drawer__kit[hidden]{display:none}
.cast-drawer__kit-copy{position:relative;z-index:2;max-width:none}
.cast-drawer__kit-copy span{display:block;color:var(--kit-accent,#ed6657);font-size:9px;font-weight:1000;letter-spacing:.15em}
.cast-drawer__kit-copy b{display:block;margin-top:5px;font-size:15px;line-height:1.05}
.cast-drawer__kit img{
  position:static;
  width:100%;
  max-height:138px;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 6px 5px rgba(7,27,45,.12));
}
@media(max-width:760px){
  .cast-drawer__kit{grid-template-columns:1fr;min-height:0}
  .cast-drawer__kit img{max-height:180px}
}

/* Nico baked-in nickname correction: the profile crop still contains the old label. */
.cast-drawer[data-character="nico"] .cast-drawer__figure::after{
  content:"Cardio Bunny";
  display:block;
  position:absolute;
  z-index:3;
  top:calc(50% - min(100%,640px) * .64375 + min(100%,640px) * .083);
  left:calc(50% - min(100%,640px) / 2 + min(100%,640px) * .032);
  width:min(34%,210px);
  padding:1px 3px 3px;
  background:#f6c91f;
  color:#071b2d;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:clamp(16px,1.8vw,27px);
  line-height:1;
  letter-spacing:-.025em;
  text-align:left;
  pointer-events:none;
}
@media(max-width:760px){
  .cast-drawer[data-character="nico"] .cast-drawer__figure::after{
    font-size:clamp(14px,4vw,22px);
  }
}

.cast-profile-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:14px;
}
.cast-profile-links a{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  padding:11px 12px;
  border:1px solid rgba(7,27,45,.28);
  background:rgba(255,255,255,.64);
  color:var(--navy);
  text-decoration:none;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.cast-profile-links a span{
  color:#55636f;
  font-size:8px;
  letter-spacing:.08em;
}
.cast-profile-links a:hover{
  border-color:var(--navy);
  background:#fff;
}
@media(max-width:760px){
  .cast-profile-links{grid-template-columns:1fr 1fr}
}
