:root{--ink:#4a4a4a;--ink-2:#1a1a1a;--mute:#9a9a9a;--rule:#e6e6e6;--bg:#fff;--sans:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{font:15px/1.6 var(--sans);color:var(--ink);background:var(--bg);display:grid;grid-template-columns:200px 1fr;min-height:100vh}
a{color:inherit;text-decoration:none}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem}
.side{padding:48px 24px 24px 40px;position:sticky;top:0;align-self:start;height:100vh}
.name{display:block;font-weight:700;font-size:21px;line-height:.95;letter-spacing:-.01em;color:var(--ink-2);margin-bottom:44px}
.name span{display:block}.name span+span{padding-left:14px}
.nav{display:flex;flex-direction:column;gap:14px;font-size:13px}
.nav a{color:var(--ink)}.nav a.on{color:var(--mute)}
.nav a:nth-child(4){margin-top:14px}
.menu{display:none}
.main{padding:48px 48px 64px 24px;max-width:1120px}
/* viewer */
.intro{max-width:52ch;font-size:13px;color:var(--mute);margin:0 0 28px;line-height:1.55}
.stage{margin:0 0 18px;max-width:900px}
.stage img{display:block;width:auto;height:auto;max-width:100%;max-height:78vh;object-fit:contain}
.capblock{max-width:900px}
.cap{font-weight:700;color:var(--ink-2);font-size:14px}
.sub{font-size:12px;color:var(--mute);margin:2px 0 14px}
.ctl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-top:6px}
.ctl button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;letter-spacing:inherit;text-transform:inherit}
.ctl button:hover{color:var(--ink-2);text-decoration:underline}
.ctl span{color:var(--mute);margin:0 .2em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:28px;margin-top:36px;max-width:900px}
.grid[hidden]{display:none}
.th{background:none;border:0;padding:0;cursor:pointer}
.th img{display:block;width:100%;height:auto}
.th.on img{outline:2px solid var(--ink-2);outline-offset:4px}
/* text pages */
.text{max-width:640px}
.text h1{font-size:15px;font-weight:700;color:var(--ink-2);margin-bottom:28px}
.text h2{font-size:14px;font-weight:700;color:var(--ink-2);margin:34px 0 8px}
.text h2 small{display:block;font-weight:400;font-size:12px;color:var(--mute)}
.text h3{font-size:13px;font-weight:700;color:var(--ink-2);margin:22px 0 6px}
.text p{margin:0 0 10px}
.text a{text-decoration:underline;text-underline-offset:3px}
.text blockquote{margin:18px 0 22px;color:var(--ink-2);font-size:15px;line-height:1.7}
.small{font-size:12px;color:var(--mute)}
.frame{position:relative;aspect-ratio:16/9;background:#f2f2f2;overflow:hidden}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vimeos{display:grid;gap:22px;margin:14px 0 6px}
.vimeos figcaption{font-size:12px;color:var(--mute);margin-top:6px}
.yt{cursor:pointer;margin:12px 0 8px}.yt img{display:block;width:100%;height:100%;object-fit:cover}
.yt .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.92);color:#1a1a1a;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:.6rem 1rem}
@media(max-width:760px){
  body{display:block}
  .side{position:static;height:auto;padding:20px 20px 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}
  .name{margin:0;font-size:18px}
  .menu{display:inline-block;font:11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;background:none;border:1px solid var(--rule);padding:.6rem .8rem;color:var(--ink);cursor:pointer}
  .nav{display:none;width:100%;padding:18px 0 4px;gap:12px}
  .nav.open{display:flex}
  .main{padding:20px 20px 48px}
  .stage img{max-height:70vh}
  .grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px}
}
