:root {--bg:#000;--bg-surface:#0a0a0a;--bg-elevated:#111;--border:#1a1a1a;--border-mid:#2a2a2a;--neon:#39FF14;--neon-dim:rgba(57,255,20,.12);--neon-border:rgba(57,255,20,.35);--text:#e8e8e8;--text-mid:#bbb;--text-dim:#ccc;--white:#fff;--font-heading:'EB Garamond',Georgia,serif;--font-mono:'JetBrains Mono','Courier New',monospace;--font-body:'EB Garamond',Georgia,serif;--max-width:1200px;--nav-height:72px}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:17px;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--neon);text-decoration:none;transition:all .2s}a:hover{text-shadow:0 0 8px rgba(57,255,20,.4)}
.nav{background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;height:var(--nav-height)}
.nav-inner{max-width:var(--max-width);margin:0 auto;padding:0 24px;display:flex;align-items:center;height:100%;gap:40px}
.nav-brand{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--white);letter-spacing:.15em;text-transform:uppercase;text-decoration:none}
.nav-brand:hover{text-shadow:none;color:var(--white)}
.nav-links{display:flex;gap:0;list-style:none;margin-left:auto;font-family:var(--font-mono);font-size:12px;letter-spacing:.03em;position:relative}
.nav-links>li{position:relative}
.nav-links>li>a{display:block;padding:20px 14px;color:var(--text-mid);border-bottom:2px solid transparent;transition:all .2s;text-shadow:none;text-decoration:none}
.nav-links>li>a:hover,.nav-links>li.active>a{color:var(--neon);border-bottom-color:var(--neon);text-shadow:0 0 8px rgba(57,255,20,.3)}
.nav-links>li>a .nav-arrow{display:inline-block;margin-left:4px;font-size:8px;transition:transform .2s}
.nav-links>li:hover>a .nav-arrow{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:100%;left:0;min-width:320px;background:var(--bg);border:1px solid var(--border);border-top:2px solid var(--neon);opacity:0;visibility:hidden;transform:translateY(4px);transition:all .2s;z-index:200;padding:8px 0}
.nav-links>li:hover .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown a{display:block;padding:12px 20px;color:var(--text-mid);text-decoration:none;transition:all .15s;border-left:2px solid transparent}
.nav-dropdown a:hover{color:var(--neon);background:var(--neon-dim);border-left-color:var(--neon)}
.nav-dropdown a.dd-active{color:var(--neon);border-left-color:var(--neon)}
.nav-dd-title{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text);line-height:1.3}
.nav-dd-desc{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);margin-top:2px;line-height:1.4}
.nav-tagline{font-family:var(--font-heading);font-style:italic;font-size:1.7rem;color:#fff;flex:1;text-align:center;display:none}@media(min-width:1024px){.nav-tagline{display:block}}
.nav-hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-left:auto}
.nav-hamburger span{display:block;width:20px;height:2px;background:var(--white);margin:4px 0;transition:all .3s}
.nav-mobile-overlay{display:none;position:fixed;top:var(--nav-height);left:0;right:0;bottom:0;background:var(--bg);z-index:199;overflow-y:auto;padding:24px;border-top:1px solid var(--border)}
.nav-mobile-overlay.open{display:block}
.nav-mobile-overlay .mob-section{margin-bottom:24px}
.nav-mobile-overlay .mob-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--neon);margin-bottom:12px;opacity:.7}
.nav-mobile-overlay .mob-link{display:block;padding:10px 0;color:var(--text-mid);font-family:var(--font-mono);font-size:13px;text-decoration:none;border-bottom:1px solid var(--border);transition:color .15s}
.nav-mobile-overlay .mob-link:hover,.nav-mobile-overlay .mob-link.dd-active{color:var(--neon)}
.breadcrumb{padding:16px 24px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.03em}
.breadcrumb-inner{max-width:var(--max-width);margin:0 auto}
.breadcrumb a{color:var(--text-dim)}
.breadcrumb a:hover{color:var(--neon)}
.breadcrumb .sep{margin:0 8px;opacity:.5}
.proto-header{padding:60px 24px 48px;border-bottom:1px solid var(--border)}
.proto-header-inner{max-width:var(--max-width);margin:0 auto}
.proto-id{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--neon);line-height:1;margin-bottom:12px;text-shadow:0 0 20px rgba(57,255,20,.2)}
.proto-name{font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;color:var(--white);line-height:1.15;margin-bottom:16px}
.proto-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}
.proto-group{font-family:var(--font-mono);font-size:11px;color:var(--text-mid);background:var(--bg-surface);border:1px solid var(--border);padding:4px 12px;letter-spacing:.03em}
.proto-reading{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.03em}
.proto-updated{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.03em}
.reg-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.reg-badge{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:3px 10px;letter-spacing:.05em;border-radius:2px}
.reg-sox{background:rgba(59,130,246,.15);color:#60a5fa;border:1px solid rgba(59,130,246,.3)}
.reg-euai{background:rgba(234,179,8,.15);color:#facc15;border:1px solid rgba(234,179,8,.3)}
.reg-fca{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.reg-iso{background:rgba(107,114,128,.15);color:#9ca3af;border:1px solid rgba(107,114,128,.3)}
.proto-layout{display:grid;grid-template-columns:220px 1fr;gap:0;max-width:var(--max-width);margin:0 auto}
.proto-sidebar{border-right:1px solid var(--border);padding:24px 0;position:sticky;top:var(--nav-height);height:calc(100vh - var(--nav-height));overflow-y:auto}
.proto-sidebar a{display:block;padding:6px 20px;font-family:var(--font-mono);font-size:11px;color:var(--text-dim);text-decoration:none;border-left:2px solid transparent;transition:all .15s;line-height:1.5}
.proto-sidebar a:hover,.proto-sidebar a.active{color:var(--neon);border-left-color:var(--neon);background:var(--neon-dim);text-shadow:none}
.proto-sidebar .sb-label{padding:16px 20px 6px;font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);opacity:.6}
.proto-content{padding:40px 48px 80px;min-width:0}
.proto-content h2{font-family:var(--font-heading);font-size:1.6rem;font-weight:600;color:var(--white);margin:48px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.proto-content h2:first-child{margin-top:0}
.proto-content h3{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--white);margin:32px 0 12px}
.proto-content p{font-size:1rem;color:var(--text-mid);line-height:1.85;margin-bottom:16px;max-width:720px}
.proto-content ul,.proto-content ol{margin:0 0 16px 24px;color:var(--text-mid);line-height:1.85}
.proto-content li{margin-bottom:8px;font-size:1rem}
.proto-content li strong{color:var(--text)}
.proto-content strong{color:var(--text)}
.proto-content code{font-family:var(--font-mono);font-size:.85rem;background:var(--bg-elevated);padding:2px 6px;border:1px solid var(--border);color:var(--neon)}
.proto-content table.proto-table{width:100%;border-collapse:collapse;margin:16px 0;font-family:var(--font-mono);font-size:.82rem}
.proto-content table.proto-table th{text-align:left;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--neon);font-weight:600;letter-spacing:.03em}
.proto-content table.proto-table td{padding:10px 14px;border:1px solid var(--border);color:var(--text-mid);line-height:1.6}
.proto-content table.proto-table tr:hover td{background:var(--neon-dim)}
.proto-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:64px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.proto-nav a{background:var(--bg);padding:24px;text-decoration:none;transition:background .2s}
.proto-nav a:hover{background:var(--bg-surface);text-shadow:none}
.proto-nav .pn-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}
.proto-nav .pn-title{font-family:var(--font-heading);font-size:1rem;color:var(--white);line-height:1.3}
.proto-nav .pn-id{font-family:var(--font-mono);font-size:11px;color:var(--neon);margin-bottom:2px}
.proto-nav .next{text-align:right}
.citation-box{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--neon);padding:20px 24px;margin:32px 0;position:relative}
.citation-box .cb-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--neon);margin-bottom:8px}
.citation-box .cb-text{font-family:var(--font-mono);font-size:12px;color:var(--text-mid);line-height:1.7}
.citation-box .cb-copy{position:absolute;top:16px;right:16px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);font-size:10px;padding:4px 10px;cursor:pointer;transition:all .2s}
.citation-box .cb-copy:hover{color:var(--neon);border-color:var(--neon)}
.footer{background:#000;border-top:1px solid #1a1a1a;padding:48px 0 32px}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 24px}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;margin-bottom:32px}
.footer-col-title{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:#ccc;margin-bottom:12px}
.footer-links{list-style:none}
.footer-links li{margin-bottom:6px}
.footer-links li a{font-family:var(--font-mono);font-size:.72rem;color:#ccc;transition:color .15s}
.footer-links li a:hover{color:#39FF14}
.footer-doi{font-family:var(--font-mono);font-size:.6rem;color:#ccc;line-height:1.8}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid #1a1a1a;flex-wrap:wrap;gap:12px}
.footer-copy{font-family:var(--font-mono);font-size:.65rem;color:#ccc}
.footer-copy a{color:#39FF14}
.footer-license{font-family:var(--font-mono);font-size:.6rem;color:#ccc}
@media print{.topbar,.nav,.nav-mobile-overlay,.proto-sidebar,.proto-nav,.footer,.citation-box .cb-copy{display:none}.proto-layout{grid-template-columns:1fr}.proto-content{padding:20px 0}body{background:#fff;color:#000}.proto-content h2,.proto-content h3,.proto-name,.proto-id{color:#000}.proto-content p,.proto-content li{color:#333}}
@media(max-width:900px){.proto-layout{grid-template-columns:1fr}.proto-sidebar{display:none}.proto-content{padding:24px}.footer-grid{grid-template-columns:1fr}.proto-nav{grid-template-columns:1fr}}
@media(max-width:768px){.nav-links{display:none}.nav-hamburger{display:block}}
@media(max-width:600px){.proto-id{font-size:2rem}.proto-name{font-size:1.6rem}.footer-bottom{flex-direction:column;text-align:center}}
