*{box-sizing:border-box}html,body{margin:0;background:#060807}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}img,svg{display:block;max-width:100%}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.paper-doc{max-width:46em;margin:0 auto;font-size:.92em;line-height:1.6;color:#aab79c}.paper-doc.wide{max-width:60em}.paper-doc header{margin:.4em 0 2em}.paper-doc h1{background:var(--o);color:#000;font-size:1.25em;line-height:1.3;padding:.15em .45em;margin:0 0 .8em;text-transform:uppercase;font-weight:700}.paper-doc .byline{color:var(--d);font-size:.85em;margin:0}.paper-doc .abstract{border-left:.35em solid var(--g);padding:.4em 0 .4em 1em;margin:0 0 2em;color:var(--g)}.paper-doc h2{color:var(--o);font-size:1em;margin:2.2em 0 .6em;text-transform:uppercase;font-weight:700;letter-spacing:.03em}.paper-doc h2:before{content:"▶ "}.paper-doc p{margin:0 0 1em;max-width:none}.paper-doc b,.paper-doc strong{color:var(--w)}.paper-doc a{color:var(--g);text-decoration:underline;text-underline-offset:.2em}.paper-doc .eq{text-align:center;color:var(--w);font-size:1.15em;margin:1.2em 0}.paper-doc .fig{display:block;width:100%;max-width:640px;margin:1.6em auto;color:var(--g);font-family:inherit}.paper-doc .fig text{fill:var(--g)}.paper-doc .ptable{border-collapse:collapse;margin:1.2em 0;font-size:.85em;width:100%}.paper-doc .ptable th,.paper-doc .ptable td{border-bottom:1px solid #2a312b;padding:.4em .8em .4em 0;text-align:left;vertical-align:top}.paper-doc .ptable th{color:var(--d);font-weight:700}.paper-doc .ptable td{color:var(--w)}.paper-doc .ptable.files{font-size:.75em}.paper-doc .code{background:#0b0f0c;border-left:.35em solid var(--d);padding:.8em 1em;font-size:.8em;color:var(--g);white-space:pre-wrap;overflow-wrap:anywhere;margin:1em 0}.paper-doc .mono{font-size:.85em;overflow-wrap:anywhere;color:var(--w)}.paper-doc .refs{font-size:.85em;padding-left:1.6em}.paper-doc .refs li{margin-bottom:.3em}.paper-doc .warn{background:var(--o);color:#000;padding:.5em .8em}.paper-links{display:flex;gap:0 1.4em;flex-wrap:wrap;margin:0 0 1em;font-size:.85em}.tt .paper-links a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--g);text-decoration:underline;text-decoration-color:var(--d);text-underline-offset:.3em}.pbtn{font:inherit;text-transform:uppercase;background:var(--g);color:#000;border:0;padding:.5em .9em;min-height:44px;cursor:pointer}.pbtn:disabled{opacity:.5;cursor:progress}@media print{.tt-head,.tt-ticker,.tt-fast,.paper-links{display:none!important}.tt{background:#fff!important;color:#000!important}.tt:after{display:none}.paper-doc,.paper-doc *{color:#000!important;background:none!important}}@font-face{font-family:OFFLINE TT;src:url(/assets/tt-bold-uZsmlkyU.woff2) format("woff2");font-weight:700;font-display:block}.tt{--bg: #060807;--g: #c4d2b2;--w: #eef3e6;--o: #ff4f00;--d: #6e7865;--line: #222823;--edge: 3vw;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--g);font-family:OFFLINE TT,DejaVu Sans Mono,ui-monospace,monospace;font-weight:700;font-size:clamp(14px,1.45vw,22px);line-height:1.55;position:relative;overflow-x:clip}.tt>*{min-width:0}body:has(.tt){background:#060807}.tt:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px)}.tt a{color:inherit;text-decoration:none}.tt button{font:inherit;cursor:pointer}.tt :focus-visible{outline:2px solid var(--o);outline-offset:2px}.tt .o{color:var(--o)}.tt .g{color:var(--g)}.tt .w{color:var(--w)}.tt .d{color:var(--d)}.tt .dd{color:#2f362f}.tt .dg{color:#6f8a5c}.tt .do{color:#963004}.tt p{margin:0 0 .9em;max-width:46em}.tt-head{display:flex;gap:1.2em;align-items:center;padding:.9em var(--edge) .5em;white-space:nowrap;position:sticky;top:0;z-index:6;background:var(--bg)}.tt-head .pno{position:relative;flex:none;background:var(--o);color:#000;padding:0 .35em;min-width:4.2em;text-align:center}.tt-head .pno:after{content:"";position:absolute;inset:-.7em -.4em}.tt a.pno{color:#000}.tt-head .svc{flex:none}.tt-head .title{flex:0 1 auto;min-width:0;margin:0;font:inherit;color:var(--w);overflow:hidden;text-overflow:ellipsis}.tt-head .right{margin-left:auto;flex:none;display:flex;gap:1.2em}.tt-site{display:flex;gap:.4em;padding:.1em var(--edge) .7em}.tt-site a{display:grid;align-content:center;min-height:44px;min-width:8.5em;padding:.2em .9em;border:1px solid #39423a;color:var(--g);line-height:1.25}.tt-site a b{font-weight:700;font-size:.85em;letter-spacing:.04em}.tt-site a span{font-size:.62em;letter-spacing:.06em;color:var(--d)}@media(hover:hover){.tt-site a:hover{border-color:var(--g)}}.tt-site a[aria-current=page]{background:var(--g);border-color:var(--g);color:#000}.tt-site a[aria-current=page] span{color:#000}.tt-page{flex:1 0 auto;padding:1.2em var(--edge) 2em;position:relative}.searching{padding-top:2em;letter-spacing:.08em}.tt-page .r{animation:tt-paint 1ms steps(1,end) both;animation-delay:calc(min(var(--i, 0),12)*30ms)}@keyframes tt-paint{0%{visibility:hidden}to{visibility:visible}}.flash{animation:tt-flash 1s steps(1,end) infinite}.flash-slow{animation:tt-flash 2.2s steps(1,end) infinite}@keyframes tt-flash{50%{visibility:hidden}}.cursor{animation:tt-flash 1s steps(1,end) infinite;margin-left:.2em;color:var(--g)}.glitch{transform:translate(.6em);color:var(--o)!important;clip-path:inset(0 0 35% 0)}.blocks{container-type:inline-size;margin:0 0 .8em}.blocks pre{margin:0;font-family:inherit;font-weight:700;line-height:1;white-space:pre;font-size:min(11px,calc(100cqw / (var(--cols) * .61)))}.blocks.g pre{color:var(--g)}.blocks.o pre{color:var(--o)}canvas.mos{display:block;width:100%;image-rendering:pixelated}.p100{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:4vw;align-items:start}.p100 .lede{color:var(--g);max-width:40em;margin:1.1em 0 .4em}.p100 .lede2{color:#aab79c;font-size:.82em;margin-bottom:1.1em}.p100 .side{padding-top:.4em}.p100 .side canvas{max-width:360px;margin-left:auto}.cap{text-align:right;font-size:.7em;margin-top:.6em}.tt .hint{font-size:.75em;margin-top:1.6em}.tt .grp{margin:1.8em 0 .2em;font:inherit;font-size:.8em;letter-spacing:.08em;color:var(--o)}.tt .grp:before{content:"▶ "}.tt-index{display:grid;max-width:46em;margin-top:.4em}.go{display:flex;justify-content:space-between;align-items:center;gap:1em;padding:.45em .3em;margin:0 -.3em;min-height:48px;border-bottom:1px solid #141a15}.go .tx{display:grid;gap:.1em 1.2em;min-width:0;flex:1}.go b{font-weight:700;color:var(--w)}.go .ds{color:#aab79c;font-size:.8em;line-height:1.4}.go .pn{flex:none;color:var(--o);font-size:.85em}.go .ic{flex:none;width:1.3em;text-align:center;color:var(--o);font-size:1.15em;line-height:1}.go:focus-visible{background:var(--g);color:#000}.go:focus-visible *{color:#000}@media(hover:hover){.go:hover{background:var(--g);color:#000}.go:hover *{color:#000}}.go.primary{margin:.5em 0 .6em;padding:.7em .9em;min-height:60px;border-bottom:0;background:var(--o);color:#000}.go.primary *{color:#000}.go.primary b{font-size:1.2em}.go.primary .pn{font-size:1em}.go.primary:focus-visible{background:var(--w)}@media(hover:hover){.go.primary:hover{background:var(--w)}}.pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2em;max-width:46em;margin-top:2em;border-top:1px solid var(--line)}.tt-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:4vw;align-items:start}.tt-split canvas{max-width:380px;margin:0 auto}.small{font-size:.72em}.sub{position:relative;float:right;margin-left:1em;background:var(--d);color:#000;border:0;padding:0 .4em;font-size:.8em}.sub:after{content:"";position:absolute;inset:-.8em -.7em}.steps{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:.6em}.steps li{display:grid;grid-template-columns:2em 1fr;gap:.6em;cursor:pointer;color:var(--g)}.steps li .num{text-align:center;color:var(--d);border:1px solid var(--line);height:1.55em}.steps li.on{color:var(--w)}.steps li.on .num{background:var(--o);color:#000;border-color:var(--o)}.steps li .desc{display:block;color:#aab79c;font-size:.82em;margin-top:.2em}.hops{container-type:inline-size;border:1px solid var(--line);padding:1em}.hops pre{margin:0 0 .8em;font-family:inherit;line-height:1.1;font-size:min(1em,calc(100cqw / (46 * .61)));white-space:pre}.hops p{font-size:.72em;margin:0}.radar{container-type:inline-size;border:1px solid var(--line);padding:1em}.radar pre{margin:0 0 .8em;font-family:inherit;line-height:1.05;font-size:min(1em,calc(100cqw / (41 * .61)));white-space:pre}.radar p{font-size:.72em;margin:0}.kicker{font-size:.8em;letter-spacing:.06em;margin-bottom:1.2em!important}.steps.static li{cursor:default;color:var(--w)}.steps.static li .num{background:var(--o);color:#000;border-color:var(--o)}.codebox,.codebox .cap{text-align:center}.codebox .cap{max-width:none}.phonecode{display:block;margin:0 auto;max-width:100%;image-rendering:pixelated}.tbl{display:grid;gap:.2em}.tbl .tr{display:grid;grid-template-columns:13em 8.5em 1fr;gap:1em;align-items:baseline;padding:.15em 0;border-bottom:1px solid var(--line)}.tbl.kv .tr{grid-template-columns:11em 1fr}.tbl.tools .tr{grid-template-columns:12.5em 11em 8em 1fr;padding:.35em 0}.tbl.tools .threat{font-size:.78em}.tbl.tools .tool{display:inline-block;padding:.75em 0;margin:-.75em 0;text-decoration:underline;text-decoration-color:var(--d);text-underline-offset:.25em}@media(hover:hover){.tbl.tools .tool:hover{text-decoration-color:var(--o)}}.tbl.tools .tool .pn{display:inline-block;color:var(--o);font-size:.78em}.badge{font-size:.78em;padding:0 .4em;justify-self:start}.badge.live{background:var(--g);color:#000}.badge.radio{background:var(--o);color:#000}.badge.later{border:1px solid var(--d);color:var(--d)}.ca{overflow-wrap:anywhere}.reveal{background:var(--o);color:#000;border:0;padding:0 .5em;min-height:44px;justify-self:start}.tt-spec{margin:0 0 1em;display:grid;gap:.5em}.tt-spec div{display:grid;gap:.1em}.tt-spec dd{margin:0;color:#aab79c;font-size:.85em}.shotwrap{max-width:880px;margin-bottom:.8em}.shotwrap canvas{width:100%}.shotwrap:has(.tall){max-width:min(560px,52vh)}.eq{font-family:inherit;font-size:1.4em;color:var(--w);margin:.4em 0}.tt-ticker{background:var(--o);color:#000;overflow:hidden;white-space:nowrap;padding:.3em 0}.tt-ticker .track{display:inline-flex;animation:tt-marquee 48s linear infinite}@keyframes tt-marquee{to{transform:translate(-50%)}}.tt-bar{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(var(--n, 4),minmax(0,11em));gap:.4em;padding:.5em var(--edge) calc(.6em + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid #1b211c}.tt-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:.25em .2em;border:1px solid currentColor;color:var(--g);text-align:center;line-height:1.15}.tt-bar a b{font-weight:700;font-size:.82em;letter-spacing:.03em}.tt-bar a .n{font-size:.62em;margin-top:.2em;opacity:.7}@media(hover:hover){.tt-bar a:hover{background:#121813}}.tt-bar a:active{background:#121813}.tt-bar a.hot{color:var(--o)}.tt-bar a[aria-current=page]{background:var(--g);border-color:var(--g);color:#000}.tt-bar a[aria-current=page] .n{opacity:1}.android{border:1px solid var(--line);padding:.9em 1em 1em;margin-top:1.2em;max-width:46em}.android p{margin-bottom:.6em}.tt .way{margin:0 0 .5em;font:inherit;color:var(--w)}.tt .way .o{display:inline-block;min-width:1.6em;margin-right:.4em;background:var(--o);color:#000;text-align:center}.android .status{font-size:.82em;color:#aab79c;margin:.6em 0 0}.android .status b{color:var(--o)}.android .steps{margin:.9em 0 .8em}.android a:not(.go):not(.dlbtn){text-decoration:underline;text-underline-offset:.2em;color:var(--g)}.dlbtn{display:flex;justify-content:space-between;align-items:center;gap:.3em 1em;flex-wrap:wrap;background:var(--o);color:#000!important;padding:.7em .9em;min-height:56px;margin:.8em 0}.dlbtn:focus-visible{background:var(--w)}@media(hover:hover){.dlbtn:hover{background:var(--w)}}.dlbtn span{font-size:.75em}.install{margin:.4em 0 .6em 1.6em;padding:0}.tt a.linkish{color:var(--o);text-decoration:underline;text-underline-offset:.2em}@media(hover:none){.hide-touch{display:none}}@media(min-width:821px){.go .tx{grid-template-columns:12em minmax(0,1fr);align-items:baseline}.go .tx b:only-child,.go.primary .tx>*{grid-column:1 / -1}}@media(max-width:820px){.tt{font-size:15px;--edge: 16px}.tt-head{padding:.8em var(--edge) .5em;gap:.8em}.tt-head .right{gap:.7em}.tt-head .pno{min-width:3.8em}.tt-head .clock{font-size:.9em}.tt-site{gap:.3em}.tt-site a{flex:1;min-width:0;padding:.2em .6em}.tt-page{padding:1em var(--edge) 1.6em}.hide-sm{display:none}.p100,.tt-split{grid-template-columns:1fr;gap:1.6em}.p100 .side canvas{margin:0 auto;max-width:300px}.cap{text-align:center}.pager{grid-template-columns:1fr}.tt-index,.pager,.android{max-width:none}.tbl .tr,.tbl.tools .tr{grid-template-columns:1fr auto}.tbl.tools .threat:empty{display:none}.tbl.tools .threat{grid-column:1 / -1}.tbl.tools .tr>:nth-child(3){grid-column:auto;font-size:.78em}.tbl.tools .tr>:nth-child(4){grid-column:1 / -1;font-size:.85em}.tbl .tr>:nth-child(3){grid-column:1 / -1;font-size:.85em}.tbl.kv .tr{grid-template-columns:1fr;gap:0}.tt-bar{grid-template-columns:repeat(var(--n, 4),minmax(0,1fr));gap:.3em}.tt-bar a b{font-size:.76em;letter-spacing:0}}@media(max-width:520px){.tt-head .svc{display:none}}@media(max-width:400px){.tt-head .clock .sec{display:none}}@media(max-width:350px){.tt-head{font-size:.88em;gap:.6em}.tt-head .right{gap:.6em}}@media(prefers-reduced-motion:reduce){.tt-page .r,.flash,.flash-slow,.cursor,.tt-ticker .track{animation:none!important}}@media print{.tt-site,.tt-bar{display:none!important}}
