:root {
  --v8iwz6: #6cb9d0;
  --v8uttc: #364d54;
  --v1nfbg: #1d4a58;
  --vfq8fy: #43717f;
  --vcmmo2: #7e9add;
  --veu00s: #6cb9d0;
  --viaw3z: #45484a;
  --vjnb0w: #575d60;
  --vg26it: #89969f;
  --visrtt: #2c2e30;
  --vqxzlj: #2e3438;
  --vj6bvj: #3e4346;
  --vp1577: #eef0f1;
  --vmdtnp: #adb4b8;
  --vcfwbr: #53c69c;
  --vwhz8g: #e4b558;
  --v920mf: #de625e;
  --v0487r: 75.551rem;
  --vzws3g: 66ch;
  --votti7: #3e4346;
  --vf7gp6: clamp(1.006rem, 3vw, 2.044rem);
  --vufvsc: 4.09rem;
  --vam6rm: 'Fraunces', system-ui, sans-serif;
  --vxg2yo: 'Inter', system-ui, sans-serif;
  --vakmsy: 'Fraunces', system-ui, sans-serif;
  --v1ev4h: clamp(2.321rem, 4.5vw, 3.322rem);
  --vg2k0w: clamp(1.526rem, 3vw, 2.321rem);
  --vjg07f: 1.526rem;
  --v3auaq: 1.093rem;
  --vrh1gt: 0.914rem;
  --vovkcb: 1.15;
  --vp4uev: 1.65;
  --v0a8lt: 0.504rem;
  --vjfzef: 0.758rem;
  --v11ixi: #111111;
  --vdjzi0: #ffffff;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--vxg2yo); font-size: var(--v3auaq); line-height: var(--vp4uev); color: var(--vp1577); background: var(--vqxzlj); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--vam6rm); line-height: var(--vovkcb); font-weight: 700; color: var(--vp1577); text-wrap: balance; }
h1 { font-size: var(--v1ev4h); letter-spacing: -0.02em; }
h2 { font-size: var(--vg2k0w); margin-top: 2.506rem; margin-bottom: 0.758rem; }
h3 { font-size: var(--vjg07f); margin-top: 1.647rem; margin-bottom: 0.504rem; }
p { margin-bottom: 1.006rem; }
a { color: var(--veu00s); }
ul, ol { margin: 0 0 1.006rem 1.182rem; }
li { margin-bottom: 0.368rem; }
strong { font-weight: 700; }
code { font-family: ui-monospace, "SF Mono", Menlo, monospace; background: rgba(128, 128, 128, 0.116); border: 1px solid rgba(128, 128, 128, 0.266); border-radius: 4px; padding: 0.103em 0.37em; font-size: 0.849em; color: var(--vp1577); }
blockquote { border-left: 3px solid var(--v8iwz6); padding-left: 1.006rem; color: var(--vmdtnp); margin: 0 0 1.006rem; }
img { max-width: 100%; height: auto; display: block; }
sup.g8frdi a { text-decoration: none; color: var(--vcmmo2); font-weight: 600; }
.container { width: 100%; max-width: var(--v0487r); margin-inline: auto; padding-inline: var(--vf7gp6); }
.gh7lbd { position: absolute; left: -999px; }
.gh7lbd:focus { left: 1.006rem; top: 1.006rem; background: var(--vj6bvj); padding: 0.504rem 1.006rem; z-index: 100; }
main { display: block; }
.gklrdm { font-family: var(--vakmsy); font-weight: 800; font-size: 1.152rem; color: var(--vp1577); text-decoration: none; }
.gjf36m { min-width: 0; }
.gjf36m ul { display: flex; flex-wrap: wrap; gap: 1.182rem; list-style: none; margin: 0; padding: 0; min-width: 0; }
.gjf36m li { white-space: nowrap; }
.gjf36m a { color: var(--vmdtnp); text-decoration: none; font-size: var(--vrh1gt); font-weight: 600; }
.gjf36m a:hover { color: var(--veu00s); }
.g3cpmt { display: none; background: none; border: 1px solid var(--vjnb0w); border-radius: 6px; padding: 0.401rem 0.6rem; font-size: 1.102rem; line-height: 1; cursor: pointer; color: var(--vp1577); }
.gw49uk { font-family: var(--vakmsy); text-transform: uppercase; letter-spacing: 0.122em; font-size: var(--vrh1gt); font-weight: 700; color: var(--vcmmo2); margin-bottom: 0.758rem; }
.gz6ft5 { font-size: 1.152rem; color: var(--vmdtnp); margin-top: 1.006rem; max-width: 59ch; }
.g7oy4g { display: flex; flex-wrap: wrap; gap: 0.758rem; margin-top: 1.647rem; }
.gnyq1b { display: inline-block; padding: 0.877rem 1.602rem; border-radius: var(--v0a8lt); font-weight: 700; text-decoration: none; font-size: var(--vrh1gt); transition: transform 0.146s ease, opacity 0.146s ease; }
.gnyq1b:hover { transform: translateY(-1px); }
.gkxb6g { background: var(--v8iwz6); color: var(--v11ixi); }
.g7ghds { background: transparent; color: var(--veu00s); border: 1.5px solid var(--veu00s); }
article > section, main > article { padding-block: 0.504rem; }
.gywae2 { padding-block: 1.006rem 3.161rem; }
.gywae2 .container > section { max-width: var(--vzws3g); margin-inline: auto; }
.gywae2 .container > section.g20z4y, .gywae2 .container > .g20z4y { max-width: none; }
.gywae2 .container > section > .gkraby,
.gywae2 .container > section > .giwhad,
.gywae2 .container > section > .ger4f4,
.gywae2 .container > section > .geqb2b,
.gywae2 .container > section > .gvol93 {
  --vfe9ad: min(var(--v0487r) - 2 * var(--vf7gp6), 100vw - 2 * var(--vf7gp6));
  width: var(--vfe9ad);
  max-width: none;
  margin-inline: calc((100% - var(--vfe9ad)) / 2);
}
@media (max-width: 903px) {
  .gywae2 .container > section > .gkraby,
  .gywae2 .container > section > .giwhad,
  .gywae2 .container > section > .ger4f4,
  .gywae2 .container > section > .geqb2b,
  .gywae2 .container > section > .gvol93 { width: 100%; margin-inline: 0; }
}
.gvol93 img { aspect-ratio: 16 / 7; object-fit: contain; background: var(--vj6bvj); }
.g7hw8k img { aspect-ratio: 16 / 6; object-fit: cover; }
.ger4f4 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.182rem, 3vw, 2.506rem); align-items: center; background: var(--votti7, var(--vj6bvj)); border: 1px solid var(--vjnb0w); border-radius: var(--vjfzef); padding: clamp(1.182rem, 3vw, 2.321rem); margin: 2.506rem 0; }
.g2lanl img { border-radius: calc(var(--vjfzef) - 0.255rem); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.g2lanl figcaption { font-size: var(--vrh1gt); color: var(--vmdtnp); margin-top: 0.6rem; line-height: 1.45; }
.go5sju { font-family: var(--vakmsy); text-transform: uppercase; letter-spacing: 0.103em; font-size: 0.758rem; font-weight: 700; color: var(--vcmmo2); margin-bottom: 0.6rem; }
.gwfnbj h2, .gwfnbj h3 { margin-top: 0; }
.gwfnbj p:last-child { margin-bottom: 0; }
@media (max-width: 723px) { .ger4f4 { grid-template-columns: 1fr; } }
.gz286s { border-left: 3px solid var(--vcmmo2); background: var(--votti7, var(--vj6bvj)); border-radius: 0 var(--vjfzef) var(--vjfzef) 0; padding: 1.182rem 1.526rem; margin: 2.044rem 0; }
.gz286s h2, .gz286s h3 { margin-top: 0; font-size: 1.069rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--vmdtnp); }
.gcsplf { list-style: none; margin: 0.758rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.gcsplf li { margin: 0; padding-left: 1.468rem; position: relative; }
.gcsplf li::before { content: "\2014"; position: absolute; left: 0; color: var(--vcmmo2); font-weight: 700; }
.giwhad { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.589rem), 1fr)); gap: 1px; background: var(--vjnb0w); border: 1px solid var(--vjnb0w); border-radius: var(--vjfzef); overflow: hidden; margin: 2.321rem 0; }
.goo4h3 { background: var(--vj6bvj); padding: 1.468rem 1.182rem; }
.g3oxoe { font-family: var(--vakmsy); font-size: clamp(1.647rem, 3.5vw, 2.506rem); font-weight: 800; line-height: 1.05; color: var(--v8iwz6); letter-spacing: -0.02em; }
.gmriqk { font-size: var(--vrh1gt); color: var(--vmdtnp); margin-top: 0.401rem; line-height: 1.4; }
.geqb2b { background: var(--v8iwz6); color: var(--v11ixi); border-radius: var(--vjfzef); padding: clamp(1.526rem, 4vw, 2.798rem); margin: 3.161rem 0 1.006rem; text-align: center; }
.geqb2b h2, .geqb2b h3 { color: var(--v11ixi); margin-top: 0; }
.geqb2b p { color: var(--v11ixi); opacity: 0.88; margin-inline: auto; max-width: 58ch; }
.geqb2b .g7oy4g { justify-content: center; }
.geqb2b .g7ghds { color: var(--v11ixi); border-color: var(--v11ixi); }
.gvol93 img { border-radius: var(--vjfzef); width: 100%; }
.gvol93 figcaption { font-size: var(--vrh1gt); color: var(--vmdtnp); margin-top: 0.6rem; font-style: italic; }
.g7hw8k { margin: 1.526rem 0; }
.g7hw8k img { border-radius: var(--vjfzef); }
.g2yzrb { background: var(--vj6bvj); border: 1px solid #575d60; border-radius: var(--vjfzef); padding: 1.526rem; }
.gkraby { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.779rem), 1fr)); gap: 1.182rem; margin: 1.526rem 0 2.044rem; }
.gkraby .g2yzrb { display: flex; flex-direction: column; gap: 0.504rem; }
.gkraby .g2yzrb img { border-radius: calc(var(--vjfzef) - 0.255rem); margin-bottom: 0.504rem; aspect-ratio: 16 / 10; object-fit: cover; }
.gkraby .g2yzrb h2, .gkraby .g2yzrb h3 { margin: 0; font-size: 1.152rem; }
.gkraby .g2yzrb p { margin: 0; font-size: var(--vrh1gt); color: var(--vmdtnp); }
.gkraby .g2yzrb .g1e3tq { margin-top: auto; padding-top: 0.6rem; font-weight: 700; font-size: var(--vrh1gt); color: var(--veu00s); text-decoration: none; }
.gkraby .g2yzrb .g1e3tq:hover { text-decoration: underline; }
.gh6io1 { margin: 1.526rem 0; }
.gh6io1 img { border-radius: var(--vjfzef); }
.gh6io1 figcaption { font-size: var(--vrh1gt); color: var(--vmdtnp); margin-top: 0.504rem; font-style: italic; }
.gdnhne { overflow-x: auto; margin: 1.182rem 0 1.647rem; }
table { border-collapse: collapse; width: 100%; font-size: var(--vrh1gt); }
th, td { text-align: left; padding: 0.6rem 0.877rem; border-bottom: 1px solid var(--vjnb0w); vertical-align: top; }
thead th { border-bottom: 2px solid var(--vp1577); font-family: var(--vam6rm); }
tbody tr:nth-child(even) { background: rgba(128, 128, 128, 0.096); }
.g9evye { padding-left: 1.526rem; }
.g9evye li { margin-bottom: 0.758rem; font-size: var(--vrh1gt); color: var(--vmdtnp); }
.g9evye li a { word-break: break-word; }
.gq51v2 ul { list-style: none; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
.g6b6ho.g1md5s6 { background: var(--viaw3z); border-bottom: 3px solid var(--vp1577); position: sticky; top: 0; z-index: 50; }
.g6b6ho.g1md5s6 .container { display: flex; align-items: baseline; justify-content: space-between; min-height: var(--vufvsc); gap: 1.006rem; }
.g6b6ho.g1md5s6 .gklrdm { font-size: 1.468rem; letter-spacing: -0.011em; }
.g6b6ho.g1md5s6 .gjf36m a { text-transform: uppercase; letter-spacing: 0.061em; font-size: 0.786rem; }
@media (max-width: 763px) {
  .g6b6ho.g1md5s6 .g3cpmt { display: block; }
  .g6b6ho.g1md5s6 .gjf36m { display: none; position: absolute; top: var(--vufvsc); left: 0; right: 0; background: var(--viaw3z); border-bottom: 3px solid var(--vp1577); padding: 1.006rem var(--vf7gp6); z-index: 50; }
  .g6b6ho.g1md5s6 .gjf36m.g9c84p { display: block; }
  .g6b6ho.g1md5s6 .gjf36m ul { flex-direction: column; gap: 0.758rem; }
}
.gqrp1t.gcnfna2 { padding: clamp(2.506rem, 6vw, 4.825rem) 0 clamp(1.526rem, 4vw, 3.161rem); }
.gqrp1t.gcnfna2 .container { display: grid; gap: 2.044rem; align-items: center; }
.gqrp1t.gcnfna2 h1 { max-width: 18ch; }
.gqrp1t.gcnfna2 .g7hw8k { margin: 0; }
@media (min-width: 863px) { .gqrp1t.gcnfna2 .container { grid-template-columns: 1.1fr 0.9fr; } }
.gwkxcu.gfhody2 { background: var(--viaw3z); border-top: 1px solid var(--vjnb0w); margin-top: 4.09rem; padding-block: 2.506rem; text-align: center; }
.gwkxcu.gfhody2 a { color: var(--vmdtnp); text-decoration: none; }
.gwkxcu.gfhody2 a:hover { color: var(--veu00s); text-decoration: underline; }
.gwkxcu.gfhody2 .gi0w76 { font-style: italic; color: var(--vmdtnp); margin: 0 auto 1.182rem; max-width: 56ch; }
.gwkxcu.gfhody2 .gx0dg2 { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.758rem 1.182rem; font-size: var(--vrh1gt); }
.gwkxcu.gfhody2 .gtvlye { margin-top: 1.182rem; font-size: var(--vrh1gt); color: var(--vmdtnp); }

/* ---- per-site theme layer ---- */
/* Forma Peptides — tissue architecture field system */
:root {
  --forma-rule: #575d60;
  --forma-ink: #eef0f1;
  --forma-cyan: #6cb9d0;
  --forma-blue: #7e9add;
  --forma-panel: #3e4346;
  --forma-ground: #2e3438;
}

body {
  background-color: var(--vqxzlj);
  background-image:
    linear-gradient(rgba(108, 185, 208, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(108, 185, 208, 0.035) 1px, transparent 1px);
  background-size: 4rem 4rem;
  color: var(--vp1577);
  font-feature-settings: "ss01" 1, "cv02" 1;
}

::selection {
  background: var(--v8iwz6);
  color: #111111;
}

a {
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

main {
  overflow: hidden;
}

h1,
h2,
h3 {
  font-variation-settings: "opsz" 72, "SOFT" 15, "WONK" 0;
}

h2 {
  letter-spacing: -0.025em;
}

p,
li {
  letter-spacing: 0.004em;
}

.g6b6ho {
  background: var(--vqxzlj);
  border-bottom: 1px solid var(--forma-rule);
  box-shadow: 0 0.45rem 1.8rem rgba(0, 0, 0, 0.12);
}

.g6b6ho .container {
  min-height: 5.25rem;
}

.gklrdm {
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
  font-family: var(--vxg2yo);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.gklrdm::before {
  content: "F·P";
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid var(--v8iwz6);
  background:
    linear-gradient(90deg, transparent 47%, rgba(108, 185, 208, 0.34) 48%, rgba(108, 185, 208, 0.34) 52%, transparent 53%),
    linear-gradient(transparent 47%, rgba(108, 185, 208, 0.34) 48%, rgba(108, 185, 208, 0.34) 52%, transparent 53%);
  color: var(--vp1577);
  font-family: var(--vxg2yo);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.gjf36m ul {
  align-items: center;
  gap: 0.45rem 1rem;
}

.gjf36m a {
  border-bottom: 1px solid transparent;
  color: var(--vmdtnp);
  font-family: var(--vxg2yo);
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: 0.075em;
  padding-block: 0.35rem;
  text-transform: uppercase;
}

.gjf36m a:hover,
.gjf36m a:focus-visible {
  border-bottom-color: var(--v8iwz6);
  color: var(--vp1577);
}

.g3cpmt {
  width: 2.5rem;
  height: 2.5rem;
  border-color: var(--v8iwz6);
  border-radius: 0;
  color: var(--vp1577);
}

.gh7lbd:focus {
  border: 1px solid var(--v8iwz6);
  border-radius: 0;
  color: var(--vp1577);
}

.gqrp1t {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(4rem, 9vw, 8.5rem) clamp(3rem, 7vw, 6.5rem);
  border-bottom: 1px solid var(--forma-rule);
  background:
    linear-gradient(118deg, rgba(108, 185, 208, 0.11), transparent 42%),
    linear-gradient(290deg, rgba(126, 154, 221, 0.1), transparent 38%),
    var(--vqxzlj);
}

.gqrp1t::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -18rem;
  right: clamp(-12rem, -8vw, -4rem);
  width: clamp(24rem, 48vw, 46rem);
  aspect-ratio: 1;
  border: 1px solid rgba(108, 185, 208, 0.42);
  border-radius: 50%;
  box-shadow:
    0 0 0 4.5rem rgba(108, 185, 208, 0.035),
    0 0 0 9rem rgba(126, 154, 221, 0.025);
}

.gqrp1t::after {
  content: "FORM / 01—04";
  position: absolute;
  right: max(1.25rem, calc((100vw - var(--v0487r)) / 2));
  bottom: 1rem;
  color: var(--vmdtnp);
  font-family: var(--vxg2yo);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  writing-mode: vertical-rl;
}

.gqrp1t .container {
  gap: clamp(2.5rem, 6vw, 6rem);
}

.g04oht {
  position: relative;
  z-index: 2;
  padding-left: clamp(1.25rem, 3vw, 3rem);
  border-left: 1px solid var(--v8iwz6);
}

.g04oht::before {
  content: "";
  position: absolute;
  top: 0;
  left: -0.28rem;
  width: 0.5rem;
  height: 0.5rem;
  background: var(--v8iwz6);
  transform: rotate(45deg);
}

.gqrp1t h1 {
  max-width: 11ch;
  font-size: clamp(3.35rem, 7.4vw, 7.25rem);
  font-weight: 600;
  letter-spacing: -0.052em;
  line-height: 0.92;
}

.gw49uk {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1.5rem;
  color: var(--v8iwz6);
  font-family: var(--vxg2yo);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.19em;
}

.gw49uk::before {
  content: "";
  width: 1.75rem;
  height: 1px;
  background: currentColor;
}

.gz6ft5 {
  max-width: 48ch;
  margin-top: 1.6rem;
  color: var(--vp1577);
  font-size: clamp(1.02rem, 1.5vw, 1.24rem);
  font-weight: 400;
  line-height: 1.62;
}

.g7hw8k {
  position: relative;
  margin: 0;
  padding: 0.65rem;
  border: 1px solid var(--forma-rule);
  background: var(--vj6bvj);
  transform: translateY(1rem) rotate(1.5deg);
  box-shadow: 1.35rem 1.35rem 0 rgba(108, 185, 208, 0.08);
}

.g7hw8k::before,
.g7hw8k::after {
  content: "";
  position: absolute;
  width: 1.5rem;
  height: 1.5rem;
  border-color: var(--v8iwz6);
  pointer-events: none;
}

.g7hw8k::before {
  top: -0.35rem;
  left: -0.35rem;
  border-top: 1px solid;
  border-left: 1px solid;
}

.g7hw8k::after {
  right: -0.35rem;
  bottom: -0.35rem;
  border-right: 1px solid;
  border-bottom: 1px solid;
}

.g7hw8k img {
  border-radius: 0;
  filter: saturate(0.82) contrast(1.04);
}

.g7oy4g {
  margin-top: 2rem;
  gap: 0.75rem;
}

.gnyq1b {
  position: relative;
  border-radius: 0;
  font-family: var(--vxg2yo);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gkxb6g {
  border: 1px solid var(--v8iwz6);
  background: var(--v8iwz6);
  color: #111111;
}

.gkxb6g::after {
  content: "→";
  margin-left: 0.7rem;
}

.g7ghds {
  border-color: var(--forma-rule);
  color: var(--vp1577);
}

.g7ghds:hover {
  border-color: var(--vcmmo2);
  background: var(--vj6bvj);
}

.gywae2 {
  padding-block: clamp(3rem, 6vw, 6rem);
}

.gywae2 .container > section {
  position: relative;
  max-width: 68ch;
  margin-inline: auto;
  padding: clamp(2.5rem, 5vw, 5rem) 0 0;
  border-top: 1px solid var(--forma-rule);
}

.gywae2 .container > section + section {
  margin-top: clamp(2.5rem, 5vw, 5rem);
}

.gywae2 .container > section:first-of-type {
  padding: clamp(1.5rem, 4vw, 2.75rem);
  border: 1px solid var(--forma-rule);
  border-left: 0.25rem solid var(--v8iwz6);
  background: var(--vj6bvj);
  box-shadow: 1rem 1rem 0 rgba(108, 185, 208, 0.055);
}

.gywae2 section h2 {
  position: relative;
  margin-top: 0;
  margin-bottom: 1.3rem;
  padding-right: 3rem;
  color: var(--vp1577);
  font-size: clamp(1.75rem, 3.5vw, 2.7rem);
  font-weight: 600;
  line-height: 1.04;
}

.gywae2 section h2::after {
  content: "+";
  position: absolute;
  top: 0.15em;
  right: 0;
  color: var(--v8iwz6);
  font-family: var(--vxg2yo);
  font-size: 0.55em;
  font-weight: 400;
}

.gywae2 section p {
  color: var(--vp1577);
}

.gywae2 section p + p {
  margin-top: 1.15rem;
}

.gywae2 section strong {
  color: var(--vp1577);
  font-weight: 600;
}

.gywae2 section > ul {
  margin: 1.5rem 0 1.75rem;
  padding: 0;
  list-style: none;
}

.gywae2 section > ul > li {
  position: relative;
  margin: 0;
  padding: 0.75rem 0 0.75rem 1.7rem;
  border-bottom: 1px solid var(--forma-rule);
  color: var(--vp1577);
}

.gywae2 section > ul > li::before {
  content: "";
  position: absolute;
  top: 1.35rem;
  left: 0.2rem;
  width: 0.48rem;
  height: 0.48rem;
  border: 1px solid var(--v8iwz6);
  transform: rotate(45deg);
}

.gkraby {
  counter-reset: forma-card;
  width: 100%;
  margin: 0 0 clamp(4rem, 8vw, 7rem);
  gap: 1px;
  border: 1px solid var(--forma-rule);
  background: var(--forma-rule);
}

.gkraby .g2yzrb {
  counter-increment: forma-card;
  position: relative;
  min-width: 0;
  padding: 0 0 1.45rem;
  border: 0;
  border-radius: 0;
  background: var(--vj6bvj);
  overflow: hidden;
}

.gkraby .g2yzrb::before {
  content: "0" counter(forma-card);
  position: absolute;
  z-index: 2;
  top: 0.85rem;
  left: 0.85rem;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(238, 240, 241, 0.5);
  background: var(--vqxzlj);
  color: var(--vp1577);
  font-family: var(--vxg2yo);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.gkraby .g2yzrb img {
  margin: 0 0 1.2rem;
  border-radius: 0;
  filter: saturate(0.74) contrast(1.07);
  transition: filter 180ms ease, transform 260ms ease;
}

.gkraby .g2yzrb:hover img {
  filter: saturate(1) contrast(1.02);
  transform: scale(1.018);
}

.gkraby .g2yzrb h3,
.gkraby .g2yzrb p,
.gkraby .g2yzrb .g1e3tq {
  margin-inline: 1.45rem;
}

.gkraby .g2yzrb h3 {
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.gkraby .g2yzrb p {
  color: var(--vp1577);
  line-height: 1.55;
}

.gkraby .g2yzrb .g1e3tq {
  padding-top: 1rem;
  color: var(--v8iwz6);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gvol93,
.gh6io1 {
  position: relative;
  margin: 2rem 0 0;
  padding: 0.55rem;
  border: 1px solid var(--forma-rule);
  border-radius: 0;
  background: var(--vj6bvj);
}

.gvol93::after,
.gh6io1::after {
  content: "ARCHITECTURE / FIELD IMAGE";
  display: block;
  padding: 0.6rem 0.2rem 0.1rem;
  color: var(--vmdtnp);
  font-family: var(--vxg2yo);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.gvol93 img,
.gh6io1 img {
  width: 100%;
  border-radius: 0;
  filter: saturate(0.8) contrast(1.04);
}

.gdnhne {
  width: min(100%, calc(100vw - 2rem));
  margin: 2rem 0;
  border: 1px solid var(--forma-rule);
  background: var(--vj6bvj);
  box-shadow: 0.8rem 0.8rem 0 rgba(126, 154, 221, 0.055);
}

table {
  min-width: 54rem;
  color: var(--vp1577);
  font-size: 0.82rem;
  line-height: 1.55;
}

th,
td {
  padding: 1rem;
  border-right: 1px solid var(--forma-rule);
  border-bottom: 1px solid var(--forma-rule);
}

th:last-child,
td:last-child {
  border-right: 0;
}

thead th {
  border-bottom: 2px solid var(--v8iwz6);
  background: var(--vqxzlj);
  color: var(--vp1577);
  font-family: var(--vxg2yo);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

tbody tr:nth-child(even) {
  background: var(--vqxzlj);
}

tbody tr:hover {
  background: var(--v8uttc);
}

.g8frdi a {
  display: inline-grid;
  min-width: 1.65rem;
  height: 1.65rem;
  place-items: center;
  margin-left: 0.12rem;
  border: 1px solid var(--forma-rule);
  color: var(--v8iwz6);
  font-family: var(--vxg2yo);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1;
}

.g8frdi a:hover {
  border-color: var(--v8iwz6);
  background: var(--vj6bvj);
}

.g9evye {
  max-width: 78rem;
  margin: 3rem auto 0;
  padding: 0;
  list-style: none;
  counter-reset: forma-ref;
  border-top: 1px solid var(--forma-rule);
}

.g9evye li {
  counter-increment: forma-ref;
  position: relative;
  margin: 0;
  padding: 1.25rem 3rem 1.25rem 4rem;
  border-bottom: 1px solid var(--forma-rule);
  color: var(--vp1577);
  font-size: 0.84rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.g9evye li::before {
  content: counter(forma-ref, decimal-leading-zero);
  position: absolute;
  top: 1.25rem;
  left: 0.25rem;
  color: var(--v8iwz6);
  font-family: var(--vam6rm);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
}

.g9evye li::after {
  content: "";
  position: absolute;
  top: 1.85rem;
  right: 0.5rem;
  width: 0.5rem;
  height: 0.5rem;
  border: 1px solid var(--vcmmo2);
  transform: rotate(45deg);
}

.g9evye li a {
  display: inline-grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  margin-left: 0.35rem;
  border: 1px solid var(--forma-rule);
  color: var(--v8iwz6);
  text-decoration: none;
}

.gz286s {
  padding: 1.75rem 2rem;
  border: 1px solid var(--forma-rule);
  border-left: 0.25rem solid var(--vcmmo2);
  border-radius: 0;
  background: var(--vj6bvj);
}

.gcsplf li::before {
  content: "+";
  color: var(--v8iwz6);
}

.giwhad {
  gap: 1px;
  border: 1px solid var(--forma-rule);
  border-radius: 0;
  background: var(--forma-rule);
}

.goo4h3 {
  background: var(--vj6bvj);
}

.g3oxoe {
  color: var(--v8iwz6);
  font-family: var(--vam6rm);
  font-weight: 600;
}

.gmriqk {
  color: var(--vp1577);
}

.geqb2b {
  border: 1px solid var(--v8iwz6);
  border-radius: 0;
  background: var(--v1nfbg);
  color: var(--vp1577);
  text-align: left;
}

.geqb2b h2,
.geqb2b h3,
.geqb2b p {
  color: var(--vp1577);
}

.gwkxcu {
  position: relative;
  margin-top: 0;
  padding-block: clamp(3.5rem, 7vw, 6.5rem) 2rem;
  border-top: 1px solid var(--v8iwz6);
  background: var(--vj6bvj);
  text-align: left;
  overflow: hidden;
}

.gwkxcu::before {
  content: "FP";
  position: absolute;
  right: -0.04em;
  bottom: -0.22em;
  color: rgba(238, 240, 241, 0.035);
  font-family: var(--vam6rm);
  font-size: clamp(8rem, 24vw, 22rem);
  font-weight: 600;
  line-height: 0.8;
  letter-spacing: -0.08em;
  pointer-events: none;
}

.gwkxcu .container {
  position: relative;
  z-index: 1;
}

.gi0w76 {
  max-width: 28ch;
  margin: 0 0 clamp(2.5rem, 5vw, 4.5rem);
  color: var(--vp1577);
  font-family: var(--vam6rm);
  font-size: clamp(1.55rem, 3vw, 2.5rem);
  font-style: normal;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.12;
}

.gq51v2 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: stretch;
  gap: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--forma-rule);
  font-size: 0.78rem;
}

.gdd3dn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.g6e4ba {
  margin-bottom: 0.45rem;
  color: var(--v8iwz6);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.15em;
}

.gwkxcu a {
  color: var(--vp1577);
}

.gtvlye {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 1px solid var(--forma-rule);
  color: var(--vmdtnp);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (min-width: 56.25rem) {
  .gkraby {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .gywae2 .container > section:nth-of-type(even) {
    transform: translateX(clamp(0rem, 3vw, 2.5rem));
  }

  .gywae2 .container > section:nth-of-type(odd):not(:first-of-type) {
    transform: translateX(clamp(-2.5rem, -3vw, 0rem));
  }
}

@media (max-width: 760px) {
  body {
    background-size: 2.5rem 2.5rem;
  }

  .g6b6ho .container {
    min-height: 4.5rem;
  }

  .gklrdm {
    gap: 0.55rem;
    font-size: 0.75rem;
    letter-spacing: 0.11em;
  }

  .gklrdm::before {
    width: 2rem;
    height: 2rem;
  }

  .gjf36m a {
    display: block;
    padding-block: 0.35rem;
    font-size: 0.76rem;
  }

  .gqrp1t {
    padding-block: 3.25rem 3.5rem;
  }

  .gqrp1t::before {
    top: -9rem;
    right: -12rem;
    width: 25rem;
  }

  .gqrp1t::after {
    display: none;
  }

  .g04oht {
    padding-left: 1rem;
  }

  .gqrp1t h1 {
    font-size: clamp(2.85rem, 15vw, 4.4rem);
    line-height: 0.95;
  }

  .g7hw8k {
    transform: none;
    box-shadow: 0.65rem 0.65rem 0 rgba(108, 185, 208, 0.07);
  }

  .g7oy4g {
    align-items: stretch;
  }

  .gnyq1b {
    text-align: center;
  }

  .gywae2 .container > section,
  .gywae2 .container > section:first-of-type {
    width: 100%;
    transform: none;
  }

  .gywae2 .container > section:first-of-type {
    padding: 1.35rem;
    box-shadow: 0.5rem 0.5rem 0 rgba(108, 185, 208, 0.045);
  }

  .gywae2 section h2 {
    padding-right: 2rem;
    font-size: clamp(1.65rem, 8vw, 2.15rem);
  }

  .gkraby {
    grid-template-columns: 1fr;
  }

  .gdnhne {
    max-width: 100%;
  }

  .g9evye li {
    padding: 1.1rem 2rem 1.1rem 2.8rem;
  }

  .g9evye li::before {
    left: 0;
    font-size: 1.05rem;
  }

  .g9evye li::after {
    right: 0.25rem;
  }

  .gq51v2 {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .gi0w76 {
    max-width: 19ch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gkraby .g2yzrb img {
    transition: none;
  }
}
