/* MEGURU CREW STORIES — character arcs layered onto the existing crew UI. */
.crew-story-panel {
  --story-color:var(--crew-color,#ff7b73);
  --story-accent:var(--crew-accent,#ffd166);
  position:relative;
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:18px;
  align-items:start;
  margin-top:15px;
  padding:16px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--story-color) 42%,#c7dfe2);
  border-radius:24px;
  color:#173847;
  background:
    radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--story-accent) 42%,transparent),transparent 28%),
    linear-gradient(135deg,#fff,color-mix(in srgb,var(--story-color) 9%,#fff));
  box-shadow:0 16px 36px rgba(45,82,92,.12);
}
.crew-story-panel::after {
  position:absolute;
  right:-82px;
  bottom:-104px;
  width:240px;
  height:240px;
  content:"";
  border:42px solid var(--story-color);
  border-radius:50%;
  opacity:.07;
  pointer-events:none;
}
.crew-story-portrait {
  position:relative;
  z-index:1;
  width:100%;
  min-height:0;
  aspect-ratio:1;
  align-self:start;
  overflow:hidden;
  border:3px solid rgba(255,255,255,.92);
  border-radius:42px 42px 30px 30px;
  background-color:var(--story-color);
  background-image:url("assets/meguru-crew-roster-v2.webp"),linear-gradient(145deg,var(--story-color),var(--story-accent));
  background-position:var(--portrait-x,0%) var(--portrait-y,0%),center;
  background-repeat:no-repeat;
  background-size:300% 200%,cover;
  box-shadow:0 17px 34px color-mix(in srgb,var(--story-color) 24%,rgba(23,56,71,.12));
}
.crew-story-portrait::after {
  position:absolute;
  right:10px;
  bottom:10px;
  left:10px;
  padding:8px 10px;
  content:attr(data-quote);
  border:1px solid rgba(255,255,255,.38);
  border-radius:15px;
  color:#fff;
  background:rgba(8,28,39,.72);
  font-size:12px;
  font-weight:850;
  line-height:1.5;
  text-shadow:0 1px 5px rgba(0,0,0,.35);
  backdrop-filter:blur(8px);
}
.crew-story-content {
  position:relative;
  z-index:1;
  min-width:0;
}
.crew-story-head {
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:start;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--story-color) 24%,#dce9ea);
}
.crew-story-head small,
.crew-story-head h3,
.crew-story-head p {
  margin:0;
}
.crew-story-head small {
  color:color-mix(in srgb,var(--story-color) 68%,#315b66);
  font:1000 7px/1 ui-monospace,monospace;
  letter-spacing:.15em;
}
.crew-story-head h3 {
  margin-top:4px;
  font-size:clamp(20px,2.2vw,30px);
  letter-spacing:-.04em;
}
.crew-story-head p {
  margin-top:5px;
  color:#55747b;
  font-size:10px;
  font-weight:760;
  line-height:1.55;
}
.crew-story-progress {
  display:grid;
  justify-items:end;
  gap:5px;
}
.crew-story-progress > b {
  color:#28545f;
  font:1000 8px/1 ui-monospace,monospace;
  letter-spacing:.08em;
}
.crew-story-progress > span {
  display:flex;
  gap:5px;
}
.crew-story-progress i {
  display:block;
  width:24px;
  height:6px;
  border-radius:999px;
  background:#d5e3e4;
}
.crew-story-progress i.is-open {
  background:linear-gradient(90deg,var(--story-color),var(--story-accent));
  box-shadow:0 0 10px color-mix(in srgb,var(--story-color) 40%,transparent);
}
.crew-story-chapter {
  margin:11px 0;
  padding:11px 12px;
  border-left:4px solid var(--story-color);
  border-radius:0 15px 15px 0;
  background:color-mix(in srgb,var(--story-color) 8%,rgba(255,255,255,.84));
}
.crew-story-chapter small,
.crew-story-chapter b,
.crew-story-chapter p {
  display:block;
  margin:0;
}
.crew-story-chapter small {
  color:color-mix(in srgb,var(--story-color) 72%,#355d67);
  font:1000 7px/1 ui-monospace,monospace;
  letter-spacing:.11em;
}
.crew-story-chapter b {
  margin:4px 0;
  font-size:15px;
}
.crew-story-chapter p {
  color:#527077;
  font-size:9.5px;
  line-height:1.6;
}
.crew-story-facts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.crew-story-fact {
  min-width:0;
  padding:9px 10px;
  border:1px solid color-mix(in srgb,var(--story-color) 18%,#d8e5e6);
  border-radius:13px;
  background:rgba(255,255,255,.68);
}
.crew-story-fact small,
.crew-story-fact b,
.crew-story-fact p {
  display:block;
  margin:0;
}
.crew-story-fact small {
  color:color-mix(in srgb,var(--story-color) 68%,#496d75);
  font:950 6.5px/1 ui-monospace,monospace;
  letter-spacing:.09em;
}
.crew-story-fact b {
  margin:4px 0 2px;
  color:#244e59;
  font-size:10px;
}
.crew-story-fact p {
  color:#617d82;
  font-size:8.5px;
  line-height:1.5;
}
.crew-story-fact.is-wide {
  grid-column:1/-1;
}
.crew-story-counts {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.crew-story-counts span {
  padding:5px 8px;
  border-radius:999px;
  color:#315c65;
  background:color-mix(in srgb,var(--story-accent) 28%,#eef7f7);
  font-size:7px;
  font-weight:950;
}
.crew-story-result {
  --story-color:var(--crew-color,#ff7b73);
  display:grid;
  grid-template-columns:74px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  max-width:1220px;
  margin:-5px auto 18px;
  padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--story-color) 55%,rgba(255,255,255,.22));
  border-radius:19px;
  color:#edffff;
  background:linear-gradient(105deg,color-mix(in srgb,var(--story-color) 18%,rgba(6,23,32,.96)),rgba(6,20,29,.97));
  box-shadow:0 17px 36px rgba(0,0,0,.22);
}
.crew-story-result-portrait {
  width:72px;
  height:61px;
  border:2px solid rgba(255,255,255,.82);
  border-radius:22px;
  background-color:var(--story-color);
  background-image:url("assets/meguru-crew-roster-v2.webp"),linear-gradient(145deg,var(--story-color),var(--story-accent,#fff0a8));
  background-position:var(--portrait-x,0%) var(--portrait-y,0%),center;
  background-repeat:no-repeat;
  background-size:300% 200%,cover;
}
.crew-story-result small,
.crew-story-result b,
.crew-story-result p {
  display:block;
  margin:0;
}
.crew-story-result small {
  color:color-mix(in srgb,var(--story-color) 68%,#fff);
  font:950 7px/1 ui-monospace,monospace;
  letter-spacing:.1em;
}
.crew-story-result b {
  margin:4px 0;
  font-size:13px;
}
.crew-story-result p {
  color:#b8d0d3;
  font-size:9.5px;
  line-height:1.55;
}
.crew-story-result strong {
  padding:7px 9px;
  border:1px solid color-mix(in srgb,var(--story-color) 65%,#fff);
  border-radius:999px;
  color:#fff;
  font:950 7px/1 ui-monospace,monospace;
  white-space:nowrap;
}

@media (max-width:820px) {
  .crew-story-panel {
    grid-template-columns:150px minmax(0,1fr);
    gap:12px;
    padding:12px;
  }
  .crew-story-portrait {
    min-height:0;
    aspect-ratio:1;
  }
  .crew-story-facts {
    grid-template-columns:1fr;
  }
  .crew-story-fact.is-wide {
    grid-column:auto;
  }
}

@media (max-width:560px) {
  .crew-story-panel {
    grid-template-columns:1fr;
  }
  .crew-story-portrait {
    min-height:0;
    aspect-ratio:1;
    background-position:var(--portrait-x,0%) var(--portrait-y,0%),center;
  }
  .crew-story-head {
    grid-template-columns:1fr;
  }
  .crew-story-progress {
    justify-items:start;
  }
  .crew-story-result {
    grid-template-columns:64px 1fr;
  }
  .crew-story-result-portrait {
    width:62px;
    height:53px;
  }
  .crew-story-result strong {
    grid-column:2;
    justify-self:start;
  }
}

@media (prefers-reduced-motion:reduce) {
  .crew-story-panel,
  .crew-story-result {
    scroll-behavior:auto;
  }
}
