:root{--royal: #17224f;--royal-mid: #223a82;--royal-deep: #0c1330;--accent-blue: #4a6fdc;--ivory: #f2ede1;--brass: #c9a866;--brass-bright: #e8cf94;--line: rgba(201,168,102,0.32);--display: 'Fraunces',serif;--body: 'Spectral',serif;--mono: 'IBM Plex Mono',monospace}*{box-sizing: border-box}html{scroll-behavior: smooth}body{margin: 0;background: var(--royal);color: var(--ivory);font-family: var(--body);font-size: 18px;line-height: 1.6;-webkit-font-smoothing: antialiased}a{color: inherit;text-decoration: none}.hidden{display: none}img{max-width: 100%;display: block}.proscenium-rule{position: relative;height: 2px;background: linear-gradient(90deg,transparent,var(--brass) 18%,var(--brass) 82%,transparent);opacity: 0.8}.proscenium-rule::after{content: '';position: absolute;top: -3px;left: 50%;width: 8px;height: 8px;background: var(--brass);transform: translateX(-50%) rotate(45deg)}.portrait-frame{aspect-ratio: 1 / 1;overflow: hidden;border: 1px solid var(--line);max-width: 300px;margin-left: 0;margin-right: 0}.portrait-frame img{width: 100%;height: 100%;object-fit: cover;object-position: center 20%;display: block}.site-header{position: sticky;top: 0;z-index: 50;background: var(--royal-mid);border-bottom: 1px solid var(--line)}.header-inner{max-width: 1100px;margin: 0 auto;padding: 1.1rem 1.5rem 0.9rem;display: flex;align-items: baseline;justify-content: space-between;flex-wrap: wrap;gap: 0.5rem 1.5rem}.brand{font-family: var(--display);font-weight: 600;font-size: 1.55rem;letter-spacing: 0.01em}.brand .role{display: block;font-family: var(--mono);font-size: 0.68rem;letter-spacing: 0.22em;text-transform: uppercase;color: var(--brass);margin-top: 0.15rem}nav.primary-nav{display: flex;gap: 1.6rem;flex-wrap: wrap}nav.primary-nav a{position: relative;font-family: var(--mono);font-size: 0.78rem;letter-spacing: 0.14em;text-transform: uppercase;color: var(--ivory);opacity: 0.75;padding-bottom: 6px;transition: opacity 0.2s ease}nav.primary-nav a:hover,nav.primary-nav a[aria-current='page']{opacity: 1}nav.primary-nav a::after{content: '';position: absolute;left: 0;right: 0;bottom: 0;height: 3px;border-radius: 2px;background: var(--brass);transform: scaleX(0);transform-origin: center;transition: transform 0.35s ease-in-out}nav.primary-nav a:hover::after{transform: scaleX(1)}nav.primary-nav a[aria-current='page']::after{transform: scaleX(1);animation: nav-underline 0.5s ease-in-out both}@keyframes nav-underline{from{transform: scaleX(0)}to{transform: scaleX(1)}}@media (prefers-reduced-motion: reduce){nav.primary-nav a::after{transition: none}nav.primary-nav a[aria-current='page']::after{animation: none}nav.primary-nav a[aria-current='page']::after,nav.primary-nav a:hover::after{transform: scaleX(1)}}.nav-toggle{display: none}.wrap{max-width: 1100px;margin: 0 auto;padding: 3rem 1.5rem 4rem}.wrap.narrow{max-width: 1100px}.eyebrow{font-family: var(--mono);font-size: 0.72rem;letter-spacing: 0.2em;text-transform: uppercase;color: var(--brass);margin: 0 0 0.9rem}h1{font-family: var(--display);font-weight: 500;font-size: clamp(2.4rem,5vw,3.6rem);line-height: 1.05;margin: 0 0 0.6rem}h1 em,.quote-title em{font-style: italic;font-weight: 400;color: var(--brass-bright)}h2{font-family: var(--display);font-weight: 500;font-size: clamp(1.5rem,3vw,2rem);margin: 0 0 1rem}p{margin: 0 0 1.1rem}p.lede{font-size: 1.15rem;color: rgba(242,237,225,0.92)}.footnote{margin-top: 2.5rem;font-size: 0.95rem;color: rgba(242,237,225,0.75)}.footnote a{border-bottom: 1px solid var(--line)}.contact-line{font-family: var(--mono);font-size: 0.85rem;color: rgba(242,237,225,0.85)}.contact-line a{border-bottom: 1px solid var(--line)}hr.gold{border: none;border-top: 1px solid var(--line);margin: 2.5rem 0}@media (min-width: 768px){body.home{min-height: 100vh;display: flex;flex-direction: column}body.home .hero{flex: 1 1 auto}}.hero{position: relative;min-height: 60vh;display: grid;grid-template-columns: 1fr 1fr}.hero-media{position: relative;overflow: hidden}.hero-media img{width: 100%;height: 100%;object-fit: cover;object-position: center 20%;filter: saturate(0.9) contrast(1.03)}.hero-panel{background: var(--royal);display: flex;flex-direction: column;justify-content: center;padding: 5rem 4rem;border-left: 1px solid var(--line)}.hero-role{font-family: var(--mono);font-size: 0.78rem;letter-spacing: 0.22em;text-transform: uppercase;color: var(--brass);margin: 0 0 1rem}.hero-name{font-family: var(--display);font-weight: 500;font-size: clamp(2.6rem,5vw,4.4rem);line-height: 1.02;margin: 0 0 2rem;letter-spacing: 0.01em}.hero-review{margin: 0;max-width: 30rem;padding-left: 1.4rem;border-left: 3px solid var(--brass)}.hero-review p{font-family: var(--display);font-style: italic;font-weight: 400;font-size: clamp(1.15rem,2vw,1.5rem);line-height: 1.4;margin: 0 0 0.9rem;color: var(--ivory)}.hero-review cite{display: block;font-family: var(--mono);font-style: normal;font-size: 0.76rem;letter-spacing: 0.14em;text-transform: uppercase;color: var(--brass-bright)}@media (max-width: 1023px){body.home{min-height: 100vh;min-height: 100dvh;display: flex;flex-direction: column}body.home .hero{flex: 1 1 auto}.hero{grid-template-columns: 1fr;grid-template-rows: 1fr auto;min-height: 0}.hero-media{height: 100%;min-height: 0}.hero-panel{padding: 64px 1.5rem;border-left: none;border-top: 1px solid var(--line)}.hero-role{display: none}.hero-name{font-size: clamp(1.9rem,9vw,2.6rem);margin: 0 0 0.9rem}.hero-review{padding-left: 1rem}.hero-review p{font-size: clamp(0.98rem,3.6vw,1.1rem);line-height: 1.35;margin: 0 0 0.6rem}.hero-review cite{font-size: 0.68rem}}.hero-quote blockquote{margin: 0;font-family: var(--display);font-style: italic;font-weight: 400;font-size: clamp(1.6rem,4vw,2.6rem);line-height: 1.18;max-width: 820px}.hero-quote cite{display: block;margin-top: 0.9rem;font-family: var(--mono);font-style: normal;font-size: 0.78rem;letter-spacing: 0.14em;text-transform: uppercase;color: var(--brass)}.bio-grid{display: grid;grid-template-columns: 300px 1fr;gap: 3rem;align-items: start}.bio-grid .bio-sticky{position: sticky;top: 7.5rem}.bio-grid .bio-sticky figure{margin: 0}.photo-credit{font-family: var(--mono);font-size: 0.7rem;letter-spacing: 0.1em;color: var(--brass);text-transform: uppercase;margin: 0.6rem 0 1.1rem}@media (max-width: 767px){.bio-grid{grid-template-columns: 1fr}.bio-grid .bio-sticky{position: static;max-width: 260px}}.press-quote{padding: 1.6rem 0;border-bottom: 1px solid var(--line)}.press-quote p{font-family: var(--display);font-style: italic;font-size: 1.2rem;margin: 0 0 0.7rem}.press-quote footer{font-family: var(--mono);font-size: 0.75rem;letter-spacing: 0.08em;text-transform: uppercase;color: var(--brass)}.press-quote footer span{opacity: 0.65;text-transform: none;letter-spacing: 0;margin-left: 0.4em;font-family: var(--body);font-style: italic}blockquote.pull-quote{margin: 2.2rem 0;padding: 0 0 0 1.4rem;border-left: 3px solid var(--brass)}blockquote.pull-quote p{font-family: var(--display);font-style: italic;font-size: 1.4rem;line-height: 1.3;color: var(--brass-bright);margin: 0 0 0.5rem}blockquote.pull-quote cite{font-family: var(--mono);font-size: 0.72rem;letter-spacing: 0.1em;text-transform: uppercase;color: var(--brass);font-style: normal}.program-row{display: grid;grid-template-columns: 4.5rem 1fr auto;gap: 1rem;align-items: baseline;padding: 0.85rem 0;border-bottom: 1px solid var(--line)}.program-row:first-child{border-top: 1px solid var(--line)}.program-row .yr{font-family: var(--mono);color: var(--brass);font-size: 0.85rem}.program-row .role{font-family: var(--display);font-size: 1.05rem}.program-row .company{font-family: var(--mono);font-size: 0.78rem;opacity: 0.7;text-align: right}@media (max-width: 640px){.program-row{grid-template-columns: 1fr;gap: 0.2rem;padding: 1rem 0}.program-row .company{text-align: left;opacity: 0.6}}.resume-section-title{font-family: var(--mono);font-size: 0.75rem;letter-spacing: 0.18em;text-transform: uppercase;color: var(--brass);margin: 2.6rem 0 0.5rem}.pill-list{display: flex;flex-wrap: wrap;gap: 0.6rem;padding: 0;list-style: none;margin: 0.5rem 0 0}.pill-list li{border: 1px solid var(--line);border-radius: 999px;padding: 0.35rem 0.9rem;font-family: var(--mono);font-size: 0.78rem}.resume-cta{display: inline-block;margin-top: 2.2rem;padding: 0.8rem 1.6rem;border: 1px solid var(--brass);color: var(--brass-bright);font-family: var(--mono);font-size: 0.78rem;letter-spacing: 0.14em;text-transform: uppercase;border-radius: 2px;transition: background 0.2s ease,color 0.2s ease}.button-row{display: flex;flex-wrap: wrap;gap: 1rem;margin-top: 2.2rem}.button-row .resume-cta{margin-top: 0}.resume-cta:hover{background: var(--brass);color: var(--royal-deep)}.schedule-row{display: grid;grid-template-columns: 7rem 1fr;gap: 1.5rem;padding: 1.8rem 0;border-bottom: 1px solid var(--line)}.schedule-date{display: flex;flex-direction: column;align-items: center;justify-content: center;text-align: center;border: 1px solid var(--line);padding: 0.8rem 0.4rem;height: fit-content}.schedule-month{font-family: var(--mono);font-size: 0.75rem;letter-spacing: 0.1em;color: var(--brass)}.schedule-day{font-family: var(--display);font-size: 1.4rem;font-weight: 500;margin: 0.15rem 0}.schedule-year{font-family: var(--mono);font-size: 0.7rem;opacity: 0.7}.schedule-details h3{font-family: var(--display);font-weight: 500;font-size: 1.3rem;margin: 0 0 0.4rem}.schedule-details h3 em{font-style: italic;font-weight: 400;color: var(--brass-bright)}.schedule-company{font-family: var(--mono);font-size: 0.8rem;letter-spacing: 0.06em;text-transform: uppercase;color: var(--brass);margin: 0 0 0.4rem}.schedule-venue{font-size: 0.95rem;opacity: 0.85;margin: 0 0 0.4rem}.schedule-times{font-family: var(--mono);font-size: 0.82rem;opacity: 0.75;margin: 0 0 1rem}@media (max-width: 640px){.schedule-row{grid-template-columns: 1fr}.schedule-date{flex-direction: row;justify-content: flex-start;gap: 0.5rem;width: fit-content;padding: 0.5rem 0.9rem}}.gallery-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(200px,1fr));gap: 0.6rem}.gallery-grid figure{margin: 0;position: relative;overflow: hidden;aspect-ratio: 3/4;background: var(--royal-deep)}.gallery-grid button.thumb{all: unset;display: block;width: 100%;height: 100%;cursor: pointer}.gallery-grid img{width: 100%;height: 100%;object-fit: cover;transition: transform 0.5s ease}.gallery-grid button.thumb:hover img,.gallery-grid button.thumb:focus-visible img{transform: scale(1.05)}.gallery-grid figure::before{content: '';position: absolute;inset: 0;background: rgba(0,0,0,0.3);opacity: 0;transition: opacity 0.2s ease;z-index: 1;pointer-events: none}.gallery-grid figure:hover::before,.gallery-grid figure:focus-within::before{opacity: 1}.gallery-grid figcaption{position: absolute;left: 0;right: 0;bottom: 0;z-index: 2;padding: 0.6rem 0.7rem;font-family: var(--mono);font-size: 0.66rem;letter-spacing: 0.05em;background: linear-gradient(0deg,rgba(12,19,48,0.92),transparent);opacity: 0;transform: translateY(4px);transition: opacity 0.2s ease,transform 0.2s ease;pointer-events: none}.gallery-grid figure:hover figcaption,.gallery-grid figure:focus-within figcaption{opacity: 1;transform: translateY(0)}@media (hover: none){.gallery-grid figcaption{opacity: 1;transform: none}.gallery-grid figure::before{opacity: 1;background: rgba(0,0,0,0.15)}}.gallery-grid figcaption .role-line{display: block;color: var(--brass-bright);font-size: 0.68rem}.gallery-grid figcaption .credit-line{display: block;opacity: 0.75;margin-top: 0.15rem}.lightbox{position: fixed;inset: 0;z-index: 100;display: none;align-items: center;justify-content: center;background: rgba(8,13,32,0.92);padding: 2rem 1rem}.lightbox.open{display: flex}.lightbox-inner{position: relative;max-width: 78vw;max-height: 90vh;display: flex;flex-direction: column;align-items: center}.lightbox-inner img{max-width: 78vw;max-height: 74vh;width: auto;border: 1px solid var(--line)}.lightbox-caption{margin-top: 1rem;text-align: center;font-family: var(--mono);font-size: 0.8rem;letter-spacing: 0.05em;color: var(--ivory)}.lightbox-caption .role-line{color: var(--brass-bright);display: block;font-size: 0.9rem;margin-bottom: 0.25rem}.lightbox-caption .credit-line{opacity: 0.7;display: block}.lightbox-close,.lightbox-prev,.lightbox-next{all: unset;position: fixed;cursor: pointer;color: var(--ivory);font-family: var(--mono);font-size: 1.1rem;letter-spacing: 0.08em;padding: 0.7rem 1rem;border: 1px solid var(--line);background: rgba(12,19,48,0.7);transition: border-color 0.2s ease,color 0.2s ease;z-index: 110}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{border-color: var(--brass);color: var(--brass-bright)}.lightbox-close{top: 60px;right: 60px}.lightbox-prev{left: 24px;top: 50%;transform: translateY(-50%)}.lightbox-next{right: 24px;top: 50%;transform: translateY(-50%)}@media (max-width: 767px){.lightbox-close{top: 16px;right: 16px;padding: 0.5rem 0.8rem}.lightbox-prev{left: 8px;padding: 0.5rem 0.7rem}.lightbox-next{right: 8px;padding: 0.5rem 0.7rem}.lightbox-inner img{max-width: 88vw}}.recording{display: grid;grid-template-columns: 1fr;gap: 0.6rem;padding: 1.6rem 0;border-bottom: 1px solid var(--line)}.recording h3{font-family: var(--display);font-weight: 500;font-size: 1.2rem;margin: 0}.recording .role-line{font-family: var(--mono);font-size: 0.78rem;color: var(--brass);text-transform: uppercase;letter-spacing: 0.08em}.embed-16x9{position: relative;width: 100%;border: 1px solid var(--line)}.embed-16x9.embed-audio{padding-top: 30%}.embed-16x9.embed-video{padding-top: 56.25%}.embed-16x9 iframe{position: absolute;inset: 0;width: 100%;height: 100%;border: 0}.contact-grid{display: grid;grid-template-columns: 1fr 1fr;gap: 3rem}@media (max-width: 767px){.contact-grid{grid-template-columns: 1fr}}form.contact-form label{display: block;font-family: var(--mono);font-size: 0.72rem;letter-spacing: 0.12em;text-transform: uppercase;color: var(--brass);margin: 1.1rem 0 0.4rem}form.contact-form input,form.contact-form textarea{width: 100%;background: transparent;border: none;border-bottom: 1px solid var(--line);color: var(--ivory);font-family: var(--body);font-size: 1rem;padding: 0.5rem 0.1rem}form.contact-form input:focus,form.contact-form textarea:focus{outline: none;border-color: var(--brass)}form.contact-form textarea{resize: vertical;min-height: 120px}form.contact-form button{margin-top: 1.8rem;padding: 0.85rem 2rem;background: var(--brass);color: var(--royal-deep);border: none;font-family: var(--mono);font-size: 0.8rem;letter-spacing: 0.14em;text-transform: uppercase;cursor: pointer;border-radius: 2px;transition: background 0.2s ease}form.contact-form button:hover{background: var(--brass-bright)}.contact-info p:not(.photo-credit){font-size: 1rem}.contact-info a{color: var(--brass-bright);border-bottom: 1px solid var(--line)}.recordings-note{border: 1px dashed var(--line);padding: 1.2rem 1.4rem;font-size: 0.95rem;color: var(--ivory);opacity: 0.85;margin-bottom: 2rem}@media (max-width: 640px){.header-inner{position: relative}nav.primary-nav{display: none;position: absolute;top: 100%;left: 0;right: 0;flex-direction: column;gap: 0.9rem;margin: 0;padding: 1.2rem 1.5rem 1.6rem;background: var(--royal-mid);border-bottom: 1px solid var(--line);box-shadow: 0 16px 28px rgba(0,0,0,0.35);max-height: calc(100vh - 100%);overflow-y: auto}.nav-toggle{display: block;background: none;border: 1px solid var(--line);color: var(--brass);font-family: var(--mono);font-size: 0.72rem;letter-spacing: 0.1em;text-transform: uppercase;padding: 0.5rem 0.9rem;cursor: pointer}.header-inner.open nav.primary-nav{display: flex}}@media (prefers-reduced-motion: no-preference){html.js-reveal :is(main.wrap h1,main.wrap h2,main.wrap p:not(.press-quote p):not(.pull-quote p):not(.schedule-row p),main.wrap .portrait-frame,main.wrap .pill-list,main.wrap .program-row,main.wrap .press-quote,main.wrap .pull-quote,main.wrap .schedule-row,main.wrap .resume-cta:not(.schedule-row .resume-cta),main.wrap .recording,main.wrap .contact-form,main.wrap .gallery-grid figure,.hero-panel > *){opacity: 0;transform: translateY(40px);transition: opacity 1s cubic-bezier(0.2,0.6,0.2,1),transform 1s cubic-bezier(0.2,0.6,0.2,1)}html.js-reveal :is(main.wrap h1,main.wrap h2,main.wrap p:not(.press-quote p):not(.pull-quote p):not(.schedule-row p),main.wrap .portrait-frame,main.wrap .pill-list,main.wrap .program-row,main.wrap .press-quote,main.wrap .pull-quote,main.wrap .schedule-row,main.wrap .resume-cta:not(.schedule-row .resume-cta),main.wrap .recording,main.wrap .contact-form,main.wrap .gallery-grid figure,.hero-panel > *).is-visible{opacity: 1;transform: none}}
