<div class="n-demo"><div class="n-head"><strong>RESET_STREAM_AT · PREFIX</strong><span>LIVE TRACE</span></div><div class="n-stage"><div class="psr"><div class="psr-track"><span id="psr0">0–40<br>RELIABLE</span><span id="psr1">40–80<br>OPTIONAL</span><span id="psr2">80–100<br>OPTIONAL</span></div><div class="psr-marker" id="psr-marker">Reliable Size = 40</div><div class="psr-note" id="psr-note">deliver prefix · reset tail</div></div></div><div class="n-foot">tap to step · auto replay</div></div>
.n-demo{width:min(94vw,760px);height:min(88vh,324px);padding:clamp(9px,2.2vmin,18px);border:1px solid var(--line);border-radius:13px;background:var(--surface);display:flex;flex-direction:column;gap:clamp(5px,1.3vmin,10px);font:600 clamp(12px,2.4vmin,16px)/1.3 "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;overflow:hidden}.n-head,.n-foot{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.n-head strong{color:var(--accent)}.n-head span,.n-foot{font-size:12px}.n-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;gap:clamp(4px,1vmin,10px)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.n-box{padding:clamp(5px,1.5vmin,11px);border:1px solid var(--line);border-radius:8px;background:var(--bg);text-align:center}.n-on{border-color:var(--accent)!important;color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 12%,var(--surface))!important}.n-muted{color:var(--muted)}@media(max-width:400px){.n-head span{display:none}}.psr{width:96%;display:grid;gap:12px}.psr-track{display:flex;gap:4px}.psr-track span{font-size:10px;text-align:center;border:1px solid var(--line);border-radius:6px;padding:7px 1px;background:var(--bg)}.psr-track span:first-child{width:40%}.psr-track span:nth-child(2){width:40%}.psr-track span:last-child{width:20%}.psr-marker{width:100%;font-size:12px;position:relative;padding-top:6px;white-space:nowrap}.psr-marker:before{content:"";position:absolute;top:0;left:0;width:40%;border-top:2px dashed var(--accent)}.psr-note{color:var(--muted);text-align:center;font-size:12px}.psr-track .psr-drop{opacity:.45;text-decoration:line-through}@media(min-width:500px){.psr-track span{font-size:12px}}
let step=0;function advance(){document.getElementById('psr0').classList.add('n-on');document.getElementById('psr1').classList.toggle('psr-drop',step>=1);document.getElementById('psr2').classList.toggle('psr-drop',step>=1);document.getElementById('psr-note').textContent=step===0?'send stream data':step===1?'reset at byte 40':'prefix delivered · tail abandoned';step=(step+1)%3}
const clickTarget=document.querySelector('.n-demo');if(clickTarget&&typeof advance==='function'){advance();const timer=setInterval(advance,1050);clickTarget.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})}