@font-face{font-family:Inter;src:url(fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-display:block}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-display:block}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-700.woff2) format("woff2");font-weight:700;font-display:block}
@font-face{font-family:"W95FA";src:url(fonts/ms-sans-serif.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"W95FA";src:url(fonts/ms-sans-serif-bold.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --desk:#fff;--face:#e3e1dc;--win:#fdfdfb;--fill:#f4f4f2;--line:#cfcdc8;--lite:#fff;--hi:#ebe9e5;--shade:#808080;--dark:#404040;--ink:#000;--navy:#000080;--paper:#f7f4ea;--red:#d92323;
  --link:#0000ee;--visited:#551a8b;--meta:#666;--tray:#f0efec;
  --w:1180px;--pad:16px;--bar:46px;--mono:"W95FA","Plex Mono",ui-monospace,monospace;--sans:'W95FA',Tahoma,'MS Sans Serif','Helvetica Neue',Helvetica,Inter,sans-serif;
  /* era bevels, softened for white bodies: light top-left, gray bottom-right, drawn as inset borders */
  --raised:inset -1px -1px var(--shade),inset 1px 1px var(--lite),inset -2px -2px var(--line),inset 2px 2px var(--lite);
  --sunken:inset 1px 1px var(--shade),inset -1px -1px var(--lite),inset 2px 2px var(--line),inset -2px -2px var(--fill);
  --well:inset 1px 1px var(--line),inset -1px -1px var(--lite)
}
*{box-sizing:border-box;border-radius:0;transition:none!important}
html{background:var(--desk)}
body{margin:0;padding:16px 16px calc(var(--bar) + 16px);background:var(--desk);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.4}
.tnum,.counter,.cents,.fval,.presetdur{font-variant-numeric:tabular-nums slashed-zero;font-feature-settings:"tnum" 1,"zero" 1}

/* windows: white body on a white page; outer bevel plus a hairline edge so each still reads as a window */
.sheet{max-width:var(--w);margin:0 auto 16px;padding:0 var(--pad) 18px;background:var(--win);box-shadow:0 0 0 1px var(--line),inset -1px -1px var(--dark),inset 1px 1px var(--lite),inset -2px -2px var(--line),inset 2px 2px var(--hi);border:none}

/* title bar: flat navy, white semibold text, control glyphs on the right */
.shead{display:flex;align-items:center;gap:10px;min-height:22px;margin:3px calc(-1 * var(--pad) + 3px) 14px;padding:1px 4px 1px 8px;background:var(--navy);color:var(--lite);white-space:nowrap}
.snum{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em}
h2{font-size:14px;line-height:1.2;margin:0;font-weight:600;letter-spacing:.02em}
.snote{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#d4d4ee}
.wbox{display:inline-block;width:8px;height:8px;box-sizing:border-box;border:2px solid currentColor;background:transparent;vertical-align:baseline;margin:0 2px}
.wctl,.head::after{flex:none;margin-left:auto;background:var(--fill);color:var(--ink);box-shadow:var(--raised);font-family:var(--mono);font-size:11px;font-weight:700;line-height:16px;height:16px;padding:0 6px;white-space:pre}

/* inspo: a margin note under each section title, not a banner */
.inspo{font-size:13.5px;line-height:1.45;max-width:46em;color:#333;margin:0 0 14px;padding:2px 0 2px 10px;border-left:2px solid var(--navy)}

/* header window: title bar drawn by CSS, wordmark in the body */
.head{position:relative}
.head::before{content:"C60.EXE";display:block;margin:3px calc(-1 * var(--pad) + 3px) 0;padding:0 8px;height:22px;line-height:22px;background:var(--navy);color:var(--lite);font-size:14px;font-weight:600;letter-spacing:.02em}
.head::after{content:"—  ▢  ×";position:absolute;top:6px;right:7px}
.headrow{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;padding:18px 0 14px;border-bottom:1px solid var(--line)}
h1{font-size:clamp(56px,10vw,110px);line-height:.9;margin:0;font-weight:700;letter-spacing:-.04em}
.fileline{font-size:12px;line-height:1.5;text-align:right;color:var(--meta);text-transform:uppercase;letter-spacing:.04em}
.lede{font-size:clamp(17px,2vw,21px);font-weight:400;line-height:1.3;letter-spacing:-.01em;max-width:34em;margin:18px 0}
.headbtns{display:flex;flex-wrap:wrap;gap:8px}
.note{font-size:13px;max-width:44em;color:#333}
.head .note{margin:12px 0 14px}

/* header nav: a row of plain hyperlinks */
.index{display:flex;flex-wrap:wrap;gap:2px;margin:0 calc(-1 * var(--pad) + 3px) -12px;padding:4px;border-top:1px solid var(--line)}
.index a{display:flex;align-items:baseline;gap:6px;padding:5px 10px;color:var(--link);text-decoration:underline;font-size:12px;font-weight:400;letter-spacing:.06em}
.index a b{color:inherit;font-weight:700}
.index a:active{color:var(--visited)}

/* page actions: classic hyperlinks, blue and underlined, purple only while pressed */
.bigbtn,.smallbtn,.segbtn{font-family:var(--sans);font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:transparent;border:none;box-shadow:none;cursor:pointer}
.bigbtn,.smallbtn{color:var(--link);text-decoration:underline}
.bigbtn:active:not(:disabled),.smallbtn:active{color:var(--visited)}
.bigbtn{font-size:13px;padding:6px 4px}
.bigbtn:disabled{color:var(--shade);cursor:not-allowed}
.smallbtn{font-size:12px;padding:4px}

/* instrument buttons: raised light gray, press sinks */
.scl,.soundseg button,.endmark{font-family:var(--mono);font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--fill);color:var(--ink);border:none;box-shadow:var(--raised);cursor:pointer}
.scl:active,.soundseg button:active,.endmark:active{box-shadow:var(--sunken)}

/* presets: buddy list, white list with a hairline frame, one row per piece */
.presetlist{display:grid;grid-template-columns:1fr;gap:0;background:var(--lite);border:1px solid var(--line);padding:1px}
.preset{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:9px 12px;border:none;border-bottom:1px solid var(--fill);background:var(--lite);color:var(--ink);text-align:left;cursor:pointer;font-family:inherit}
.preset:last-child{border-bottom:none}
.preset:hover{background:var(--navy);color:var(--lite)}
.preset .ptitle{font-weight:600;font-size:20px;line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;color:var(--link)}
.presetdur{font-family:var(--mono);font-size:13px;font-weight:400;color:var(--shade)}
.preset:hover .ptitle,.preset:hover .presetdur{color:var(--lite)}
.presetprog{display:flex;gap:16px;align-items:center;margin-top:8px;padding:4px 4px 4px 10px;background:var(--fill);border:1px solid var(--line);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.presetprog[hidden]{display:none}
.presetprog .smallbtn{margin-left:auto}

/* sliders: hairline track, raised thumb */
input[type=range]{appearance:none;background:var(--fill);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}
input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:22px;background:var(--fill);border:none;box-shadow:var(--raised)}
input[type=range]::-moz-range-thumb{width:12px;height:22px;background:var(--fill);border:none;border-radius:0;box-shadow:var(--raised)}
input[type=range]::-moz-range-track{background:transparent}

/* faders: hairline group boxes on white */
.faders{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:16px}
.fader{padding:8px 12px 10px;background:var(--fill);border:1px solid var(--line)}
.fader label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:5px}
.fval{font-family:var(--mono);font-size:24px;font-weight:400;letter-spacing:-.03em;line-height:1;color:var(--navy)}
.fader input[type=range]{width:100%;height:6px;margin:18px 0 8px;background:var(--lite)}
.tablerow{display:flex;gap:16px;align-items:center;margin-top:16px;flex-wrap:wrap}
.tablerow .note{margin:0}

/* tool rows */
.dronetools,.painttools,.loopctl{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin-bottom:16px}
.loopctl .note{align-self:center}
.seg{display:flex;gap:2px;border:none}
.segbtn{font-size:12px;padding:8px;color:var(--ink);text-decoration:none}
.segbtn.on{color:var(--link);text-decoration:underline}
.scl{display:flex;align-items:center;font-size:12px;padding:8px 12px}

/* drone keys: light keys with a hairline edge, held keys sink and go navy */
.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.key{border:none;padding:10px 12px 12px;background:var(--fill);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;text-align:left;font-family:inherit}
.key.on{background:var(--navy);color:var(--lite);box-shadow:var(--sunken)}
.key .kname{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;display:block;border-bottom:1px solid currentColor;padding-bottom:5px;margin-bottom:8px}
.key .cents{font-family:var(--mono);font-size:clamp(28px,4vw,44px);font-weight:500;line-height:1;letter-spacing:-.03em;display:block;touch-action:none;cursor:ns-resize}
.key .knote{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:block;margin-top:6px}

/* focus: dotted ring, black on white/light gray, white on navy */
button{touch-action:manipulation}
button:focus-visible,input:focus-visible,a:focus-visible,.cents:focus-visible,.scl:focus-within{outline:2px dotted var(--ink);outline-offset:-5px}
canvas:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.bigbtn:focus-visible,.smallbtn:focus-visible,.segbtn:focus-visible,.index a:focus-visible,.tb-links a:focus-visible{outline:1px dotted var(--link);outline-offset:1px}
input[type=range]:focus-visible{outline-offset:3px}
.preset:hover:focus-visible,.key.on:focus-visible,.key.on .cents:focus-visible,.cell.hit:focus-visible{outline-color:var(--lite)}
.cents:focus-visible{outline-offset:2px}

/* loops: hairline group boxes, mini navy heads, white cells */
.loopgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.col{padding:0 8px 10px;background:var(--fill);border:1px solid var(--line)}
.colhead{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;display:flex;justify-content:space-between;padding:2px 6px;background:var(--navy);color:var(--lite)}
.col .colhead{margin:2px -6px 8px}
.colcells{display:flex;flex-direction:column;gap:2px}
.cell{height:28px;border:none;background:var(--lite);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;font-family:var(--mono);font-size:10px;color:var(--ink);padding:0}
.cell.beyond{opacity:.3}
.cell.hit{background:var(--navy);color:var(--lite)}
.cell.now{box-shadow:inset 0 0 0 2px var(--ink)}
.cell.hit.now{box-shadow:inset 0 0 0 2px var(--lite)}
.endmark{margin-top:8px;width:100%;font-size:11px;padding:6px;cursor:ns-resize;touch-action:none}
.motor{margin-top:10px}
.motor label{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;display:flex;justify-content:space-between}
.motor input[type=range]{width:100%;height:5px;margin:12px 0 4px;background:var(--lite)}
.soundseg{display:flex;gap:2px;margin-top:8px}
.soundseg button{flex:1;font-size:10px;padding:6px 2px}
.soundseg button.on{box-shadow:var(--sunken);background:var(--lite);color:var(--navy)}
.tempo{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em;display:flex;gap:10px;align-items:center;padding:6px 12px;background:var(--fill);border:1px solid var(--line)}
.tempo input[type=range]{width:140px;height:5px;background:var(--lite)}

/* drums */
.drumrow{margin-bottom:10px}
.drumrow .colhead{margin-bottom:4px}
.drumcells{display:grid;grid-template-columns:repeat(16,1fr);gap:2px}
.drumcells .cell{height:30px;background:var(--fill)}
.drumcells .cell.hit{background:var(--navy)}

/* match: two file boxes, then the standard fader group */
.matchfiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.filebox{padding:0 10px 10px;background:var(--fill);border:1px solid var(--line)}
.filebox .colhead{margin:2px -8px 10px}
.matchfilebtns{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:34px}
.filebox .note{margin:8px 0 0}
.filebox.dragover{box-shadow:inset 0 0 0 2px var(--navy)}
.matchstatus{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.levelread{margin-top:2px}
@media (max-width:640px){.matchfiles{grid-template-columns:1fr}}

/* paint: paper drawing surface in an inset well */
#paintcanvas{width:100%;height:auto;display:block;border:1px solid var(--shade);background:var(--paper);touch-action:none;cursor:crosshair}

/* footer: a plain window */
.foot{padding-top:12px;font-family:var(--mono);font-size:12px;letter-spacing:.03em;text-transform:uppercase}
.foot p{margin:0;padding:7px 0;border-bottom:1px solid var(--line);max-width:none;color:var(--ink)}
.foot p:last-child{border-bottom:none}

/* taskbar: start chip | section links | sunken tray clock (the tape counter) */
.taskbar{position:fixed;left:0;right:0;bottom:0;z-index:40;height:var(--bar);display:flex;align-items:center;gap:6px;padding:4px 6px;background:var(--tray);border-top:1px solid var(--line)}
.tb-start{flex:none;display:flex;align-items:center;height:34px;padding:0 12px;box-shadow:var(--raised);font-weight:600;font-size:14px;letter-spacing:.02em}
.tb-links{flex:1;min-width:0;display:flex;gap:4px;overflow:hidden}
.tb-links a{display:flex;align-items:center;height:34px;padding:0 8px;color:var(--link);text-decoration:underline;font-size:13px;font-weight:400;white-space:nowrap}
.tb-links a:active{color:var(--visited)}
.tb-tray{flex:none;margin-left:auto;display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;box-shadow:inset 1px 1px var(--shade),inset -1px -1px var(--lite);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;white-space:nowrap}
.counter{font-size:15px;letter-spacing:.02em;display:inline-block;min-width:5ch;text-align:center;font-weight:700}
.tb-gen{color:var(--dark);font-weight:700}
.rolldot{display:inline-block;width:9px;height:9px;border:1px solid var(--dark);background:transparent}
.rolldot.on{background:var(--red);border-color:var(--red)}

@media (max-width:900px){.snote{display:none}}
@media (max-width:640px){
  :root{--pad:10px;--bar:44px}
  body{padding:6px 6px calc(var(--bar) + 8px)}
  .sheet{margin-bottom:8px;padding-bottom:12px}
  .shead{min-height:20px;margin-bottom:10px;gap:6px}
  h2{font-size:12px}
  .inspo{font-size:13px;margin-bottom:12px}
  .head::before{height:20px;line-height:20px;font-size:12px}
  .head::after,.wctl{height:14px;line-height:14px;font-size:10px;padding:0 4px}
  .head::after{top:6px;right:6px}
  .headrow{grid-template-columns:1fr;gap:6px}
  .fileline{text-align:left}
  .headbtns{flex-direction:column}
  .headbtns .bigbtn{width:100%}
  .keys{grid-template-columns:repeat(2,1fr)}
  .loopgrid{grid-template-columns:repeat(2,1fr)}
  .preset .ptitle{font-size:17px}
  .tb-links{display:none}
  .tb-tray{gap:6px;padding:0 8px}
  .drumcells .cell{height:28px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.pleft{display:flex;flex-direction:column;gap:1px;text-align:left}
.pinsp{font-size:11px;color:var(--dark);letter-spacing:.02em}
.preset.on .pinsp,.preset:hover .pinsp{color:#fff}

/* tooltips */
#tooltip { position: fixed; z-index: 300; max-width: 230px; background: #ffffe1; border: 1px solid #000; color: #000; font: 12px/1.45 var(--sans); padding: 4px 7px; pointer-events: none; opacity: 0; transition: opacity .12s; }
#tooltip.on { opacity: 1; }

/* window controls are real buttons now: collapse */
button.wctl { cursor: pointer; border: none; }
.sheet.collapsed > *:not(.shead) { display: none; }

/* transport readout inside the tape window; rolling dots pulse */
.transport { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; margin: 10px 0 2px; }
.rolldot.on { animation: rollpulse 1.4s ease-in-out infinite; }
@keyframes rollpulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
