:root{font-family:'Tenor Sans',Arial,Helvetica,sans-serif;color:#302a24;background:#FAFAFA;color-scheme:light}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:hover{text-decoration:underline;text-underline-offset:5px}button:focus-visible,a:focus-visible{outline:1px solid currentColor;outline-offset:6px}[hidden]{display:none!important}header{padding:54px 7.8vw 0;display:flex;justify-content:space-between;align-items:flex-start;gap:40px}.identity{display:flex;flex-direction:column;gap:6px;flex-shrink:0;font-size:19px;line-height:19px;letter-spacing:.95px;font-weight:400}.identity:hover{text-decoration:none}.role{font-size:11px;line-height:1.3;letter-spacing:0}nav{display:flex;gap:clamp(16px,2.1vw,32px);flex-wrap:wrap;justify-content:flex-end;padding-top:0;font-size:14px;line-height:14px;letter-spacing:.7px;font-weight:400}nav a,nav a:hover,nav a[aria-current=page]{text-decoration:none}main{padding:94px 24px 44px}#gallery{display:flex;flex-direction:column;align-items:center}#frame{background:none;border:0;padding:0;cursor:pointer;max-width:100%;line-height:0}#image{display:block;max-width:min(72vw,1100px);max-height:70svh;width:auto;height:auto;object-fit:contain}#film{width:min(72vw,1000px);max-height:70svh}.caption{display:flex;gap:30px;justify-content:center;margin-top:18px;font-size:13px;line-height:1.5;color:#716a62}#empty{margin:20vh auto;font-size:16px}#next-film{margin-top:20px;border:0;background:none;text-decoration:underline;cursor:pointer}#info{max-width:500px;margin:10vh auto 0;font-size:18px;line-height:1.7}#info h1{font-size:16px;font-weight:400;margin-bottom:32px}#text{white-space:pre-line}#text a{text-decoration:underline}@media(max-width:850px){header{padding:30px 6vw 0;gap:25px}nav{max-width:380px;gap:12px 20px}main{padding-top:70px}#image{max-width:84vw}}@media(max-width:560px){header{padding:28px 24px 0;display:block}nav{padding-top:30px;justify-content:flex-start;gap:14px 20px;max-width:none}.identity{font-size:20px}main{padding:52px 24px 30px}#image{max-width:calc(100vw - 48px);max-height:62svh}#film{width:100%}#info{margin-top:25px}.caption{font-size:13px}}

#embed{width:min(72vw,960px);height:min(65svh,540px);border:0}@media(max-width:560px){#embed{width:100%;height:55svh}}

/* Self-hosted Tenor Sans, SIL Open Font License. */
@font-face{font-family:"Tenor Sans";src:url("/fonts/tenor-v1.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
nav{font-size:14px;align-items:center}nav a{display:inline-flex;align-items:center;min-height:19px}body[data-section="home"] .caption,body[data-section="photo"] .caption{display:none}@media(max-width:560px){nav{font-size:14px}}

/* Contact: calm typography, open space and simple underline fields. */
#contact{max-width:1060px;margin:5vh auto 0;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(48px,8vw,110px);padding:0 24px 40px}
.contact-intro h1{font-size:clamp(28px,3vw,39px);font-weight:400;line-height:1.2;letter-spacing:-.035em;margin:0 0 22px}.contact-intro>p{font-size:15px;line-height:1.65;color:#716a62;max-width:270px;margin:0}.direct-contacts{margin-top:54px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}.direct-contacts p{font-size:12px;color:#716a62;margin:0 0 4px}.direct-contacts a{font-size:15px;overflow-wrap:anywhere}
#contact-form{display:flex;flex-direction:column;gap:30px}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}#contact-form label{display:flex;flex-direction:column;font-size:13px;line-height:1.5;gap:10px;min-width:0}.optional{font-size:11px;color:#716a62;margin-top:-8px}#contact-form input,#contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #c7c3be;border-radius:0;background:transparent;color:inherit;font:inherit;font-size:16px;line-height:1.6;padding:5px 0 10px;outline:none}#contact-form input:focus,#contact-form textarea:focus{border-bottom-color:#302a24;box-shadow:0 1px 0 #302a24}#contact-form textarea{resize:vertical;min-height:110px}.contact-submit button{border:1px solid #302a24;background:#302a24;color:#fafafa;padding:15px 20px;display:flex;justify-content:space-between;gap:38px;font-size:13px;cursor:pointer}.contact-submit button:hover{background:#4a433c}.contact-submit button:disabled{opacity:.55;cursor:wait}#contact-status{font-size:13px;line-height:1.6;margin:0}#contact-status:empty{display:none}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden}
@media(max-width:750px){#contact{grid-template-columns:1fr;gap:40px;max-width:560px;margin-top:0;padding:0 0 30px}.direct-contacts{margin-top:28px}.contact-intro>p{max-width:none}}@media(max-width:420px){.contact-row{grid-template-columns:1fr;gap:30px}}

.identity small{font-size:11px;line-height:1.3;letter-spacing:0}.works-archive{display:grid;grid-template-columns:repeat(3,188px);column-gap:93px;row-gap:48px;align-items:center;grid-auto-rows:minmax(250px,auto);padding:0;margin:72px 0 80px 7.8vw;width:max-content;max-width:calc(100% - 15.6vw)}.archive-item{display:block;width:188px;min-width:0;text-decoration:none}.archive-image{height:auto;display:flex;align-items:center;justify-content:flex-start}.archive-image img{display:block;max-width:100%;max-height:250px;width:auto;height:auto;object-fit:contain}.archive-caption{display:block;font-size:12px;font-weight:400;line-height:1.45;margin-top:5px}.archive-item:hover{text-decoration:none}.archive-item:hover .archive-caption{text-decoration:underline;text-underline-offset:3px}@media(max-width:1000px){.works-archive{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 7vw;width:auto;margin-left:6vw;margin-right:6vw;max-width:none}.archive-item{width:100%}.works-archive{grid-auto-rows:minmax(24vw,auto)}.archive-image{height:auto}.archive-image img{max-height:24vw}}@media(max-width:560px){.works-archive{margin:52px 24px 60px;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 26px}.works-archive{grid-auto-rows:minmax(48vw,auto)}.archive-image{height:auto}.archive-image img{max-height:48vw}.archive-caption{font-size:11px}}

/* Keep media inline and prevent double-tap zoom without disabling pinch zoom. */
#frame,.gallery-item,.video-load,video{touch-action:manipulation}
@media(max-width:850px),(hover:none) and (pointer:coarse){
.gallery-item{cursor:default}
.gallery-item>img,.gallery-item:hover>img{transform:none;transition:none}
body[data-section="home"] #frame{width:min(84vw,1100px);height:62svh;display:flex;align-items:center;justify-content:center}
body[data-section="home"] #image{width:85%;height:85%;max-width:100%;max-height:100%;object-fit:contain}
.video-shell{position:relative;aspect-ratio:16/9}
.vertical-films .video-shell{aspect-ratio:9/16}
.video-shell>.video-load,.video-shell>iframe{position:absolute;inset:0;width:100%;height:100%;max-width:100%;border:0}
.film video{object-fit:contain}
}
@media(max-width:560px){body[data-section="home"] #frame{width:calc(100vw - 48px)}}

.video-shell>.hosted-film{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#161616}

/* Place the identity close to the viewport edge on every page. */
header > .identity{position:relative;left:calc(24px - 7.8vw)}
@media(max-width:850px){header > .identity{left:calc(16px - 6vw)}}
@media(max-width:560px){header > .identity{left:-8px}}
