:root{
  --ink:#1e1a3a;--muted:#6c6790;--line:#e3dff1;--line-2:#cfc9e6;
  --paper:#f6f4fc;--panel:#fff;--pop:#4d5bff;--pop-2:#3946e6;--sun:#ffd84a;--pink:#ff7eb8;
  --display:'Bricolage Grotesque',ui-rounded,system-ui,sans-serif;--body:'Figtree',system-ui,sans-serif;
  --press:2px 3px 0 var(--ink);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.4 var(--body);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;border:1.5px solid var(--line);background:var(--panel);border-radius:10px;padding:9px 12px;transition:background .12s,border-color .12s,transform .12s,box-shadow .12s}
button:hover{border-color:var(--ink)}
button:active{transform:translate(1px,1px)}
button:disabled{opacity:.35;cursor:default;border-color:var(--line)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--pop);outline-offset:2px}
button.active{background:var(--sun);border-color:var(--ink);box-shadow:var(--press)}
button.active:active{box-shadow:1px 1px 0 var(--ink)}
.primary{background:var(--pop);color:#fff;border:2px solid var(--ink);box-shadow:var(--press);font-weight:600}
.primary:hover{background:var(--pop-2);border-color:var(--ink)}
.primary:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,3px)}
.pill{border-radius:99px}
.small{font-size:13px;color:var(--muted);line-height:1.55}

/* header */
header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--panel);border-bottom:1.5px solid var(--line);gap:20px}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.brand-word{font:800 26px/1 var(--display);letter-spacing:-1.2px}
.studio{font:600 13px var(--display);color:var(--pop);transform:rotate(-6deg) translateY(-6px);display:inline-block}
.brand-mark{height:36px;width:36px;background:var(--sun);border:2px solid var(--ink);border-radius:46% 54% 42% 58%/55% 45% 55% 45%;display:flex;align-items:center;justify-content:center;gap:6px;transform:rotate(-8deg);box-shadow:var(--press)}
.brand:hover .brand-mark{animation:jiggle .5s}
@keyframes jiggle{30%{transform:rotate(6deg) scale(1.08,.92)}60%{transform:rotate(-12deg) scale(.95,1.05)}}
.brand-mark i{width:5px;height:8px;border-radius:50%;background:var(--ink)}
.brand-mark i:nth-child(2){transform:translateY(-3px)}
.header-actions{display:flex;gap:6px;align-items:center}
.icon-btn{font-size:20px;line-height:1;padding:5px 10px;background:transparent;border-color:transparent}
.icon-btn:hover{background:var(--paper);border-color:var(--line)}
.divider{height:24px;width:1.5px;background:var(--line);margin:0 6px}
.header-actions .primary{padding:9px 18px}

/* layout */
main{display:grid;grid-template-columns:360px minmax(320px,1fr);height:calc(100dvh - 108px);min-height:520px}
.panel{padding:22px 18px 28px;overflow:auto;scrollbar-width:thin;background:var(--panel)}
.steps-panel{border-right:1.5px solid var(--line);padding:14px 14px 28px}
.panel-heading{margin-bottom:16px}
.panel-heading p{margin:4px 0 0;color:var(--muted);font-size:13px}
h1,h2{margin:0;font:800 26px/1.05 var(--display);letter-spacing:-.8px}
.tabs{display:flex;padding:3px;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;gap:3px;margin-bottom:22px}
.tabs button{flex:1;border:0;background:transparent;padding:8px 4px;font-weight:600;border-radius:9px;box-shadow:none}
.tabs button:hover{background:#fff}
.tabs button.active{background:var(--ink);color:#fff;box-shadow:none}
.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:26px 0 11px;font:700 16px var(--display);letter-spacing:-.2px}
.section-title:first-child{margin-top:0}
.section-title span{font:400 12px var(--body);color:var(--muted);letter-spacing:0}
.info{font-size:13px;color:var(--muted);line-height:1.55;margin:12px 0 0}

/* tiles */
.shape-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.shape{height:70px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:6px;font-size:12px;font-weight:500}
.shape svg{width:28px;height:28px;fill:#c9c3e3;transition:transform .2s}
.shape:hover svg{transform:scale(1.12) rotate(-6deg)}
.shape.active svg{fill:var(--ink)}
.wide{width:100%;margin-top:10px}
#draw{margin:0 0 10px;border-style:dashed;font-weight:600}
#draw.active{border-style:solid}
.part-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.part-button{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;padding:7px 2px 6px;font-size:11px;min-height:62px;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;line-height:1.15}
.part-button svg{width:26px;height:26px;transition:transform .15s}
.part-button:hover svg{transform:scale(1.15) rotate(-8deg)}
.part-button:hover{background:#fffbe6}
.part-button.dragging{opacity:.4}
.drag-ghost{position:fixed;z-index:50;pointer-events:none;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:var(--sun);border:2px solid var(--ink);box-shadow:var(--press);display:flex;align-items:center;justify-content:center;transform:rotate(-8deg)}
.drag-ghost svg{width:30px;height:30px}
#drop-hint{position:absolute;inset:14px;border:2.5px dashed var(--pop);border-radius:24px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:180px;font:700 18px var(--display);color:var(--pop);pointer-events:none;opacity:0;transition:opacity .15s}
#drop-hint.show{opacity:1}
.parts-list{display:flex;flex-direction:column;gap:5px;margin:12px 0}
.part-item{display:flex;gap:8px;align-items:center;padding:6px 8px;border:1.5px solid var(--line);border-radius:9px;cursor:pointer}
.part-item:hover{border-color:var(--ink)}
.part-item.active{background:#fff6cc;border-color:var(--ink)}
.part-item svg{width:18px;height:18px;flex-shrink:0}
.part-item span{flex:1;font-size:13px}
.part-item em{font-style:normal;font-size:11px;color:var(--pop);font-weight:600}
.part-item button{border:0;padding:1px 6px;font-size:17px;background:transparent}
.empty{padding:14px;border:1.5px dashed var(--line-2);border-radius:10px;color:var(--muted);font-size:13px;text-align:center}

/* switch */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;margin-bottom:6px;cursor:pointer;font-weight:600}
.switch-row small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.switch-row input{appearance:none;width:38px;height:22px;border-radius:99px;background:var(--line-2);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s;margin:0}
.switch-row input::after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.switch-row input:checked{background:var(--pop)}
.switch-row input:checked::after{transform:translateX(16px)}

/* ranges */
.range-row{margin:15px 0}
.range-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:500}
.range-label output{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.range-row input{width:100%}
input[type=range]{appearance:none;height:6px;border-radius:99px;background:var(--line);cursor:pointer;margin:0}
input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--sun);border:2px solid var(--ink);box-shadow:1px 2px 0 var(--ink)}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--sun);border:2px solid var(--ink)}
input[type=color]{width:34px;height:34px;padding:3px;border:0;border-radius:50%;background:conic-gradient(#ff5c5c,#ffd84a,#7fe0b0,#6ec6f5,#4d5bff,#ed92c1,#ff5c5c);cursor:pointer;flex-shrink:0}
input[type=color]::-webkit-color-swatch-wrapper{padding:0}
input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}

/* swatches */
.swatches{display:flex;gap:6px;flex-wrap:wrap}
.swatch{width:26px;height:26px;border-radius:50%;padding:0;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--line-2)}
.swatch:hover{transform:scale(1.12);border-color:#fff}
.swatch.active{box-shadow:0 0 0 2.5px var(--ink);background-clip:padding-box}
.color-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.color-row .swatches{flex:1}
.color-row label{flex:1}

/* look grids */
.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.material{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:12px;font-weight:500}
.material-ball{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 30% 25%,#fff,#c9b9f0 60%,#7f6bb8)}
.material-ball.glossy{background:radial-gradient(circle at 30% 25%,#fff 5%,#ffc0dd 16%,#e0508e 72%)}
.material-ball.plush{background:radial-gradient(circle at 50% 50%,#ffe9a8 40%,#f6c94a 75%,#fff2c4 100%);box-shadow:0 0 3px 1px #f6d77a}
.material-ball.pearl{background:conic-gradient(from 40deg,#ffd6f0,#d0f2ff,#e8ffd5,#fff1c9,#ffd6f0);box-shadow:inset -3px -3px 6px #0002}
.material-ball.fur{background:radial-gradient(circle,#f3ead8 35%,#d9c9a8 70%);box-shadow:0 0 0 2px #fff,0 0 0 3px #e6d9be,0 0 5px 3px #efe3c8}
.material-ball.chrome{background:linear-gradient(135deg,#eef1f5,#3a4150 30%,#fff 50%,#6a7080 72%,#e3e7ec)}
.material-ball.glass{background:radial-gradient(circle at 30% 25%,#fff,#bfe6ff9c 35%,#9cc8ff66 70%);border:1px solid #8cb2e0}
.material-ball.flat{background:#9fa8ff}
.material-ball.toon{background:linear-gradient(135deg,#7fe0b0 58%,#2e9a6a 58%)}
.chip-row{display:flex;gap:6px;flex-wrap:wrap}
.chip-row button{font-size:12.5px;padding:7px 11px;border-radius:99px;font-weight:500}
.part-cats{margin:4px 0 12px}
.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mood-grid button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;font-size:11.5px;font-weight:500}
.mood-grid b{font:700 15px/1.2 var(--display);letter-spacing:1px;white-space:nowrap}
.select{width:100%;padding:9px 10px;background:white;border:1.5px solid var(--line-2);border-radius:9px}
.check-row{display:flex;align-items:center;gap:10px;margin:11px 0;cursor:pointer}
.check-row input{accent-color:var(--pop);width:17px;height:17px;margin:0}
.eyebrow{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:14px 0 7px}

/* stage */
.viewport{position:relative;min-width:0;overflow:hidden;display:flex;flex-direction:column;--stage-ink:var(--ink);--stage-muted:#57527a}
.viewport.night{--stage-ink:#fff;--stage-muted:#d8d4f0}
.stage-top{position:absolute;z-index:4;left:26px;right:26px;top:20px;display:flex;justify-content:space-between;gap:10px;align-items:start;pointer-events:none}
.stage-top>*{pointer-events:auto}
.name-wrap{display:flex;flex-direction:column;gap:0;min-width:0}
.name-wrap input{width:min(340px,100%);background:transparent;border:0;font:800 44px/1.05 var(--display);padding:0;outline-offset:4px;letter-spacing:-1.6px;color:var(--stage-ink);border-radius:6px}
.name-wrap input:hover{background:#ffffff30}
#tagline{font:500 14px var(--display);color:var(--stage-muted)}
.stage-actions{display:flex;gap:7px;flex-shrink:0}
.stage-actions button{padding:9px 15px;font-weight:600}
.stage-actions button:not(.primary){background:#ffffffd9;border:2px solid var(--ink)}
#canvas-wrap{flex:1;min-height:360px;position:relative;--dot:#1e1a3a14;background-color:#dcecff;transition:background-color .3s}
.viewport.night #canvas-wrap{--dot:#ffffff1c}
#canvas-wrap[data-backdrop=dots]{background-image:radial-gradient(var(--dot) 2px,transparent 2.4px);background-size:24px 24px}
#canvas-wrap[data-backdrop=grid]{background-image:linear-gradient(var(--dot) 1.5px,transparent 1.5px),linear-gradient(90deg,var(--dot) 1.5px,transparent 1.5px);background-size:32px 32px}
#canvas-wrap[data-backdrop=stripes]{background-image:repeating-linear-gradient(135deg,var(--dot) 0 16px,transparent 16px 32px)}
#canvas-wrap[data-backdrop=sunburst]{background-image:repeating-conic-gradient(from 0deg at 50% 52%,var(--dot) 0 7.5deg,transparent 7.5deg 15deg)}
#canvas-wrap[data-backdrop=checker]{background-image:conic-gradient(var(--dot) 25%,transparent 0 50%,var(--dot) 0 75%,transparent 0);background-size:48px 48px}
#canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;position:absolute;inset:0}
#loading{position:absolute;top:45%;width:100%;text-align:center;color:var(--muted);font:600 16px var(--display)}
.view-tools{position:absolute;top:96px;right:26px;display:flex;align-items:center;background:#ffffffd9;padding:3px;border:1.5px solid var(--ink);border-radius:12px;gap:2px;z-index:2;white-space:nowrap}
.view-tools button{background:transparent;border:0;font-size:12px;padding:6px 9px;border-radius:8px;font-weight:500}
.view-tools button:hover{background:var(--paper)}
.view-tools button.active{background:var(--ink);color:#fff;box-shadow:none}
.view-tools span{height:18px;border-left:1.5px solid var(--line);margin:0 3px}
.stage-bottom{position:absolute;bottom:18px;z-index:2;width:100%;display:flex;align-items:center;flex-direction:column;gap:10px;pointer-events:none}
.depth-control{pointer-events:auto;width:230px;display:flex;gap:14px;align-items:center;background:#ffffffe6;padding:9px 15px;border-radius:99px;border:1.5px solid var(--ink)}
.depth-control button{padding:0;border:0;background:none;font:800 13px var(--display)}
.depth-control input{width:100%}
.canvas-hint{font-size:12px;color:var(--stage-muted);text-align:center;padding:0 10px}

/* inspector */
#part-inspector{position:absolute;z-index:6;right:22px;top:146px;width:270px;max-height:calc(100% - 200px);overflow:auto;padding:14px;background:#fff9de;border:2px solid var(--ink);border-radius:14px;box-shadow:var(--press)}
#part-inspector:empty{display:none}
.inspector-head{display:flex;align-items:center;gap:8px}
.inspector-head svg{width:24px;height:24px}
.inspector-head h3{font:800 19px var(--display);margin:0;flex:1;letter-spacing:-.4px}
.inspector-head em{font-style:normal;font-size:11px;font-weight:600;color:#fff;background:var(--pop);border-radius:99px;padding:2px 8px}
.inspector-head button{border:0;padding:1px 7px;font-size:20px;background:transparent}
#part-inspector .color-row{margin-top:12px}
.mini-swatches .swatch{width:22px;height:22px}
.transform-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.transform-fields label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px;font-weight:500}
.transform-fields input{width:100%;padding:7px 8px;border:1.5px solid var(--line-2);border-radius:8px;background:white;font-size:14px}
.action-row{display:flex;gap:6px;margin-top:7px}
.action-row button{flex:1;font-size:12px;padding:8px 4px;font-weight:500}
.action-row .danger:hover{background:#ffe1e8;border-color:#c0264f;color:#c0264f}


footer{height:40px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;border-top:1.5px solid var(--line);background:var(--panel);color:var(--muted);font-size:12px}
footer button{border:0;background:transparent;padding:3px 0;font-size:12px;font-weight:600}
footer button:hover{color:#c0264f}

#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px) rotate(-1deg);background:var(--ink);color:white;padding:11px 18px;border-radius:12px;opacity:0;pointer-events:none;z-index:60;transition:.2s;font:600 15px var(--display);box-shadow:3px 4px 0 var(--sun)}
#toast.show{opacity:1;transform:translate(-50%,0) rotate(-1deg)}
dialog{width:min(480px,calc(100vw - 30px));border:2px solid var(--ink);border-radius:20px;padding:26px;color:var(--ink);background:var(--panel);box-shadow:5px 7px 0 var(--ink)}
dialog::backdrop{background:#1e1a3a66;backdrop-filter:blur(4px)}
.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center}
.dialog-head h2{font-size:30px}
.dialog-head>button{border:0;background:none;font-size:26px;padding:2px 6px}
dialog>p{line-height:1.55;color:var(--muted);margin:8px 0 0}
.export-options{display:flex;flex-direction:column;gap:7px;margin:18px 0 4px}
.export-options button{text-align:left;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.export-options button:hover{background:#fff9de}
.export-options strong{font:700 16px var(--display)}
.export-options span{font-size:12.5px;color:var(--muted)}
#draw-canvas{width:100%;height:auto;margin-top:14px;background:var(--paper);border:2px dashed var(--line-2);border-radius:14px;touch-action:none;cursor:crosshair}
.draw-actions{display:flex;justify-content:space-between;margin-top:12px}

/* selection handles */
#quick-edit{position:absolute;padding:0;border:2px solid var(--pop);border-radius:4px;background:transparent;min-width:0;min-height:0;transform-origin:0 0;touch-action:none;pointer-events:none;z-index:5}
#quick-edit[hidden]{display:none!important}
.selection-drag{position:absolute;inset:0;cursor:move;pointer-events:auto;background:transparent}
.resize-handle{position:absolute;width:12px;height:12px;min-width:12px;min-height:12px;border:2px solid var(--pop);border-radius:3px;background:white;padding:0;pointer-events:auto;touch-action:none;transform:translate(-50%,-50%);box-shadow:none}
.resize-handle:hover{background:var(--sun);border-color:var(--ink)}
.resize-handle.nw{left:0;top:0;cursor:nwse-resize}.resize-handle.ne{left:100%;top:0;cursor:nesw-resize}.resize-handle.se{left:100%;top:100%;cursor:nwse-resize}.resize-handle.sw{left:0;top:100%;cursor:nesw-resize}
.rotation-stem{position:absolute;left:50%;top:-28px;height:28px;border-left:2px solid var(--pop);pointer-events:none}
.rotate-handle{position:absolute;left:50%;top:-28px;width:14px;height:14px;min-width:14px;border:2px solid var(--pop);border-radius:50%;padding:0;background:white;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;cursor:grab}
.rotate-handle:hover{background:var(--sun);border-color:var(--ink)}
.rotate-handle:active,.resize-handle:active{transform:translate(-50%,-50%)}
.selection-label{position:absolute;left:-2px;top:calc(100% + 8px);white-space:nowrap;font:600 11px/1 var(--body);background:var(--pop);color:white;padding:4px 7px;border-radius:99px;pointer-events:none}
@media(pointer:coarse){.resize-handle{width:18px;height:18px}.rotate-handle{width:20px;height:20px;top:-36px}.rotation-stem{top:-36px;height:36px}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(min-width:1500px){main{grid-template-columns:400px minmax(320px,1fr)}}
@media(max-width:1180px){main{grid-template-columns:320px minmax(280px,1fr)}.part-grid{grid-template-columns:repeat(3,1fr)}.footer .keys,footer .keys{display:none}.name-wrap input{font-size:34px}.view-tools{top:84px}.stage-top{left:18px;right:18px}}
@media(max-width:860px){
  header{height:60px;padding:0 14px}.brand-word{font-size:22px}.studio{display:none}.header-actions{gap:2px}.divider{margin:0 3px}
  main{height:auto;min-height:0;grid-template-columns:1fr}
  .viewport{grid-row:1;height:560px}
  .steps-panel{grid-row:2;border-right:0;border-top:1.5px solid var(--line)}
  .panel{overflow:visible}
  #part-inspector{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:55%}
  .stage-top{flex-direction:column}
  .view-tools{top:auto;bottom:66px;right:50%;transform:translateX(50%)}
  footer{padding:0 14px}
  .depth-control{pointer-events:auto;width:230px;display:flex;gap:14px;align-items:center;background:#ffffffe6;padding:9px 15px;border-radius:99px;border:1.5px solid var(--ink)}
.depth-control button{padding:0;border:0;background:none;font:800 13px var(--display)}
.depth-control input{width:100%}
.canvas-hint{display:none}
}
@media(max-width:600px){
  .viewport{height:480px}
  .name-wrap input{font-size:30px}
  .part-grid{grid-template-columns:repeat(4,1fr)}
  .header-actions #import{display:none}
  footer>span:first-child{display:none}
}

/* steps accordion */
.step{border:1.5px solid var(--line);border-radius:16px;margin-bottom:8px;background:var(--panel);transition:border-color .15s,box-shadow .15s}
.step.open{border:2px solid var(--ink);box-shadow:var(--press)}
.step-head{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:12px 14px;border-radius:14px;text-align:left;box-shadow:none}
.step-head:hover{background:var(--paper)}
.step-head:active{transform:none}
.step.open .step-head{background:transparent}
.step-num{width:30px;height:30px;flex-shrink:0;border-radius:46% 54% 42% 58%/55% 45% 55% 45%;display:flex;align-items:center;justify-content:center;font:800 15px var(--display);background:var(--paper);border:1.5px solid var(--line-2)}
.step.open .step-num{background:var(--sun);border:2px solid var(--ink)}
.step-title{flex:1;display:flex;flex-direction:column;font:700 17px/1.15 var(--display);letter-spacing:-.3px}
.step-title small{font:500 12.5px var(--body);color:var(--muted);letter-spacing:0;margin-top:2px}
.chev{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s;margin-right:4px}
.step.open .chev{transform:rotate(-135deg) translate(-2px,-2px);border-color:var(--ink)}
.step.locked{opacity:.5}
.step.locked .step-head{cursor:not-allowed}
.step.locked .step-head:hover{background:transparent}
.step-body{padding:2px 16px 16px}
.step-body>.section-title:first-child,.step-body>.range-row:first-child{margin-top:4px}
.step-foot{margin-top:18px;display:flex;justify-content:flex-end}
.step-foot .next{padding:10px 18px}

/* drawing on the stage */
/* Scoped under #canvas-wrap so it outranks the generic stage-canvas rule; otherwise the layer blocks every click. */
#canvas-wrap #draw-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;display:none;cursor:crosshair;touch-action:none}
.viewport.drawing #canvas-wrap #draw-layer{display:block}
#draw-prompt{position:absolute;inset:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none;color:var(--stage-ink);text-align:center;padding:0 20px}
.viewport.drawing #draw-prompt{display:flex}
.viewport.inked #draw-prompt{opacity:0}
#draw-prompt svg{width:min(42vh,320px);height:min(42vh,320px);fill:none;stroke:currentColor;stroke-width:1.6;stroke-dasharray:4 7;stroke-linecap:round;opacity:.35;position:absolute}
#draw-prompt strong{font:800 34px var(--display);letter-spacing:-1px;position:relative}
#draw-prompt span{font-size:14px;color:var(--stage-muted);position:relative}
.viewport.drawing .view-tools,.viewport.drawing .stage-bottom{visibility:hidden}
