:root{--paper:#f7f4ee;--ink:#273d35;--muted:#6c726c;--line:#d7d9cf;--gold:#9b673c;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}p{line-height:1.8}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}.wrap{width:min(1180px,88%);margin-inline:auto}.skip{position:fixed;top:-80px;padding:12px;background:white;z-index:5}.skip:focus{top:10px}header{height:115px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:2.1px;line-height:1.65}.monogram{font:53px/.8 var(--serif);letter-spacing:-8px;position:relative;padding-right:8px}.monogram span{font-style:italic}.monogram i{color:var(--gold);font-style:normal}nav{display:flex;gap:38px;align-items:center;font-size:12px}.nav-contact{border:1px solid #aeb7ac;border-radius:30px;padding:13px 22px}.nav-contact span{margin-left:16px}nav a:hover,.text-link:hover{color:var(--gold)}.hero{display:grid;grid-template-columns:1.14fr 1fr;gap:7%;padding-block:78px 70px;align-items:center}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;margin:0 0 28px}.dot{display:inline-block;width:6px;height:6px;background:var(--gold);border-radius:50%;margin-right:9px;vertical-align:1px}h1{font:clamp(44px,4.7vw,68px)/1.07 var(--serif);font-weight:400;letter-spacing:-2.4px;margin:0 0 24px}h1 em,h2 em{font-weight:400;color:var(--gold)}.lead{font-size:15px;color:var(--muted);margin:0 0 25px}.button{background:var(--ink);color:#f9f6ef;border-radius:30px;display:inline-flex;padding:17px 23px;gap:26px;font-size:12px;transition:background .2s}.button:hover{background:#466052}.hero-foot{display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:1.8px;margin-top:42px;color:var(--muted)}.fine-line{width:35px;height:1px;background:var(--gold)}.composition{position:relative;padding:0 20px 55px 5px}.portrait-frame{position:relative;margin:0 24px 0 5px;padding:9px;border:1px solid #b9b8a9;border-radius:170px 170px 3px 3px}.portrait-frame>img{aspect-ratio: .84;object-position:51% 45%;border-radius:160px 160px 0 0}.image-note{position:absolute;bottom:30px;left:28px;color:white;font-size:8px;letter-spacing:2px;text-shadow:0 1px 8px #000}.tile-detail{position:absolute;right:0;bottom:0;width:39%;padding:9px 9px 0;background:var(--paper);transform:rotate(5deg);box-shadow:0 7px 24px #26332b18}.tile-detail img{aspect-ratio:1.25}.tile-detail span{display:block;font:italic 13px var(--serif);text-align:center;padding:10px 0}.vertical-note{position:absolute;right:-6px;top:80px;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px}.orbit{position:absolute;left:-24px;bottom:18px;color:var(--gold);font:70px var(--serif)}.index-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-block:25px;gap:15px;font-size:10px}.index-strip>span{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.index-strip a{color:var(--gold)}.index-strip b{font-weight:400;color:var(--ink);margin-left:12px}.work{padding-block:85px 90px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.section-head .eyebrow{margin-bottom:20px}h2{font:48px/1.12 var(--serif);font-weight:400;letter-spacing:-1.4px;margin:0}.section-head>p{font-size:13px;color:var(--muted);margin:0 0 5px}.film-project{display:grid;grid-template-columns:1.3fr 1fr;background:var(--ink);color:var(--paper)}.film-image{position:relative;min-height:405px}.film-image img{height:100%;position:absolute;object-position:50% 48%}.film-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0007);pointer-events:none}.image-label{position:absolute;bottom:25px;left:26px;z-index:1;font-size:8px;letter-spacing:2px}.round-link{position:absolute;top:24px;right:24px;border:1px solid #fff9;border-radius:50%;height:44px;width:44px;display:grid;place-items:center;color:white}.film-copy{padding:60px 45px}.project-number{font-size:8px;letter-spacing:1.8px;display:block;opacity:.8}h3{font:43px var(--serif);letter-spacing:-1.2px;margin:24px 0 20px}h3 span{color:#c39263}.film-copy>p,.craft-copy>p{font-size:16px}.film-copy .muted{font-size:13px;color:#d3d9cd;line-height:1.9}.text-link{display:inline-flex;align-items:center;gap:26px;border-bottom:1px solid currentColor;padding:10px 0;font-size:11px;margin-top:16px}.craft-project{display:grid;grid-template-columns:.9fr 1.25fr;gap:8%;align-items:center;padding-top:70px}.craft-copy{padding-left:35px}.craft-copy .muted{color:var(--muted);font-size:14px;max-width:320px}.craft-foot{display:block;font-size:8px;letter-spacing:1.7px;margin-top:38px;color:var(--muted)}figure{margin:0}figure>img{aspect-ratio:1.25;background:#e8e0d4}figcaption{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;font-size:9px;color:var(--muted)}.about{background:#eaece4;padding-block:78px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:13%}.about h2{font-size:43px}.signature{display:block;font:italic 36px var(--serif);color:var(--gold);margin-top:32px}.about-copy p{color:var(--muted);font-size:14px}.about-copy .about-lead{color:var(--ink);font:23px/1.5 var(--serif);margin-top:0}.professional{border-top:1px solid #c8cfc2;margin-top:30px;padding-top:24px}.professional p{font-size:12px}.professional .text-link{margin-top:0}.contact{padding-block:80px}.contact-row{display:flex;justify-content:space-between;gap:30px;align-items:end}.contact-row p{font-size:14px;color:var(--muted)}.email{font:23px var(--serif);border-bottom:1px solid #abb6a8;padding-bottom:12px;display:inline-block}.email span{margin-left:18px}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-block:25px 35px;font-size:10px;color:var(--muted)}.footer-name{font:21px var(--serif);color:var(--ink)}@media(max-width:900px){.hero{gap:4%;padding-block:50px}h1{font-size:47px}.film-copy{padding:38px 28px}.film-image{min-height:360px}.about-grid{gap:7%}.about h2{font-size:36px}.index-strip>span{max-width:115px;line-height:1.6}.craft-copy{padding-left:0}}@media(max-width:600px){.wrap{width:88%}header{height:90px}.identity{gap:12px;font-size:8px}.monogram{font-size:44px}nav{gap:17px;font-size:10px}.nav-contact{display:none}.hero{grid-template-columns:1fr;padding-top:38px;gap:36px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:22px}h1{font-size:clamp(39px,10.4vw,61px);letter-spacing:-1.6px}.lead{font-size:14px}.hero-foot{display:none}.composition{width:90%;max-width:380px;margin:auto;padding-bottom:40px}.portrait-frame>img{aspect-ratio:1}.portrait-frame{border-radius:150px 150px 3px 3px}.orbit{font-size:55px;left:-12px;bottom:4px}.tile-detail{width:35%}.tile-detail span{font-size:11px}.vertical-note{font-size:7px;right:-10px}.image-note{font-size:7px}.index-strip{flex-wrap:wrap;gap:18px 10px;padding-block:22px}.index-strip>span{width:100%;max-width:none;font-size:7px}.index-strip a{font-size:9px}.index-strip b{margin-left:4px}.work{padding-block:50px}.section-head{display:block;margin-bottom:27px}.section-head>p{margin-top:20px;font-size:12px}h2{font-size:37px}.film-project{grid-template-columns:1fr}.film-image{min-height:280px}.film-copy{padding:30px}h3{font-size:37px;margin-block:18px}.craft-project{grid-template-columns:1fr;gap:30px;padding-top:44px}.craft-project figure{grid-row:1}.craft-foot{margin-top:25px}.about{padding-block:48px}.about-grid{grid-template-columns:1fr;gap:30px}.about .eyebrow{margin-bottom:20px}.signature{margin-top:22px}.about-copy .about-lead{font-size:22px}.contact{padding-block:50px}.contact-row{display:block}.contact-row>div{margin-top:28px}.email{font-size:22px}footer{gap:15px;flex-wrap:wrap}.footer-name{width:100%}.eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
img{height:auto}.film-image img{height:100%}@media(min-width:601px) and (max-width:760px){.hero{grid-template-columns:1fr 1fr}h1{font-size:39px;letter-spacing:-1.5px}.hero .eyebrow{font-size:7px;letter-spacing:1px}.lead{font-size:13px}.portrait-frame{margin-right:10px}.vertical-note{right:-9px}.tile-detail{width:44%}.tile-detail span{font-size:10px}nav{gap:18px}.film-copy{padding:28px 22px}}
.social-links{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:24px;padding-top:19px;border-top:1px solid #ffffff30;font-size:11px}.social-links a{padding:5px 0;color:#e2e7dc}.social-links a:hover{color:#edc29a}.contact-row .contact-context{font-size:12px;line-height:1.8;margin:18px 0;color:var(--muted)}.contact-context a{text-decoration:underline;text-underline-offset:3px}
.gallery{padding-block:0 80px}.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.gallery-item{position:relative;background:#e5e4dc;border:0;padding:0;cursor:zoom-in;overflow:hidden;text-align:left;color:white;font:12px Arial;min-height:230px}.gallery-item img{position:absolute;inset:0;height:100%;transition:transform .4s}.gallery-item:hover img{transform:scale(1.025)}.gallery-item.tall{grid-row:span 2;min-height:485px}.gallery-item span{position:absolute;bottom:0;left:0;right:0;padding:42px 22px 20px;background:linear-gradient(transparent,#000b);display:flex;justify-content:space-between}.social-section{padding-block:70px;display:grid;grid-template-columns:.85fr 1.2fr;gap:10%;border-bottom:1px solid var(--line)}.social-directory>a{display:flex;align-items:center;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.social-directory>a:last-child{border-bottom:0}.social-directory>a:hover strong{color:var(--gold)}.social-icon{height:39px;width:39px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font:21px Georgia}.social-directory strong{display:block;font-size:14px;font-weight:500}.social-directory small{display:block;font-size:10px;margin-top:6px;color:var(--muted)}.social-directory b{margin-left:auto;font-weight:normal}.lightbox{border:0;background:#17251f;color:white;padding:20px;width:min(960px,94vw);max-height:94vh}.lightbox::backdrop{background:#102019e8}.lightbox img{max-height:72vh;object-fit:contain;width:100%;height:auto}.lightbox p{text-align:center;font-size:12px;margin-bottom:0}.lightbox-close{display:block;margin:0 0 15px auto;color:white;border:1px solid #ffffff60;background:none;padding:9px 16px;cursor:pointer}.lightbox-close:focus-visible,.gallery-item:focus-visible{outline:3px solid #c39263;outline-offset:4px}@media(max-width:900px){header nav{gap:17px}.nav-contact{display:none}}@media(max-width:600px){header nav{gap:12px;font-size:9px}.gallery{padding-bottom:50px}.gallery-grid{gap:14px;grid-template-columns:1fr 1fr}.gallery-item.tall{grid-column:span 2;grid-row:auto;min-height:350px}.gallery-item{min-height:230px}.gallery-item span{padding:35px 12px 15px;font-size:10px}.social-section{grid-template-columns:1fr;gap:30px;padding-block:50px}.social-directory>a{padding-block:15px}}@media(max-width:360px){.identity{gap:8px}.identity>span:last-child{font-size:7px}header nav{gap:8px}}

.gallery-grid{display:block;columns:3;column-gap:20px}.gallery-item{display:block;width:100%;min-height:0;margin:0 0 20px;break-inside:avoid;background:transparent;color:var(--ink)}.gallery-item img{position:static;height:auto;width:100%;object-fit:contain}.gallery-item span{position:static;padding:13px 1px 8px;background:none;font-size:11px}.gallery-note{font-size:10px;color:var(--muted);margin-top:18px}.gallery-item:hover img{transform:none;filter:brightness(1.04)}@media(max-width:900px){.gallery-grid{columns:2}}@media(max-width:420px){.gallery-grid{column-gap:14px}.gallery-item{margin-bottom:14px}.gallery-item span{font-size:9px;line-height:1.6}}
.more-photos summary{cursor:pointer;list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;font-size:12px;display:flex;justify-content:space-between;margin-block:15px 25px}.more-photos summary::-webkit-details-marker{display:none}.less-label{display:none}.more-photos[open] .less-label{display:inline}.more-photos[open] .more-label{display:none}.more-photos summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.photo-frame{position:relative;display:block;font-style:normal}.photo-signature{position:absolute;right:4%;bottom:4%;color:#fff9e9;font:normal 12px Georgia,serif;opacity:.85;text-shadow:0 1px 3px #0007;pointer-events:none}.lightbox-photo{position:relative;display:table;margin:auto;max-width:100%}.lightbox .lightbox-photo img{width:auto;max-width:100%;max-height:72vh}.lightbox-photo .photo-signature{font-size:clamp(12px,2vw,22px)}.photo-signature[hidden]{display:none}@media(max-width:420px){.photo-frame .photo-signature{font-size:9px}}

.identity .brand-mark{width:64px;height:64px;object-fit:contain;flex-shrink:0}.identity{gap:16px}@media(max-width:600px){.identity .brand-mark{width:44px;height:44px}.identity{gap:10px}}

.social-icon svg{display:block;width:21px;height:21px;flex:none}.signature{font-size:clamp(28px,3vw,36px)}

.featured-films{padding-top:42px}.films-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:25px}.films-heading .eyebrow{margin-bottom:12px}.films-heading h3{font-size:30px;letter-spacing:-.7px;margin:0}.films-heading h3 em{color:var(--gold);font-weight:400}.films-heading>p{font-size:12px;color:var(--muted);max-width:190px;margin:0}.film-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.film-card{min-width:0}.film-play{display:block;position:relative;width:100%;aspect-ratio:3/4;border:0;padding:0;overflow:hidden;background:var(--ink);cursor:pointer}.film-play img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.film-play:hover img{transform:scale(1.03)}.play-symbol{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#273d35d9;color:white;border:1px solid #ffffff80;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:17px;padding-left:3px}.film-duration{position:absolute;right:10px;bottom:10px;color:white;background:#17251fcc;font:10px Arial;padding:5px 7px;border-radius:3px}.film-card h4{font:23px/1.2 var(--serif);margin:17px 0 8px;font-weight:400}.film-card p{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 12px}.film-card>a{font-size:10px;text-decoration:underline;text-underline-offset:4px}.film-play:focus-visible,.video-close:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.video-viewer{width:min(410px,94vw);padding:18px;background:#17251f;color:white;border:0;max-height:96vh}.video-viewer::backdrop{background:#102019ed}.video-close{display:block;margin:0 0 12px auto;padding:8px 12px;border:1px solid #ffffff70;background:none;color:white;cursor:pointer}.video-frame{height:min(64vh,580px);background:#000}.video-frame iframe{width:100%;height:100%;border:0}.video-title{font:18px var(--serif);margin:15px 0 10px}.video-fallback{font-size:12px;text-decoration:underline;text-underline-offset:4px}@media(max-width:600px){.films-heading{display:block}.films-heading>p{max-width:none;margin-top:12px}.film-cards{gap:14px;grid-template-columns:1fr}.film-card{display:grid;grid-template-columns:120px 1fr;column-gap:18px;align-content:start}.film-play{grid-row:span 3}.film-card h4{font-size:22px;margin-top:12px}.film-card p{font-size:12px}.film-card>a{align-self:start}.films-heading h3{font-size:29px}}

.tiles-brand{position:relative;overflow:hidden;width:220px;max-width:100%;aspect-ratio:875/645;margin:26px 0 24px;mix-blend-mode:multiply}.tiles-brand img{position:absolute;width:182.86%;max-width:none;height:auto;left:-44.34%;top:-69.3%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.rights-note{border-top:1px solid var(--line);padding-block:20px}.rights-note p{max-width:800px;font-size:11px;line-height:1.8;color:var(--muted);margin:5px 0}.rights-note a{text-decoration:underline;text-underline-offset:3px}

/* Subtle, one-time entrances and pointer feedback. */
.reveal-ready{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.3,1)}
.reveal-ready.is-visible{opacity:1;transform:translateY(0)}
.craft-project figure{overflow:hidden}
.film-image>img,.craft-project figure>img{transition:transform .65s cubic-bezier(.2,.65,.3,1)}
.button,.round-link,.text-link,.social-links a,.social-directory>a,header nav a{transition:color .22s ease,background-color .22s ease,border-color .22s ease}
.button>span,.text-link>span,.nav-contact>span,.social-directory>a>b{display:inline-block;transition:transform .22s ease}
@media(hover:hover) and (pointer:fine){
.film-image:hover>img,.craft-project figure:hover>img{transform:scale(1.025)}
.button:hover{background:#385348}
.button:hover>span,.text-link:hover>span,.nav-contact:hover>span,.social-directory>a:hover>b{transform:translate(3px,-2px)}
.text-link:hover,header nav a:hover{color:var(--gold)}
.round-link:hover{background:#9b673c;color:white}
}
.button:focus-visible,.text-link:focus-visible,.round-link:focus-visible,.social-directory>a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}.film-image>img,.craft-project figure>img,.button>span,.text-link>span,.nav-contact>span,.social-directory>a>b{transition:none!important;transform:none!important}}

.motion-toggle{font:inherit;color:var(--muted);border:0;border-bottom:1px solid var(--line);background:none;padding:5px 0;cursor:pointer}
.motion-enabled .reveal-ready{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.3,1)!important}
.motion-enabled .reveal-ready.is-visible{opacity:1;transform:none}
.motion-enabled .film-image>img,.motion-enabled .craft-project figure>img{transition:transform .65s ease!important}
.motion-enabled .button>span,.motion-enabled .text-link>span,.motion-enabled .nav-contact>span,.motion-enabled .social-directory>a>b{transition:transform .22s ease!important}
@media(hover:hover) and (pointer:fine){.motion-enabled .film-image:hover>img,.motion-enabled .craft-project figure:hover>img{transform:scale(1.025)!important}.motion-enabled .button:hover>span,.motion-enabled .text-link:hover>span,.motion-enabled .social-directory>a:hover>b{transform:translate(3px,-2px)!important}}
body:not(.motion-enabled) .brand-mark .draw{animation:none}

/* A small photographic frame replaces the stock zoom cursor. */
.gallery-item,.gallery-item *{cursor:url("assets/gallery-cursor.svg") 20 20,pointer}

/* Portrait: quiet camera pull-back, then subtle pointer depth. */
.portrait-frame{overflow:hidden}
.motion-enabled .portrait-frame>img{transform:translate(var(--portrait-x,0px),var(--portrait-y,0px)) scale(1.035);transition:transform .6s cubic-bezier(.2,.65,.3,1)!important}
.motion-enabled .portrait-frame.is-visible>img{animation:portrait-arrival 1.8s cubic-bezier(.2,.65,.3,1) both}
@keyframes portrait-arrival{from{transform:scale(1.10)}to{transform:translate(var(--portrait-x,0px),var(--portrait-y,0px)) scale(1.035)}}

/* Copper line follows the portrait's actual arch, without rotating the photo. */
.portrait-frame{border-color:#9b673c}
.portrait-outline{position:absolute;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);overflow:visible;pointer-events:none;z-index:3}
.portrait-outline path{fill:none;stroke:#d7a16e;stroke-width:2;stroke-linecap:round;stroke-dasharray:.16 .84;vector-effect:non-scaling-stroke;opacity:0}
.motion-enabled .portrait-outline path{opacity:1;animation:portrait-outline-travel 9s linear infinite}
@keyframes portrait-outline-travel{to{stroke-dashoffset:-1}}

/* The copper outline itself draws around the portrait, then clears. */
.portrait-frame{border-color:transparent}
.portrait-outline path{stroke:#9b673c;stroke-width:2;stroke-dasharray:1 1;stroke-dashoffset:0;opacity:1}
.motion-enabled .portrait-outline path{animation:portrait-outline-draw 8s cubic-bezier(.45,0,.25,1) infinite}
@keyframes portrait-outline-draw{0%,5%{stroke-dashoffset:1}48%,70%{stroke-dashoffset:0}95%,100%{stroke-dashoffset:-1}}

/* One complete outline, followed by the copper star. */
.motion-enabled .portrait-outline path{animation:portrait-outline-once 3.2s cubic-bezier(.4,0,.25,1) both}
@keyframes portrait-outline-once{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.orbit{transform-origin:center}
.motion-enabled .orbit.orbit-active{animation:portrait-star-turn 24s linear infinite}
@keyframes portrait-star-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* A restrained turquoise accent alongside the copper identity. */
:root{--turquoise:#3f8f8a}
.hero .eyebrow .dot{background:var(--turquoise)}
header nav a:hover,.text-link:hover,.social-links a:hover,.social-directory>a:hover strong,.film-card>a:hover,.contact-context a:hover,.rights-note a:hover,footer a:hover{color:var(--turquoise)}

/* Clear reading order and comfortable type, including narrow screens. */
header nav{font-size:13px;gap:24px}header .nav-contact{display:inline-flex;gap:8px;align-items:center}
.about{margin-top:50px}.work{padding-top:75px}.gallery{padding-top:12px}
.about-copy p,.film-copy p,.craft-copy p,.lead,.contact-row>div>p{font-size:16px;line-height:1.8}
.section-head>p,.films-heading>p,.film-card p{font-size:14px;line-height:1.75}
.text-link,.social-links,.film-card>a{font-size:13px}
.gallery-item span,.gallery-note,.social-directory small,footer,.rights-note p,.contact-row .contact-context{font-size:12px;line-height:1.7}
.social-directory strong{font-size:16px}.project-number,.eyebrow{font-size:11px}
section[id]{scroll-margin-top:24px}
@media(max-width:900px){header{height:auto!important;min-height:110px;flex-wrap:wrap;gap:20px;padding-block:22px}header nav{gap:20px;flex-wrap:wrap}header .nav-contact{display:inline-flex}}
@media(max-width:600px){header{gap:20px}header nav{width:100%;justify-content:space-between;gap:12px 10px;font-size:12px}header .identity{font-size:10px}.hero{padding-top:28px}.hero .eyebrow{font-size:10px;line-height:1.7;letter-spacing:1px}.about{margin-top:30px}.work{padding-top:48px}.gallery-item span{font-size:12px}.index-strip a{font-size:11px}.index-strip>span{font-size:10px;line-height:1.7}.section-head>p{font-size:14px}.film-copy,.craft-copy{min-width:0}.about-copy .about-lead{font-size:22px}.rights-note p{font-size:12px}}

/* Personal signature: flowing handwritten letterforms, readable at all sizes. */
.signature{display:block;font-family:"Segoe Script","Apple Chancery","URW Chancery L",cursive;font-size:clamp(27px,3.1vw,40px);font-weight:400;font-style:normal;line-height:1.65;letter-spacing:-1.2px;color:var(--gold);margin-top:32px;transform:rotate(-3deg);transform-origin:left center;overflow-wrap:normal}
@media(max-width:600px){.signature{font-size:30px;letter-spacing:-1px;margin-top:24px}}

.identity .name-wordmark{width:205px;height:auto;object-fit:contain;flex-shrink:0}
.identity{gap:13px}
.signature{transform:none;max-width:300px;width:100%;line-height:1}
.signature img{width:100%;height:auto;object-fit:contain}
@media(max-width:1100px){header{height:auto;min-height:115px;flex-wrap:wrap;gap:18px;padding-block:20px}header nav{flex-wrap:wrap}}
@media(max-width:600px){.identity .name-wordmark{width:185px}.signature{max-width:275px}}

/* Compact two-line name balances the taller monogram. */
.identity{gap:15px;align-items:center}
.identity .brand-mark{width:60px;height:60px}
.identity .name-wordmark{width:78px;height:50px;object-fit:contain;object-position:left center}
@media(max-width:600px){.identity{gap:12px}.identity .brand-mark{width:52px;height:52px}.identity .name-wordmark{width:70px;height:45px}}

/* Approved lettering, displayed directly from the selected artwork. */
.approved-name{position:relative;display:block;width:112px;height:70px;overflow:hidden;flex-shrink:0;mix-blend-mode:multiply}
.approved-name img{position:absolute;width:275.27%;max-width:none;height:auto;left:-123.66%;top:-165.42%;object-fit:initial}
.identity .brand-mark{width:73px;height:73px}.identity{gap:16px}
.signature.approved-signature{position:relative;display:block;width:100%;max-width:330px;aspect-ratio:944/230;overflow:hidden;mix-blend-mode:multiply}
.signature.approved-signature img{position:absolute;width:162.72%;max-width:none;height:auto;left:-55.61%;top:-73.91%;object-fit:initial}
@media(max-width:600px){.approved-name{width:100px;height:62.5px}.identity .brand-mark{width:65px;height:65px}}

.approved-name img,.signature.approved-signature img{filter:brightness(1.1)}

/* An independent central wordmark, with generous space around the monogram. */
header.wrap{display:grid;grid-template-columns:1fr auto 1fr;height:auto;min-height:0;align-items:center;row-gap:24px;padding-block:25px 21px}
header .identity{grid-column:1;grid-row:1;justify-self:start}
.header-name{grid-column:2;grid-row:1;position:relative;display:block;width:clamp(230px,32vw,390px);aspect-ratio:944/230;overflow:hidden;mix-blend-mode:multiply}
.header-name img{position:absolute;width:162.72%;max-width:none;height:auto;left:-55.61%;top:-73.91%;object-fit:initial;filter:brightness(1.1)}
header nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:30px;width:100%}
@media(max-width:600px){header.wrap{grid-template-columns:56px minmax(0,1fr) 20px;row-gap:21px;padding-block:20px}.header-name{width:min(100%,260px);justify-self:center}header .identity .brand-mark{width:48px;height:48px}header nav{gap:10px 17px;font-size:12px}.nav-contact{padding:9px 13px}}

/* Separate the approved name shapes with a modest optical word space. */
.header-name.spaced-wordmark,.signature.approved-signature.spaced-wordmark{display:grid;grid-template-columns:505fr 439fr;gap:10px;aspect-ratio:984/230;overflow:visible}
.spaced-wordmark>span{display:block;position:relative;overflow:hidden;min-width:0;height:100%}
.spaced-wordmark .name-first img{width:304.158%;left:-103.96%;top:-73.91%;height:auto;max-width:none}
.spaced-wordmark .name-last img{width:349.886%;left:-234.624%;top:-73.91%;height:auto;max-width:none}

footer .footer-name{display:block;width:200px;flex-shrink:0}footer .footer-name .signature{margin:0;width:100%;max-width:none}

.theme-picker{grid-column:3;grid-row:1;justify-self:end;display:flex;gap:8px;align-items:center}
.theme-choice{width:27px;height:27px;border:2px solid transparent;border-radius:50%;padding:3px;background:transparent;cursor:pointer}
.theme-choice::after{content:"";display:block;width:17px;height:17px;border-radius:50%;background:var(--swatch)}
.theme-choice[aria-pressed="true"]{border-color:var(--ink)}
.theme-choice:focus-visible{outline:2px solid var(--turquoise);outline-offset:4px}
html[data-theme="turquoise"]{--paper:#142c2b;--ink:#f2eee4;--muted:#b8c9c3;--line:#395250;--gold:#75c9be;--turquoise:#75c9be;color-scheme:dark}
html[data-theme="turquoise"] body{background:var(--paper);color:var(--ink)}
html[data-theme="turquoise"] .about{background:#1d3735}
html[data-theme="turquoise"] .film-copy{background:#203d39}
html[data-theme="turquoise"] .button{background:#75c9be;color:#142c2b}
html[data-theme="turquoise"] .button:hover{background:#a1ddd4}
html[data-theme="turquoise"] .identity,html[data-theme="turquoise"] .header-name,html[data-theme="turquoise"] .approved-signature{background:#f7f4ee;mix-blend-mode:normal;border-radius:3px}
html[data-theme="turquoise"] .identity{padding:4px}
html[data-theme="turquoise"] .tiles-brand{background:#f7f4ee;mix-blend-mode:normal}
html[data-theme="turquoise"] .social-icon svg g,html[data-theme="turquoise"] .social-icon svg path[fill="var(--paper)"]{fill:#142c2b}
@media(max-width:600px){header.wrap{grid-template-columns:52px minmax(0,1fr) 28px;column-gap:12px}.theme-picker{flex-direction:column;gap:5px}.header-name{width:100%}}

/* Keep the original artwork on continuous light editorial bands. */
html[data-theme="turquoise"] header,html[data-theme="turquoise"] footer{--ink:#273d35;--muted:#6c726c;--line:#d7d9cf;--gold:#9b673c;--turquoise:#3f8f8a;background:#f7f4ee;color:#273d35;box-shadow:0 0 0 100vmax #f7f4ee;clip-path:inset(0 -100vmax)}
html[data-theme="turquoise"] .about{--ink:#273d35;--muted:#6c726c;--line:#d7d9cf;--gold:#9b673c;background:#e9ece3;color:#273d35}
html[data-theme="turquoise"] .identity,html[data-theme="turquoise"] .header-name,html[data-theme="turquoise"] .approved-signature{background:transparent;mix-blend-mode:multiply;border-radius:0}
html[data-theme="turquoise"] .identity{padding:0}
html[data-theme="turquoise"] .orbit{color:#9b673c}

/* Explicit foregrounds for panels that keep a dark background in both themes. */
.film-project{background:#273d35;color:#f7f4ee}
html[data-theme="turquoise"] .film-project,html[data-theme="turquoise"] .film-copy{background:#203d39;color:#f2eee4}
html[data-theme="turquoise"] .film-copy h3,html[data-theme="turquoise"] .film-copy>p,html[data-theme="turquoise"] .film-copy .project-number,html[data-theme="turquoise"] .film-copy .text-link{color:#f2eee4}
html[data-theme="turquoise"] .film-copy .muted,html[data-theme="turquoise"] .film-copy .social-links a{color:#c6d6d0}
html[data-theme="turquoise"] .film-copy a:hover{color:#89d6cb}
html[data-theme="turquoise"] .about{--turquoise:#286e69}
html[data-theme="turquoise"] header,html[data-theme="turquoise"] footer{--turquoise:#286e69}
html[data-theme="turquoise"] .skip{color:#273d35}

/* About follows the selected dark palette too. */
html[data-theme="turquoise"] .about{--ink:#f2eee4;--muted:#c6d6d0;--line:#48635e;--gold:#89d6cb;--turquoise:#a1e2d8;background:#1d3735;color:var(--ink)}
html[data-theme="turquoise"] .about .approved-signature{mix-blend-mode:screen}
html[data-theme="turquoise"] .about .approved-signature img{filter:brightness(1.1) invert(1) grayscale(1) brightness(1.3)}

html[data-theme="turquoise"] .tile-detail{box-shadow:none}
html[data-theme="turquoise"] .about .approved-signature{mix-blend-mode:normal}
html[data-theme="turquoise"] .about .approved-signature img{filter:url(#signature-dark-colours)}

/* Floating tile has no painted mat; keep it above the portrait outline. */
.tile-detail,html[data-theme="turquoise"] .tile-detail{padding:0;background:transparent;box-shadow:none;z-index:4}
.tile-detail span{display:block;padding-top:10px}
.tiles-brand,html[data-theme="turquoise"] .tiles-brand{background:transparent;mix-blend-mode:normal}
.tiles-brand img{filter:url(#tiles-logo-clear)}

/* Keep the portrait caption clear of the overlapping tile photograph. */
.portrait-frame .image-note{left:18px;right:18px;bottom:28%;text-align:center;font-size:clamp(9px,.8vw,11px);letter-spacing:1.15px;line-height:1.6;white-space:normal;z-index:2;text-shadow:0 1px 5px #000,0 0 12px #0008;pointer-events:none}
@media(max-width:600px){.portrait-frame .image-note{bottom:29%;left:12px;right:12px;font-size:9px;letter-spacing:1px}}

.portrait-caption{position:absolute;left:18px;bottom:4px;width:52%;color:var(--muted);font:10px/1.65 Arial,Helvetica,sans-serif;letter-spacing:1.4px;text-align:center;pointer-events:none}
@media(max-width:600px){.composition{padding-bottom:66px}.portrait-caption{left:8px;bottom:4px;font-size:9px;letter-spacing:1px}.composition .orbit{bottom:40px}}

/* Caption settles into place just after the copper outline completes. */
.motion-enabled .portrait-caption{animation:caption-settle 1.2s cubic-bezier(.16,1,.3,1) 3.2s both}
@keyframes caption-settle{from{opacity:0;transform:translateY(9px);letter-spacing:2.8px;filter:blur(2px)}to{opacity:1;transform:translateY(0);letter-spacing:1.4px;filter:blur(0)}}
@media(max-width:600px){.motion-enabled .portrait-caption{animation-name:caption-settle-mobile}@keyframes caption-settle-mobile{from{opacity:0;transform:translateY(8px);letter-spacing:2px;filter:blur(2px)}to{opacity:1;transform:none;letter-spacing:1px;filter:blur(0)}}}

/* Words are launched from the star into their final caption positions. */
.motion-enabled .portrait-caption{animation:none;overflow:visible}
.caption-word-slot,.caption-word{display:inline-block}
.motion-enabled .caption-word{animation:star-send-word 1.35s cubic-bezier(.16,.7,.23,1) var(--word-delay) both;will-change:transform,opacity}
@keyframes star-send-word{
 0%{opacity:0;transform:translate(var(--launch-x),var(--launch-y)) rotate(-16deg) scale(.45);filter:blur(2px)}
 22%{opacity:.85}
 72%{opacity:1;filter:blur(0)}
 100%{opacity:1;transform:translate(0,0) rotate(0) scale(1);filter:blur(0)}
}
.motion-enabled .orbit.orbit-active{animation:portrait-star-turn 24s linear infinite,star-send-glow 1.6s ease-out both}
@keyframes star-send-glow{0%,100%{filter:none}25%,55%{filter:brightness(1.5) drop-shadow(0 0 5px #c3926380)}}

/* Compact labelled palette switch beside navigation. */
header nav{gap:clamp(14px,2vw,30px);flex-wrap:wrap}
.theme-picker{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;flex-direction:row;gap:0;padding:3px;border:1px solid #c8c8ba;border-radius:999px;background:#efede5;isolation:isolate;flex-shrink:0;margin-left:4px}
.theme-picker::before{content:"";position:absolute;left:3px;top:3px;bottom:3px;width:calc((100% - 6px)/2);border-radius:999px;background:#e2d0bb;transition:transform .25s ease,background .25s ease;z-index:-1}
.theme-picker[data-selected="turquoise"]::before{transform:translateX(100%);background:#c7e0d9}
.theme-choice{width:auto;height:auto;min-height:34px;padding:7px 12px;border:0;border-radius:999px;background:transparent;font:12px/1.4 Arial,Helvetica,sans-serif;color:#56635c;cursor:pointer}
.theme-choice::after{display:none}
.theme-choice[aria-pressed="true"]{border:0;color:#273d35;font-weight:600}
@media(max-width:600px){header.wrap{grid-template-columns:52px minmax(0,1fr) 20px}header nav{gap:12px 15px}.theme-picker{margin:0;flex-direction:row}.theme-choice{font-size:11px;min-height:36px;padding:8px 12px}}

/* Quiet colour swatches with accessible names and an active ring. */
.theme-picker{display:inline-flex;align-items:center;gap:5px;padding:3px 5px;background:transparent;border:1px solid #d7d9cf;margin-left:4px}
.theme-picker::before{display:none}
.theme-choice{position:relative;display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:50%;font-size:0}
.theme-choice::after{content:"";display:block;width:19px;height:19px;border-radius:50%;background:var(--swatch)}
.theme-choice[aria-pressed="true"]{border:1px solid #65776d}
.theme-choice:hover::after{box-shadow:0 0 0 2px #273d3515}
@media(max-width:600px){.theme-picker{gap:5px;padding:3px 5px}.theme-choice{width:36px;height:36px;min-height:36px;padding:0;font-size:0}}

/* Give the portrait label its own clear space above the composition. */
.composition{padding-top:26px}
.composition .vertical-note{writing-mode:horizontal-tb;top:0;left:5px;right:20px;text-align:center;font-size:9px;line-height:1.6;letter-spacing:1.2px;color:var(--muted)}
header .theme-picker{grid-column:3;grid-row:1;justify-self:end;align-self:center;margin:0}
@media(max-width:600px){header.wrap{grid-template-columns:52px minmax(0,1fr) 44px;column-gap:10px}.header-name{width:100%}header .theme-picker{flex-direction:column;gap:2px;padding:3px}.theme-choice{width:32px;height:32px;min-height:32px}.composition .vertical-note{font-size:8px;letter-spacing:1px;left:0;right:10px}}

/* Palette control sits on its own quiet row below navigation. */
header .theme-picker{grid-column:1/-1;grid-row:3;justify-self:center;align-self:center;flex-direction:row;gap:5px;padding:3px 5px;margin-top:-8px}
@media(max-width:600px){header.wrap{grid-template-columns:52px minmax(0,1fr) 52px}header .theme-picker{grid-column:1/-1;grid-row:3;flex-direction:row;gap:5px;padding:3px 5px;margin-top:-5px}}

.vertical-note .typing-reserve{visibility:hidden}
.vertical-note .typing-visible{position:absolute;inset:0;text-align:center}
.vertical-note.is-typing .typing-visible::after{content:"";display:inline-block;height:1em;width:1px;background:var(--gold);vertical-align:-.12em;margin-left:3px;animation:typing-caret .65s steps(1) infinite}
@keyframes typing-caret{50%{opacity:0}}

/* A quieter tile accent leaves the portrait as the main focus. */
.composition .tile-detail{width:33%;right:-4px;transform:rotate(2deg)}
@media(max-width:600px){.composition .tile-detail{width:30%;right:0}}
@media(min-width:601px) and (max-width:760px){.composition .tile-detail{width:37.4%;right:-4px}}

.tile-puzzle{position:relative;isolation:isolate}
.tile-puzzle>img{opacity:0;width:100%;height:auto;display:block}
.puzzle-layer{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);pointer-events:none}
.puzzle-piece{display:block;background-size:400% 300%;background-repeat:no-repeat;opacity:0;padding:0;margin:0}
.puzzle-playing .puzzle-piece{animation:tile-piece-arrive .8s cubic-bezier(.2,.75,.25,1) var(--piece-delay) both}
@keyframes tile-piece-arrive{from{opacity:0;transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-turn)) scale(.9)}to{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.tile-puzzle.puzzle-complete>img{opacity:1}.puzzle-complete .puzzle-layer{display:none}

/* Editorial typography: expressive headings, calm readable body copy. */
:root{--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}
body{font-family:var(--sans)}
button,input,textarea,select{font-family:var(--sans)}
h1,h2,h3,.films-heading h3,.film-card h4{font-family:var(--serif);font-weight:500;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(48px,5.4vw,76px);line-height:1.02}
h2{font-size:clamp(38px,4.1vw,58px);line-height:1.08}
h3{font-size:46px;line-height:1.12}
h1 em,h2 em,h3 em{font-weight:500}
.about-copy p,.film-copy p,.craft-copy p,.lead,.contact-row>div>p{font-size:16px;line-height:1.85}
.about-copy .about-lead{font-family:var(--serif);font-weight:500;font-size:clamp(25px,2.7vw,34px);line-height:1.3;letter-spacing:-.015em}
header nav{font-size:13px;font-weight:500;letter-spacing:.01em}
.eyebrow,.project-number{font-weight:600;letter-spacing:.14em}
.tile-detail>span{font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.2}
.film-card h4{font-size:27px;line-height:1.15}
@media(max-width:600px){h1{font-size:clamp(44px,11vw,60px)}h2{font-size:40px}h3{font-size:38px}header nav{font-size:12px}.film-card h4{font-size:25px}.about-copy .about-lead{font-size:27px}.composition .tile-detail>span{font-size:14px}}

/* Comfortable line lengths and natural paragraph wrapping. */
.about-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,80px);align-items:start}
.about-grid>div{min-width:0}
.about-copy{max-width:62ch}
.about-copy p,.lead,.film-copy p,.craft-copy p,.contact-row p{max-width:62ch;text-align:left;text-wrap:pretty;word-break:normal;overflow-wrap:normal;hyphens:none;line-height:1.75}
.about-copy>p{margin:0 0 1.3em}
.about-copy .about-lead{max-width:32ch;line-height:1.35;margin:0 0 1em;text-wrap:pretty}
.about h2{max-width:15ch;line-height:1.12}
@media(max-width:900px){.about-grid{grid-template-columns:minmax(0,1fr);gap:32px}.about-copy{max-width:62ch}.about h2{max-width:22ch}.about .signature{margin-top:24px}.about-copy .about-lead{font-size:30px}}
@media(max-width:600px){.about-grid{gap:28px}.about-copy .about-lead{font-size:27px}.about-copy p{line-height:1.75}.about h2{font-size:38px}}

/* Consistent copper paper and document-style paragraph alignment. */
html:not([data-theme="turquoise"]) .about{background:var(--paper)}
.about-copy p:not(.about-lead){text-align:justify;text-align-last:left;text-justify:inter-word;text-wrap:wrap;hyphens:auto;line-height:1.75;letter-spacing:normal;margin:0 0 1.25em}
.about-copy .about-lead{text-align:left;text-align-last:auto;hyphens:none}
.about-copy .professional p{margin-top:16px}

/* Mobile readability and platform-independent brand rendering. */
.spaced-wordmark,.header-name.spaced-wordmark,html[data-theme="turquoise"] .header-name.spaced-wordmark,html[data-theme="turquoise"] .about .approved-signature{mix-blend-mode:normal;background:transparent}
.spaced-wordmark img,html[data-theme="turquoise"] .about .approved-signature img{filter:none}
.orbit svg{display:block;width:1em;height:1em;fill:currentColor}
@media(max-width:600px){
 body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .about-copy p:not(.about-lead),.film-copy p,.craft-copy p,.lead,.contact-row p{font-size:17px;font-weight:400;line-height:1.65;text-align:left;text-align-last:auto;text-wrap:pretty;hyphens:none;word-break:normal;overflow-wrap:normal}
 html:not([data-theme="turquoise"]){--muted:#505c55}
 .section-head>p,.films-heading>p,.film-card p{font-size:16px;line-height:1.65}
 .text-link,.social-links,.film-card>a{font-size:15px}
 header nav{font-size:14px;gap:12px 16px}
 .about-copy .about-lead{font-size:28px;line-height:1.35}
 .about .signature{max-width:290px}
 .gallery-item span,.gallery-note,.social-directory small,.rights-note p{font-size:13px;line-height:1.6}
}
