
:root{color-scheme:dark;--accent:#9573FF;--accent-2:#AB90FF;--soft:#292A44;--bg:#151A21;--surface:#1B222C;--sunken:#232B37;--ink:#F1F3F6;--muted:#98A2AF;--line:#69727F;--ok:#2BB673}
html.light{color-scheme:light;--accent:#2D8CFF;--accent-2:#1B78EB;--soft:#E7F1FF;--bg:#F2F4F7;--surface:#FFFFFF;--sunken:#E7F1FF;--ink:#16191F;--muted:#5C6470;--line:#949CA8;--ok:#2BB673}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:inherit}
.brand{text-decoration:none;color:var(--ink)}
code,.mono{font-family:"JetBrains Mono",ui-monospace,monospace}
code{font-size:.86em;overflow-wrap:anywhere}
button,.btn{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{border-color:var(--accent)}
header{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 32px}
.brand{font-weight:600;letter-spacing:.06em}
.brand span{font-weight:400;letter-spacing:0;color:var(--muted);font-size:13px}
.header-actions{display:flex;gap:8px}
.layout{max-width:1520px;margin:auto;display:grid;grid-template-columns:260px minmax(0,1fr)}
nav{position:sticky;top:69px;height:calc(100vh - 69px);overflow:auto;padding:24px 16px}
nav a{display:flex;gap:10px;text-decoration:none;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--muted);line-height:1.4}
nav a:hover{background:var(--soft);color:var(--ink)}
nav a span{flex:0 0 22px;font:12px "JetBrains Mono",ui-monospace,monospace;color:var(--accent);padding-top:1px}
main{min-width:0;padding:40px 40px 80px}
.intro{padding:8px 0 40px;max-width:860px}
.eyebrow{font:12px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1{font-size:clamp(32px,5vw,58px);line-height:1.08;letter-spacing:-.035em;font-weight:500;margin:18px 0}
h2{font-size:clamp(23px,3vw,34px);font-weight:500;line-height:1.2;letter-spacing:-.02em;margin:10px 0 8px}
.lede{color:var(--muted);margin:0 0 8px;max-width:760px}
.intro p{color:var(--muted);max-width:640px;font-size:18px}
.section{padding:44px 0;border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.section-id{font:13px "JetBrains Mono",ui-monospace,monospace;color:var(--accent)}
.section-name{font-size:13px;color:var(--muted)}
.note{font-size:13.5px;color:var(--muted);margin:16px 0 0;max-width:900px}
.note b{color:var(--ink);font-weight:500}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--muted);margin:18px 0 0}
.legend>span{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--line);background:var(--surface)}
.sw.dev{border-color:var(--accent)}
.sw.alt{border-style:dashed}

/* nodes, cards, grids */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;margin:20px 0}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.node{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);min-width:0;overflow-wrap:anywhere}
.node strong{font-weight:500;display:block}
.node small,.node>span{display:block;margin-top:4px;color:var(--muted);font-size:13.5px;line-height:1.45}
.node.dev{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.node.ext{border-style:dashed}
.node.big strong{font-size:28px;font-weight:500;letter-spacing:-.02em}
.zone{border:1px solid var(--line);border-radius:16px;padding:18px;margin:0;min-width:0}
.zone.dev{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.zone-label{font:11.5px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.zone .grid{margin:0}
.callout{border-left:3px solid var(--accent);background:var(--soft);border-radius:0 12px 12px 0;padding:14px 18px;margin:20px 0}
.callout strong{display:block;font-weight:500}
.callout span{color:var(--muted);font-size:14px}
ul.clean{list-style:none;margin:0;padding:0}
ul.clean li{display:flex;gap:8px;align-items:flex-start;padding:5px 0;font-size:14.5px}
ul.clean li svg{flex:0 0 auto;margin-top:4px}

/* icons */
.ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px}
.c-ok{color:var(--ok)}.c-acc{color:var(--accent)}.c-ink{color:var(--ink)}.c-mut{color:var(--muted)}

/* vertical flow with arrows */
.vflow{display:flex;flex-direction:column;align-items:stretch;margin:0;min-width:0}
.vflow>.node,.vflow>.grid,.vflow>.zone{margin:0}
.varr{display:flex;align-items:center;gap:10px;min-height:46px;padding-left:calc(50% - 1px);position:relative;font:11.5px "JetBrains Mono",ui-monospace,monospace;color:var(--muted)}
.varr:before{content:"";position:absolute;left:50%;top:4px;bottom:9px;border-left:1.5px solid var(--ink);transform:translateX(-.75px)}
.varr:after{content:"";position:absolute;left:50%;bottom:3px;transform:translateX(-5px);border:5px solid transparent;border-top:7px solid var(--ink);border-bottom:0}
.varr.both:before{top:11px}
.varr.both>i{position:absolute;left:50%;top:3px;transform:translateX(-5px);border:5px solid transparent;border-bottom:7px solid var(--ink);border-top:0}
.varr span{padding-left:14px;line-height:1.35}
.varr.dash:before{border-left-style:dashed}

/* horizontal pipeline (vertical on narrow screens) */
.pipe{display:flex;align-items:stretch;margin:20px 0;min-width:0}
.pipe>.node{flex:1 1 0}
.harr{flex:0 0 74px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:0 4px;font:10.5px "JetBrains Mono",ui-monospace,monospace;color:var(--muted);text-align:center;line-height:1.3}
.harr i{display:block;width:100%;border-top:1.5px solid var(--ink);position:relative}
.harr i:after{content:"";position:absolute;right:-1px;top:-6px;border:5px solid transparent;border-left:8px solid var(--ink);border-right:0}
.harr.both i:before{content:"";position:absolute;left:-1px;top:-6px;border:5px solid transparent;border-right:8px solid var(--ink);border-left:0}
.harr.dash i{border-top-style:dashed}
@media(max-width:760px){
 .pipe{flex-direction:column}
 .harr{flex:0 0 auto;flex-direction:row;min-height:44px;justify-content:flex-start;padding-left:calc(50% - 1px);position:relative;text-align:left}
 .harr i{position:absolute;left:50%;top:4px;bottom:4px;width:0;border-top:0;border-left:1.5px solid var(--ink)}
 .harr.dash i{border-left-style:dashed}
 .harr i:after{right:auto;top:auto;bottom:-1px;left:-6px;border:5px solid transparent;border-top:8px solid var(--ink);border-bottom:0}
 .harr.both i:before{left:-6px;top:-1px;border:5px solid transparent;border-bottom:8px solid var(--ink);border-top:0}
 .harr span{padding-left:14px}
}

/* sequence diagram */
.seq{position:relative;margin:24px 0 8px;padding-bottom:6px}
.seq-head,.seq-row{display:grid;position:relative}
.seq-row{margin-top:10px}
.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.n4{grid-template-columns:repeat(4,minmax(0,1fr))}.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
.seq .life{position:absolute;top:18px;bottom:0;border-left:1.5px dashed var(--line);opacity:.8}
.seq .lane{text-align:center;padding:0 3px 8px;z-index:1;min-width:0}
.seq .lane b{display:inline-block;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 10px;font-weight:500;font-size:13px;line-height:1.3;max-width:100%;overflow-wrap:break-word}
.seq .lane.dev b{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.seq .lane.ext b{border-style:dashed}
.seq .act{z-index:1;margin:0 5px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;font-size:13.5px;text-align:center;line-height:1.4;min-width:0;overflow-wrap:break-word}
.seq .act.dev{border-color:var(--accent)}
.seq .act strong{font-weight:500}
.seq .act small{display:block;color:var(--muted);font-size:12.5px}
.seq .msg{z-index:1;min-width:0;align-self:end}
.seq .lbl{text-align:center;font-size:13.5px;line-height:1.35;padding:0 4px 5px}
.seq .lbl>span,.seq .lbl small{background:var(--bg);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 4px}
.seq .lbl small{display:inline;color:var(--muted);font-size:12px}
.seq .lbl small:before{content:"";display:block}
.seq .ln{position:relative;border-top:1.5px solid var(--ink)}
.k2 .ln{margin:0 25%}.k3 .ln{margin:0 16.667%}.k4 .ln{margin:0 12.5%}
.seq .msg.dash .ln{border-top-style:dashed}
.seq .msg.r .ln:after,.seq .msg.both .ln:after{content:"";position:absolute;right:-2px;top:-6px;border:5px solid transparent;border-left:9px solid var(--ink);border-right:0}
.seq .msg.l .ln:after,.seq .msg.both .ln:before{content:"";position:absolute;left:-2px;top:-6px;border:5px solid transparent;border-right:9px solid var(--ink);border-left:0}
.seq .num{font:11px "JetBrains Mono",ui-monospace,monospace;color:var(--accent);margin-right:4px}
.seq .full{grid-column:1/-1;z-index:1}
.seq .seq-row.full{display:block}
.seq .note-row{background:var(--soft);border-radius:10px;padding:10px 14px;font-size:13.5px;color:var(--ink)}
.seq .alt-row{border-top:1.5px dashed var(--line);margin-top:6px;padding-top:6px;font:11.5px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.seq .alt-row span{background:var(--bg);padding-right:8px}

/* nested layers */
.layers{margin:24px 0}
.layer{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:var(--surface)}
.layer .layer{margin-top:14px;background:var(--sunken)}
.layer .layer .layer{background:var(--surface);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.layer-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font:12px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.layer-h b{font-weight:500;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{border:1px solid var(--line);border-radius:999px;padding:3px 11px;font:12.5px "JetBrains Mono",ui-monospace,monospace;background:var(--bg)}

/* key tree */
.branch{position:relative;display:grid;gap:12px;padding-top:26px;margin-top:0}
.branch:before{content:"";position:absolute;top:12px;border-top:1.5px solid var(--ink)}
.branch.n4:before{left:12.5%;right:12.5%}.branch.n5:before{left:10%;right:10%}
.branch>.node{position:relative}
.branch>.node:before{content:"";position:absolute;top:-14px;left:50%;height:14px;border-left:1.5px solid var(--ink)}
.trunk{height:14px;width:0;border-left:1.5px solid var(--ink);margin:0 auto}
@media(max-width:760px){
 .branch{grid-template-columns:1fr;padding:0 0 0 22px}
 .branch:before{top:-6px;bottom:24px;left:6px;right:auto;border-top:0;border-left:1.5px solid var(--ink)}
 .branch>.node:before{top:22px;left:-16px;width:16px;height:0;border-left:0;border-top:1.5px solid var(--ink)}
 .trunk{margin:0 0 0 6px}
}

/* architecture map */
.arch{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:18px;margin:24px 0;align-items:start}
.arch .main{grid-column:2;grid-row:1/3}
.arch .side-l{grid-column:1;grid-row:1}
.arch .side-r{grid-column:3;grid-row:1}
@media(max-width:1060px){.arch{grid-template-columns:1fr}.arch .main,.arch .side-l,.arch .side-r{grid-column:1;grid-row:auto}}

/* tables */
.table-wrap{border:1px solid var(--line);border-radius:12px;margin:22px 0;overflow:hidden}
table{border-collapse:collapse;width:100%;font-size:14px}
th{text-align:left;font-weight:500;background:var(--soft);font-size:13px}
th,td{padding:12px 14px;vertical-align:top;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
td:first-child{font-weight:500}
td:not(:first-child){color:var(--muted)}
@media(max-width:720px){
 .rt thead{display:none}
 .rt tr{display:block;border-bottom:1px solid var(--line);padding:10px 14px}
 .rt tr:last-child{border-bottom:0}
 .rt td{display:block;border:0;padding:3px 0}
 .rt td:first-child{font-size:15px;padding-bottom:4px}
 .rt td:not(:first-child):before{content:attr(data-label);display:block;font:11px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);opacity:.85}
 .rt td:not(:first-child){color:var(--ink)}
}

/* visibility matrix */
.mx td,.mx th{padding:10px 10px;font-size:12.5px}
.mx td:not(:first-child){color:var(--ink)}
.cell{display:flex;gap:6px;align-items:flex-start;line-height:1.35}
.cell svg{flex:0 0 auto;margin-top:1px}
.cell.vis{font-weight:500}
.cell.unk,.cell.unk svg{color:var(--muted)}
.mx-cards{display:none}
.mx-cards details{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:10px 0}
.mx-cards summary{cursor:pointer;padding:12px 14px;font-weight:500;display:flex;justify-content:space-between;gap:10px}
.mx-cards summary small{color:var(--muted);font-weight:400;font-size:12px}
.mx-cards dl{margin:0;padding:0 14px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;font-size:13.5px}
.mx-cards dt{color:var(--muted)}
@media(max-width:900px){.mx-table{display:none}.mx-cards{display:block}}

/* retention chart */
.axis{font:12px "JetBrains Mono",ui-monospace,monospace;color:var(--muted);padding:12px 0 0}
.bar-row{display:grid;grid-template-columns:190px minmax(0,1fr) 150px;align-items:center;gap:14px;margin:12px 0;font-size:13.5px}
.bar-row b{font-weight:400;color:var(--muted);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
.track{height:12px;background:var(--soft);border-radius:8px;overflow:hidden}
.track i{display:block;height:100%;background:var(--accent);border-radius:8px;min-width:4px}
@media(max-width:620px){.bar-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.bar-row .track{grid-column:1/-1;grid-row:2}}

/* hero */
.hero{margin:28px 0 8px;width:100%;max-width:720px;color:var(--muted)}
.hero svg{display:block;width:100%}
.cipher{fill:var(--accent)}
.hero-labels{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:13px;color:var(--muted)}
.hero-labels strong{display:block;color:var(--ink);font-weight:500}
footer{border-top:1px solid var(--line);padding-top:24px;color:var(--muted);font-size:13px}

.only-section .layout{display:block}
.only-section main{max-width:1180px;margin:auto}
.only-section .section{border:0;padding-top:12px}

@media(max-width:900px){
 .layout{display:block}
 nav{position:relative;top:0;height:auto;max-height:200px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}
 main{padding:28px 22px}
 header{padding:12px 22px}
}
@media(max-width:480px){
 header{padding:10px 16px}
 .brand span{display:none}
 button,.btn{padding:7px 10px;font-size:12.5px}
 main{padding:24px 16px}
 nav{grid-template-columns:1fr}
 .zone{padding:14px}
 .node{padding:12px 13px}
 .seq{row-gap:8px}
 .seq .lane b{font-size:11.5px;padding:5px 6px}
 .seq .act{font-size:12.5px;padding:7px 7px;margin:0 3px}
 .seq .act small{font-size:11.5px}
 .seq .lbl{font-size:12.5px}
 .seq .lbl small{font-size:11px}
 .section{padding:34px 0}
 .hero-labels{font-size:11px}
}
@media print{
 header,nav{display:none}
 .layout{display:block}
 main{padding:0}
 .section{break-before:page}
 .mx-table{display:block}.mx-cards{display:none}
 .node,.zone,.layer,.act{break-inside:avoid}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.l2-0{left:25.000%}
.l2-1{left:75.000%}
.l3-0{left:16.667%}
.l3-1{left:50.000%}
.l3-2{left:83.333%}
.l4-0{left:12.500%}
.l4-1{left:37.500%}
.l4-2{left:62.500%}
.l4-3{left:87.500%}
.c1-2{grid-column:1/2}
.c1-3{grid-column:1/3}
.c1-4{grid-column:1/4}
.c1-5{grid-column:1/5}
.c1-6{grid-column:1/6}
.c2-3{grid-column:2/3}
.c2-4{grid-column:2/4}
.c2-5{grid-column:2/5}
.c2-6{grid-column:2/6}
.c3-4{grid-column:3/4}
.c3-5{grid-column:3/5}
.c3-6{grid-column:3/6}
.c4-5{grid-column:4/5}
.c4-6{grid-column:4/6}
.c5-6{grid-column:5/6}
@media(max-width:480px){.seq .m1-2{grid-column:1/2}.seq .m1-3{grid-column:1/3}.seq .m1-4{grid-column:1/4}.seq .m1-5{grid-column:1/5}.seq .m1-6{grid-column:1/6}.seq .m2-3{grid-column:2/3}.seq .m2-4{grid-column:2/4}.seq .m2-5{grid-column:2/5}.seq .m2-6{grid-column:2/6}.seq .m3-4{grid-column:3/4}.seq .m3-5{grid-column:3/5}.seq .m3-6{grid-column:3/6}.seq .m4-5{grid-column:4/5}.seq .m4-6{grid-column:4/6}.seq .m5-6{grid-column:5/6}}
.w0{width:0%}
.w1{width:1%}
.w2{width:2%}
.w3{width:3%}
.w4{width:4%}
.w5{width:5%}
.w6{width:6%}
.w7{width:7%}
.w8{width:8%}
.w9{width:9%}
.w10{width:10%}
.w11{width:11%}
.w12{width:12%}
.w13{width:13%}
.w14{width:14%}
.w15{width:15%}
.w16{width:16%}
.w17{width:17%}
.w18{width:18%}
.w19{width:19%}
.w20{width:20%}
.w21{width:21%}
.w22{width:22%}
.w23{width:23%}
.w24{width:24%}
.w25{width:25%}
.w26{width:26%}
.w27{width:27%}
.w28{width:28%}
.w29{width:29%}
.w30{width:30%}
.w31{width:31%}
.w32{width:32%}
.w33{width:33%}
.w34{width:34%}
.w35{width:35%}
.w36{width:36%}
.w37{width:37%}
.w38{width:38%}
.w39{width:39%}
.w40{width:40%}
.w41{width:41%}
.w42{width:42%}
.w43{width:43%}
.w44{width:44%}
.w45{width:45%}
.w46{width:46%}
.w47{width:47%}
.w48{width:48%}
.w49{width:49%}
.w50{width:50%}
.w51{width:51%}
.w52{width:52%}
.w53{width:53%}
.w54{width:54%}
.w55{width:55%}
.w56{width:56%}
.w57{width:57%}
.w58{width:58%}
.w59{width:59%}
.w60{width:60%}
.w61{width:61%}
.w62{width:62%}
.w63{width:63%}
.w64{width:64%}
.w65{width:65%}
.w66{width:66%}
.w67{width:67%}
.w68{width:68%}
.w69{width:69%}
.w70{width:70%}
.w71{width:71%}
.w72{width:72%}
.w73{width:73%}
.w74{width:74%}
.w75{width:75%}
.w76{width:76%}
.w77{width:77%}
.w78{width:78%}
.w79{width:79%}
.w80{width:80%}
.w81{width:81%}
.w82{width:82%}
.w83{width:83%}
.w84{width:84%}
.w85{width:85%}
.w86{width:86%}
.w87{width:87%}
.w88{width:88%}
.w89{width:89%}
.w90{width:90%}
.w91{width:91%}
.w92{width:92%}
.w93{width:93%}
.w94{width:94%}
.w95{width:95%}
.w96{width:96%}
.w97{width:97%}
.w98{width:98%}
.w99{width:99%}
.w100{width:100%}
.sprite{position:absolute;width:0;height:0;overflow:hidden}.gap16{height:16px}.chain{max-width:560px;margin:0 auto}.mx-table{overflow-x:auto}.mx-cards dd{margin:0}