:root{
  --paper:#fbfbf9;
  --ink:#1e1c1b;
  --stone:#77716b;
  --rule:#e6e2dd;
  --pin:#c8166b;
  --serif:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --gutter:clamp(20px,4vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans)}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--pin);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:50}

/* header */
.site-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:22px var(--gutter);border-bottom:1px solid var(--rule);position:sticky;top:0;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(6px);z-index:20}
.wordmark{font:500 22px/1 var(--serif);text-decoration:none;letter-spacing:.005em;white-space:nowrap}
.wordmark .dot{color:var(--pin)}
.nav{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:15px}
.nav a{text-decoration:none;color:var(--stone);padding:4px 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--pin)}
.menu-btn{display:none;background:none;border:0;font:500 15px var(--sans);color:var(--ink);padding:6px 0;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--rule);padding:8px var(--gutter) 20px}
  .nav.open{display:flex}
  .nav a{padding:10px 0;font-size:18px;border-bottom:1px solid var(--rule)}
  .nav a[aria-current="page"]{border-bottom-color:var(--rule);color:var(--pin)}
}

main{padding:0 var(--gutter)}

/* home */
.hero{padding:clamp(40px,8vw,110px) 0 clamp(28px,4vw,48px)}
.hero h1{font:400 clamp(56px,13.5vw,212px)/.86 var(--serif);letter-spacing:-.025em;margin:0}
.hero h1 > span{display:block}
.hero h1 .dot{color:var(--pin)}
.hero p{max-width:34em;margin:clamp(24px,3vw,40px) 0 0;font-size:clamp(18px,1.6vw,22px);line-height:1.5}
.hero .book{display:inline-block;margin-top:22px;text-decoration:none;border-bottom:1px solid var(--pin);padding-bottom:2px;font-weight:500}
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter)}
.strip img{width:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:700px){.strip{grid-template-columns:repeat(3,1fr)}.strip a:nth-child(n+4){display:none}}

.work{display:grid;grid-template-columns:repeat(2,1fr);align-items:start;gap:clamp(28px,4vw,56px) clamp(20px,3vw,40px);padding:clamp(56px,8vw,110px) 0}
.work a{text-decoration:none;display:block}
.work .frame{overflow:hidden;background:var(--rule)}
.work img{width:auto;max-width:100%;max-height:760px;height:auto;transition:transform .6s ease}
.work .frame{display:inline-block;max-width:100%}
.work a:hover img{transform:scale(1.025)}
.work h2{font:400 clamp(28px,3.2vw,44px)/1.1 var(--serif);margin:16px 0 2px}
.work p{margin:0;color:var(--stone);font-size:15px}
@media (max-width:700px){.work{grid-template-columns:1fr}}

.now{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:center;border-top:1px solid var(--rule);padding:clamp(48px,7vw,96px) 0}
.now h2{font:400 clamp(34px,4.4vw,64px)/1.05 var(--serif);margin:0 0 18px}
.now p{margin:0 0 14px;max-width:32em}
@media (max-width:800px){.now{grid-template-columns:1fr}}

/* page titles */
.page-head{padding:clamp(40px,7vw,96px) 0 clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px}
.page-head h1{font:400 clamp(46px,8vw,120px)/.92 var(--serif);letter-spacing:-.02em;margin:0}
.page-head p{margin:0;color:var(--stone);max-width:30em}

/* gallery */
.gallery{columns:3 280px;column-gap:14px;padding-bottom:80px}
.gallery button{display:block;width:100%;padding:0;margin:0 0 14px;border:0;background:var(--rule);cursor:zoom-in;break-inside:avoid}
.gallery img{width:100%}
.gallery.js{columns:auto;display:flex;gap:14px;align-items:flex-start}
.gallery.js .col{flex:1;min-width:0}
.gallery-nav{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--rule);padding:28px 0 60px;font:400 clamp(22px,2.4vw,32px)/1.2 var(--serif)}
.gallery-nav a{text-decoration:none}
.gallery-nav a:hover{color:var(--pin)}
.gallery-nav small{display:block;font:400 14px var(--sans);color:var(--stone)}
.gallery-nav .next{text-align:right;margin-left:auto}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(251,251,249,.97);display:none;z-index:100;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:min(92vw,1600px);max-height:86vh;width:auto;height:auto;box-shadow:0 2px 30px rgba(30,28,27,.08)}
.lb button{position:absolute;background:none;border:0;color:var(--ink);font:400 16px var(--sans);cursor:pointer;padding:14px 18px}
.lb .close{top:10px;right:10px}
.lb .prev{left:4px;top:50%;transform:translateY(-50%);font:300 44px/1 var(--serif)}
.lb .next{right:4px;top:50%;transform:translateY(-50%);font:300 44px/1 var(--serif)}
.lb .count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:var(--stone);font-size:14px}
@media (prefers-reduced-motion:no-preference){.lb.open img{animation:lbin .25s ease}@keyframes lbin{from{opacity:0}to{opacity:1}}}

/* reel */
.reel{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:40px 28px;padding-bottom:90px}
.reel figure{margin:0}
.video{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.video img{width:100%;height:100%;object-fit:cover}
.video .tile{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--paper);font:400 clamp(26px,3vw,40px) var(--serif)}
.video button{position:absolute;inset:0;width:100%;border:0;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
.video button span{background:var(--paper);color:var(--ink);font:500 14px var(--sans);padding:10px 18px}
.video button:hover span{background:var(--pin);color:var(--paper)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.reel figcaption{margin-top:12px}
.reel figcaption b{display:block;font:400 22px/1.25 var(--serif)}
.reel figcaption a{color:var(--stone);font-size:14px}

/* text pages */
.prose{max-width:40em;font-size:18px;line-height:1.7}
.prose p{margin:0 0 1.1em}
.bio{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);padding-bottom:90px;align-items:start}
.bio img{position:sticky;top:96px}
@media (max-width:800px){.bio{grid-template-columns:1fr}.bio img{position:static}}

.cv{padding-bottom:90px}
.cv section{display:grid;grid-template-columns:minmax(180px,3fr) minmax(0,9fr);gap:20px 40px;border-top:1px solid var(--rule);padding:30px 0}
.cv h2{font:400 26px/1.2 var(--serif);margin:0}
.cv ul{list-style:none;margin:0;padding:0;columns:3 200px;column-gap:28px;font-size:16px;line-height:1.75}
.cv li{break-inside:avoid}
@media (max-width:700px){.cv section{grid-template-columns:1fr}}

.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;border-top:1px solid var(--rule);padding:36px 0 90px}
.ways h3{font:400 26px/1.2 var(--serif);margin:0 0 10px}
.ways p{margin:0;color:var(--ink)}
@media (max-width:800px){.ways{grid-template-columns:1fr}}

.contact{padding:clamp(20px,4vw,40px) 0 120px}
.contact .mail{font:400 clamp(34px,6vw,84px)/1.05 var(--serif);text-decoration:none;border-bottom:2px solid var(--pin);word-break:break-word}
.contact .mail:hover{color:var(--pin)}
.contact p{max-width:34em;font-size:19px}

.site-foot{border-top:1px solid var(--rule);padding:26px var(--gutter);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;color:var(--stone);font-size:14px}
.site-foot a{color:var(--stone)}
