/* ==========================================================================
   ORIGENE — brand identity case study (case-study-origene.html)
   The portfolio shell stays; inside, Origene's own palette takes over.
   ========================================================================== */

.og-page {
  /* One rhythm for every chapter break; sub-blocks use the smaller step */
  --og-gap: 200px;
  --og-step: 88px;
  --neem: #00330f;
  --pea: #8fec00;
  --mustard: #f8ad03;
  --carrot: #f36d01;
  --beet: #d53921;
  --mush: #543800;
}

.og {
  overflow-x: clip;
}

.og figure {
  margin: 0;
}

.og figure img {
  width: 100%;
  border-radius: 6px;
}

.og figcaption {
  margin-top: 16px;
  font-size: 14px;
  line-height: 22px;
}

/* ---------- Hero ---------- */
.og-hero {
  position: relative;
  margin-top: 56px;
  padding: 96px 0 0;
  background: var(--neem);
  color: #fff;
  overflow: hidden;
}

.og-hero-leaf {
  position: absolute;
  right: -4vw;
  top: -18%;
  width: min(34vw, 470px);
  fill: var(--pea);
  opacity: 0.07;
  pointer-events: none;
}

.og-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 260px;
  align-items: center;
  gap: 48px;
  min-height: 380px;
}

.og-eyebrow,
.og-ch-num {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.og-eyebrow {
  color: var(--pea);
}

.og-title {
  margin-top: 18px;
  font-family: var(--font-mono);
  font-size: 56px;
  font-weight: 700;
  line-height: 64px;
  letter-spacing: -0.01em;
}

.og-line {
  display: block;
}

.og-line-2 {
  color: var(--pea);
}

.og-hero-sub {
  max-width: 520px;
  margin-top: 22px;
  font-size: 20px;
  line-height: 28px;
  color: rgba(255, 255, 255, 0.78);
}

.og-mark {
  display: block;
  overflow: visible;
}

.og-mark .og-fp {
  fill: var(--fp, #fff);
  stroke: var(--fp, #fff);
  stroke-width: 0;
}

.og-mark .og-lf {
  fill: var(--pea);
}

.og-mark-hero {
  width: 100%;
}

.og-index {
  position: relative;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  margin-top: 88px;
  border-top: 0.75px solid rgba(255, 255, 255, 0.2);
}

.og-index a {
  padding: 18px 0 22px;
  font-family: var(--font-mono);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}

.og-index a span {
  display: block;
  margin-bottom: 4px;
  color: var(--pea);
}

.og-index a:hover {
  color: #fff;
}

/* ---------- Info ---------- */
.og-info dl {
  display: grid;
  grid-template-columns: 1.2fr 1fr 0.6fr 0.7fr 1.6fr;
  gap: 24px;
  margin: 0;
  padding: 32px 0 0;
}

.og-info dt {
  font-size: 14px;
  color: #6b6b6b;
}

.og-info dd {
  margin: 4px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 22px;
}

.og-info small {
  display: block;
  font-size: 13px;
  font-weight: 300;
}

.og-info a {
  text-decoration-thickness: 0.75px;
  text-underline-offset: 3px;
}

/* ---------- Chapters ---------- */
.og-chapter {
  padding-top: var(--og-gap);
  scroll-margin-top: 24px;
}

.og-ch-head h2 {
  max-width: 760px;
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 36px;
  font-weight: 700;
  line-height: 44px;
  color: var(--neem);
}

.og-ch-num {
  color: #6b6b6b;
}

.og-ch-num span {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 22px;
  margin-right: 6px;
  padding: 0 6px;
  border-radius: 100px;
  background: var(--neem);
  color: var(--pea);
  font-size: 12px;
}

.og-lead {
  max-width: 720px;
  margin-top: 28px;
  font-size: 18px;
  line-height: 29px;
}

.og-center {
  margin-inline: auto;
  text-align: center;
}

.og-lead em,
.og-mv em {
  font-style: normal;
  color: var(--neem);
  background: linear-gradient(transparent 60%, rgba(143, 236, 0, 0.55) 0);
}

/* 01 — stats */
.og-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: var(--og-step);
  border-top: 0.75px solid #a6a6a6;
}

.og-stat {
  padding: 28px 24px 0 0;
}

.og-stat + .og-stat {
  padding-left: 22px;
  border-left: 0.75px solid #d9d9d9;
}

.og-stat-num {
  font-family: var(--font-mono);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  color: var(--neem);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.og-stat-label {
  margin-top: 12px;
  font-size: 15px;
  line-height: 22px;
}

.og-stat-src {
  margin-top: 14px;
  font-size: 12px;
  color: #8a8a8a;
}

.og-statement {
  max-width: 760px;
  margin-top: var(--og-step);
  font-family: var(--font-mono);
  font-size: 26px;
  line-height: 38px;
}

.og-statement mark,
.og-hl {
  padding: 0 4px;
  background: linear-gradient(var(--pea), var(--pea)) left / var(--hl, 100%) 100% no-repeat;
  color: var(--neem);
}

/* 02 — root */
.og-root-split {
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 64px;
  align-items: start;
  margin-top: var(--og-step);
}

.og-mv > div + div {
  margin-top: 36px;
}

.og-mv h3 {
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 700;
  color: var(--neem);
}

.og-mv p {
  margin-top: 10px;
  font-size: 17px;
  line-height: 27px;
}

.og-chain {
  display: grid;
  gap: 0;
  margin-top: 44px;
  padding: 0;
  list-style: none;
  border-top: 0.75px solid #a6a6a6;
}

.og-chain li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 0.75px solid #d9d9d9;
  font-size: 15px;
}

.og-chain span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--pea);
  color: var(--neem);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
}

.og-farmer {
  overflow: hidden;
  border-radius: 6px;
}

.og-farmer img {
  border-radius: 0;
  transform-origin: center;
}

.og-stage {
  position: relative;
  margin-top: var(--og-gap);
  text-align: center;
  overflow: hidden;
}

.og-tagline-text {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: clamp(40px, 7vw, 96px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--neem);
}

/* The photo's white sky melts into the page, so text and sculpture read as one scene */
.og .og-stage-img {
  display: block;
  width: 100%;
  height: min(76vh, 780px);
  margin-top: 0;
  object-fit: cover;
  object-position: 50% 10%;
  border-radius: 0;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 18%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 18%);
}

/* 03 — the mark diagram */
.og-diagram {
  position: relative;
  display: grid;
  place-items: center;
  height: 520px;
  margin-top: 40px;
}

/* Centred by the grid, so Motion can own its transform */
.og-mark-diagram {
  --fp: var(--neem);
  width: 240px;
}

.og-mark-diagram .og-fp,
.og-mark-diagram .og-lf {
  transition: opacity 0.35s var(--ease);
}

.og-diagram[data-focus="leaf"] .og-fp,
.og-diagram[data-focus="fp"] .og-lf {
  opacity: 0.15;
}

.og-tag {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  border: 0;
  border-radius: 100px;
  background: #f3f3f3;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 15px;
  cursor: default;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.og-tag:hover,
.og-tag:focus-visible {
  background: var(--neem);
  color: var(--pea);
}

.og-tag i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--pea);
  box-shadow: 0 0 0 3px rgba(143, 236, 0, 0.25);
}

.t-leaf { left: 18%; top: 8%; }
.t-plant { right: 18%; top: 8%; flex-direction: row-reverse; }
.t-finger { left: 6%; top: 44%; }
.t-hand { right: 6%; top: 44%; flex-direction: row-reverse; }
.t-o { left: 18%; bottom: 8%; }
.t-loop { right: 18%; bottom: 8%; flex-direction: row-reverse; }

.og-trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: var(--og-step);
}

.og-tile {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px #e4e4e4;
}

.og .og-tile img {
  border-radius: 0;
}

.og-tile-dark {
  --fp: #fff;
  --lf: #fff;
  background: #000;
  box-shadow: none;
}

.og-tile-light {
  --fp: #000;
  --lf: #000;
  background: #fff;
}

.og-mini {
  display: block;
  overflow: visible;
}

/* Same mark height as in the clear-space tile */
/* Width-based so it resolves inside auto-sized grid tiles:
   39% width = 56% height at the mark's 364:521 ratio, matching the clear-space tile */
.og-tile-mark,
.og-cell-mark {
  width: 39%;
  height: auto;
}

/* 04 — colour bands */
.og-bands {
  display: flex;
  flex-direction: column;
  margin-top: 56px;
}

.og-band {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 32px;
  height: 92px;
  padding: 0 max(16px, calc((100vw - 928px) / 2));
  border: 0;
  background: var(--c);
  color: var(--t);
  font-family: var(--font-mono);
  text-align: left;
  cursor: copy;
  transform-origin: left center;
  transition: height 0.5s var(--ease);
}

.og-band:hover,
.og-band:focus-visible {
  height: 148px;
}

.og-band .n {
  font-size: 28px;
  font-weight: 700;
}

.og-band .h {
  font-size: 16px;
}

.og-band .r {
  min-width: 150px;
  font-size: 13px;
  text-align: right;
  opacity: 0.8;
}

.og-band.is-copied .h::after {
  content: "  Copied ✓";
}

.og-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
  margin-top: var(--og-step);
}

/* 05 — bilingual switch */
.og-voice {
  display: grid;
  justify-items: center;
  margin-top: 56px;
}

.og-switch {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 4px;
  border-radius: 100px;
  background: #f3f3f3;
}

.og-switch button {
  position: relative;
  z-index: 1;
  min-width: 120px;
  height: 40px;
  border: 0;
  border-radius: 100px;
  background: none;
  font-family: var(--font-mono);
  font-size: 15px;
  color: #555;
  cursor: pointer;
  transition: color var(--dur) var(--ease);
}

.og-switch button[aria-pressed="true"] {
  color: var(--pea);
}

.og-switch-thumb {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc(50% - 4px);
  border-radius: 100px;
  background: var(--neem);
  transition: transform 0.45s var(--ease);
}

.og-switch[data-lang="bn"] .og-switch-thumb {
  transform: translateX(100%);
}

.og-lockups {
  display: grid;
  margin-top: 48px;
}

.og-lockups img {
  grid-area: 1 / 1;
  justify-self: center;
  width: auto;
  max-width: none;
  height: 320px;
  opacity: 0;
  transition: opacity 0.5s var(--ease), filter 0.5s var(--ease), transform 0.5s var(--ease);
  filter: blur(8px);
  transform: translateY(10px);
}

.og-lockups img.is-on {
  opacity: 1;
  filter: none;
  transform: none;
}

/* 06 — dark field chapter */
.og-dark {
  margin-top: var(--og-gap);
  padding-top: var(--og-gap);
  padding-bottom: var(--og-gap);
  background: var(--neem);
  color: #fff;
}

.og-dark .og-ch-head h2 {
  color: #fff;
}

.og-dark .og-ch-num {
  color: rgba(255, 255, 255, 0.6);
}

.og-dark .og-ch-num span {
  background: var(--pea);
  color: var(--neem);
}

.og-dark figcaption {
  color: rgba(255, 255, 255, 0.8);
}

.og-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 64px;
}

.og-grid2 .og-half {
  margin-top: 8px;
}

.og-photo-rule {
  margin-top: var(--og-step);
}

.og-rule {
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 32px;
  font-weight: 700;
  line-height: 40px;
  color: var(--pea);
}

.og-dark .og-pair {
  margin-top: 40px;
  gap: 20px;
}

.og-collage {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(3, 210px);
  gap: 12px;
  margin-top: 40px;
}

.og-collage figure {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}

.og .og-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.og-collage figcaption {
  position: absolute;
  left: 12px;
  bottom: 12px;
  margin: 0;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(0, 51, 15, 0.75);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.4;
}

.og-collage .c1 { grid-area: 1 / 1 / 3 / 2; }
.og-collage .c2 { grid-area: 1 / 2 / 2 / 4; }
.og-collage .c3 { grid-area: 1 / 4 / 3 / 5; }
.og-collage .c4 { grid-area: 2 / 2 / 3 / 4; }
.og-collage .c5 { grid-area: 3 / 1 / 4 / 3; }
.og-collage .c6 { grid-area: 3 / 3 / 4 / 5; }

.og-rhythm-head {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  align-items: baseline;
  margin-top: var(--og-step);
}

.og-rhythm-head p:last-child {
  max-width: 560px;
  font-size: 15px;
  line-height: 24px;
  color: rgba(255, 255, 255, 0.8);
}

.og-rhythm {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin-top: 24px;
  overflow: hidden;
  border-radius: 6px;
}

.og-cell {
  aspect-ratio: 1;
  overflow: hidden;
}

.og .og-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.og-cell-c {
  display: grid;
  place-items: center;
  background: var(--bg);
}

.og-cell-c .og-cell-mark {
  width: 36%;
}


/* 07 — application collage */
.og-bento {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 40px 20px;
  margin-top: 48px;
}

.og-bento figure {
  grid-column: span var(--span, 2);
}

.og-bento-img {
  height: var(--h, 300px);
  overflow: hidden;
  border-radius: 6px;
  background: #f1f1f1;
}

.og .og-bento-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.9s var(--ease);
}

.og-bento figure:hover .og-bento-img img {
  transform: scale(1.04);
}

.og-bento figcaption strong {
  display: block;
  margin-bottom: 2px;
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--neem);
}

.b-cards { --span: 4; --h: 400px; }
.b-tote { --span: 2; --h: 400px; }
.b-pack { --span: 2; --h: 300px; }
.b-sign { --span: 4; --h: 300px; }
.b-bill { --span: 4; --h: 340px; }
.b-id { --span: 2; --h: 340px; }
.b-app { --span: 3; --h: 300px; }

.og .b-tote img { object-position: 50% 70%; }
.og .b-sign img { object-position: 50% 35%; }

.b-note {
  grid-column: span 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 300px;
  padding: 32px;
  border-radius: 6px;
  background: var(--neem);
  color: #fff;
}

.b-note .og-ch-num {
  color: var(--pea);
}

.b-note p:last-child {
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 19px;
  line-height: 28px;
}

.og-posters {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.og-posters img {
  width: 100%;
  border-radius: 6px;
}

/* 08 — closing */
.og-closing {
  position: relative;
  margin-top: var(--og-gap);
  min-height: 680px;
  background: var(--neem);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}

.og .og-closing-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  opacity: 0.22;
  mix-blend-mode: luminosity;
}

.og-closing-leaves {
  position: absolute;
  right: -6%;
  top: -8%;
  z-index: -1;
  height: 125%;
  fill: var(--pea);
}

.og-closing-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 128px 0;
}

.og-mark-closing {
  width: 96px;
  margin-bottom: 40px;
}

.og-closing .og-ch-num {
  color: rgba(255, 255, 255, 0.7);
}

.og-closing .og-ch-num span {
  background: var(--pea);
  color: var(--neem);
}

.og-closing-quote {
  max-width: 560px;
  margin-top: 18px;
  font-family: var(--font-mono);
  font-size: 34px;
  font-weight: 700;
  line-height: 44px;
}

.og-closing-sign {
  margin-top: 18px;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.7);
}

.og-closing-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 36px;
}

.og-talk {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 18px;
  border-radius: 100px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 15px;
  text-decoration: none;
  transition: background-color var(--dur) var(--ease);
}

.og-talk:hover {
  background: rgba(255, 255, 255, 0.1);
}

.og-talk svg {
  width: 12px;
  height: 12px;
}

.og-visit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 18px;
  border-radius: 100px;
  background: var(--pea);
  color: var(--neem);
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}

.og-visit svg {
  width: 12px;
  height: 12px;
}

/* ---------- Chapter rail ---------- */
.og-rail {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 16px;
  border-radius: 100px;
  background: rgba(0, 51, 15, 0.88);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 13px;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 16px);
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}

.og-rail.is-on {
  opacity: 1;
  transform: translate(-50%, 0);
}

.og-rail-label {
  min-width: 96px;
}

.og-rail-bar {
  width: 96px;
  height: 3px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.2);
  overflow: hidden;
}

.og-rail-bar i {
  display: block;
  height: 100%;
  background: var(--pea);
  transform: scaleX(0);
  transform-origin: left;
}

/* ---------- Motion hand-over ---------- */
.pre-motion .og-title,
.pre-motion .og-hero-sub,
.pre-motion .og-eyebrow,
.pre-motion .og-mark-hero,
.pre-motion .og-index {
  opacity: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .og-title {
    font-size: 44px;
    line-height: 52px;
  }

  .og-stats {
    grid-template-columns: 1fr 1fr;
  }

  .og-stat:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }

  .og-stat:nth-child(n + 3) {
    padding-top: 36px;
  }

  .og-root-split {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .og-info dl {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  .og-hero {
    margin-top: 28px;
    padding-top: 56px;
  }

  .og-hero-grid {
    grid-template-columns: 1fr;
    gap: 36px;
    min-height: 0;
  }

  .og-mark-hero {
    width: 150px;
    order: -1;
  }

  .og-title {
    font-size: 34px;
    line-height: 42px;
  }

  .og-hero-sub {
    font-size: 17px;
    line-height: 25px;
  }

  .og-index {
    grid-template-columns: repeat(4, 1fr);
    margin-top: 48px;
  }

  .og-index a {
    padding: 14px 0;
  }

  .og-info dl {
    grid-template-columns: 1fr 1fr;
  }

  .og-page {
    --og-gap: 128px;
    --og-step: 56px;
  }

  .og-ch-head h2 {
    font-size: 26px;
    line-height: 34px;
  }

  .og-lead {
    font-size: 16px;
    line-height: 26px;
  }

  .og-stats {
    grid-template-columns: 1fr;
  }

  .og-stat,
  .og-stat + .og-stat {
    padding: 24px 0;
    border-left: 0;
    border-bottom: 0.75px solid #d9d9d9;
  }

  .og-statement {
    margin-top: 48px;
    font-size: 20px;
    line-height: 30px;
  }

  .og-root-split,
  .og-grid2,
  .og-pair {
    grid-template-columns: 1fr;
  }

  .og-farmer {
    order: -1;
  }

  .og-diagram {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    height: auto;
  }

  .og-mark-diagram {
    grid-column: 1 / -1;
    width: 160px;
    margin-bottom: 20px;
  }

  .og-tag {
    position: static;
    justify-content: flex-start;
    flex-direction: row !important;
    font-size: 13px;
  }

  .og-band {
    grid-template-columns: 1fr auto;
    height: 72px;
  }

  .og-band .r {
    display: none;
  }

  .og-band .n {
    font-size: 20px;
  }

  .og-band:hover {
    height: 72px;
  }

  .og-lockups img {
    height: 220px;
  }

  .og-switch button {
    min-width: 100px;
  }

  .og-rule {
    font-size: 24px;
    line-height: 32px;
  }

  /* Three equal tiles, stacked, at one shared size */
  .og-trio {
    grid-template-columns: minmax(0, 300px);
    justify-content: center;
    gap: 28px;
  }

  .og-collage {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(4, 170px);
    gap: 8px;
  }

  .og-collage .c1 { grid-area: 1 / 1 / 3 / 2; }
  .og-collage .c2 { grid-area: 1 / 2 / 2 / 3; }
  .og-collage .c3 { grid-area: 2 / 2 / 4 / 3; }
  .og-collage .c4 { grid-area: 3 / 1 / 4 / 2; }
  .og-collage .c5 { grid-area: 4 / 1 / 5 / 2; }
  .og-collage .c6 { grid-area: 4 / 2 / 5 / 3; }

  .og-rhythm-head {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .og-rhythm {
    grid-template-columns: repeat(3, 1fr);
  }

  .og-bento {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .og-bento figure,
  .b-note {
    grid-column: auto;
    --h: 240px;
  }

  .og-bento .b-tote { --h: 360px; }

  .b-note {
    height: auto;
    padding: 28px;
  }

  .og .og-stage-img {
    height: 52vh;
    margin-top: -16px;
  }

  .og-posters {
    grid-template-columns: 1fr 1fr;
  }

  .og-closing {
    min-height: 0;
  }

  .og-closing-leaves {
    right: -40%;
    height: 80%;
    top: auto;
    bottom: -10%;
    opacity: 0.35;
  }

  .og-closing-inner {
    padding: 64px 0 72px;
  }

  .og-mark-closing {
    width: 72px;
  }

  .og-closing-quote {
    font-size: 22px;
    line-height: 30px;
  }

  .og-rail {
    bottom: 16px;
  }
}

/* ==========================================================================
   03 — Road to the mark (explorations)
   ========================================================================== */
.og-road {
  position: relative;
  margin: var(--og-step) 0 0;
  padding: 0;
  list-style: none;
}

/* Timeline spine; origene.js grows it with scroll */
.og-road::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 0;
  width: 1px;
  background: #d9d9d9;
}

.og-road-line {
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 0;
  width: 1px;
  background: var(--neem);
  transform-origin: top;
}

.og-round {
  position: relative;
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 32px;
  padding-left: 36px;
}

.og-round + .og-round {
  margin-top: 64px;
}

.og-round::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 4px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 2px var(--neem);
}

.og-round.is-final::before {
  background: var(--pea);
  box-shadow: 0 0 0 4px rgba(143, 236, 0, 0.3);
}

.og-round-num {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--neem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.og-round-name {
  margin-top: 10px;
  font-size: 15px;
  font-weight: 500;
  line-height: 21px;
}

.og-round-lead {
  font-size: 16px;
  line-height: 25px;
}

.og-round-lead em,
.og-final em,
.og-ex figcaption em {
  font-style: normal;
  color: var(--neem);
  background: linear-gradient(transparent 60%, rgba(143, 236, 0, 0.55) 0);
}

.og-ex-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 20px;
}

.og-ex {
  margin: 0;
}

.og-ex-img {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px #e8e8e8;
}

.og-ex-wide {
  margin-top: 20px;
}

/* Explored work rests in grey; hover brings it back to colour */
.og .og-ex-img img {
  border-radius: 0;
  filter: grayscale(1);
  opacity: 0.8;
  transition: filter 0.5s var(--ease), opacity 0.5s var(--ease), transform 0.7s var(--ease);
}

.og-ex:hover .og-ex-img img {
  filter: none;
  opacity: 1;
}

.og-ex:hover .og-ex-img img {
  transform: scale(1.03);
}

.og-ex-tag {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 9px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.9);
  color: #555;
  font-family: var(--font-mono);
  font-size: 11px;
}

.og-ex figcaption {
  margin-top: 12px;
  font-size: 13px;
  line-height: 20px;
}

.og-ex figcaption strong {
  display: block;
  margin-bottom: 2px;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--neem);
}

.og-final {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  align-items: center;
}

.og-final-tile {
  --fp: #fff;
  --lf: var(--pea);
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 900 / 640;
  border-radius: 6px;
  background: var(--neem);
}

.og-final-mark {
  width: 26%;
}

.og-ex-tag-chosen {
  background: var(--pea);
  color: var(--neem);
  font-weight: 700;
}

.og-final p {
  font-size: 18px;
  line-height: 29px;
}

.og-subhead {
  margin-top: calc(var(--og-gap) * 0.6);
  font-family: var(--font-mono);
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  color: var(--neem);
}

@media (max-width: 1000px) {
  .og-round {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

@media (max-width: 767px) {
  .og-round {
    padding-left: 28px;
  }

  .og-ex-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .og-ex-grid .og-ex:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .og-final {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .og-final p {
    font-size: 16px;
    line-height: 26px;
  }

  .og-subhead {
    font-size: 22px;
    line-height: 30px;
  }
}

/* Round 03's sheet is busy top-left; its tag sits in the empty corner */
.og-ex-wide .og-ex-tag {
  top: auto;
  left: auto;
  right: 12px;
  bottom: 12px;
}
