/* Splash Studio: the Lab on the kit app shell 2 (layout "stage"). Built into app/app.product.css by build_studio.py.
   Brand tokens (brand/tokens.json): Inter + JetBrains Mono, the 4E site greys, accent #52e052 for primary actions only.
   The shell's own tokens are retinted here so its header, dialogs, samples gallery and guide wear the same look. */
:root{
  --sp-bg:#0b0d12; --sp-panel:#10131a; --sp-panel2:#151922; --sp-field:#1b2030; --sp-field-h:#232a3c; --sp-edge:#222837; --sp-edge2:#323a4e;
  --sp-text:#e9edf3; --sp-dim:#9aa3b5; --sp-faint:#6b7488; --sp-hover:rgba(255,255,255,.055); --sp-hover2:rgba(255,255,255,.09);
  --sp-acc:#52e052; --sp-acc-hi:#7cf07c; --sp-on-acc:#06210a; --sp-acc-txt:#6ee66e; --sp-sel:rgba(82,224,82,.12); --sp-sel-edge:rgba(82,224,82,.42);
  --sp-glass:rgba(16,19,27,.8); --sp-glass-edge:rgba(255,255,255,.08); --sp-shadow:0 18px 50px -20px rgba(0,0,0,.75); --sp-shadow-sm:0 10px 26px -12px rgba(0,0,0,.7);
  --sp-stage:radial-gradient(130% 120% at 50% 0%,#191e29 0%,#10131a 58%,#0c0e14 100%);
  --sp-vp:radial-gradient(120% 100% at 50% 10%,#232937 0%,#141821 60%,#0d1016 100%);
  --sp-ring:#ffffff; --sp-ok:#5ec27a; --sp-warn:#ffb13b; --sp-bad:#ff7a7a;
  --sp-ui:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --sp-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --sp-ease:cubic-bezier(.2,.8,.2,1);
  --g1:#ff5d73; --g2:#ffb238; --g3:#2ec4b6; --g4:#3a86ff; --g5:#8338ec;
  /* the shell's tokens, retinted */
  --app:var(--sp-bg); --header:var(--sp-panel); --region:var(--sp-panel); --panel-head:var(--sp-panel2); --panel-sub:var(--sp-panel2);
  --field:var(--sp-field); --field-hover:var(--sp-field-h); --field-text:var(--sp-text); --btn:var(--sp-field); --btn-hover:var(--sp-field-h);
  --text:var(--sp-text); --dim:var(--sp-dim); --line:var(--sp-edge); --edge:var(--sp-edge); --code:#0e1117;
  --accent:#52e052; --accent-hi:#7cf07c; --on-accent:#06210a; --select:#52e052; --select-hi:#7cf07c; --ok:#5ec27a; --warn:#ffb13b; --err:#ff7a7a;
  --ui:var(--sp-ui); --mono:var(--sp-mono);
}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){
  --sp-bg:#e9ecf2; --sp-panel:#f7f8fb; --sp-panel2:#ffffff; --sp-field:#eceff5; --sp-field-h:#e2e6ee; --sp-edge:#dbe0e9; --sp-edge2:#c6cdd9;
  --sp-text:#141821; --sp-dim:#4f586b; --sp-faint:#7a8396; --sp-hover:rgba(20,24,33,.05); --sp-hover2:rgba(20,24,33,.08);
  --sp-acc-txt:#1d8a1d; --sp-sel:rgba(40,160,40,.1); --sp-sel-edge:rgba(40,150,40,.45);
  --sp-glass:rgba(255,255,255,.84); --sp-glass-edge:rgba(20,24,33,.1); --sp-shadow:0 18px 50px -24px rgba(20,24,40,.35); --sp-shadow-sm:0 10px 26px -14px rgba(30,40,70,.3);
  --sp-stage:radial-gradient(130% 120% at 50% 0%,#ffffff 0%,#f2f4f8 70%,#eaedf3 100%);
  --sp-vp:radial-gradient(120% 100% at 50% 10%,#ffffff 0%,#eceff4 60%,#dde2ea 100%);
  --sp-ring:#141821; --sp-ok:#2e7d32; --sp-warn:#a85f00; --sp-bad:#c0392b; --code:#f2f4f8; --ok:#2e7d32; --warn:#a85f00; --err:#c0392b; --accent-hi:#43cf43;
}}
:root[data-theme="light"]{
  --sp-bg:#e9ecf2; --sp-panel:#f7f8fb; --sp-panel2:#ffffff; --sp-field:#eceff5; --sp-field-h:#e2e6ee; --sp-edge:#dbe0e9; --sp-edge2:#c6cdd9;
  --sp-text:#141821; --sp-dim:#4f586b; --sp-faint:#7a8396; --sp-hover:rgba(20,24,33,.05); --sp-hover2:rgba(20,24,33,.08);
  --sp-acc-txt:#1d8a1d; --sp-sel:rgba(40,160,40,.1); --sp-sel-edge:rgba(40,150,40,.45);
  --sp-glass:rgba(255,255,255,.84); --sp-glass-edge:rgba(20,24,33,.1); --sp-shadow:0 18px 50px -24px rgba(20,24,40,.35); --sp-shadow-sm:0 10px 26px -14px rgba(30,40,70,.3);
  --sp-stage:radial-gradient(130% 120% at 50% 0%,#ffffff 0%,#f2f4f8 70%,#eaedf3 100%);
  --sp-vp:radial-gradient(120% 100% at 50% 10%,#ffffff 0%,#eceff4 60%,#dde2ea 100%);
  --sp-ring:#141821; --sp-ok:#2e7d32; --sp-warn:#a85f00; --sp-bad:#c0392b; --code:#f2f4f8; --ok:#2e7d32; --warn:#a85f00; --err:#c0392b; --accent-hi:#43cf43;
}

/* ================================================================ the shell, in the Lab's look */
body{background:var(--sp-bg);font:12.5px/1.4 var(--sp-ui);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
#app[data-layout="stage"]{padding:0;gap:0}
#app[data-layout="stage"] .topbar{min-height:54px;padding:0 10px 0 14px;gap:6px;background:var(--sp-panel);border-radius:0;border-bottom:1px solid var(--sp-edge);overflow:visible}
#app[data-layout="stage"] .brand{font:700 15px/1 var(--sp-ui);letter-spacing:-.01em;border-right:1px solid var(--sp-edge);padding-right:12px;margin-right:4px;gap:9px}
#app[data-layout="stage"] .brand svg{width:26px;height:26px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.brand .ver{background:var(--sp-field)!important;color:var(--sp-dim)!important;font:600 10px var(--sp-mono)!important;border-radius:5px!important;padding:2px 5px!important}
#app[data-layout="stage"] .ws{border-radius:8px;padding:6px 11px;color:var(--sp-dim);font-weight:500}
#app[data-layout="stage"] .ws:hover{background:var(--sp-hover);color:var(--sp-text)}
#app[data-layout="stage"] .ws[aria-selected="true"]{background:var(--sp-field);color:var(--sp-text);box-shadow:none}
/* the kit (app_shell 2.0.1) sizes, clips and names the slot (container "hdrslot"); only the spacing is ours */
#app[data-layout="stage"] .hdrslot{margin-left:8px;justify-content:space-between;gap:8px}
#app[data-layout="stage"] .spacer{flex:0 0 4px}
.topbar .iconbtn{width:34px;height:34px;border-radius:9px;color:var(--sp-dim)}
.topbar .iconbtn:hover:not(:disabled){background:var(--sp-hover);color:var(--sp-text)}
.topbar .iconbtn svg{width:17px;height:17px}
.topbar .tsep{background:var(--sp-edge);margin:12px 4px}
.hbtn.top{height:34px;padding:0 11px;border-radius:9px;background:var(--sp-panel2);border:1px solid var(--sp-edge);color:var(--sp-text);font-weight:600;font-size:12.5px;gap:7px}
.hbtn.top:hover{background:var(--sp-field);border-color:var(--sp-edge2)}
.hbtn.top svg{width:16px;height:16px}
#app[data-layout="stage"] .hbtn.top.accent{background:var(--sp-panel2);color:var(--sp-text);border-color:var(--sp-edge)}
#app[data-layout="stage"] .hbtn.top.accent:hover{background:var(--sp-field);filter:none}
.blchip{height:34px;border-radius:9px;padding:0 12px 0 11px;background:var(--sp-panel2);border-color:var(--sp-edge);font-weight:600;font-size:12.5px;gap:8px}
.blchip:hover{background:var(--sp-field)}
.blchip .bdot{width:8px;height:8px}
.blchip[data-state="on"]{background:var(--sp-panel2);border-color:var(--sp-sel-edge)}
.blchip[data-state="on"] .bdot{background:var(--sp-acc);box-shadow:0 0 0 3px rgba(82,224,82,.18),0 0 10px rgba(82,224,82,.6)}
.themebtn{width:34px!important;height:34px!important}
.status{background:var(--sp-panel);border-radius:0;border-top:1px solid var(--sp-edge);font:500 10.5px var(--sp-mono);color:var(--sp-faint);padding:0 12px;min-height:26px}
.status b{color:var(--sp-dim)}
.work.stage{background:var(--sp-bg);border-radius:0}
dialog.dlg{background:var(--sp-panel2);border:1px solid var(--sp-edge);border-radius:14px;box-shadow:var(--sp-shadow);width:min(520px,calc(100vw - 24px))}
dialog.dlg::backdrop{background:rgba(5,7,10,.5);backdrop-filter:blur(4px)}
.dlg .dh h2{font:700 16px var(--sp-ui)}
.dlg .db p{color:var(--sp-dim)}
.dlg .btn{height:34px;border-radius:9px;padding:0 14px;font-weight:600;border:1px solid var(--sp-edge);background:var(--sp-field);color:var(--sp-text)}
.dlg .btn.primary{background:var(--sp-acc);color:var(--sp-on-acc);border-color:transparent}
.dlg .btn.primary:hover{background:var(--sp-acc-hi)}
.toast{background:var(--sp-glass);border:1px solid var(--sp-glass-edge);border-radius:12px;backdrop-filter:blur(16px);padding:9px 14px;font-size:12.5px;box-shadow:var(--sp-shadow-sm)}
html.sp-previewing .status{display:none}

/* ================================================================ base controls (all prefixed sp-: the shell has its own) */
:where(.sp,.sp-layer,.sp *){box-sizing:border-box}
:where(.sp) :where(button,input,select){font:inherit;color:inherit}
:where(.sp) :where(button){background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0}
.sp :focus-visible,.cv-pop :focus-visible{outline:2px solid var(--sp-text);outline-offset:2px;border-radius:6px}
.sp-i{width:16px;height:16px;flex:none;display:block}
.sp kbd,.sp-layer kbd,.sp-keys kbd{font:500 10px/1 var(--sp-mono);padding:3px 5px 2px;border-radius:4px;background:var(--sp-field);border:1px solid var(--sp-edge2);border-bottom-width:2px;color:var(--sp-dim);white-space:nowrap}
.sp [hidden]{display:none!important}
.sp-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 12px;border-radius:9px;border:1px solid var(--sp-edge);background:var(--sp-panel2);font-weight:600;font-size:12.5px;white-space:nowrap;transition:background .14s,border-color .14s,transform .14s var(--sp-ease)}
.sp-btn:hover:not(:disabled){border-color:var(--sp-edge2);background:var(--sp-field)}
.sp-btn:active:not(:disabled){transform:translateY(1px)}
.sp-btn:disabled{opacity:.4;cursor:not-allowed}
.sp-btn.pri{background:var(--sp-acc);color:var(--sp-on-acc);border-color:transparent;box-shadow:0 6px 18px -8px rgba(82,224,82,.75),0 1px 0 rgba(255,255,255,.35) inset}
.sp-btn.pri:hover:not(:disabled){background:var(--sp-acc-hi)}
.sp-btn.pri kbd{background:rgba(0,0,0,.12);border-color:rgba(0,0,0,.16);color:var(--sp-on-acc)}
.sp-btn.ghost{background:transparent}
.sp-btn.sm{height:28px;padding:0 10px;font-size:12px;border-radius:8px}
.sp-btn.big{height:44px;font-size:14px;border-radius:12px}
.sp-btn.block{width:100%}
.sp-btn.next{background:var(--sp-text);color:var(--sp-bg);border-color:transparent}
.sp-btn.next:hover{background:var(--sp-text);opacity:.9}
.sp-ib{width:30px;height:30px;border-radius:8px;display:inline-grid;place-items:center;color:var(--sp-dim);flex:none;transition:background .14s,color .14s}
.sp-ib:hover:not(:disabled){background:var(--sp-hover2);color:var(--sp-text)}
.sp-ib.on{color:var(--sp-text);background:var(--sp-field)}
.sp-ib.sm{width:26px;height:26px;border-radius:7px}
.sp-ib.sm .sp-i{width:15px;height:15px}
.sp-ib.txt{font:600 13px var(--sp-mono)}
.sp-ib:disabled{opacity:.35;cursor:not-allowed}
.sp-seg{display:inline-flex;padding:2px;border-radius:9px;background:var(--sp-field);gap:1px;min-width:0}
.sp-seg button{height:26px;padding:0 10px;border-radius:7px;color:var(--sp-dim);font-weight:500;font-size:12px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:color .14s,background .14s}
.sp-seg button:hover{color:var(--sp-text)}
.sp-seg button.on{background:var(--sp-panel2);color:var(--sp-text);box-shadow:0 1px 3px rgba(0,0,0,.28),0 0 0 1px var(--sp-edge) inset}
.sp-seg button .sp-i{width:15px;height:15px}
.sp-seg.block{display:flex}.sp-seg.block button{flex:1;padding:0 6px}
.sp-seg.sm button{height:22px;font-size:11.5px;padding:0 8px}
.sp-seg.lights button{width:30px;padding:0}
.sp-chips{display:flex;flex-wrap:wrap;gap:5px}
.sp-chip{height:28px;padding:0 10px;border-radius:99px;border:1px solid var(--sp-edge);font-size:12px;font-weight:500;color:var(--sp-dim);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:all .14s}
.sp-chip:hover{color:var(--sp-text);border-color:var(--sp-edge2)}
.sp-chip.on{color:var(--sp-text);border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-chip small{font:500 10px var(--sp-mono);opacity:.6}
.sp-chip .sp-i{width:14px;height:14px}
.sp-pill{display:inline-flex;align-items:center;font:600 10.5px var(--sp-mono);padding:3px 8px;border-radius:99px;border:1px solid var(--sp-edge2);color:var(--sp-dim);white-space:nowrap}
.sp-pill.ok{color:var(--sp-ok);border-color:color-mix(in srgb,var(--sp-ok) 45%,transparent)}
.sp-pill.mid{color:var(--sp-warn);border-color:color-mix(in srgb,var(--sp-warn) 45%,transparent)}
.sp-pill.bad{color:var(--sp-bad);border-color:color-mix(in srgb,var(--sp-bad) 45%,transparent)}
.sp-fld{display:flex;align-items:center;gap:8px;height:32px;padding:0 9px;border-radius:8px;background:var(--sp-field);border:1px solid transparent;min-width:0;transition:border-color .14s,background .14s}
.sp-fld:hover{background:var(--sp-field-h)}
.sp-fld:focus-within{border-color:var(--sp-acc)}
.sp-fld input{background:none;border:0;outline:0;min-width:0;width:100%;font:500 12.5px var(--sp-mono)}
.sp-fld input[type=search]{font-family:var(--sp-ui)}
.sp-fld .lb{font:600 9.5px var(--sp-mono);letter-spacing:.06em;color:var(--sp-faint);flex:none}
.sp-fld .v{font:500 12px var(--sp-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sp-fld.ro{cursor:copy;text-align:left}
.sp-fld.grow{flex:1}
.sp-fld.search{margin-bottom:9px}
.sp-fld.search .sp-i{color:var(--sp-faint)}
.sp-input{width:100%;height:34px;border-radius:9px;border:1px solid var(--sp-edge);background:var(--sp-field);padding:0 10px;color:var(--sp-text);font:inherit}
.sp-select{height:30px;border-radius:8px;border:1px solid var(--sp-edge);background:var(--sp-field);color:var(--sp-text);padding:0 8px;font:500 12px var(--sp-ui);cursor:pointer;min-width:0}
.sp-select.sm{height:26px;font-size:11.5px}
.sp-select option,.sp-select optgroup{background:var(--sp-panel2);color:var(--sp-text)}
.sp-sld{position:relative;height:22px;flex:1;min-width:70px;cursor:pointer;touch-action:none;display:flex;align-items:center;outline:none}
.sp-sld .tr{position:absolute;left:0;right:0;height:4px;border-radius:4px;background:var(--sp-edge2)}
.sp-sld .fl{position:absolute;left:0;height:4px;border-radius:4px;background:var(--sp-text);opacity:.8}
.sp-sld.painted .tr{height:12px;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 1px 0 rgba(0,0,0,.25)}
.sp-sld.painted .fl{display:none}
.sp-sld .th{position:absolute;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:#f4f6fa;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.4);transition:transform .14s var(--sp-ease)}
.sp-sld.painted .th{width:17px;height:17px;margin-left:-8.5px;background:transparent;border:2.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.4)}
.sp-sld:hover .th,.sp-sld.drag .th,.sp-sld:focus-visible .th{transform:scale(1.15)}
.sp-sld:focus-visible{outline:none}.sp-sld:focus-visible .th{box-shadow:0 0 0 3px var(--sp-sel-edge),0 2px 6px rgba(0,0,0,.4)}
.sp-val{font:500 11.5px var(--sp-mono);color:var(--sp-text);min-width:48px;text-align:right;white-space:nowrap}
.sp-tgl{width:34px;height:20px;border-radius:99px;background:var(--sp-edge2);position:relative;flex:none;transition:background .16s;cursor:pointer}
.sp-tgl::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#f4f6fa;transition:transform .18s var(--sp-ease);box-shadow:0 2px 5px rgba(0,0,0,.35)}
.sp-tgl.on{background:var(--sp-acc)}.sp-tgl.on::after{transform:translateX(14px)}
.sp-line{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;font-size:12.5px}
.sp-line small{display:block;color:var(--sp-faint);font-size:11px}
.sp-row2{display:flex;gap:6px;margin-top:8px}.sp-row2>*{flex:1}
.sp-g2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sp-inrow{display:flex;gap:6px;align-items:center;margin-top:8px}
.sp-srow2{display:flex;gap:10px;align-items:center}
.sp-note{font-size:11.5px;color:var(--sp-dim);line-height:1.55;margin:8px 0 0}
.sp-note b{color:var(--sp-text);font-weight:600}
.sp-note.sm{font-size:11px;color:var(--sp-faint)}
.sp-note.ok{display:flex;gap:7px;align-items:center;color:var(--sp-ok)}
.sp-note a{color:var(--sp-acc-txt)}
.sp-link-btn{font:500 11px var(--sp-ui);color:var(--sp-acc-txt)!important;letter-spacing:0;text-transform:none;padding:2px 4px;border-radius:5px}
.sp-link-btn:hover{text-decoration:underline}
.sp-lbl{font:600 10px var(--sp-mono);letter-spacing:.12em;color:var(--sp-faint);text-transform:uppercase;min-width:44px}

/* sections */
.sp-sec{padding:13px 16px;border-bottom:1px solid var(--sp-edge)}
.sp-sec:last-child{border-bottom:0}
.sp-sec.first{padding-top:14px}
.sp-sec>h4{display:flex;align-items:center;gap:8px;font:600 10px/1 var(--sp-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--sp-faint);margin:0 0 11px}
.sp-sec>h4>em,.sp-sec>h4>button,.sp-sec>h4>.sp-acts{margin-left:auto;letter-spacing:0;text-transform:none;font:500 10.5px var(--sp-mono);color:var(--sp-dim);font-style:normal}
.sp-acts{display:flex;gap:4px}
.sp-sub{margin-top:10px}.sp-sub h5{font:600 10px var(--sp-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sp-faint);margin:0 0 7px}

/* ================================================================ the Lab */
.sp{position:relative;height:100%;display:grid;grid-template-columns:304px minmax(0,1fr) 316px;min-height:0;background:var(--sp-bg)}
.sp-left,.sp-insp{background:var(--sp-panel);min-height:0;display:flex;flex-direction:column}
.sp-left{border-right:1px solid var(--sp-edge)}
.sp-insp{border-left:1px solid var(--sp-edge);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--sp-edge2) transparent}
.sp-grab{display:none}
.sp-ph{padding:16px 16px 12px;border-bottom:1px solid var(--sp-edge)}
.sp-ph .eyebrow{font:600 10px var(--sp-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--sp-faint)}
.sp-ph h2{font:800 22px/1.1 var(--sp-ui);letter-spacing:-.025em;margin:6px 0 0}
.sp-ph p{margin:6px 0 0;color:var(--sp-dim);font-size:12.5px;line-height:1.5}
.sp-hint{display:flex;gap:7px;align-items:flex-start;margin-top:9px;padding:7px 9px;border-radius:8px;background:var(--sp-field);font-size:11.5px;color:var(--sp-dim);line-height:1.5}.sp-hint .sp-i{width:14px;height:14px;margin-top:2px;color:var(--sp-acc-txt)}
.sp-pbody{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--sp-edge2) transparent}
.sp-pbody.swap{animation:spIn .3s var(--sp-ease)}
@keyframes spIn{from{opacity:0;transform:translateX(-6px)}}
.sp-pfoot{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;border-top:1px solid var(--sp-edge);background:var(--sp-panel)}
.sp-centre{display:flex;flex-direction:column;padding:10px;min-width:0;min-height:0;gap:0}

/* the step bar in the header slot */
.sp-steps{display:flex;align-items:center;margin:0 auto;min-width:0}
.sp-step{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 6px;border-radius:99px;color:var(--sp-dim);background:none;border:0;cursor:pointer;font:600 12.5px var(--sp-ui);white-space:nowrap;transition:background .15s,color .15s}
.sp-step:hover{color:var(--sp-text);background:var(--sp-hover)}
.sp-step .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--sp-mono);border:1px solid var(--sp-edge2);position:relative;flex:none;transition:all .2s var(--sp-ease)}
.sp-step .n .ok{display:none;width:13px;height:13px}
.sp-step.done{color:var(--sp-text)}
.sp-step.done .n{border-color:var(--sp-sel-edge);color:var(--sp-acc-txt)}
.sp-step.done .n .k{display:none}.sp-step.done .n .ok{display:block}
.sp-step.on{color:var(--sp-text);background:var(--sp-field)}
.sp-step.on .n{background:var(--sp-text);color:var(--sp-bg);border-color:transparent}
.sp-step.on .n::before{content:"";position:absolute;inset:-3.5px;border-radius:50%;background:conic-gradient(var(--g1),var(--g2),var(--g3),var(--g4),var(--g5),var(--g1));z-index:-1;mask:radial-gradient(circle,transparent 58%,#000 61%);-webkit-mask:radial-gradient(circle,transparent 58%,#000 61%)}
.sp-stline{width:16px;height:1px;background:var(--sp-edge2);flex:none}
.sp-stline.on{background:var(--sp-sel-edge)}
.sp-htools{display:flex;gap:2px;align-items:center;flex:none}
.sp-hb{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--sp-dim);background:none;border:0;cursor:pointer}
.sp-hb:hover{background:var(--sp-hover);color:var(--sp-text)}
.sp-hb .sp-i{width:17px;height:17px}
/* Preview: an icon button, a little more present than its neighbours (a soft accent ring), never the green fill */
.sp-hb.pv{color:var(--sp-acc-txt);background:var(--sp-sel);box-shadow:inset 0 0 0 1px var(--sp-sel-edge);margin-right:4px}
.sp-hb.pv:hover{background:color-mix(in srgb,var(--sp-acc) 20%,transparent);color:var(--sp-text)}
.sp-hb.pv.on{background:var(--sp-acc);color:var(--sp-on-acc);box-shadow:none}
/* the step bar collapses by the room it really has (the header slot), not by the window width */
.sp-steps{flex:0 1 auto;min-width:0}
@container hdrslot (max-width:860px){.sp-step{padding:0 10px 0 5px}.sp-stline{width:10px}}
@container hdrslot (max-width:760px){.sp-step:not(.on) .l{display:none}.sp-step:not(.on){padding:0 4px}}
@container hdrslot (max-width:430px){.sp-step.on .l{display:none}.sp-step.on{padding:0 4px}.sp-stline{width:6px}}
@container hdrslot (max-width:380px){.sp-stline{display:none}.sp-steps{gap:2px}}
@container hdrslot (max-width:330px){.sp-htools #sp-share{display:none}}
@media (min-width:900px) and (max-width:1180px){#app[data-layout="stage"] .brand{font-size:0;gap:0;padding-right:8px}.brand .ver{display:none!important}}

/* cards (2D / 3D) */
.sp-card{position:relative;border-radius:13px;border:1px solid var(--sp-edge);background:var(--sp-stage);box-shadow:var(--sp-shadow);overflow:hidden;display:flex;flex-direction:column;min-height:0}
.sp-card.folded{flex:0 0 auto!important}
.sp-card.folded>:not(.sp-bar){display:none}
.sp-bar{display:flex;align-items:center;gap:8px;height:42px;padding:0 8px 0 12px;border-bottom:1px solid var(--sp-edge);flex:none;min-width:0;overflow:hidden}
.sp-card.folded .sp-bar{border-bottom:0}
.sp-ttl{font:600 10px var(--sp-mono);letter-spacing:.16em;color:var(--sp-faint);margin-right:2px}
.sp-bar-r{margin-left:auto;display:flex;align-items:center;gap:5px;flex:none}
.sp-tag{display:inline-flex;align-items:center;gap:6px;font:500 10.5px var(--sp-mono);color:var(--sp-dim);padding:0 8px;height:24px;border-radius:99px;border:1px solid var(--sp-edge);white-space:nowrap}
.sp-tag i{width:6px;height:6px;border-radius:50%;background:var(--sp-acc);box-shadow:0 0 8px var(--sp-acc)}
.sp-tag.sync i{background:var(--sp-faint);box-shadow:none}.sp-tag.sync.on{color:var(--sp-text)}.sp-tag.sync.on i{background:var(--sp-acc);box-shadow:0 0 8px var(--sp-acc)}
.sp-tag.cvd{border-color:var(--sp-warn);color:var(--sp-warn)}.sp-tag.cvd i{background:var(--sp-warn);box-shadow:none}
.sp-body{flex:1;min-height:0;position:relative}
.sp-pane{position:absolute;inset:0}
.sp-split{height:12px;flex:none;cursor:row-resize;display:grid;place-items:center;touch-action:none;outline:none}
.sp-split i{width:44px;height:4px;border-radius:4px;background:var(--sp-edge2);transition:background .15s,width .15s}
.sp-split:hover i,.sp-split.drag i,.sp-split:focus-visible i{background:var(--sp-acc);width:64px}
.sp-centre[data-max="2d"] .sp-split,.sp-centre[data-max="3d"] .sp-split{height:10px;cursor:pointer}

/* grid + wheel */
.sp-gw{display:flex;align-items:center;justify-content:center;gap:clamp(18px,4vw,40px);padding:12px 14px 6px}
.sp-gwrap,.sp-wwrap{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.sp-pgrid{display:grid;gap:var(--gap,4px);touch-action:none;position:relative;padding:6px;border-radius:12px;background:rgba(0,0,0,.2);box-sizing:content-box}
:root[data-theme="light"] .sp-pgrid{background:rgba(20,24,33,.05)}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .sp-pgrid{background:rgba(20,24,33,.05)}}
.sp-pgrid .cell{position:relative;border-radius:var(--rad,6px);cursor:pointer;transition:transform .16s var(--sp-ease),box-shadow .16s var(--sp-ease);outline:none;min-width:0;min-height:0}
.sp-pgrid .cell:hover{transform:scale(1.05);z-index:2;box-shadow:0 8px 20px -8px rgba(0,0,0,.55)}
.sp-pgrid .cell.is-sel{z-index:3;box-shadow:0 0 0 2px var(--sp-panel),0 0 0 4px var(--sp-ring),0 12px 26px -10px rgba(0,0,0,.6);transform:scale(1.06)}
.sp-pgrid .cell.is-multi{box-shadow:0 0 0 2px var(--sp-panel),0 0 0 3.5px var(--sp-ring)}
.sp-pgrid .cell.drag{opacity:.35}
.sp-pgrid .cell.target{transform:scale(1.1);box-shadow:0 0 0 2px var(--sp-panel),0 0 0 4px var(--sp-acc)}
.sp-pgrid .cell .lk{position:absolute;right:max(2px,7%);top:max(2px,7%);width:clamp(11px,28%,18px);height:clamp(11px,28%,18px);border-radius:50%;display:none;place-items:center;background:rgba(10,12,16,.72);color:#fff}
.sp-pgrid .cell .lk .sp-i{width:62%;height:62%}
.sp-pgrid .cell.locked .lk{display:grid}
.sp-pgrid .cell .hx{display:none;position:absolute;left:4px;bottom:3px;font:600 9px var(--sp-mono);opacity:.85}
.sp-pgrid.hexes .cell .hx{display:block}
.sp-pgrid .cell.is-pop{animation:spPop .4s var(--sp-ease) both}
@keyframes spPop{0%{transform:scale(.8);opacity:.4}100%{transform:none;opacity:1}}
.sp-cap{display:flex;justify-content:space-between;width:100%;gap:12px;font:500 10px var(--sp-mono);letter-spacing:.04em;color:var(--sp-faint);padding:8px 2px 0;white-space:nowrap}
.sp-wrow{display:flex;align-items:center;gap:10px}
.sp-wbox{position:relative;touch-action:none}
.sp-wbox canvas{display:block;position:absolute;left:0;top:0}
.sp-wbox .sp-wov{cursor:grab;outline:none;border-radius:50%}
.sp-wbox .sp-wov.grab{cursor:grabbing}
.sp-wbox .sp-wov:focus-visible{box-shadow:0 0 0 3px var(--sp-sel-edge)}
.sp-lsl{display:flex;flex-direction:column;align-items:center;gap:6px;width:26px}
.sp-lsl .bar{flex:1;width:10px;border-radius:10px;position:relative;cursor:ns-resize;box-shadow:0 0 0 1px var(--sp-edge2) inset;touch-action:none}
.sp-lsl .bar i{position:absolute;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.5)}
.sp-lsl span{font:600 9.5px var(--sp-mono);color:var(--sp-faint)}
.sp-ghost{position:fixed;left:0;top:0;width:46px;height:46px;border-radius:12px;z-index:900;pointer-events:none;box-shadow:0 0 0 2px #fff,0 18px 40px -10px rgba(0,0,0,.7)}
.sp-ctip{position:fixed;z-index:900;pointer-events:none;padding:8px 11px;border-radius:10px;background:var(--sp-glass);border:1px solid var(--sp-glass-edge);box-shadow:var(--sp-shadow-sm);font-size:12px;line-height:1.5;backdrop-filter:blur(14px);color:var(--sp-text)}
.sp-ctip .tsw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:6px;box-shadow:0 0 0 1px rgba(255,255,255,.2) inset}
.sp-ctip code{font:500 11px var(--sp-mono);color:var(--sp-dim);margin-left:6px}
.sp-ctip .d{color:var(--sp-faint);font:500 10.5px var(--sp-mono)}
.sp-ctip .lk{font:600 9.5px var(--sp-mono);padding:1px 5px;border-radius:4px;border:1px solid var(--sp-edge2);margin-left:4px}

/* scales */
.sp-sc{overflow:auto;padding:12px 14px}
.sp-scales{min-width:520px}
.sp-shead{display:grid;grid-template-columns:150px 1fr 26px;font:500 9.5px var(--sp-mono);color:var(--sp-faint);margin-bottom:6px}
.sp-shead{grid-template-columns:150px repeat(var(--st,11),1fr) 26px}
.sp-shead span{text-align:center}
.sp-srow{display:grid;grid-template-columns:150px 1fr 26px;align-items:center;gap:8px;margin-bottom:7px;padding:3px;border-radius:10px;border:1px solid transparent}
.sp-srow.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-sname{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;min-width:0;padding:2px 4px;border-radius:7px}
.sp-sname:hover{background:var(--sp-hover)}
.sp-sname i{grid-row:1/3;width:20px;height:20px;border-radius:6px;box-shadow:0 0 0 1px rgba(255,255,255,.14) inset}
.sp-sname b{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-sname small{font:500 9.5px var(--sp-mono);color:var(--sp-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-ramp{display:grid;gap:2px;height:38px}
.sp-ramp .sw{box-shadow:inset 0 0 0 1px rgba(128,128,128,.12);border-radius:5px;position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;font:600 8.5px var(--sp-mono);transition:transform .14s}
.sp-ramp .sw span{opacity:0;transition:opacity .14s}
.sp-ramp .sw:hover{transform:scaleY(1.12);z-index:1}.sp-ramp .sw:hover span{opacity:.85}
.sp-ramp .sw.base{box-shadow:0 0 0 2px var(--sp-ring)}
.sp-cap2{font-size:11px;color:var(--sp-faint);margin:12px 0 2px;max-width:70ch}

/* mockup */
.sp-mk{padding:12px 14px;overflow:auto;display:grid;place-items:center}
.sp-mock{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;width:100%;max-width:1040px;height:min(100%,460px);min-height:250px}
.sp-mock .mk-land{border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--sp-shadow);min-width:0;overflow:hidden}
.mk-nav{display:flex;gap:12px;align-items:center;font-size:11.5px;opacity:.85}.mk-nav b{font-size:16px}
.mk-nav em{margin-left:auto;font:600 9.5px var(--sp-mono);padding:3px 8px;border-radius:99px;font-style:normal;letter-spacing:.06em}
.sp-mock h5{font:800 clamp(17px,2vw,24px)/1.12 var(--sp-ui);letter-spacing:-.015em;margin:4px 0 0}
.sp-mock h5 u{text-decoration-thickness:4px;text-underline-offset:3px}
.sp-mock p{font-size:12px;max-width:40ch;margin:0;line-height:1.5}
.mk-btns{display:flex;gap:8px;margin-top:2px}.mk-btns span{padding:8px 13px;border-radius:8px;font-weight:700;font-size:12px}
.mk-art{flex:1;min-height:40px;position:relative;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,var(--card),var(--ln))}.mk-art i{position:absolute;bottom:14%;box-shadow:0 12px 24px -10px rgba(0,0,0,.4)}
.mk-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mk-feats div{border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px;min-width:0}.mk-feats i{width:22px;height:22px;border-radius:7px;margin-bottom:2px}.mk-feats b{font-size:12px}.mk-feats small{font-size:10.5px}
.mk-w{display:flex;height:10px;border-radius:6px;overflow:hidden;margin-top:8px;gap:2px;flex:none}.mk-w i{min-width:2px}
.mk-side{display:grid;grid-template-columns:1fr 112px;gap:10px;min-width:0}
.mk-dash{border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--sp-shadow);min-width:0}
.mk-dh{display:flex;justify-content:space-between;align-items:center;font-size:12px}.mk-dh span{font:600 9.5px var(--sp-mono);padding:2px 6px;border-radius:99px}
.mk-num b{display:block;font:800 22px var(--sp-ui)}.mk-num small{font-size:10.5px}
.mk-bars{flex:1;display:flex;align-items:flex-end;gap:4px;min-height:40px}.mk-bars i{flex:1;border-radius:4px 4px 2px 2px}
.mk-phone{border-radius:18px;padding:8px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.mk-ph{border-radius:10px;padding:8px;display:flex;flex-direction:column;font-size:11px}.mk-ph small{opacity:.75;font-size:9.5px}
.mk-row{border-radius:8px;padding:6px;display:flex;gap:6px;align-items:center;font-size:10px}.mk-row i{width:12px;height:12px;border-radius:4px}
.mk-fab{position:absolute;right:10px;bottom:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}

/* 3D viewport */
.sp-vp{flex:1;position:relative;background:var(--sp-vp);min-height:0}
.sp-vp>canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:grab}
.sp-hud{position:absolute;left:10px;bottom:10px;display:flex;gap:5px;pointer-events:none;z-index:2;flex-wrap:wrap}
.sp-hud span{font:500 10px var(--sp-mono);color:var(--sp-dim);background:var(--sp-glass);border:1px solid var(--sp-glass-edge);padding:4px 7px;border-radius:6px;backdrop-filter:blur(8px)}
.sp-hover{position:absolute;right:10px;bottom:10px;z-index:2;display:flex;gap:7px;align-items:center;font:500 11px var(--sp-mono);color:var(--sp-dim);background:var(--sp-glass);border:1px solid var(--sp-glass-edge);padding:5px 9px;border-radius:8px;backdrop-filter:blur(8px);pointer-events:none}
.sp-hover b{font:600 11.5px var(--sp-ui);color:var(--sp-text)}.sp-hover i{width:10px;height:10px;border-radius:3px}
.sp-seg.mats button{padding:0 8px}
.sp-c3d,.sp-c2d{container-type:inline-size}
@container (max-width:900px){.sp-c3d .sp-bar>.sp-seg:first-of-type button span{display:none}.sp-c3d .sp-bar>.sp-seg:first-of-type button{width:32px;padding:0}}
@container (max-width:780px){.sp-seg.mats{overflow-x:auto;scrollbar-width:none;flex:0 1 auto;min-width:0}.sp-seg.mats::-webkit-scrollbar{display:none}.sp-seg.mats button{padding:0 6px;font-size:11.5px}.sp-ttl{display:none}}
@container (max-width:720px){.sp-c2d .sp-bar>.sp-seg button span{display:none}.sp-c2d .sp-bar>.sp-seg button{width:32px;padding:0}}

/* colour vision: every swatch view */
html[data-cvd="PROTAN"] .sp-sim{filter:url(#sp-cvd-PROTAN)}html[data-cvd="DEUTAN"] .sp-sim{filter:url(#sp-cvd-DEUTAN)}
html[data-cvd="TRITAN"] .sp-sim{filter:url(#sp-cvd-TRITAN)}html[data-cvd="ACHROMA"] .sp-sim{filter:url(#sp-cvd-ACHROMA)}

/* inspector */
.sp-selh{display:grid!important;grid-template-columns:58px 1fr auto;gap:12px;align-items:center}
.sp-bigsw{width:58px;height:58px;border-radius:13px;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 10px 24px -10px var(--c,#000)}
.sp-bigsw input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.sp-selh .who{min-width:0}
.sp-selh h3{font:700 16px/1.2 var(--sp-ui);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-selh .sp-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:5px}
.sp-selh .sp-meta .role{font:600 9.5px/1 var(--sp-mono);padding:4px 6px;border-radius:5px;border:1px solid var(--sp-sel-edge);text-transform:uppercase;letter-spacing:.04em}
.sp-selh .sp-meta em{font:500 10.5px var(--sp-mono);color:var(--sp-faint);font-style:normal}
.sp-selh .sp-hacts{display:flex;flex-direction:column;gap:2px}
.sp-lrow{display:grid;grid-template-columns:14px 1fr 64px;align-items:center;gap:10px;margin-bottom:8px}
.sp-lrow:last-child{margin-bottom:0}
.sp-lrow b{font:600 11px var(--sp-mono);color:var(--sp-dim)}
.sp-lrow .sp-val{height:26px;border-radius:7px;background:var(--sp-field);display:flex;align-items:center;justify-content:flex-end;padding:0 8px}
.sp-vals{display:contents}
.sp-tint{display:grid;grid-template-columns:repeat(11,1fr);gap:2px}
.sp-tint button{height:28px;border-radius:4px;transition:transform .14s;box-shadow:inset 0 0 0 1px rgba(128,128,128,.14)}
.sp-tint button:hover{transform:scaleY(1.15)}
.sp-tint button.b{box-shadow:0 0 0 2px var(--sp-ring)}
.sp-tlab{display:grid;grid-template-columns:repeat(11,1fr);gap:2px;font:500 8.5px var(--sp-mono);color:var(--sp-faint);text-align:center;margin-top:4px}
.sp-cm{display:grid;gap:2px}
.sp-cm>div,.sp-cm>button{height:26px;border-radius:4px;display:grid;place-items:center;font:600 9.5px var(--sp-mono);position:relative;min-width:0}
.sp-cm .hd{height:14px}
.sp-cm .hd i,.sp-cm .rh i{width:12px;height:12px;border-radius:4px;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.18) inset}
.sp-cm .rh.me i{box-shadow:0 0 0 2px var(--sp-ring)}
.sp-cm .x{opacity:.35}
.sp-cm button.c{cursor:pointer;transition:transform .12s}
.sp-cm button.c:hover{transform:scale(1.08);z-index:2;box-shadow:0 4px 12px -4px rgba(0,0,0,.5)}
.sp-cm button.on{outline:2px solid var(--sp-ring);outline-offset:-2px;z-index:2}
.sp-cm button.me{outline:1px solid color-mix(in srgb,var(--sp-ring) 45%,transparent);outline-offset:-1px}
.sp-cm [data-g]::after{content:"";position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
.sp-cm [data-g="AAA"]::after{background:#52e052}.sp-cm [data-g="AA"]::after{background:#bdf5bd}.sp-cm [data-g="AA large"]::after{background:#ffb13b}
.sp-cleg{display:flex;gap:10px;margin-top:8px;font:500 10px var(--sp-mono);color:var(--sp-faint);align-items:center}
.sp-cleg span{display:flex;align-items:center;gap:4px}
.sp-cleg i{width:6px;height:6px;border-radius:50%}.sp-cleg .g3{background:#52e052}.sp-cleg .g2{background:#bdf5bd}.sp-cleg .g1{background:#ffb13b}
.sp-cleg b{margin-left:auto;font-weight:500;color:var(--sp-dim)}
.sp-pair{margin-top:10px}
.sp-pair .pv{display:flex;gap:10px;align-items:baseline;padding:10px 12px;border-radius:9px 9px 0 0;box-shadow:0 0 0 1px var(--sp-edge) inset}
.sp-pair .pv b{font:800 20px var(--sp-ui)}.sp-pair .pv span{font-size:12.5px}
.sp-pair .pm{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--sp-edge);border-top:0;border-radius:0 0 9px 9px}
.sp-pair .pm b{font:600 13px var(--sp-mono)}.sp-pair .pm span{font-size:11px;color:var(--sp-dim)}
.sp-pair .fx{display:flex;gap:6px;width:100%}
.sp-seg.vis{display:grid;grid-template-columns:repeat(5,1fr)}
.sp-seg.vis button{padding:0 2px}

/* left panel content */
.sp-seg.src button{flex-direction:column;height:46px;gap:3px;font-size:11px}
.sp-seedrow{display:flex;gap:10px;align-items:center}
.sp-seedsw{width:54px;height:54px;border-radius:13px;flex:none;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 8px 20px -10px rgba(0,0,0,.6)}
.sp-seedsw input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.sp-seedrow .meta{flex:1;min-width:0}
.sp-seedrow .nm b{font-weight:600;font-size:13px}.sp-seedrow .nm small{display:block;font:500 10.5px var(--sp-mono);color:var(--sp-faint);margin-top:2px}
.sp-seedrow .sp-inrow{margin-top:6px}
.sp-harms{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sp-hcard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:7px 8px 8px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left;transition:all .15s var(--sp-ease);min-width:0}
.sp-hcard canvas{width:100%;height:auto;display:block}
.sp-hcard b{font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sp-hcard:hover{border-color:var(--sp-edge2);transform:translateY(-1px)}
.sp-hcard.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-plist{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.sp-pcard{display:grid;grid-template-columns:1fr auto;gap:4px 6px;padding:6px 7px 7px;border-radius:9px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left;min-width:0;transition:all .14s}
.sp-pcard .art{grid-column:1/3;height:22px;display:flex;border-radius:5px;overflow:hidden}.sp-pcard .art i{flex:1}
.sp-pcard b{font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-pcard small{font:500 10px var(--sp-mono);color:var(--sp-faint)}
.sp-pcard:hover{border-color:var(--sp-edge2)}.sp-pcard.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-drop{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:20px 12px;border:1.5px dashed var(--sp-edge2);border-radius:12px;color:var(--sp-dim);background:var(--sp-panel2);margin-bottom:8px;transition:all .16s}
.sp-drop:hover{border-color:var(--sp-text);color:var(--sp-text)}
.sp-drop .sp-i{width:24px;height:24px;color:var(--sp-text)}
.sp-drop b{color:var(--sp-text);font-size:13px}.sp-drop small{font-size:11px}
.sp-drop .sp-spin{width:24px;height:24px;border:3px solid var(--sp-edge2);border-top-color:var(--sp-text);border-radius:50%;animation:spSpin .8s linear infinite}
@keyframes spSpin{to{transform:rotate(360deg)}}
html.sp-dropping .sp::after{content:"Drop the image to read its colours";position:absolute;inset:10px;border:2px dashed var(--sp-acc);border-radius:16px;background:rgba(82,224,82,.06);display:grid;place-items:center;font:700 18px var(--sp-ui);color:var(--sp-text);z-index:40;pointer-events:none;backdrop-filter:blur(2px)}
.sp-imgprev{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--sp-edge);background:#000;touch-action:none}
.sp-imgprev{margin:0 auto}
.sp-imgprev img{display:block;width:100%;height:100%;object-fit:fill;user-select:none}
.sp-imgprev .marks{position:absolute;left:0;top:0;right:0;bottom:0}
.sp-imgprev .pt{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.45),0 3px 8px rgba(0,0,0,.45);cursor:grab;transition:transform .12s}
.sp-imgprev .pt:hover{transform:scale(1.15)}
.sp-imgprev .pt.drag{cursor:grabbing;transform:scale(1.25)}
.sp-imgprev .loupe{position:absolute;width:90px;height:90px;margin:-112px 0 0 -45px;pointer-events:none;filter:drop-shadow(0 8px 16px rgba(0,0,0,.5));z-index:3}
.sp-imgprev .meta{position:absolute;left:6px;right:6px;bottom:6px;display:flex;gap:5px;align-items:center}
.sp-imgprev .meta span{font:500 10px var(--sp-mono);padding:3px 6px;border-radius:6px;background:rgba(8,10,14,.72);color:#e9edf3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.sp-imgprev .meta i{flex:1}
.sp-btn.glassy{background:rgba(8,10,14,.72);color:#e9edf3;border-color:rgba(255,255,255,.18);height:24px;font-size:11px;padding:0 8px}
.sp-mcards{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sp-mcard{padding:7px 8px 8px;border-radius:9px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left;transition:all .14s}
.sp-mcard .strip{height:16px;border-radius:5px;overflow:hidden;display:flex;margin-bottom:6px;background:var(--sp-field)}
.sp-mcard .strip i{flex:1}.sp-mcard .strip span{font:500 9.5px var(--sp-mono);color:var(--sp-faint);margin:auto}
.sp-mcard b{font-weight:600;font-size:11.5px}
.sp-mcard:hover{border-color:var(--sp-edge2)}.sp-mcard.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-rollart{display:grid;place-items:center;border-radius:12px;background:var(--sp-panel2);border:1px solid var(--sp-edge);margin-bottom:6px}
.sp-rollart canvas{width:300px;max-width:100%;height:auto}
.sp-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.sp-scard{display:flex;flex-direction:column;border-radius:9px;overflow:hidden;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left;transition:all .14s}
.sp-scard img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.sp-scard b{font-weight:600;font-size:10.5px;padding:5px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-scard:hover{border-color:var(--sp-edge2);transform:translateY(-1px)}
.sp-libgal{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.sp-libcard{display:flex;align-items:center;gap:4px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2);padding:4px 4px 4px 4px}
.sp-libcard .open{display:flex;align-items:center;gap:9px;flex:1;min-width:0;text-align:left;padding:2px;border-radius:7px}
.sp-libcard .open:hover{background:var(--sp-hover)}
.sp-libcard canvas{width:34px;height:34px;border-radius:6px;flex:none}
.sp-libcard b{display:block;font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-libcard small{font:500 10px var(--sp-mono);color:var(--sp-faint)}
.sp-wbar{display:flex;height:28px;border-radius:8px;overflow:hidden;gap:2px}
.sp-wbar div{display:flex;align-items:flex-end;padding:0 0 3px 5px;font:600 9.5px var(--sp-mono);min-width:3px;overflow:hidden;white-space:nowrap;transition:flex .3s var(--sp-ease)}
.sp-wleg{display:flex;justify-content:space-between;margin:7px 0 8px}
.sp-wleg button{font:500 10.5px var(--sp-mono);color:var(--sp-faint);padding:3px 6px;border-radius:6px}
.sp-wleg button:hover:not(:disabled){background:var(--sp-hover);color:var(--sp-text)}
.sp-wleg button b{color:var(--sp-dim);font-weight:600}
.sp-wleg button:disabled{opacity:.4;cursor:default}
.sp-layers{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.sp-layers li{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:6px 6px 6px 6px;border-radius:9px;cursor:pointer;border:1px solid transparent;outline:none}
.sp-layers li:hover{background:var(--sp-hover)}
.sp-layers li:focus-visible{box-shadow:0 0 0 2px var(--sp-sel-edge)}
.sp-layers li.on{background:var(--sp-sel);border-color:var(--sp-sel-edge)}
.sp-layers .big{width:30px;height:30px;border-radius:8px;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 4px 10px -4px rgba(0,0,0,.5)}
.sp-layers .who{min-width:0}.sp-layers .who b{display:block;font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-layers .who small{font:500 10px var(--sp-mono);color:var(--sp-faint);white-space:nowrap}
.sp-layers .role{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sp-layers select{appearance:none;-webkit-appearance:none;font:600 9.5px/1 var(--sp-mono);padding:4px 6px;border-radius:5px;border:1px solid var(--sp-edge2);color:var(--sp-dim);background:transparent;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:center}
.sp-layers select.set{border-color:var(--sp-sel-edge);color:var(--sp-text)}
.sp-layers li.on select{color:var(--sp-text)}
.sp-layers select option{background:var(--sp-panel2);color:var(--sp-text);text-transform:none}
.sp-layers i{font:500 10px var(--sp-mono);color:var(--sp-faint);font-style:normal}
.sp-adj{display:grid;grid-template-columns:78px 1fr 46px;gap:8px;align-items:center;margin-bottom:6px}
.sp-adj .lb{font-size:12px;color:var(--sp-dim)}
.sp-icons4{display:flex;gap:4px;margin-top:9px}
.sp-icons4 .sp-ib{flex:1;height:32px;border:1px solid var(--sp-edge);background:var(--sp-panel2)}
.sp-pairs h5{font:600 10px var(--sp-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sp-faint);margin:12px 0 6px}
.sp-prow{display:grid;grid-template-columns:34px 1fr auto auto;gap:8px;align-items:center;padding:4px 0}
.sp-prow .pv{height:26px;border-radius:6px;display:grid;place-items:center;font:800 12px var(--sp-ui);box-shadow:0 0 0 1px var(--sp-edge) inset}
.sp-prow .who{min-width:0}.sp-prow .who b{display:block;font-weight:600;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-prow .who small{font:500 10px var(--sp-mono);color:var(--sp-faint)}
.sp-wtx{display:flex;flex-direction:column;gap:6px}
.sp-wrow{display:flex;gap:9px;align-items:center}
.sp-wrow .aa{width:36px;height:26px;border-radius:6px;display:grid;place-items:center;font:700 12px var(--sp-ui);flex:none;box-shadow:0 0 0 1px var(--sp-edge) inset}
.sp-wrow .who{flex:1;min-width:0;font-size:12px}.sp-wrow .who small{display:block;color:var(--sp-faint);font-size:11px}
.sp-confuse{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.sp-crow{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--sp-dim)}
.sp-crow i{width:16px;height:16px;border-radius:5px;flex:none}.sp-crow span{flex:1}
.sp-values{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.sp-values .v{display:flex;flex-direction:column;align-items:center;gap:2px}
.sp-values .v i{width:30px;height:18px;border-radius:4px}.sp-values .v i:first-child{border-radius:5px 5px 0 0}.sp-values .v i:nth-child(2){border-radius:0 0 5px 5px;margin-top:-2px}
.sp-values .v small{font:500 9.5px var(--sp-mono);color:var(--sp-faint)}
.sp-values .sp-note{flex-basis:100%;margin:2px 0 0}
.sp-badsw{display:flex;flex-wrap:wrap;gap:3px;margin:8px 0}
.sp-badsw i{width:18px;height:18px;border-radius:4px}
.sp-vcards{display:grid;gap:6px}
.sp-vcard{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:9px 10px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left}
.sp-vcard .sp-i{grid-row:1/3;width:20px;height:20px;color:var(--sp-dim)}
.sp-vcard b{font-weight:600;font-size:12.5px}.sp-vcard small{font-size:11px;color:var(--sp-faint)}
.sp-vcard.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}.sp-vcard.on .sp-i{color:var(--sp-acc-txt)}
.sp-link{display:flex;flex-direction:column;gap:6px}
.sp-lstate{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2)}
.sp-lstate .ldot{width:9px;height:9px;border-radius:50%;background:var(--sp-faint);flex:none}
.sp-lstate[data-state="on"]{border-color:var(--sp-sel-edge)}.sp-lstate[data-state="on"] .ldot{background:var(--sp-acc);box-shadow:0 0 10px var(--sp-acc)}
.sp-lstate[data-state="pair"] .ldot,.sp-lstate[data-state="look"] .ldot{background:var(--sp-warn)}
.sp-lstate[data-state="err"] .ldot,.sp-lstate[data-state="lna"] .ldot{background:var(--sp-bad)}
.sp-lhelp p{font-size:11.5px;color:var(--sp-dim);margin:0 0 4px;line-height:1.5}
.sp-more{margin-top:10px;font-size:11.5px;color:var(--sp-dim)}
.sp-more summary{cursor:pointer;color:var(--sp-text);font-weight:600}
.sp-more ul{margin:8px 0 0;padding-left:16px;line-height:1.55}.sp-more li b{color:var(--sp-text)}
.sp-laycards{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.sp-laycard{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left}
.sp-laycard canvas{width:100%;height:auto;border-radius:5px}
.sp-laycard b{font-weight:600;font-size:12px}.sp-laycard small{font-size:10.5px;color:var(--sp-faint)}
.sp-laycard.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-prevwrap{display:grid;place-items:center;padding:12px;border-radius:10px;background:repeating-conic-gradient(var(--sp-field) 0 25%,var(--sp-panel2) 0 50%) 0 0/14px 14px;margin:10px 0 0;border:1px solid var(--sp-edge)}
.sp-exprev{max-width:100%;max-height:200px;width:auto;height:auto;border-radius:4px;box-shadow:var(--sp-shadow-sm)}
.sp-code{font:11px/1.6 var(--sp-mono);background:var(--code);border:1px solid var(--sp-edge);border-radius:10px;padding:10px 12px;max-height:190px;overflow:auto;white-space:pre;color:var(--sp-dim);margin:8px 0}
.sp-bins{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.sp-bin{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;border-radius:10px;border:1px solid var(--sp-edge);background:var(--sp-panel2);text-align:left}
.sp-bin:hover{border-color:var(--sp-edge2)}.sp-bin .sp-i{color:var(--sp-dim)}
.sp-bin b{font-weight:600;font-size:11.5px}.sp-bin small{font:500 10px var(--sp-mono);color:var(--sp-faint)}
.sp-lib .sp-inrow{margin-top:0}

/* overlay layer: tooltips + toasts */
.sp-layer{position:fixed;left:0;top:0;width:0;height:0;z-index:1000}
.sp-tip{position:fixed;pointer-events:none;padding:6px 9px;border-radius:8px;background:var(--sp-glass);border:1px solid var(--sp-glass-edge);font:500 11.5px var(--sp-ui);color:var(--sp-text);max-width:280px;opacity:0;transform:translateY(3px);transition:opacity .12s,transform .12s;box-shadow:var(--sp-shadow-sm);backdrop-filter:blur(14px);display:flex;gap:7px;align-items:center}
.sp-tip.on{opacity:1;transform:none}
.sp-toasts{position:fixed;left:50%;top:64px;transform:translateX(-50%);display:flex;flex-direction:column;gap:7px;align-items:center;pointer-events:none;width:max-content;max-width:calc(100vw - 24px)}
.sp-toast{display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:11px;background:var(--sp-glass);border:1px solid var(--sp-glass-edge);box-shadow:var(--sp-shadow-sm);backdrop-filter:blur(18px);font-size:12.5px;color:var(--sp-text);animation:spToast .24s var(--sp-ease);max-width:560px}
.sp-toast .sp-i{width:16px;height:16px}.sp-toast.ok .sp-i{color:var(--sp-acc-txt)}.sp-toast.warn .sp-i{color:var(--sp-warn)}.sp-toast.info .sp-i{color:var(--sp-dim)}
.sp-toast .sw{width:14px;height:14px;border-radius:4px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.2) inset}
.sp-toast.out{opacity:0;transform:translateY(-6px);transition:all .22s}
@keyframes spToast{from{opacity:0;transform:translateY(-8px) scale(.98)}}
.sp-keys{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px}
.sp-keys h3{font:600 10px var(--sp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sp-faint);margin:8px 0 6px}
.sp-keys dl{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;margin:0;font-size:12px}
.sp-keys dt{white-space:nowrap}.sp-keys dd{margin:0;color:var(--sp-dim)}
.sp-keys .sp-note{grid-column:1/-1}
.sp-hist{display:flex;flex-direction:column;gap:2px;max-height:52vh;overflow:auto;margin-top:6px}
.sp-hist .sp-hrow{display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;border:1px solid transparent;background:none;color:var(--sp-text);cursor:pointer;text-align:left;font:inherit}
.sp-hist .sp-hrow:hover{background:var(--sp-hover)}
.sp-hist .sp-hrow.on{border-color:var(--sp-sel-edge);background:var(--sp-sel)}
.sp-hist .sp-hrow.fut{opacity:.5}
.sp-hist canvas{width:120px;height:14px;border-radius:3px}
.sp-hist small{font:500 10.5px var(--sp-mono);color:var(--sp-faint)}

/* ================================================================ Preview (P): a simple presentation mode */
.sp-canvas{position:fixed;inset:0;z-index:90;background:var(--sp-bg);display:flex;overflow:hidden}
.cv-stage{position:absolute;inset:0}
.cv-cols{position:absolute;inset:0;display:flex}
.cv-col{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 112px;border:0;cursor:copy;transition:flex .35s var(--sp-ease),background-color .45s;container-type:inline-size;font:inherit}
.cv-col:hover,.cv-col:focus-visible{flex-grow:1.18}
.cv-col.on{box-shadow:inset 0 -5px 0 currentColor}
.cv-col .meta{padding:0 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.cv-col .hex{font:800 clamp(13px,15cqw,32px)/1 var(--sp-ui);letter-spacing:.015em}
.cv-col .nm{font:600 clamp(11px,7cqw,15px)/1.2 var(--sp-ui);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cv-col .ok{font:500 11px/1.2 var(--sp-mono);opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cv-grid{position:absolute;inset:0;display:grid}
.cv-grid>div{position:relative;display:flex;align-items:flex-end;padding:10px 12px;font:600 11.5px var(--sp-mono);cursor:copy;transition:background-color .45s}
.cv-grid>div span{opacity:0;transition:opacity .15s}
.cv-grid>div:hover span,.cv-grid>div.on span{opacity:.9}
.cv-grid>div.on{box-shadow:inset 0 0 0 3px currentColor}
.cv-bar{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;border-radius:18px;background:var(--sp-glass);border:1px solid var(--sp-glass-edge);box-shadow:var(--sp-shadow);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);z-index:5;white-space:nowrap;max-width:calc(100vw - 24px)}
.cv-bar .pv-title{font:600 12.5px var(--sp-ui);color:var(--sp-dim);padding:0 8px 0 10px;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.cv-bar .cb{display:flex;align-items:center;gap:8px;height:40px;padding:0 11px;border-radius:12px;font-weight:600;font-size:13px;color:var(--sp-text);cursor:pointer}
.cv-bar .cb:hover{background:var(--sp-hover2)}
.cv-bar .cb .sp-i{width:17px;height:17px}
.cv-bar .sep{width:1px;height:26px;background:var(--sp-edge2);margin:0 3px}
.cb-roll{display:flex;align-items:center;gap:9px;height:40px;padding:0 14px 0 12px;border-radius:12px;background:var(--sp-acc);color:var(--sp-on-acc);font-weight:700;font-size:13.5px;box-shadow:0 8px 22px -8px rgba(82,224,82,.7),0 1px 0 rgba(255,255,255,.4) inset;cursor:pointer}
.cb-roll:hover{background:var(--sp-acc-hi)}
.cb-roll .sp-i{width:17px;height:17px}
.cb-roll kbd{background:rgba(0,0,0,.14)!important;border-color:rgba(0,0,0,.18)!important;color:var(--sp-on-acc)!important}
.cv-bar .cb-seg{background:var(--sp-field)}.cv-bar .cb-seg button{height:34px;padding:0 10px}
.cv-pop{position:fixed;z-index:950;min-width:260px;padding:8px;border-radius:14px;background:var(--sp-glass);border:1px solid var(--sp-glass-edge);box-shadow:var(--sp-shadow);backdrop-filter:blur(24px) saturate(160%);color:var(--sp-text);animation:spToast .2s var(--sp-ease)}
.cv-pop h4{font:600 10px/1 var(--sp-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--sp-faint);margin:6px 8px 8px}
.cv-pop .opt{display:flex;align-items:center;gap:12px;width:100%;padding:7px 9px;border-radius:9px;text-align:left;background:none;border:0;color:inherit;cursor:pointer;font:inherit}
.cv-pop .opt:hover{background:var(--sp-hover2)}
.cv-pop .opt b{display:block;font-weight:600;font-size:13px}.cv-pop .opt small{font-size:11.5px;color:var(--sp-dim)}
.sp .sp-ptabs,.sp-thumb,.sp-scrim,.sp-moresheet{display:none}

/* ================================================================ narrower desktops: the inspector stays */
@media (max-width:1500px){#app[data-layout="stage"] .hbtn.top .lbl2{display:none}.hbtn.top{width:34px;padding:0;justify-content:center}}
@media (max-width:1360px){.sp{grid-template-columns:282px minmax(0,1fr) 292px}.sp-seg.mats button{padding:0 6px;font-size:11.5px}}
@media (max-width:1180px){.sp{grid-template-columns:258px minmax(0,1fr) 266px}.sp-tag:not(.sync):not(.cvd){display:none}.sp-ph p{font-size:12px}}

/* ================================================================ phone: a compact Lab (step bar, 2D + 3D cards, Step / Inspect tabs) */
@media (max-width:899px){
  #app[data-layout="stage"] .topbar{min-height:48px;padding:4px 8px;flex-wrap:wrap;row-gap:0}
  #app[data-layout="stage"] .topbar .wstabs{order:0;flex:0 0 auto;padding:0}
  #app[data-layout="stage"] .topbar .ws{padding:5px 8px;font-size:12px}
  #app[data-layout="stage"] .brand{border:0;padding-right:4px;margin:0;font-size:0;gap:0}
  .brand .ver{display:none!important}
  #app[data-layout="stage"] .hdrslot{order:20;flex:1 0 100%;margin:0 -8px;padding:4px 6px 6px;border-top:1px solid var(--sp-edge);overflow-x:auto;scrollbar-width:none;justify-content:center}
  .sp-htools,#samplesbtn,#savebtn,#redo,.topbar .tsep{display:none!important}
  .sp-steps{margin:0}
  .sp-step{height:32px;padding:0 4px}.sp-step .n{width:24px;height:24px}.sp-step:not(.on) .l{display:none}.sp-step.on{padding:0 11px 0 4px}
  .sp-stline{width:8px}
  .sp{display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .sp-centre{order:0;flex:none;padding:8px 8px 0;gap:0}
  .sp-centre .sp-c2d{flex:none!important;height:236px}
  .sp-centre .sp-c3d{flex:none!important;height:300px;margin-top:8px}
  .sp-card.folded>:not(.sp-bar){display:flex}
  .sp-split{display:none}
  .sp-bar{height:auto;min-height:40px;flex-wrap:wrap;padding:5px 8px;gap:5px}
  .sp-ttl,.sp-maxb,.sp-tag,.sp-seg.lights,.sp-bar-r .sp-ib:not(.sp-maxb){display:none}
  .sp-seg.mats{max-width:100%;overflow-x:auto;scrollbar-width:none}
  .sp-gw{gap:10px;padding:8px}
  .sp-cap,.sp-lsl{display:none}
  .sp-scales{min-width:0}.sp-shead{display:none}.sp-srow{grid-template-columns:96px 1fr 0}.sp-srow .sp-ib{display:none}
  .sp-mock{grid-template-columns:1fr;height:auto}.mk-side{grid-template-columns:1fr 100px}.mk-art{display:none}
  .sp-ptabs{display:flex!important;order:1;margin:10px 8px 0;flex:none;position:sticky;top:0;z-index:5;box-shadow:0 0 0 6px var(--sp-bg)}
  .sp-ptabs button{height:34px;font-size:12.5px}
  .sp-left,.sp-insp{order:2;flex:none;margin:8px 8px 0;border:1px solid var(--sp-edge);border-radius:13px;overflow:visible;min-height:0}
  html:not([data-ptab="insp"]) .sp-insp,html[data-ptab="insp"] .sp-left{display:none}
  .sp-pbody{overflow:visible;flex:none}
  .sp-pfoot{border-radius:0 0 13px 13px}
  .sp-ph{padding:14px 14px 10px}.sp-ph h2{font-size:19px}
  .sp-thumb{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding:6px 6px env(safe-area-inset-bottom,0px);justify-content:space-around;align-items:center;background:var(--sp-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--sp-edge);z-index:62}
  .sp-thumb .tb{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:var(--sp-dim);width:62px;height:52px;justify-content:center;border-radius:12px;white-space:nowrap}
  .sp-thumb .tb .sp-i{width:20px;height:20px}
  .sp-thumb .tb.on{color:var(--sp-text);background:var(--sp-hover2)}
  .tb-roll{width:56px;height:46px;border-radius:15px;background:var(--sp-acc);color:var(--sp-on-acc);display:grid;place-items:center;box-shadow:0 8px 22px -8px rgba(82,224,82,.8)}
  .tb-roll .sp-i{width:22px;height:22px}
  .sp-scrim{display:block;position:fixed;inset:0;z-index:58;background:rgba(5,7,10,.45);backdrop-filter:blur(2px)}
  .sp-scrim[hidden]{display:none}
  .sp-moresheet{display:flex;flex-direction:column;gap:8px;position:fixed;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:60;padding:18px 16px;background:var(--sp-panel);border-top:1px solid var(--sp-edge);border-radius:18px 18px 0 0;box-shadow:0 -20px 60px rgba(0,0,0,.4)}
  .sp-moresheet[hidden]{display:none}
  .sp-moresheet h3{font:700 16px var(--sp-ui);margin:0 0 4px}
  .sp-canvas .cv-cols{flex-direction:column}
  .cv-col{flex-direction:row;align-items:center;justify-content:flex-start;padding:0 18px;min-height:56px}
  .cv-col:hover,.cv-col:focus-visible{flex-grow:1}
  .cv-col.on{box-shadow:inset 5px 0 0 currentColor}
  .cv-col .meta{align-items:flex-start;text-align:left;padding:0;gap:2px}
  .cv-col .hex{font-size:20px}.cv-col .nm{font-size:12.5px}.cv-col .ok{font-size:10px}
  .cv-bar{bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:5px}
  .cv-bar .pv-title,.cv-bar .sep,.cv-bar .cb .t,.cb-roll kbd,.cv-bar .cb-seg span{display:none}
  .cv-bar .cb{padding:0 10px}.cb-roll{padding:0 14px}
  .status{display:none}
  .sp-toasts{top:58px}
  html #app[data-layout="stage"] .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px));pointer-events:none}
  .sp-keys{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){.sp *,.sp *::before,.sp-layer *{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}}
/* studio scenes shelf (Create › Studio scenes) */
.sp-scenes{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.sp-scene{display:grid;grid-template-columns:118px 1fr;grid-template-rows:auto auto;gap:8px 10px;padding:7px;border-radius:11px;border:1px solid var(--sp-edge);background:var(--sp-panel2)}
.sp-scene .art{position:relative;aspect-ratio:16/9;border-radius:7px;overflow:hidden;background:var(--sp-field)}
.sp-scene .art img,.sp-scene .art video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.sp-scene .art .pal{position:absolute;left:0;right:0;bottom:0;height:5px;display:flex;z-index:2}.sp-scene .art .pal b{flex:1}
.sp-scene .art.has-clip::after{content:"";position:absolute;right:5px;top:5px;width:0;height:0;border-left:7px solid rgba(255,255,255,.9);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6));z-index:2}
.sp-scene .tx{min-width:0;display:flex;flex-direction:column;gap:2px}
.sp-scene .tx b{font-weight:600;font-size:12.5px}
.sp-scene .tx small{font-size:10.5px;color:var(--sp-faint);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sp-scene .dl{display:inline-flex;align-items:center;gap:5px;font:500 10.5px var(--sp-mono);color:var(--sp-acc-txt);text-decoration:none;margin-top:auto}
.sp-scene .dl .sp-i{width:13px;height:13px}.sp-scene .dl:hover span{text-decoration:underline}
.sp-scene .acts{grid-column:1/3;display:flex;gap:6px}.sp-scene .acts .sp-btn{flex:1;padding:0 6px}
.sp-scene .acts .needs-link{opacity:.62}
.sp-scene .acts .busy{opacity:.7;pointer-events:none}

/* the kit guide (Guide tab): the content pane is "area doc" and guide.css lets .area{overflow:hidden} win; keep it scrollable */

/* touch screens (kit app_shell 2.0.1: 36 px buttons, 32 px sliders): Splash's own controls */
@media (pointer:coarse){
  .sp-seg button,.sp-chip,.sp-tint button,.sp-wbar,.sp-lrow .sp-val,.sp-prow .pv,.sp-wrow .aa{min-height:36px}
  .sp-hb{min-width:36px;min-height:36px}
  .sp-step{min-height:36px}
  .sp-sld{height:32px}
  .sp-sld .th,.sp-sld.painted .th{width:22px;height:22px;margin-left:-11px}
  .sp-tgl{width:44px;height:26px}
  .sp-tgl::after{width:22px;height:22px}
  .sp-tgl.on::after{transform:translateX(18px)}
  .sp-tag{height:32px}
}
