.torso-workspace .lesson-svg,.torso-workspace .controls { display:none; }
.torso-workspace { --torso-height:min(660px,44vw,71.5vh); }
.torso-module { position:absolute; inset:0; pointer-events:none; }
.torso-module .torso-photo,.torso-module .torso-profile-panel {
  position:absolute; top:calc(52.15% - var(--torso-height)/2 - 40px);
  height:var(--torso-height); pointer-events:auto;
}
.torso-module .torso-photo { left:39%; width:calc(var(--torso-height)*var(--torso-aspect,.565)); transform:translateX(-50%); background:transparent; cursor:ew-resize; }
.torso-module .torso-profile-panel { left:calc(var(--profile-column-left) - var(--torso-height)*.3 - 90px); width:calc(var(--torso-height)*.3); }
.torso-module .torso-photo,.torso-module .torso-graph { display:block; overflow:visible; touch-action:none; }
.torso-module .torso-graph { width:100%; height:100%; transform:rotate(5deg); transform-origin:50% 50%; }
.torso-module .torso-photo line { stroke:#087ee5; stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }
.torso-module .torso-axis { stroke:rgba(96,104,116,.38); stroke-width:.8; fill:none; vector-effect:non-scaling-stroke; }
.torso-module .torso-curve { stroke:#343945; stroke-width:3; fill:none; vector-effect:non-scaling-stroke; }
.torso-module .torso-graph [data-point] { fill:#087ee5; stroke:transparent; stroke-width:14px; vector-effect:non-scaling-stroke; paint-order:stroke; cursor:move; }
.torso-module .torso-depth { position:absolute; left:3.333333%; width:90%; bottom:calc(1% + 6px); display:block; text-align:center; font:400 11px/1.15 var(--plain); color:rgba(52,57,69,.66); }
.torso-module .torso-tools,.torso-module .torso-editor { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:24px; }
.torso-module button,.torso-module select { font:13px var(--plain); padding:8px 12px; min-height:38px; max-width:100%; border:1px solid rgba(185,174,158,.72); border-radius:12px; background:#efeae1; color:#222738; }
.torso-module .torso-editor p { margin:0; font:13px/1.28 var(--plain); }
.torso-module [hidden] { display:none; }
.torso-module .torso-error { color:#942323; }
@media(max-width:1024px) { .torso-module .torso-photo { left:33%; } .torso-module .torso-profile-panel { left:calc(var(--profile-column-left) - var(--torso-height)*.3 - 50px); } }
.torso-workspace .canvas-scroll { height:calc(100vh - 86px); min-height:640px; overflow:visible; }
body.is-fullscreen-active .torso-workspace .canvas-scroll { height:100vh; }

.torso-module .torso-guides { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; transform:translateX(0px); }
.torso-module .torso-edit-grid { pointer-events:none; }
.torso-module .torso-edit-grid line { stroke:rgba(96,112,128,.16); stroke-width:1; stroke-dasharray:4 5; vector-effect:non-scaling-stroke; }

.torso-module .torso-light-direction { position:absolute; top:0; right:-10px; width:max(124px,calc(var(--profile-graph-height)/2)); height:var(--profile-graph-height); overflow:visible; pointer-events:none; }
.torso-module .torso-graph.is-editing.is-edited-reference .torso-curve { stroke:#8b45b5; }
.torso-module .torso-graph.is-editing.is-edited-reference [data-point] { fill:#8b45b5; }

.torso-module .torso-reference-marks path { fill:#8b45b5; cursor:pointer; stroke:transparent; stroke-width:4; }
.torso-module .torso-reference-marks path:focus { stroke:#8b45b5; outline:none; }
.torso-module .torso-profile-status.is-edited { color:#8b45b5; font-weight:600; }
.torso-module button:disabled { opacity:.45; cursor:default; }

.torso-module .torso-corner-toggle { display:flex; align-items:center; gap:8px; font:13px var(--plain); }
.torso-module .torso-corner-toggle input { accent-color:#8b45b5; width:18px; height:18px; }
.torso-module .torso-graph [data-point].is-selected { stroke:#343945; stroke-width:2; }

.torso-module .torso-reference-marks { display:none; }
.torso-module:has(.torso-graph.is-editing) .torso-reference-marks { display:inline; }



.torso-module .torso-handles line { stroke:#8b45b5; stroke-width:1; vector-effect:non-scaling-stroke; pointer-events:none; }
.torso-module .torso-handles circle { fill:#fff; stroke:#8b45b5; stroke-width:2; cursor:move; vector-effect:non-scaling-stroke; }

.torso-module .torso-light-curve { fill:none; stroke-width:3; vector-effect:non-scaling-stroke; pointer-events:none; }

.torso-module .torso-all-curves { pointer-events:none; }
.torso-module .torso-all-curves path { fill:none; stroke-width:1; vector-effect:non-scaling-stroke; }

.torso-module :is(.torso-spread,.torso-density) { flex-basis:100%; max-width:184px; padding:8px 0; }
.torso-module :is(.torso-spread,.torso-density)[hidden] { display:none; }

.torso-module .torso-tools { flex-direction:column; align-items:flex-start; gap:0; }
.torso-module :is(.torso-spread,.torso-density) { flex-basis:auto; width:184px; margin-top:14px; }
.torso-module .torso-editor-toggle { position:absolute; top:0; right:0; display:flex; align-items:center; justify-content:center; width:28px; height:28px; min-height:0; padding:5px; border:0; border-radius:5px; background:transparent; color:rgba(52,57,69,.45); }
.torso-module .torso-editor-toggle:hover,.torso-module .torso-editor-toggle:focus-visible { color:#343945; background:rgba(52,57,69,.06); }
.torso-module .torso-editor-toggle[aria-expanded="true"] { color:#8b45b5; }

.torso-module .torso-spread:not([hidden]) + .torso-density { margin-top:-6px; }
