/* Vecnine relational ontology pilot — checkpoint 12
   Informational forms only. No decorative icon system. */
:root{
  --ro-calc:#e8692a;
  --ro-reference:#c9a96e;
  --ro-context:#a58bc7;
  --ro-line:rgba(255,255,255,.105);
  --ro-ink:rgba(255,255,255,.88);
  --ro-muted:rgba(255,255,255,.57);
}
.ro-layer-bridge,.ro-contribution,.ro-route-study,.ro-model-status,.ro-trust-boundary{
  box-sizing:border-box;
  max-width:1080px;
  margin:42px auto;
}
.ro-layer-bridge{
  padding:30px 32px 28px;
  border-top:1px solid rgba(201,169,110,.30);
  border-bottom:1px solid rgba(201,169,110,.18);
  background:linear-gradient(90deg,rgba(232,105,42,.045),rgba(201,169,110,.025) 44%,rgba(165,139,199,.045));
}
.ro-kicker{
  margin:0 0 9px;
  font-family:var(--font-mono,'IBM Plex Mono',monospace);
  font-size:11px;
  line-height:1.4;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ro-reference);
}
.ro-layer-bridge h2,.ro-contribution h2,.ro-route-study h2,.ro-model-status h2,.ro-trust-boundary h2{
  margin:0;
  font-family:var(--font-display,'Fraunces',Georgia,serif);
  font-size:clamp(27px,3.6vw,42px);
  line-height:1.12;
  font-weight:400;
  color:var(--ro-ink);
}
.ro-lede{
  max-width:780px;
  margin:12px 0 0;
  font-size:15px;
  line-height:1.75;
  color:var(--ro-muted);
}
.ro-stages{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin-top:27px;
  border-top:1px solid var(--ro-line);
  border-bottom:1px solid var(--ro-line);
}
.ro-stage{
  min-width:0;
  padding:17px 15px 18px;
  border-left:1px solid var(--ro-line);
}
.ro-stage:first-child{border-left:0}
.ro-stage-index{
  display:block;
  margin-bottom:11px;
  font-family:var(--font-mono,'IBM Plex Mono',monospace);
  font-size:10px;
  letter-spacing:.12em;
  color:rgba(255,255,255,.34);
}
.ro-stage strong{
  display:block;
  margin-bottom:7px;
  font-size:13px;
  line-height:1.3;
  font-weight:600;
  color:rgba(255,255,255,.83);
}
.ro-stage p{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:rgba(255,255,255,.46);
}
.ro-stage[data-layer="calculated"] strong{color:var(--ro-calc)}
.ro-stage[data-layer="interpreted"] strong{color:var(--ro-reference)}
.ro-stage[data-layer="lived"] strong{color:#c7b6db}
.ro-boundary-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
  margin-top:20px;
}
.ro-boundary-line p{
  margin:0;
  padding:12px 14px;
  border-left:2px solid rgba(201,169,110,.45);
  font-size:13px;
  line-height:1.62;
  color:rgba(255,255,255,.57);
}
.ro-boundary-line p:last-child{border-left-color:rgba(165,139,199,.55)}
.ro-contribution,.ro-route-study,.ro-model-status,.ro-trust-boundary{
  padding:28px 30px;
  border:1px solid var(--ro-line);
  background:rgba(255,255,255,.018);
}
.ro-contribution-grid,.ro-route-grid,.ro-model-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:22px;
}
.ro-contribution-cell,.ro-route,.ro-model{
  padding:17px 18px;
  border-top:1px solid rgba(201,169,110,.30);
  background:rgba(255,255,255,.018);
}
.ro-contribution-cell .label,.ro-route .label,.ro-model .label{
  display:block;
  margin-bottom:7px;
  font-family:var(--font-mono,'IBM Plex Mono',monospace);
  font-size:10px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(201,169,110,.72);
}
.ro-contribution-cell p,.ro-route p,.ro-model p{
  margin:0;
  font-size:13px;
  line-height:1.66;
  color:rgba(255,255,255,.58);
}
.ro-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ro-route[data-type="5"]{border-top-color:rgba(80,144,184,.55)}
.ro-route[data-type="7"]{border-top-color:rgba(201,169,110,.55)}
.ro-route strong{display:block;margin-bottom:8px;font-size:17px;color:rgba(255,255,255,.86)}
.ro-discriminator{
  margin-top:16px;
  padding:15px 18px;
  border-left:2px solid var(--ro-reference);
  background:rgba(201,169,110,.035);
  font-size:13px;
  line-height:1.67;
  color:rgba(255,255,255,.62);
}
.ro-version-line{
  margin-top:19px;
  display:flex;
  flex-wrap:wrap;
  gap:7px 18px;
  font-family:var(--font-mono,'IBM Plex Mono',monospace);
  font-size:10px;
  line-height:1.5;
  color:rgba(255,255,255,.38);
}
.ro-version-line strong{font-weight:500;color:rgba(201,169,110,.72)}
.ro-inline-boundary{
  margin:20px 0;
  padding:13px 16px;
  border-left:2px solid var(--ro-reference);
  background:rgba(201,169,110,.035);
  color:rgba(255,255,255,.62);
  font-size:13px;
  line-height:1.65;
}
.ro-inline-boundary strong{color:rgba(255,255,255,.84)}
.ro-mini-stack{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:16px 0;
  font-family:var(--font-mono,'IBM Plex Mono',monospace);
  font-size:11px;
  color:rgba(255,255,255,.47);
}
.ro-mini-stack span{
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.018);
}
.ro-mini-stack b{font-weight:400;color:rgba(201,169,110,.62)}
@media(max-width:900px){
  .ro-layer-bridge,.ro-contribution,.ro-route-study,.ro-model-status,.ro-trust-boundary{margin:34px 20px;padding:25px 22px}
  .ro-stages{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ro-stage:nth-child(4){border-left:0}
  .ro-stage:nth-child(n+4){border-top:1px solid var(--ro-line)}
}
@media(max-width:620px){
  .ro-stages,.ro-contribution-grid,.ro-route-grid,.ro-model-grid,.ro-boundary-line{grid-template-columns:1fr}
  .ro-stage,.ro-stage:nth-child(4){border-left:0;border-top:1px solid var(--ro-line)}
  .ro-stage:first-child{border-top:0}
  .ro-layer-bridge,.ro-contribution,.ro-route-study,.ro-model-status,.ro-trust-boundary{margin:28px 15px;padding:22px 18px}
}
@media print{
  .ro-layer-bridge,.ro-contribution,.ro-route-study,.ro-model-status,.ro-trust-boundary{background:none;border-color:#bbb;color:#111}
  .ro-stage p,.ro-lede,.ro-contribution-cell p,.ro-route p,.ro-model p,.ro-boundary-line p{color:#333}
}

/* Controlled pilot surfaces — source-of-truth outward. */
.ro-section{
  box-sizing:border-box;
  width:min(1080px,calc(100% - 40px));
  margin:44px auto;
  padding:30px 32px;
  border-top:1px solid rgba(201,169,110,.30);
  border-bottom:1px solid rgba(201,169,110,.15);
  background:rgba(255,255,255,.018);
}
.ro-title{
  max-width:900px;
  margin:0;
  font-family:var(--font-display,'Fraunces',Georgia,serif);
  font-size:clamp(29px,4vw,46px);
  line-height:1.08;
  font-weight:400;
  color:rgba(246,241,231,.94);
}
.ro-title em{font-weight:400;color:#c9a96e}
.ro-section>.ro-lede{max-width:810px;margin:13px 0 0;font-size:15px;line-height:1.76;color:rgba(255,255,255,.61)}
.ro-principles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:24px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08);
}
.ro-principles>article,.ro-principles>div{
  min-width:0;
  padding:19px 20px 21px;
  background:#0d0a1d;
}
.ro-principles small,.ro-model small,.ro-semiotic-node small,.ro-type-cell small{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-mono,'JetBrains Mono',monospace);
  font-size:10px;
  line-height:1.35;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(201,169,110,.74);
}
.ro-principles strong,.ro-semiotic-node strong{display:block;margin-bottom:7px;font-size:15px;line-height:1.38;color:rgba(255,255,255,.86)}
.ro-principles p,.ro-semiotic-node p{margin:0;font-size:13px;line-height:1.64;color:rgba(255,255,255,.53)}
.ro-layer-line{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin-top:25px;
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.ro-layer{padding:17px 14px 19px;border-left:1px solid rgba(255,255,255,.08)}
.ro-layer:first-child{border-left:0}
.ro-layer b{display:block;margin-bottom:9px;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:10px;letter-spacing:.10em;color:rgba(255,255,255,.34)}
.ro-layer strong{display:block;margin-bottom:6px;font-size:13px;line-height:1.35;color:rgba(255,255,255,.83)}
.ro-layer p{margin:0;font-size:12px;line-height:1.55;color:rgba(255,255,255,.45)}
.ro-layer:nth-child(1) strong,.ro-layer:nth-child(2) strong,.ro-layer:nth-child(3) strong{color:#e8692a}
.ro-layer:nth-child(4) strong{color:#c9a96e}
.ro-layer:nth-child(5) strong,.ro-layer:nth-child(6) strong{color:#c2acd9}
.ro-feedback{margin:16px 0 0;font-size:12px;line-height:1.55;color:rgba(255,255,255,.43)}
.ro-boundary,.ro-inline-boundary{
  margin:20px 0 0;
  padding:13px 16px;
  border-left:2px solid rgba(201,169,110,.60);
  background:rgba(201,169,110,.035);
  font-size:13px;
  line-height:1.67;
  color:rgba(255,255,255,.62);
}
.ro-boundary strong,.ro-inline-boundary strong{color:rgba(255,255,255,.86)}
.ro-semiotic{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:stretch;margin-top:24px}
.ro-semiotic-node{padding:18px 19px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.018)}
.ro-semiotic-arrow{display:grid;place-items:center;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:16px;color:rgba(201,169,110,.52)}
.ro-models{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.ro-model{padding:18px 19px;background:#0d0a1d}
.ro-model b{display:block;margin-bottom:8px;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:11px;color:#c9a96e}
.ro-model strong{display:block;margin-bottom:7px;font-size:15px;line-height:1.35;color:rgba(255,255,255,.86)}
.ro-model p{margin:0 0 11px;font-size:12.5px;line-height:1.62;color:rgba(255,255,255,.52)}
.ro-model span{font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.36)}
.ro-type-pilot{box-sizing:border-box;width:min(1120px,calc(100% - 40px));margin:34px auto;padding:27px 30px;border-top:1px solid rgba(201,169,110,.34);border-bottom:1px solid rgba(201,169,110,.16);background:rgba(201,169,110,.025)}
.ro-type-head{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:30px;align-items:end}
.ro-type-head h2{margin:0 0 8px;font-family:var(--font-display,'Fraunces',Georgia,serif);font-size:clamp(25px,3.4vw,39px);font-weight:400;color:rgba(255,255,255,.91)}
.ro-type-head p{max-width:710px;margin:0;font-size:14px;line-height:1.7;color:rgba(255,255,255,.58)}
.ro-type-operation{padding:15px 17px;border-left:2px solid #c9a96e;background:rgba(255,255,255,.018)}
.ro-type-operation small{display:block;margin-bottom:8px;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.36)}
.ro-type-operation strong{font-size:14px;line-height:1.45;color:rgba(255,255,255,.83)}
.ro-status-line{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.ro-status{padding:4px 7px;border:1px solid rgba(255,255,255,.09);font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:9px;line-height:1.2;letter-spacing:.04em;color:rgba(255,255,255,.42)}
.ro-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.ro-type-cell{min-width:0;padding:17px 18px;background:#0d0a1d}
.ro-type-cell strong{display:block;margin-bottom:7px;font-size:13px;color:rgba(255,255,255,.82)}
.ro-type-cell p,.ro-type-cell li{font-size:12.5px;line-height:1.61;color:rgba(255,255,255,.51)}
.ro-type-cell p{margin:0}.ro-type-cell ul{margin:0;padding-left:17px}.ro-type-cell li+li{margin-top:5px}
.ro-relation-board{display:grid;gap:1px;margin-top:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.ro-relation{display:grid;grid-template-columns:105px minmax(0,1.35fr) minmax(230px,.65fr);gap:22px;padding:20px;background:#0d0a1d}
.ro-pair{font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:22px;color:#c9a96e}
.ro-pair small{display:block;margin-top:7px;font-size:9px;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.36)}
.ro-relation h3{margin:0 0 8px;font-family:var(--font-display,'Fraunces',Georgia,serif);font-size:20px;font-weight:400;color:rgba(255,255,255,.86)}
.ro-relation p{margin:0;font-size:12.5px;line-height:1.62;color:rgba(255,255,255,.52)}
.ro-relation-aside{padding-left:18px;border-left:1px solid rgba(255,255,255,.09)}
.ro-relation-aside b{display:block;margin:0 0 4px;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:rgba(201,169,110,.67)}
.ro-relation-aside p+ b{margin-top:11px}

/* Dedicated public ontology page. */
.ro-ontology-page{background:#090718;color:rgba(255,255,255,.86)}
.ro-page{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:82px 0 96px}
.ro-page-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:52px;align-items:end;padding:46px 0 38px;border-bottom:1px solid rgba(201,169,110,.23)}
.ro-page-hero h1{max-width:850px;margin:0;font-family:var(--font-display,'Fraunces',Georgia,serif);font-size:clamp(48px,7.5vw,88px);line-height:.96;font-weight:300;color:#f1eadf}
.ro-page-hero h1 em{display:block;font-weight:300;color:#c9a96e}
.ro-page-hero .ro-page-deck{margin:0 0 4px;font-size:16px;line-height:1.72;color:rgba(255,255,255,.60)}
.ro-page-index{display:flex;flex-wrap:wrap;gap:8px 20px;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.ro-page-index a{font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.46);text-decoration:none}
.ro-page-index a:hover,.ro-page-index a:focus-visible{color:#c9a96e}
.ro-page-section{padding:54px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.ro-page-section:last-of-type{border-bottom:0}
.ro-page-section>.ro-kicker{margin-bottom:9px}
.ro-page-section h2{max-width:860px;margin:0;font-family:var(--font-display,'Fraunces',Georgia,serif);font-size:clamp(32px,4.6vw,54px);line-height:1.06;font-weight:400;color:#eee6da}
.ro-page-section h2 em{font-weight:400;color:#c9a96e}
.ro-page-section>.ro-page-lede{max-width:800px;margin:15px 0 0;font-size:16px;line-height:1.76;color:rgba(255,255,255,.60)}
.ro-definition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:28px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.08)}
.ro-definition{padding:21px 22px;background:#0d0a1d}
.ro-definition b{display:block;margin-bottom:8px;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#c9a96e}
.ro-definition strong{display:block;margin-bottom:7px;font-size:16px;color:rgba(255,255,255,.86)}
.ro-definition p{margin:0;font-size:13px;line-height:1.67;color:rgba(255,255,255,.53)}
.ro-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.ro-column{padding:22px 24px;border-top:1px solid rgba(201,169,110,.33);background:rgba(255,255,255,.018)}
.ro-column h3{margin:0 0 11px;font-family:var(--font-display,'Fraunces',Georgia,serif);font-size:24px;font-weight:400;color:rgba(255,255,255,.88)}
.ro-column p,.ro-column li{font-size:13.5px;line-height:1.68;color:rgba(255,255,255,.56)}
.ro-column ul{margin:0;padding-left:19px}.ro-column li+li{margin-top:7px}
.ro-claim-line{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;padding:22px 0;border-top:1px solid rgba(255,255,255,.09)}
.ro-claim-line:first-of-type{margin-top:26px}
.ro-claim-line b{font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:10px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:rgba(201,169,110,.73)}
.ro-claim-line p{max-width:760px;margin:0;font-size:14px;line-height:1.7;color:rgba(255,255,255,.60)}
.ro-page-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;padding:30px 0 0}
.ro-page-cta p{max-width:730px;margin:0;font-size:15px;line-height:1.7;color:rgba(255,255,255,.57)}
.ro-page-cta-links{display:flex;flex-wrap:wrap;gap:10px}
.ro-page-cta a{display:inline-flex;align-items:center;min-height:42px;padding:0 17px;border:1px solid rgba(201,169,110,.35);color:#e9dec9;text-decoration:none;font-size:13px}
.ro-page-cta a:first-child{border-color:#e8692a;color:#fff}
@media(max-width:900px){
  .ro-page-hero{grid-template-columns:1fr;gap:24px}.ro-models{grid-template-columns:repeat(2,minmax(0,1fr))}.ro-layer-line{grid-template-columns:repeat(3,minmax(0,1fr))}.ro-layer:nth-child(4){border-left:0}.ro-layer:nth-child(n+4){border-top:1px solid rgba(255,255,255,.08)}
  .ro-type-head,.ro-relation{grid-template-columns:1fr}.ro-relation-aside{padding:14px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
}
@media(max-width:680px){
  .ro-section,.ro-type-pilot{width:calc(100% - 28px);padding:23px 18px;margin:30px auto}
  .ro-principles,.ro-type-grid,.ro-definition-grid,.ro-two-column{grid-template-columns:1fr}
  .ro-layer-line,.ro-models{grid-template-columns:1fr}
  .ro-layer,.ro-layer:nth-child(4){border-left:0;border-top:1px solid rgba(255,255,255,.08)}.ro-layer:first-child{border-top:0}
  .ro-semiotic{grid-template-columns:1fr}.ro-semiotic-arrow{transform:rotate(90deg);min-height:16px}
  .ro-page{width:calc(100% - 30px);padding-top:58px}.ro-page-hero{padding-top:30px}.ro-page-hero h1{font-size:clamp(43px,14vw,64px)}
  .ro-claim-line{grid-template-columns:1fr;gap:8px}.ro-page-cta{grid-template-columns:1fr}.ro-page-cta-links{justify-content:flex-start}
}
