*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-weight:450;color:var(--text-primary);background:var(--bg);line-height:1.75;overflow-x:hidden}a{color:inherit;text-decoration:none}button{background:none;border:none;color:inherit;cursor:pointer;font:inherit}img{display:block;max-width:100%}:root{--bg: #faf9f7;--bg-warm: #f4f1ec;--bg-dark: #0e0e0e;--bg-dark-elevated: #181818;--text-primary: #1a1a1a;--text-secondary: #3a3a3a;--text-dim: #6b6b6b;--text-on-dark: #e6e0d6;--text-on-dark-secondary: #9a958e;--accent-warm: #7a5530;--accent-warm-light: rgba(122, 85, 48, .08);--border: #e0ddd8;--border-dark: #2a2a2a;--font-display: "Cormorant Garamond", "Georgia", serif;--font-body: "DM Sans", "Helvetica Neue", sans-serif;--section-pad: clamp(72px, 10vh, 120px);--side-pad: clamp(24px, 6vw, 100px);--max-width: 1060px}.section{padding:var(--section-pad) var(--side-pad)}.section-inner{max-width:var(--max-width);margin:0 auto}.section-heading{font-family:var(--font-body);font-weight:600;font-size:clamp(.8rem,1.2vw,.9rem);text-transform:uppercase;letter-spacing:.3em;color:var(--accent-warm);margin-bottom:48px;display:flex;align-items:center;gap:20px}.section-heading:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--border),transparent)}.page-transition{transition:opacity .3s ease,transform .3s ease}.page-transition--in{opacity:1;transform:translateY(0)}.page-transition--out{opacity:0;transform:translateY(8px)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.25,.46,.45,.94),transform .9s cubic-bezier(.25,.46,.45,.94)}.reveal.revealed{opacity:1;transform:translateY(0)}.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:20px var(--side-pad);transition:background .5s ease,box-shadow .5s ease}.nav--scrolled{background:#faf9f7e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--border)}.nav--menu-open{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.nav-logo{font-family:var(--font-display);font-weight:500;font-size:1.2rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary);transition:opacity .3s ease}.nav-logo:hover{opacity:.6}.nav-links{display:flex;gap:36px}.nav-links a{font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);transition:color .3s ease;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent-warm);transition:width .3s ease}.nav-links a:hover{color:var(--text-primary)}.nav-links a:hover:after{width:100%}.nav-hamburger{display:none;flex-direction:column;gap:6px;padding:8px}.nav-hamburger span{display:block;width:24px;height:1.5px;background:var(--text-primary);transition:transform .35s ease,opacity .25s ease;transform-origin:center}.nav-hamburger--open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.nav-hamburger--open span:nth-child(2){opacity:0}.nav-hamburger--open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}.nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility .4s ease}.nav-overlay--open{opacity:1;visibility:visible;pointer-events:auto}.nav-overlay a{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);transition:color .3s ease}.nav-overlay a:hover{color:var(--accent-warm)}.nav--on-dark .nav-logo{color:var(--text-on-dark)}.nav--on-dark .nav-links a{color:var(--text-on-dark-secondary)}.nav--on-dark .nav-links a:hover{color:var(--text-on-dark)}.nav--on-dark .nav-hamburger span{background:var(--text-on-dark)}.nav--on-dark.nav--scrolled{background:#0e0e0ee6;box-shadow:0 1px 0 var(--border-dark)}@media(max-width:768px){.nav-links{display:none}.nav-hamburger{display:flex}}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:120px var(--side-pad) 60px;position:relative;background:var(--bg)}.hero-content{display:flex;align-items:center;justify-content:space-between;gap:clamp(48px,8vw,100px);max-width:1060px;width:100%;animation:heroFadeIn 1s cubic-bezier(.25,.46,.45,.94) both}.hero-text{flex:1}.hero-name{font-family:var(--font-display);font-weight:400;line-height:1.05;display:flex;flex-direction:column}.hero-name-line{display:block;text-transform:uppercase;letter-spacing:.15em;color:var(--text-primary)}.hero-name-first{font-size:clamp(3.5rem,8.5vw,8rem);animation:nameReveal .9s .2s cubic-bezier(.25,.46,.45,.94) both}.hero-name-last{font-size:clamp(3.5rem,8.5vw,8rem);animation:nameReveal .9s .4s cubic-bezier(.25,.46,.45,.94) both}.hero-rule{width:60px;height:1px;background:var(--accent-warm);margin:28px 0;animation:ruleExpand .7s .8s cubic-bezier(.25,.46,.45,.94) both;transform-origin:left}.hero-subtitle{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:clamp(1.3rem,2.4vw,1.9rem);letter-spacing:.06em;color:var(--text-secondary);animation:nameReveal .8s 1s cubic-bezier(.25,.46,.45,.94) both}.hero-location{font-family:var(--font-body);font-size:.9rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);margin-top:10px;animation:nameReveal .8s 1.2s cubic-bezier(.25,.46,.45,.94) both}.hero-headshot{flex:0 0 auto;animation:headshotReveal 1s .3s cubic-bezier(.25,.46,.45,.94) both}.hero-headshot-frame{position:relative;width:clamp(260px,28vw,380px)}.hero-headshot-frame:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:1px solid var(--border);transform:translate(10px,10px);pointer-events:none;transition:transform .5s ease}.hero-headshot-frame:hover:before{transform:translate(6px,6px)}.hero-headshot-frame img{width:100%;display:block;transition:filter .5s ease}.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;animation:nameReveal .8s 1.6s cubic-bezier(.25,.46,.45,.94) both}.hero-scroll-line{display:block;width:1px;height:48px;background:linear-gradient(to bottom,var(--accent-warm),transparent);animation:scrollPulse 2s ease-in-out infinite}@keyframes heroFadeIn{0%{opacity:0}to{opacity:1}}@keyframes nameReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes ruleExpand{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes headshotReveal{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scrollPulse{0%,to{opacity:.25;transform:scaleY(1)}50%{opacity:.7;transform:scaleY(1.1)}}.about{background:var(--bg)}.about-content{max-width:720px}.about-lead{font-size:1.15rem;font-weight:500;line-height:1.8;color:var(--text-primary);margin-bottom:20px}.about-content p{color:var(--text-secondary);font-size:1.05rem;font-weight:450;line-height:1.8;margin-bottom:18px}.about-content p:last-child{margin-bottom:0}.about-content em{font-style:italic;color:var(--text-primary)}.about-education{margin-top:52px;padding-top:36px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:22px}.about-edu-item{display:flex;flex-direction:column;gap:4px}.about-edu-degree{font-family:var(--font-display);font-weight:500;font-size:1.2rem;color:var(--text-primary);letter-spacing:.02em}.about-edu-detail{font-size:.9rem;font-weight:500;color:var(--text-dim);letter-spacing:.03em}.resume{background:var(--bg-warm)}.resume-block{margin-bottom:56px}.resume-block:last-child{margin-bottom:0}.resume-category{font-family:var(--font-display);font-weight:500;font-style:italic;font-size:1.35rem;color:var(--text-primary);margin-bottom:24px;letter-spacing:.03em}.resume-table{display:flex;flex-direction:column}.resume-row{display:flex;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--border);gap:14px;transition:background .3s ease}.resume-row:hover{background:var(--accent-warm-light);margin:0 -14px;padding-left:14px;padding-right:14px}.resume-show{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--text-primary);white-space:nowrap;letter-spacing:.01em}.resume-note{font-family:var(--font-body);font-size:.7rem;font-weight:500;color:var(--accent-warm);text-transform:uppercase;letter-spacing:.1em;margin-left:8px;vertical-align:middle}.resume-dots{flex:1;min-width:20px;border-bottom:1px dotted var(--text-dim);margin-bottom:5px}.resume-role{font-size:1rem;font-weight:450;color:var(--text-secondary);white-space:nowrap}.resume-venue{font-size:.9rem;font-weight:450;color:var(--text-dim);white-space:nowrap;text-align:right}.resume-films{display:flex;flex-direction:column;gap:22px}.resume-film{display:flex;gap:24px;align-items:flex-start}.resume-film-year{font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.12em;color:var(--text-dim);padding-top:4px;flex:0 0 52px}.resume-film-info{display:flex;flex-direction:column;gap:4px}.resume-film-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--text-primary);font-style:italic}.resume-film-detail{font-size:.95rem;font-weight:450;color:var(--text-secondary)}.resume-skills{display:flex;flex-wrap:wrap;gap:10px}.resume-skill{padding:8px 18px;border:1px solid var(--border);font-size:.85rem;font-weight:500;letter-spacing:.04em;color:var(--text-secondary);transition:border-color .3s ease,color .3s ease}.resume-skill:hover{border-color:var(--accent-warm);color:var(--accent-warm)}.gallery{background:var(--bg-dark);color:var(--text-on-dark)}.gallery .section-heading{color:var(--accent-warm)}.gallery .section-heading:after{background:linear-gradient(to right,var(--border-dark),transparent)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:260px;gap:10px}.gallery-item:nth-child(1){grid-row:span 2}.gallery-item:nth-child(2){grid-row:span 2}.gallery-item:nth-child(3){grid-row:span 1}.gallery-item:nth-child(4){grid-row:span 1}.gallery-item:nth-child(5){grid-row:span 1}.gallery-item:nth-child(6){grid-row:span 2}.gallery-item:nth-child(7){grid-row:span 1}.gallery-item{position:relative;overflow:hidden;cursor:pointer;background:var(--bg-dark-elevated);padding:0}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94),filter .6s ease;filter:brightness(.92)}.gallery-item:hover img{transform:scale(1.04);filter:brightness(1)}.gallery-item-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 50%);display:flex;align-items:flex-end;padding:18px;opacity:0;transition:opacity .4s ease}.gallery-item:hover .gallery-item-overlay{opacity:1}.gallery-item-caption{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--text-on-dark);letter-spacing:.03em}.gallery-expand{display:flex;justify-content:center;margin-top:32px}.gallery-expand-btn{display:flex;align-items:center;gap:8px;padding:12px 28px;font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-on-dark-secondary);border:1px solid var(--border-dark);transition:color .3s ease,border-color .3s ease;cursor:pointer;text-decoration:none}.gallery-expand-btn:hover{color:var(--text-on-dark);border-color:var(--text-on-dark-secondary)}.gallery-page{min-height:100vh;background:var(--bg-dark);padding:0 var(--side-pad) 80px}.gallery-page-header{padding-top:100px;padding-bottom:40px;max-width:var(--max-width);margin:0 auto}.gallery-page-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.08em;color:var(--text-on-dark-secondary);text-decoration:none;transition:color .3s ease;margin-bottom:32px}.gallery-page-back:hover{color:var(--text-on-dark)}.gallery-page-title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.5rem,6vw,4rem);letter-spacing:.08em;text-transform:uppercase;color:var(--text-on-dark);margin-bottom:28px}.gallery-filters{display:flex;flex-wrap:wrap;gap:8px}.gallery-filter{padding:8px 20px;font-family:var(--font-body);font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-on-dark-secondary);border:1px solid var(--border-dark);background:transparent;cursor:pointer;transition:color .3s ease,border-color .3s ease,background .3s ease}.gallery-filter:hover{color:var(--text-on-dark);border-color:var(--text-on-dark-secondary)}.gallery-filter--active{color:var(--text-on-dark);border-color:var(--text-on-dark);background:#ffffff0f}.gallery-page-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:10px;max-width:var(--max-width);margin:0 auto}.gallery-page-grid .gallery-item:nth-child(1){grid-row:span 1}.gallery-page-grid .gallery-item:nth-child(2){grid-row:span 1}.gallery-page-grid .gallery-item:nth-child(3){grid-row:span 1}@media(max-width:900px){.gallery-page-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:260px}}@media(max-width:640px){.gallery-page-grid{grid-template-columns:1fr;grid-auto-rows:280px}.gallery-filters{gap:6px}.gallery-filter{padding:6px 14px;font-size:.75rem}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:lightboxIn .3s ease both;cursor:pointer}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}.lightbox-img{max-width:85vw;max-height:80vh;object-fit:contain;cursor:default;animation:lightboxZoom .35s cubic-bezier(.25,.46,.45,.94) both}@keyframes lightboxZoom{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:24px;right:28px;color:#999;transition:color .3s ease;cursor:pointer}.lightbox-close:hover{color:#fff}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:#999;padding:16px;transition:color .3s ease;cursor:pointer}.lightbox-nav:hover{color:#fff}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-caption{position:absolute;bottom:28px;left:50%;transform:translate(-50%);font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--text-on-dark-secondary);letter-spacing:.04em}.contact{text-align:center;display:flex;flex-direction:column;align-items:center;min-height:50vh;justify-content:center;background:var(--bg)}.contact .section-heading{justify-content:center}.contact .section-heading:after{display:none}.contact-prompt{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:clamp(1.15rem,2vw,1.5rem);color:var(--text-secondary);margin-bottom:28px}.contact-email{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,3.8vw,2.8rem);letter-spacing:.03em;color:var(--text-primary);position:relative;display:inline-block;transition:color .3s ease}.contact-email:after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:1px;background:var(--accent-warm);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}.contact-email:hover{color:var(--accent-warm)}.contact-email:hover:after{transform:scaleX(1);transform-origin:left}.contact-details{margin-top:22px;display:flex;align-items:center;gap:16px;font-size:.85rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.contact-dot{width:4px;height:4px;border-radius:50%;background:var(--text-dim)}.footer{width:100%;margin-top:auto;padding-top:60px;text-align:center}.footer-rule{width:40px;height:1px;background:var(--border);margin:0 auto 20px}.footer p{font-size:.78rem;font-weight:500;letter-spacing:.1em;color:var(--text-dim)}@media(max-width:900px){.resume-row{flex-wrap:wrap;gap:4px 14px}.resume-dots{display:none}.resume-show{width:100%}.resume-role{font-size:.95rem}.resume-venue{font-size:.85rem;text-align:left}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:240px}.gallery-item:nth-child(1){grid-row:span 2}.gallery-item:nth-child(2){grid-row:span 1}.gallery-item:nth-child(6){grid-row:span 1}}@media(max-width:640px){.hero{padding-top:100px;padding-bottom:60px;min-height:100svh}.hero-content{flex-direction:column-reverse;text-align:center;gap:36px}.hero-headshot-frame{width:clamp(220px,60vw,300px)}.hero-headshot-frame:before{display:none}.hero-rule{margin:20px auto}.hero-scroll{display:none}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:260px}.gallery-item:nth-child(n){grid-row:span 1}.gallery-item:nth-child(2){grid-row:span 2}.lightbox-nav{display:none}.resume-row:hover{margin:0;padding-left:0;padding-right:0}}.not-found{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--side-pad);text-align:center}.not-found-title{font-family:var(--font-display);font-size:clamp(4rem,12vw,8rem);font-weight:300;color:var(--text-dim);line-height:1;margin-bottom:12px}.not-found-text{font-size:1.1rem;color:var(--text-secondary);margin-bottom:32px}.not-found-link{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-warm);border-bottom:1px solid var(--accent-warm);padding-bottom:2px;transition:opacity .2s}.not-found-link:hover{opacity:.7}
