/* =====================================================================
   Triangle Brain — trianglebrain.com
   ---------------------------------------------------------------------
   How the layout works (short version):

   1. The background photo has a "floor line" (the horizon where the wet
      floor starts) at 83.6% of its height. The image is scaled like
      "cover" and pinned to the bottom of the screen, so we can work out
      exactly where that floor line lands on any screen size: --horizon.

   2. Everything else is sized in "--u" units. 1u = 1 pixel of the
      original 1672 x 941 mockup at 16:9. On a 16:9 screen the page is a
      1:1 match of the mockup; on other screens --u shrinks or grows so
      the whole composition always fits and the button sits on the floor.

   3. The button's border colour comes from a conic gradient whose start
      angle (--a) spins forever. The reflection is a flipped copy of the
      button that reads the SAME --a, so they stay in sync.
   ===================================================================== */

@font-face {
  font-family: "Megrim";
  /* Megrim (SIL Open Font License) is embedded right here so the page
     also shows the correct font when you double-click index.html to
     preview it. The original file is kept in assets/fonts/. */
  src: url("data:font/woff2;base64,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") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Registering --a as an angle is what lets the browser animate it
   smoothly (plain custom properties can't be tweened). */
@property --a {
  syntax: "<angle>";
  inherits: true;
  initial-value: 270deg;
}

:root {
  --ink: #07080d;             /* matches the top of the background photo */
  --text: #ece9f4;
  --pink: #ff1fc8;
  --violet: #a54bff;
  --cyan: #1fe3ff;
  --font: "Megrim", ui-sans-serif, system-ui, sans-serif;

  /* Floor line of bg.webp as a fraction of its height (measured). */
  --floor: 0.164;

  /* Background box: "cover" for desktop; on tall phones it's capped at
     3.2x the screen width so the centre neon reflections stay in view
     instead of zooming into pure black. */
  --stage-w: max(100vw, min(177.78svh, 320vw));
  --stage-h: calc(var(--stage-w) * 0.5625);

  /* Where the floor line is, measured from the top of the screen. */
  --vh: 100svh;
  --horizon: calc(var(--vh) - var(--stage-h) * var(--floor));

  /* Composition height in mockup pixels (top ornament → floor line). */
  --comp-h: 785;
  --comp-w: 1010;  /* width that must always fit on screen (the tagline) */

  --u: min(calc(var(--horizon) / var(--comp-h)),
           calc((100vw - 32px) / var(--comp-w)));
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  background: var(--ink);
  color: var(--text);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

body { overflow: hidden; }

/* ---------- Scene + background ---------------------------------------- */

.scene {
  position: relative;
  height: var(--vh);
  overflow: hidden;
  /* The colour-chase clock. Lives here so the button AND its reflection
     inherit the exact same angle every frame. */
  animation: chase 4s linear infinite;
}

@keyframes chase {
  from { --a: 270deg; }
  to   { --a: 630deg; }
}

.stage {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: var(--stage-w);
  height: var(--stage-h);
  transform: translateX(-50%);
  background: url("../img/bg.webp") center / 100% 100% no-repeat;
  pointer-events: none;
}

/* Soft fade into the page colour at the top edge — only visible on tall
   phones where the image doesn't reach the top of the screen. */
.stage::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 22%;
  background: linear-gradient(var(--ink), transparent);
}

/* ---------- Composition box ------------------------------------------- */

.comp {
  position: absolute;
  left: 50%;
  top: calc(var(--horizon) - var(--comp-h) * var(--u));
  width: calc(1200 * var(--u));
  height: calc(var(--comp-h) * var(--u));
  transform: translateX(-50%);
}

/* ---------- Crest: logo + ornaments ----------------------------------- */

.crest {
  position: absolute;
  inset: 0 0 auto 0;
  height: calc(560 * var(--u));
  pointer-events: none;
}

.ornaments {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.logo {
  position: absolute;
  top: calc(80 * var(--u));
  left: 50%;
  width: calc(450 * var(--u));
  margin: 0;
  transform: translateX(-50%);
  line-height: 0;
}

.logo img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0 calc(16 * var(--u)) rgb(255 31 200 / 0.38));
}

/* ---------- Lower group ----------------------------------------------- */

.cta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: calc(2 * var(--u));
}

.tagline {
  margin: 0 0 calc(23 * var(--u));
  font-size: calc(33 * var(--u));
  line-height: 1;
  letter-spacing: 0.13em;
  text-align: center;
  white-space: nowrap;
  color: var(--text);
  text-shadow: 0 0 calc(10 * var(--u)) rgb(255 255 255 / 0.18);
}

.tagline em {
  font-style: normal;
  color: #ff3fd6;
  text-shadow: 0 0 calc(10 * var(--u)) rgb(255 31 200 / 0.55);
}

/* Divider: line — diamond — line */
.divider {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--u));
  height: calc(10 * var(--u));
  margin-bottom: calc(30 * var(--u));
}

.divider i {
  display: block;
  width: calc(124 * var(--u));
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(200 90 255 / 0.75));
}

.divider i:last-child {
  background: linear-gradient(270deg, transparent, rgb(200 90 255 / 0.75));
}

.divider b {
  width: calc(7.5 * var(--u));
  height: calc(7.5 * var(--u));
  border: max(1px, calc(1.5 * var(--u))) solid #ff3bd4;
  transform: rotate(45deg);
  box-shadow: 0 0 6px rgb(255 59 212 / 0.7);
}

/* Social icons row */
.socials {
  display: flex;
  align-items: center;
  margin-bottom: calc(30 * var(--u));
}

.socials a {
  position: relative;
  display: grid;
  place-items: center;
  width: calc(96 * var(--u));
  height: calc(44 * var(--u));
  color: #e9e7ef;
  transition: color 0.25s, filter 0.25s;
}

.socials a + a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1px;
  height: calc(22 * var(--u));
  transform: translateY(-50%);
  background: rgb(110 150 255 / 0.4);
}

.socials svg {
  width: calc(27 * var(--u));
  height: calc(27 * var(--u));
  fill: currentColor;
}

.socials a:hover,
.socials a:focus-visible {
  color: #fff;
  filter: drop-shadow(0 0 6px var(--pink)) drop-shadow(0 0 2px var(--cyan));
  outline: none;
}

/* ---------- The button ------------------------------------------------ */

.btn {
  /* Shape controls */
  --w: calc(484 * var(--u));
  --h: calc(80 * var(--u));
  --c: calc(20 * var(--u));                 /* corner chamfer */
  --b: max(2px, calc(3.2 * var(--u)));      /* border thickness */
  /* inner chamfer shrunk so the diagonal border is as thick as the rest */
  --ci: calc(var(--c) - var(--b) * 0.586);

  --shape: polygon(
    var(--c) 0, calc(100% - var(--c)) 0,
    100% var(--c), 100% calc(100% - var(--c)),
    calc(100% - var(--c)) 100%, var(--c) 100%,
    0 calc(100% - var(--c)), 0 var(--c));

  /* Pink holds one end, cyan the other, blending through purple. */
  --chase: conic-gradient(from var(--a),
    var(--pink) 0deg, var(--pink) 25deg, #b04cff 90deg,
    var(--cyan) 155deg, var(--cyan) 205deg, #b04cff 270deg,
    var(--pink) 335deg);

  position: relative;
  display: block;
  width: var(--w);
  height: var(--h);
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}

/* Browsers that can blend colours in OKLCH get a cleaner pink→purple→cyan
   blend (no muddy grey in the middle). Others use the version above. */
@supports (background: conic-gradient(in oklch, red, blue)) {
  .btn {
    --chase: conic-gradient(in oklch from var(--a),
      var(--pink) 0deg, var(--pink) 25deg,
      var(--cyan) 155deg, var(--cyan) 205deg,
      var(--pink) 335deg);
  }
}

/* Neon bloom: a blurred copy of the coloured shape behind everything */
.btn__glow {
  position: absolute;
  inset: 0;
  z-index: -2;
  filter: blur(calc(10 * var(--u)));
  opacity: 0.9;
  transition: opacity 0.3s, filter 0.3s;
}

.btn__glow::before {
  content: "";
  position: absolute;
  inset: 0;
  clip-path: var(--shape);
  background: var(--chase);
}

/* Crisp border: coloured shape, with a dark inset shape on top */
.btn__frame {
  position: absolute;
  inset: 0;
  z-index: -1;
  clip-path: var(--shape);
  background: var(--chase);
}

.btn__frame::after {
  content: "";
  position: absolute;
  inset: var(--b);
  clip-path: polygon(
    var(--ci) 0, calc(100% - var(--ci)) 0,
    100% var(--ci), 100% calc(100% - var(--ci)),
    calc(100% - var(--ci)) 100%, var(--ci) 100%,
    0 calc(100% - var(--ci)), 0 var(--ci));
  /* slightly see-through so a faint tint of the chase shows inside */
  background:
    radial-gradient(120% 140% at 50% 50%, rgb(9 6 18 / 0.93), rgb(9 6 18 / 0.97));
}

.btn__label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(22 * var(--u));
}

.btn__icon {
  width: calc(40 * var(--u));
  height: calc(40 * var(--u));
  fill: currentColor;
}

.btn__sep {
  width: 1px;
  height: calc(34 * var(--u));
  background: rgb(255 255 255 / 0.55);
}

.btn__text {
  font-size: calc(21 * var(--u));
  letter-spacing: 0.22em;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 0 calc(8 * var(--u)) rgb(255 255 255 / 0.35);
}

.btn:hover .btn__glow,
.btn:focus-visible .btn__glow {
  opacity: 1;
  filter: blur(calc(14 * var(--u)));
}

.btn:focus-visible {
  outline: 1px dashed rgb(255 255 255 / 0.6);
  outline-offset: calc(8 * var(--u));
}

/* ---------- Wet-floor reflection -------------------------------------- */

.reflection {
  position: absolute;
  left: 50%;
  /* the button sits 2u above the floor line, so its mirror starts 2u below */
  top: calc(100% + 2 * var(--u));
  width: calc(640 * var(--u));
  height: calc(150 * var(--u));
  transform: translateX(-50%) scaleY(1.2);   /* wet floors stretch reflections */
  transform-origin: top center;
  pointer-events: none;
  opacity: 0.6;
  transition: opacity 0.3s;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / 0.45) 35%, transparent 85%);
          mask-image: linear-gradient(to bottom, #000 0%, rgb(0 0 0 / 0.45) 35%, transparent 85%);
}

.reflection__flip {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) scaleY(-1);
  filter: url(#wet) blur(1px);
}

.scene:has(.cta .btn:hover) .reflection { opacity: 0.8; }

/* ---------- Phones / tall screens ------------------------------------- */

@media (max-aspect-ratio: 4/5) {
  :root {
    --comp-h: 865;   /* taller: the tagline goes onto two lines */
    --comp-w: 560;   /* longest tagline line on phones */
  }

  .tagline {
    font-size: calc(36 * var(--u));
    line-height: 1.4;
    margin-bottom: calc(26 * var(--u));
  }

  .tagline span { display: block; }

  /* the side ornaments sit off-screen at this width anyway */
  .ornaments .side { display: none; }
}

/* ---------- Motion preference ----------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .scene { animation: none; }
}
