/* Vera Labs LLC — production homepage
   Direction: Rules / Signals / Worlds
   Wide screens encode the five-product inventory as 2 / 2 / 1 rails.
   Phones turn the same taxonomy into three numbered reading chapters. */

:root{
  --ink:#111318;
  --paper:#F7F7F2;
  --ship:#1E3154;
  --coral:#FF5B4F;
  --lime:#DDFE42;
  --sky:#88C9EC;
  --muted:#666B73;
  --line:rgba(17,19,24,.18);
  --display:"Arial Black","Helvetica Neue Heavy","Helvetica Neue",Arial,sans-serif;
  --body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --meta:ui-monospace,"SFMono-Regular",Menlo,Monaco,Consolas,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:74px;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit}
address{font-style:normal}
.hero-line{display:contents}

.skip-link{
  position:fixed;
  z-index:100;
  top:12px;
  left:12px;
  padding:11px 15px;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--meta);
  font-size:12px;
  text-decoration:none;
  transform:translateY(-180%);
}
.skip-link:focus{transform:translateY(0)}
.skip-link:focus-visible{outline-color:var(--coral)}
:focus-visible{outline:3px solid currentColor;outline-offset:4px}

/* Header */
.site-nav{
  position:sticky;
  z-index:20;
  top:0;
  background:rgba(247,247,242,.94);
  border-bottom:1px solid var(--ink);
}
.nav-inner{
  width:min(100%,1440px);
  min-height:74px;
  margin:0 auto;
  padding:0 clamp(18px,3vw,48px);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
}
.wordmark{
  justify-self:start;
  font-family:var(--display);
  font-size:15px;
  font-weight:900;
  letter-spacing:-.025em;
  text-decoration:none;
  text-transform:uppercase;
}
.wordmark small{
  display:inline;
  margin-left:8px;
  font-family:var(--meta);
  font-size:9px;
  font-weight:500;
  letter-spacing:.12em;
}
.nav-thesis{display:flex;align-items:center;justify-content:center;gap:clamp(15px,2.6vw,42px)}
.nav-thesis a,.nav-support{
  font-family:var(--meta);
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
  text-transform:uppercase;
}
.nav-thesis a{text-decoration-color:transparent}
.nav-thesis a:hover{text-decoration-color:currentColor}
.nav-support{justify-self:end}

/* Hero */
.hero{
  min-height:calc(100svh - 74px);
  padding:clamp(58px,10vw,150px) clamp(18px,5vw,76px) clamp(62px,8vw,112px);
  display:grid;
  grid-template-rows:auto 1fr auto;
  align-items:start;
  border-bottom:1px solid var(--ink);
}
.hero-meta{
  width:min(100%,1320px);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  gap:24px;
  font-family:var(--meta);
  font-size:10px;
  font-weight:650;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hero h1{
  width:min(100%,1320px);
  max-width:12ch;
  margin:auto;
  padding:clamp(48px,7vw,96px) 0;
  font-family:var(--display);
  font-size:clamp(52px,8.4vw,132px);
  font-weight:900;
  letter-spacing:-.07em;
  line-height:.9;
  text-wrap:balance;
}
.hero-bottom{
  width:min(100%,1320px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);
  gap:clamp(34px,7vw,100px);
  align-items:end;
}
.hero-bottom p{
  max-width:62ch;
  font-size:clamp(17px,1.6vw,22px);
  letter-spacing:-.015em;
  line-height:1.55;
}
.hero-cue{
  justify-self:end;
  border-bottom:1px solid var(--ink);
  padding-bottom:9px;
  font-family:var(--meta);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-decoration:none;
  text-transform:uppercase;
}
.hero-cue span{display:inline-block;margin-left:18px;transition:transform .2s ease}
.hero-cue:hover span{transform:translateY(4px)}

/* Product taxonomy */
.triptych{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--ink);
}
.rail{
  min-width:0;
  min-height:100svh;
  padding:clamp(24px,3.3vw,52px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.rail + .rail{border-left:1px solid var(--ink)}
.rail--rules{background:var(--ship);color:var(--paper)}
.rail--signals{background:var(--lime);color:var(--ink)}
.rail--worlds{background:var(--sky);color:var(--ink)}
.rail-meta{
  min-height:34px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  font-family:var(--meta);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.4;
  text-transform:uppercase;
}
.rail-word{
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:clamp(32px,5vh,72px);
  font-family:var(--display);
  font-size:clamp(49px,6.25vw,102px);
  font-weight:900;
  letter-spacing:-.085em;
  line-height:.84;
  text-transform:uppercase;
}
.product-stack{margin-top:clamp(30px,4vh,52px);border-top:1px solid currentColor}
.product-entry{
  --entry-accent:currentColor;
  position:relative;
  padding:20px 0 24px 16px;
  border-bottom:1px solid currentColor;
}
.product-entry::before{
  content:"";
  position:absolute;
  top:20px;
  bottom:24px;
  left:0;
  width:3px;
  background:var(--entry-accent);
}
.product-entry--ship{--entry-accent:var(--lime)}
.product-entry--circlinback{--entry-accent:#F07C2C}
.product-entry--toldby{--entry-accent:var(--ink)}
.product-entry--backinasec{--entry-accent:#0D3B45}
.product-entry--battle{--entry-accent:var(--ink)}
.product-heading{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.product-icon{width:52px;height:52px;border-radius:12px;object-fit:cover}
.product-icon--toldby{mix-blend-mode:multiply}
.product-kind,.product-status{
  display:block;
  font-family:var(--meta);
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  line-height:1.45;
  text-transform:uppercase;
}
.product-kind{margin-bottom:5px;opacity:.72}
.product-status{position:relative;margin-top:7px;padding-left:14px}
.product-status::before{
  content:"";
  position:absolute;
  top:.42em;
  left:0;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--entry-accent);
}
.product-entry h3{
  font-family:var(--display);
  font-size:clamp(22px,1.9vw,30px);
  font-weight:900;
  letter-spacing:-.045em;
  line-height:1;
}
.product-description{
  max-width:35ch;
  margin-top:15px;
  font-size:clamp(14px,1.08vw,16px);
  line-height:1.55;
}
.product-link{
  display:inline-block;
  margin-top:17px;
  padding-bottom:6px;
  border-bottom:2px solid currentColor;
  font-family:var(--meta);
  font-size:10px;
  font-weight:750;
  letter-spacing:.1em;
  text-decoration:none;
  text-transform:uppercase;
}
.rail-visual{
  min-height:128px;
  margin-top:auto;
  padding-top:clamp(34px,6vh,72px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.signal-line{
  border-top:1px solid currentColor;
  padding-top:14px;
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-family:var(--meta);
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  line-height:1.5;
  text-transform:uppercase;
}
.rule-tags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid currentColor}
.rule-tags span{
  min-height:70px;
  padding:13px 9px 0 0;
  font-family:var(--meta);
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.45;
  text-transform:uppercase;
}
.rule-tags span + span{border-left:1px solid currentColor;padding-left:10px}
.game-frame{border:1px solid var(--ink);background:var(--paper);overflow:hidden}
.game-frame img{width:100%;height:auto;aspect-ratio:1600/749;object-fit:cover}
.game-caption{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 12px;
  font-family:var(--meta);
  font-size:8px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* Studio */
.studio{padding:clamp(82px,11vw,170px) clamp(18px,5vw,76px);background:var(--paper)}
.studio-inner,.contact-inner{width:min(100%,1320px);margin:0 auto}
.section-label{
  font-family:var(--meta);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.studio-head{
  margin-top:28px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:clamp(36px,8vw,120px);
  align-items:end;
}
.studio h2{
  max-width:10ch;
  font-family:var(--display);
  font-size:clamp(48px,7vw,106px);
  font-weight:900;
  letter-spacing:-.065em;
  line-height:.9;
}
.studio-intro{max-width:46ch;font-size:clamp(17px,1.5vw,21px);line-height:1.6}
.principles{
  margin-top:clamp(64px,9vw,130px);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.principle{padding:24px 22px 32px 0}
.principle + .principle{border-left:1px solid var(--ink);padding-left:22px}
.principle h3{
  font-family:var(--meta);
  font-size:10px;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.principle p{max-width:28ch;margin-top:28px;font-size:15px;line-height:1.65}

/* Contact and footer */
.contact{
  background:var(--ink);
  color:var(--paper);
  padding:clamp(74px,9vw,132px) clamp(18px,5vw,76px) 0;
}
.contact-top{
  display:grid;
  grid-template-columns:1fr minmax(290px,.55fr);
  gap:clamp(42px,9vw,140px);
  align-items:end;
}
.contact h2{
  max-width:9ch;
  margin-top:30px;
  font-family:var(--display);
  font-size:clamp(50px,8vw,122px);
  font-weight:900;
  letter-spacing:-.07em;
  line-height:.87;
}
.contact-copy p{max-width:40ch;font-size:17px;line-height:1.65}
.email{
  display:inline-block;
  max-width:100%;
  margin-top:28px;
  padding-bottom:8px;
  border-bottom:2px solid var(--coral);
  color:var(--paper);
  font-family:var(--meta);
  font-size:clamp(12px,1.25vw,16px);
  font-weight:700;
  letter-spacing:.03em;
  overflow-wrap:anywhere;
  text-decoration:none;
}
.site-footer{
  background:var(--ink);
  color:var(--paper);
  padding:clamp(80px,12vw,170px) clamp(18px,5vw,76px) 30px;
}
.footer-row{
  padding-top:24px;
  border-top:1px solid rgba(247,247,242,.32);
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:28px;
  font-family:var(--meta);
  font-size:9px;
  letter-spacing:.09em;
  line-height:1.7;
  text-transform:uppercase;
}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px 28px}
.footer-links a{text-underline-offset:4px}

/* The rail widths become a literal count: 2 products / 2 products / 1 product. */
@media(min-width:1360px){
  .triptych{grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,1fr)}
  .rail{padding-inline:32px}
  .rail--worlds{padding-inline:22px}
  .rail--rules .product-stack,.rail--signals .product-stack{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:24px;
    align-items:stretch;
  }
  .rail--rules .product-entry,.rail--signals .product-entry{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  .product-heading{grid-template-columns:46px minmax(0,1fr);gap:12px}
  .product-icon{width:46px;height:46px;border-radius:10px}
  .product-entry h3{font-size:clamp(21px,1.65vw,27px)}
  .rail--rules .product-link,.rail--signals .product-link{align-self:flex-start}
  .rail--rules .rail-word,.rail--signals .rail-word{font-size:clamp(76px,6.25vw,104px)}
  .rail--worlds .rail-word{font-size:clamp(50px,4vw,66px);letter-spacing:-.075em}
}

@media(max-width:1080px){
  .rail{padding:28px 24px}
  .rail-word{font-size:clamp(43px,6.2vw,67px)}
  .principles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .principle:nth-child(3){border-left:0;border-top:1px solid var(--ink)}
  .principle:nth-child(4){border-top:1px solid var(--ink)}
}

@media(min-width:761px) and (max-width:900px){
  .rail{padding-inline:20px}
  .product-entry{padding-left:12px}
  .product-heading{grid-template-columns:40px minmax(0,1fr);gap:9px}
  .product-icon{width:40px;height:40px;border-radius:9px}
  .product-entry h3{font-size:18px;letter-spacing:-.04em}
  .product-description{font-size:14px}
  .product-link{font-size:9px}
}

/* Phone/tablet: the taxonomy becomes three brisk, numbered chapters. */
@media(max-width:760px){
  html{scroll-padding-top:94px}
  body{overflow-x:clip}
  .site-nav{box-shadow:0 3px 0 rgba(17,19,24,.08)}
  .nav-inner{
    min-height:94px;
    padding:11px 18px 10px;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
    gap:8px 18px;
  }
  .wordmark small{display:none}
  .nav-support{grid-column:2;grid-row:1}
  .nav-thesis{
    grid-column:1/-1;
    grid-row:2;
    justify-content:space-between;
    gap:4px;
    border-top:1px solid var(--line);
    padding-top:4px;
  }
  .nav-thesis a{
    min-height:38px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    text-decoration:none;
  }
  .nav-thesis a:focus-visible{border-color:currentColor;outline-offset:-3px}
  .hero{
    min-height:0;
    padding:26px clamp(18px,7vw,42px) 36px;
    grid-template-rows:auto auto auto;
  }
  .hero-meta{
    padding-bottom:19px;
    border-bottom:1px solid var(--line);
    font-size:9px;
  }
  .hero-meta span:last-child{text-align:right}
  .hero h1{
    max-width:10ch;
    margin:0;
    padding:27px 0 25px;
    font-size:clamp(44px,13.5vw,70px);
    line-height:.88;
  }
  .hero-bottom{grid-template-columns:1fr;gap:22px}
  .hero-bottom p{font-size:16px;line-height:1.5}
  .hero-cue{
    width:100%;
    min-height:48px;
    padding:0 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border:1px solid var(--ink);
  }
  .hero-cue span{margin-left:12px}
  .triptych{grid-template-columns:1fr}
  .rail{
    --chapter-card:var(--paper);
    --chapter-ink:var(--ink);
    --chapter-shadow:var(--ink);
    min-height:0;
    padding:25px clamp(18px,7vw,42px) 32px;
  }
  .rail--rules{--chapter-shadow:var(--lime)}
  .rail + .rail{border-left:0;border-top:1px solid var(--ink)}
  .rail-meta{
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    row-gap:12px;
  }
  .rail-meta::before{
    grid-column:1/-1;
    padding-bottom:10px;
    border-bottom:1px solid currentColor;
    font-size:9px;
    letter-spacing:.16em;
  }
  .rail--rules .rail-meta::before{content:"Chapter 01 / 03"}
  .rail--signals .rail-meta::before{content:"Chapter 02 / 03"}
  .rail--worlds .rail-meta::before{content:"Chapter 03 / 03"}
  .rail-word{margin-top:20px;font-size:clamp(53px,17vw,82px)}
  .product-stack{margin-top:25px;display:grid;gap:17px;border-top:0}
  .product-entry{
    width:calc(100% - 6px);
    padding:18px 17px 17px;
    border:1px solid var(--ink);
    background:var(--chapter-card);
    box-shadow:6px 6px 0 var(--chapter-shadow);
    color:var(--chapter-ink);
  }
  .product-entry::before{top:18px;bottom:17px;left:0;width:4px}
  .product-heading{grid-template-columns:50px minmax(0,1fr);gap:13px}
  .product-icon{width:50px;height:50px;border:1px solid rgba(17,19,24,.16);border-radius:10px}
  .product-entry h3{font-size:clamp(25px,8vw,36px);overflow-wrap:anywhere}
  .product-description{max-width:42ch;margin-top:15px;font-size:16px;line-height:1.55}
  .product-link{
    width:100%;
    min-height:48px;
    margin-top:17px;
    padding:0 13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:1px solid var(--ink);
    background:var(--ink);
    color:var(--paper);
    line-height:1.35;
  }
  .rail-visual{min-height:0;margin-top:30px;padding-top:0}
  .rule-tags span{min-height:60px}
  .game-frame{box-shadow:6px 6px 0 var(--ink)}
  .studio,.contact{padding-top:72px;padding-bottom:72px}
  .studio-head,.contact-top{grid-template-columns:1fr;align-items:start}
  .studio-intro{max-width:38ch}
  .principles{margin-top:58px}
  .site-footer{padding-top:58px}
}

@media(max-width:520px){
  html{scroll-padding-top:115px}
  .nav-inner{padding-inline:14px}
  .wordmark,.nav-support{min-height:36px;display:inline-flex;align-items:center}
  .nav-support{padding-left:10px}
  .nav-thesis a{min-width:0;min-height:44px;padding-inline:8px;font-size:9px}
  .hero{padding-inline:18px}
  .hero-meta{display:grid;grid-template-columns:1fr auto}
  .hero h1{font-size:clamp(42px,13.7vw,64px)}
  .rail{padding-inline:18px}
  .rail-meta{font-size:9px}
  .rail-word{font-size:clamp(50px,17vw,75px)}
  .product-entry{padding-inline:15px}
  .product-heading{grid-template-columns:48px minmax(0,1fr);gap:11px}
  .product-icon{width:48px;height:48px}
  .product-entry h3{font-size:clamp(24px,7.8vw,34px)}
  .product-link{padding-inline:12px;font-size:9px}
  .rule-tags{grid-template-columns:1fr}
  .rule-tags span{min-height:46px;padding:14px 0 10px}
  .rule-tags span + span{padding-left:0;border-top:1px solid currentColor;border-left:0}
  .signal-line,.game-caption{flex-wrap:wrap}
  .principles{grid-template-columns:1fr}
  .principle{padding:23px 0 29px}
  .principle + .principle{border-left:0;border-top:1px solid var(--ink);padding-left:0}
  .footer-row{flex-direction:column}
  .footer-links{justify-content:flex-start}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
}
