/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Arvo:wght@400;700&family=Montserrat:wght@400;600&display=swap');

:root{
  --cream:#F2EEE6;
  --lilac:#F5DBFC;
  --gray:#666666;
  --black:#000000;
  --white:#FFFFFF;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--black);
  background:#000 url('./assets/uc1bg.png') center/cover fixed no-repeat;
    line-height: 1.6; /* was default, now more breathing room */
}

/* Page fade */
html.is-entering body{opacity:0}
html.is-entering.is-ready body{opacity:1;transition:opacity .22s ease}
html.is-leaving body{opacity:0;transition:opacity .18s ease}

/* Container panel */
.panel{
  width:min(620px, 92vw);
  margin:6vh auto 6vh;
  background:var(--white);
  border-radius:0;
  box-shadow: 0 8px 32px rgba(0,0,0,.35);
  padding:28px 22px 36px;
}

/* Back */
.back{display:inline-block;color:#333;text-decoration:none;margin-bottom:10px;font-size:14px}
.back:hover{text-decoration:underline}

/* Title + chips */
h1.title{
  font-family:'Arvo', serif;
  font-size: clamp(28px,4.6vw,40px);
  line-height:1.05;
  margin:6px 0 10px;
}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chip{background:var(--lilac);color:var(--black);padding:4px 8px;border-radius:8px;font-size:12px}

/* Headings & copy */
h2{font-family:'Arvo',serif;font-size:22px;margin:20px 0 8px}
h3{font-weight:700;margin:14px 0 4px}
p{margin:4px 0 10px;color:#222}
.small{color:var(--gray);font-size:14px}

/* Context 2‑column */
.context-section{
  display:flex;
  align-items:center;
  gap:16px;
  margin:10px 0 20px;
}
.context-graphic{flex:0 0 180px}
.context-graphic img{display:block; width:100%; height:auto}
.context-text{flex:1}

@media(max-width:600px){
  .context-section{flex-direction:column; align-items:flex-start}
  .context-graphic{flex:none; width:140px}
}

/* Timeline wrap */
.timeline{margin:10px 0 14px}
.timeline svg{width:100%; height:auto; display:block}

/* Process grid */
.dp-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  margin:10px 0 14px;
}
@media (max-width: 540px){
  .dp-grid{ grid-template-columns: 1fr; }
}

/* Thumbnails (modal triggers) */
.thumb{
  border:0; padding:0; background:transparent; cursor:pointer;
  box-shadow: 0 3px 10px rgba(0,0,0,.06);
  overflow:hidden;
  border-radius:6px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.thumb img{ display:block; width:100%; height:auto }
.thumb:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0,0,0,.12);
  border-color:#ddd;
}

/* Modal */
.no-scroll{ overflow:hidden }
.modal{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.6);
  display: grid; place-items: center;
  padding: 24px;
  opacity: 0; pointer-events: none;
  transition: opacity .2s ease;
  z-index: 1000;
}
.modal[aria-hidden="false"]{ opacity: 1; pointer-events: auto; }
.modal__img{
  max-width: min(1000px, 92vw);
  max-height: 86vh;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.25);
  background:#111;
}
.modal__close{
  position: absolute; top: 14px; right: 16px;
  width: 36px; height: 36px; border-radius: 999px;
  border:1px solid rgba(255,255,255,.35);
  background: rgba(0,0,0,.4); color:#fff;
  font-size: 22px; line-height: 1; cursor: pointer;
  transition: transform .15s ease, background .15s ease;
}
.modal__close:hover{ transform: scale(1.05); background: rgba(0,0,0,.6); }

/* Lists (if you add later) */
ul{padding-left:18px;color:#222}
li{margin:6px 0}

/* Slightly denser grid for Live examples only */
.dp-grid + .dp-grid.examples-tight { gap: 10px; }

/* After the fact */
.after-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 8px 0 6px;
}
@media (max-width: 600px){
  .after-grid{ grid-template-columns: 1fr; }
}

/* KPIs */
.kpi-list{
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 6px 0 10px;
  padding: 0;
}
.kpi{
  display: inline-block;
  background: var(--lilac);
  color: var(--black);
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 12px;
}

/* Bulleted points */
.points{ padding-left: 18px; margin: 6px 0 10px; }
.points li{ margin: 6px 0; color:#222; }

/* Quote styling to match the clean tone */
.quote{
  margin: 10px 0 0;
  padding: 10px 12px;
  border-left: 3px solid var(--lilac);
  background: #faf7fb;
  color:#222;
  border-radius: 6px;
}

/* Bento preview grid */
.bento-grid{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.bento-grid .tile{
  position: relative;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
  transition: transform .18s ease, box-shadow .18s ease;
  /* default aspect for safety */
  aspect-ratio: 4 / 3;
}

.bento-grid .tile img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;             /* key: crop to interesting area */
}

.bento-grid .tile:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.15);
}

/* Shapes */
.bento-grid .tile.wide   { grid-column: span 4; aspect-ratio: 16 / 9; }
.bento-grid .tile.square { grid-column: span 2; aspect-ratio: 1 / 1; }
.bento-grid .tile.tall   { grid-column: span 2; grid-row: span 2; aspect-ratio: 3 / 4; }

/* Responsive */
@media (max-width: 900px){
  .bento-grid{ grid-template-columns: repeat(4, 1fr); }
  .bento-grid .tile.wide{ grid-column: span 4; }
}
@media (max-width: 620px){
  .bento-grid{ grid-template-columns: repeat(2, 1fr); }
  .bento-grid .tile{ aspect-ratio: 3 / 2; }
  .bento-grid .tile.tall{ grid-row: auto; aspect-ratio: 3 / 4; }
}

