/* Portrait compositions · revision 2 */
.hero-v2 {
  --scene-x: 0px;
  --scene-y: 0px;
  display: block;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  color: #fff;
  background: #092f5e;
  isolation: isolate;
}
.hero-gridlines {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(105deg, #062447, #0b3971 67%, #164c8e);
}
.hero-gridlines::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .15;
  background-image: linear-gradient(90deg, #91bbd6 1px, transparent 1px);
  background-size: 25% 100%;
  mask-image: linear-gradient(transparent, #000 70%);
}
.hero-inner {
  position: relative;
  max-width: 1488px;
  min-height: 710px;
  margin: auto;
  padding: 72px 72px 88px;
}
.hero-v2 .hero-copy {
  width: 59%;
  padding: 0;
  position: relative;
  z-index: 3;
}
.hero-v2 .eyebrow { color: #bfd9f2; font-size: 11px; letter-spacing: .2em; }
.hero-v2 .tiny-line { background: #91dde8; width: 24px; }
.hero-v2 h1 {
  font-family: var(--sans);
  font-size: clamp(78px, 7.9vw, 118px);
  font-weight: 650;
  letter-spacing: -.065em;
  line-height: .91;
  margin: 34px 0 27px;
}
.hero-v2 h1>span:first-of-type { color: #a6e5ed; }
.hero-v2 .hero-period { color: #fff; }
.hero-v2 .hero-role {
  display: inline-block;
  border: 1px solid #a6d1f354;
  padding: 7px 14px;
  border-radius: 30px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .035em;
  margin: 0;
}
.hero-v2 .hero-statement {
  font-family: var(--sans);
  color: #d1e1ef;
  font-size: 22px;
  line-height: 1.45;
  font-weight: 350;
  letter-spacing: -.02em;
  margin-top: 28px;
}
.hero-v2 .hero-actions { margin-top: 30px; gap: 24px; }
.hero-v2 .hero-actions .button { border-radius: 50px; padding: 15px 23px; font-size: 15px; }
.hero-v2 .hero-actions .text-link { color: #e9f6ff; border-color: #83a9ca; font-size: 14px; gap: 15px; }
.hero-v2 .hero-visual {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 49%;
  height: 100%;
  max-height: none;
  padding: 0;
  perspective: 1000px;
  pointer-events: none;
  z-index: 2;
}
.hero-cutout {
  position: absolute;
  width: auto;
  max-width: none;
  height: 112%;
  right: 4%;
  bottom: -21%;
  object-fit: contain;
  object-position: bottom;
  z-index: 3;
  filter: drop-shadow(-18px 18px 22px #00152c24);
}
.hero-halo {
  position: absolute;
  width: 740px;
  height: 740px;
  top: -60px;
  left: -80px;
  border-radius: 50%;
  background: radial-gradient(circle, #528cb253 0, #4383b429 42%, transparent 69%);
  pointer-events: none;
}
.sculpture-ring {
  position: absolute;
  width: 560px;
  height: 560px;
  top: 57px;
  left: -25px;
  border: 33px solid #7fbdce;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 6px 7px 9px #e4f9ff85, inset -12px -8px 15px #28518ab3, 18px 9px 0 #316b9c, 26px 20px 35px #00183455;
  transform: translate(calc(var(--scene-x) * -1.5), calc(var(--scene-y) * -1.5)) rotate(-28deg) rotateY(49deg);
  opacity: .8;
}
.hero-outline {
  position: absolute;
  top: 25px;
  right: 10px;
  font: 700 245px/.85 var(--sans);
  letter-spacing: -.09em;
  color: transparent;
  -webkit-text-stroke: 1px #a7cfe82b;
}
.portrait-scene { --scene-x: 0px; --scene-y: 0px; }
.portrait-layer {
  transform: translate(var(--scene-x), var(--scene-y));
  transition: transform .45s cubic-bezier(.2,.7,.2,1);
  will-change: transform;
}
.hero-photo-note {
  position: absolute;
  z-index: 4;
  bottom: 35px;
  right: 38px;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 13px 18px;
  border: 1px solid #ffffff30;
  border-radius: 4px;
  background: #06284ac9;
  backdrop-filter: blur(14px);
  font-size: 12px;
  font-weight: 600;
}
.hero-photo-note small { display: block; color: #c6ddec; font-size: 10px; font-weight: 400; margin-top: 2px; }
.note-rule { height: 29px; width: 2px; background: #98e3e7; }
.hero-index {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: none;
  padding: 0 max(5%, calc((100% - 1344px) / 2));
  background: #062447;
  border-top: 1px solid #ffffff21;
}
.hero-index a { display: flex; gap: 18px; align-items: center; padding: 24px 28px; font-size: 13px; border-right: 1px solid #ffffff1c; transition: background .2s; }
.hero-index a:first-child { border-left: 1px solid #ffffff1c; }
.hero-index a>span:first-child { font-size: 10px; color: #92b5d3; }
.hero-index a>span:last-child { color: #a6e5ed; margin-left: auto; font-size: 19px; }
.hero-index a:hover { background: #12395f; }
.hero-v2 a:focus-visible { outline-color: #a6e5ed; }

/* The original studio backgrounds are absent; these are independent design layers. */
.bio-photo.cutout-stage {
  height: 630px;
  border-radius: 0;
  background: #e3eaf0;
  isolation: isolate;
}
.bio-disc {
  position: absolute;
  width: 110%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #adc6db;
  left: -40%;
  top: 20%;
  box-shadow: 0 0 0 42px #cedce6, 0 0 0 43px #f8fbfd8c;
}
.stage-word { position: absolute; top: 30px; left: 28px; font: 500 clamp(48px, 5.1vw, 76px)/1 var(--serif); letter-spacing: -.06em; color: #365c7c; }
.bio-photo.cutout-stage>img {
  position: absolute;
  height: 103%;
  width: auto;
  max-width: none;
  bottom: -15%;
  left: 50%;
  margin-left: -34%;
  object-fit: contain;
  filter: drop-shadow(-9px 8px 8px #0b254112);
}
.bio-photo.cutout-stage figcaption {
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px 22px;
  background: #edf3f8ed;
  color: #193b56;
}
.profile-notes { grid-template-columns: 1.55fr 1fr; gap: 36px; margin-top: 54px; }
.profile-notes .experience-note { background: #eee9e5; padding: 0 26px 0 0; gap: 18px; align-items: center; }
.personal-stage { position: relative; height: 330px; width: 210px; min-width: 210px; overflow: hidden; align-self: stretch; }
.personal-disc { position: absolute; width: 230px; height: 230px; background: #d1d9e5; border-radius: 50%; left: -45px; top: 45px; }
.profile-notes .personal-stage img { position: absolute; width: auto; max-width: none; height: 114%; bottom: -17%; left: -15px; object-fit: contain; border-radius: 0; }
.profile-notes .experience-note .eyebrow { color: #687080; font-size: 10px; }
.profile-notes .experience-note h3 { font-size: 28px; }
.profile-notes .experience-note p:not(.eyebrow) { font-size: 14px; }
.profile-notes .business-note { border-left: 0; border-top: 1px solid var(--line); padding: 24px 0; gap: 19px; }
.business-stage { position: relative; width: 145px; height: 230px; min-width: 145px; overflow: hidden; }
.business-disc { position: absolute; width: 155px; height: 155px; border-radius: 50%; background: #cad8e6; left: -5px; bottom: 24px; }
.profile-notes .business-stage img { position: absolute; height: 112%; width: auto; max-width: none; bottom: -17%; left: -10px; border-radius: 0; object-fit: contain; }
.profile-notes .business-note h3 { font-size: 26px; }

.party-section { background: #eef2f7; }
.party-photo.cutout-stage { background: #12509a; border-radius: 0 100px 0 0; height: 670px; isolation: isolate; }
.party-disc { position: absolute; width: 640px; height: 640px; border: 70px solid #6cadd5; border-radius: 50%; right: -150px; top: 90px; transform: rotate(-25deg) rotateY(35deg); box-shadow: inset 8px 5px 0 #cae5f33d, -18px 0 0 #0d3b76; opacity: .7; }
.party-outline { position: absolute; left: 15px; top: 24px; font: 700 130px/.9 var(--sans); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 1px #c4e1f47d; }
.party-photo.cutout-stage>img { position: absolute; height: 109%; width: auto; max-width: none; bottom: -15%; right: -1%; object-fit: contain; filter: drop-shadow(-12px 8px 10px #05234830); }
.party-photo .photo-number { left: 22px; right: auto; bottom: 22px; padding: 9px 14px; background: #082d59d9; color: #fff; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
.detail-aside .bio-aside-cutout { background: radial-gradient(circle at 50% 50%, #c4dae9 0, #c4dae9 40%, #e8eff5 41%); border-radius: 80px 0 0 0; }

@media (min-width:1600px) {
  .hero-inner { min-height: 760px; padding-top: 90px; }
  .hero-cutout { right: 2%; height: 115%; }
}
@media (max-width:1150px) {
  .hero-inner { min-height: 670px; padding: 65px 40px 74px; }
  .hero-v2 h1 { font-size: 8.2vw; }
  .hero-v2 .hero-statement { font-size: 21px; }
  .hero-v2 .hero-copy { width: 61%; }
  .hero-cutout { height: 107%; right: -7%; bottom: -16%; }
  .sculpture-ring { width: 490px; height: 490px; left: -25px; top: 70px; }
  .hero-photo-note { right: 25px; bottom: 25px; }
  .hero-index { padding: 0 40px; }
  .profile-notes { gap: 26px; grid-template-columns: 1.55fr 1fr; }
  .personal-stage { width: 170px; min-width: 170px; height: 350px; }
  .profile-notes .personal-stage img { height: 105%; left: -28px; bottom: -8%; }
  .business-stage { width: 110px; min-width: 110px; height: 210px; }
  .profile-notes .business-note { padding-left: 0; gap: 15px; }
  .profile-notes .business-stage img { width: auto; height: 111%; left: -22px; bottom: -16%; }
  .profile-notes .experience-note h3 { font-size: 25px; }
  .profile-notes .business-note h3 { font-size: 23px; }
}
@media (max-width:900px) {
  .hero-inner { min-height: 625px; padding: 55px 30px 65px; }
  .hero-v2 h1 { font-size: 8.3vw; margin: 30px 0 24px; }
  .hero-v2 .hero-statement { font-size: 19px; }
  .hero-v2 .hero-actions { align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 25px; }
  .hero-v2 .hero-actions .button { padding: 13px 20px; font-size: 14px; min-height: 50px; }
  .hero-cutout { right: -16%; height: 101%; bottom: -10%; }
  .sculpture-ring { width: 420px; height: 480px; left: -20px; top: 80px; border-width: 28px; }
  .hero-outline { font-size: 190px; top: 55px; }
  .hero-photo-note { right: 20px; font-size: 11px; padding: 11px 13px; }
  .hero-photo-note small { font-size: 9px; }
  .hero-index { padding: 0 30px; }
  .hero-index a { padding: 22px 17px; gap: 12px; font-size: 12px; }
  .bio-photo.cutout-stage { height: 570px; }
  .bio-photo.cutout-stage>img { height: 97%; margin-left: -43%; bottom: -9%; }
  .profile-notes { display: grid; grid-template-columns: 1fr; gap: 28px; }
  .profile-notes .experience-note { max-width: none; padding-right: 40px; gap: 30px; }
  .personal-stage { width: 240px; min-width: 240px; height: 330px; }
  .profile-notes .personal-stage img { left: 4px; height: 114%; bottom: -17%; }
  .profile-notes .experience-note h3 { font-size: 30px; }
  .profile-notes .business-note { margin-top: 0; border-top: 0; padding: 0; max-width: 600px; gap: 26px; }
  .business-stage { width: 145px; min-width: 145px; height: 210px; }
  .profile-notes .business-stage img { width: auto; height: 112%; bottom: -17%; left: -3px; }
  .party-photo.cutout-stage { height: 590px; }
  .party-photo.cutout-stage>img { height: 99%; right: -15%; bottom: -4%; }
  .party-outline { font-size: 100px; }
}
@media (max-width:760px) {
  .hero-v2 { display: block; padding: 0; }
  .hero-inner { padding: 36px 22px 0; min-height: 0; }
  .hero-v2 .hero-copy { width: 100%; }
  .hero-v2 .eyebrow { font-size: 9px; letter-spacing: .15em; }
  .hero-v2 h1 { font-size: clamp(60px, 15.3vw, 108px); margin: 26px 0 22px; line-height: .93; letter-spacing: -.06em; }
  .hero-v2 .hero-role { font-size: 11px; padding: 6px 11px; }
  .hero-v2 .hero-statement { font-size: 18px; margin-top: 20px; line-height: 1.45; }
  .hero-v2 .hero-actions { flex-direction: row; align-items: center; gap: 17px; margin-top: 22px; }
  .hero-v2 .hero-actions .button { font-size: 12px; padding: 12px 15px; min-height: 46px; gap: 11px; }
  .hero-v2 .hero-actions .text-link { font-size: 12px; gap: 8px; }
  .hero-v2 .hero-visual { position: relative; right: auto; bottom: auto; height: 470px; width: calc(100% + 44px); margin: 10px -22px 0; max-width: none; overflow: hidden; }
  .hero-cutout { height: 129%; right: auto; left: 50%; margin-left: -200px; bottom: -33%; }
  .hero-halo { width: 600px; height: 600px; top: -75px; left: 50%; margin-left: -300px; }
  .sculpture-ring { height: 430px; width: 400px; top: 16px; left: 50%; margin-left: -200px; border-width: 29px; }
  .hero-outline { font-size: 200px; top: 20px; right: 25px; }
  .hero-photo-note { right: 22px; bottom: 18px; padding: 10px 14px; font-size: 11px; }
  .hero-photo-note small { font-size: 9px; }
  .hero-index { padding: 0 22px; grid-template-columns: 1fr; }
  .hero-index a { padding: 16px 0; border-right: 0; border-bottom: 1px solid #ffffff1c; font-size: 13px; gap: 17px; }
  .hero-index a:first-child { border-left: 0; }
  .hero-index a:last-child { border-bottom: 0; }
  .hero-index a>span:last-child { font-size: 18px; }
  .intro { border-top: 0; }
  .bio-photo.cutout-stage { height: 520px; max-width: 480px; }
  .stage-word { font-size: 57px; top: 24px; left: 23px; }
  .bio-photo.cutout-stage>img { height: 104%; margin-left: -171px; bottom: -16%; }
  .bio-disc { top: 25%; left: -35%; }
  .bio-photo.cutout-stage figcaption { font-size: 9px; padding: 14px 17px; }
  .profile-notes { margin-top: 38px; gap: 26px; }
  .profile-notes .experience-note { flex-direction: column; gap: 0; padding: 0; align-items: stretch; overflow: hidden; }
  .personal-stage { order: 2; width: 100%; min-width: 0; height: 300px; margin-top: 0; }
  .personal-disc { width: 260px; height: 260px; left: 50%; margin-left: -130px; top: 20px; }
  .profile-notes .personal-stage img { height: 154%; left: 50%; margin-left: -154px; bottom: -53%; width: auto; }
  .profile-notes .experience-note>div:last-child { padding: 27px 26px 0; }
  .profile-notes .experience-note .eyebrow { font-size: 9px; }
  .profile-notes .experience-note h3 { font-size: 29px; }
  .profile-notes .experience-note p:not(.eyebrow) { font-size: 15px; }
  .profile-notes .business-note { gap: 20px; align-items: center; padding: 0; }
  .business-stage { width: 130px; min-width: 130px; height: 210px; }
  .profile-notes .business-stage img { height: 118%; width: auto; left: -12px; bottom: -20%; }
  .profile-notes .business-note h3 { font-size: 25px; }
  .party-photo.cutout-stage { height: 520px; width: 100%; max-width: 480px; border-radius: 0 80px 0 0; }
  .party-photo.cutout-stage>img { height: 112%; right: auto; left: 50%; margin-left: -194px; bottom: -17%; }
  .party-disc { width: 510px; height: 510px; top: 90px; right: -180px; border-width: 57px; }
  .party-outline { font-size: 110px; top: 24px; left: 16px; }
  .party-photo .photo-number { font-size: 9px; left: 18px; bottom: 18px; }
}
@media (max-width:370px) {
  .hero-v2 h1 { font-size: 55px; }
  .hero-v2 .hero-actions { gap: 14px; }
  .hero-v2 .hero-actions .button { padding: 11px 13px; font-size: 11px; gap: 9px; }
  .hero-v2 .hero-actions .text-link { font-size: 11px; gap: 6px; }
  .hero-v2 .hero-visual { height: 430px; }
  .hero-cutout { margin-left: -185px; }
}
@media (prefers-reduced-motion:reduce) {
  .portrait-layer { transform: none!important; will-change: auto; }
  .sculpture-ring { transform: rotate(-28deg) rotateY(49deg); }
}
