/* Veyl — shared stylesheet.
   Register: research institute. Dark ground, centred measure, small type.
   Serif carries the argument; mono carries every functional label. */

@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400;
  font-display:block;src:url("fonts/ebgaramond-400.woff2")format("woff2")}
@font-face{font-family:"EB Garamond";font-style:italic;font-weight:400;
  font-display:block;src:url("fonts/ebgaramond-400-italic.woff2")format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;
  font-display:swap;src:url("fonts/99e609270109b47d-s.p.16-z~2sp29ex6.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}

:root{
  --bg:#1B1B1B;
  --ink:#FFFFFF;
  --ink-2:rgba(255,255,255,.72);
  --ink-3:rgba(255,255,255,.45);
  --rule:rgba(255,255,255,.14);
  --pass:#4fd492;
  --fail:#f16a6f;
  --serif:"EB Garamond","Iowan Old Style",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --measure:41rem;
  --wide:76rem;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:400 1.125rem/1.55 var(--serif);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit}
:focus-visible{outline:1px solid var(--ink);outline-offset:4px}

/* fixed grain, matching vkr's canvas overlay in effect */
.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

.mono{font-family:var(--mono);font-size:.875rem;font-weight:400;
  text-transform:uppercase;letter-spacing:2.1px;line-height:normal}

.physical-announcement{position:relative;z-index:110;height:30px;
  display:flex;align-items:center;justify-content:center;gap:.7rem;
  padding:0 1rem;background:#fff;color:#111;text-decoration:none;
  font-size:.625rem;letter-spacing:1.35px;
  border-bottom:1px solid rgba(0,0,0,.12)}
.physical-announcement span:last-child{font-size:.75rem;
  transition:transform .25s ease}
.physical-announcement:hover span:last-child{transform:translate(2px,-2px)}

.wordmark{position:fixed;top:1.9rem;left:1.9rem;z-index:20;
  text-decoration:none;color:var(--ink);font-size:.9375rem;letter-spacing:3px}
.home .wordmark{top:calc(1.9rem + 30px)}
@media(max-width:640px){.wordmark{position:static;display:block;
  padding:1.6rem 0 0 1.4rem}}

.page{max-width:var(--measure);margin:0 auto;padding:9.5rem 1.4rem 0;
  text-align:center}
@media(max-width:640px){.page{padding-top:3.5rem}}

/* Home sits centred in the viewport. `margin:auto` rather than
   justify-content so an overflowing column still scrolls instead of
   being clipped at the top. */
/* Home: the statement sits left of the sphere at the fold, then the argument
   runs below in a single readable measure. */
.split{max-width:var(--wide);margin:0 auto;padding:7.5rem 1.4rem 0;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,20rem);
  gap:5rem;align-items:center;text-align:left;min-height:58svh}
.home .lede{font-size:clamp(1.5rem,2.9vw,2.125rem);line-height:1.22;
  margin:0;text-wrap:balance}
.home-deck{max-width:35rem;margin:1.4rem 0 0;color:var(--ink-2);
  font-size:1.05rem;line-height:1.5;text-wrap:balance}
.hero-action{margin:1.8rem 0 0}
.hero-action a{text-decoration:none;padding-bottom:.3rem;
  border-bottom:1px solid var(--ink)}
.hero-action a:hover{border-bottom-color:var(--ink-3)}
.hero-secondary{margin:.95rem 0 0!important;font-size:.96rem}
.hero-secondary a{color:var(--ink-2);text-underline-offset:3px}
.hero-secondary a:hover{color:var(--ink)}

.sphere{width:100%;max-width:20rem;aspect-ratio:1;display:block;
  justify-self:end}

/* Same 66rem container as the fold, so the prose shares the headline's left
   edge; the measure is constrained inside it rather than by centring. */
.body{max-width:var(--wide);margin:0 auto;padding:1rem 1.4rem 0;text-align:left}
.body .prose,.body .links{max-width:41rem}
.home .prose p{margin-bottom:1.35rem}
.body h2,.faq h2{font-size:1.0625rem;font-weight:400;font-style:italic;
  margin:0 0 1.2rem;color:var(--ink)}
.beat{color:var(--ink)!important;font-style:italic}
.home .links{margin-top:3.25rem;justify-content:flex-start}
.home .foot{padding:5rem 1.4rem 3rem}
.faq{max-width:41rem;margin-top:4rem;padding-top:2rem;
  border-top:1px solid var(--rule)}
.faq dl{margin:0}
.faq dt{margin:1.7rem 0 .45rem;color:var(--ink);font-style:italic}
.faq dd{margin:0;color:var(--ink-2)}

@media(max-width:860px){
  .split{grid-template-columns:1fr;gap:2.75rem;max-width:41rem;
    padding-top:4.5rem;min-height:0;justify-items:center;text-align:center}
  .sphere{max-width:14rem;justify-self:center;order:-1}
  .body{text-align:center}
  .home-deck{margin-left:auto;margin-right:auto}
  .home .links{justify-content:center}
  .faq{text-align:left;margin-left:auto;margin-right:auto}
}

.lede{font-size:1.375rem;line-height:1.35;font-style:italic;font-weight:400;
  margin:0 0 3rem;text-wrap:balance}

.prose p{margin:0 0 1.5rem;color:var(--ink-2)}
.prose p:last-child{margin-bottom:0}

/* mono link row — the site's only navigation */
.links{display:flex;flex-wrap:wrap;justify-content:center;gap:2.2rem;
  margin:3.5rem 0 0}
.links a{text-decoration:none;color:var(--ink);padding-bottom:2px;
  border-bottom:1px solid transparent;transition:border-color .2s}
.links a:hover{border-bottom-color:var(--ink)}

.foot{max-width:var(--measure);margin:0 auto;padding:6rem 1.4rem 3.5rem;
  text-align:center;font-size:.75rem;letter-spacing:1.8px;color:var(--ink-3)}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ink)}

/* ---- document pages ---- */
.doc{max-width:48rem;margin:0 auto;padding:9.5rem 1.4rem 0;text-align:left}
@media(max-width:640px){.doc{padding-top:3.5rem}}
.doc-title{font-size:1.375rem;font-style:italic;font-weight:400;line-height:1.35;
  margin:0 0 2.8rem;text-align:center}
.doc h2{font-size:1.0625rem;font-weight:400;font-style:italic;margin:3.2rem 0 1rem;
  color:var(--ink)}
.doc p{margin:0 0 1.3rem;color:var(--ink-2)}
.doc a{text-underline-offset:3px}
.doc strong{color:var(--ink);font-weight:400;font-style:italic}
.doc ul{margin:0 0 1.3rem;padding-left:1.1rem;color:var(--ink-2)}
.doc li{margin-bottom:.55rem}
.doc-note{color:var(--ink-3);font-size:.9375rem}
.doc-callout{border-left:1px solid var(--fail);padding-left:1.1rem;
  color:var(--ink)!important}
.doc-kicker{margin:0 0 1.25rem!important;color:var(--ink-3)!important;
  text-align:center}
.study-lead{font-size:1.2rem;line-height:1.5;color:var(--ink)!important}
.study-stat{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:2.2rem 0;
  background:var(--rule);border:1px solid var(--rule)}
.study-stat span{background:var(--bg);padding:1.25rem;color:var(--ink-2);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.5px;text-transform:uppercase}
.study-stat strong{display:block;margin-bottom:.25rem;font:400 1.75rem/1 var(--serif);
  color:var(--ink);font-style:normal}
.source-box{margin:3rem 0 1.5rem;padding:1.2rem 1.3rem;border:1px solid var(--rule)}
.source-box p{margin-bottom:.6rem}
.source-box p:last-child{margin-bottom:0}
.source-box .mono{font-size:.68rem;letter-spacing:1.5px;color:var(--ink-3)!important}
.source-box a{text-underline-offset:3px}
.answer-box{margin:2.4rem 0 3rem;padding:1.3rem 1.4rem 1.35rem;
  border:1px solid var(--rule);background:rgba(255,255,255,.025)}
.answer-box p{margin-bottom:.8rem}
.answer-box p:last-child{margin-bottom:0}
.answer-box .mono{font-size:.66rem;letter-spacing:1.55px;color:var(--ink-3)}
.decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  margin:2rem 0 2.4rem;background:var(--rule);border:1px solid var(--rule)}
.decision-grid article{min-height:15rem;padding:1.25rem;display:flex;
  flex-direction:column;background:var(--bg)}
.decision-grid .mono{margin:0;color:var(--ink-3);font-size:.64rem;
  letter-spacing:1.3px}
.decision-grid h3{margin:auto 0 .65rem;font-size:1.12rem;font-weight:400;
  font-style:italic}
.decision-grid article p:last-child{margin:0;color:var(--ink-2);
  font-size:.98rem;line-height:1.45}
.doc-faq{margin:0}
.doc-faq dt{margin:1.7rem 0 .45rem;color:var(--ink);font-style:italic}
.doc-faq dd{margin:0;color:var(--ink-2)}
.doc code{font-family:var(--mono);font-size:.78em;color:var(--ink)}
.study-link{margin-top:1.8rem!important;font-size:.68rem!important;
  letter-spacing:1.4px}
.study-link a{text-decoration:none;border-bottom:1px solid var(--ink-3);
  padding-bottom:.2rem;color:var(--ink)}
.study-link a:hover{border-bottom-color:var(--ink)}
@media(max-width:640px){
  .study-stat{grid-template-columns:1fr}
  .decision-grid{grid-template-columns:1fr}
  .decision-grid article{min-height:12rem}
  .data.study-table{min-width:0;display:block}
  .study-table thead{display:none}
  .study-table tbody,.study-table tr,.study-table td{display:block;width:100%}
  .study-table tr{padding:.9rem 0;border-bottom:1px solid var(--rule)}
  .study-table tr:last-child{border-bottom:0}
  .study-table td{padding:.2rem 0;border:0}
  .study-table td:first-child{color:var(--ink);font-family:var(--serif);
    font-size:1rem;letter-spacing:0}
  .study-table td:nth-child(2)::before{content:"Result: ";color:var(--ink-3)}
  .study-table td:nth-child(3)::before{content:"Decision: ";color:var(--ink-3)}
}

/* ---- physical AI teaser ---- */
.physical-hero{max-width:var(--wide);margin:0 auto;padding:7rem 1.4rem 2.5rem;
  min-height:64svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(24rem,34rem);
  gap:5rem;align-items:center}
.physical-intro h1{font-size:clamp(1.55rem,3vw,2.25rem);font-weight:400;
  font-style:italic;line-height:1.2;margin:0 0 2rem;text-wrap:balance}
.physical-intro p{margin:0 0 1.3rem;color:var(--ink-2)}
.physical-intro .doc-kicker{text-align:left}
.physical-media{position:relative;width:100%;aspect-ratio:4/3;margin:0;
  overflow:hidden;background:#000;justify-self:end;isolation:isolate}
.physical-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  z-index:1;border:1px solid rgba(255,255,255,.08)}
#physical-source{position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:cover;pointer-events:none}
.physical-body{padding-top:1rem}

@media(max-width:860px){
  .physical-hero{grid-template-columns:1fr;gap:3rem;max-width:41rem;
    padding-top:4.5rem;min-height:0;text-align:center}
  .physical-media{order:-1;max-width:30rem;justify-self:center}
  .physical-intro .doc-kicker{text-align:center}
}

@media(max-width:640px){
  .physical-hero{padding-top:3rem}
  .physical-media{max-width:24rem}
  .physical-body{padding-top:0}
}

/* data — the only place saturated colour is permitted */
.data{width:100%;border-collapse:collapse;font-family:var(--mono);
  font-size:.75rem;letter-spacing:.4px;margin:2rem 0 1rem;text-align:left}
.data th{font-weight:400;text-transform:uppercase;letter-spacing:1.4px;
  font-size:.625rem;color:var(--ink-3);padding:0 1rem .7rem 0;
  border-bottom:1px solid var(--rule);white-space:nowrap}
.data td{padding:.75rem 1rem .75rem 0;color:var(--ink-2);vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.06)}
.data tr:last-child td{border-bottom:0}
.pass{color:var(--pass)}
.fail{color:var(--fail)}
.wrapx{overflow-x:auto}
@media(max-width:640px){.data{min-width:30rem}}
