:root{
  --paper:#ffffff;
  --ink:#0b0d12;
  --muted:#6d4d89;
  --line:#865ea6;

  --radius:6px;
  --max:980px;
  --textCol:240px;

  --wrapMax:1000px;
  --padX:14px;

  --brand:#865ea6;
  --brand-dark:#162050;
  --surface:#e6dfeb;
  --deep:#162050;
}

*{ box-sizing:border-box; }
html, body{ height:100%; }

body{
  margin:0;
  font-family:"IBM Plex Sans", system-ui, sans-serif;
  color:var(--ink);
  background:url("./ads/wallpaper2.jpg") center / cover no-repeat fixed;
  position:relative;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(106,71,157,.22);
  pointer-events:none;
  z-index:-1;
}

.pageWrap{
  max-width:var(--wrapMax);
  margin:0 auto;
  min-height:100vh;
  background:#ede4f4;
}

.page{
  max-width:var(--max);
  margin:0 auto;
  padding:10px var(--padX) 24px;
}

.topBar{
  width:100%;
  height:6px;
  background:#162050;
  display:none;
}

/* HEADER */
.mast{
  padding:8px 0 16px;
  margin:0 0 18px;
}

.mastInner{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}

.mastLeft{
  display:flex;
  align-items:flex-start;
  gap:2px;
}

.mastIcon{
  height:98px;
  width:auto;
  flex-shrink:0;
  position:relative;
  top:-2px;
}

.mastText{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-top:10px;
  position:relative;
  left:-2px;
}

.siteTitle{
  margin:0;
  font-family:"Bebas Neue", sans-serif;
  font-size:58px;
  line-height:1;
  letter-spacing:-0.02em;
  color:var(--deep);
}

.siteSub{
  margin:2px 0 0;
  color:var(--deep);
  font-size:14px;
  line-height:1.2;
}

.mastRight{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:0;
  position:relative;
  top:8px;
}

.powered{
  font-size:.55rem;
  letter-spacing:.01em;
  text-transform:lowercase;
  opacity:.75;
  line-height:1;
  margin:0 0 2px 0;
  color:var(--deep);
}

.geLogo{
  height:65px;
  display:block;
}

a{ color:var(--brand); }
a:visited{ color:var(--brand); }

/* GRID */
.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}

/* CARD */
.card{
  border:1px solid #865ea6;
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
  display:grid;
  grid-template-columns:var(--textCol) 1fr;
  min-height:92px;
}

.card.isWide{
  grid-column:1 / -1;
}

.cardText{
  padding:14px 12px;
  display:flex;
  flex-direction:column;
  gap:6px;
  justify-content:center;
  background:#d7cbe1;
  color:var(--deep);
}

.kicker{
  font-size:14px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:800;
  line-height:1.1;
  color:var(--deep);
}

.copy{
  font-size:13px;
  line-height:1.35;
  color:var(--deep);
  opacity:.9;
}

.cardText a{
  color:var(--deep);
}

.preClamp{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* REVEAL */
.reveal{
  border:0;
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:"IBM Plex Mono", monospace;
  font-weight:600;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:background-color 900ms ease;
  color:#0b0d12;
  opacity:.9;
  text-align:center;
  position:relative;
  overflow:hidden;
  padding:14px 12px;
}

.reveal:hover{
  background:#f3f3f3;
}

.revealInner{
  position:relative;
  z-index:3;
  opacity:1;
  transition:opacity 400ms ease;
}

.reveal.isDone{
  background:var(--brand);
  color:#ffffff;
  letter-spacing:.02em;
  font-weight:700;
  text-transform:none;
}

.reveal.isColour.isDone{
  background:none;
}

.reveal.isDone:not(.isLong){
  font-size:34px;
  letter-spacing:.04em;
}

.reveal.isDone.isLong{
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  line-height:1.45;
  text-transform:none;
}

.reveal.isDone .revealInner{
  max-width:58ch;
  margin:0 auto;
}

/* Tap labels */
.tapMobile{ display:none; }

@media (max-width:820px){
  .tapDesktop{ display:none; }
  .tapMobile{ display:inline; }
}

/* FX */
.fxVideo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:1;
  pointer-events:none;
  display:none;
  opacity:0;
}

.fxTint{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  display:none;
  opacity:0;
  mix-blend-mode:color;
  filter:blur(18px) saturate(1.6) contrast(1.05);
  transform:scale(1.15);
}

.reveal.isRevealing .fxTint{
  animation:tintDrift 2.4s ease-in-out infinite alternate;
}

@keyframes tintDrift{
  0%{ transform:scale(1.15) translate(-2%, -1%); }
  100%{ transform:scale(1.15) translate(2%, 1%); }
}

/* Colour */
.reveal.isColour{
  padding:0;
}

.reveal.isColour.isDone{
  text-align:left;
  justify-content:flex-end;
  align-items:flex-end;
  padding:10px;
}

.reveal.isColour .swatchLabel{
  font-family:"IBM Plex Mono", monospace;
  font-weight:700;
  font-size:12px;
  letter-spacing:.06em;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:4px;
  backdrop-filter:blur(2px);
}

/* FOOTER */
.footnote{
  width:100%;
  margin-top:36px;
  padding-top:18px;
  border-top:1px solid rgba(22,32,80,.18);

  font-size:11px;
  line-height:1.6;
  color:rgba(22,32,80,.55);
  text-align:center;
}

.footnote a{
  color:rgba(134,94,166,.9);
  text-decoration:none;
}

.footnote a:hover{
  text-decoration:underline;
}

.kickerThe{ display:inline; }

.titleDesktop{ display:inline; }
.titleMobile{ display:none; }

/* MOBILE */
@media (max-width:820px){

  :root{ --textCol:190px; }

  .topBar{
    display:block;
    width:100%;
    height:6px;
    background:#162050;
  }
  .kickerThe{ display:none; }
  .titleDesktop{ display:none !important; }
  .titleMobile{ display:inline !important; }

  .grid{ grid-template-columns:1fr; }
  .card.isWide{ grid-column:auto; }

  .reveal{
    font-size:12px;
    letter-spacing:.06em;
    padding:10px;
  }

  .mastRight{
    display:none !important;
  }

  .mastInner{
    justify-content:center;
    align-items:center;
  }

   .mastLeft{
    width:100%;
    justify-content:center;
    align-items:center;
    gap:0px;
    transform:translateX(-14px);
  }

 .mastIcon{
    height:92px;
    top:0;
    margin-right:-6px;
  }

  .mastText{
    padding-top:0;
    left:0;
    margin-left:-4px;
  }

  .siteTitle{
    font-size:52px;
    line-height:1;
  }

  .siteSub{
    font-size:17px;
    line-height:1.15;
    margin-top:2px;
  }

  .footnote{
    font-size:10px;
    line-height:1.45;
    padding-left:14px;
    padding-right:14px;
  }
}
