import{k as e,L as f}from"./index-BVfpSx5Q.js";import{L as y}from"./layout-NiehYZnq.js";import{P as x,K as d,C as r,S as o,f as v,I as p}from"./ui-DGkmnhL-.js";import{A}from"./aerialTwinMilestones-5r2rjM9c.js";const w="0.1.0-seed",N="Site-specific RF physics in a hash-linked twin. Defensive only, evidence-bound, public-input only.",m=[{id:"differentiable-ray-tracing",name:"Differentiable ray tracing",oneLine:"Trace radio rays through a 3D scene with gradients that flow back to scene parameters. The twin becomes trainable.",detail:"Radio propagation is modelled as rays interacting with surfaces (reflection, diffraction, scattering). Because the trace is differentiable, ML models for beam prediction, channel estimation, and codebook design can be trained directly against site-specific physics rather than statistical approximations.",groundedIn:"NVIDIA Sionna RT (Apache-2.0) — open-source, GPU-accelerated, JAX/TensorFlow backends."},{id:"scene-mesh",name:"Site-specific scene mesh",oneLine:"Real geography, buildings, and material properties expressed as an OpenUSD scene. The twin matches the world.",detail:"Each scene is a triangle mesh with per-surface electromagnetic material properties (relative permittivity, conductivity). Sourced from public OSM / lidar / cadastral data plus material catalogues; never from scraped proprietary scans.",groundedIn:"OpenUSD (Apache-2.0), public Sionna scene catalogue, OSM Buildings, ITU-R material recommendations."},{id:"channel-impulse-response",name:"Channel impulse response generation",oneLine:"For any (transmitter, receiver) pair in the scene, the twin yields a per-tap CIR. Feeds every downstream radio model.",detail:"CIRs are synthesised by tracing rays per subcarrier, then summing complex-amplitude contributions. Output is a (tx, rx, time, frequency) tensor consumable by physical-layer simulators or ML training pipelines.",groundedIn:"Sionna PHY layer; 3GPP TR 38.901 statistical baseline for sanity comparison."},{id:"ru-du-cu-emulation",name:"End-to-end RU / DU / CU emulation",oneLine:"Radio Unit + Distributed Unit + Centralised Unit run as software stacks against the twin’s CIRs. Test the whole RAN before touching real spectrum.",detail:"Open RAN splits the base station into RU (radio), DU (real-time PHY/MAC), and CU (RRC/PDCP). Wiring an open-source DU/CU (OpenAirInterface or srsRAN) to the twin’s CIR feed produces a closed software-only test bed.",groundedIn:"OpenAirInterface (Apache-2.0); srsRAN Project (AGPL-3.0); O-RAN Alliance specifications."},{id:"ric-closed-loop",name:"RIC closed-loop integration",oneLine:"xApps and rApps see the twin via E2/A1/O1 the same way they see real RAN. Train the controller in twin, ship the policy to production.",detail:"The RAN Intelligent Controller (Near-RT and Non-RT) consumes E2 telemetry and emits policy. Pointing the RIC at a twin lets ML xApps train safely; once approved, the same xApp can be promoted against the real network.",groundedIn:"O-RAN Software Community (Apache-2.0): ric-plt, dms, smo subprojects."},{id:"ai-ran-inference",name:"AI-RAN inference path",oneLine:"CUDA-accelerated PHY layer where ML models replace classical signal-processing blocks. The twin produces the training data; the runtime serves inference.",detail:"Frontier work in beam management, channel decoding, and link adaptation replaces hand-tuned blocks with neural networks. The twin is the only practical source of site-specific labelled data at scale.",groundedIn:"NVIDIA Aerial CUDA-Accelerated RAN public material; Sionna PHY layer for ML-friendly differentiable blocks."}],h=[{id:"sionna",name:"Sionna",org:"NVlabs",url:"https://github.com/NVlabs/sionna",license:"Apache-2.0",oneLine:"GPU-accelerated, fully differentiable PHY-layer simulator. The reference open implementation of an AI-friendly radio stack.",primitive:"channel-impulse-response",distillation:"Studied with-knowledge-of for the differentiable PHY blocks (LDPC decoders, channel estimators, MIMO detectors). Reimplemented patterns drive the A11oy radio-eval harness."},{id:"sionna-rt",name:"Sionna RT",org:"NVlabs",url:"https://github.com/NVlabs/sionna-rt",license:"Apache-2.0",oneLine:"Differentiable ray tracer for radio propagation. The kernel that turns a 3D scene into trainable channel data.",primitive:"differentiable-ray-tracing",distillation:"The ray-trace + per-surface gradient flow is the keystone primitive. Sentra wraps it as a sandboxed twin engine; A11oy planner submits jobs against it."},{id:"openairinterface",name:"OpenAirInterface 5G",org:"OAI Software Alliance",url:"https://gitlab.eurecom.fr/oai/openairinterface5g",license:"Apache-2.0",oneLine:"Open-source 5G NR stack: gNB (RU/DU/CU), UE, core. The default software RAN we wire to the twin.",primitive:"ru-du-cu-emulation",distillation:"Used as the open RAN reference behind the twin’s CIR feed. Adoption pattern: pin a tagged release, vendor any patches via the Hephaestus provenance gate."},{id:"srsran",name:"srsRAN Project",org:"Software Radio Systems",url:"https://github.com/srsran/srsRAN_Project",license:"AGPL-3.0",oneLine:"Production-grade open 5G RAN. Alternative DU/CU when AGPL is acceptable to the customer.",primitive:"ru-du-cu-emulation",distillation:"Studied for its disciplined real-time PHY/MAC design. AGPL means it lives behind a clean network-service boundary, never linked into closed-source binaries."},{id:"o-ran-sc",name:"O-RAN Software Community",org:"O-RAN Alliance / Linux Foundation",url:"https://github.com/o-ran-sc",license:"Apache-2.0",oneLine:"Reference implementations of the RIC (Near-RT, Non-RT), SMO, and E2/A1/O1 interfaces. The control plane the twin plugs into.",primitive:"ric-closed-loop",distillation:"The xApp / rApp registration model is mirrored in the A11oy capability registry. Every twin-trained xApp passes a Mirror Eval gate before promotion."},{id:"gnu-radio",name:"GNU Radio",org:"GNU Radio Project",url:"https://github.com/gnuradio/gnuradio",license:"GPL-3.0",oneLine:"Software-defined radio toolkit. The reference for signal-processing flowgraphs and the bridge to USRP / SDR hardware in lab settings.",primitive:"ai-ran-inference",distillation:"GPL-3.0 means lab-only use behind a service boundary. Used to validate the twin’s CIR output against captured real-world signals on owned hardware."}],u=[{id:"vessels",vertical:"Vessels — Maritime Intelligence",context:"Vessels already carries port asset registries, AIS feeds, and weather/sea-state context. A site-specific RF twin layered on top turns coastal connectivity into a first-class operations surface.",useCases:["Port 5G coverage planning across berths, cranes, and approach lanes.","Vessel-to-shore link budget under sea state, rain, and ducting conditions.","Defensive RF anomaly modelling: GPS spoofing and AIS jamming scenarios run in twin only.","Shore-station beam-forming optimisation against scheduled vessel arrivals."],twinOutput:"Per-berth coverage heatmap, per-route link-budget timeline, per-anomaly playback record bound to the Vessels asset registry.",guardrail:"Twin reads cadastral / hydrographic data only. No live transmission, no scraped vessel-side captures. RF anomaly playback is sandboxed and approval-gated."},{id:"terra",vertical:"Terra — Real Estate Intelligence",context:"Terra holds the building, parcel, and material context for every property in scope. A site-specific RF twin gives owners and tenants a defensible coverage attestation per asset.",useCases:["In-building 5G / WiFi coverage prediction before installation.","mmWave shadowing analysis for class-A office and data-centre tenants.","IoT placement optimisation (BLE, LoRaWAN, Zigbee) against the building mesh.","Pre-leasing connectivity attestation as a marketing artefact."],twinOutput:"Per-floor coverage map, per-tenant connectivity score with confidence interval, attestation PDF bound to the Terra parcel ID and the scene hash.",guardrail:"Scene meshes derived from public cadastral data plus owner-provided floor plans. Owner-provided geometry never re-shared across tenants."},{id:"sentra",vertical:"Sentra — Cyber Resilience Command",context:"Sentra already operates the EDR mesh, SIEM connectors, and Approval Queue. A site-specific RF twin lets Sentra reason about the RF surface as a first-class asset class.",useCases:["Rogue base station detection: compare twin-predicted signal envelope to real-world spectrum captures.","IMSI catcher fingerprinting in a known scene context.","Defensive jamming-resilience scoring per critical site.","RF threat-emulation library run inside the twin for tabletop exercises."],twinOutput:"RF risk score per site, anomaly playback timeline, twin-vs-reality delta report committed to the Cerberus evidence vault.",guardrail:"Twin never emits. Spectrum captures are licensed or owner-owned only; never sourced from third-party scraping. All RF threat scenarios are sandboxed in twin."}],g=[{id:"federated-rf-ledger",name:"Federated RF episode ledger",oneLine:"Tenants opt in to share aggregated channel statistics, never raw captures. Contributions earn Defender Credits.",novelty:"The upstream brief is single-tenant. Our federated layer pools CIR distributions across consenting customers without ever moving raw spectrum or scene geometry off-tenant.",status:"distilled",module:"A11oy Federation + Defender Credits"},{id:"evidence-bound-xapp-registry",name:"Evidence-bound xApp registry",oneLine:"Every RIC xApp is registered with a hash-linked manifest, training-data lineage, and a Mirror Eval pass before promotion.",novelty:"Standard O-RAN SC ships the registration mechanic. We add the Cerberus-anchored manifest and the gated promotion path so a twin-trained xApp cannot quietly land in production.",status:"adoptable",module:"A11oy Capability Registry + Cerberus + Mirror Eval"},{id:"planner-over-ran-graph",name:"A11oy planner over the RAN policy graph",oneLine:"Natural-language ops directives decompose into typed RIC actions. Same Hatun Layer pattern as the patch loop.",novelty:"Brings the A11oy planner discipline (typed plans, Constitution admission, dual-key approval) to a domain where most automation today is bash and Helm.",status:"distilled",module:"A11oy Planner + Sentra Policy Engine"},{id:"defensive-rf-redteam",name:"Defensive RF red-team in twin",oneLine:"Jamming, spoofing, and rogue-cell scenarios run in the twin only. Outcomes feed the Sentra Risk Engine.",novelty:"The frontier red-teaming pattern from the Hatun Layer transposed onto the RF surface. No live spectrum is ever touched.",status:"observed",module:"Sentra Sandbox + Adversarial Resilience"},{id:"coverage-attestation",name:"Site-specific coverage attestation",oneLine:"Combine Terra / Vessels asset registry + twin output + Sentra risk engine into a signed coverage report.",novelty:"Cross-product surface that turns a transient simulation result into a durable, signed artefact bound to a parcel or vessel ID.",status:"adoptable",module:"Terra + Vessels + Cerberus Evidence Vault"}],R=[{id:"phase1-doctrine",phase:"0–6",title:"Aerial Twin doctrine surface live in A11oy",detail:"This page — typed primitives, OSS leader catalogue, vertical bindings, innovation seeds, and the guardrail stack — published and Constitution-bound.",module:"A11oy Doctrine Surface"},{id:"phase1-sionna-eval",phase:"0–6",title:"Sionna RT evaluation harness",detail:"Stand up a sandboxed twin engine wrapping Sionna RT against a single public scene catalogue entry. Output CIRs reproducible across runs.",module:"A11oy Mirror Eval + Sentra Sandbox"},{id:"phase1-vessels-port",phase:"0–6",title:"Vessels port-coverage demo",detail:"One reference port with a public mesh. Coverage heatmap and link-budget timeline rendered in the Vessels surface, signed and bound to the asset registry.",module:"Vessels + Aerial Twin Engine"},{id:"phase2-terra-building",phase:"7–12",title:"Terra in-building twin",detail:"Single-floor mmWave coverage twin for a reference asset, with owner-provided geometry and a signed pre-leasing attestation.",module:"Terra + Aerial Twin Engine + Cerberus"},{id:"phase2-sentra-anomaly",phase:"7–12",title:"Sentra RF anomaly classifier",detail:"Train an anomaly classifier on twin-vs-reality deltas. Promote via Mirror Eval. Findings flow into the existing Approval Queue.",module:"Sentra Risk Engine + Silver RL Planner"},{id:"phase2-federated-ledger",phase:"7–12",title:"Federated RF episode ledger v1",detail:"Aggregated CIR statistics pooled across consenting tenants. Raw geometry and captures stay on-tenant. Contributions earn Defender Credits.",module:"A11oy Federation + Defender Credits"},{id:"phase3-ric-binding",phase:"13–24",title:"O-RAN SC RIC binding",detail:"Twin and real RAN expose the same E2/A1/O1 interface to A11oy-managed xApps. Promotion path is twin → staging → prod with dual-key approval.",module:"A11oy Capability Registry + O-RAN SC"},{id:"phase3-ai-ran",phase:"13–24",title:"AI-RAN inference path",detail:"Twin-trained ML blocks (beam prediction, channel estimation) served via a CUDA-accelerated runtime behind the connector firewall.",module:"A11oy Model Router + Sentra Connector Firewall"},{id:"phase3-attestation-soc2",phase:"13–24",title:"Coverage attestation as SOC2 artefact",detail:"Signed coverage attestations cross-referenced into the SOC2 Type II control surface as evidence of connectivity controls.",module:"Sentra Compliance Engine + Cerberus"}],S=[{layer:"Inputs",control:"Public cadastral / lidar / OSM data plus owner-provided geometry only. No scraped proprietary scenes.",enforcedBy:"A11oy ingestion gate + Hephaestus provenance attestation per scene."},{layer:"Emission",control:"The twin reads. The twin never transmits. No active probing of real spectrum from any twin path.",enforcedBy:"Sentra connector firewall + capability compartment that strips egress to RF hardware."},{layer:"Tenant scope",control:"Owner-provided geometry and tenant-specific captures stay on-tenant. Federated layer pools statistics only.",enforcedBy:"A11oy federation contract + Cerberus per-tenant evidence partition."},{layer:"Closed-loop approval",control:"Any RIC xApp promotion against real spectrum requires dual-key approval and a 24h staging soak.",enforcedBy:"Sentra Approval Queue + Constitution rule engine."},{layer:"Provenance",control:"Scene hash, ruleset version, tool versions, and operator identity captured per twin episode.",enforcedBy:"Hephaestus provenance gate + Cerberus append-only ledger."}],j=[{tag:"NVIDIA-Aerial-DT",source:"NVIDIA Aerial Digital Twin overview — docs.nvidia.com/aerial/aerial-dt/text/overview.html."},{tag:"Sionna",source:"Sionna — An Open-Source Library for Next-Generation Physical-Layer Research, NVlabs (Apache-2.0)."},{tag:"Sionna-RT",source:"Sionna RT — Differentiable ray tracer for radio propagation, NVlabs (Apache-2.0)."},{tag:"OAI",source:"OpenAirInterface 5G — OAI Software Alliance (Apache-2.0)."},{tag:"srsRAN",source:"srsRAN Project — Software Radio Systems (AGPL-3.0)."},{tag:"O-RAN-SC",source:"O-RAN Software Community — Linux Foundation / O-RAN Alliance (Apache-2.0)."},{tag:"GNURadio",source:"GNU Radio — Software-defined radio toolkit (GPL-3.0)."},{tag:"3GPP-38901",source:"3GPP TR 38.901 — Study on channel model for frequencies from 0.5 to 100 GHz."},{tag:"OpenUSD",source:"OpenUSD — Universal Scene Description, Pixar / AOUSD (Apache-2.0)."},{tag:"ITU-R-P-2040",source:"ITU-R P.2040 — Effects of building materials and structures on radiowave propagation."}],i="#c9b787",l="var(--color-a11oy-text)",t="var(--color-a11oy-text-sub)",c="var(--color-a11oy-text-ghost)",I={observed:{color:"#5e5e5e",bg:"rgba(94,94,94,0.12)",label:"OBSERVED"},distilled:{color:"#c9b787",bg:"rgba(201,183,135,0.10)",label:"DISTILLED"},adoptable:{color:i,bg:"rgba(201,183,135,0.18)",label:"ADOPTABLE"},piloted:{color:"#f5f5f5",bg:"rgba(245,245,245,0.10)",label:"PILOTED"}},C={vessels:"#c9b787",terra:"#f5f5f5",sentra:"#c9b787"},T={"0–6":"Months 0–6 · Foundation","7–12":"Months 7–12 · Reinforcement","13–24":"Months 13–24 · Hardening"},E="/".replace(/\/$/,"");function k(){const b=["0–6","7–12","13–24"];return e.jsxs(y,{children:[e.jsx(x,{label:"DOCTRINE · AERIAL TWIN",title:"Aerial Twin",subtitle:`${N} · v${w}`,status:"GATED"}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mb-6",children:[e.jsx(d,{label:"PRIMITIVES",value:m.length,sub:"ray-trace → AI-RAN",accent:i}),e.jsx(d,{label:"OSS LEADERS",value:h.length,sub:"public anchors we ground on",accent:i}),e.jsx(d,{label:"VERTICALS BOUND",value:u.length,sub:"Vessels · Terra · Sentra",accent:i}),e.jsx(d,{label:"INNOVATION SEEDS",value:g.length,sub:"what we add",accent:i})]}),e.jsxs(r,{className:"mb-6",children:[e.jsx(o,{children:"What this surface is"}),e.jsx("p",{className:"text-xs mb-2",style:{color:t,lineHeight:1.7},children:"A site-specific wireless digital-twin doctrine for A11oy. Distilled from the public NVIDIA Aerial Digital Twin overview and grounded in the public open-source leaders for differentiable RF physics, software RAN, and the RAN Intelligent Controller. No leaked spectrum captures, no scraped proprietary scenes, no live emission."}),e.jsx("p",{className:"text-xs",style:{color:t,lineHeight:1.7},children:"The seven sections below — primitives, OSS leaders, vertical bindings, innovation seeds, phased roadmap, guardrails, and citations — bind each element to a Sentra module or a vertical surface. Adoption of any element requires a Constitution review and a Sentra approval workflow."})]}),e.jsx(o,{className:"mt-2",children:"1 · Primitives"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"Six concepts that compose into a site-specific wireless twin. Each is grounded in a public source, never in a proprietary integration we do not have."}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3 mb-8",children:m.map(a=>e.jsxs(r,{children:[e.jsx("div",{className:"font-display text-sm font-semibold mb-1",style:{color:l},children:a.name}),e.jsx("p",{className:"text-xs mb-2",style:{color:t,lineHeight:1.6},children:a.oneLine}),e.jsx("p",{className:"text-xs mb-2",style:{color:l,lineHeight:1.55},children:a.detail}),e.jsxs("div",{className:"text-[11px] px-2 py-1.5 rounded",style:{color:i,backgroundColor:"rgba(201,183,135,0.06)",border:"1px solid rgba(201,183,135,0.18)",lineHeight:1.5},children:[e.jsx("span",{className:"font-mono uppercase tracking-wide mr-1",style:{fontSize:9},children:"Grounded in"}),a.groundedIn]})]},a.id))}),e.jsx(o,{className:"mt-2",children:"2 · Open-source leaders we ground on"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"Six public repositories that own the state of the art for differentiable RF physics, software RAN, and the RAN Intelligent Controller. Each is studied with-knowledge-of, then distilled into our pattern."}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3 mb-8",children:h.map(a=>{var n;return e.jsxs(r,{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2 flex-wrap gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-display text-sm font-semibold",style:{color:l},children:a.name}),e.jsx(v,{status:"info",label:a.license})]}),e.jsx("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[10px]",style:{color:i},children:a.org})]}),e.jsx("p",{className:"text-xs mb-2",style:{color:t,lineHeight:1.6},children:a.oneLine}),e.jsx(p,{label:"Primitive",value:((n=m.find(s=>s.id===a.primitive))==null?void 0:n.name)??a.primitive}),e.jsx(p,{label:"Distillation",value:a.distillation})]},a.id)})}),e.jsx(o,{className:"mt-2",children:"3 · Vertical bindings"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"Three SZL surfaces that already carry the asset context the twin needs. Each binding pairs use cases with the twin output and a vertical-specific guardrail."}),e.jsx("div",{className:"grid grid-cols-1 gap-3 mb-8",children:u.map(a=>{const n=C[a.id];return e.jsxs(r,{children:[e.jsx("div",{className:"flex items-center justify-between mb-2 flex-wrap gap-2",children:e.jsx("span",{className:"font-mono text-[11px] px-1.5 py-0.5 rounded",style:{color:n,backgroundColor:`${n}18`,border:`1px solid ${n}30`},children:a.vertical})}),e.jsx("p",{className:"text-xs mb-3",style:{color:t,lineHeight:1.6},children:a.context}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-wide mb-1.5",style:{color:c},children:"Use cases"}),e.jsx("ul",{className:"space-y-1",children:a.useCases.map(s=>e.jsxs("li",{className:"text-xs flex gap-2",style:{color:l,lineHeight:1.5},children:[e.jsx("span",{className:"shrink-0",style:{color:i},children:"·"}),e.jsx("span",{children:s})]},s))})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-wide mb-1.5",style:{color:c},children:"Twin output"}),e.jsx("p",{className:"text-xs mb-3",style:{color:l,lineHeight:1.55},children:a.twinOutput}),e.jsxs("div",{className:"text-[11px] px-2 py-1.5 rounded",style:{color:i,backgroundColor:"rgba(201,183,135,0.06)",border:"1px solid rgba(201,183,135,0.18)",lineHeight:1.5},children:[e.jsx("span",{className:"font-mono uppercase tracking-wide mr-1",style:{fontSize:9},children:"Guardrail"}),a.guardrail]})]})]})]},a.id)})}),e.jsx(o,{className:"mt-2",children:"4 · Innovation seeds"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"What we add on top of the upstream brief. Each seed is novel, defensive, and bound to an A11oy or Sentra module."}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3 mb-8",children:g.map(a=>{const n=I[a.status];return e.jsxs(r,{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2 flex-wrap gap-2",children:[e.jsx("span",{className:"font-display text-sm font-semibold",style:{color:l},children:a.name}),e.jsx("span",{className:"font-mono text-[10px] px-1.5 py-0.5 rounded",style:{color:n.color,backgroundColor:n.bg},children:n.label})]}),e.jsx("p",{className:"text-xs mb-2",style:{color:t,lineHeight:1.6},children:a.oneLine}),e.jsx(p,{label:"Novelty",value:a.novelty}),e.jsx(p,{label:"Module",value:a.module,mono:!0})]},a.id)})}),e.jsx(o,{className:"mt-2",children:"5 · Phased roadmap"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"The 0–24 month plan. Every milestone is testable, Constitution-bound, and mapped onto an A11oy or Sentra module."}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-3 mb-8",children:b.map(a=>{const n=R.filter(s=>s.phase===a);return e.jsxs(r,{children:[e.jsx("div",{className:"text-xs font-mono uppercase tracking-wide mb-3",style:{color:i},children:T[a]}),e.jsx("div",{className:"space-y-3",children:n.map(s=>e.jsxs("div",{className:"pb-3 border-b last:border-b-0 last:pb-0",style:{borderColor:"var(--color-a11oy-border)"},children:[e.jsx("div",{className:"text-xs font-medium mb-1",style:{color:l},children:s.title}),e.jsx("p",{className:"text-[11px] mb-1",style:{color:t,lineHeight:1.55},children:s.detail}),e.jsxs("div",{className:"text-[10px] font-mono",style:{color:c},children:["→ ",s.module]})]},s.id))})]},a)})}),e.jsx(o,{className:"mt-2",children:"6 · Guardrails"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"Five layers specific to the RF / twin surface. None can be bypassed by an in-context instruction."}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mb-8",children:S.map(a=>e.jsxs(r,{children:[e.jsx("div",{className:"font-mono text-xs uppercase tracking-wide mb-2",style:{color:i},children:a.layer}),e.jsx("p",{className:"text-xs mb-2",style:{color:l,lineHeight:1.55},children:a.control}),e.jsxs("div",{className:"text-[11px]",style:{color:c,lineHeight:1.5},children:[e.jsx("span",{className:"font-mono uppercase mr-1",style:{fontSize:9},children:"Enforced by"}),a.enforcedBy]})]},a.layer))}),e.jsx(o,{className:"mt-2",children:"Operational surfaces — all 8 milestones delivered"}),e.jsx("p",{className:"text-xs mb-3",style:{color:t},children:"Each milestone is a full surface with deliverables, OSS distillations, guardrails, and citations."}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3 mb-8",children:A.map(a=>e.jsx(f,{href:`${E}/aerial-twin/${a.slug}`,className:"block",children:e.jsxs(r,{className:"h-full cursor-pointer",style:{borderColor:"rgba(201,183,135,0.25)"},children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsxs("span",{className:"font-mono text-[10px] px-1.5 py-0.5 rounded",style:{color:i,backgroundColor:"rgba(201,183,135,0.12)"},children:["M",a.number]}),e.jsx("span",{className:"font-mono text-[10px] px-1.5 py-0.5 rounded",style:{color:"#7afa7a",backgroundColor:"rgba(122,250,122,0.08)"},children:"DELIVERED"})]}),e.jsx("div",{className:"text-xs font-medium mb-1",style:{color:l},children:a.title}),e.jsxs("div",{className:"text-[10px] font-mono",style:{color:c},children:[a.phase," months · ",a.deliverables.length," deliverables"]})]})},a.slug))}),e.jsx(o,{className:"mt-2",children:"Citations"}),e.jsx(r,{children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-4",children:j.map(a=>e.jsxs("div",{className:"flex gap-2 py-1.5 text-[11px]",style:{color:t,lineHeight:1.5},children:[e.jsxs("span",{className:"font-mono shrink-0",style:{color:i},children:["[",a.tag,"]"]}),e.jsx("span",{children:a.source})]},a.tag))})})]})}export{k as AerialTwin};