/* -------- the typefaces, served from this origin --------
   Self-hosted rather than linked from fonts.googleapis.com. That
   stylesheet was this page's only render-blocking request: 1.3 KB
   that cost 750 ms on a phone, and the woff2 files behind it could
   not begin downloading until it came back. These are the same files
   Google serves, with the same unicode-range split, so latin-ext is
   still only fetched by a visitor whose page actually needs it.

   The two latin files the fold needs are preloaded in the head. Sora
   and Figtree are variable fonts -- one file spans the weight range,
   which is why 600/700 and 400/500 each share a src.

   Adding a weight means re-fetching the file from Google, not just
   widening the range here: these are subset to the weights in use. */
@font-face{
  font-family:'Sora';font-style:normal;font-weight:600 700;font-display:swap;
  src:url('fonts/sora-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Sora';font-style:normal;font-weight:600 700;font-display:swap;
  src:url('fonts/sora-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Figtree';font-style:normal;font-weight:400 500;font-display:swap;
  src:url('fonts/figtree-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Figtree';font-style:normal;font-weight:400 500;font-display:swap;
  src:url('fonts/figtree-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/dmmono-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/dmmono-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/dmmono-500-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/dmmono-500-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ============================================================
   HEXTOR: the legal pages
   Same palette and type as the home page, none of the motion.
   A legal page is read, not experienced: one column, generous
   measure, and nothing that moves while someone is reading it.
   ============================================================ */
:root{
  --canvas:#070810;
  --panel:#0E1120;
  --accent:#4FD6FF;
  --accent-hover:#8AE7FF;
  --iris:#7B6BFF;
  --line:#1C2438;
  --text-primary:#EAF2F7;
  --text-secondary:#B0C0D0;

  --display:'Sora',system-ui,sans-serif;
  --body:'Figtree',system-ui,sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;

  --ease-soft:cubic-bezier(.4,0,.2,1);
  --gutter:clamp(20px,5vw,88px);
  --measure:760px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--canvas);color:var(--text-primary);
  font-family:var(--body);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.14;letter-spacing:-.02em;margin:0}
p{margin:0}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s var(--ease-soft)}
a:hover{border-bottom-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.skip{
  position:absolute;left:-9999px;top:0;z-index:99;
  background:var(--accent);color:#04121A;padding:12px 18px;border-radius:0 0 8px 0;
  font-weight:500;border:0;
}
.skip:focus{left:0}

/* the same still wash as the home page, with the drift removed */
.env{position:fixed;inset:0;z-index:0;pointer-events:none}
.env::before{
  content:"";position:absolute;inset:-20%;
  background:
    radial-gradient(ellipse 50% 40% at 22% 14%,rgba(28,59,82,.42),transparent 60%),
    radial-gradient(ellipse 45% 45% at 86% 80%,rgba(123,107,255,.13),transparent 62%);
}

/* ---------- the bar ---------- */
.nav{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px var(--gutter);border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;color:var(--text-primary);border:0}
.brand:hover{border:0}
.brand svg{width:26px;height:26px;flex:none}
.brand-word{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.02em}
.nav-back{
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-secondary);border:0;
}
.nav-back:hover{color:var(--accent);border:0}

/* ---------- the document ---------- */
main{position:relative;z-index:1;padding:clamp(48px,9vh,96px) var(--gutter) 0}
.doc{max-width:var(--measure);margin:0 auto}
.kicker{
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  display:block;margin-bottom:18px;
}
h1{font-size:clamp(34px,6vw,54px)}
.stamp{
  font-family:var(--mono);font-size:13px;color:var(--text-secondary);
  margin-top:22px;padding-top:18px;border-top:1px solid var(--line);
  display:flex;gap:8px 26px;flex-wrap:wrap;
}
.lede{color:var(--text-secondary);font-size:clamp(17px,2vw,19px);margin-top:26px}

/* the summary panel: what the page says, before the page says it */
.tldr{
  margin-top:38px;padding:26px 28px;border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(9,12,26,.5));
  border:1px solid var(--line);border-top-color:rgba(255,255,255,.12);
}
.tldr h2{font-size:15px;font-family:var(--mono);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tldr ul{margin:16px 0 0;padding-left:20px;color:var(--text-secondary)}
.tldr li{margin-top:9px}
.tldr li strong{color:var(--text-primary);font-weight:500}

/* the body of the document */
section.cl{margin-top:clamp(40px,6vh,60px);scroll-margin-top:24px}
section.cl > h2{
  font-size:clamp(21px,3vw,27px);
  padding-bottom:14px;border-bottom:1px solid var(--line);
}
section.cl > h2 .n{
  font-family:var(--mono);font-size:14px;font-weight:500;color:var(--accent);
  margin-right:12px;letter-spacing:.04em;
}
section.cl p,section.cl ul,section.cl ol{margin-top:16px;color:var(--text-secondary)}
section.cl h3{font-size:17px;margin-top:28px;color:var(--text-primary)}
section.cl ul,section.cl ol{padding-left:22px}
section.cl li{margin-top:8px}
section.cl li strong,section.cl p strong{color:var(--text-primary);font-weight:500}
.note{
  margin-top:20px;padding:16px 20px;border-left:2px solid var(--accent);
  background:rgba(79,214,255,.04);border-radius:0 8px 8px 0;
  font-size:15.5px;
}
.addr{
  font-family:var(--mono);font-size:14px;line-height:1.9;
  margin-top:18px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;
  background:rgba(9,12,26,.5);color:var(--text-secondary);
}
.addr strong{display:block;color:var(--text-primary);font-weight:500;margin-bottom:6px}

/* the table of sub-processors */
.tw{margin-top:20px;overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{
  font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);background:rgba(255,255,255,.03);
}
tr:last-child td{border-bottom:0}
td{color:var(--text-secondary)}
td:first-child{color:var(--text-primary)}

/* ---------- the close ---------- */
footer{
  position:relative;z-index:1;margin-top:clamp(64px,10vh,110px);
  border-top:1px solid var(--line);padding:44px var(--gutter);
}
.foot{
  max-width:var(--measure);margin:0 auto;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:12px;color:var(--text-secondary);letter-spacing:.04em;
}
.foot-links{display:flex;gap:22px;flex-wrap:wrap}
.foot-links a{color:var(--text-secondary);border:0}
.foot-links a:hover{color:var(--accent);border:0}

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

.note-inline{
  margin-top:14px;font-size:14.5px;color:var(--text-secondary);
  font-style:italic;
}

/* ============================================================
   The cookie control

   No tracker runs on a legal page, so there is no first-visit
   notice here: this bar only ever opens from the footer control.
   It writes the same hextor-consent key the home page reads
   before its tags initialise, which is what makes the promise in
   the privacy policy -- the control is in the footer of every
   page -- true on these pages too.

   Styled from the flat panel language of .tldr rather than the
   home page's glass: these pages have no moving backdrop for a
   blur to sit on.
   ============================================================ */
.consent{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  padding:0 var(--gutter) clamp(16px,3vh,28px);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .5s var(--ease-soft),transform .5s var(--ease-soft);
}
.consent.on{opacity:1;transform:none;pointer-events:auto}
.consent-card{
  max-width:var(--measure);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:20px 34px;flex-wrap:wrap;
  padding:20px 24px;border-radius:14px;
  background:linear-gradient(180deg,rgba(20,24,48,.97),rgba(9,12,26,.97));
  border:1px solid var(--line);border-top-color:rgba(255,255,255,.12);
  box-shadow:0 20px 54px rgba(0,0,0,.55);
}
.consent-copy{
  font-size:14.5px;line-height:1.62;color:var(--text-secondary);
  max-width:66ch;
}
.consent-copy a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;border:0}
.consent-row{display:flex;gap:12px;flex:none}
.consent-row button{
  font-family:var(--body);font-size:14px;font-weight:500;
  padding:11px 22px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--text-primary);
  transition:border-color .3s var(--ease-soft),background .3s var(--ease-soft);
}
.consent-row button:hover{border-color:var(--accent)}
.consent-row .yes{background:var(--accent);border-color:var(--accent);color:#04121A}
.consent-row .yes:hover{background:var(--accent-hover);border-color:var(--accent-hover)}

/* the footer control sits in the link row and must not look like a button */
.foot-links button{
  font-family:inherit;font-size:inherit;letter-spacing:inherit;
  color:var(--text-secondary);background:none;border:0;padding:0;
  cursor:pointer;transition:color .3s var(--ease-soft);
}
.foot-links button:hover{color:var(--accent)}

@media (max-width:660px){
  .consent-card{flex-direction:column;align-items:stretch;gap:16px;padding:18px 20px}
  .consent-row button{flex:1}
}
