/* ─────────────────────────────────────────────────────────────────────────
   The Duke of AI — folio page styles
   Shared by all nine folio pages under /folio/. Lifted verbatim from the
   old folio.html so the pages look exactly as they did before.
   ───────────────────────────────────────────────────────────────────────── */

  :root{
    --canvas:#0a0a0b; --surface:#111113; --hairline:#2a2a2f;
    --paper:#f3efe6; --secondary:#c9c6bf; --muted:#8a8a86; --faint:#63615c;
    --gold:#c9a25a; --gold-hi:#e0c37e; --gold-soft:rgba(201,162,90,.14);
    --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,sans-serif;
    --text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,sans-serif;
    --maxw:1120px;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ -webkit-text-size-adjust:100%; }
  body{ background:var(--canvas); color:var(--paper); font-family:var(--text); line-height:1.47; -webkit-font-smoothing:antialiased; }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
  .section{ padding:clamp(40px,6vw,72px) 0 clamp(56px,8vw,92px); }

  /* nav */
  .nav{ position:sticky; top:0; z-index:20; background:rgba(10,10,11,.72); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid var(--hairline); }
  .nav-inner{ max-width:var(--maxw); margin:0 auto; padding:0 24px; height:52px; display:flex; align-items:center; justify-content:space-between; }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img{ width:24px; height:24px; object-fit:contain; }
  .brand span{ font-family:var(--display); font-size:17px; font-weight:600; letter-spacing:-.01em; color:var(--paper); }
  .nav-links{ display:flex; align-items:center; gap:28px; }
  .nav-links a{ font-size:13px; color:var(--muted); transition:color .2s ease; }
  .nav-links a:hover{ color:var(--paper); }
  .nav-cta{ color:var(--gold) !important; font-weight:500; }

  /* folio header */
  .back{ display:inline-flex; align-items:center; gap:6px; font-size:13px; letter-spacing:.02em; color:var(--gold); margin-bottom:22px; transition:color .2s ease; }
  .back:hover{ color:var(--gold-hi); }
  .folio-head{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; text-align:left; margin-bottom:clamp(34px,5vw,56px); }
  .folio-head h1{ font-family:var(--display); font-weight:600; font-size:clamp(2.2rem,1.2rem + 3vw,3.2rem); line-height:1.08; letter-spacing:-.014em; color:var(--paper); }
  .folio-tag{ font-family:var(--display); font-weight:300; font-size:clamp(1.1rem,.9rem + .8vw,1.45rem); color:var(--gold); margin-top:12px; }
  .folio-intro{ font-family:var(--display); font-weight:300; font-size:clamp(1.05rem,.92rem + .5vw,1.28rem); line-height:1.6; color:var(--secondary); max-width:54ch; margin:0; text-wrap:pretty; }
  @media (max-width:760px){ .folio-head{ grid-template-columns:1fr; gap:14px; } }

  /* uniform gallery grid */
  .gallery{ display:grid; grid-template-columns:repeat(auto-fill,minmax(clamp(150px,24vw,250px),1fr)); gap:16px; }
  .g-item{ position:relative; aspect-ratio:1/1; border-radius:8px; overflow:hidden; border:1px solid var(--hairline); cursor:pointer; padding:0; background:none; transition:transform .3s ease, border-color .3s ease; }
  .g-item:hover{ transform:translateY(-3px); border-color:var(--gold); }
  .g-item img{ width:100%; height:100%; object-fit:cover; }
  .g-item .ph-mark{ position:absolute; inset:0; display:grid; place-items:center; opacity:.14; }
  .g-item .ph-mark img{ width:46%; }

  /* footer */
  .foot{ background:var(--canvas); border-top:1px solid var(--hairline); padding:44px 0 34px; }
  .foot-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:28px; }
  .foot-brand{ display:flex; align-items:center; gap:10px; }
  .foot-brand img{ width:22px; height:22px; object-fit:contain; }
  .foot-brand span{ font-family:var(--display); font-weight:600; font-size:15px; color:var(--paper); }
  .foot-col h2{ font-size:12px; color:var(--faint); font-weight:600; letter-spacing:.02em; margin-bottom:12px; }
  .foot-col a{ display:block; font-size:13px; color:var(--muted); padding:5px 0; }
  .foot-col a:hover{ color:var(--paper); }
  .foot-fine{ border-top:1px solid var(--hairline); margin-top:32px; padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--faint); }

  /* ---------- lightbox (two-panel) ---------- */
  .lightbox{ position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:clamp(56px,7vw,80px) clamp(56px,7vw,88px); background:rgba(6,6,7,.95); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
  .lightbox.open{ display:flex; }
  .lb-inner{ display:flex; flex-direction:column; gap:clamp(14px,2.4vw,26px); max-width:100%; max-height:100%; }
  .lb-meta{ text-align:left; }
  .lb-num{ font-family:var(--text); font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
  .lb-num:empty{ display:none; }
  .lb-name{ font-family:var(--display); font-weight:600; font-size:clamp(19px,2.2vw,30px); letter-spacing:-.01em; color:var(--paper); }
  .lb-year{ font-family:var(--text); font-size:clamp(12px,1.3vw,15px); letter-spacing:.02em; color:var(--gold); margin-top:3px; }
  .lb-prov{ text-align:center; font-family:var(--display); font-style:italic; font-size:clamp(13px,1.3vw,15px); line-height:1.4; color:var(--secondary); max-width:44ch; margin:4px auto 0; text-wrap:balance; }
  .lb-prov:empty{ display:none; }
  .lb-pair{ display:flex; gap:clamp(16px,2.6vw,36px); align-items:center; justify-content:center; min-height:0; }
  .lb-box{ position:relative; display:flex; align-items:center; justify-content:center; }
  .lb-box img{ max-height:min(66vh,760px); max-width:43vw; object-fit:contain; display:block; border:4px solid var(--paper); border-radius:2px; box-shadow:0 14px 50px rgba(0,0,0,.55); }
  .lb-box.ph{ width:min(40vw,520px); aspect-ratio:1/1; border:1px solid var(--hairline); border-radius:8px; display:grid; place-items:center; }
  .lb-box.ph.wide{ aspect-ratio:16/10; }
  .lb-box.ph img{ width:24%; max-width:none; opacity:.5; border:0; box-shadow:none; }
  .lb-note{ position:fixed; bottom:22px; left:0; right:0; text-align:center; font-family:var(--display); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); pointer-events:none; }

  .lb-close,.lb-prev,.lb-next{ position:fixed; z-index:101; background:rgba(20,20,22,.6); border:1px solid var(--hairline); color:var(--paper); border-radius:50%; width:46px; height:46px; font-size:22px; line-height:1; cursor:pointer; display:grid; place-items:center; transition:border-color .25s, color .25s, background .25s; }
  .lb-close:hover,.lb-prev:hover,.lb-next:hover{ border-color:var(--gold); color:var(--gold); background:rgba(20,20,22,.85); }
  .lb-close{ top:20px; right:20px; }
  .lb-prev{ left:20px; top:50%; transform:translateY(-50%); }
  .lb-next{ right:20px; top:50%; transform:translateY(-50%); }

  @media (max-width:760px){
    .lightbox{ padding:64px 14px 56px; }
    .lb-pair{ flex-direction:column; gap:14px; overflow:auto; }
    .lb-box img{ max-width:88vw; max-height:38vh; }
    .lb-box.ph{ width:80vw; }
  }
  @media (max-width:560px){
    .nav-links a:not(.nav-cta){ display:none; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
    .lb-close,.lb-prev,.lb-next{ width:40px; height:40px; font-size:19px; }
    .lb-prev{ left:8px; } .lb-next{ right:8px; }
  }

  /* ---------- focus states ---------- */
  /* Every interactive thing gets a visible gold ring when reached by keyboard. */
  a:focus-visible,
  button:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
  .g-item:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; }
  .lb-close:focus-visible,
  .lb-prev:focus-visible,
  .lb-next:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-color:var(--gold); color:var(--gold); }

  /* ---------- reduced motion ---------- */
  @media (prefers-reduced-motion:reduce){
    *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
    .g-item:hover{ transform:none; }
  }
