/* Direction D: simple.
   The first reading of the brief, kept because it has its own value: one packed
   block of covers with the name across it, and nothing else on the page. */

html,body{height:100%}
body{background:var(--paper);color:var(--ink);overflow:hidden}

.stage{position:fixed;inset:0;z-index:1;overflow:hidden;isolation:isolate}
.cluster{position:absolute;left:50%;top:50%;width:0;height:0}

.tile{position:absolute;left:0;top:0;overflow:hidden;background:var(--shade,#111);transform-origin:0 0;
  transition:transform .82s var(--ease),width .82s var(--ease),height .82s var(--ease),
             opacity .5s var(--ease),filter .5s var(--ease)}
.tile img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;
  transition:opacity .7s var(--ease),transform .82s var(--ease)}
.tile img.is-loaded{opacity:1}
.tile button{position:absolute;inset:0;width:100%;cursor:pointer;z-index:2}
.tile.is-back{opacity:.16;filter:grayscale(1)}
.tile:not(.is-back):hover img,.tile:not(.is-back):focus-within img{transform:scale(1.045)}

.title{position:absolute;left:0;right:0;top:50%;translate:0 -50%;z-index:3;pointer-events:none;
  text-align:center;padding:0 var(--gutter);mix-blend-mode:difference}
.title h1{margin:0;font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:clamp(38px,7.4vw,116px);line-height:.94;letter-spacing:-.03em;color:var(--ink);
  transition:opacity .6s var(--ease)}
.title[data-quiet=true] h1{opacity:.12}

.masthead{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:flex-start;
  justify-content:space-between;gap:24px;padding:26px var(--gutter) 0}
.brand{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:var(--ink)}
.brand b{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.01em;text-transform:uppercase}
.brand span{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.masthead nav{display:flex;gap:16px;padding-top:2px}
.masthead nav a{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:var(--muted);transition:color .25s var(--ease)}
.masthead nav a::before{content:"[ "}
.masthead nav a::after{content:" ]"}
.masthead nav a:hover{color:var(--ink)}

.statement{position:fixed;left:var(--gutter);bottom:76px;z-index:10;max-width:42ch;pointer-events:none}
.statement p{margin:0;font-size:15px;line-height:1.62;color:var(--muted)}

.filters{position:fixed;left:var(--gutter);bottom:26px;z-index:11;display:flex;flex-wrap:wrap;gap:20px}
.filters button{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--dim);transition:color .25s var(--ease);position:relative;padding-bottom:4px}
.filters button::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);
  transition:right .4s var(--ease)}
.filters button:hover{color:var(--muted)}
.filters button[aria-pressed=true]{color:var(--ink)}
.filters button[aria-pressed=true]::after{right:0}

.count{position:fixed;right:var(--gutter);bottom:26px;z-index:11;font-family:var(--mono);font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

.sheet{position:fixed;inset:0;z-index:40;background:var(--paper);display:none;overflow-y:auto;overscroll-behavior:contain}
.sheet[open]{display:block}
.sheet-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;
  gap:24px;padding:26px var(--gutter) 22px;background:linear-gradient(var(--paper) 74%,transparent)}
.sheet-head h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,4.6vw,62px);line-height:1;
  margin:0 0 10px;text-transform:uppercase;letter-spacing:-.026em}
.sheet-head dl{display:flex;flex-wrap:wrap;gap:4px 26px;margin:0;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sheet-head dt{color:var(--dim)}
.sheet-head dd{margin:0}
.sheet-close{flex:none;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);transition:color .25s var(--ease)}
.sheet-close::before{content:"[ "}
.sheet-close::after{content:" ]"}
.sheet-close:hover{color:var(--ink)}
.sheet-grid{columns:3 320px;column-gap:10px;padding:0 var(--gutter) 72px}
.sheet-grid figure{break-inside:avoid;margin:0 0 10px;position:relative}
.sheet-grid .cell{position:relative;background:var(--shade,#111) center/cover no-repeat;overflow:hidden}
.sheet-grid img{width:100%;height:auto;display:block;opacity:0;transition:opacity .6s var(--ease)}
.sheet-grid img.is-loaded{opacity:1}
.sheet-grid button{position:absolute;inset:0;width:100%;z-index:2;cursor:pointer}

.fallback{position:absolute;left:-9999px}
.fallback:focus-within{position:static;padding:90px var(--gutter) 40px;z-index:50;background:var(--paper)}

@media (max-width:820px){
  .masthead{padding:18px var(--gutter) 0}
  .brand b{font-size:13px}
  .brand span{font-size:8px;letter-spacing:.14em}
  .masthead nav{gap:10px}
  .masthead nav a{font-size:8.5px;letter-spacing:.1em}
  .statement{display:none}
  .filters{gap:13px;bottom:18px}
  .filters button{font-size:8.5px;letter-spacing:.1em}
  .count{display:none}
  .sheet-grid{columns:2 150px;column-gap:7px}
}
