/* Vajraya Labs: Direction B, "engineering document". Preview build. */
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-hyperlegible-next-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-hyperlegible-next-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(/assets/fonts/atkinson-hyperlegible-next-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --paper:#f4f1ea; --sheet:#fbfaf6; --tint:#ebe6db;
  --ink:#1a1d22; --ink-2:#3d434d; --muted:#5a606b;
  --rule:#cfc8ba; --rule-2:#a89f8d;
  --red:#b23c0e; --red-tint:#f3e0d5;
  --green:#1f6a3d; --green-tint:#dcebdf;
  --text:"Atkinson Hyperlegible Next",ui-sans-serif,system-ui,"Segoe UI",Arial,sans-serif;
  --sans:var(--text);
  --mono:"IBM Plex Mono",ui-monospace,Consolas,Menlo,monospace;
  --max:1180px; --rail:210px; --gap:56px; --pad:24px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule-2);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-color:var(--red);color:var(--red)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;z-index:99;background:var(--ink);color:var(--paper);padding:10px 14px;font:500 15px var(--sans)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
h1,h2,h3{font-family:var(--text);font-weight:600;margin:0;color:var(--ink)}
h1{font-size:clamp(2.2rem,4.4vw,3.5rem);line-height:1.08;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,2.4vw,1.95rem);line-height:1.2;letter-spacing:-.012em}
h3{font-size:1.18rem;line-height:1.3}
p{margin:0 0 1em}
em{font-style:italic}
.ui{font-family:var(--sans)}
.mono,code{font-family:var(--mono);font-size:.82em}
.prose{max-width:66ch}
.deck{font-size:clamp(1.1rem,1.5vw,1.25rem);line-height:1.55;color:var(--ink-2);max-width:38em}
.muted{color:var(--muted)}
.tag{font:500 .72rem/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}

/* masthead */
.mast{border-bottom:1px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:20}
.mast .wrap{display:flex;align-items:center;gap:32px;min-height:64px}
.mark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:600 1.12rem/1 var(--text);letter-spacing:-.005em;min-height:44px}
.mark svg{width:20px;height:20px;flex:none}
.mark:hover{color:var(--ink)}
.nav{display:flex;margin-left:auto;gap:2px;font:500 .9rem/1 var(--sans)}
.nav a{text-decoration:none;color:var(--ink-2);padding:12px 11px}
.nav a:hover{color:var(--red)}
.nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:.55em}
.nav .go{color:var(--ink);margin-left:10px;border-left:1px solid var(--rule);padding-left:20px}
.nav .go::after{content:" \2192";color:var(--red)}
.menu{display:none;margin-left:auto}
.menu summary{list-style:none;cursor:pointer;font:500 .9rem/1 var(--sans);min-height:44px;display:flex;align-items:center;gap:8px;padding:0 2px}
.menu summary::-webkit-details-marker{display:none}
.menu summary::before{content:"";width:16px;height:9px;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.menu[open] summary::before{height:0;border-bottom:0}
.menu nav{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--ink);padding:4px var(--pad) 18px;display:grid;font:500 1.02rem/1 var(--sans)}
.menu nav a{text-decoration:none;padding:15px 0;border-bottom:1px solid var(--rule)}
.menu nav a[aria-current=page]{color:var(--red)}
.menu nav a:last-child{border-bottom:0}

/* buttons */
.btn{display:inline-flex;align-items:center;min-height:46px;padding:0 20px;font:600 .94rem/1 var(--sans);text-decoration:none;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:2px}
.btn:hover{background:var(--red);border-color:var(--red);color:#fff}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--paper)}
.more{font:600 .94rem/1.4 var(--sans);text-decoration:none;color:var(--ink);border-bottom:1.5px solid var(--red);padding-bottom:1px}
.more::after{content:" \2192"}
.more:hover{color:var(--red)}
.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:30px}

/* title block (home) */
.title{padding:64px 0 0}
.title-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:end;padding-bottom:56px}
.title h1{margin:14px 0 24px;max-width:13ch}
.sheet{border-top:2px solid var(--ink);font-size:.93rem}
.sheet div{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
.sheet dt{font:500 .7rem/1.7 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.sheet dd{margin:0;line-height:1.45}
.sheet{margin:0}

/* document sections with margin rail */
.part{border-top:1px solid var(--ink);padding:56px 0 64px}
.part.soft{border-top-color:var(--rule)}
.part.tinted{background:var(--tint)}
.doc{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:var(--gap)}
.rail{font:500 .82rem/1.45 var(--sans);color:var(--muted)}
.rail .no{display:block;font:500 .78rem var(--mono);color:var(--red);margin-bottom:6px}
.rail .nm{display:block;color:var(--ink);font-weight:600;font-size:.92rem}
.rail .side{margin-top:22px;padding-top:12px;border-top:1px solid var(--rule);font:400 .84rem/1.55 var(--text);font-style:italic;color:var(--muted)}
.body h2{margin-bottom:18px;max-width:30ch}
.body h3{margin:34px 0 10px}
.body h3:first-child{margin-top:0}
.body > p,.body li{max-width:66ch}
.body ul,.body ol{padding-left:1.2em;margin:0 0 1.1em}
.body li{margin:.3em 0}
.body li::marker{color:var(--red)}
.page-head{padding:60px 0 50px}
.page-head h1{max-width:20ch;margin:12px 0 22px}

/* numbered clauses */
.clauses{list-style:none;padding:0;margin:8px 0 0;counter-reset:cl;border-top:1px solid var(--rule)}
.clauses li{counter-increment:cl;display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;padding:16px 0;border-bottom:1px solid var(--rule);max-width:none}
.clauses li::before{content:counter(cl,decimal-leading-zero);font:500 .82rem/1.9 var(--mono);color:var(--red)}
.clauses b{font-weight:600}

/* figures */
figure{margin:28px 0 8px}
figcaption{margin-top:12px;font-size:.88rem;line-height:1.5;color:var(--muted);max-width:70ch}
figcaption b{color:var(--ink);font-weight:600}
.report{background:var(--sheet);border:1px solid var(--rule-2);font-size:.95rem}
.report-head{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--rule-2);font:500 .74rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.report h3{padding:18px 20px 4px;font-size:1.14rem}
.report dl{margin:0;padding:6px 20px 16px}
.report dl div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:9px 0;border-bottom:1px dotted var(--rule-2)}
.report dl div:last-child{border-bottom:0}
.report dt{font:500 .72rem/1.9 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.report dd{margin:0}
.report ol{margin:0;padding-left:1.15em}
.report code{background:var(--paper);border:1px solid var(--rule);padding:0 5px;overflow-wrap:anywhere}
.st{display:inline-block;font:500 .7rem/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:5px 7px;border:1px solid}
.st.red{color:var(--red);border-color:var(--red)}
.st.green{color:var(--green);border-color:var(--green)}
.st.grey{color:var(--muted);border-color:var(--rule-2)}

/* evidence chain diagram */
.chain{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule-2);background:var(--sheet)}
.chain li{position:relative;padding:16px 18px 18px;border-right:1px solid var(--rule-2);max-width:none;margin:0}
.chain li:last-child{border-right:0}
.chain li:not(:last-child)::after{content:"";position:absolute;right:-7px;top:22px;width:12px;height:12px;background:var(--sheet);border-top:1px solid var(--rule-2);border-right:1px solid var(--rule-2);transform:rotate(45deg);z-index:1}
.chain .k{font:500 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--red)}
.chain .v{margin-top:8px;font-size:.95rem;line-height:1.4}
.chain .v code{font-size:.78rem;color:var(--ink-2);overflow-wrap:anywhere}
.chain .n{display:block;margin-top:8px;font:400 .82rem/1.45 var(--sans);color:var(--muted)}

/* tables */
.tbl{overflow-x:auto;border-top:2px solid var(--ink)}
table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:760px}
th,td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
thead th{font:500 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:12px;padding-bottom:12px}
tbody th{font-weight:600;width:22%}
tbody th a{text-decoration-color:var(--red)}
td{color:var(--ink-2)}
td:last-child,th:last-child{padding-right:0}

/* small blocks */
.aside-note{border-left:2px solid var(--red);padding:2px 0 2px 18px;color:var(--ink-2);max-width:62ch;margin:24px 0}
.aside-note p:last-child{margin:0}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
.two h3{margin-top:0}
.list-links{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}
.list-links li{border-bottom:1px solid var(--rule);margin:0;max-width:none}
.list-links a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:16px 0;text-decoration:none}
.list-links a span:first-child{font-weight:600}
.list-links a .tag{text-align:right}
.list-links a:hover span:first-child{color:var(--red)}
.list-links a::after{content:"\2192";color:var(--red);grid-column:2;grid-row:1}
.list-links a .tag{grid-column:1}
.ph{border:1px dashed var(--rule-2);padding:18px 20px;font:400 .88rem/1.5 var(--sans);color:var(--muted);background:var(--sheet)}
.ph b{display:block;font:500 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--red);margin-bottom:6px}
.person{display:grid;grid-template-columns:132px minmax(0,1fr);gap:26px;align-items:start}
.portrait{aspect-ratio:4/5;border:1px dashed var(--rule-2);display:grid;place-items:center;text-align:center;padding:10px;font:500 .66rem/1.4 var(--mono);text-transform:uppercase;color:var(--muted);background:var(--sheet)}

/* footer */
.foot{border-top:1px solid var(--ink);padding:44px 0 30px;font:400 .88rem/1.5 var(--sans);color:var(--ink-2)}
.foot-grid{display:grid;grid-template-columns:var(--rail) repeat(3,minmax(0,1fr));gap:var(--gap)}
.foot h4{margin:0 0 10px;font:500 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li a{display:inline-block;padding:5px 0;text-decoration:none}
.foot .fine{margin-top:36px;padding-top:16px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;color:var(--muted);font-size:.8rem}

@media (max-width:1020px){
  .nav{display:none}
  .menu{display:block}
  .title-grid{grid-template-columns:1fr;gap:36px;align-items:start}
  .doc{grid-template-columns:1fr;gap:18px}
  .rail .side{display:none}
  .rail{display:flex;gap:12px;align-items:baseline}
  .rail .no{margin:0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .chain{grid-template-columns:1fr 1fr}
  .chain li:nth-child(2){border-right:0}
  .chain li:nth-child(-n+2){border-bottom:1px solid var(--rule-2)}
  .chain li:nth-child(2)::after{display:none}
}
@media (max-width:640px){
  :root{--pad:20px}
  body{font-size:16px}
  .title{padding-top:40px}
  .title-grid{padding-bottom:44px}
  .part{padding:44px 0 50px}
  .page-head{padding:40px 0 36px}
  .two{grid-template-columns:1fr;gap:8px}
  .report dl div{grid-template-columns:1fr;gap:0}
  .chain{grid-template-columns:1fr}
  .chain li{border-right:0;border-bottom:1px solid var(--rule-2)}
  .chain li:last-child{border-bottom:0}
  .chain li:not(:last-child)::after{display:block;right:auto;left:22px;top:auto;bottom:-7px;transform:rotate(135deg)}
  .chain li:nth-child(2)::after{display:block}
  .person{grid-template-columns:1fr}
  .portrait{max-width:132px}
  .foot-grid{grid-template-columns:1fr}
  .row-actions .btn{width:100%;justify-content:center}
  .clauses li{grid-template-columns:40px minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.mt{margin-top:18px}
.role{margin:6px 0 16px}
/* fixes after first render */
.list-links a .tag{text-align:left}
.more{display:inline-block;padding-top:12px;padding-bottom:2px;border-bottom:0;background:linear-gradient(var(--red),var(--red)) left bottom/100% 1.5px no-repeat}
.more:hover{background-size:100% 2px}
table{min-width:0}
.tbl.wide table{min-width:720px}
@media (max-width:640px){
  .tbl.wide table{min-width:0}
  .tbl.wide thead{position:absolute;left:-9999px}
  .tbl.wide tr{display:block;padding:14px 0;border-bottom:1px solid var(--rule)}
  .tbl.wide tbody th,.tbl.wide td{display:block;width:auto;border:0;padding:4px 0}
  .tbl.wide tbody th{font-size:1.05rem;padding-bottom:6px}
  .tbl.wide td::before{content:attr(data-label);display:block;font:500 .66rem/1.6 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  .tbl:not(.wide) tbody th{width:38%}
}
