/* ============================================================
   Impressions page — builds on styles.css (palette, stickers,
   gate, chooser, language pill, backdrop) and only adds its own
   layout: hero, upload card, gallery grid, lightbox.
   ============================================================ */

/* styles.css gives the gate/chooser an explicit display, which would
   beat the UA's [hidden] rule — this page toggles them with hidden. */
.imp [hidden]{ display:none !important; }

.imp .backdrop__photo[data-for="venue"]{ opacity:1; }

.imp-main{
  position:relative; z-index:1;
  width:min(72rem, 100%);
  margin:0 auto;
  padding:clamp(4.5rem, 12vh, 7rem) 1rem 4rem;
}

/* ── Hero ──────────────────────────────────────────────── */
.imp-hero{
  position:relative;
  text-align:center;
  padding:clamp(1rem, 6vh, 3rem) 0 clamp(2rem, 6vh, 3.5rem);
}
.imp-hero__badge{
  display:inline-block; margin:0 0 1.2rem;
  transform:rotate(-3deg);
  background:var(--acid);
}
.imp-hero__title{
  position:relative; z-index:1;
  margin:0;
  font-family:var(--display);
  font-size:clamp(2.6rem, 11vw, 7rem);
  line-height:.92; letter-spacing:-.02em;
  text-transform:uppercase;
  text-shadow:0 .06em 0 rgba(0,0,0,.35);
}
.imp-hero__lede{
  position:relative; z-index:1;
  max-width:34rem; margin:1.25rem auto 0;
  font-size:clamp(1rem, 2.4vw, 1.15rem); line-height:1.5;
  color:var(--ink-soft);
}
.imp-hero__sticker{
  position:absolute; z-index:0;
  pointer-events:none;
  font-size:var(--size);
  transform:rotate(var(--tilt));
  animation:imp-float 7s ease-in-out infinite alternate;
}
.imp-hero__sticker--a{ --size:clamp(5.5rem, 17vw, 11rem); --tilt:-10deg; left:-1%; top:4%; }
.imp-hero__sticker--b{ --size:clamp(3.5rem, 10vw, 6.5rem); --tilt:14deg; right:2%; top:0; animation-delay:-2s; }
.imp-hero__sticker--c{ --size:clamp(3.8rem, 11vw, 7rem); --tilt:-6deg; right:8%; bottom:-4%; animation-delay:-4s; }
@keyframes imp-float{
  from{ transform:rotate(var(--tilt)) translateY(0); }
  to  { transform:rotate(calc(var(--tilt) + 4deg)) translateY(-8px); }
}
@media (max-width:40rem){
  .imp-hero__sticker--a{ left:-6%; top:-2%; opacity:.8; }
  .imp-hero__sticker--b{ right:-3%; top:-4%; opacity:.8; }
  .imp-hero__sticker--c{ display:none; }
}

/* ── Upload card ───────────────────────────────────────── */
.imp-card{
  width:min(36rem, 100%);
  margin:0 auto clamp(3rem, 8vh, 5rem);
  padding:clamp(1.25rem, 4vw, 2rem);
  background:rgba(12,12,20,.72);
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.25rem;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.imp-card__title{
  margin:0 0 .4rem;
  font-family:var(--display);
  font-size:clamp(1.3rem, 4vw, 1.7rem);
  text-transform:uppercase; letter-spacing:.01em;
}
.imp-card__hint{ margin:0 0 1.25rem; color:var(--ink-faint); font-size:.92rem; line-height:1.45; }

.imp-field{ display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; font-size:.8rem; color:var(--ink-soft); }
.imp-field input{
  width:100%; padding:.8rem 1rem;
  font:inherit; font-size:1rem;
  color:var(--ink);
  background:rgba(255,255,255,.06);
  border:2px solid rgba(255,255,255,.16);
  border-radius:.7rem;
  outline:none;
  transition:border-color .2s, background .2s;
}
.imp-field input::placeholder{ color:var(--ink-faint); }
.imp-field input:focus{ border-color:var(--acid); background:rgba(255,255,255,.09); }

.imp-pick{
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
  padding:1.6rem 1rem 1.4rem;
  text-align:center;
  color:#0b0c12;
  background:var(--acid);
  border-radius:1rem;
  cursor:pointer;
  transform:rotate(-.6deg);
  transition:transform .18s var(--pop), filter .2s, box-shadow .2s;
  box-shadow:0 10px 24px rgba(216,255,62,.18);
}
.imp-pick:hover{ transform:rotate(-1.2deg) scale(1.02); filter:brightness(1.06); }
.imp-pick:active{ transform:scale(.98); }
.imp-pick.is-over{ transform:rotate(0) scale(1.03); box-shadow:0 0 0 4px var(--paper), 0 14px 30px rgba(216,255,62,.3); }
.imp-pick:focus-within{ outline:3px solid var(--paper); outline-offset:3px; }
.imp-pick input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.imp-pick__icon{ font-size:2rem; line-height:1; }
.imp-pick__label{ font-family:var(--display); font-size:clamp(1rem, 3.4vw, 1.2rem); letter-spacing:.04em; text-transform:uppercase; }
.imp-pick__sub{ font-size:.8rem; opacity:.7; }

/* Queue */
.imp-queue{ margin-top:1.25rem; }
.imp-queue__summary{ margin:0 0 .6rem; font-size:.85rem; color:var(--ink-soft); }
.imp-queue__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.45rem; max-height:22rem; overflow:auto; }
.imp-job{
  display:grid; grid-template-columns:2.6rem 1fr auto; align-items:center; gap:.7rem;
  padding:.4rem .6rem .4rem .4rem;
  background:rgba(255,255,255,.05);
  border-radius:.7rem;
  font-size:.8rem;
}
.imp-job__thumb{
  width:2.6rem; height:2.6rem; border-radius:.45rem; overflow:hidden;
  background:rgba(255,255,255,.08);
}
.imp-job__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.imp-job__body{ min-width:0; display:flex; flex-direction:column; gap:.35rem; }
.imp-job__name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink-soft); }
.imp-job__bar{ height:4px; background:rgba(255,255,255,.1); border-radius:4px; overflow:hidden; }
.imp-job__bar i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--acid), var(--cyan));
  transform-origin:left; transform:scaleX(0);
  transition:transform .3s var(--ease);
}
.imp-job__state{ display:flex; align-items:center; gap:.5rem; white-space:nowrap; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.imp-job[data-state="done"] .imp-job__state{ color:var(--acid); }
.imp-job[data-state="failed"] .imp-job__state{ color:#ff8f8f; }
.imp-job[data-state="failed"] .imp-job__bar i{ background:#ff8f8f; }
.imp-job__retry{
  padding:.3rem .6rem;
  font:inherit; font-weight:700; color:#0b0c12;
  background:var(--paper); border:0; border-radius:999px; cursor:pointer;
}

/* ── Gallery ───────────────────────────────────────────── */
.imp-gallery__title{
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:.4rem .8rem;
  margin:0 0 1.75rem;
  font-family:var(--display);
  font-size:clamp(1.4rem, 4.5vw, 2.2rem);
  text-transform:uppercase; text-align:center;
}
.imp-gallery__count{
  font-family:var(--sans); font-size:.8rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  color:#0b0c12; background:var(--magenta);
  padding:.3em .7em; border-radius:999px;
  transform:rotate(3deg);
}
.imp-gallery__count:empty{ display:none; }
.imp-gallery__empty{ text-align:center; color:var(--ink-faint); margin:0 0 2rem; }

.imp-grid{
  list-style:none; margin:0; padding:0;
  display:grid;
  /* three across on a phone, as many as fit on wider screens */
  grid-template-columns:repeat(auto-fill, minmax(min(26vw, 11rem), 1fr));
  gap:clamp(.5rem, 1.6vw, 1rem);
}
.imp-tile{
  aspect-ratio:1;
  transform:rotate(var(--tilt, 0deg));
  transition:transform .2s var(--pop);
}
.imp-tile:hover{ transform:rotate(0) scale(1.04); z-index:2; }
.imp-tile.is-new{ animation:imp-pop .5s var(--pop); }
@keyframes imp-pop{ from{ transform:rotate(var(--tilt, 0deg)) scale(.4); opacity:0; } }
.imp-tile__btn{
  position:relative;
  display:block; width:100%; height:100%;
  padding:0; border:clamp(3px, .6vw, 5px) solid var(--paper);
  border-radius:.5rem;
  background:#1a1a24;
  overflow:hidden; cursor:zoom-in;
  box-shadow:0 10px 20px rgba(0,0,0,.4);
}
.imp-tile__btn:focus-visible{ outline:3px solid var(--acid); outline-offset:2px; }
.imp-tile__btn img{ width:100%; height:100%; object-fit:cover; display:block; }
.imp-tile.is-blank .imp-tile__btn::before{
  content:"📷"; position:absolute; inset:0; display:grid; place-items:center;
  font-size:2rem; opacity:.5;
}
.imp-tile--video.is-blank .imp-tile__btn::before{ content:"🎬"; }
.imp-tile__play{
  position:absolute; right:.4rem; bottom:.4rem;
  width:1.9rem; height:1.9rem; border-radius:50%;
  background:rgba(11,12,18,.7);
  border:2px solid var(--paper);
}
.imp-tile__play::after{
  content:""; position:absolute; left:55%; top:50%;
  transform:translate(-50%,-50%);
  border-style:solid; border-width:.38rem 0 .38rem .6rem;
  border-color:transparent transparent transparent var(--paper);
}

.imp-footer{ text-align:center; margin-top:clamp(3rem, 10vh, 5rem); }
.imp-footer__link{
  display:inline-block;
  padding:.7rem 1.2rem;
  font-family:var(--display); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink); text-decoration:none;
  border:2px solid rgba(255,255,255,.25); border-radius:999px;
  transition:color .2s, border-color .2s, transform .15s var(--pop);
}
.imp-footer__link:hover{ color:var(--acid); border-color:var(--acid); transform:rotate(-1.5deg) scale(1.04); }

/* ── Lightbox ──────────────────────────────────────────── */
.lightbox{
  width:100vw; height:100dvh; max-width:none; max-height:none;
  margin:0; padding:0; border:0;
  background:rgba(6,6,10,.97);
  color:var(--ink);
  overscroll-behavior:contain;
}
.lightbox::backdrop{ background:rgba(0,0,0,.6); }
.lightbox[open]{ display:grid; grid-template-rows:1fr auto; }
/* The media fills the stage box and letterboxes itself (object-fit),
   so a tall phone photo or a wide video never pushes past the bar.
   The explicit minmax(0,1fr) track is what makes the stage's height
   DEFINITE for the media's height:100% — with the default auto row,
   a portrait video/photo grew to its natural height and the overflow
   cut its top off. */
.lightbox__stage{
  min-height:0; overflow:hidden;
  display:grid; place-items:center;
  grid-template:minmax(0,1fr) / minmax(0,1fr);
  padding:3.75rem .75rem .5rem;
}
.lightbox__media{
  width:100%; height:100%;
  object-fit:contain;
  display:block;
}
.lightbox__note{ color:var(--ink-soft); text-align:center; max-width:20rem; }
.lightbox__btn{
  position:absolute;
  width:2.8rem; height:2.8rem;
  display:grid; place-items:center;
  font-size:1.3rem; line-height:1;
  color:var(--ink);
  background:rgba(10,10,16,.6);
  border:1px solid rgba(255,255,255,.2); border-radius:50%;
  cursor:pointer;
  transition:border-color .2s, transform .15s var(--pop);
}
.lightbox__btn:hover{ border-color:var(--acid); transform:scale(1.08); }
.lightbox__close{ top:max(.8rem, env(safe-area-inset-top)); right:.8rem; }
.lightbox__nav{ top:50%; margin-top:-1.4rem; font-size:1.8rem; padding-bottom:.15rem; }
.lightbox__nav--prev{ left:.6rem; }
.lightbox__nav--next{ right:.6rem; }
@media (hover:none){ .lightbox__nav{ top:auto; bottom:max(4.5rem, calc(env(safe-area-inset-bottom) + 4rem)); } }
.lightbox__bar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.75rem 1rem max(.9rem, env(safe-area-inset-bottom));
  font-size:.85rem; color:var(--ink-soft);
}
.lightbox__meta{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lightbox__actions{ flex:none; display:flex; gap:.5rem; }
.lightbox__delete{
  padding:.55rem 1rem;
  font-family:var(--display); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase;
  color:#ff8f8f; background:transparent;
  border:2px solid rgba(255,143,143,.5); border-radius:999px; cursor:pointer;
}
.lightbox__delete:hover{ color:#0b0c12; background:#ff8f8f; }
.lightbox__download{
  flex:none;
  padding:.55rem 1rem;
  font-family:var(--display); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase;
  color:#0b0c12; background:var(--acid);
  border-radius:999px; text-decoration:none;
}

/* ── Profile form ──────────────────────────────────────── */
.imp-field small{ color:var(--ink-faint); font-size:inherit; }
.imp-field__error{ min-height:0; font-style:normal; font-size:.8rem; color:#ff8f8f; }
.imp-field__error:empty{ display:none; }
.imp-credit{ margin:0 0 1.25rem; padding:0; border:0; }
.imp-credit legend{ margin-bottom:.5rem; padding:0; font-size:.8rem; color:var(--ink-soft); }
.imp-credit label{ display:inline-block; margin:0 .35rem .45rem 0; cursor:pointer; }
.imp-credit input{ position:absolute; opacity:0; pointer-events:none; }
.imp-credit span{
  display:inline-block;
  padding:.55rem .9rem;
  font-size:.9rem;
  border:2px solid rgba(255,255,255,.18); border-radius:999px;
  transition:border-color .2s, background .2s, color .2s;
}
.imp-credit input:checked + span{ color:#0b0c12; background:var(--acid); border-color:var(--acid); }
.imp-credit input:focus-visible + span{ outline:3px solid var(--paper); outline-offset:2px; }
.imp-button{
  width:100%; padding:.95rem 1rem;
  font-family:var(--display); font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  color:#0b0c12; background:var(--acid);
  border:0; border-radius:.7rem; cursor:pointer;
  transition:transform .15s var(--pop), filter .2s;
}
.imp-button:hover{ filter:brightness(1.08); transform:rotate(-1deg) scale(1.02); }
.imp-button[disabled]{ opacity:.55; cursor:progress; }

.imp-who{ margin:0 0 1rem; font-size:.9rem; color:var(--ink-soft); }
.imp-link{
  margin-left:.4rem; padding:0;
  font:inherit; color:var(--acid); text-decoration:underline; text-underline-offset:.2em;
  background:none; border:0; cursor:pointer;
}

.imp-grid--small{ grid-template-columns:repeat(auto-fill, minmax(min(26vw, 8rem), 1fr)); }

/* ── Host view ─────────────────────────────────────────── */
.host-main{ padding-top:clamp(1.5rem, 5vh, 3rem); }
.host-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.host-head__title{ margin:0; font-family:var(--display); font-size:clamp(1.4rem, 4vw, 2rem); text-transform:uppercase; }
.host-head__stats{ margin:.3rem 0 0; color:var(--ink-soft); font-size:.9rem; }
.host-head__actions{ display:flex; gap:.5rem; }
.imp-chip{
  padding:.45rem .85rem;
  font:inherit; font-size:.85rem; color:var(--ink);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18); border-radius:999px; cursor:pointer;
  transition:border-color .2s, background .2s, color .2s;
}
.imp-chip:hover{ border-color:var(--acid); }
.imp-chip.is-active{ color:#0b0c12; background:var(--acid); border-color:var(--acid); }
.host-note{
  margin:0 0 1.25rem; padding:.8rem 1rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:.8rem;
  font-size:.88rem; color:var(--ink-soft);
}
.host-note summary{ cursor:pointer; color:var(--ink); }
.host-note pre{ overflow:auto; padding:.8rem; background:rgba(0,0,0,.35); border-radius:.5rem; font-size:.8rem; }
.host-filters{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:2rem; }
.host-group{ margin-bottom:2.5rem; }
.host-group__head{ margin-bottom:1rem; }
.host-group__name{ margin:0; font-family:var(--display); font-size:1.3rem; text-transform:uppercase; }
.host-group__facts{ margin:.25rem 0 0; font-size:.88rem; color:var(--ink-soft); }
.host-group__facts a{ color:var(--acid); }

@media (prefers-reduced-motion: reduce){
  .imp-hero__sticker{ animation:none; }
  .imp-tile, .imp-pick{ transition:none; }
}

/* ── Teaser (the site root until the gallery opens) ────── */
.imp-main--teaser{ min-height:100dvh; display:flex; flex-direction:column; justify-content:center; }
.imp-hero--teaser{ padding-bottom:1rem; }
.imp-soon{
  display:inline-block; margin:1.4rem 0 0;
  transform:rotate(2.5deg);
  background:var(--magenta); color:#0b0c12;
  font-size:clamp(.9rem, 2.6vw, 1.15rem);
}
.imp-cta{
  position:relative; z-index:1;
  display:inline-block; margin-top:2rem;
  padding:1.05rem 1.5rem;
  font-family:var(--display); font-size:clamp(.95rem, 3vw, 1.15rem); letter-spacing:.04em; text-transform:uppercase;
  color:#0b0c12; background:var(--acid); text-decoration:none;
  border-radius:1rem;
  transform:rotate(-1deg);
  box-shadow:0 10px 24px rgba(216,255,62,.2);
  transition:transform .18s var(--pop), filter .2s;
}
.imp-cta:hover{ transform:rotate(-2deg) scale(1.04); filter:brightness(1.06); }
.imp-cta:focus-visible{ outline:3px solid var(--paper); outline-offset:3px; }
.imp-footer{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; }
.imp-main--teaser .imp-footer{ margin-top:2.5rem; }

/* ── Shared links (upload page + host view) ────────────── */
.imp-links{ margin-top:calc(-1 * clamp(1.5rem, 5vh, 3rem)); }
.imp-note{
  margin:-.4rem 0 1rem; padding:.7rem .85rem;
  font-size:.85rem; line-height:1.45; color:#0b0c12;
  background:var(--amber); border-radius:.6rem;
}
.imp-button--ghost{ color:var(--ink); background:transparent; border:2px solid var(--acid); }
.imp-button--ghost:hover{ color:#0b0c12; background:var(--acid); }
.imp-linklist{ list-style:none; margin:1.25rem 0 0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
.host-group .imp-linklist{ margin:0 0 1rem; max-width:40rem; }
.imp-linkrow{
  display:flex; align-items:center; gap:.5rem;
  padding:.35rem .45rem;
  background:rgba(255,255,255,.05); border-radius:.7rem;
}
.imp-linkrow__a{
  flex:1; min-width:0;
  display:flex; align-items:center; gap:.7rem;
  color:var(--ink); text-decoration:none;
}
.imp-linkrow__a:hover strong{ color:var(--acid); }
.imp-linkrow__icon{
  flex:none; width:2.2rem; height:2.2rem; display:grid; place-items:center;
  font-size:1.1rem; background:rgba(255,255,255,.08); border-radius:.5rem;
}
.imp-linkrow__text{ min-width:0; display:flex; flex-direction:column; font-size:.85rem; }
.imp-linkrow__text strong{ font-size:.85rem; transition:color .2s; }
.imp-linkrow__text span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink-faint); }
.imp-linkrow__del{
  flex:none; width:2rem; height:2rem;
  color:#ff8f8f; background:transparent;
  border:1px solid rgba(255,143,143,.4); border-radius:50%; cursor:pointer;
}
.imp-linkrow__del:hover{ color:#0b0c12; background:#ff8f8f; }

/* ── Deadline line (teaser) ────────────────────────────── */
.imp-deadline{ position:relative; z-index:1; margin:1.1rem auto 0; max-width:26rem; color:var(--ink-soft); font-size:.92rem; line-height:1.45; }
.imp-deadline strong{ color:var(--ink); }

/* ── Host curation: ★ feature + chapter ────────────────── */
.host-pick{ display:inline-flex; align-items:center; gap:.3rem; }
.host-pick button{
  padding:.35rem .6rem; font:inherit; font-size:.8rem; line-height:1;
  color:var(--ink); background:rgba(11,12,18,.75);
  border:2px solid rgba(255,255,255,.3); border-radius:999px; cursor:pointer;
}
.host-pick button:hover{ border-color:var(--acid); }
.host-pick button.is-active,
.host-pick.is-featured .host-pick__star{ color:#0b0c12; background:var(--acid); border-color:var(--acid); }
.imp-tile{ position:relative; }
/* down the left edge, so the middle of the tile still opens the viewer */
.imp-tile .host-pick{ position:absolute; left:.3rem; top:.3rem; z-index:1; flex-direction:column; align-items:flex-start; pointer-events:none; }
.imp-tile .host-pick button{ pointer-events:auto; }
.imp-tile .host-pick button{ padding:.3rem .45rem; }
.imp-tile .host-pick:not(.is-featured){ opacity:.55; }
.imp-tile:hover .host-pick, .imp-tile .host-pick:focus-within{ opacity:1; }
.imp-tile.is-featured .imp-tile__btn{ border-color:var(--acid); }
.imp-linkrow .host-pick{ flex:none; }
@media (max-width:640px){
  .host .lightbox__bar{ flex-wrap:wrap; }
  .host .lightbox__meta{ flex:1 1 100%; }
  .host .lightbox__actions{ flex:1 1 100%; flex-wrap:wrap; }
}

/* ── The impressions page (gallery.html; /host/preview/ until released) ── */
.imp-preview-banner{
  position:fixed; z-index:50; left:50%; bottom:max(.8rem, env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:max-content; max-width:calc(100% - 2rem);
  margin:0; padding:.55rem 1rem;
  font-size:.82rem; font-weight:700; color:#0b0c12;
  background:var(--amber); border-radius:999px;
  box-shadow:0 10px 24px rgba(0,0,0,.45);
}
.imp-preview-banner a{ color:inherit; }

.imp-movie{ margin:0 auto clamp(3rem, 9vh, 5rem); text-align:center; }
.imp-movie__frame{ display:flex; justify-content:center; }
.imp-movie__video{
  display:block;
  /* most guest footage is vertical: let a 9:16 cut fill a phone, and
     a 16:9 one span the page */
  max-width:100%; max-height:min(80vh, 54rem);
  border:clamp(4px, .8vw, 7px) solid var(--paper); border-radius:.8rem;
  background:#000;
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.imp-movie__soon{ background:var(--magenta); transform:rotate(-2deg); }

.imp-chapter{ margin-bottom:clamp(3.5rem, 10vh, 6rem); }
.imp-chapter__head{ position:relative; text-align:center; margin-bottom:1.75rem; }
.imp-chapter__head .imp-gallery__title{ margin-bottom:.4rem; }
.imp-chapter__meta{ margin:0; color:var(--ink-soft); font-size:.92rem; }
.imp-chapter__sticker{ display:block; margin:0 auto .4rem; font-size:clamp(3.5rem, 10vw, 5.5rem); transform:rotate(-6deg); }

.imp-shared{ width:min(36rem, 100%); margin:0 auto clamp(3.5rem, 10vh, 6rem); }
.imp-linkrow__by{ flex:none; padding-right:.4rem; font-size:.78rem; color:var(--ink-faint); }

.imp-thanks{ text-align:center; }
.imp-thanks__hint{ margin:-1rem 0 1.5rem; color:var(--ink-soft); }
.imp-thanks__list{
  list-style:none; margin:0 auto; padding:0; max-width:46rem;
  display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem;
}
.imp-thanks__name{ transform:rotate(var(--tilt, 0deg)); }
.imp-thanks__name a{ color:inherit; text-decoration:none; }
a.imp-chip{ display:inline-block; text-decoration:none; }
/* few tiles in a chapter: keep them centred instead of hugging the left */
.imp-chapter .imp-grid{ grid-template-columns:repeat(auto-fit, minmax(min(26vw, 11rem), 13rem)); justify-content:center; }
