:root{color-scheme:dark;font-family:Inter,Arial,sans-serif;background:#080f13;color:#edf7f4;--mint:#64ddbc;--blue:#7eaee0;--amber:#e8ba74;--dim:#335760}*{box-sizing:border-box}body{margin:0}a{color:var(--mint)}button,input,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--mint);outline-offset:3px}main.epic-main{max-width:1900px;margin:auto;padding:36px 28px}h1,h2,h3,p{margin-top:0}.epic-intro{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin:15px 0 32px}.epic-intro h1{font-family:'Avenir Next',Arial,sans-serif;font-size:clamp(36px,4.5vw,64px);letter-spacing:-.04em;font-weight:500;line-height:1.06;margin:12px 0 20px}.epic-intro p{color:#a9bfc4;max-width:700px;line-height:1.6;margin-bottom:0}.eyebrow{color:#81bab5;letter-spacing:.13em;font-size:11px;text-transform:uppercase}.epic-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:13px}.epic-links a{padding:11px 14px;border:1px solid #37555c;text-decoration:none;border-radius:4px}.epic-links a:hover{background:#183238}.epic-ribbon{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid #2d4850;padding:22px 0;margin-bottom:28px;gap:18px}.epic-ribbon strong{font:32px 'Avenir Next',Arial,sans-serif;color:#eaf6f4;display:block}.epic-ribbon span{display:block;color:#9cb5bd;font-size:12px;margin-top:5px}.epic-map{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.epic-toolbar{display:flex;gap:14px;align-items:end;margin-bottom:18px;flex-wrap:wrap}.epic-toolbar label{display:grid;gap:7px;font-size:12px;color:#acc2c7;flex:1;min-width:170px}.epic-toolbar input,.epic-toolbar select{width:100%;padding:12px;background:#102129;border:1px solid #39525b;color:#e9f3f2;border-radius:4px}.epic-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#a7c0c5;margin:16px 0 24px}.epic-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;background:var(--dim)}.epic-legend .tested{background:var(--mint)}.epic-legend .partial{background:var(--amber)}.epic-legend .unresolved{background:#bd8299}.operation-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.operation-group{border:1px solid #28434b;background:#0d1a21;padding:18px;border-radius:6px}.operation-group h2{font-size:17px;display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.operation-group h2 span{font:13px monospace;color:#91abb4}.operation-group p{font-size:11px;color:#7d9fa9;margin-bottom:15px}.api-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22px,1fr));gap:5px}.api-node{aspect-ratio:1;border:1px solid #456370;background:#213c48;border-radius:3px;padding:0;min-width:0;transition:background .15s,transform .15s;position:relative}.api-node.tested{background:#288a74;border-color:#76e5c7;box-shadow:0 0 7px #50d5af30}.api-node.partial{background:#98723d;border-color:#edc98d}.api-node.unresolved{background:#644457;border-color:#b48ba6}.api-node:hover,.api-node[aria-pressed=true]{background:#d2fff1;border-color:#fff;transform:scale(1.15);z-index:1}.api-node:focus-visible{z-index:2;outline-offset:2px}.api-node span{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%)}.epic-inspector{position:sticky;top:20px;background:#102129;border:1px solid #355660;border-radius:6px;padding:24px;max-height:calc(100vh - 40px);overflow:auto;scrollbar-width:thin;scrollbar-color:#426c75 #102129}.epic-inspector h2{font-size:25px;line-height:1.2;overflow-wrap:anywhere}.epic-inspector h3{font-size:13px;color:#8fd6cc;margin-top:24px}.epic-inspector p{font-size:13px;line-height:1.6;color:#b1c7cc}.epic-inspector .status{font-size:11px;color:var(--mint);text-transform:uppercase;letter-spacing:.05em}.epic-inspector code{font-size:12px;overflow-wrap:anywhere}.epic-inspector ul{padding-left:18px;font-size:13px;color:#b1c7cc;line-height:1.7}.field-list{display:grid;gap:8px}.field-list details{padding:10px;border:1px solid #35505b;border-radius:4px}.field-list summary{cursor:pointer;font:12px monospace;color:#e1f1ee}.field-list p{font-size:11px;margin:8px 0}.count{font:12px monospace;color:#9fb9c2;margin:0 0 16px}.epic-boundary{display:flex;gap:30px;margin:28px 0;border-top:1px solid #2d4850;padding:22px 0}.epic-boundary p{flex:1;font-size:12px;color:#91adb7;line-height:1.7}.epic-boundary b{color:#d6e8e8}.epic-provenance{color:#9cb9c2;font-size:12px;overflow-wrap:anywhere;line-height:1.7}.epic-provenance summary{cursor:pointer;padding:12px 0}.epic-provenance pre{white-space:pre-wrap;overflow-wrap:anywhere}.epic-read-path{margin:18px 0 32px;padding:20px;border:1px solid #2d4850;border-radius:6px;background:#0b191e}.epic-read-path h2{font-size:16px;color:#cbe6e1;margin:0 0 20px}.proof-route{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;align-items:center;gap:12px}.proof-route article{padding:17px;background:#142c32;border-left:3px solid var(--mint);min-height:94px}.proof-route b{font-size:15px;display:block;margin-bottom:7px}.proof-route span{font-size:12px;color:#9bbbc1;line-height:1.5}.proof-route .arrow{color:var(--mint);font-size:28px;text-align:center}.presentation-note{font-size:11px;color:#8ba7ae;margin:14px 0 0}@media(max-width:1100px){.epic-map{grid-template-columns:minmax(0,1fr) 290px}.operation-groups{grid-template-columns:1fr}.epic-intro{display:block}.epic-links{margin-top:20px}}@media(max-width:700px){main.epic-main{padding:24px 16px}.epic-ribbon{grid-template-columns:1fr 1fr}.epic-map{display:block}.epic-inspector{position:static;max-height:none;margin-top:24px;scroll-margin:20px}.proof-route{grid-template-columns:1fr}.proof-route .arrow{transform:rotate(90deg)}.epic-boundary{display:block}.api-grid{grid-template-columns:repeat(auto-fill,minmax(25px,1fr))}.epic-toolbar{display:grid;grid-template-columns:1fr}.epic-intro h1{font-size:40px}}@media(prefers-reduced-motion:reduce){.api-node{transition:none}}@media print{.vm-shell,.epic-toolbar,.epic-links{display:none}.epic-map{display:block}.epic-inspector{position:static;max-height:none}.operation-group{break-inside:avoid}.operation-groups{grid-template-columns:1fr 1fr}}
.epic-jump{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 24px}.epic-jump a{padding:12px 18px;border:1px solid #37555c;border-radius:4px;text-decoration:none}.ehi-section{border-top:1px solid #37555c;margin-top:48px;padding-top:40px;scroll-margin:24px}.ehi-section header h2{font-size:clamp(28px,3vw,44px);font-weight:500;letter-spacing:-.025em;margin:14px 0}.ehi-section header p{color:#a9bfc4;max-width:760px;line-height:1.6}.ehi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.ehi-table{background:#102129;border:1px solid #294851;border-radius:5px;padding:16px;min-width:0}.ehi-table summary{cursor:pointer;overflow-wrap:anywhere}.ehi-table summary b{font:13px monospace;display:block;color:#c9ebe5}.ehi-table summary span{font-size:12px;color:#8babbb;display:block;margin-top:8px}.ehi-table p{font-size:12px;line-height:1.6;overflow-wrap:anywhere;margin:14px 0 0;color:#a7c0c5}.ehi-table ul{padding:0;list-style:none;max-height:400px;overflow:auto}.ehi-table li{padding:8px 0;border-bottom:1px solid #294851;overflow-wrap:anywhere}.ehi-table code{font-size:12px}.ehi-table li span{display:block;font-size:11px;color:#8babbb;margin-top:4px}.ehi-pages{display:flex;align-items:center;justify-content:center;gap:20px;margin:24px 0}.ehi-pages button{background:#173735;color:#9be5d3;border:1px solid #487d73;border-radius:4px;padding:10px 16px}.ehi-pages button:disabled{opacity:.4;cursor:default}.ehi-pages span{font-size:12px;color:#a7c0c5}@media(max-width:1000px){.ehi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ehi-grid{grid-template-columns:1fr}.epic-jump a{padding:10px;font-size:12px}}

.api-node.tested{animation:evidencePulse 3s ease-in-out infinite}.api-node.tested:nth-child(3n){animation-delay:-1s}.api-node.tested:nth-child(3n + 1){animation-delay:-2s}@keyframes evidencePulse{50%{box-shadow:0 0 12px #64ddbc90}}.proof-route .arrow{animation:routePulse 1.8s ease-in-out infinite}.proof-route .arrow:nth-of-type(2){animation-delay:.6s}@keyframes routePulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.api-node.tested,.proof-route .arrow{animation:none}}
