@font-face{font-family:"Schibsted Grotesk";src:url("schibsted-grotesk.1448115b.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --paper:#ffffff;
  --ink:#000000;
  --quiet:#6b6b6b;
  --line:#e4e4e4;
  --gutter:clamp(16px,4vw,48px);
  --font:"Schibsted Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  --step-0:clamp(15px,0.9rem + 0.15vw,17px);
  --step-1:clamp(18px,1rem + 0.5vw,22px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--step-0);line-height:1.55;font-kerning:normal;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}

.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:var(--gutter);top:8px;background:var(--paper);padding:6px 10px;z-index:20}

/* Header */
.site-head{position:sticky;top:0;z-index:10;background:var(--paper);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;padding:18px var(--gutter) 14px}
.site-name{font-weight:500;letter-spacing:.01em}
.site-nav ul{display:flex;gap:clamp(14px,2.4vw,32px)}
.site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
@media (max-width:520px){
  .site-head{flex-direction:column;align-items:stretch;gap:2px;padding-top:12px;padding-bottom:4px}
  .site-name{padding:4px 0}
  .site-nav ul{justify-content:space-between;gap:0}
  .site-nav a{display:flex;align-items:center;min-height:44px;padding:0}
}

@media (max-width:359px){.site-nav{font-size:14px}}

main{padding:0 var(--gutter)}
.page-title{font-size:var(--step-0);font-weight:500;margin:clamp(24px,5vh,56px) 0 clamp(20px,3vh,32px)}
.quiet{color:var(--quiet)}

/* Home: images only */
.stream{display:flex;flex-direction:column;align-items:center;gap:clamp(64px,16vh,180px);padding:clamp(24px,6vh,72px) 0 clamp(64px,14vh,160px)}
.stream li{width:100%;display:flex;justify-content:center}
.stream .fr{display:block;overflow:hidden}
.stream .fr.p{aspect-ratio:3/4;width:min(100%,63vh);width:min(100%,63svh)}
.stream .fr.l{aspect-ratio:3/2;width:min(100%,1100px,126vh);width:min(100%,1100px,126svh)}
.stream .fr picture{display:block;width:100%;height:100%}
.stream .fr img{width:100%;height:100%;object-fit:cover}

/* Works index */
.works-group+.works-group{margin-top:clamp(48px,9vh,96px)}
.works-group h2{font-size:var(--step-0);font-weight:400;color:var(--quiet);margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:clamp(28px,4vw,48px) clamp(16px,2.5vw,32px)}
.grid a{display:block}
.thumb{aspect-ratio:4/5;overflow:hidden;background:#f2f2f2}
.thumb img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%)}
.grid .cap{display:flex;justify-content:space-between;gap:12px;margin-top:10px}
.grid .cap span:last-child{color:var(--quiet)}
.grid a:hover{text-decoration:none}
.grid a:hover .cap span:first-child{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
@media (max-width:420px){.grid{grid-template-columns:1fr 1fr;gap:28px 14px}}

/* Work page */
.work{display:grid;grid-template-columns:1fr;gap:24px;padding:clamp(20px,4vh,48px) 0 clamp(48px,10vh,120px)}
.work-info h1{font-size:var(--step-1);font-weight:500;line-height:1.25}
.work-info dl{margin-top:12px}
.work-info dd{color:var(--ink)}
.work-info dt{position:absolute;left:-9999px}
.work-text{max-width:62ch}
.work-text p+p{margin-top:1em}
.work-text p:first-child{margin-top:0}
.work-text .lead{font-weight:500}
.work-media{display:flex;flex-direction:column;gap:clamp(16px,3vw,40px)}
.work-media button{all:unset;cursor:zoom-in;display:block}
.work-media button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.work-media img{width:100%;max-height:90vh;max-height:90svh;object-fit:contain;object-position:left top}
.tag{display:inline-block;margin-top:10px;color:var(--quiet)}
.more{margin-top:16px}
.more a{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.pager{display:flex;justify-content:space-between;gap:16px;padding:24px 0 clamp(40px,8vh,80px);border-top:1px solid var(--line)}
.pager a{max-width:45%}
@media (min-width:900px){
  .work{grid-template-columns:minmax(240px,320px) 1fr;gap:clamp(32px,4vw,72px);align-items:start}
  .work-side{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}
  .work-text{margin-top:20px;font-size:.95em}
}
@media (max-width:899px){
  .work-side{display:contents}
  .work-info{order:1}
  .work-media{order:2}
  .work-text{order:3}
}

/* Films and publications: plain lists */
.list{border-top:1px solid var(--line);max-width:1100px}
.list>li{display:grid;grid-template-columns:5.5rem 1fr;gap:4px 24px;padding:18px 0;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.list .yr{color:var(--quiet)}
.list h2,.list h3{font-size:var(--step-0);font-weight:500}
.list .meta{color:var(--quiet)}
.list .body{grid-column:2;max-width:62ch}
.list .media{grid-column:2;margin-top:12px;max-width:760px}
.list .placeholder{color:var(--quiet);font-style:italic}
@media (max-width:520px){.list>li{grid-template-columns:1fr}.list .body,.list .media{grid-column:1}}
.section-h{font-size:var(--step-0);font-weight:400;color:var(--quiet);margin:clamp(40px,7vh,72px) 0 12px}
.section-h:first-of-type{margin-top:0}

.video{position:relative;aspect-ratio:16/9;background:#f2f2f2}
.video iframe,.video button{position:absolute;inset:0;width:100%;height:100%;border:0}
.video button{cursor:pointer;background:#f2f2f2;font:inherit;color:var(--ink)}
.video button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video button span{position:relative;background:var(--paper);padding:8px 14px}

/* About */
.about{display:grid;gap:clamp(32px,6vh,64px);padding-bottom:clamp(48px,10vh,120px);max-width:1100px}
.about .bio p{max-width:62ch}
.about .bio p+p{margin-top:1em}
.contact li+li{margin-top:2px}
.contact a,.cv-link a{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.cv h2{font-size:var(--step-0);font-weight:500;margin:28px 0 8px}
.cv h2:first-child{margin-top:0}
.cv li{display:grid;grid-template-columns:5.5rem 1fr;gap:24px;padding:2px 0}
.cv li span:first-child{color:var(--quiet)}
@media (min-width:900px){.about{grid-template-columns:1fr 1fr;column-gap:clamp(32px,5vw,80px)}.about .cv{grid-row:1 / span 3;grid-column:2}}
@media (max-width:420px){.cv li{grid-template-columns:4.2rem 1fr;gap:14px}}

/* Contact form */
.form{max-width:34rem;margin-bottom:24px}
.form p{margin:0 0 14px}
.form label{display:block;margin-bottom:4px;color:var(--quiet)}
.form input,.form textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid #c9c9c9;border-radius:0;padding:10px 12px;min-height:44px}
.form textarea{resize:vertical}
.form input:focus,.form textarea:focus{outline:2px solid var(--ink);outline-offset:0;border-color:var(--ink)}
.form button{font:inherit;color:var(--paper);background:var(--ink);border:0;padding:12px 22px;min-height:44px;cursor:pointer}
.form button:disabled{opacity:.6;cursor:default}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.contact-page{display:grid;gap:clamp(32px,6vh,56px);padding-bottom:clamp(48px,10vh,120px)}
@media (min-width:900px){.contact-page{grid-template-columns:minmax(0,34rem) 1fr;column-gap:clamp(48px,8vw,140px)}.contact-page .section-h{margin-top:0}}

/* Footer */
.site-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:24px var(--gutter) 28px;color:var(--quiet);font-size:.9em}
.site-foot ul{display:flex;flex-wrap:wrap;gap:6px 18px}

/* Viewer */
.viewer{border:0;padding:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:var(--paper)}
.viewer::backdrop{background:var(--paper)}
.viewer figure{position:absolute;inset:56px 16px 48px;display:flex;align-items:center;justify-content:center}
.viewer img{max-width:100%;max-height:100%;object-fit:contain}
.viewer .vbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter)}
.viewer button{background:none;border:0;font:inherit;color:var(--ink);cursor:pointer;padding:6px 4px}
.viewer .vnav{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:28px}
.viewer .count{color:var(--quiet)}

.notfound{padding:clamp(48px,12vh,140px) 0;max-width:40ch}
.notfound a{text-decoration:underline}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.site-head{position:static}.site-nav,.pager,.site-foot ul{display:none}}
