:root{--ink:#08090b;--panel:#101216;--paper:#f2efe8;--muted:#a5a6a8;--line:#292c31;--amber:#e3a44a;--max:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;line-height:1.5}body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}img{display:block;width:100%}a{color:inherit;text-decoration:none}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--paper);color:var(--ink);padding:.75rem 1rem}.skip-link:focus{top:1rem}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.25rem,4vw,4.5rem);position:absolute;z-index:10;width:100%;border-bottom:1px solid rgba(255,255,255,.16)}.wordmark{font-weight:800;font-size:1.35rem;letter-spacing:-.08em}.wordmark span{color:var(--amber)}nav{display:flex;align-items:center;gap:clamp(1.1rem,2.5vw,2.6rem);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}nav a{color:#dedbd5}nav a:hover{color:white}.nav-contact{border:1px solid rgba(255,255,255,.45);padding:.6rem 1rem}.hero{min-height:100svh;display:grid;grid-template-columns:minmax(20rem,.85fr) minmax(28rem,1.15fr);max-width:var(--max);margin:auto;padding:clamp(8rem,12vw,11rem) clamp(1.25rem,4vw,4.5rem) 5rem;gap:clamp(3rem,7vw,8rem);align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--amber);font-weight:700;margin:0 0 1.4rem}.hero h1,.section h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.6rem,6.3vw,7.2rem);line-height:.88;letter-spacing:-.055em;font-weight:400;margin:0}.hero h1 em,.section h2 em{font-weight:400;color:var(--amber)}.hero-intro{font-size:clamp(1rem,1.4vw,1.2rem);color:#b8b7b5;max-width:35rem;margin:2rem 0 2.4rem}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}.button-primary{background:var(--paper);color:var(--ink)}.button-primary:hover{background:var(--amber)}.button-quiet{border-bottom:1px solid #777;padding-left:.2rem;padding-right:.2rem}.hero-frame{height:min(68vw,720px);max-height:75svh;position:relative}.hero-frame figure{position:absolute;margin:0;overflow:hidden;background:var(--panel);box-shadow:0 28px 90px rgba(0,0,0,.48)}.hero-frame img{height:100%;object-fit:cover}.hero-main{inset:6% 12% 6% 2%}.hero-tall{width:29%;height:48%;right:0;top:0;border:6px solid var(--ink)}.hero-small{width:35%;height:28%;right:2%;bottom:0;border:6px solid var(--ink)}.frame-note{position:absolute;right:-2.5rem;top:50%;transform:rotate(90deg);font-size:.62rem;letter-spacing:.3em;color:#7a7b7e}.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;color:#85878a;white-space:nowrap}.ticker div{width:max-content;display:flex;align-items:center;gap:1.5rem;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;animation:marquee 26s linear infinite}.ticker i{width:4px;height:4px;border-radius:50%;background:var(--amber)}@keyframes marquee{to{transform:translateX(-40%)}}.section{max-width:var(--max);margin:auto;padding:clamp(6rem,10vw,11rem) clamp(1.25rem,4vw,4.5rem)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:4.5rem}.section-heading h2{font-size:clamp(3.3rem,6vw,6rem)}.section-note{width:min(30rem,38%);color:var(--muted);margin:0 0 .4rem}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:22rem;gap:1rem}.shot{position:relative;border:0;padding:0;overflow:hidden;background:#15171a;color:white;cursor:zoom-in;text-align:left}.shot.wide{grid-column:span 2}.shot.tall{grid-row:span 2}.shot img{height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03);transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s}.shot::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.76));opacity:0;transition:opacity .3s}.shot span{position:absolute;z-index:1;left:1.1rem;right:1.1rem;bottom:1rem;font-family:Georgia,serif;font-size:1.25rem;opacity:0;transform:translateY(10px);transition:.3s}.shot small{float:right;font-family:Arial,sans-serif;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#d2d0cb;margin-top:.5rem}.shot:hover img,.shot:focus-visible img{transform:scale(1.035);filter:saturate(1.1) contrast(1.03)}.shot:hover::after,.shot:hover span,.shot:focus-visible::after,.shot:focus-visible span{opacity:1;transform:none}.production{display:grid;grid-template-columns:minmax(20rem,.8fr) minmax(24rem,1fr);gap:clamp(3rem,8vw,9rem);align-items:center;border-top:1px solid var(--line)}.production-visual{position:relative}.production-visual>img{height:min(75svh,760px);object-fit:cover;object-position:center;background:var(--panel)}.production-card{position:absolute;right:-2rem;bottom:2.5rem;background:var(--amber);color:#111;width:10.5rem;padding:1.2rem}.production-card span{font-family:Georgia,serif;font-size:3.3rem;line-height:1}.production-card p{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin:.6rem 0 0}.production-copy h2{font-size:clamp(3.5rem,6vw,6.5rem)}.production-copy>p:not(.eyebrow){color:#b8b7b5;font-size:1.1rem;max-width:38rem;margin:2rem 0 3rem}.skill-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.skill-grid div{padding:1.25rem 0;border-bottom:1px solid var(--line)}.skill-grid div:nth-child(odd){border-right:1px solid var(--line);padding-right:1rem}.skill-grid div:nth-child(even){padding-left:1.5rem}.skill-grid strong,.skill-grid span{display:block}.skill-grid strong{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--amber);margin-bottom:.45rem}.skill-grid span{font-size:.86rem;color:#aaa;line-height:1.6}.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,10rem);border-top:1px solid var(--line)}.about h2{font-size:clamp(3.4rem,5.7vw,6rem)}.about-body{padding-top:2.2rem;color:#a9aaac}.about-body p{max-width:39rem}.about-body .about-intro{font-family:Georgia,serif;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.25;color:var(--paper);margin-top:0}.resume{border-top:1px solid var(--line)}.section-heading.compact{margin-bottom:3rem}.section-heading.compact h2{font-size:clamp(3.2rem,5vw,5rem)}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:10rem 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.timeline time{color:var(--amber);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}.timeline h3{font-family:Georgia,serif;font-weight:400;font-size:1.6rem;margin:0}.timeline p{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:#8e8f92;margin:.4rem 0 1rem}.timeline span{color:#b3b4b6}.contact{padding-top:8rem;padding-bottom:8rem;text-align:center;background:var(--paper);color:var(--ink);max-width:none}.contact h2{font-size:clamp(3.5rem,7vw,7.5rem)}.contact .eyebrow{color:#7b531b}.contact-links{display:flex;justify-content:center;flex-wrap:wrap;gap:1px;margin:4rem auto 0;max-width:70rem;background:#c9c5bc;border:1px solid #c9c5bc}.contact-links a{background:var(--paper);padding:1.4rem 2rem;flex:1;min-width:17rem;font-family:Georgia,serif;font-size:1.15rem}.contact-links a:hover{background:var(--amber)}.contact-links span{display:block;font-family:Arial,sans-serif;font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:#6d6a65;margin-bottom:.5rem}footer{display:flex;justify-content:space-between;padding:1.5rem clamp(1.25rem,4vw,4.5rem);color:#777;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;border-top:1px solid var(--line)}.lightbox{width:min(92vw,1200px);height:min(92vh,900px);padding:0;border:0;background:#090a0c;color:white;overflow:hidden}.lightbox::backdrop{background:rgba(0,0,0,.9);backdrop-filter:blur(8px)}.lightbox>img{width:100%;height:calc(100% - 64px);object-fit:contain}.lightbox>div{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 1.3rem}.lightbox>div span{text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;color:#aaa}.lightbox-close{position:absolute;z-index:2;right:.8rem;top:.8rem;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.5);color:white;width:42px;height:42px;border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer}@media(max-width:1000px){.hero{grid-template-columns:1fr;padding-top:9rem}.hero-frame{height:70svh;max-height:680px}.gallery{grid-template-columns:repeat(2,1fr)}.production{grid-template-columns:1fr}.production-visual{width:min(80%,600px)}.about{grid-template-columns:1fr}.section-note{width:min(100%,32rem)}.section-heading{align-items:start;flex-direction:column}}@media(max-width:640px){.site-header{height:66px}.site-header nav a:not(.nav-contact){display:none}.hero{padding-top:7.5rem;gap:2.5rem}.hero h1{font-size:clamp(3.1rem,15vw,4.6rem)}.hero-frame{height:64svh;min-height:480px}.hero-main{inset:4% 4% 12% 0}.hero-tall{width:38%;height:40%}.hero-small{width:45%;height:25%}.frame-note{display:none}.section{padding-top:6.5rem;padding-bottom:6.5rem}.section-heading{margin-bottom:2.8rem}.gallery{grid-template-columns:1fr;grid-auto-rows:26rem}.shot.wide{grid-column:auto}.shot.tall{grid-row:auto}.shot span,.shot::after{opacity:1;transform:none}.production-visual{width:calc(100% - 1rem)}.production-card{right:-1rem}.skill-grid{grid-template-columns:1fr}.skill-grid div:nth-child(odd){border-right:0}.skill-grid div:nth-child(even){padding-left:0}.timeline article{grid-template-columns:1fr;gap:.7rem}.contact-links{display:block}.contact-links a{display:block}.contact-links a+a{border-top:1px solid #c9c5bc}footer{gap:1rem;flex-wrap:wrap}footer p{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.shot img{transition:none}}
