/* Clean vector surfaces. No noise texture or raster background overlay. */
.talent-card .portrait-avatar { background: #21102b; }
.talent-card .portrait-avatar .shadow-photo { object-fit: contain; }
.hero { --hero-scroll: 0; background: linear-gradient(125deg, #190c20 0%, #120a17 48%, #271132 100%); }
.hero-vectors { position: absolute; inset: 0; width: 100%; height: 100%; }
.vector-plane { transform-origin: 60% 40%; }
.vector-current { opacity: .7; }
.hero-emblem { width: 100%; height: auto; display: block; overflow: visible; }
.hero-logo { filter: none; }
.logo-halo { display: none; }
.emblem-crown { translate: 0 calc(var(--hero-scroll) * -58px); }
.emblem-k { translate: calc(var(--hero-scroll) * -38px) calc(var(--hero-scroll) * 16px); }
.emblem-l { translate: calc(var(--hero-scroll) * 52px) calc(var(--hero-scroll) * 30px); }
.hero-art { perspective: 1000px; }
.title-line { display: block; }
.title-line:nth-child(2) { position: relative; }
.hero-controls { display: flex; align-items: center; gap: 32px; }
.hero-controls > a { display: flex; gap: 22px; align-items: center; }
.motion-toggle { padding: 12px 0; border: 0; background: none; display: flex; gap: 12px; align-items: center; font-size: 11px; color: #cfa4c9; }
.motion-toggle span { font-size: 15px; }
.hero-baseline { align-items: center; bottom: 24px; }
.ribbon { padding-block: 18px; }
.ribbon > .ribbon-track { display: flex; width: max-content; justify-content: flex-start; gap: 0; }
.ribbon-group { display: flex; flex: 0 0 auto; align-items: center; gap: 48px; padding-right: 48px; }
.roster { position: relative; overflow: clip; isolation: isolate; background: linear-gradient(155deg, #120a17 30%, #21102b 100%); }
.roster::before, .roster::after { content: ''; pointer-events: none; position: absolute; z-index: -1; width: 130%; height: 1px; background: #b56bc32a; transform: rotate(-24deg); transform-origin: left; }
.roster::before { top: 58%; left: -10%; }
.roster::after { top: 89%; left: -10%; }
.talent-card { perspective: 1000px; }
.portrait { --tilt-x: 0deg; --tilt-y: 0deg; transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y)); transition: transform .45s var(--ease), box-shadow .3s var(--ease); }
.portrait.is-pointed { box-shadow: 0 20px 50px #08020c66; transition: transform .1s ease-out, box-shadow .3s var(--ease); }
.portrait-caption { transition: translate .4s var(--ease); }
.portrait.is-pointed .portrait-caption { translate: 0 -5px; }
.portrait-spark { display: inline-block; transition: rotate .5s var(--ease); }
.portrait.is-pointed .portrait-spark, .portrait.is-full .portrait-spark { rotate: 90deg; }
.talent-card:not(.is-placeholder) .shadow-photo,
.talent-card:not(.is-placeholder) .reveal-photo { filter: none; opacity: 1; }
.roster-grid.is-single { grid-template-columns: 1fr; }
.roster-grid.is-single .talent-card { display: grid; grid-template-columns: minmax(0, 430px) minmax(0, 1fr); gap: clamp(35px, 7vw, 110px); align-items: center; }
.roster-grid.is-single .profile-details { max-width: 440px; }
.roster-grid.is-single .card-info { display: block; margin: 0; }
.roster-grid.is-single .card-info h3 { font-size: clamp(56px, 7vw, 100px); line-height: 1; letter-spacing: -.055em; margin-bottom: 20px; }
.roster-grid.is-single .card-info p { font-size: 17px; }
.roster-grid.is-single .card-info > span { display: block; font-size: 14px; margin-top: 12px; }
.roster-grid.is-single .profile-socials { gap: 18px; margin-top: 32px; border-top: 1px solid var(--line); padding-top: 15px; font-size: 14px; }
.profile-socials a { min-height: 44px; }
.story { background: linear-gradient(125deg, #160c1d, #25102b); }
.story-mark { --story-turn: 0; }
.story-mark > img { transform: rotate(calc(-12deg + var(--story-turn) * 18deg)); filter: none; }
.footer { background: linear-gradient(160deg, #120a17, #21102a); }

/* Choreographed entrance, then a restrained living identity. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .hero .title-line { animation: title-enter .9s var(--ease) both; }
  .motion-ready .hero .title-line:nth-child(2) { animation-delay: .1s; }
  .motion-ready .hero-intro, .motion-ready .hero-bottom { animation: copy-enter .7s var(--ease) .24s both; }
  .motion-ready .hero-bottom { animation-delay: .34s; }
  .motion-ready .emblem-crown { animation: crown-enter 1.05s var(--ease) .1s both; }
  .motion-ready .emblem-k { animation: k-enter 1.05s var(--ease) .2s both; }
  .motion-ready .emblem-l { animation: l-enter 1.05s var(--ease) .28s both; }
  .motion-ready .hero-emblem { animation: emblem-float 7s ease-in-out 1.4s infinite; }
  .motion-ready .vector-current { animation: vector-flow 8s linear infinite; }
  .motion-ready .vector-plane { animation: plane-drift 12s ease-in-out infinite alternate; }
  .motion-ready .ribbon-track { animation: ribbon-flow 32s linear infinite; }
  .motion-ready .talent-card.card-pending { opacity: 0; transform: translateY(35px) rotate(2deg); }
  .motion-ready .talent-card.card-seen { animation: card-open .85s var(--ease) var(--card-delay, 0ms) both; }
}
@keyframes title-enter { from { opacity: 0; transform: translateY(38px); clip-path: inset(100% 0 0); } to { opacity: 1; transform: none; clip-path: inset(-25% -5% -15%); } }
@keyframes copy-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes crown-enter { from { opacity: 0; transform: translateY(-45px) rotate(-5deg); } to { opacity: 1; transform: none; } }
@keyframes k-enter { from { opacity: 0; transform: translate(-35px, 20px); } to { opacity: 1; transform: none; } }
@keyframes l-enter { from { opacity: 0; transform: translate(35px, 20px); } to { opacity: 1; transform: none; } }
@keyframes emblem-float { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-13px) rotate(1.8deg); } }
@keyframes vector-flow { from { stroke-dashoffset: 1730; } to { stroke-dashoffset: 0; } }
@keyframes plane-drift { from { transform: translate(-8px, 10px); } to { transform: translate(18px, -12px); } }
@keyframes ribbon-flow { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes card-open { from { opacity: 0; transform: translateY(35px) rotate(2deg); } to { opacity: 1; transform: none; } }

.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state: paused !important; }
.motion-paused .title-line, .motion-paused .hero-intro, .motion-paused .hero-bottom,
.motion-paused .emblem-crown, .motion-paused .emblem-k, .motion-paused .emblem-l,
.motion-paused .talent-card.card-seen { animation: none !important; opacity: 1; transform: none; clip-path: none; }
.motion-paused .talent-card.card-pending { opacity: 1; transform: none; }
.motion-paused .portrait { transform: none; }
.motion-paused .hero-logo { transform: rotate(-9deg); }
.motion-paused .emblem-crown, .motion-paused .emblem-k, .motion-paused .emblem-l { translate: none; }
.motion-paused .portrait-button:hover { cursor: pointer; }
@media(max-width:700px) {
  .roster-grid.is-single .talent-card { grid-template-columns: 1fr; gap: 25px; }
  .roster-grid.is-single .card-info h3 { font-size: 44px; margin-bottom: 12px; }
  .roster-grid.is-single .card-info p { font-size: 14px; }
  .roster-grid.is-single .profile-socials { margin-top: 20px; }
  .talent-card:not(.is-placeholder) .portrait { aspect-ratio: 4/5; }
  .hero-controls { width: 100%; justify-content: space-between; gap: 16px; }
  .motion-toggle { font-size: 10px; min-height: 44px; }
  .hero-baseline { bottom: 14px; }
  .hero-controls > a { gap: 12px; }
  .ribbon { padding-block: 15px; }
  .ribbon-group { gap: 25px; padding-right: 25px; }
  .hero-vectors { width: 155%; max-width: none; left: -25%; }
}
@media(prefers-reduced-motion:reduce) {
  .talent-card.card-pending { opacity: 1; transform: none; }
  .emblem-crown, .emblem-k, .emblem-l { translate: none; }
  .hero-emblem, .portrait { transform: none !important; }
  .story-mark > img { transform: rotate(-12deg); }
}
