*{box-sizing:border-box}html,body{margin:0}
body{background:var(--cream);color:var(--ink);font-family:var(--font-sans);line-height:1.55;-webkit-font-smoothing:antialiased}
:root{--hair:rgba(18,35,62,.22);--hair2:rgba(18,35,62,.5);--mut:#44536E;--mut2:#67789A}
a{color:var(--ink)}a:hover{color:var(--ocean-700)}
.lwrap{max-width:1000px;margin:0 auto;padding:0 48px}
.lhero{padding:64px 0 26px;text-align:center}
.lkick{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-700)}
.lhero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(38px,5.8vw,68px);letter-spacing:-.04em;line-height:1.04;margin:16px 0 18px;color:var(--ink)}
.lhero .ldek{font-size:19px;line-height:1.55;color:var(--mut);max-width:640px;margin:0 auto;text-wrap:pretty}
.lhero .ldek b{color:var(--ink)}
.lcue{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut2);margin-top:34px}
.lcue .dn{display:inline-block;animation:lbob 1.6s ease-in-out infinite}
@keyframes lbob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.ltrack{height:640vh;position:relative}
.lstick{position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden}
.lrig{display:grid;grid-template-columns:auto minmax(0,400px);gap:64px;align-items:center;padding:0 48px;max-width:1020px}
.lring{width:min(52vh,430px);max-width:40vw;aspect-ratio:1}
.lring svg{width:100%;height:100%;display:block;overflow:visible}
.lnode circle.nd{fill:var(--cream);stroke:var(--ink);stroke-width:1.5;transition:fill .2s ease}
.lnode .gly{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s ease}
.lnode.done circle.nd{fill:var(--sand-100)}
.lnode.on circle.nd{fill:var(--ink)}
.lnode.on .gly{stroke:var(--cream)}
.lnlab{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;fill:var(--mut2);text-transform:uppercase}
.lnode.on .lnlab{fill:var(--ink);font-weight:700}
.ltick{stroke:var(--hair);stroke-width:1}
.ltick.maj{stroke:var(--hair2);stroke-width:1.5}
.lcard{min-width:0}
.lprog{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut2);display:flex;justify-content:space-between;gap:12px;border-bottom:1.5px solid var(--ink);padding-bottom:9px}
.lcard h2{font-family:var(--font-display);font-weight:800;font-size:31px;letter-spacing:-.03em;line-height:1.06;margin:16px 0 10px;color:var(--ink)}
.lcard .lbody{font-size:15.5px;line-height:1.6;color:var(--mut);margin:0;min-height:5.2em;text-wrap:pretty}
.lcard .lcmd{font-family:var(--font-mono);font-size:12px;line-height:1.7;background:var(--code-bg,#FCF8F0);color:var(--code-text,#2C4468);border:1px solid var(--hair);padding:12px 15px;margin-top:16px;white-space:pre;overflow-x:auto}
.lcmd .td{color:var(--code-declaration,#B0730A);font-weight:700}
.lcmd .tm{color:var(--code-modal,#C83A1E);font-weight:700}
.lcmd .to{color:var(--code-operator,#0E7C90)}
.lcmd .tr{color:var(--code-ref,#1E6FA8)}
.lcmd .ts{color:var(--code-string,#C05A28)}
.lcmd .tc{color:var(--code-comment,#1F8A6D);font-style:italic}
.lcmd .tx{color:var(--code-section,#155A8A);font-weight:700}
.lcmd .tk{color:var(--code-control,#6F4FCB);font-weight:700}
.lcmd .ok{color:var(--code-ok,#1F8A6D)}
.lcmd .no{color:var(--code-bad,#C83A1E)}
.lfade{animation:lfade .3s ease}
@keyframes lfade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.lflat{display:none;grid-template-columns:1fr 1fr;gap:14px;padding:30px 0 10px}
.lflat article{border:1.5px solid var(--ink);background:var(--sand-50);padding:18px 20px}
.lflat .fno{font-family:var(--font-mono);font-size:11px;color:var(--gold-700);letter-spacing:.1em}
.lflat h3{font-family:var(--font-display);font-size:18px;font-weight:700;margin:7px 0 6px;color:var(--ink)}
.lflat p{font-size:14px;line-height:1.6;color:var(--mut);margin:0}
.lflat code{font-family:var(--font-mono);font-size:11.5px;color:var(--ink);display:block;margin-top:9px}
html.noloop .ltrack{height:auto}html.noloop .lstick{display:none}html.noloop .lflat{display:grid}
.lsec{margin:90px 0}
.lsec>h2{font-family:var(--font-display);font-weight:700;font-size:29px;letter-spacing:-.025em;color:var(--ink);border-bottom:1.5px solid var(--ink);padding-bottom:10px;margin:0 0 26px}
.lsec .secno{font-family:var(--font-mono);font-size:12px;color:var(--gold-700);margin-right:10px;letter-spacing:.08em}
.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.fnode{flex:1 1 118px;min-width:0;border:2px solid var(--ink);background:var(--sand-50);padding:14px 14px;display:flex;flex-direction:column;justify-content:center}
.fnode .fk{font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--mut2)}
.fnode h3{font-family:var(--font-display);font-weight:800;font-size:17.5px;letter-spacing:-.02em;margin:5px 0 5px;color:var(--ink)}
.fnode p{font-size:13px;line-height:1.55;color:var(--mut);margin:0}
.fnode.dark{background:var(--ink)}
.fnode.dark h3{color:var(--cream)}.fnode.dark p{color:rgba(251,246,236,.75)}.fnode.dark .fk{color:var(--sun-500)}
.farr{flex:0 0 auto;display:grid;place-items:center;padding:0 6px;font-family:var(--font-mono);font-size:15px;color:var(--gold-700)}
.farr .fal{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--code-ok,#1F8A6D);margin-top:2px;white-space:nowrap}
.floop{flex:2 1 300px;min-width:0;border:1.5px dashed var(--gold-700);padding:22px 12px 14px;position:relative;display:flex;align-items:stretch;gap:0}
.floop>.fnode{flex:1 1 0}
.fcap{position:absolute;top:-11px;left:14px;background:var(--cream);border:1.5px solid var(--gold-700);color:var(--gold-700);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px}
.fcyc{flex:0 0 auto;display:grid;place-items:center;gap:4px;padding:0 7px;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;white-space:nowrap}
.fcyc .fd{color:var(--ink)}
.fcyc .ff{color:var(--coral-700,#C83A1E)}
.fcyc .cyc{display:block;margin:-2px 0}
.fcyc .ca{stroke:var(--ink)}
.fcyc .cb{stroke:var(--coral-700,#C83A1E)}
.floop .fpass{position:absolute;bottom:-11px;right:14px;background:var(--cream);border:1.5px solid var(--ink);color:var(--code-ok,#1F8A6D);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px}
.lnote{font-size:14.5px;color:var(--mut);margin-top:18px;max-width:64ch;line-height:1.6}
.lnote b{color:var(--ink)}
.owns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.owncol{border:1.5px solid var(--ink);background:var(--sand-50);padding:20px 24px}
.owncol h3{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;margin:0 0 12px;color:var(--gold-700)}
.owncol.no h3{color:var(--coral-700)}
.owncol ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.owncol li{font-size:14.5px;line-height:1.55;color:var(--mut);padding-left:18px;position:relative}
.owncol li::before{content:"→";position:absolute;left:0;color:var(--gold-700);font-family:var(--font-mono);font-size:12px}
.owncol.no li::before{content:"✕";color:var(--coral-600)}
.owncol li b{color:var(--ink)}
.agentblock{border:2px solid var(--ink);background:var(--ink);color:var(--cream);padding:24px 28px;margin-top:14px}
.agentblock .abk{font-family:var(--font-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--sun-500)}
.agentblock p{font-family:var(--font-mono);font-size:13px;line-height:1.75;margin:10px 0 0;color:rgba(251,246,236,.88)}
.agentblock a{color:var(--sun-500)}
.lcta{border:1.5px solid var(--ink);background:var(--sand-100);padding:28px 32px;display:flex;gap:22px 30px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:90px 0 80px}
.lcta .xh{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:-.02em;color:var(--ink);margin:0 0 5px}
.lcta p{font-size:14.5px;color:var(--mut);margin:0;max-width:480px;line-height:1.55}
.lcta .bt{display:grid;gap:10px;justify-items:stretch}
@media (max-width:980px){.flow{flex-direction:column}.flow .farr{padding:8px 0;rotate:90deg}.floop{margin:6px 0}}
@media (max-width:900px){.lrig{grid-template-columns:1fr;gap:28px;justify-items:center;text-align:left;padding:0 24px}.lring{max-width:min(46vw,300px);width:38vh}.lcard{max-width:430px}.lcard .lbody{min-height:6.4em}}
@media (max-width:640px){.lwrap{padding:0 20px}.lhero{padding:44px 0 20px}.owns,.lflat{grid-template-columns:1fr}.flow{flex-direction:column}.farr{padding:8px 0;rotate:90deg}.floop{flex-direction:column;gap:10px}.fcyc{padding:6px 0}.lcard h2{font-size:25px}.tstat{padding:14px 16px}.lcta{padding:22px}}
