.profile-page {
  --profile-radius: 38px;
  background: var(--profile-surface);
}

.profile-page[data-character="mallow"] {
  --profile-deep: #352049;
  --profile-soft-pink: #f7dce9;
  --profile-soft-lilac: #ddd5ff;
  --profile-soft-blue: #d9edfb;
  --profile-surface: #fffaf3;
}

.profile-page .site-header {
  background: color-mix(in srgb, var(--profile-surface) 94%, transparent);
}

.profile-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 30px;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.profile-breadcrumbs a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.profile-breadcrumbs span[aria-hidden="true"] { color: var(--violet); }

.profile-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 87% 16%, rgba(255, 255, 255, .82) 0 5%, transparent 5.2%),
    radial-gradient(circle at 9% 82%, rgba(207, 231, 251, .72) 0 7%, transparent 7.2%),
    linear-gradient(135deg, var(--profile-surface) 0 42%, #f4f0ff 72%, #eee8ff 100%);
}

.profile-hero::before {
  position: absolute;
  width: 520px;
  height: 520px;
  top: -360px;
  left: 38%;
  border: 76px solid rgba(247, 220, 233, .62);
  border-radius: 50%;
  content: "";
}

.profile-hero-grid {
  position: relative;
  z-index: 1;
  min-height: 720px;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: center;
  gap: 54px;
  padding: 54px 0 68px;
}

.profile-hero-copy { min-width: 0; max-width: 640px; }

.profile-hero .eyebrow { margin-bottom: 18px; }

.profile-hero h1 {
  margin: 0;
  color: var(--profile-deep);
  font-size: clamp(4.5rem, 8.2vw, 8.1rem);
  font-weight: 600;
  line-height: .84;
  letter-spacing: -.078em;
}

.profile-hero h1 span {
  display: block;
  color: var(--violet);
}

.profile-identity {
  max-width: 610px;
  margin: 32px 0 0;
  color: var(--profile-deep);
  font-size: clamp(1.35rem, 2.25vw, 2rem);
  font-weight: 560;
  line-height: 1.26;
  letter-spacing: -.027em;
}

.profile-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.profile-portrait {
  position: relative;
  min-height: 590px;
  display: grid;
  place-items: center;
  margin: 0;
  isolation: isolate;
}

.profile-portrait::before {
  position: absolute;
  z-index: -2;
  width: min(590px, 96%);
  aspect-ratio: 1;
  border-radius: 50% 50% 44% 56% / 45% 42% 58% 55%;
  background: linear-gradient(145deg, #ffffff 0 52%, var(--profile-soft-pink) 100%);
  box-shadow: 36px 30px 0 rgba(207, 231, 251, .8), -30px 34px 0 rgba(221, 213, 255, .84), var(--shadow);
  transform: rotate(-2deg);
  content: "";
}

.profile-portrait::after {
  position: absolute;
  z-index: -1;
  width: 86px;
  height: 86px;
  top: 48px;
  right: 12px;
  border: 18px solid rgba(96, 75, 216, .15);
  border-radius: 50%;
  content: "";
}

.profile-portrait img {
  width: min(620px, 104%);
  height: auto;
  max-width: none;
  object-fit: contain;
  filter: drop-shadow(0 26px 30px rgba(41, 20, 80, .18));
  animation: mallow-arrive .72s cubic-bezier(.2, .8, .2, 1) both;
}

.profile-id-badge {
  position: absolute;
  right: 0;
  bottom: 34px;
  padding: .72rem 1rem;
  border: 1px solid rgba(41, 20, 80, .15);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 12px 28px rgba(41, 20, 80, .09);
  color: var(--ink);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

@keyframes mallow-arrive {
  from { opacity: 0; transform: translateY(20px) scale(.975); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.profile-section { padding: 108px 0; }

.profile-personality {
  position: relative;
  overflow: hidden;
  background: #fff;
}

.profile-personality::after {
  position: absolute;
  width: 330px;
  height: 330px;
  right: -210px;
  bottom: -170px;
  border: 50px solid rgba(247, 207, 224, .42);
  border-radius: 50%;
  content: "";
}

.personality-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  align-items: start;
  gap: 88px;
}

.profile-number {
  display: inline-block;
  margin-bottom: 22px;
  color: var(--violet);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.profile-display-heading {
  max-width: 720px;
  margin: 0;
  font-size: clamp(2.85rem, 5.3vw, 5.35rem);
  font-weight: 590;
  line-height: .98;
  letter-spacing: -.052em;
}

.personality-copy {
  padding-top: 46px;
  border-top: 1px solid var(--line);
}

.personality-copy > p {
  max-width: 650px;
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(1.1rem, 1.7vw, 1.4rem);
  line-height: 1.68;
}

.trait-line {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}

.trait-line span {
  padding: .52rem .78rem;
  border: 1px solid rgba(96, 75, 216, .2);
  border-radius: 999px;
  background: var(--lilac-soft);
  color: var(--profile-deep);
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.profile-motto {
  position: relative;
  overflow: hidden;
  padding: 102px 0 110px;
  background: var(--profile-deep);
  color: #fff;
}

.profile-motto::before,
.profile-motto::after {
  position: absolute;
  border-radius: 50%;
  content: "";
}

.profile-motto::before {
  width: 360px;
  height: 360px;
  top: -238px;
  right: 9%;
  border: 52px solid rgba(221, 213, 255, .16);
}

.profile-motto::after {
  width: 130px;
  height: 130px;
  left: 5%;
  bottom: -72px;
  background: rgba(247, 220, 233, .16);
}

.profile-motto .eyebrow { color: var(--profile-soft-lilac); }
.profile-motto .eyebrow::before { background: var(--profile-soft-pink); }

.profile-motto blockquote {
  max-width: 1050px;
  margin: 10px 0 0;
  font-size: clamp(2.55rem, 5.3vw, 5.8rem);
  font-weight: 560;
  line-height: .98;
  letter-spacing: -.052em;
}

.profile-motto blockquote strong { display: block; color: #fff; font-weight: inherit; }
.profile-motto blockquote span { display: block; margin-top: 18px; color: var(--profile-soft-pink); font-size: .52em; line-height: 1.16; letter-spacing: -.025em; }

.profile-values {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, var(--profile-surface) 0, #fff 100%);
}

.values-grid {
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  gap: 54px;
  align-items: end;
}

.reminder-panel {
  position: relative;
  min-height: 510px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(34px, 5vw, 68px);
  border-radius: var(--profile-radius);
  background: linear-gradient(145deg, var(--profile-soft-lilac), #f0ecff 58%, var(--profile-soft-blue));
  isolation: isolate;
}

.reminder-panel::before {
  position: absolute;
  z-index: -1;
  width: 260px;
  height: 260px;
  top: 38px;
  right: 8%;
  border: 44px solid rgba(255, 255, 255, .54);
  border-radius: 50%;
  content: "";
}

.reminder-panel h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(2.75rem, 5vw, 5rem);
  font-weight: 590;
  line-height: .98;
  letter-spacing: -.05em;
}

.reminder-panel p {
  max-width: 680px;
  margin: 26px 0 0;
  color: var(--ink-soft);
  font-size: clamp(1.05rem, 1.55vw, 1.28rem);
  line-height: 1.66;
}

.flaw-note {
  position: relative;
  margin-bottom: 26px;
  padding: 38px 36px;
  border: 1px solid rgba(41, 20, 80, .13);
  border-radius: 32px 32px 32px 8px;
  background: var(--pink-soft);
  box-shadow: 0 18px 46px rgba(41, 20, 80, .07);
}

.flaw-note .profile-number { margin-bottom: 18px; }
.flaw-note p { margin: 0; color: var(--profile-deep); font-size: clamp(1.08rem, 1.55vw, 1.3rem); line-height: 1.62; }

.profile-friendship {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #edf7ff 0%, #f9f7ff 60%, #fff0f5 100%);
}

.friendship-grid {
  min-height: 650px;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 72px;
}

.friendship-portraits {
  position: relative;
  min-height: 570px;
  margin: 0;
}

.friend-portrait {
  position: absolute;
  display: grid;
  place-items: center;
  border: 1px solid rgba(41, 20, 80, .1);
  border-radius: 50%;
  box-shadow: 0 26px 60px rgba(41, 20, 80, .12);
}

.friend-portrait img { width: 100%; height: 100%; object-fit: contain; }

.friend-portrait.mallow {
  z-index: 2;
  width: min(390px, 65%);
  aspect-ratio: 1;
  left: 0;
  bottom: 30px;
  background: #fff;
}

.friend-portrait.lumi {
  width: min(360px, 60%);
  aspect-ratio: 1;
  top: 34px;
  right: 0;
  background: var(--profile-soft-lilac);
}

.friendship-mark {
  position: absolute;
  z-index: 3;
  left: 48%;
  top: 43%;
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--violet);
  box-shadow: 0 12px 28px rgba(96, 75, 216, .25);
  color: #fff;
  font-size: 1.35rem;
  transform: translate(-50%, -50%) rotate(-8deg);
}

.friendship-copy h2 { margin: 0; font-size: clamp(3rem, 5vw, 5.2rem); font-weight: 590; line-height: .98; letter-spacing: -.052em; }
.friendship-copy > p { max-width: 560px; margin: 26px 0 0; color: var(--ink-soft); font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.65; }
.friendship-note { display: inline-flex; margin-top: 30px; padding: .55rem .8rem; border: 1px solid rgba(41, 20, 80, .15); border-radius: 999px; background: rgba(255, 255, 255, .72); color: var(--ink); font-size: .75rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }

.profile-actions { background: #fff; }

.actions-heading {
  display: grid;
  grid-template-columns: 1fr .78fr;
  align-items: end;
  gap: 64px;
  margin-bottom: 58px;
}

.actions-heading p { max-width: 560px; margin: 0; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.7; }

.world-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.world-action {
  min-height: 320px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 42px 34px;
  border-right: 1px solid var(--line);
}

.world-action:last-child { border-right: 0; }
.world-action[data-state="available"] { background: linear-gradient(180deg, var(--lilac-soft), #fff); }
.world-action[data-state="future"] { background: var(--profile-surface); }
.world-action-index { color: var(--violet); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.world-action h3 { margin: 44px 0 0; font-size: clamp(1.75rem, 2.5vw, 2.4rem); font-weight: 600; line-height: 1.05; letter-spacing: -.035em; }
.world-action p { margin: 18px 0 0; color: var(--ink-soft); line-height: 1.62; }
.world-action .button { margin-top: auto; padding-top: .7rem; padding-bottom: .7rem; }
.action-status { margin-top: auto !important; padding-top: 28px; color: var(--violet) !important; font-size: .75rem !important; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.profile-return {
  padding: 76px 0;
  background: var(--violet-deep);
  color: #fff;
}

.return-row { display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.return-row h2 { max-width: 760px; margin: 0; font-size: clamp(2.3rem, 4vw, 4rem); font-weight: 570; line-height: 1.02; letter-spacing: -.045em; }
.profile-return .button { border-color: #fff; background: #fff; color: var(--violet-deep); }

@media (min-width: 941px) {
  .profile-page .desktop-nav { display: flex; }
  .profile-page .menu-toggle { display: none; }
}

@media (max-width: 1100px) {
  .profile-hero-grid { gap: 20px; }
  .profile-portrait { min-height: 510px; }
  .friendship-grid { gap: 36px; }
  .friendship-portraits { min-height: 500px; }
}

@media (max-width: 900px) {
  .profile-hero-grid {
    min-height: auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 42px 0 62px;
  }
  .profile-hero-copy { max-width: 720px; }
  .profile-identity { max-width: 680px; }
  .profile-portrait { min-height: 570px; }
  .profile-portrait img { width: min(590px, 88vw); }
  .profile-id-badge { right: 8%; }
  .personality-grid, .values-grid, .friendship-grid, .actions-heading { grid-template-columns: 1fr; }
  .personality-grid { gap: 44px; }
  .personality-copy { padding-top: 0; border-top: 0; }
  .values-grid { gap: 28px; }
  .flaw-note { margin: 0; }
  .friendship-grid { gap: 18px; }
  .friendship-portraits { width: min(660px, 100%); margin-inline: auto; }
  .friendship-copy { padding-bottom: 30px; }
  .actions-heading { gap: 20px; }
  .world-actions { grid-template-columns: 1fr; }
  .world-action { min-height: 250px; border-right: 0; border-bottom: 1px solid var(--line); }
  .world-action:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .profile-page .shell { width: min(100% - 32px, 1220px); }
  .profile-page .header-row { min-height: 65px; }
  .profile-breadcrumbs { margin-bottom: 25px; font-size: .71rem; }
  .profile-hero-grid { padding-top: 28px; }
  .profile-hero h1 { font-size: clamp(3.7rem, 18vw, 5.35rem); }
  .profile-identity { margin-top: 24px; font-size: 1.2rem; line-height: 1.4; }
  .profile-hero-actions { margin-top: 24px; }
  .profile-hero-actions .button { width: 100%; }
  .profile-portrait { min-height: 390px; margin-top: 2px; }
  .profile-portrait::before { width: min(350px, 92%); box-shadow: 18px 17px 0 rgba(207, 231, 251, .8), -16px 20px 0 rgba(221, 213, 255, .84), var(--shadow); }
  .profile-portrait::after { width: 54px; height: 54px; top: 38px; right: 0; border-width: 12px; }
  .profile-portrait img { width: min(390px, 107vw); }
  .profile-id-badge { right: 0; bottom: 7px; padding: .58rem .75rem; font-size: .64rem; }
  .profile-section { padding: 76px 0; }
  .profile-display-heading { font-size: clamp(2.7rem, 13.5vw, 4rem); }
  .trait-line { margin-top: 28px; }
  .profile-motto { padding: 76px 0 82px; }
  .profile-motto blockquote { font-size: clamp(2.55rem, 12vw, 3.65rem); }
  .reminder-panel { min-height: 430px; padding: 30px 26px; border-radius: 30px; }
  .reminder-panel h2 { font-size: clamp(2.55rem, 12vw, 3.8rem); }
  .flaw-note { padding: 30px 26px; border-radius: 28px 28px 28px 8px; }
  .friendship-portraits { min-height: 380px; }
  .friend-portrait.mallow { width: 65%; bottom: 5px; }
  .friend-portrait.lumi { width: 61%; top: 14px; }
  .friendship-mark { width: 52px; height: 52px; font-size: 1.05rem; }
  .friendship-copy h2 { font-size: clamp(2.8rem, 13vw, 4rem); }
  .actions-heading { margin-bottom: 38px; }
  .world-action { min-height: 270px; padding: 34px 26px; }
  .world-action h3 { margin-top: 30px; }
  .return-row { align-items: flex-start; flex-direction: column; }
  .profile-return .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .profile-portrait img { animation: none; }
}

/* Candidate-only extension of the existing Meet and Mallow profile styles. */
.profile-page{--profile-deep:#352049;--profile-soft-pink:#f7dce9;--profile-soft-lilac:#ddd5ff;--profile-soft-blue:#d9edfb;--profile-surface:#fffaf3}
.cast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.cast-card{display:flex;flex-direction:column;min-width:0;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:28px;padding:24px;text-decoration:none;box-shadow:0 8px 20px #35204909}.cast-card:hover{box-shadow:0 12px 28px #35204920}.cast-card img{display:block;width:100%;height:auto;object-fit:contain}.cast-card h3{font-size:1.8rem;margin:14px 0 8px}.cast-card p{line-height:1.6;margin:0 0 16px}.cast-card .profile-link{margin-top:auto}.cast-card .species{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#655471;font-weight:650}.cast-card .card-art{width:100%;max-width:280px;align-self:center}
.review-banner{padding:10px 20px;text-align:center;color:#56325d;background:#f5e6f0;font-size:.85rem;font-weight:650}.profile-portrait img{max-width:100%;height:auto;object-fit:contain;animation:none}.profile-portrait{min-width:0}.profile-hero-grid{min-height:640px}.profile-hero h1{overflow-wrap:normal}.first-cast-friends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:center}.first-cast-friends img{width:100%;height:auto;object-fit:contain}.first-cast-friends figure{margin:0;text-align:center}.first-cast-friends figcaption{font-weight:650}.first-cast-friends a{display:block;color:inherit}.world-actions.profile-activities{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-activities .world-action{min-width:0}.profile-activities img{display:block;width:100%;max-width:200px;height:auto;object-fit:contain;margin:0 auto 24px}.profile-activities h3{font-size:1.5rem}.profile-activities .button{white-space:normal}.profile-related{padding-block:70px}.profile-section p{max-width:70ch}.profile-return .button{white-space:normal}.world-peek-art{object-fit:contain!important;width:100%!important;height:auto!important;transform:none!important}.world-peek-shape{overflow:visible!important}.world-peek{min-width:0}.hub-peek{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:24px;background:#ede6ff;border-radius:40% 36% 30% 34%}.hub-peek img{width:100%;height:auto;object-fit:contain}.hub-peek figure{margin:0}.hub-peek figure:nth-child(even){transform:translateY(18px)}.hub-peek-label{margin-top:24px;text-align:center;color:#604375;font-weight:650}.hub-actions{display:flex;gap:16px;flex-wrap:wrap}.character-detail{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.character-detail h3{font-size:1.2rem}.profile-page a:focus-visible,.cast-card:focus-visible{outline:3px solid #673e9e;outline-offset:5px}.friendship-grid>*{min-width:0}.profile-activities .world-action{padding:25px}.profile-activities .world-action .button{margin-top:16px}
@media(max-width:1023px){.cast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-actions.profile-activities{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.cast-grid{grid-template-columns:minmax(0,1fr)}.cast-card .card-art{max-width:250px}.world-actions.profile-activities{grid-template-columns:minmax(0,1fr)}.profile-hero-grid{min-height:0}.profile-portrait{min-height:350px}.profile-hero h1{font-size:clamp(3.3rem,14vw,4.6rem)}.hub-peek{padding:16px;gap:0}.profile-related{padding-block:48px}.first-cast-friends{gap:0}.friendship-grid{gap:28px}.profile-portrait img{width:100%!important}.profile-hero-copy{width:100%}.return-row{min-width:0}.review-banner{font-size:.8rem}.hub-actions .button{white-space:normal}}
