:root{
    --noir:#0a0a0a;
    --noir2:#121212;
    --or1:#ecd29a;
    --or2:#c49a4e;
    --or3:#8a6528;
    --blanc:#f4efe6;
    --gris:#9a948a;
    --display:"Jost","Futura","Avenir Next Condensed","Trebuchet MS",Arial,sans-serif;
    --body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    --serif:Georgia,"Times New Roman",serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{background:var(--noir);color:var(--blanc);font-family:var(--body);overflow-x:hidden}
  ::selection{background:var(--or2);color:var(--noir)}
  .mono{font-family:"SF Mono",Menlo,Consolas,monospace}

  header{
    position:fixed;top:0;left:0;right:0;z-index:40;
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 34px;
    background:linear-gradient(180deg,rgba(10,10,10,.9),transparent);
  }
  .wordmark{
    font-family:var(--display);
    font-size:20px;letter-spacing:.42em;text-transform:uppercase;font-weight:700;
    background:linear-gradient(115deg,var(--or1) 20%,var(--or2) 55%,var(--or1) 90%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
    text-decoration:none;
  }
  nav{display:flex;gap:28px}
  nav a{
    color:var(--blanc);opacity:.75;text-decoration:none;
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;
    transition:opacity .25s,color .25s;
  }
  nav a:hover,nav a:focus-visible{opacity:1;color:var(--or1)}
  nav a:focus-visible{outline:1px solid var(--or2);outline-offset:4px}
  nav a.active{opacity:1;color:var(--or1)}
  @media(max-width:760px){nav{display:none}}
  .book{
    font-family:var(--display);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--noir);font-weight:700;text-decoration:none;
    background:linear-gradient(115deg,var(--or1),var(--or2));
    padding:10px 20px;border-radius:2px;white-space:nowrap;
  }
  .book:hover{filter:brightness(1.12)}

  .page-hero{
    padding:clamp(140px,22vh,220px) 34px clamp(30px,6vh,60px);
    max-width:1160px;margin:0 auto;
  }
  .back{
    display:inline-block;margin-bottom:26px;
    font-family:"SF Mono",Menlo,Consolas,monospace;
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;
    color:var(--gris);text-decoration:none;transition:color .25s;
  }
  .back:hover,.back:focus-visible{color:var(--or1)}
  .kicker{
    font-family:"SF Mono",Menlo,Consolas,monospace;
    font-size:12px;letter-spacing:.5em;text-transform:uppercase;
    color:var(--or2);margin-bottom:18px;
  }
  h1{
    font-family:var(--display);text-transform:uppercase;font-weight:700;
    letter-spacing:.08em;line-height:1.02;font-size:clamp(44px,8vw,96px);
    text-wrap:balance;
  }
  .gold{
    background:linear-gradient(115deg,var(--or1),var(--or2));
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .serif{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:.02em}
  .page-hero p{color:var(--gris);font-size:17px;line-height:1.75;max-width:62ch;margin-top:22px}
  .page-hero p strong{color:var(--blanc)}
  .cats{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
  .cats span{
    font-size:10px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--or1);border:1px solid rgba(196,154,78,.4);
    padding:6px 12px;border-radius:2px;
  }
  .cats .exif{
    font-family:"SF Mono",Menlo,Consolas,monospace;
    background:rgba(196,154,78,.12);border-style:dashed;
  }

  .set{max-width:1160px;margin:0 auto;padding:clamp(30px,6vh,60px) 34px 90px}
  .gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
  .gallery figure{position:relative;overflow:hidden;border-radius:3px;border:1px solid rgba(196,154,78,.18);margin:0}
  .gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
  .gallery figure:hover img{transform:scale(1.04)}
  .gallery figure::after{
    content:"";position:absolute;inset:18%;
    border:1px solid var(--or1);opacity:0;transition:opacity .3s;
    pointer-events:none;
    -webkit-mask:linear-gradient(#000 0 0) top left/26px 26px no-repeat,
                 linear-gradient(#000 0 0) top right/26px 26px no-repeat,
                 linear-gradient(#000 0 0) bottom left/26px 26px no-repeat,
                 linear-gradient(#000 0 0) bottom right/26px 26px no-repeat;
    mask:linear-gradient(#000 0 0) top left/26px 26px no-repeat,
         linear-gradient(#000 0 0) top right/26px 26px no-repeat,
         linear-gradient(#000 0 0) bottom left/26px 26px no-repeat,
         linear-gradient(#000 0 0) bottom right/26px 26px no-repeat;
  }
  .gallery figure:hover::after{opacity:.9}
  .g-hero{grid-column:span 8;aspect-ratio:16/10}
  .g-tall{grid-column:span 4;aspect-ratio:4/5}
  .g-half{grid-column:span 6;aspect-ratio:3/2}
  .g-third{grid-column:span 4;aspect-ratio:4/3}
  @media(max-width:760px){
    .g-hero,.g-tall,.g-half,.g-third{grid-column:span 12;aspect-ratio:3/2}
  }
  .gallery figure{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
  .gallery figure.visible{opacity:1;transform:none}

  .cta{
    display:inline-block;margin-top:8px;
    font-family:var(--display);font-size:14px;letter-spacing:.32em;text-transform:uppercase;
    color:var(--noir);text-decoration:none;font-weight:700;
    background:linear-gradient(115deg,var(--or1),var(--or2));
    padding:18px 42px;border-radius:2px;
    transition:filter .25s,transform .25s;
  }
  .cta:hover,.cta:focus-visible{filter:brightness(1.12);transform:translateY(-2px)}
  .outro{text-align:center;padding:0 34px 110px}
  .outro h2{
    font-family:var(--display);text-transform:uppercase;font-weight:700;
    letter-spacing:.08em;font-size:clamp(26px,4vw,44px);margin-bottom:22px;
  }

  footer{
    text-align:center;padding:34px 20px 42px;
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gris);
    border-top:1px solid rgba(196,154,78,.18);
  }
  footer a{color:var(--or1);text-decoration:none}

  .setnav{max-width:1160px;margin:0 auto;padding:0 34px 80px;
    display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
  .setnav a{text-decoration:none;max-width:46%}
  .setnav .lbl{display:block;font-family:"SF Mono",Menlo,Consolas,monospace;
    font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gris);
    margin-bottom:8px;transition:color .25s}
  .setnav .ttl{font-family:var(--display);font-size:clamp(16px,2.4vw,24px);
    letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--or1);
    transition:color .25s}
  .setnav a:hover .lbl,.setnav a:focus-visible .lbl{color:var(--or2)}
  .setnav a:hover .ttl,.setnav a:focus-visible .ttl{color:var(--blanc)}
  .setnav .next{text-align:right;margin-left:auto}

  /* index badge on gallery tiles */
  .gallery{counter-reset:fig}
  .gallery figure{counter-increment:fig}
  .gallery figure::before{content:counter(fig,decimal-leading-zero);
    position:absolute;top:10px;left:13px;z-index:2;
    font-family:"SF Mono",Menlo,Consolas,monospace;font-size:10px;
    letter-spacing:.25em;color:var(--or1);opacity:0;transition:opacity .3s;
    text-shadow:0 1px 8px rgba(0,0,0,.9);pointer-events:none}
  .gallery figure:hover::before{opacity:.95}
  /* AF viewfinder cursor on photos */
  .gallery figure,.gallery img,.photos figure,.photos img,.fw-grid a{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'><g fill='none' stroke='%23ecd29a' stroke-width='2'><path d='M2 10V2h8M24 2h8v8M32 24v8h-8M10 32H2v-8'/></g><circle cx='17' cy='17' r='2.4' fill='%23ecd29a'/></svg>") 17 17, zoom-in}
  /* cross-document page transitions (progressive enhancement) */
  @view-transition{navigation:auto}
  @media(prefers-reduced-motion:reduce){
    ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
  }
