:root{--face:#c0c0c0;--hi:#fff;--sh:#808080;--dk:#000;--desk:#008080;--title1:#000080;--title2:#000080;--sel:#000080;}
.hotdog{--face:#ffff00;--desk:#ff0000;--title1:#ff0000;--title2:#ff0000;--sel:#ff0000;--sh:#000;}
body.win95{--title2:#1084d0}
body{margin:0;background:var(--desk);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:6px 6px;font-family:'VT323',monospace;font-size:19px;color:#000;min-height:100vh}
.mono{font-family:'IBM Plex Mono',monospace;font-size:12px}
.win{background:var(--face);border:2px solid;border-color:var(--hi) var(--dk) var(--dk) var(--hi);box-shadow:inset -1px -1px var(--sh),inset 1px 1px #dfdfdf}
.hollow{background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(0,0,0,.06) 3px 4px);border:2px dashed var(--sh);font-style:italic}
.titlebar{background:linear-gradient(90deg,var(--title1),var(--title2));color:#fff;font-weight:bold;padding:2px 4px;display:flex;align-items:center;gap:6px;letter-spacing:1px}
.btn{background:var(--face);border:2px solid;border-color:var(--hi) var(--dk) var(--dk) var(--hi);box-shadow:inset -1px -1px var(--sh);padding:1px 10px;cursor:pointer;font-family:inherit;font-size:18px;color:#000}
.btn:active,.btn.on{border-color:var(--dk) var(--hi) var(--hi) var(--dk);box-shadow:inset 1px 1px var(--sh)}
.tbtn{width:20px;height:18px;padding:0;font-size:12px;line-height:1}
.inset{background:#fff;border:2px solid;border-color:var(--sh) var(--hi) var(--hi) var(--sh);box-shadow:inset 1px 1px var(--dk)}
.group{border:1px solid var(--sh);box-shadow:1px 1px var(--hi);padding:10px 8px 6px;position:relative;margin-top:10px}
.group .lg{position:absolute;top:-12px;left:8px;background:var(--face);padding:0 4px}
.slot{border:3px dashed #555;background:repeating-linear-gradient(45deg,#d4d4d4 0 8px,#c8c8c8 8px 16px);transition:.15s}
.slot.drag{background:#ffffc0;border-color:var(--sel);transform:scale(1.01)}
.disk{width:60px;height:60px;background:#222;position:relative;border-radius:3px;margin:auto}
.disk:before{content:'';position:absolute;left:14px;top:0;width:32px;height:20px;background:#aaa}
.disk:after{content:'';position:absolute;left:10px;bottom:4px;width:40px;height:24px;background:#eee}
.cd{width:64px;height:64px;margin:auto;border-radius:50%;background:conic-gradient(#e0e0ff,#ffd0f0,#d0fff0,#fff6c0,#e0e0ff);border:2px solid #666;position:relative;animation:tray .6s ease-out,spin 4s linear .6s infinite}
.cd:after{content:'';position:absolute;left:24px;top:24px;width:12px;height:12px;border-radius:50%;background:var(--face);border:1px solid #666}
@keyframes tray{from{transform:translateY(-30px) scaleY(.2);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
table.ne{border-collapse:collapse;width:100%}
table.ne th{position:sticky;top:0;background:var(--face);border:1px solid;border-color:var(--hi) var(--sh) var(--sh) var(--hi);font-weight:normal;text-align:left;padding:0 6px;cursor:pointer;white-space:nowrap;z-index:1}
table.ne td{padding:0 6px;white-space:nowrap;border-bottom:1px dotted #ddd;background:#fff}
table.ne tr.ghost td{background:#ffffc8}
table.ne tr.fwd td{background:#dceeff}
table.ne tr.sel td{background:var(--sel);color:#fff}
table.ne tr.skiprow td{color:#666;font-style:italic;border-top:1px dashed #808080;border-bottom:1px dashed #808080;background:repeating-linear-gradient(45deg,#f2f2f2 0 2px,#e4e4e4 2px 4px);cursor:pointer}
table.ne tr.skipsel td{outline:1px dotted var(--sel);color:var(--sel)}
table.ne tr.collapsed td{font-size:9px;line-height:9px;padding:1px 6px;text-align:center}
table.ne tr.skipexp td{background:#f6f6f6;white-space:normal}
table.ne tr.flashy td{animation:flashy .3s 4}
@keyframes flashy{50%{background:#ffff80}}
.ochip{border:1px dashed #999;padding:0 4px;color:#666;font-size:11px}
.ochip.bad{border-color:#c00;color:#c00;font-weight:bold}
table.ne td:first-child,table.ne th:first-child{position:sticky;left:0}
table.ne th:first-child{z-index:2}
.fwdlink{color:#0040a0;text-decoration:underline dotted;cursor:copy}
tr.sel .fwdlink{color:#fff}
.wobble{animation:wob .4s}
@keyframes wob{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
.pop{animation:pop .25s ease-out both}
@keyframes pop{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.chip{font-size:16px;padding:0 8px}
.menuitem{text-align:left;padding:2px 12px;font-family:inherit;font-size:18px;background:none;border:0;cursor:pointer}
.menuitem:hover{background:var(--sel);color:#fff}
.hexhl{background:var(--sel);color:#fff}
.hexdot{outline:1px dotted #c00;background:#ffe0e0}
.hexfwd{outline:1px solid #0060c0;background:#dceeff}
.eslot{display:inline-block;min-width:12px;height:16px;border:1px solid #000;cursor:pointer;vertical-align:middle;font-size:10px;line-height:14px;text-align:center}
.s-code{background:#2a7a2a}
.s-data{background:repeating-linear-gradient(45deg,#d08020 0 2px,#ffe0a0 2px 4px)}
.s-fwd{background:#3a7bd5}
.s-gap{background:transparent;border:1px dashed #666}
.s-gapc{padding:0 3px;font-style:italic;color:#444}
.s-sel{outline:2px solid #ff0;outline-offset:1px}
.ghostchip{background:#ffffc8;border-color:#999}
.flavor{position:fixed;top:4px;right:8px;color:#fff;font-size:14px;opacity:.75;pointer-events:none;text-shadow:1px 1px #000;max-width:60vw;text-align:right}
.taskbar{position:fixed;left:0;right:0;bottom:0;height:34px;background:var(--face);border-top:2px solid var(--hi);display:flex;gap:6px;align-items:center;padding:0 4px;z-index:15}
.startbtn{font-size:18px}
@media (max-width:640px){.flavor{display:none}}