.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.character-card{display:flex;min-width:0;overflow:hidden;flex-direction:column}
.character-card[hidden]{display:none!important}
.character-card-portrait{position:relative;height:310px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 65% 22%,rgba(214,40,43,.32),transparent 32%),linear-gradient(145deg,#2a2a30,#111113);color:#fff;font-size:52px;font-weight:900;text-decoration:none}
.character-card-portrait::after{content:"";position:absolute;right:0;bottom:0;left:0;height:4px;background:#d6282b}
.character-card-portrait img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.78) contrast(1.05);transition:transform .35s ease,filter .35s ease}
.character-card:hover .character-card-portrait img{transform:scale(1.035);filter:saturate(.95) contrast(1.06)}
.character-card-portrait b{position:absolute;top:14px;left:14px;padding:7px 9px;border-radius:3px;background:#be0d0d;color:#fff;font-size:8px;letter-spacing:.1em}
.character-card-copy{display:flex;min-height:245px;flex:1;flex-direction:column;padding:23px 21px}
.character-card-copy h2{margin:0;font-size:23px;line-height:1.05;text-transform:uppercase}
.character-card-copy>small{margin-top:7px;color:#777780;font-size:10px}
.character-card-copy p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;margin:14px 0;color:#9b9ba4;font-size:12px;line-height:1.6}
.character-hero-grid{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:50px;align-items:center}
.character-hero-copy h1{font-size:clamp(42px,5vw,68px)}
.character-hero-portrait{align-self:stretch;display:grid;place-items:center;overflow:hidden;border-inline:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at 60% 25%,rgba(214,40,43,.38),transparent 35%),#161619;color:#fff;font-size:58px;font-weight:900}
.character-hero-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 20%;filter:saturate(.8) contrast(1.06)}
.character-detail-content{padding:56px 0 90px}
.character-detail-grid{display:grid;grid-template-columns:minmax(0,820px) minmax(250px,1fr);gap:54px;align-items:start}
.character-biography h2{margin:0 0 25px;font-size:34px;letter-spacing:-.03em}
.character-prose{color:#d0d0d5;font-size:15px;line-height:1.9}.character-prose p{margin:0 0 23px}
.character-facts{position:sticky;top:calc(var(--filmistik-header-height) + 26px);padding:25px;border:1px solid rgba(255,255,255,.1);border-top:2px solid #d6282b;background:#141416}
.character-facts h3{margin:0 0 20px;font-size:13px;letter-spacing:.08em}.character-facts dl{margin:0}.character-facts dt{margin-top:15px;color:#6e6e77;font-size:8px;font-weight:900;letter-spacing:.12em}.character-facts dd{margin:5px 0 0;color:#e4e4e8;font-size:12px;line-height:1.5}.character-facts>a{display:inline-flex;margin-top:23px;color:#fff;font-size:9px;font-weight:900;letter-spacing:.09em;text-decoration:none}
.character-tag-section{margin-top:42px;padding-top:30px;border-top:1px solid rgba(255,255,255,.1)}.character-tag-section h3{margin:0 0 16px;font-size:13px;letter-spacing:.09em}.character-tags{display:flex;flex-wrap:wrap;gap:8px}.character-tags span{padding:8px 11px;border:1px solid rgba(214,40,43,.36);border-radius:3px;background:rgba(214,40,43,.08);color:#dddde2;font-size:10px}.character-tags.muted span{border-color:rgba(255,255,255,.11);background:#151518;color:#aaaab3}
.character-related{margin-top:72px;padding-top:44px;border-top:1px solid rgba(255,255,255,.1)}.character-related>h2{margin:0 0 25px;font-size:28px}.character-comic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.character-comic-card{display:flex;min-height:190px;flex-direction:column;padding:24px;text-decoration:none}.character-comic-card small{color:#d6282b;font-size:9px;font-weight:900;letter-spacing:.09em}.character-comic-card h3{margin:17px 0 8px;font-size:21px;text-transform:uppercase}.character-comic-card p{margin:0 0 20px;color:#8d8d96;font-size:11px}.character-comic-card .archive-card-link{margin-top:auto}
@media(max-width:1100px){.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.character-detail-grid{grid-template-columns:minmax(0,1fr) 270px;gap:30px}}
@media(max-width:820px){.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-hero-grid{grid-template-columns:minmax(0,1fr) 170px;gap:24px}.character-detail-grid{grid-template-columns:1fr}.character-facts{position:static}.character-comic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.character-grid{grid-template-columns:1fr}.character-card{display:grid;grid-template-columns:115px 1fr}.character-card-portrait{height:auto;min-height:235px}.character-card-copy{min-height:235px;padding:20px 16px}.character-card-copy h2{font-size:19px}.character-hero-grid{grid-template-columns:1fr}.character-hero-portrait{display:none}.character-comic-grid{grid-template-columns:1fr}}


/* Step 3 – detail hero image full right side with left fade */
.character-detail-hero{position:relative;overflow:hidden}
.character-detail-hero .archive-shell{position:relative}
.character-hero-grid{position:relative;display:block;min-height:290px}
.character-hero-copy{position:relative;z-index:3;max-width:640px;padding:10px 420px 10px 0}
.character-hero-portrait{position:absolute;top:50%;right:0;transform:translateY(-50%);width:min(460px,36vw);height:280px;display:block;overflow:hidden;border:0;background:transparent;color:#fff;font-size:58px;font-weight:900}
.character-hero-portrait img{position:relative;z-index:1;width:100%;height:100%;display:block;object-fit:contain;object-position:right center;filter:saturate(.88) contrast(1.04)}
.character-hero-portrait::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#111115 0%,rgba(17,17,21,.97) 14%,rgba(17,17,21,.82) 28%,rgba(17,17,21,.48) 48%,rgba(17,17,21,.12) 68%,transparent 82%);pointer-events:none}
.character-hero-portrait::after{content:"";position:absolute;inset:-8% -12% -8% 42%;z-index:0;background:radial-gradient(circle at 82% 50%,rgba(190,13,13,.22),transparent 58%);filter:blur(10px);pointer-events:none}
@media(max-width:1100px){.character-hero-copy{padding-right:360px}.character-hero-portrait{width:min(380px,35vw);height:250px}}
@media(max-width:820px){.character-hero-grid{min-height:230px}.character-hero-copy{padding-right:230px}.character-hero-portrait{width:220px;height:190px}}
@media(max-width:520px){.character-hero-copy{padding-right:0}}


/* Step 4 – hero image flush to the right edge */
.character-detail-hero{position:relative;overflow:hidden}
.character-detail-hero .archive-shell{position:static}
.character-hero-grid{position:static;display:block;min-height:300px}
.character-hero-copy{position:relative;z-index:3;max-width:640px;padding:22px 470px 22px 0}
.character-hero-portrait{position:absolute;top:0;right:0;bottom:0;transform:none;width:min(760px,43vw);height:auto;display:block;overflow:hidden;border:0;background:transparent}
.character-hero-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;filter:saturate(.9) contrast(1.03)}
.character-hero-portrait::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#111115 0%,rgba(17,17,21,.96) 11%,rgba(17,17,21,.8) 22%,rgba(17,17,21,.48) 38%,rgba(17,17,21,.16) 56%,transparent 72%);pointer-events:none}
.character-hero-portrait::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 85% 50%,rgba(190,13,13,.18),transparent 56%);pointer-events:none}
@media(max-width:1100px){.character-hero-copy{padding-right:360px}.character-hero-portrait{width:min(520px,40vw)}}
@media(max-width:820px){.character-hero-grid{min-height:230px}.character-hero-copy{padding-right:220px}.character-hero-portrait{width:230px}}
@media(max-width:520px){.character-hero-copy{padding-right:0}.character-hero-portrait{display:none}}


/* Step 5 – stronger hero blend + centered title + publisher/role block */
.character-hero-copy{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  min-height:300px;
  max-width:none;
  padding:0 500px 0 0;
}
.character-title-row{
  display:flex;
  align-items:center;
  gap:26px;
}
.character-hero-copy h1{
  margin:0;
  font-size:clamp(56px,6vw,82px);
  line-height:.92;
  letter-spacing:-.04em;
}
.character-hero-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.character-publisher-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:156px;
  min-height:54px;
  padding:10px 18px;
  border:1px solid rgba(214,40,43,.38);
  border-radius:8px;
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  color:#f1f1f4;
  font-size:22px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.character-role-label{
  color:#d6282b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.character-hero-portrait{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  transform:none;
  width:min(840px,46vw);
  height:auto;
  display:block;
  overflow:hidden;
  border:0;
  background:transparent;
}
.character-hero-portrait img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  filter:saturate(.92) contrast(1.03);
}
.character-hero-portrait::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(90deg,
      #18181b 0%,
      #151518 10%,
      rgba(13,13,15,.985) 20%,
      rgba(13,13,15,.94) 30%,
      rgba(13,13,15,.82) 42%,
      rgba(13,13,15,.60) 56%,
      rgba(13,13,15,.34) 70%,
      rgba(13,13,15,.14) 82%,
      transparent 92%),
    radial-gradient(circle at 88% 36%,rgba(214,40,43,.14),transparent 34%);
  pointer-events:none;
}
.character-hero-portrait::after{
  content:"";
  position:absolute;
  inset:-8% -5% -8% 34%;
  z-index:1;
  background:radial-gradient(circle at 84% 48%,rgba(190,13,13,.18),transparent 58%);
  filter:blur(12px);
  pointer-events:none;
}
@media(max-width:1100px){
  .character-hero-copy{padding-right:400px}
  .character-title-row{gap:18px}
  .character-publisher-badge{min-width:132px;min-height:48px;font-size:18px}
  .character-hero-portrait{width:min(600px,42vw)}
}
@media(max-width:820px){
  .character-hero-grid{min-height:230px}
  .character-hero-copy{min-height:230px;padding-right:240px}
  .character-title-row{flex-direction:column;align-items:flex-start;gap:12px}
  .character-hero-copy h1{font-size:52px}
  .character-publisher-badge{min-width:118px;min-height:42px;font-size:16px}
  .character-role-label{font-size:10px}
  .character-hero-portrait{width:250px}
}
@media(max-width:520px){
  .character-hero-copy{padding-right:0;min-height:auto}
}


/* Step 7 – remove the visible vertical image boundary */
.character-detail-hero{
  background:#0d0d0f !important;
}
.character-hero-portrait{
  left:46%;
  right:0;
  width:auto;
}
.character-hero-portrait img{
  object-fit:contain;
  object-position:right center;
  background:transparent;
}
.character-hero-portrait::before{
  background:linear-gradient(90deg,
    #0d0d0f 0%,
    #0d0d0f 18%,
    rgba(13,13,15,.98) 30%,
    rgba(13,13,15,.90) 42%,
    rgba(13,13,15,.70) 56%,
    rgba(13,13,15,.42) 69%,
    rgba(13,13,15,.18) 80%,
    transparent 91%);
}
.character-hero-portrait::after{
  background:radial-gradient(circle at 88% 45%,rgba(190,13,13,.16),transparent 60%);
}
@media(max-width:1100px){
  .character-hero-portrait{left:50%}
}
@media(max-width:820px){
  .character-hero-portrait{left:auto;right:0;width:250px}
}


/* Step 11 – publisher logo + role under title + outlined surname */
.character-hero-copy{display:flex;align-items:center;justify-content:flex-start;min-height:300px;padding:0 500px 0 0}
.character-title-stack{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.character-title-row{display:flex;align-items:center;gap:24px}
.character-hero-copy h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;font-size:clamp(56px,6vw,82px);line-height:.92;letter-spacing:-.04em;text-transform:uppercase}
.hero-name-primary{color:#f3f3f6}
.hero-name-outline{-webkit-text-stroke:1.6px rgba(243,243,246,.92);color:transparent;paint-order:stroke fill}
.character-publisher-logo{display:inline-flex;align-items:center;justify-content:center;min-width:120px;min-height:66px;padding:8px 12px;border:1px solid rgba(214,40,43,.28);border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.01));box-shadow:0 10px 24px rgba(0,0,0,.14)}
.character-publisher-logo img{display:block;max-width:120px;max-height:44px;width:auto;height:auto;object-fit:contain;filter:none}
.character-publisher-badge{display:inline-flex;align-items:center;justify-content:center;min-width:156px;min-height:54px;padding:10px 18px;border:1px solid rgba(214,40,43,.38);border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));box-shadow:0 10px 24px rgba(0,0,0,.18);color:#f1f1f4;font-size:22px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.character-role-label{color:#d6282b;font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;padding-left:4px}
.character-hero-portrait::before{background:linear-gradient(90deg,#0d0d0f 0%,#0d0d0f 24%,rgba(13,13,15,.995) 34%,rgba(13,13,15,.95) 44%,rgba(13,13,15,.78) 56%,rgba(13,13,15,.52) 69%,rgba(13,13,15,.24) 81%,transparent 92%)}
@media(max-width:1100px){.character-hero-copy{padding-right:400px}.character-publisher-logo{min-width:100px;min-height:58px}.character-publisher-logo img{max-width:98px;max-height:36px}.character-publisher-badge{min-width:132px;min-height:48px;font-size:18px}}
@media(max-width:820px){.character-hero-copy{padding-right:240px;min-height:230px}.character-title-row{gap:14px}.character-hero-copy h1{font-size:52px}.hero-name-outline{-webkit-text-stroke:1.2px rgba(243,243,246,.92)}.character-publisher-logo{min-width:88px;min-height:48px}.character-publisher-logo img{max-width:86px;max-height:30px}.character-publisher-badge{min-width:118px;min-height:42px;font-size:16px}.character-role-label{font-size:10px}}
@media(max-width:520px){.character-hero-copy{padding-right:0;min-height:auto}.character-title-row{flex-direction:column;align-items:flex-start}.character-hero-copy h1{gap:8px}}
