@import"https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=Fira+Code:wght@400;500;700&display=swap";.bt-screen{--bt-bg: #0b1510;--bt-panel: #112216;--bt-primary: #0df259;--bt-cyan: #3b82f6;--bt-danger: #fb7185;min-height:100vh;font-family:Chakra Petch,sans-serif;background:radial-gradient(circle at 85% 15%,rgba(13,242,89,.12),transparent 40%),radial-gradient(circle at 10% 80%,rgba(59,130,246,.1),transparent 42%),linear-gradient(150deg,#050a06 0%,var(--bt-bg) 100%);color:#fed}.bt-shell{max-width:1200px;margin:0 auto;padding:2.5rem 1rem 3rem}.bt-title{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.05;font-weight:700}.bt-sub{max-width:65ch;color:#ffeeddd6}.bt-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.bt-card{border-radius:1rem;border:1px solid rgba(13,242,89,.3);background:linear-gradient(155deg,#112216e6,#08100af2);padding:1rem}.bt-code,.bt-viz,.bt-state,.bt-console{grid-column:span 12}@media(min-width:1100px){.bt-code,.bt-viz,.bt-state,.bt-console{grid-column:span 6}}.bt-badge{border:1px solid rgba(13,242,89,.4);background:#0df2591f;border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-family:Fira Code,monospace}.bt-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.75rem}.bt-code-panel{background:#050a06e0;border:1px solid rgba(13,242,89,.24);border-radius:.8rem;padding:.75rem;min-height:290px}.bt-row{display:grid;grid-template-columns:2rem 1fr;gap:.8rem;border-radius:.55rem;padding:.25rem .5rem;font-family:Fira Code,monospace;font-size:.82rem;transition:all .2s ease;color:#ffeedddb}.bt-row.active{background:linear-gradient(90deg,#0df25942,#0df2590f);outline:1px solid rgba(13,242,89,.4);transform:translate(3px)}.bt-ln{color:#0df25973;text-align:right}.bt-state-item{display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(13,242,89,.24);background:#0df25912;border-radius:.65rem;padding:.62rem .7rem;font-family:Fira Code,monospace;margin-bottom:.5rem;font-size:.84rem}.bt-value{color:var(--bt-primary);font-weight:700;font-size:1.02rem}.bt-console-win{border:1px solid rgba(13,242,89,.36);border-radius:.8rem;overflow:hidden;background:#050a06e0}.bt-console-head{display:flex;justify-content:space-between;padding:.5rem .75rem;font-family:Fira Code,monospace;font-size:.72rem;background:#0df2591f;border-bottom:1px solid rgba(13,242,89,.3)}.bt-console-body{min-height:120px;padding:.75rem;font-family:Fira Code,monospace;font-size:.83rem}.bt-log{opacity:0;transform:translateY(8px);animation:bt-log-in .4s ease forwards;color:#a3f4b8}@keyframes bt-log-in{to{opacity:1;transform:translateY(0)}}.bt-copy{margin-top:.85rem;border:1px solid rgba(13,242,89,.32);background:#0df2591c;border-radius:.7rem;padding:.75rem;font-size:.95rem;line-height:1.4}.bt-controls{margin-top:.9rem;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.bt-btn{border:1px solid rgba(13,242,89,.45);background:#0df25921;color:#fed;padding:.58rem 1rem;border-radius:.7rem;font-weight:600;transition:all .2s ease;cursor:pointer}.bt-btn:hover:not(:disabled){background:#0df25942;transform:translateY(-1px);box-shadow:0 0 18px #0df2593d}.bt-btn:disabled{opacity:.4;cursor:not-allowed}.bt-track{margin-top:.8rem;height:.55rem;border-radius:999px;background:#ffeedd24;overflow:hidden}.bt-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--bt-primary),var(--bt-cyan));transition:width .25s ease}.bt-back{display:inline-block;margin-top:1.5rem;color:var(--bt-primary);text-decoration:none;border-bottom:1px dashed rgba(13,242,89,.5);font-family:monospace;font-size:.9rem}.node-g{transition:opacity .4s ease,transform .4s ease}.node-circle{transition:fill .3s ease,stroke .3s ease,filter .3s ease}.node-circle.active{fill:var(--bt-primary)!important;stroke:#fff!important;filter:drop-shadow(0 0 8px var(--bt-primary))}.node-circle.printing{fill:var(--bt-cyan)!important;stroke:#fff!important;filter:drop-shadow(0 0 8px var(--bt-cyan))}.edge-line{transition:opacity .4s ease,stroke-dashoffset .6s ease;stroke-dasharray:100;stroke-dashoffset:100}.edge-line.visible{stroke-dashoffset:0}
