/* ============================================================
   rey_ — tesi / ultimo
   the only page that leaves the black: an icy, desaturated
   white / azure-grey palette (the glaciers the work is about).
   tokens are overridden here, so every shared component adapts.
   ============================================================ */
:root{
  --bg:#edf1f5;
  --bg-1:#e5eaf0;
  --bg-2:#dde4ec;
  --panel:#e5eaf0;
  --fg:#25313f;            /* desaturated ink blue */
  --fg-dim:#5d6b7c;
  --fg-mute:#8c98a7;
  --line:rgba(37,49,63,.2);
  --hair:rgba(37,49,63,.1);
  --hair-2:rgba(37,49,63,.05);
  --sel:#25313f;
  --ice:#b9c9d8;           /* icy azure accent */
}
body{background:var(--bg);color:var(--fg);}
::selection{background:var(--sel);color:#edf1f5;}

/* shared atmosphere, re-tuned for the light page */
.vignette{display:none;}
.grain{mix-blend-mode:multiply;opacity:.05;}
.field-scrim{
  background:linear-gradient(180deg,transparent 0%,transparent 55%,rgba(237,241,245,.75) 85%,#edf1f5 100%);
}

/* ============ hero ============ */
.ts{position:relative;z-index:2;}
.ts-hero{padding-top:clamp(130px,18vh,210px);padding-bottom:clamp(30px,6vh,70px);}
.ts-hero__title{margin:.18em 0 .35em;}
.ts-hero__title .u{color:var(--fg-mute);}
.ts-hero__claim{
  font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-mute);
  margin-bottom:2.2em;
}
.ts-hero__lead{
  max-width:56ch;font-size:clamp(1.08rem,2vw,1.45rem);font-weight:300;line-height:1.6;color:var(--fg-dim);
}
.ts-hero__lead b{color:var(--fg);font-weight:600;}
.ts-hero__pdf{
  display:inline-block;margin-top:2.4em;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 18px;border:1px solid var(--line);color:var(--fg);
  transition:background .3s var(--ease),color .3s var(--ease);
}
.ts-hero__pdf:hover{background:var(--fg);color:var(--bg);}

/* ============ sections ============ */
.ts-sec{
  border-top:1px solid var(--hair);
  padding-block:clamp(48px,8vh,110px);
}
.ts-sec__grid{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);
  gap:clamp(24px,5vw,90px);align-items:start;
}
.ts-sec__label{position:sticky;top:calc(var(--nav-h) + 20px);}
.ts-sec__text{
  max-width:62ch;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.68;color:var(--fg-dim);
}
.ts-sec__text b{color:var(--fg);font-weight:600;}
@media (max-width:760px){
  .ts-sec__grid{grid-template-columns:1fr;gap:18px;}
  .ts-sec__label{position:static;}
}

/* figures */
.ts-fig{margin:clamp(28px,4.5vw,54px) 0 0;}
.ts-fig img{
  width:100%;height:auto;display:block;
  border:1px solid var(--hair);
  background:#fff;
}
.ts-fig--pad img{padding:clamp(14px,2.4vw,32px);}
.ts-fig figcaption{
  margin-top:10px;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);
}
.ts-figrow{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.6vw,32px);
  margin-top:clamp(28px,4.5vw,54px);
}
.ts-figrow .ts-fig{margin-top:0;}
@media (max-width:640px){.ts-figrow{grid-template-columns:1fr;}}

/* the big naming word */
.ts-word{
  font-family:var(--mono);font-weight:400;
  font-size:clamp(3rem,12vw,9rem);letter-spacing:-.04em;line-height:1;
  color:var(--fg);margin-top:clamp(24px,4vw,48px);
}
.ts-word .dot{color:var(--ice);}

/* identity swatches */
.ts-swatches{display:flex;gap:clamp(14px,2.4vw,28px);margin-top:clamp(28px,4.5vw,54px);flex-wrap:wrap;}
.ts-swatch{flex:1 1 180px;max-width:280px;}
.ts-swatch__chip{height:clamp(90px,12vw,150px);border:1px solid var(--line);}
.ts-swatch__chip--w{background:#ffffff;}
.ts-swatch__chip--k{background:#0d0f12;}
.ts-swatch__chip--i{background:var(--ice);}
.ts-swatch figcaption{
  margin-top:8px;font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);
}

/* pictogram figure: centred, generous air */
.ts-picto{display:flex;justify-content:center;}
.ts-picto img{max-width:min(58%,360px);border:1px solid var(--hair);background:#fff;}

/* closing row: pdf + game */
.ts-end{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.6vw,32px);
  margin-top:clamp(30px,5vw,60px);
}
.ts-card{
  display:flex;flex-direction:column;gap:12px;
  border:1px solid var(--line);padding:clamp(22px,3vw,38px);
  color:var(--fg);background:rgba(255,255,255,.4);
  transition:background .35s var(--ease),transform .35s var(--ease);
}
.ts-card:hover{background:#fff;transform:translateY(-3px);}
.ts-card__k{font-family:var(--mono);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-mute);}
.ts-card__t{font-size:clamp(.98rem,1.5vw,1.15rem);line-height:1.55;color:var(--fg-dim);}
.ts-card__t b{color:var(--fg);font-weight:600;}
.ts-card__t .u{color:var(--fg);white-space:nowrap;}
@media (max-width:640px){.ts-end{grid-template-columns:1fr;}}
