/* =========================================================================
   Shotz by Jake — light theme
   Paper white gym, cool concrete grey, scoreboard amber.
   Display: Archivo (expanded)  Body: Newsreader  Utility: DM Mono
   ========================================================================= */

:root{
  --paper:#ffffff;
  --wall:#f2f3f5;        /* cinder-block grey from the locker-room frames */
  --ink:#0b0b0c;         /* same black as the signature logo */
  --graphite:#5a6068;
  --line:#e2e4e8;
  --amber:#ff8a1e;       /* scoreboard LED — indicators only, never body text */

  --wrap:1360px;
  --gut:clamp(1.15rem,4vw,3rem);
  --sec-y:clamp(4.5rem,9vw,8.5rem);

  --ease:cubic-bezier(.22,.61,.36,1);
  --dur:.55s;
  --radius:3px;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Newsreader',Georgia,serif;
  font-size:clamp(1.02rem,.42vw + .93rem,1.14rem);
  font-weight:380;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* The work stays on the page: no drag-off, and no long-press save sheet on iOS.
   The context menu itself is blocked in main.js. */
img,video{
  display:block;max-width:100%;
  -webkit-user-drag:none;
  -webkit-touch-callout:none;
  user-select:none;-webkit-user-select:none;
}
a{color:inherit}
button{font:inherit;color:inherit}

::selection{background:var(--ink);color:var(--paper)}

:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:3px;
  border-radius:2px;
}

.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;
  font-family:'DM Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;
}
.skip:focus{left:.5rem;top:.5rem}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

/* ── type roles ─────────────────────────────────────────────────────── */

.display{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:800;
  font-stretch:118%;
  text-transform:uppercase;
  letter-spacing:-.014em;
  line-height:.9;
  margin:0;
}

.mono{
  font-family:'DM Mono',ui-monospace,monospace;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.68rem;
  line-height:1.4;
}

.eyebrow{
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.19em;
  color:var(--graphite);
  margin:0 0 1.1rem;
  display:flex;align-items:center;gap:.62rem;
}
.eyebrow::before{
  content:"";width:22px;height:2px;background:var(--amber);flex:none;
}

.lede{
  font-size:clamp(1.06rem,.5vw + .95rem,1.24rem);
  line-height:1.62;
  color:#26292e;
  max-width:44ch;
  margin:0;
}

.deck{
  margin:1.15rem 0 0;
  max-width:52ch;
  color:var(--graphite);
  font-size:1.02rem;
  line-height:1.58;
}

.ln{
  text-decoration:none;
  box-shadow:inset 0 -1px 0 var(--line);
  transition:box-shadow .25s var(--ease);
}
.ln:hover{box-shadow:inset 0 -2px 0 var(--amber)}

/* ── buttons ────────────────────────────────────────────────────────── */

.btn{
  --bg:var(--ink); --fg:var(--paper);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--bg);color:var(--fg);
  border:1px solid var(--ink);border-radius:100px;
  padding:.82rem 1.5rem;
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:.73rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;
  text-decoration:none;cursor:pointer;
  transition:transform .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn--ghost{--bg:transparent;--fg:var(--ink);border-color:#c9ccd2}
.btn--ghost:hover{--bg:var(--ink);--fg:var(--paper);border-color:var(--ink)}
.btn--sm{padding:.6rem 1.05rem;font-size:.68rem}

/* ── nav ────────────────────────────────────────────────────────────── */

.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease),background-color .35s var(--ease);
}
.nav.is-stuck{border-bottom-color:var(--line)}

.nav__in{
  width:100%;max-width:var(--wrap);margin-inline:auto;padding:.72rem var(--gut);
  display:flex;align-items:center;gap:1.25rem;
}

.nav__mark{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex:none}
.nav__mark img{width:52px;height:auto;mix-blend-mode:multiply}
.nav__wordmark{
  font-family:'Archivo',sans-serif;font-weight:700;font-stretch:112%;
  text-transform:uppercase;letter-spacing:.02em;font-size:.82rem;
  white-space:nowrap;
}

.nav__links{display:flex;gap:.3rem;margin-left:auto}
.nav__links a{
  position:relative;
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;
  text-decoration:none;color:var(--graphite);
  padding:.5rem .68rem;border-radius:2px;
  transition:color .25s var(--ease);
}
.nav__links a:hover{color:var(--ink)}
.nav__links a::after{
  content:"";position:absolute;left:.68rem;right:.68rem;bottom:.24rem;height:2px;
  background:var(--amber);transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav__links a.is-active{color:var(--ink)}
.nav__links a.is-active::after{transform:scaleX(1)}

.nav__cta{flex:none}
.nav__toggle{
  display:none;align-items:center;gap:.5rem;margin-left:auto;
  background:none;border:1px solid var(--line);border-radius:100px;
  padding:.5rem .85rem;cursor:pointer;
}
.nav__toggle-label{
  font-family:'DM Mono',ui-monospace,monospace;font-size:.68rem;
  text-transform:uppercase;letter-spacing:.13em;
}
.nav__toggle-bars{display:grid;gap:4px;width:15px}
.nav__toggle-bars i{display:block;height:1.5px;background:var(--ink);transition:transform .3s var(--ease)}
.nav__toggle[aria-expanded="true"] .nav__toggle-bars i:first-child{transform:translateY(2.75px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] .nav__toggle-bars i:last-child{transform:translateY(-2.75px) rotate(-45deg)}

/* ── hero ───────────────────────────────────────────────────────────── */

.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(3rem,6vw,5.5rem)}

.hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}

.hero__title{
  font-size:clamp(3.2rem,9.4vw,7.3rem);
  margin:0 0 1.5rem;
}

.hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}

/* the burst */
.burst{margin:0;display:flex;flex-direction:column;gap:.85rem}

.burst__frame{
  position:relative;
  aspect-ratio:2/3;
  background:var(--wall);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 1px 2px rgba(11,11,12,.06),0 18px 44px -22px rgba(11,11,12,.34);
}
.burst__stack{position:absolute;inset:0}
.burst__stack img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .5s var(--ease);
}
.burst__stack img.is-on{opacity:1}
.burst__hit{
  position:absolute;inset:0;width:100%;height:100%;
  background:none;border:0;cursor:pointer;
  font-size:0;color:transparent;
}

.burst__meta{display:flex;align-items:center}

.burst__ticks{display:flex;gap:3px;align-items:center}
.burst__ticks i{
  display:block;width:9px;height:3px;background:var(--line);
  transition:background-color .3s var(--ease);
}
.burst__ticks i.is-on{background:var(--amber)}

/* ── ledger strip ───────────────────────────────────────────────────── */

.ledger{border-block:1px solid var(--line);background:var(--paper)}
.ledger__in{
  display:grid;grid-template-columns:repeat(4,1fr);
}
.ledger__cell{
  padding:1.3rem 0 1.4rem;
  display:flex;flex-direction:column;gap:.4rem;
  border-left:1px solid var(--line);
  padding-left:clamp(.8rem,2vw,1.6rem);
}
.ledger__cell:first-child{border-left:0;padding-left:0}
.ledger__k{color:var(--graphite);font-size:.63rem;letter-spacing:.16em}
.ledger__v{font-size:clamp(1.15rem,2.1vw,1.75rem);font-stretch:112%}

/* ── sections ───────────────────────────────────────────────────────── */

.sec{padding-block:var(--sec-y)}
.sec--wall{background:var(--wall)}
.sec--contact{padding-bottom:clamp(3.5rem,7vw,6rem)}

.sec__head{margin-bottom:clamp(2.2rem,4.5vw,3.6rem);max-width:60ch}
.sec__title{font-size:clamp(2.6rem,6.6vw,4.9rem)}

.sub{
  color:var(--graphite);
  margin:0 0 1.1rem;
  padding-bottom:.7rem;
  border-bottom:1px solid var(--line);
  letter-spacing:.19em;font-size:.68rem;font-weight:500;
}
.sec--wall .sub{border-bottom-color:#dfe1e6}

/* ── about ──────────────────────────────────────────────────────────── */

.about{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}
.about__body p{margin:0 0 1.15rem;color:#2a2d33;max-width:56ch}
.about__body p:last-child{margin-bottom:0}
.about__body p.about__lead{
  font-size:clamp(1.24rem,1.5vw + .95rem,1.62rem);
  line-height:1.42;
  color:var(--ink);
  font-weight:400;
  max-width:34ch;
}

.kit{margin:0;border-top:1px solid var(--line)}
.kit__row{
  display:grid;grid-template-columns:9.5rem minmax(0,1fr);
  gap:1rem;padding:.92rem 0;border-bottom:1px solid var(--line);
}
.kit dt{color:var(--graphite);font-size:.65rem;letter-spacing:.15em;padding-top:.25rem}
.kit dd{margin:0;font-size:1rem;line-height:1.45}

/* ── grids ──────────────────────────────────────────────────────────── */

.grid{display:grid;gap:clamp(.7rem,1.5vw,1.2rem)}
.grid--selects{grid-template-columns:repeat(4,1fr);margin-bottom:clamp(3rem,6vw,4.75rem)}
.grid--sheet{grid-template-columns:repeat(6,1fr)}
.grid--films{grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem)}
.grid--gfx{grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,1.8vw,1.5rem)}

/* photo tile */
.tile{
  position:relative;display:block;width:100%;padding:0;border:0;
  background:var(--wall);cursor:pointer;text-align:left;
  border-radius:var(--radius);overflow:hidden;
  aspect-ratio:2/3;
  transition:box-shadow .35s var(--ease);
}
.tile img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s var(--ease),filter .45s var(--ease);
  will-change:transform;
}
.tile:hover img,.tile:focus-visible img{transform:scale(1.045)}
.tile:hover{box-shadow:0 14px 34px -20px rgba(11,11,12,.5)}

.grid--sheet .tile{border-radius:2px}

.more{margin-top:clamp(1.6rem,3vw,2.4rem);display:flex;justify-content:center}
.more[hidden]{display:none}

/* film card */
.film{
  display:flex;flex-direction:column;gap:.85rem;
  background:none;border:0;padding:0;text-align:left;cursor:pointer;
}
.film__media{
  position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);
  background:#e9ebee;
  box-shadow:0 1px 2px rgba(11,11,12,.05);
  transition:box-shadow .35s var(--ease),transform .4s var(--ease);
}
.film:hover .film__media,.film:focus-visible .film__media{
  transform:translateY(-3px);
  box-shadow:0 20px 40px -22px rgba(11,11,12,.5);
}
.film__media img,.film__media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.film__media video{opacity:0;transition:opacity .45s var(--ease)}
.film.is-previewing .film__media video{opacity:1}

.film__play{
  position:absolute;left:.75rem;bottom:.75rem;
  display:flex;align-items:center;gap:.45rem;
  background:rgba(255,255,255,.94);
  border-radius:100px;padding:.34rem .68rem .34rem .58rem;
  font-family:'DM Mono',ui-monospace,monospace;font-size:.62rem;letter-spacing:.1em;
  color:var(--ink);
  transition:background-color .3s var(--ease);
}
.film__play::before{
  content:"";width:0;height:0;flex:none;
  border-left:7px solid var(--ink);border-block:4.5px solid transparent;
  margin-left:1px;
}
.film:hover .film__play{background:var(--amber)}

.film__cap{display:flex;align-items:baseline}
.film__title{
  font-family:'Archivo',sans-serif;font-weight:700;font-stretch:110%;
  text-transform:uppercase;letter-spacing:-.005em;font-size:.95rem;line-height:1.2;
}

/* graphic tile */
.gfx{
  display:flex;flex-direction:column;gap:.75rem;
  background:none;border:0;padding:0;text-align:left;cursor:pointer;
}
.gfx__media{
  position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius);
  background:#e6e8eb;
  box-shadow:0 2px 6px -2px rgba(11,11,12,.16);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.gfx__media img{width:100%;height:100%;object-fit:cover}
.gfx:hover .gfx__media,.gfx:focus-visible .gfx__media{
  transform:translateY(-5px) scale(1.012);
  box-shadow:0 24px 48px -24px rgba(11,11,12,.55);
}
.gfx__cap{display:flex;flex-direction:column;gap:.22rem}
.gfx__title{
  font-family:'Archivo',sans-serif;font-weight:700;font-stretch:110%;
  text-transform:uppercase;font-size:.88rem;line-height:1.2;
}
.gfx__kind{color:var(--graphite);font-size:.6rem;letter-spacing:.13em}

/* ── contact ────────────────────────────────────────────────────────── */

.reach{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.reach li{border-bottom:1px solid var(--line)}
/* Rows are a link (Instagram) or a button (email, which copies) — same shape. */
.reach__row{
  display:grid;
  width:100%;
  grid-template-columns:8.5rem minmax(0,1fr) auto;
  align-items:center;gap:1rem;
  padding:clamp(1.3rem,2.6vw,2.1rem) .25rem;
  background:none;border:0;text-align:left;
  font:inherit;color:inherit;cursor:pointer;
  text-decoration:none;
  transition:padding-left .4s var(--ease);
}
.reach__row:hover{padding-left:1.1rem}
.reach__k{color:var(--graphite);font-size:.65rem;letter-spacing:.16em}
.reach__v{
  font-size:clamp(1.3rem,3.4vw,2.5rem);
  text-transform:none;letter-spacing:-.01em;
  overflow-wrap:anywhere;
}
.reach__go{
  font-size:1.35rem;color:var(--graphite);
  transform:translateX(-6px);opacity:0;
  transition:transform .4s var(--ease),opacity .4s var(--ease),color .4s var(--ease);
}
.reach__row:hover .reach__go{transform:none;opacity:1;color:var(--amber)}

/* copy icon on the email row */
.reach__go--copy{display:grid;place-items:center;width:1.5rem;height:1.5rem}
.reach__icon{grid-area:1/1;width:1.25rem;height:1.25rem;transition:opacity .2s var(--ease)}
.reach__icon--done{opacity:0}
.reach__row.is-copied .reach__go{opacity:1;transform:none;color:var(--amber)}
.reach__row.is-copied .reach__icon--copy{opacity:0}
.reach__row.is-copied .reach__icon--done{opacity:1}

.reach__status{
  min-height:1.4em;margin:.9rem 0 0;
  color:var(--graphite);letter-spacing:.14em;
  opacity:0;transition:opacity .25s var(--ease);
}
.reach__status.is-on{opacity:1}

/* ── footer ─────────────────────────────────────────────────────────── */

.foot{border-top:1px solid var(--line);padding-block:2rem 2.4rem}
.foot__in{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.foot__mark{width:44px;height:auto;mix-blend-mode:multiply;opacity:.85}
.foot__note{color:var(--graphite);font-size:.62rem;letter-spacing:.1em;margin:0}
.foot__up{margin-left:auto;color:var(--graphite);text-decoration:none;font-size:.65rem;letter-spacing:.13em}
.foot__up:hover{color:var(--ink)}
.foot__rights{
  margin:1.4rem 0 0;
  max-width:62ch;
  color:var(--graphite);
  font-size:.8rem;
  line-height:1.55;
}

/* ── lightbox ───────────────────────────────────────────────────────── */

.lb{
  --bar:4.25rem;                 /* fixed so the media can be sized against the viewport */
  --pad:clamp(.75rem,2vw,1.5rem);
  position:fixed;inset:0;z-index:150;
  background:rgba(247,248,249,.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-rows:auto minmax(0,1fr);
  align-items:center;
  opacity:0;transition:opacity .3s var(--ease);
}
.lb[hidden]{display:none}
.lb.is-open{opacity:1}

.lb__bar{
  grid-column:1/-1;
  height:var(--bar);
  display:flex;align-items:center;gap:1rem;
  padding-inline:clamp(1rem,3vw,2rem);
  border-bottom:1px solid var(--line);
  color:var(--graphite);
}
.lb__id{color:var(--ink);font-weight:500}
.lb__pos{margin-left:auto}
.lb__x{
  background:none;border:1px solid var(--line);border-radius:100px;
  width:2.2rem;height:2.2rem;line-height:1;font-size:1.35rem;cursor:pointer;
  display:grid;place-items:center;
  transition:background-color .25s var(--ease),color .25s var(--ease);
}
.lb__x:hover{background:var(--ink);color:var(--paper)}

.lb__stage{
  grid-column:2;grid-row:2;
  display:grid;place-items:center;
  padding:var(--pad);
  height:100%;min-height:0;
}
/* Sized against the viewport, not a percentage chain — a percentage height here
   resolves against a content-sized grid area and is ignored. */
.lb__stage img,.lb__stage video{
  width:auto;height:auto;
  max-width:100%;
  max-height:calc(100vh - var(--bar) - var(--pad) * 2);
  max-height:calc(100dvh - var(--bar) - var(--pad) * 2);
  border-radius:var(--radius);
  box-shadow:0 30px 70px -34px rgba(11,11,12,.6);
  animation:pop .38s var(--ease) both;
}
@keyframes pop{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}

.lb__nav{
  grid-row:2;
  z-index:2; /* the stage image is transformed, so it needs an explicit layer above it */
  background:none;border:0;cursor:pointer;
  font-size:2.4rem;line-height:1;color:var(--graphite);
  padding:1rem clamp(.4rem,1.6vw,1.4rem);
  transition:color .25s var(--ease),transform .25s var(--ease);
}
.lb__nav:hover{color:var(--ink)}
.lb__nav--prev{grid-column:1}
.lb__nav--prev:hover{transform:translateX(-3px)}
.lb__nav--next{grid-column:3}
.lb__nav--next:hover{transform:translateX(3px)}

body.lb-open{overflow:hidden}

/* ── motion ─────────────────────────────────────────────────────────── */

/* Nothing is hidden until we know scripting is on. */
.js .reveal{opacity:0;transform:translateY(16px)}
.js .reveal.is-in{
  opacity:1;transform:none;
  transition:opacity .6s var(--ease),transform .6s var(--ease);
  transition-delay:var(--d,0ms);
}

.js .stag{opacity:0;transform:translateY(18px)}
.js-loaded .stag{
  opacity:1;transform:none;
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.js-loaded .hero__copy .stag:nth-child(1){transition-delay:.05s}
.js-loaded .hero__copy .stag:nth-child(2){transition-delay:.13s}
.js-loaded .hero__copy .stag:nth-child(3){transition-delay:.24s}
.js-loaded .hero__copy .stag:nth-child(4){transition-delay:.33s}
.js-loaded .burst{transition-delay:.2s}

/* ── responsive ─────────────────────────────────────────────────────── */

@media (max-width:1040px){
  .grid--sheet{grid-template-columns:repeat(5,1fr)}
  .grid--gfx{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:860px){
  .nav__links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:.4rem var(--gut) 1rem;
    display:none;
  }
  .nav__links.is-open{display:flex}
  .nav__links a{padding:.85rem .1rem;font-size:.82rem;border-bottom:1px solid var(--line)}
  .nav__links a:last-child{border-bottom:0}
  .nav__links a::after{left:.1rem;right:auto;width:22px;bottom:.5rem}
  /* Thumb-sized targets: both of these sit right under the top edge. */
  .nav__toggle{display:flex;padding-block:.72rem}
  .nav__mark{padding-block:.3rem}
  .nav__cta{display:none}

  .hero__grid{grid-template-columns:1fr;gap:2.4rem}
  .burst{max-width:26rem}
  .hero__title{font-size:clamp(3.2rem,15vw,5.5rem)}

  .about{grid-template-columns:1fr;gap:2.5rem}
  .ledger__in{grid-template-columns:1fr 1fr}
  .ledger__cell:nth-child(3){border-left:0;padding-left:0}

  .grid--selects{grid-template-columns:repeat(2,1fr)}
  .grid--films{grid-template-columns:repeat(2,1fr)}
  .grid--sheet{grid-template-columns:repeat(4,1fr)}
}

@media (max-width:560px){
  .nav__wordmark{display:none}
  /* The nav shrinks on a phone — don't overshoot when jumping to a section. */
  html{scroll-padding-top:4.25rem}

  .grid--selects{grid-template-columns:repeat(2,1fr)}
  /* The Selects open and close on a full-width frame, with three pairs between.
     Gives the row a focal point at two columns, and eight tiles fill it exactly —
     no orphan on the last line. */
  .grid--selects .tile:first-child,
  .grid--selects .tile:last-child{grid-column:1/-1;aspect-ratio:4/5}

  /* Tighter gutters read as a contact sheet and buy back pixels per frame. */
  .grid--sheet{grid-template-columns:repeat(3,1fr);gap:.4rem}
  .grid--films{grid-template-columns:1fr}
  .grid--gfx{grid-template-columns:repeat(2,1fr)}
  .kit__row{grid-template-columns:1fr;gap:.15rem}
  .reach__row{grid-template-columns:1fr auto;gap:.3rem .8rem}
  .reach__k{grid-column:1/-1}

  /* An odd number of graphics would leave a lone tile in the last row. */
  .grid--gfx > :last-child:nth-child(odd){grid-column:1/-1}

  /* The mono labels bottom out around 10px, which is too fine on a phone. */
  .ledger__k,.kit dt,.reach__k{font-size:.72rem}
  .foot__note{font-size:.7rem;letter-spacing:.06em}
  .eyebrow{font-size:.75rem}

  /* Inline and footer links need real height to tap. */
  .foot__up{padding:.55rem 0}
  .kit dd .ln{display:inline-block;padding-block:.25rem}
  /* give the picture the full width; float the arrows over it */
  .lb{--bar:3.6rem;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .lb__stage{grid-column:1;grid-row:2;padding:.6rem}
  .lb__x{width:2.75rem;height:2.75rem}
  .lb__nav{
    position:absolute;top:50%;transform:translateY(-50%);
    width:2.9rem;height:2.9rem;padding:0;
    display:grid;place-items:center;
    font-size:1.6rem;line-height:1;
    background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:100px;
    color:var(--ink);
  }
  .lb__nav--prev{left:.55rem}
  .lb__nav--next{right:.55rem}
  .lb__nav--prev:hover,.lb__nav--next:hover{transform:translateY(-50%)}
}

/* Touch devices never hover — keep the affordances visible. */
@media (hover:none){
  .reach__go{opacity:.55;transform:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js .reveal,.js .stag{opacity:1;transform:none}
  .tile:hover img{transform:none}
}
