/* One short opening sequence; the content is never blocked by an overlay. */
.hero{isolation:isolate;overflow:hidden}
.opening-light{position:absolute;inset:-35% -60%;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at center,#ffe9d847 0%,#ed438420 24%,transparent 57%);transform:translateX(-38%) rotate(-22deg);opacity:0;animation:spotlight-pass 2.8s cubic-bezier(.22,.7,.25,1) .15s both;mix-blend-mode:screen}
.hero-copy{animation:entrance .9s cubic-bezier(.2,.7,.3,1) .2s both}
.hero-image{animation:portrait-spotlight 1.5s cubic-bezier(.2,.7,.3,1) .65s both}
.signature{display:block;width:220px;height:77px;margin:8px 0 18px;overflow:visible;transform:rotate(-6deg)}
.signature path{stroke-dasharray:1;stroke-dashoffset:1;animation:sign-stroke .45s ease-out forwards;animation-delay:calc(1.1s + var(--stroke)*.24s)}
.signature path:last-child{animation-duration:.65s}
.hero-copy p{margin-bottom:2px}
.video-dialog{overflow-x:hidden;transform-origin:top left}
.video-dialog.is-morphing .video-frame iframe{opacity:0}
.video-frame{position:relative;background:#0b090b}
.video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:2;transition:opacity .25s}
.video-poster.loaded{opacity:0}
.video-dialog.is-morphing .video-poster{opacity:1}
.video-frame iframe{position:relative;z-index:1;display:block}
.replay-opening{font:inherit;font-size:12px;color:var(--muted);border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:0;margin-right:24px}
.replay-opening:disabled{opacity:.5;cursor:default}
.motion-paused .opening-light{display:none}
.motion-paused .signature path{animation:none;stroke-dashoffset:0}
.motion-paused .video-poster{transition:none}
@keyframes spotlight-pass{0%{opacity:0;transform:translateX(-38%) rotate(-22deg)}20%{opacity:1}70%{opacity:.8}100%{opacity:0;transform:translateX(38%) rotate(18deg)}}
@keyframes portrait-spotlight{0%{opacity:0;filter:brightness(.25);transform:translateY(20px) rotate(0deg);clip-path:inset(0 100% 0 0 round 180px 180px 8px 8px)}55%{opacity:1;filter:brightness(1.12)}100%{opacity:1;filter:brightness(1);transform:rotate(3deg);clip-path:inset(0 0 0 0 round 180px 180px 8px 8px)}}
@keyframes sign-stroke{to{stroke-dashoffset:0}}
@media(max-width:760px){.signature{width:190px;height:66px;margin-bottom:20px}.hero-bottom{flex-wrap:wrap;gap:15px}.hero-bottom>span:first-child{width:100%}.replay-opening{margin-right:0}.opening-light{inset:-15% -100%}}
@media(prefers-reduced-motion:reduce){.opening-light{display:none}.signature path{stroke-dashoffset:0}.hero-image{filter:none;clip-path:none}.video-poster{transition:none}}
/* Keep the angled ticker inside the viewport when the dialog locks scrolling. */
html{overflow-x:clip}
/* Full-name identity retains the stage-inspired motion and palette. */
#hero-title{font-size:clamp(60px,7.4vw,118px);line-height:1.07;letter-spacing:-.055em}
#hero-title em{display:inline-block;font-size:.68em;white-space:nowrap}
#hero-title .asterisk{font-size:.36em;margin:10px 0 0 12px}
.performer-roles{letter-spacing:2px;text-transform:uppercase;font-size:14px!important}
@media(max-width:760px){#hero-title{font-size:clamp(60px,14vw,105px)}#hero-title .asterisk{margin-left:10px}.performer-roles{letter-spacing:1.3px}}
.commercial-cover{display:flex;flex-direction:column;justify-content:center;gap:12px;aspect-ratio:16/9;padding:24px 60px 24px 24px;text-align:left;background:#241b27;color:#fff}.commercial-cover>span{font-size:12px;letter-spacing:2px;color:#ff9d49}.commercial-cover strong{font-size:clamp(17px,1.7vw,27px);line-height:1.15;letter-spacing:-.5px}.commercial-cover small{font-size:12px;color:#d0c6cd}.card-media:has(.commercial-cover) .card-play{left:auto;right:14px;top:auto;bottom:34px;transform:none;width:38px;height:38px}.ispot-frame{aspect-ratio:auto;height:auto;padding-top:56.25%;padding-bottom:40px}.ispot-frame iframe{position:absolute;inset:0;width:100%;height:100%}.ispot-frame .commercial-cover{aspect-ratio:auto}.ispot-frame .video-poster{height:100%}
/* Vector icons avoid platform-specific emoji fonts and colors. */
.ui-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0;pointer-events:none;letter-spacing:normal}
.play .ui-icon,.card-play .ui-icon{width:20px;height:20px;margin-left:2px}.close-video .ui-icon{width:20px;height:20px}.asterisk .ui-icon{display:block}.ticker .ui-icon{width:24px;height:24px}.brand .ui-icon{width:1em;height:1em}.pill .ui-icon,.contact-link .ui-icon{width:20px;height:20px}

/* Film spotlight and linked, accurately attributed recognition. */
.hero-feature{min-width:0;padding:30px 0}.film-spotlight{height:auto;aspect-ratio:16/10;border-radius:20px;transform:none;animation:entrance 1.2s .3s both}.film-spotlight img{object-fit:cover;filter:none}.film-spotlight:after{background:linear-gradient(transparent 35%,#151015ee)}.film-spotlight .image-label{left:24px;right:24px;bottom:20px}.film-spotlight .image-label b{font-size:clamp(23px,2.4vw,36px);line-height:1.15}.film-credit{font-size:14px;color:var(--paper);margin:18px 0 16px}.film-credit>span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.film-honors{display:grid;grid-template-columns:1fr 1fr;gap:10px}.film-honors a{padding:14px;border:1px solid #ffffff26;border-radius:8px;transition:border-color .2s,background .2s}.film-honors a:hover{border-color:var(--pink);background:#ed43840c}.film-honors small{display:block;font-size:9px;letter-spacing:1px;color:#ff88b5;line-height:1.5}.film-honors strong{display:block;font-size:15px;font-weight:500;margin:5px 0}.film-honors span{display:block;font-size:11px;color:var(--muted);line-height:1.5}.film-honors .cast-honor{grid-column:1/-1}.cast-honor strong{display:inline-block;margin-right:10px}.cast-honor span{display:inline-block}@media(max-width:760px){.hero-feature{padding:0}.film-spotlight{margin:0;width:100%;height:auto}.film-honors strong{font-size:14px}.hero-grid{gap:28px}.film-spotlight .image-label{left:18px;right:18px;bottom:16px}}
.film-spotlight:after{background:linear-gradient(transparent 30%,#15101555 55%,#151015 100%)}

.personal-recognition{border-left:2px solid var(--pink);padding:4px 0 4px 20px;margin:30px 0}.personal-recognition .eyebrow{color:#ff88b5;font-size:10px}.personal-recognition h3{font-size:25px;font-weight:500;margin:10px 0 0}.personal-recognition p{font-size:14px;margin:4px 0 0}

/* Reduce background rendering work while third-party video is playing. */
.modal-open main *,.modal-open header *,.modal-open footer *{animation-play-state:paused!important}
.video-dialog::backdrop{backdrop-filter:none;background:#0c080cf5}
.film-spotlight .play{top:65%}
.card-media[data-video="PtTsR3SLypg"] .card-play{top:70%}
.film-spotlight img{object-position:center 35%}
/* Keep the featured film secondary to Ashlyn's name on wide screens. */
.hero-feature{width:100%;max-width:620px;justify-self:center}
.film-spotlight{aspect-ratio:16/9}
.film-spotlight .image-label b{font-size:clamp(23px,2vw,30px)}
.film-credit{margin:14px 0}
.film-honors{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #ffffff26;padding-top:12px}
.film-honors a{border:0;border-radius:0;padding:0 12px;border-left:1px solid #ffffff26}
.film-honors a:first-child{padding-left:0;border-left:0}
.film-honors a:last-child{padding-right:0}
.film-honors .cast-honor{grid-column:auto}
.film-honors strong,.cast-honor strong{display:block;font-size:13px;line-height:1.4;margin:6px 0}
.film-honors small{font-size:9px;letter-spacing:.5px}
.film-honors span,.cast-honor span{display:block;font-size:10px;line-height:1.5}
@media(min-width:761px){.hero-grid{grid-template-columns:1.15fr 1fr;gap:45px}.hero-feature{width:90%}}
@media(max-width:1000px) and (min-width:761px){.hero-feature{width:100%}.film-honors{grid-template-columns:1fr}.film-honors a{border-left:0;padding:8px 0;border-bottom:1px solid #ffffff15}.film-honors strong{display:inline-block;margin:3px 8px 3px 0}}
@media(max-width:440px){.film-honors{grid-template-columns:1fr}.film-honors a{border-left:0;padding:9px 0;border-bottom:1px solid #ffffff15}.film-honors strong{display:inline-block;margin:3px 8px 3px 0}.film-honors span{display:inline}}
/* Performance context and quiet navigation inside the player. */
.dialog-top{align-items:flex-start;border-bottom:1px solid #ed438470;padding-bottom:18px}
.video-category{display:block;color:#ff88b5;text-transform:uppercase;letter-spacing:1.6px;font-size:10px;margin-bottom:8px}
.video-dialog .video-context{font-size:13px;color:var(--muted);margin:8px 0 0;line-height:1.5}
.video-dialog .video-award{font-size:11px;color:#ff88b5;margin:8px 0 0}
.video-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:20px;font-size:13px}
.video-navigation{display:flex;gap:10px}.video-navigation button{border:1px solid #ffffff35;color:var(--paper);background:transparent;border-radius:24px;padding:10px 14px;cursor:pointer;font-size:12px}.video-navigation button:hover:not(:disabled){border-color:var(--pink)}.video-navigation button:disabled{opacity:.35;cursor:default}.video-footer>a{white-space:nowrap}
@media(max-width:600px){.video-footer{align-items:flex-start;flex-direction:column;gap:16px}.video-navigation{width:100%;justify-content:space-between}.dialog-top h2{font-size:24px}.video-dialog .video-context{font-size:12px}}
@media(min-width:761px){.video-dialog{width:min(1000px,94vw,calc((94dvh - 260px)*1.7778 + 48px));min-width:360px}}
/* Selected credits and training, designed for quick casting review. */
.performer-details{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;margin-top:36px}.performer-details h3{font-size:20px;font-weight:500;margin:0 0 18px}.credit-list,.training-list{margin:0}.credit-list>div{border-top:1px solid #ffffff20;padding:12px 0}.credit-list dt{font-size:15px;font-weight:600}.credit-list dd{margin:5px 0 0;font-size:14px;color:var(--muted);line-height:1.5}.credit-list dd span{display:block;font-size:12px;margin-top:3px}.training-list>div{margin-bottom:18px}.training-list dt{font-size:12px;color:#ff88b5;letter-spacing:1px;text-transform:uppercase}.training-list dd{margin:6px 0 0;font-size:14px;line-height:1.7;color:var(--muted)}.skill-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0}.skill-tags li{font-size:12px;padding:7px 12px;border:1px solid #ffffff30;border-radius:20px}.about>div>p em{font-style:italic;color:inherit}
@media(max-width:1000px){.performer-details{grid-template-columns:1fr;gap:28px}}
.headshot-panel{min-width:0}.headshot-panel>.eyebrow{display:block;margin-bottom:26px}.headshot-panel>img{display:block;width:100%;max-width:300px;height:auto;border-radius:12px}.resume-download{margin-top:22px;font-size:13px;gap:24px}.resume-download span{font-size:10px;color:var(--muted);letter-spacing:1px}.headshot-download{display:block;font-size:12px;color:var(--muted);margin-top:16px;text-decoration:underline;text-underline-offset:4px}.about{grid-template-columns:minmax(230px,1fr) 2fr;gap:60px}@media(max-width:760px){.about{grid-template-columns:1fr;gap:36px}.headshot-panel>img{max-width:260px}}
.headshot-panel>img{aspect-ratio:4/5;object-fit:cover;object-position:center 20%}
/* Two identical viewport-filling groups make the marquee loop seamless. */
.ticker>.ticker-track{display:flex;width:max-content;animation:marquee 70s linear infinite}
.ticker-group{display:flex;flex:0 0 auto;min-width:100vw;justify-content:space-around;align-items:center}
.ticker-item{display:flex;flex:0 0 auto;align-items:center;gap:30px;padding-right:30px;white-space:nowrap}
