.lab-page .section-wrap{max-width:1160px}.lab-intro{padding-top:60px;padding-bottom:35px;max-width:780px}.lab-intro h1{font-size:clamp(42px,6vw,76px);letter-spacing:-3px;margin-bottom:22px}.lab-intro h1 em{color:var(--accent);font-style:normal}.lab-intro>p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:590px}.lab-shell{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:40px;align-items:start;margin-bottom:65px}.board-panel{position:relative;padding:25px;border:1px solid var(--line);border-radius:28px;background:radial-gradient(ellipse at 0 0,#ffffff10,transparent 70%),var(--fill);box-shadow:inset 0 1px 0 #ffffff33,0 20px 65px var(--shadow)}.board-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;font-size:12px;color:var(--muted)}#lab-led{width:30px;height:30px;display:grid;place-items:center;background:none;border:0;border-radius:50%;padding:0}#lab-led:before{content:"";width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--accent)}.packet-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.router-tile{position:relative;aspect-ratio:1;min-width:0;padding:0;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#ffffff0e,transparent),var(--soft);color:var(--ink);overflow:hidden;transition:background .25s,border-color .25s,box-shadow .25s;touch-action:manipulation}.router-tile:hover{border-color:var(--accent);box-shadow:inset 0 1px 0 #ffffff55}.router-tile:active{background:var(--line)}.router-tile svg{display:block;width:100%;height:100%;transform:rotate(calc(var(--turn,0)*90deg));transition:transform .25s cubic-bezier(.2,.8,.2,1);overflow:visible}.router-tile path{fill:none;stroke-linecap:round;stroke-linejoin:round}.pipe-shadow{stroke:var(--ink);stroke-width:17;opacity:.08}.pipe{stroke:var(--muted);stroke-width:7}.router-number{position:absolute;top:7px;left:9px;font:10px/1.2 ui-monospace,monospace;color:var(--muted);pointer-events:none;background:var(--soft);padding:2px;border-radius:4px}.router-tile.flow{background:var(--fill);border-color:var(--accent);box-shadow:inset 0 0 20px #b7d4c61f}.flow .pipe{stroke:var(--accent);stroke-dasharray:8 5;animation:packet-flow .5s linear infinite}.router-tile.blocked{border:2px dashed var(--ink)}.router-tile.hinted{box-shadow:inset 0 0 0 2px var(--accent)}.board-endpoints{display:flex;justify-content:space-between;margin:16px 0 0;font-size:12px;font-weight:650;color:var(--accent)}.lab-controls{padding-top:5px}.lab-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-bottom:1px solid var(--line);padding-bottom:23px}.lab-stats div:last-child{grid-column:1/-1}.lab-stats dt{font-size:12px;color:var(--muted)}.lab-stats dd{margin:4px 0 0;font-size:30px;line-height:1.3;font-weight:650}.lab-stats div:last-child dd{font-size:16px;font-weight:500}.lab-controls .button{width:100%}.lab-controls .primary{margin:20px 0 12px}.lab-secondary{display:flex;gap:10px}.lab-secondary .button{flex:1;min-width:0;padding:10px;font-size:13px}.lab-status{font-size:15px;line-height:1.75;min-height:105px;padding:20px 0;margin:0;color:var(--ink)}.lab-rules{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.lab-rules h2{font-size:17px;margin:0 0 12px;padding:0;border:0}.lab-rules ol{padding-left:20px}.lab-rules li{margin:8px 0}.lab-controls button:disabled{opacity:.6;cursor:wait}.lab-note{font-size:12px;color:var(--muted);line-height:1.7}.lab-secondary .button[hidden]{display:none}.lab-controls>#lab-daily{margin-top:10px}.night-shift .router-number{animation:night-blink 2s ease-in-out infinite}.night-shift .router-tile:nth-child(3n) .router-number{animation-delay:-1s}@keyframes packet-flow{to{stroke-dashoffset:-26}}@keyframes night-blink{50%{color:var(--accent);text-shadow:0 0 9px var(--accent)}}
@media(max-width:800px){.lab-shell{grid-template-columns:1fr;gap:25px}.lab-intro{padding-top:40px}.lab-intro h1{font-size:48px;letter-spacing:-2px}.board-panel{padding:18px}.lab-stats{grid-template-columns:1fr 1fr 1.4fr}.lab-stats div:last-child{grid-column:auto}.lab-stats div:last-child dd{font-size:13px}.lab-status{min-height:100px}.lab-controls{padding:0 4px}.lab-rules{font-size:15px}.lab-page .section-wrap{padding-left:23px;padding-right:23px}.router-number{font-size:9px;top:5px;left:5px}.packet-board{gap:6px}.router-tile{border-radius:11px}.board-topline{font-size:11px}}
.lab-page [hidden]{display:none!important}
@media(min-width:801px){.lab-page .lab-shell{grid-template-columns:minmax(0,1fr) minmax(270px,.85fr)}.lab-page .lab-intro h1{font-size:64px}}