*{margin:0;padding:0;box-sizing:border-box}
:root{
  --panel-h:218px;
  --accent:#0ea5e9;
  --accent-soft:rgba(14,165,233,.14);
  --ink:#0f172a;
  --muted:#475569;
}
html,body.tool-lab-minimal{height:100%;height:100dvh;overflow:hidden;-webkit-text-size-adjust:100%;touch-action:manipulation}
body.tool-lab-minimal{
  font-family:'Outfit',sans-serif;
  background:#020617;
  color:var(--ink);
  width:100%;max-width:100vw;
  position:relative;
}
#cv{
  position:fixed;
  top:0;left:0;right:0;
  bottom:var(--panel-h);
  z-index:1;
  background:#020617;
  overflow:hidden;
}
#cv canvas{display:block;width:100%!important;height:100%!important;touch-action:none}
.canvas-frame{
  position:fixed;
  top:0;left:0;right:0;
  bottom:var(--panel-h);
  z-index:4;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.04);
}
.canvas-frame::before,.canvas-frame::after{
  content:"";
  position:absolute;
  width:22px;height:22px;
  border-color:var(--accent);
  border-style:solid;
  opacity:.55;
}
.canvas-frame::before{top:10px;left:10px;border-width:2px 0 0 2px}
.canvas-frame::after{top:10px;right:10px;border-width:2px 2px 0 0}
.canvas-frame .cf-bl,.canvas-frame .cf-br{
  position:absolute;
  width:22px;height:22px;
  border-color:var(--accent);
  border-style:solid;
  opacity:.55;
}
.canvas-frame .cf-bl{bottom:10px;left:10px;border-width:0 0 2px 2px}
.canvas-frame .cf-br{bottom:10px;right:10px;border-width:0 2px 2px 0}
.ov{position:fixed;inset:0;z-index:50;pointer-events:none}
.hd{
  position:fixed;top:10px;left:12px;z-index:52;
  max-width:min(58vw,380px);
  pointer-events:none;
}
.brand-lockup{
  background:rgba(2,6,23,.9);
  border:1px solid rgba(255,255,255,.1);
  border-left:3px solid var(--accent);
  border-radius:0 8px 8px 0;
  padding:6px 10px 7px;
  backdrop-filter:blur(10px);
  box-shadow:0 4px 20px rgba(0,0,0,.35);
}
.brand-mark{
  font-family:'Cinzel',serif;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:2.5px;
  color:#fff;
  line-height:1.1;
  text-shadow:0 0 18px var(--accent-soft);
}
.brand-studio{
  font-family:'Space Mono',monospace;
  font-size:.34rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#6ee7b7;
  margin-bottom:2px;
}
.brand-glyph{color:var(--accent);margin-right:2px}
.brand-meta{
  margin-top:3px;
  font-family:'Space Mono',monospace;
  font-size:.38rem;
  letter-spacing:.8px;
  text-transform:uppercase;
  color:#94a3b8;
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
}
.brand-series{color:var(--accent);font-weight:700}
.brand-sep{opacity:.35}
.brand-lab{color:#e2e8f0;font-weight:600}
.st{
  font-family:'Space Mono',monospace;
  font-size:.44rem;
  color:#e2e8f0;
  background:rgba(2,6,23,.88);
  padding:5px 9px;
  border-left:3px solid var(--accent);
  margin-top:5px;
  line-height:1.35;
  border-radius:0 6px 6px 0;
  backdrop-filter:blur(8px);
}
.st span{color:var(--accent);font-weight:700}
.ch-prog{
  position:fixed;top:10px;right:12px;z-index:52;
  display:flex;flex-direction:column;align-items:flex-end;gap:5px;
  font-family:'Space Mono',monospace;
  pointer-events:none;
}
.ch-dots{display:flex;gap:4px;align-items:center}
.ch-dot{
  width:6px;height:6px;border-radius:999px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.22);
  transition:transform .2s,background .2s,box-shadow .2s;
}
.ch-dot.on{
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:0 0 10px var(--accent-soft);
  transform:scale(1.15);
}
.ch-num{
  font-size:.46rem;
  color:#fff;
  background:rgba(2,6,23,.9);
  padding:4px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  backdrop-filter:blur(8px);
}
.era-badge,.era-val,#factTick{display:none!important}
.crt,.vignette{
  position:fixed;top:0;left:0;right:0;
  bottom:var(--panel-h);
  pointer-events:none;z-index:3;
}
.crt{opacity:.12;background:linear-gradient(rgba(255,255,255,0) 50%,rgba(0,0,0,.04) 50%);background-size:100% 3px}
.vignette{
  box-shadow:
    inset 0 -28px 50px rgba(2,6,23,.5),
    inset 0 0 120px rgba(2,6,23,.25);
  z-index:2;
}
.ui-scrim-top,.ui-scrim-bottom{display:none!important}
.flash{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:0;background:var(--accent)}
.bh{
  position:fixed;
  bottom:0;left:0;right:0;
  height:var(--panel-h);
  max-height:44dvh;
  min-height:148px;
  background:#fff;
  border-top:3px solid var(--accent);
  padding:6px 14px max(8px,env(safe-area-inset-bottom));
  z-index:60;
  pointer-events:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  overflow:hidden;
  box-shadow:0 -6px 32px rgba(15,23,42,.12);
}
.panel-brand{
  flex:0 0 auto;
  width:100%;max-width:540px;
  display:flex;align-items:center;justify-content:center;gap:6px;
  font-family:'Space Mono',monospace;
  font-size:.4rem;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--muted);
  padding-bottom:2px;
  border-bottom:1px solid #e2e8f0;
}
.panel-glyph{color:var(--accent);font-size:.5rem}
.panel-series{color:var(--accent);font-weight:700}
.panel-tagline{color:#64748b}
.lt{
  flex:0 0 auto;
  width:100%;max-width:540px;
  font-family:'Cinzel',serif;
  font-size:clamp(.78rem,2.7vw,1.05rem);
  color:var(--ink);
  letter-spacing:1.5px;
  text-transform:uppercase;
  line-height:1.15;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:2px;
}
.lx{
  flex:1 1 auto;
  min-height:0;
  width:100%;max-width:540px;
  overflow-y:auto;
  overflow-x:hidden;
  font-size:clamp(.66rem,2.45vw,.82rem);
  line-height:1.5;
  color:var(--muted);
  text-align:center;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.highlight{
  color:var(--ink);
  background:var(--accent-soft);
  padding:0 4px;
  border-bottom:2px solid var(--accent);
  font-family:'Space Mono',monospace;
  font-weight:600;
}
.ab{
  flex:0 0 auto;
  width:100%;max-width:540px;
  padding:11px 10px;
  border:none;border-radius:8px;
  background:var(--accent);color:#fff;
  font-family:'Space Mono',monospace;
  font-size:clamp(.5rem,2.3vw,.66rem);
  font-weight:700;cursor:pointer;
  letter-spacing:.8px;text-transform:uppercase;
  box-shadow:0 4px 14px var(--accent-soft);
  transition:transform .15s,box-shadow .15s,opacity .15s;
}
.ab:hover{box-shadow:0 6px 18px var(--accent-soft)}
.matrix-foot{
  flex:0 0 auto;
  width:100%;max-width:540px;
  font-family:'Space Mono',monospace;
  font-size:.34rem;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#94a3b8;
  text-align:center;
  padding-top:2px;
}
.matrix-foot em{font-style:normal;color:#6ee7b7}
.ab:active{transform:scale(.98);opacity:.92}
.tool-panel{flex:0 0 auto;width:100%;max-width:540px;max-height:0;opacity:0;overflow:hidden;transition:max-height .22s,opacity .22s}
.tool-panel.open{max-height:72px;opacity:1;border-top:1px solid #e2e8f0;padding-top:5px;margin-top:2px}
.tool-panel label,.tool-panel .ethics{display:none!important}
.tool-panel input,.tool-panel textarea,.tool-panel button.tool-btn{
  width:100%;
  font-family:'Space Mono',monospace;
  font-size:.46rem;padding:6px;
  background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;
}
.tool-panel textarea{display:none}
.tool-panel.open textarea{display:block}
.tool-out{font-size:.44rem;color:#0369a1;max-height:44px;overflow-y:auto;word-break:break-all}
.timemap,.timeline,.sound-note,.tl-bar,.tl-row,.tl-ctl,.pressure-wrap,.chip{display:none!important}
.genesis-lab.tool-lab-minimal .bh{background:#fff!important;border-radius:0!important}
.genesis-lab.tool-lab-minimal .lt{color:var(--ink)!important}
.genesis-lab.tool-lab-minimal .ab{background:var(--accent)!important;color:#fff!important}
@media(max-width:768px){
  :root{--panel-h:238px}
  .hd{top:8px;left:8px;max-width:54vw}
  .brand-mark{font-size:.54rem;letter-spacing:1.8px}
  .brand-meta{font-size:.34rem}
  .st{font-size:.38rem;padding:4px 7px}
  .ch-prog{top:8px;right:8px}
  .ch-num{font-size:.4rem}
  .ch-dot{width:5px;height:5px}
  .canvas-frame::before,.canvas-frame::after,
  .canvas-frame .cf-bl,.canvas-frame .cf-br{width:16px;height:16px}
}
@media(min-width:769px){
  :root{--panel-h:208px}
  .hd{top:14px;left:18px}
  .ch-prog{top:14px;right:18px}
  .brand-mark{font-size:.72rem}
  .bh{padding:8px 20px max(10px,env(safe-area-inset-bottom))}
}
