@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');:root{--ink:#1b1c1a;--cream:#f1eee7;--soft:#dad5cb;--gold:#c4ac89}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:82px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.skip{position:absolute;left:-999px;top:10px;background:white;padding:10px;z-index:20}.skip:focus{left:10px}.site-header{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:27px clamp(22px,5vw,84px);color:#fff;border-bottom:1px solid #ffffff35}.brand{font-weight:700;letter-spacing:.2em;font-size:17px;line-height:1.25}.brand span{display:block;letter-spacing:.36em;font-size:9px;font-weight:500;margin-top:7px}.site-header nav{display:flex;gap:38px}.site-header nav a{font-size:11px;letter-spacing:.16em;text-transform:uppercase}.site-header nav a:hover,.contact-links a:hover{color:var(--gold)}.menu-toggle{display:none}.hero{position:relative;min-height:760px;height:100svh;max-height:1050px;background:#232521;color:#fff;overflow:hidden}.hero-image{position:absolute;inset:0 0 0 38%;background-image:url('assets/suit.webp');background-size:cover;background-position:center 23%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#161918 0%,#161918 30%,#161918d4 43%,#16191814 78%),linear-gradient(0deg,#1119 0%,transparent 28%)}.hero-content{position:absolute;left:clamp(22px,9vw,155px);top:50%;transform:translateY(-42%);max-width:850px}.eyebrow,.section-kicker{font-size:11px;letter-spacing:.25em;font-weight:700}.eyebrow{color:#e2d0b8}.hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(75px,11.2vw,175px);line-height:.95;font-weight:400;letter-spacing:-.055em;margin:30px 0 24px}.hero-subtitle{font-size:12px;letter-spacing:.26em}.hero-subtitle span{color:var(--gold);padding:0 7px}.hero-actions{display:flex;gap:12px;margin-top:43px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:17px 22px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-light{background:var(--cream);color:var(--ink)}.btn-outline{border:1px solid #fff9;color:#fff}.btn-dark{background:var(--ink);color:#fff}.scroll-hint{position:absolute;bottom:40px;left:clamp(22px,9vw,155px);font-size:10px;letter-spacing:.2em}.scroll-hint span{margin-left:22px}.section{padding:110px clamp(22px,8vw,135px)}.intro{display:grid;grid-template-columns:1fr 2fr;gap:35px;align-items:start}.intro .section-kicker{padding-top:22px}.intro h2,.section h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(45px,5.3vw,82px);font-weight:400;line-height:1.08;letter-spacing:-.04em;margin:0}.intro h2 em{font-weight:400;color:#867d70}.intro p{font-size:clamp(16px,1.55vw,21px);line-height:1.8;max-width:820px;margin:36px 0 0;color:#45443e}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:43px}.section-heading h2{margin-top:22px}.muted{font-size:10px;letter-spacing:.18em;color:#777168}.reel-section{background:#1c1e1c;color:#f5f2eb}.reel-section .muted{color:#aaa69e}.video-wrap{background:#090909;aspect-ratio:16/9;max-height:780px}.video-wrap video{display:block;width:100%;height:100%;object-fit:contain}.reel-note{display:flex;justify-content:space-between;gap:15px;color:#b8b4ad;font-size:12px;letter-spacing:.04em;margin-top:21px}.reel-note a{text-decoration:underline;text-underline-offset:4px}.shots-section{background:#e8e4dc}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.shot{border:0;padding:0;cursor:zoom-in;overflow:hidden;background:#bbb;aspect-ratio:3/4}.shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}.shot:hover img{transform:scale(1.04)}.resume-section{background:#f6f4ef}.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,8vw,120px);margin-top:55px}.resume-grid h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:28px;margin:0 0 26px}.credit{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #d9d5ce;padding:17px 0;font-size:14px}.credit span:last-child{color:#827c72;font-size:12px;text-align:right}.more-heading{margin-top:50px!important}.resume-copy{color:#69645d;line-height:1.8}.resume-view{display:inline-flex;justify-content:space-between;gap:60px;border-bottom:1px solid var(--ink);padding:16px 0;margin-top:38px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.contact-section{background:#292c29;color:#f3efe6;min-height:500px}.contact-section h2{margin:24px 0}.contact-section p:not(.section-kicker){color:#c9c7c0;line-height:1.9}.contact-email{display:inline-flex;align-items:center;gap:30px;font-family:'Playfair Display',Georgia,serif;font-size:clamp(28px,5vw,70px);margin-top:30px;border-bottom:1px solid #a6a098;padding-bottom:12px}.contact-email:hover{color:var(--gold)}.contact-links{display:flex;gap:35px;flex-wrap:wrap;margin-top:45px;font-size:12px;letter-spacing:.1em}footer{display:flex;justify-content:space-between;gap:20px;background:#171918;color:#b4b3ae;padding:27px clamp(22px,8vw,135px);font-size:10px;letter-spacing:.16em}dialog{border:0;padding:20px;background:#181918;color:white;max-width:min(94vw,850px);max-height:95vh}dialog::backdrop{background:#000d}dialog img{display:block;max-width:100%;max-height:80vh;object-fit:contain}.close-lightbox{position:absolute;right:15px;top:12px;background:#fff;border:0;border-radius:50%;width:36px;height:36px;font-size:26px;cursor:pointer}.image-open{display:block;text-align:center;padding-top:12px;font-size:12px}@media(max-width:850px){.site-header{padding:20px 22px}.site-header nav{gap:18px}.hero-image{inset:0 0 0 22%}.hero-shade{background:linear-gradient(90deg,#161918e8 0%,#161918bb 34%,#16191845 85%),linear-gradient(0deg,#1119,transparent 40%)}.intro{grid-template-columns:1fr;gap:20px}.intro .section-kicker{padding:0}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-grid{gap:30px}}@media(max-width:600px){.menu-toggle{display:flex;gap:10px;background:transparent;border:1px solid #fff6;color:#fff;padding:10px;font-size:10px;letter-spacing:.15em}.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;background:#1b1c1a;flex-direction:column;padding:24px;gap:25px}.site-header nav.open{display:flex}.hero{min-height:680px;height:90svh}.hero-image{inset:0;background-position:58% center;opacity:.8}.hero-shade{background:linear-gradient(90deg,#121514dc,#12151455),linear-gradient(0deg,#121514b8,transparent 70%)}.hero-content{left:25px;right:18px;top:57%}.hero h1{font-size:clamp(67px,16vw,110px)}.hero-subtitle{font-size:10px;line-height:2;letter-spacing:.12em}.hero-actions{gap:8px}.btn{padding:15px 13px;gap:10px;font-size:10px}.section{padding:75px 22px}.section-heading{align-items:start;flex-direction:column}.intro p{font-size:17px}.reel-note{flex-direction:column}.resume-grid{grid-template-columns:1fr}.contact-email{font-size:clamp(25px,7vw,42px)}.contact-links{gap:20px}footer{padding:25px 22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Actual-photo editorial gallery */
.hero-image{background-image:url('assets/cardigan.webp')}
.gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense}
.gallery .shot{aspect-ratio:3/4}
.gallery .shot-feature{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
@media(max-width:600px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery .shot-feature{grid-column:span 2;grid-row:span 1;aspect-ratio:1.25}}

/* V3: cleaner contemporary typography, restrained headings, and careful headshot crops */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
body{font-family:'Inter',Arial,sans-serif}
.hero h1,.intro h2,.section h2,.resume-grid h3,.contact-email{font-family:'Inter',Arial,sans-serif;font-style:normal;letter-spacing:-.045em}
.hero h1{font-size:clamp(66px,10vw,145px);font-weight:500;letter-spacing:-.06em}
.section h2{font-weight:500;font-size:clamp(38px,4.6vw,65px)}
.resume-grid h3{font-size:23px;font-weight:600;letter-spacing:-.03em}
.hero-image{background-image:url('assets/suit.webp');background-position:center 24%}
.brand{font-size:20px;letter-spacing:.08em}
.gallery .shot img{object-position:center 20%}
.gallery .shot[data-photo="plaid"] img{object-position:center 27%}
.gallery .shot[data-photo="tank"] img{object-position:center 35%}
.gallery .shot[data-photo="cardigan"] img{object-position:center 24%}
.gallery .shot[data-photo="suit"] img{object-position:center 18%}
.gallery .shot[data-photo="coat"] img{object-position:center 22%}
@media(max-width:600px){.hero-image{background-position:61% 20%}.hero h1{font-size:clamp(64px,15vw,96px)}.gallery .shot[data-photo="tank"] img{object-position:center 35%}}

.contact-form{max-width:720px;margin-top:35px;display:grid;gap:20px}.contact-form label{display:grid;gap:9px;font-size:12px;letter-spacing:.05em;color:#f2eee6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form input,.contact-form textarea{width:100%;background:#f6f4ef;color:#171918;border:1px solid #a9aaa4;border-radius:2px;padding:14px 15px;font:inherit;font-size:16px;letter-spacing:normal}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #c4ac89;outline-offset:2px}.contact-form .btn{cursor:pointer;justify-self:start;border:0}.contact-form .form-note{font-size:12px;color:#bdbbb4;margin:0}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}@media(max-width:600px){.form-row{grid-template-columns:1fr}}

/* V11: asymmetric editorial photo grid, thoughtful crops and centered final portrait */
.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(9px,1.4vw,18px);align-items:stretch}
.gallery .shot{min-width:0;aspect-ratio:4/5}
.gallery .shot-feature{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gallery .shot[data-photo="tank"] img{object-position:center 29%}
.gallery .shot[data-photo="polo"] img{object-position:center 13%}
.gallery .shot[data-photo="blue-sweater"] img{object-position:center 18%}
.gallery .shot[data-photo="leather"] img{object-position:center 20%}
@media(max-width:600px){
.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gallery .shot{aspect-ratio:4/5}
.gallery .shot-feature{grid-column:span 2;grid-row:span 1;aspect-ratio:1.16}
.gallery .shot[data-photo="polo"]{grid-column:1/-1;width:min(74%,320px);justify-self:center;aspect-ratio:4/5}
.gallery .shot[data-photo="polo"] img{object-position:center 13%}
}

/* Version 12: updated blue polo portrait; preserve upper body and center on mobile */
.gallery .shot[data-photo="polo"] img{object-position:center 25%}
@media(max-width:600px){.gallery .shot[data-photo="polo"]{grid-column:1/-1;justify-self:center;width:min(82%,350px);aspect-ratio:4/5}.gallery .shot[data-photo="polo"] img{object-position:center 23%}}

/* V13: display the exact user-provided blue polo portrait without any crop. */
.gallery .shot[data-photo="polo"]{aspect-ratio:1022/1536;grid-column:2 / span 2;justify-self:center;width:min(100%,420px)}
.gallery .shot[data-photo="polo"] img{width:100%;height:100%;object-fit:contain;object-position:center;transform:none}
.gallery .shot[data-photo="polo"]:hover img{transform:none}
@media(max-width:600px){.gallery .shot[data-photo="polo"]{grid-column:1/-1;width:min(82%,350px);aspect-ratio:1022/1536}}

/* V14: supplied JPEG used verbatim; no zoom, clipping, or re-cropping. */
.gallery .shot[data-photo="polo"]{overflow:visible;background:transparent;aspect-ratio:1022/1536}
.gallery .shot[data-photo="polo"] img{display:block;width:100%;height:auto;aspect-ratio:1022/1536;object-fit:contain;object-position:center;transform:none!important}

/* V15: center original-crop blue polo above coat and leather portraits. */
.gallery{grid-auto-flow:row}
.gallery .shot[data-photo="polo"]{grid-column:2 / span 2;grid-row:auto;justify-self:center}
@media(max-width:600px){.gallery .shot[data-photo="polo"]{grid-column:1/-1;grid-row:auto;justify-self:center}}

/* Theater role and venue on separate lines, right aligned. */
.credit .theater-detail{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;min-width:0}.credit .theater-detail span{display:block;color:#827c72;font-size:12px;line-height:1.35}

.resume-union{margin:12px 0 0;font-size:12px;font-weight:650;letter-spacing:.13em;color:#777268}.resume-union span{padding:0 5px;color:#aaa399}

/* Place union status directly beneath the résumé PDF button. */
.resume-download{display:flex;flex-direction:column;align-items:center;gap:0}.resume-download .resume-union{margin:12px 0 0;text-align:center}
@media(max-width:600px){.resume-download{align-items:flex-start}}

/* Union/location moved to the bottom of the opening hero. */
.hero-bottom-union{position:absolute;right:clamp(22px,5vw,84px);bottom:35px;margin:0;color:#e2d0b8;font-size:11px;font-weight:700;letter-spacing:.2em;text-align:right;z-index:2}
@media(max-width:600px){.hero-bottom-union{right:22px;bottom:75px;font-size:9px;letter-spacing:.13em}}

/* Compact casting details beneath the résumé heading. */
.actor-details{display:flex;flex-wrap:wrap;gap:14px 28px;margin:8px 0 34px;padding:16px 0;border-top:1px solid #ded9cf;border-bottom:1px solid #ded9cf;font-size:13px;color:#383630}.actor-details span{white-space:nowrap}.actor-details strong{font-size:10px;letter-spacing:.12em;color:#827c72;margin-right:7px}@media(max-width:600px){.actor-details{gap:12px 20px}.actor-details span{flex-basis:calc(50% - 12px);white-space:normal}}
/* Center union and location line along the bottom of the hero. */
.hero-bottom-union{left:18px;right:18px;text-align:center}
@media(max-width:600px){.hero-bottom-union{left:16px;right:16px;text-align:center}}

.reel-secondary{margin-top:2.5rem;}

/* V42: deliberate portrait sequencing, with centered solo features. */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:clamp(12px,2vw,26px);align-items:start}
.gallery .shot,.gallery .shot-feature{grid-column:auto;grid-row:auto;width:100%;aspect-ratio:4/5;justify-self:stretch}
.gallery .shot[data-photo="cardigan"]{grid-column:1/-1;width:min(76%,670px);justify-self:center;aspect-ratio:4/5}
.gallery .shot[data-photo="polo"]{grid-column:1/-1;grid-row:auto;width:min(60%,420px);justify-self:center;aspect-ratio:1022/1536;overflow:visible;background:transparent}
.gallery .shot[data-photo="polo"] img{display:block;width:100%;height:auto;aspect-ratio:1022/1536;object-fit:contain;transform:none!important}
@media(max-width:600px){
.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.gallery .shot,.gallery .shot-feature{grid-column:auto;grid-row:auto;aspect-ratio:4/5}
.gallery .shot[data-photo="cardigan"]{grid-column:1/-1;width:min(90%,450px);aspect-ratio:4/5}
.gallery .shot[data-photo="polo"]{grid-column:1/-1;width:min(82%,350px);aspect-ratio:1022/1536}
}

/* V44: plaid + cardigan, centered polo, blue sweater + pea coat, centered suit, leather + tank. */
.gallery .shot[data-photo="cardigan"]{grid-column:auto;width:100%;justify-self:stretch;aspect-ratio:4/5}
.gallery .shot[data-photo="suit"]{grid-column:1/-1;width:min(76%,670px);justify-self:center;aspect-ratio:4/5}
@media(max-width:600px){.gallery .shot[data-photo="cardigan"]{grid-column:auto;width:100%;aspect-ratio:4/5}.gallery .shot[data-photo="suit"]{grid-column:1/-1;width:min(90%,450px);aspect-ratio:4/5}}

/* Dual citizenship and work authorization */
.actor-work-auth{display:flex;flex-direction:column;gap:6px;margin:12px 0 24px;font-size:13px;line-height:1.5;letter-spacing:.01em}.actor-work-auth strong{font-size:10px;letter-spacing:.12em}.actor-work-auth span{font-size:14px}@media(min-width:760px){.actor-work-auth{align-items:center;text-align:center}}

/* Separate citizenship detail within the introduction */
.bio-work-auth{margin-top:34px;padding-top:22px;border-top:1px solid #d6d0c6}.bio-work-auth h3{margin:0;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#777168}.intro .bio-work-auth p{font-size:15px;line-height:1.6;margin:9px 0 0;color:#45443e}

/* V47: modern, refined hero wordmark */
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700&display=swap");
.hero h1{font-family:"Manrope","Inter",Arial,sans-serif;font-weight:600;letter-spacing:-.065em;line-height:.97;font-size:clamp(64px,9.2vw,140px)}
@media(max-width:600px){.hero h1{font-size:clamp(59px,14vw,100px);letter-spacing:-.065em}}

/* Keep the résumé heading, union status and credits visually connected. */
.resume-section .section-heading{margin-bottom:20px}
.resume-section .resume-grid{margin-top:12px}
.resume-download .resume-union{margin-top:7px}
@media(max-width:600px){.resume-section .section-heading{gap:14px;margin-bottom:18px}.resume-section .resume-grid{margin-top:8px}}

/* V53: tighten the headshot introduction and balance the opening hero. */
.shots-section .section-heading{margin-bottom:14px}
.shots-section .actor-details{margin-top:0;margin-bottom:24px;padding:13px 0}
.hero-content{transform:translateY(-48%)}
.hero h1{margin:0 0 18px}
.hero-subtitle{margin:0;line-height:1.6}
.hero-actions{margin-top:26px}
@media(max-width:600px){
 .hero-content{top:54%;transform:translateY(-43%)}
 .hero h1{margin:0 0 14px}
 .hero-actions{margin-top:22px}
 .shots-section .section-heading{margin-bottom:12px}
 .shots-section .actor-details{margin-bottom:19px;padding:12px 0}
}

/* v54: Position homepage introduction immediately above union/location line. */
.hero-content{top:auto;bottom:105px;transform:none}
@media(max-width:600px){
  .hero-content{top:auto;bottom:132px;transform:none}
  .hero{min-height:720px}
}
