:root{--bg:#f7f7f5;--surface:#fff;--surface-subtle:#f1f1ee;--border:#e2e2de;--border-strong:#cfcfca;--text:#20201e;--text-muted:#6f706b;--accent:#8a5570;--accent-hover:#74445d;--accent-soft:#f3e8ee;--success:#317a52;--warning:#8a6100;--error:#9b1c1c;--selection:#e9f1f7;--editor-bg:#fcfbf8;--font-ui:"Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-code:ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius:6px;--radius-lg:8px;--control-height:30px;--shadow:0 1px 2px #20201e0f;--focus-ring:0 0 0 3px #8a557047}body{font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}.app{flex-direction:column;height:100dvh;display:flex}.app button,.app select,.app input:not([type=checkbox],[type=radio]){box-sizing:border-box;height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:.8125rem;line-height:1}.app button{cursor:pointer;box-shadow:var(--shadow);align-items:center;gap:6px;font-weight:500;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.app button:hover:not(:disabled){background:var(--surface-subtle)}.app button:disabled{cursor:default;opacity:.5}.app select{padding-right:var(--space-2);cursor:pointer}.app input[aria-invalid=true]{border-color:var(--error)}.app button:focus-visible,.app select:focus-visible,.app input:focus-visible,.app summary:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.icon{flex:none}.toolbar{align-items:center;gap:var(--space-4);height:52px;padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);flex:none;display:flex}.toolbar-title{align-items:center;gap:var(--space-2);margin:0 var(--space-2) 0 0;letter-spacing:-.01em;font-size:.9375rem;font-weight:650;display:flex}.toolbar-title .icon{color:var(--accent);width:20px;height:20px}.toolbar-name-plain{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;margin:0;font-size:.9375rem;font-weight:600;overflow:hidden}.toolbar-name-form{flex:0 11rem;min-width:6rem;margin:0;display:flex}.app input.toolbar-name{text-overflow:ellipsis;cursor:text;background:0 0;border-color:#0000;width:100%;font-size:.875rem;font-weight:600}.app input.toolbar-name:hover:not(:focus,:disabled){background:var(--surface-subtle)}.app input.toolbar-name:focus{background:var(--surface)}.app input.toolbar-name:focus:not(:focus-visible){border-color:var(--border-strong)}.toolbar-group{gap:var(--space-1);display:flex}.app .toolbar-group button{box-shadow:none;color:var(--text);background:0 0;border-color:#0000}.app .toolbar-group button:hover{background:var(--surface-subtle)}.app .toolbar-group .icon{color:var(--text-muted)}.app .toolbar-layout button[aria-pressed=true]{background:var(--accent-soft)}.workspace-3d-first>.pattern-editor,.workspace-3d-first>.pane-divider{display:none}.workspace.workspace-3d-first .side-panel{flex:1 1 0}.pattern-editor{background:var(--editor-bg);flex:1;min-height:0}.pattern-editor .cm-editor{height:100%;color:var(--text);font-size:.9375rem}.pattern-editor .cm-scroller{font-family:var(--font-code);line-height:1.75}.pattern-editor .cm-content{padding:var(--space-3) 0 var(--space-6)}.pattern-editor .cm-line{padding:0 var(--space-4) 0 var(--space-2)}.pattern-editor .cm-editor .cm-gutters{background:var(--editor-bg);color:#a9a8a2;border-right:none}.pattern-editor .cm-editor .cm-lineNumbers .cm-gutterElement{min-width:2.5em;padding:0 var(--space-2) 0 var(--space-3)}.pattern-editor .cm-editor .cm-activeLine{background:#8a55700d}.pattern-editor .cm-editor .cm-activeLineGutter{color:var(--text);background:0 0}.pattern-editor .cm-editor .cm-selectionBackground,.pattern-editor .cm-editor.cm-focused .cm-selectionBackground{background:#dbe7f1}.cm-editor.cm-focused{outline:none}.cm-picked-line{background:var(--accent-soft)}.pattern-editor .cm-editor .cm-reshaped-line{background:#e6f2ef;animation:3s ease-in forwards cm-reshaped-fade;box-shadow:inset 3px 0 #6fa595}@keyframes cm-reshaped-fade{0%,30%{background:#e6f2ef;box-shadow:inset 3px 0 #6fa595}to{background:0 0;box-shadow:inset 3px 0 #0000}}@media (prefers-reduced-motion:reduce){.pattern-editor .cm-editor .cm-reshaped-line{animation:none}}.cm-picked-instruction{background:#f7d77a;border-radius:3px}.cm-round-note{margin-left:var(--space-3);font-family:var(--font-ui);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;padding:0 6px;font-size:.75rem;font-weight:600}.cm-round-note-ok{color:var(--success);opacity:.75}.cm-round-note-warning{color:var(--warning);background:#f8eccb}.cm-round-note-error{color:var(--error);background:#f9dede}.cm-round-note-fix{background:var(--surface);color:inherit;font:inherit;cursor:pointer;border:1px solid;border-radius:999px;margin-left:4px;padding:0 6px}.cm-round-note-fix:hover,.cm-round-note-fix:focus-visible{background:#fff;text-decoration:underline}.tok-label{color:var(--accent);font-weight:650}.tok-stitch{color:#2e6a8e}.tok-total{color:var(--success);font-weight:650}.tok-repeat{color:#94603a}.tok-colour{color:#b04a72}.tok-loop{color:#84691f}.tok-note{color:var(--text-muted);font-style:italic}.workspace{flex:1;min-height:0;display:flex}.workspace .pattern-editor{flex:60%;min-width:0}.side-panel{gap:var(--space-5);min-height:0;padding:var(--space-4) var(--space-4) var(--space-6);box-sizing:border-box;background:var(--surface-subtle);border-left:1px solid var(--border);flex-direction:column;flex:0 0 clamp(26rem,42%,44rem);display:flex;overflow-y:auto}.side-tabs{gap:var(--space-1);margin-bottom:calc(-1 * var(--space-2));border-bottom:1px solid var(--border);display:flex}.app .side-tabs button{height:36px;padding:0 var(--space-3);box-shadow:none;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;font-size:.875rem}.app .side-tabs button:hover:not(:disabled){color:var(--text);background:0 0}.app .side-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.tab-badge{box-sizing:border-box;background:var(--error);color:#fff;text-align:center;border-radius:999px;min-width:18px;padding:1px 5px;font-size:.6875rem;font-weight:700}.tab-badge-warning{color:var(--warning);background:#f8eccb}.side-panel [role=tabpanel][hidden]{display:none}.assembly-list{font-size:.875rem;line-height:1.55}.pane-tabs-box{border-top:1px solid var(--border);background:var(--surface-subtle);flex-direction:column;flex:none;max-height:45%;display:flex}.pane-panel{min-height:0;padding:var(--space-3);flex:auto;overflow-y:auto}.pane-tabs{padding:0 var(--space-2);border-bottom:none;flex:none;margin-bottom:0}.right-panel-title{padding:var(--space-2) calc(var(--space-3) + 28px) var(--space-2) var(--space-3);border-bottom:1px solid var(--border);margin:0;font-size:.8125rem;font-weight:600}.checks-list{font-size:.875rem;line-height:1.45}.checks-summary{margin:0 0 var(--space-3);color:var(--text-muted)}.checks-list ul{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app .checks-item{align-items:flex-start;gap:var(--space-2);width:100%;height:auto;padding:var(--space-2);text-align:left;white-space:normal;display:flex}.checks-body{flex-direction:column;gap:2px;min-width:0;display:flex}.checks-where{color:var(--text-muted);font-size:.75rem}.checks-line{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.assembly-intro{margin:0 0 var(--space-4);color:var(--text-muted)}.assembly-list ol{padding-left:var(--space-5);margin:0}.assembly-list li{margin-bottom:var(--space-3);padding-left:var(--space-1)}.assembly-list li p{margin:0}.assembly-problems{margin-top:var(--space-5)}.assembly-problems h3{font-size:.875rem}.assembly-blocked{color:var(--text-muted)}.panel-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.75rem;font-weight:650}.panel-head,.card-head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.card{padding:var(--space-3) var(--space-4) var(--space-4);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow), 0 0 0 1px var(--border)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app .icon-button{width:var(--control-height);color:var(--text-muted);justify-content:center;padding:0}.app .icon-button[aria-expanded=true],.app .icon-button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.app .link-button{height:auto;box-shadow:none;color:var(--accent);background:0 0;border:none;padding:0;font-weight:500}.app .link-button:hover:not(:disabled){color:var(--accent-hover);background:0 0;text-decoration:underline}.preview-3d{gap:var(--space-3);flex-direction:column;display:flex}.preview-3d-controls{gap:var(--space-3);flex-wrap:wrap;display:flex}.preview-placement-status{padding:var(--space-2) var(--space-1);color:var(--text-muted);margin:0;font-size:.8125rem;line-height:1.45}.shape-reach{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-1) 0;color:var(--text-muted);font-size:.8125rem;display:flex}.shape-reach input{max-width:16rem;accent-color:var(--accent);flex:1}.shape-reach output{min-width:6rem;color:var(--text)}.paint-options{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-1) 0;flex-wrap:wrap;display:flex}.paint-options .colour-picker{flex-basis:100%;margin-top:0}.paint-brush{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:.8125rem;display:flex}.paint-brush input{width:7rem;accent-color:var(--accent)}.paint-brush output{min-width:3rem;color:var(--text)}.app .placement-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.preview-3d-viewport{background:var(--surface);border-radius:var(--radius-lg);height:clamp(16rem,48vh,36rem);box-shadow:var(--shadow), 0 0 0 1px var(--border);flex-direction:column;display:flex;position:relative;overflow:hidden}.preview-3d-carrying canvas{cursor:copy!important}.preview-3d-canvas{touch-action:none;flex:1;min-height:0;overflow:hidden}.preview-3d-stale{opacity:.45;filter:grayscale(.4);transition:opacity .2s}.preview-3d-note{left:var(--space-2);bottom:var(--space-2);max-width:calc(100% - 2 * var(--space-2));padding:2px var(--space-2);border-radius:var(--radius);box-shadow:0 0 0 1px var(--border);color:var(--text);pointer-events:none;background:#ffffffe6;margin:0;font-size:.75rem;line-height:1.4;position:absolute}.preview-3d-note.preview-3d-left-out{bottom:calc(var(--space-2) + 32px)}.preview-3d-left-out span{display:block}.preview-3d-overlay{top:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.app .preview-3d-overlay .icon-button:not([aria-expanded=true]):not([aria-pressed=true]){border-color:var(--border);background:#ffffffd9}.preview-3d-message{padding:var(--space-4);color:var(--error);flex:1;margin:0}.preview-3d-message p{margin:0 0 var(--space-2)}.preview-3d-message .preview-3d-reason{margin-top:var(--space-3);color:var(--text-muted);font-size:.8rem}.preview-3d-status{left:var(--space-2);right:var(--space-2);bottom:calc(2 * var(--space-2) + 24px);padding:var(--space-2) var(--space-3);border-radius:var(--radius);box-shadow:0 0 0 1px var(--border);color:var(--warning);background:#ffffffe6;margin:0;font-size:.75rem;position:absolute}.preview-3d-sizes{gap:var(--space-2);padding:0 var(--space-1);flex-direction:column;margin:0;list-style:none;display:flex}.preview-3d-sizes li{align-items:baseline;column-gap:var(--space-3);grid-template-columns:auto 1fr;display:grid}.size-piece{color:var(--text-muted);font-size:.75rem;font-weight:600}.size-main{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.made-sizes{gap:var(--space-2);flex-direction:column;display:flex}.made-sizes-title{padding:0 var(--space-1);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-size:.75rem;font-weight:600}.made-differences{padding-left:var(--space-3)}.made-gauge{padding:0 var(--space-1);color:var(--text-muted);margin:0;font-size:.75rem}.size-note{color:var(--text-muted);font-variant-numeric:tabular-nums;grid-column:2;font-size:.75rem}.gauge-panel{gap:var(--space-3);flex-direction:column;font-size:.8125rem;display:flex}.gauge-fields{gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr;display:grid}.gauge-field{gap:var(--space-1);color:var(--text-muted);flex-direction:column;font-size:.75rem;font-weight:500;display:flex}.app .gauge-field input,.app .gauge-field select{width:100%}.gauge-error{color:var(--error)}.gauge-about{margin:0;line-height:1.45}.app .gauge-about .link-button{vertical-align:baseline;min-height:0;margin:-6px 0;padding:6px 0;display:inline-block}.gauge-help{padding:var(--space-2) var(--space-3);background:var(--surface-subtle);border-radius:var(--radius);color:var(--text-muted);margin:0;line-height:1.45}.gauge-source{gap:var(--space-1) var(--space-3);color:var(--text-muted);flex-wrap:wrap;font-size:.75rem;display:flex}.status-mark{border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.status-mark .icon{width:13px;height:13px}.status-ok{color:var(--success);background:#e8f3ec}.status-warning{color:var(--warning);background:#f8eccb}.status-error{color:var(--error);background:#f9dede}.round-table-empty{color:var(--text-muted);margin:0;font-size:.8125rem}.save-status{align-items:center;gap:var(--space-1);color:var(--text-muted);margin-left:auto;font-size:.8125rem;display:flex}.save-status .icon{color:var(--success)}.toolbar-title-words{white-space:nowrap}.save-status-words{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.save-status{min-width:0}@media (width<=899.98px){.toolbar-history .toolbar-history-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.toolbar-make{gap:var(--space-3);padding:0 var(--space-3)}.toolbar-make .save-status-saved .save-status-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.app .toolbar-make .app-mode button{min-width:5rem;padding:3px var(--space-3) 0}.toolbar-make .toolbar-name-form{flex:8rem;min-width:4rem}.toolbar:has(.toolbar-pattern){gap:var(--space-2);padding:0 var(--space-3)}.toolbar:has(.toolbar-pattern) .toolbar-title{margin:0}.toolbar:has(.toolbar-pattern) .toolbar-title-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.toolbar:has(.toolbar-pattern) .toolbar-name-form{flex:8rem;min-width:4rem}.app .toolbar:has(.toolbar-pattern) .app-mode button{min-width:4.5rem;padding:3px var(--space-2) 0}.toolbar:has(.toolbar-pattern) .save-status{flex:none}}@media (width<=799.98px){.toolbar:has(.toolbar-pattern) .save-status-saved .save-status-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=699.98px),(height<=499.98px) and (pointer:coarse){.toolbar .save-status-saved .save-status-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.toolbar{gap:var(--space-2);padding:0 var(--space-2)}.toolbar .toolbar-title{margin:0}.toolbar .toolbar-title-words{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.toolbar .toolbar-name-form{flex:1 1 0;min-width:3rem}.toolbar .toolbar-name-plain{flex:1 1 0}.app .toolbar .toolbar-name{padding:0 var(--space-2)}.app .toolbar .app-mode button{min-width:0;padding:3px var(--space-2) 0;font-size:1rem}.app .toolbar .toolbar-group button{padding:0 var(--space-2)}}.print-sheet{display:none}@media print{@page{margin:18mm}.app>.toolbar,.app>.workspace,.app>.import-view{display:none}.insert-menu,[role=menu]{display:none!important}.app{height:auto;display:block}body{background:#fff}.print-sheet{color:#000;font-family:Georgia,serif;font-size:11pt;line-height:1.4;display:block}.print-sheet h1{margin:0 0 .5em;font-size:22pt}.print-top{justify-content:space-between;align-items:flex-start;gap:1em;display:flex}.print-sheet .print-size{font-size:12pt}.print-picture{flex:none;width:45mm;height:45mm}.print-piece{break-inside:avoid}.print-tick{vertical-align:-.05em;border:1px solid #000;width:.8em;height:.8em;margin-right:.5em;display:inline-block}.print-sheet h2{break-after:avoid;border-bottom:1px solid #000;margin:1.2em 0 .4em;font-size:14pt}.print-sheet p{margin:.25em 0}.print-abbreviations{margin:0}.print-abbreviations div{gap:.75em;display:flex}.print-abbreviations dt{min-width:6em;font-weight:700}.print-abbreviations dd{margin:0}.print-sheet .print-tip{font-style:italic}.print-sheet .print-action{font-weight:700}.print-round,.print-action,.print-tip,.print-sheet li,.print-abbreviations div{break-inside:avoid}.print-sheet h3{break-after:avoid;margin:.9em 0 .3em;font-size:12pt}.print-sheet li{margin-bottom:.3em}.print-sheet ul,.print-sheet ol{margin:.3em 0 .6em;padding-left:1.5em}}.preview-mode{align-items:center;display:flex}.preview-mode-label{margin-right:var(--space-2);color:var(--text-muted);font-size:.8125rem}.app .preview-mode button{box-shadow:none;color:var(--text-muted);border-radius:0}.app .preview-mode button+button{margin-left:-1px}.app .preview-mode button:first-of-type{border-radius:var(--radius) 0 0 var(--radius)}.app .preview-mode button:last-of-type{border-radius:0 var(--radius) var(--radius) 0}.app .preview-mode button[aria-pressed=true]{z-index:1;background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover);position:relative}.app .preview-mode button:focus-visible{z-index:2}.workspace[hidden]{display:none}.app .primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.app .primary-button:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.import-view{flex-direction:column;flex:1;min-height:0;display:flex}.import-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3) var(--space-5);padding:var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.import-title{margin:0 0 var(--space-1);font-size:1rem;font-weight:650}.import-help{max-width:44rem;color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.import-actions{gap:var(--space-2);display:flex}.import-paste{margin:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--editor-bg);color:var(--text);font-family:var(--font-code);font-variant-ligatures:none;resize:none;flex:1;font-size:.9375rem;line-height:1.75}.import-paste.is-dragging{border-color:var(--accent);box-shadow:var(--focus-ring);border-style:dashed}.import-file-note{align-items:flex-start;gap:var(--space-2);max-width:44rem;margin:var(--space-2) 0 0;font-size:.875rem;line-height:1.5;display:flex}.import-file-note.is-problem{color:var(--warning)}.import-file-note svg{flex:none;margin-top:.2em}.import-paste:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.import-panes{flex:1;min-height:0;display:flex}.import-view .cm-content{font-variant-ligatures:none}.import-found{align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);font-size:.875rem;font-weight:600;display:flex}.import-found .icon{color:var(--success)}.import-found.is-problem{color:var(--warning)}.import-found.is-problem .icon{color:inherit}.import-ask{align-self:center;font-size:.875rem;font-weight:600}.import-pane{flex-direction:column;flex:50%;min-width:0;display:flex}.import-pane+.import-pane{border-left:1px solid var(--border)}.import-pane-title{padding:var(--space-2) var(--space-4);background:var(--surface-subtle);border-bottom:1px solid var(--border)}.source-pane .cm-editor{color:var(--text-muted)}.cm-unread-line{box-shadow:inset 3px 0 0 var(--error);background:#f9dede}.cm-unread-line.cm-picked-line{background:#f3d3dc}.import-unread{min-height:0;max-height:30vh;padding:var(--space-3) var(--space-4);background:var(--surface);border-top:1px solid var(--border);flex:none;font-size:.875rem;overflow-y:auto}.import-unread-title,.import-unread-none{align-items:center;gap:var(--space-2);margin:0;font-size:.875rem;font-weight:600;display:flex}.import-unread-title{color:var(--error)}.import-unread-none .icon{color:var(--success)}.import-unread ul{margin:var(--space-2) 0 0;padding:0;list-style:none}.import-unread li{align-items:baseline;gap:var(--space-1) var(--space-3);padding:var(--space-1) 0;flex-wrap:wrap;display:flex}.import-unread-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.import-unread-list li{flex-wrap:nowrap}.import-unread-list .link-button{flex:none}.app .import-view li>.link-button{min-width:3rem;min-height:24px}@media (pointer:coarse){.app .import-view li>.link-button{min-width:44px;min-height:44px}}.import-unread-list .import-reason{flex:1;min-width:0}.import-unread code{font-family:var(--font-code)}.import-reason{color:var(--text-muted);flex-basis:100%}.import-terms{max-width:44rem;margin-top:var(--space-2);padding:var(--space-3);background:var(--accent-soft);border:1px solid var(--border-strong);border-radius:var(--radius)}.import-terms-question{align-items:center;gap:var(--space-2);color:var(--warning);margin:0;font-size:.875rem;font-weight:600;display:flex}.import-terms-signs{margin:var(--space-1) 0 var(--space-2);padding-left:1.25rem;font-size:.875rem}.import-terms .import-actions{margin-top:var(--space-2)}.import-terms-chosen{color:var(--text-muted);margin:.5rem 0 0;font-size:.875rem}.cm-unsure-word{background:#fbe7a6;border-radius:2px;box-shadow:0 1px #d9a400}.picture-pane{min-height:0;padding:var(--space-3);background:var(--surface-subtle);flex:1;overflow:auto}.picture-page{margin:0 0 var(--space-4)}.picture-page figcaption{margin-top:var(--space-1);color:var(--text-muted);text-align:center;font-size:.8125rem}.picture-frame{border:1px solid var(--border);background:#fff;position:relative}.picture-frame img{width:100%;height:auto;display:block}.app .picture-word{cursor:pointer;background:#f0be1e47;border:0;border-radius:2px;min-height:0;padding:0;position:absolute;box-shadow:inset 0 -2px #d9a400}.app .picture-word:hover:not(:disabled),.app .picture-word:focus-visible{background:#f0be1e80;outline:none}.picture-picked{border:2px solid var(--accent);box-shadow:var(--focus-ring);pointer-events:none;border-radius:3px;position:absolute}.import-check-title{align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--warning);font-size:.875rem;font-weight:600;display:flex}.import-check-help{margin:var(--space-1) 0 0;color:var(--text-muted)}.tool-bar{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.tool-bar>.preview-mode{row-gap:var(--space-1);flex-wrap:wrap}.tool-key{margin-left:var(--space-2);border:1px solid var(--border-strong);font-family:var(--font-ui);color:var(--text-muted);border-radius:3px;padding:0 4px;font-size:.6875rem;line-height:1.4}.tool-options{margin-top:calc(-1 * var(--space-2));flex-direction:column;display:flex}.piece-panel{gap:var(--space-3);flex-direction:column;font-size:.8125rem;display:flex}.piece-panel-hint{color:var(--text-muted);font-size:.75rem}.piece-panel-fields{align-items:start;gap:var(--space-2) var(--space-4);grid-template-columns:max-content 1fr;display:grid}.piece-panel-fields>label,.piece-panel-fields>span{line-height:var(--control-height);color:var(--text-muted);font-size:.75rem;font-weight:500}.app .piece-panel-fields input,.app .piece-panel-fields select{width:100%;max-width:18rem}.piece-panel-problem{margin:var(--space-1) 0 0;color:var(--warning);font-size:.75rem}.app .yarn-button{gap:var(--space-2)}.swatch-dot{border-radius:50%;width:14px;height:14px;display:inline-block;box-shadow:inset 0 0 0 1px #0000002e}.colour-picker{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3);background:var(--surface-subtle);border-radius:var(--radius);flex-direction:column;display:flex}.colour-picker-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.6875rem;font-weight:650}.swatches{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.app .swatch{width:26px;height:26px;color:var(--text-muted);border:none;border-radius:50%;justify-content:center;padding:0;font-weight:650;box-shadow:inset 0 0 0 1px #0000002e}.app .swatch:hover:not(:disabled){filter:brightness(.95)}.app .swatch[aria-pressed=true]{box-shadow:inset 0 0 0 1px #0000002e, 0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.app .swatch-unknown,.swatch-unknown{background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 3px, var(--border) 3px, var(--border) 6px)}.colour-picker-own{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.colour-picker-own label{letter-spacing:.06em;text-transform:uppercase;width:100%;color:var(--text-muted);font-size:.6875rem;font-weight:650}.app .colour-picker-own input[type=text]{flex:1;min-width:8rem}.app .colour-picker-own input[type=color]{width:40px;padding:2px}.colour-picker-note{width:100%;color:var(--warning);margin:0;font-size:.75rem}.library-groups{gap:var(--space-2);flex-wrap:wrap;display:flex}.shelf-menu{gap:var(--space-1);padding:var(--space-1);background:var(--surface-subtle);border-radius:var(--radius);flex-wrap:wrap;display:flex}.app .shelf-menu button{align-items:center;gap:6px;display:inline-flex}.piece-panel-check{align-items:center;gap:var(--space-2);min-height:var(--control-height);font-size:.8125rem;display:flex}.app .piece-panel-fields .piece-panel-check input{width:auto;accent-color:var(--accent);margin:0}.app-mode{align-self:stretch;display:flex}.app .app-mode button{min-width:6rem;height:100%;padding:3px var(--space-4) 0;box-shadow:none;color:var(--text-muted);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;justify-content:center;font-size:1.0625rem;font-weight:600}.app .app-mode button:hover:not(:disabled){background:var(--surface-subtle);color:var(--text)}.app .app-mode button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--accent-hover)}.app .app-mode button:focus-visible{border-bottom-color:var(--accent)}.make-view{flex:1;grid-template-columns:minmax(0,1fr) clamp(22rem,44%,46rem);min-height:0;display:grid}.make-sheet{min-height:0;padding:0 var(--space-5) var(--space-6);background:var(--editor-bg);overflow-y:auto}.make-done-bar{z-index:2;justify-content:flex-end;align-items:center;gap:var(--space-2);margin:0 calc(-1 * var(--space-5));padding:var(--space-2) var(--space-5) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--editor-bg);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.make-sheet:has(.make-done-bar){padding-bottom:0}.app button.make-done{min-height:3rem;padding:0 var(--space-5);border-radius:999px;font-size:1rem;box-shadow:0 2px 8px #0003}.make-done-note{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--text);color:#fff;margin:0;display:flex}.app .make-done-note button{min-height:44px;box-shadow:none;color:#fff;background:#ffffff26;border-color:#0000;font-weight:650}.make-sheet-head{z-index:2;margin:0 calc(-1 * var(--space-5));padding:var(--space-3) var(--space-5);background:var(--editor-bg);border-bottom:1px solid var(--border);position:sticky;top:0}.make-sheet-top{align-items:center;gap:var(--space-2);display:flex}.make-overall{font-variant-numeric:tabular-nums;min-width:0;color:var(--text);white-space:nowrap;flex:1;margin:0;font-size:1rem;font-weight:600}.make-piece{margin-top:var(--space-5);padding:var(--space-3) var(--space-4) var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.make-piece-focus{border-color:var(--accent)}.make-hint{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:.875rem}.make-piece-count{font-variant-numeric:tabular-nums;text-align:right;min-width:4.5rem;color:var(--text-muted);white-space:nowrap;font-size:.875rem}.make-piece-inProgress .make-piece-progress{color:var(--accent-hover);font-weight:600}.make-piece-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.make-piece-head h2{flex:1;margin:0;font-size:1.0625rem}.app .make-piece-name{height:auto;min-height:24px;box-shadow:none;font:inherit;letter-spacing:.02em;background:0 0;border:0;padding:0;font-weight:650}.app .make-piece-name:hover:not(:disabled){color:var(--accent);background:0 0}.make-count{color:var(--text-muted);font-weight:400}.make-piece-progress{color:var(--text-muted);font-size:.8125rem}.make-copies{margin-top:var(--space-2)}.make-lines{margin:var(--space-2) 0 0;padding:0;list-style:none}.make-line{align-items:flex-start;gap:var(--space-3);margin:0 calc(-1 * var(--space-2));padding:var(--space-2);border-radius:var(--radius);border-left:3px solid #0000;transition:background-color .3s,border-left-color .3s;display:flex;position:relative}.make-line-text{margin:0;font-size:1rem;line-height:1.5}.app button.make-line-text{height:auto;box-shadow:none;text-align:left;font-family:var(--font-ui);white-space:normal;background:0 0;border:0;padding:0;display:block}.app button.make-line-text:hover:not(:disabled){-webkit-text-decoration:underline dotted var(--border-strong);text-decoration:underline dotted var(--border-strong);background:0 0}.make-line-text strong{color:var(--accent);font-weight:650}.make-line-main{flex:1;min-width:0}li.make-kind-text>.make-line-text{margin-left:calc(20px + var(--space-3));color:var(--text-muted);font-style:italic}li.make-kind-note>.make-line-text{margin-left:calc(20px + var(--space-3));padding:var(--space-1) var(--space-3);background:var(--surface-subtle);border-radius:var(--radius);font-size:.9375rem}.make-kind-round,.make-kind-step{min-height:44px}.make-kind-round:before,.make-kind-step:before{content:"";left:calc(var(--space-2) + 21px);background:var(--border);width:2px;position:absolute;top:0;bottom:0}.make-line-done:before{background:var(--accent)}.app .make-mark{z-index:1;border-radius:var(--radius);width:44px;height:44px;box-shadow:none;color:var(--accent);background:0 0;border:0;flex:0 0 44px;justify-content:center;margin:-10px 0 0;padding:0;position:relative}.app .make-mark:hover:not(:disabled){background:var(--accent-soft)}.make-bead{border:2px solid var(--border-strong);background:var(--surface);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8125rem;font-weight:700;line-height:1;display:flex}.make-mark-done .make-bead{border-color:var(--accent);background:var(--accent)}.make-mark-space{flex:0 0 44px}.make-marker-icon{flex:none;width:21px;height:28px}.make-line-done .make-line-text,.make-line-done .make-line-text strong{color:var(--text-muted)}.make-piece-focus .make-line-current{background:var(--accent-soft);border-left-color:var(--accent)}.make-line-found:not(.make-line-current){background:var(--selection)}.make-piece-focus .make-line-current .make-line-text,.make-piece-focus .make-line-current .make-line-text strong{color:var(--accent-hover)}.app .make-line .make-line-text,.make-line .make-line-text strong,.app .make-round{transition:background-color .3s,border-color .3s,box-shadow .3s,color .3s}@media (prefers-reduced-motion:reduce){.make-line,.app .make-line .make-line-text,.make-line .make-line-text strong,.app .make-round{transition:none}}.make-reminders{gap:var(--space-1);margin:var(--space-1) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.make-reminder{align-items:center;gap:var(--space-1);padding:1px var(--space-2);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:999px;font-size:.8125rem;display:inline-flex}.make-reminder-colour,.make-reminder-loop,.make-reminder-leaf{border-color:var(--warning);color:var(--warning)}.make-reminder-swatch{border:1px solid var(--border-strong);border-radius:50%;width:10px;height:10px}.make-rounds{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.app .make-round{height:auto;min-height:36px;padding:1px var(--space-3);gap:var(--space-1);color:var(--text-muted);border-radius:999px;font-size:.875rem}.app .make-round-done,.app .make-round-done:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:#fff}.app .make-piece-focus .make-round-current{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-hover)}.make-preview{gap:var(--space-3);min-height:0;padding:var(--space-3) var(--space-4) var(--space-4);background:var(--surface-subtle);border-left:1px solid var(--border);flex-direction:column;grid-area:1/2;display:flex}.make-preview-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.make-preview .make-preview-viewport{flex:1;height:auto;min-height:12rem}.make-preview-hint{color:var(--text-muted);margin:0;font-size:.8125rem}.app .make-step-arrow{border:1px solid var(--border-strong);width:44px;height:44px;box-shadow:var(--shadow);color:var(--accent);background:#ffffffeb;border-radius:50%;justify-content:center;margin-top:-22px;padding:0;font-size:1.75rem;line-height:1;position:absolute;top:50%}.make-step-back{left:var(--space-2)}.make-step-next{right:var(--space-2)}.app .make-step-arrow:disabled{opacity:.4}.make-play{right:var(--space-2);bottom:var(--space-2);box-shadow:0 0 0 1px var(--border);background:#ffffffeb;border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute}.make-play .make-play-speed{height:26px;padding:0 var(--space-2);color:var(--accent-hover);background:0 0;background:var(--accent-soft);min-width:4.5rem;border:none;border-radius:999px;font-size:.75rem}.make-play .make-play-button,.make-play .make-play-all{background:var(--accent);color:#fff;border:none;border-radius:50%;justify-content:center;width:30px;height:30px;padding:0;font-size:.75rem}.make-play .make-play-button:disabled,.make-play .make-play-all:disabled{opacity:.4}.make-preview-viewport .preview-3d-note{max-width:calc(100% - 20rem)}.make-step{align-items:center;gap:var(--space-2);height:2.5rem;padding:0 var(--space-2) 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);display:flex;position:relative}.make-step .make-step-home{flex:none;font-size:.8125rem}.app .make-preview-viewport .make-step-home{top:var(--space-2);left:var(--space-2);z-index:2;box-shadow:0 0 0 1px var(--border), 0 2px 8px #20201e1f;border-radius:999px;font-size:.8125rem;position:absolute}.make-view-narrow{grid-template-rows:minmax(0,33%) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.make-view-narrow.make-view-big{grid-template-rows:minmax(0,60%) minmax(0,1fr)}.app .make-grow{flex:none;font-size:1.25rem}.make-view-narrow.make-view-folded{grid-template-rows:auto minmax(0,1fr)}.make-view-narrow .make-sheet{padding:0 var(--space-3) var(--space-5);grid-row:2}.make-view-narrow .make-sheet-head,.make-view-short .make-sheet-head{margin:0 calc(-1 * var(--space-3));padding:var(--space-2) var(--space-3)}.make-view-narrow .make-preview{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:none;border-bottom:1px solid var(--border);grid-area:1/1}.make-view-short .make-preview{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.make-view-short .make-sheet{padding:0 var(--space-3) var(--space-5)}:is(.make-view-narrow .make-sheet:has(.make-done-bar),.make-view-short .make-sheet:has(.make-done-bar)){padding-bottom:0}.make-view-narrow .make-done-bar,.make-view-short .make-done-bar{margin:0 calc(-1 * var(--space-3));padding-right:var(--space-3);padding-left:var(--space-3)}.make-view-narrow .make-preview-head,.make-view-short .make-preview-head{justify-content:flex-start;gap:var(--space-2);flex-wrap:nowrap;overflow-x:auto}.make-view-narrow .make-preview-head>*,.make-view-short .make-preview-head>*{flex:none}.make-view-narrow .make-preview .make-preview-viewport{min-height:6rem}.app .make-view-narrow .make-step-arrow{top:auto;bottom:var(--space-2);margin-top:0}.app .make-view-narrow .make-step-next{right:auto;left:calc(var(--space-2) + 52px)}.app .make-view button.make-view-menu{justify-content:space-between;gap:var(--space-2);flex:auto;min-width:0;display:flex}.make-view-menu .toolbar-menu-button-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.make-view-narrow .make-preview-viewport .preview-3d-note{top:var(--space-2);max-width:calc(100% - 8rem);bottom:auto}.app .make-fold{margin-left:auto}.make-fold span{font-size:.75rem}.make-preview-folded .make-preview-head,.make-preview-folded .make-preview-viewport,.make-preview-folded .make-preview-hint{display:none}.make-view-narrow .make-preview-folded:not(:has(.make-step)){display:none}.make-step.make-step-bare{justify-content:center;height:3rem}.make-step-mark{color:inherit;box-shadow:0 0 0 1px var(--accent);background:#f0d9e4;border-radius:3px}.make-dialog-backdrop{z-index:20;padding:var(--space-4);background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.make-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:min(36rem,100%);max-height:85vh;display:flex;box-shadow:0 12px 40px #00000040}.make-dialog header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.make-dialog h2{margin:0;font-size:1.125rem}.make-dialog-body{padding:var(--space-2) var(--space-4) var(--space-4);line-height:1.5;overflow-y:auto}.make-dialog h3{margin:var(--space-4) 0 var(--space-2);font-size:1rem}.make-dialog ol{padding-left:var(--space-5)}.make-dialog ul.make-materials{margin:var(--space-2) 0 var(--space-3);padding:0;list-style:none}.make-materials label{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);cursor:pointer;padding:6px 0;display:flex}.make-materials input{width:18px;height:18px;accent-color:var(--accent);margin:0}.make-materials input:checked~span:last-child{color:var(--text-muted);text-decoration:line-through}.make-materials-amount{color:var(--text-muted)}.make-units{max-width:14rem;margin:0 0 var(--space-3)}.make-materials-total{margin:0 0 var(--space-3);color:var(--text-muted);font-size:.8125rem}.make-materials-swatch{border-radius:50%;flex:none;width:16px;height:16px;box-shadow:inset 0 0 0 1px #0000002e}.make-dialog-notes{margin-top:var(--space-4);padding-top:var(--space-2);border-top:1px solid var(--border);color:var(--text-muted);font-size:.8125rem}.make-dialog-notes h3{font-size:.875rem}.make-yarns-about{margin:0 0 var(--space-3);color:var(--text-muted);font-size:.875rem}.make-dialog ul.make-yarns{margin:0 0 var(--space-3);padding:0;list-style:none}.make-yarn{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto minmax(0,1.4fr) auto;display:grid}.make-yarn-theirs,.make-yarn-yours{align-items:center;gap:var(--space-2);min-width:0;display:flex}.make-yarn-theirs{overflow-wrap:anywhere}.make-yarn-arrow{color:var(--text-muted)}.make-yarn-colour{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;appearance:none;flex:none;width:44px;height:44px;padding:3px}.app input.make-yarn-colour{padding:3px}.make-yarn-colour::-webkit-color-swatch-wrapper{padding:0}.make-yarn-colour::-webkit-color-swatch{border-radius:calc(var(--radius) - 2px);border:none}.make-yarn-colour::-moz-color-swatch{border-radius:calc(var(--radius) - 2px);border:none}.make-yarn-name{min-width:0;min-height:44px;color:var(--text-muted);overflow-wrap:anywhere;flex:1;align-items:center;display:flex}.make-yarn-swapped .make-yarn-name{color:var(--text);font-weight:600}.app .make-yarn-reset,.app .make-yarns-reset-all{min-height:44px}.make-notes p{margin:var(--space-2) 0 var(--space-3);overflow-wrap:anywhere}.make-notes-compact p{margin:2px 0}.make-notes a,.make-abbreviations a{color:var(--accent)}.make-note-label{margin-right:var(--space-2);background:var(--accent-soft);color:var(--accent-hover);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border-radius:999px;padding:0 6px;font-size:.6875rem;font-weight:650;display:inline-block}.make-keys{border-collapse:collapse;width:100%}.make-keys th,.make-keys td{padding:6px var(--space-2);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.make-keys th{white-space:nowrap;width:40%;font-weight:400}.make-keys th span{color:var(--text-muted);font-size:.8125rem}.make-keys kbd{border:1px solid var(--border-strong);background:var(--surface-subtle);font-family:var(--font-ui);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:.8125rem}.make-abbreviations{width:100%;margin-top:var(--space-2);border-collapse:collapse}.make-abbreviations thead th{top:calc(-1 * var(--space-2));z-index:1;padding:6px var(--space-2);background:var(--surface);border-bottom:1px solid var(--border-strong);text-align:left;color:var(--text-muted);font-size:.75rem;font-weight:650;position:sticky}.make-abbreviations tbody th,.make-abbreviations td{padding:5px var(--space-2);text-align:left;vertical-align:top}.make-abbreviations tbody th{white-space:nowrap;font-weight:700}.make-abbreviations tbody tr:nth-child(2n){background:var(--surface-subtle)}.make-abbreviations tr.make-abbreviations-group th{padding-top:var(--space-3);background:var(--surface);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:650}.app .make-abbreviations-all{margin-top:var(--space-3)}.make-dialog ol.make-assembly{margin:var(--space-2) 0 0;padding:0;list-style:none}.make-assembly li{gap:var(--space-2);border-radius:var(--radius);border-left:3px solid #0000;display:flex}.make-assembly li>button{align-items:flex-start;gap:var(--space-2);width:100%;height:auto;padding:var(--space-1) var(--space-2);border-radius:inherit;font:inherit;line-height:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;display:flex}.make-assembly-note{padding:var(--space-1) var(--space-2)}.make-assembly li>button:hover{background:var(--surface-subtle)}.make-assembly-mark{font-variant-numeric:tabular-nums;text-align:right;flex:none;width:1.5rem;font-weight:650}.make-assembly-mark svg{vertical-align:-2px}.make-assembly-text{min-width:0}.make-assembly-crochet{color:var(--text-muted);font-size:.875rem}.make-assembly-crochet .make-assembly-mark{font-weight:400}.make-assembly-where{font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600;display:block}.make-assembly-done{opacity:.55}.make-assembly-done .make-assembly-mark{color:var(--accent)}.make-assembly-current{background:var(--accent-soft);border-left-color:var(--accent);opacity:1}.make-assembly-current,.make-assembly-current .make-assembly-text{color:var(--accent-hover)}@media print{.app>.make-view{display:none}}.make-step-tag{margin-right:var(--space-2);padding:0 var(--space-2);background:var(--surface-subtle);border:1px solid var(--border-strong);vertical-align:1px;color:var(--text-muted);border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.5;display:inline-block}.make-step-tag.make-reminder-stuff,.make-step-tag.make-reminder-eyes,.make-step-tag.make-reminder-nose{border-color:var(--warning);color:var(--warning)}.preview-3d-stage{gap:var(--space-3);flex-direction:column;display:flex}.workspace-wide .pattern-editor{flex:0 40%;min-width:22rem;max-width:46rem}.workspace-wide .side-panel{min-width:0;padding:var(--space-3);background:var(--bg);flex:1 1 0;overflow:hidden}.workspace-wide .panel-3d{flex-direction:column;flex:1;min-height:0;display:flex}.preview-3d-wide{flex:1;min-height:0}.preview-3d-wide .preview-3d-stage{background:var(--surface);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow), 0 0 0 1px var(--border);flex:1;gap:0;position:relative;overflow:hidden}.preview-3d-viewport,.preview-3d-stage .tool-bar{-webkit-user-select:none;user-select:none}.preview-3d-wide .preview-3d-viewport{min-width:0;height:auto;min-height:0;box-shadow:none;border-radius:0;flex:1}.preview-3d-wide .tool-bar{top:var(--space-2);left:var(--space-2);z-index:3;flex-direction:column;align-items:stretch;position:absolute}.preview-3d-wide .tool-bar>.preview-mode{flex-direction:column;align-items:stretch}.app .preview-3d-wide .tool-bar .preview-mode button{text-align:left;justify-content:space-between;margin-left:0}.app .preview-3d-wide .tool-bar .preview-mode button+button{margin-top:-1px}.app .preview-3d-wide .tool-bar .preview-mode button:first-of-type{border-radius:var(--radius) var(--radius) 0 0}.app .preview-3d-wide .tool-bar .preview-mode button:last-of-type{border-radius:0 0 var(--radius) var(--radius)}.right-panel{box-sizing:border-box;background:var(--surface-subtle);border-left:1px solid var(--border);flex-direction:column;flex:none;width:clamp(20rem,25vw,26rem);min-width:0;min-height:0;display:flex;overflow:hidden}.right-tab{gap:var(--space-4);min-width:0;min-height:0;padding:var(--space-3) var(--space-4) var(--space-6);flex-direction:column;flex:1;display:flex;overflow:clip auto}.right-tab[hidden]{display:none}.right-properties{gap:var(--space-4);flex-direction:column;display:flex}.right-properties .tool-options{margin-top:0}.library{gap:var(--space-2);flex-direction:column;display:flex}.app .shelf-menu button[draggable=true]{cursor:grab}.library-ask{z-index:50;gap:var(--space-2);width:260px;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;font-size:.8125rem;display:flex;position:fixed;box-shadow:0 6px 24px #0000002e}.library-ask-title{margin:0;font-weight:600}.library-ask-size{align-items:center;gap:var(--space-2);display:flex}.app .library-ask-size input,.library-ask-size input{width:5em}.library-ask-note{min-height:1.2em;color:var(--text-muted);margin:0}.library-ask-buttons{gap:var(--space-2);display:flex}.outline{gap:var(--space-1);flex-direction:column;min-width:0;font-size:.8125rem;display:flex}.outline-pieces,.outline-items{margin:0;padding:0;list-style:none}.outline-piece,.outline-toy{border-radius:var(--radius)}.outline-piece.is-current,.outline-toy.is-current{background:var(--accent-soft)}.outline-spacer{flex:0 0 22px}.app .outline-toy .outline-whole-toy{cursor:pointer}.app .outline-toy.is-current .outline-whole-toy,.app .outline-piece.is-current .outline-piece-name{background:var(--accent-soft)}.app .outline-item[aria-current]{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent);color:var(--text)}.outline-drop-before{box-shadow:inset 0 2px 0 var(--accent)}.outline-drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.outline-piece-row{align-items:center;display:flex}.app .outline-toggle,.app .outline-piece-name,.app .outline-whole-toy,.app .outline-item{box-shadow:none;background:0 0;border:none}.app .outline-toggle{width:22px;color:var(--text-muted);padding:0}.app .outline-piece-name,.app .outline-whole-toy{align-items:baseline;gap:var(--space-2);min-width:0;padding:0 var(--space-2) 0 0;color:var(--text);cursor:grab;text-align:left;flex:1;display:flex}.outline-name,.outline-toy-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.outline-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.75rem;overflow:hidden}.outline-check{white-space:nowrap;font-size:.75rem}.outline-check-ok{color:var(--success)}.outline-check-warning{color:var(--warning)}.outline-check-error{color:var(--error)}.outline-items{padding:0 0 var(--space-1) 22px}.app .outline-item{gap:var(--space-2);width:100%;height:24px;padding:0 var(--space-2);color:var(--text-muted);text-align:left;white-space:nowrap;font-size:.75rem;display:flex;overflow:hidden}.app .outline-item:hover:not(:disabled){background:var(--surface);color:var(--text)}.outline-item-label{text-overflow:ellipsis;overflow:hidden}.outline-item-rounds .outline-item-label{color:var(--text);flex:none;font-weight:500}.outline-item-detail{text-overflow:ellipsis;overflow:hidden}.outline-piece[data-depth]{margin-left:calc(var(--outline-depth,1) * 14px);border-left:1px solid var(--border)}.outline-item-mark .outline-item-label,.outline-rounds-toggle .outline-item-label{color:var(--text);flex:none;font-weight:500}.outline-hint{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:.75rem}.cm-piece-summary{margin-left:var(--space-3);font-family:var(--font-ui);color:var(--text-muted);font-size:.75rem;font-style:normal}.cm-piece-summary-ok:after{content:""}.cm-piece-summary-warning{color:var(--warning)}.cm-piece-summary-error{color:var(--error)}.app .cm-folded-piece{height:auto;margin-left:var(--space-2);padding:0 var(--space-2);border:1px solid var(--border-strong);background:var(--surface);font-family:var(--font-ui);border-radius:999px;font-size:.6875rem;font-style:normal;line-height:1.5}.cm-move-handle{cursor:grab;width:14px;color:var(--text-muted);font-family:var(--font-ui);touch-action:none;-webkit-user-select:none;user-select:none;font-size:.8rem;display:inline-block}.cm-move-handle:hover{color:var(--accent)}.cm-line.cm-move-before{box-shadow:inset 0 2px 0 var(--accent)}.cm-line.cm-move-after{box-shadow:inset 0 -2px 0 var(--accent)}.cm-fold-marker{cursor:pointer;width:14px;color:var(--text-muted);font-family:var(--font-ui);font-size:.75rem;display:inline-block}.pattern-editor .cm-kind-gutter .cm-gutterElement{padding:0 2px}.cm-kind{vertical-align:-2px;color:#b9b7b0;display:inline-flex}.cm-kind-heading,.cm-kind-yarn,.cm-kind-colour{color:var(--accent)}.cm-kind-tip,.cm-kind-note,.cm-kind-pinned{color:var(--warning)}.pattern-editor .cm-editor .cm-callout{background:#fcf8ec;border-left:3px solid #e8d49a}.pattern-editor .cm-editor .cm-callout-pinned{border-left-color:var(--accent);background:var(--accent-soft)}.cm-insert-row{padding:0 0 var(--space-1) var(--space-2)}.app .cm-insert-button{height:24px;padding:0 var(--space-2);border:1px dashed var(--border-strong);box-shadow:none;color:var(--text-muted);font-family:var(--font-ui);opacity:.75;background:0 0;border-radius:999px;font-size:.75rem;font-style:normal}.app .cm-insert-button:hover{border-color:var(--accent);color:var(--accent-hover);opacity:1}.app .cm-line-insert,.app .cm-line-delete{width:18px;height:18px;margin-left:var(--space-2);border:1px dashed var(--border-strong);box-shadow:none;color:var(--text-muted);font-family:var(--font-ui);vertical-align:middle;opacity:0;background:0 0;border-radius:999px;padding:0;font-size:.75rem;line-height:1}.app .cm-line:hover .cm-line-insert,.app .cm-activeLine .cm-line-insert,.app .cm-line-insert:focus-visible,.app .cm-line:hover .cm-line-delete,.app .cm-activeLine .cm-line-delete,.app .cm-line-delete:focus-visible{opacity:.75}.app .cm-line-delete{margin-left:var(--space-1)}.app .cm-line-insert:hover{border-color:var(--accent);color:var(--accent-hover);opacity:1}.app .cm-line-delete:hover{border-color:var(--error);color:var(--error);opacity:1}@media (pointer:coarse){.app .cm-round-label{-webkit-text-decoration:underline dotted var(--border-strong);text-decoration:underline dotted var(--border-strong);text-underline-offset:3px}}.delete-round{flex-direction:column;max-width:20rem;display:flex}.delete-round-line{margin:2px var(--space-2);padding:2px var(--space-2);border-radius:var(--radius);font-family:var(--font-code);overflow-wrap:anywhere;font-size:.75rem}.delete-round-taken{color:var(--error);background:#f9dede;text-decoration:line-through}.delete-round-written{background:var(--accent-soft)}.delete-round-note{margin:var(--space-1) var(--space-2) 0;color:var(--text-muted);font-size:.75rem}.delete-round-actions{gap:var(--space-1);margin:var(--space-2) var(--space-1) var(--space-1);display:flex}.insert-menu .delete-round-actions button{flex:1;justify-content:center}.pick-detail-delete,.pick-detail-opening{margin-top:var(--space-2)}.insert-menu{max-height:60vh;color:var(--text);z-index:50;min-width:12rem;max-width:18rem;padding:var(--space-1);background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 6px 20px #20201e24, 0 0 0 1px var(--border);font-family:var(--font-ui);flex-direction:column;font-size:.8125rem;display:flex;position:fixed;overflow-y:auto}.insert-menu button{height:28px;padding:0 var(--space-2);border-radius:var(--radius);cursor:pointer;font:inherit;box-shadow:none;color:var(--text);text-align:left;background:0 0;border:none;justify-content:flex-start;align-items:center;display:flex}.insert-menu button:disabled{cursor:default;color:var(--text-muted);opacity:.55}.insert-menu button:hover:not(:disabled),.insert-menu button:focus-visible{background:var(--accent-soft);color:var(--accent-hover)}.insert-menu-title{margin:var(--space-1) var(--space-2);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.insert-menu-message{max-width:16rem;margin:var(--space-1) var(--space-2);color:var(--warning);font-size:.75rem}.pin-note-text{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:.8125rem;display:flex}.app .pin-note-text input{flex:1;min-width:10rem}.app .outline-toggle{justify-content:center;min-width:24px;height:26px}.app .outline-piece-name,.app .outline-whole-toy{align-items:center;height:28px}.right-properties .paint-options,.right-properties .preview-mode{row-gap:var(--space-1);flex-wrap:wrap}.right-properties .tool-options,.right-properties .piece-panel{min-width:0}.pattern-pane{flex-direction:column;display:flex}.pattern-pane>.pattern-text{flex:1;min-height:0}.pattern-text .cm-editor{height:100%}.editor-bar{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--editor-bg);flex-wrap:wrap;flex:none;display:flex}.pane-divider{z-index:2;cursor:col-resize;touch-action:none;background:0 0;flex:0 0 6px;margin:0 -3px;position:relative}.pane-divider:after{content:"";background:var(--border);width:2px;transition:background-color .12s;position:absolute;top:0;bottom:0;left:2px}.pane-divider:hover:after,.pane-divider:focus-visible:after,.pane-divider[data-dragging=true]:after{background:var(--accent)}.pane-divider:focus-visible{outline:none}.workspace-wide .pattern-editor.pattern-sized{max-width:none}.snap-panel{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-1) 0;flex-wrap:wrap;display:flex}.snap-panel .snap-steps{align-self:flex-start;gap:var(--space-1);flex-direction:row;flex:none}.snap-step-now{color:var(--text);flex:12rem;margin:0;font-size:.8125rem;font-weight:600}.snap-panel .preview-placement-status{margin:0}.snap-steps{gap:var(--space-1);counter-reset:snap-step;color:var(--text-muted);flex-direction:column;margin:0;padding:0;font-size:.8125rem;list-style:none;display:flex}.snap-steps li{gap:var(--space-2);counter-increment:snap-step;align-items:baseline;display:flex}.snap-steps li:before{content:counter(snap-step);border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;width:1.375rem;height:1.375rem;font-weight:600;display:inline-grid}.snap-steps li[aria-current=step]{color:var(--text);font-weight:600}.snap-steps li[aria-current=step]:before{border-color:var(--accent);background:var(--accent);color:var(--surface)}.snap-steps li.snap-step-done:before{content:"✓";border-color:var(--accent);color:var(--accent)}.app .snap-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.snap-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.tool-options .snap-actions{z-index:1;padding:var(--space-1) 0;background:var(--tool-strip-bg,var(--surface));flex:100%;position:sticky;bottom:0}.pair-picked-group{align-items:center;gap:var(--space-2);display:inline-flex}.app .pair-picked{white-space:nowrap;flex:none}.pair-picked-note{color:var(--text-muted);font-size:.8125rem}.snap-pair{align-items:center;gap:var(--space-2);font-size:.8125rem;display:flex}.preview-3d-wide .tool-options{--tool-strip-bg:#fafaf8;left:0;right:calc(var(--cube-room,0px) + 2 * var(--space-2));z-index:2;height:auto;max-height:12rem;padding:var(--space-1) var(--space-3) var(--space-2);border-top:1px solid var(--border);border-right:1px solid var(--border);border-top-right-radius:var(--radius);background:#fafaf8f0;margin:0;position:absolute;bottom:0;overflow-y:auto}.preview-3d-wide .tool-options.tool-options-tall{max-height:50%}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .library .paint-options{padding-top:var(--space-1);row-gap:var(--space-1)}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .library-groups{gap:var(--space-1)}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .shelf-menu{gap:3px;padding:3px}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .library button{height:22px;padding:0 var(--space-1);gap:var(--space-1);font-size:.75rem}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .shelf-menu .icon{width:14px;height:14px}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .library .preview-placement-status{font-size:.75rem;line-height:1.4}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .colour-picker{gap:var(--space-1);padding:var(--space-2)}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .swatches{gap:4px}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .swatches li{display:flex}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .swatch{width:22px;height:22px}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .colour-picker-own{row-gap:var(--space-1);margin-top:0}.app .workspace-wide:not(.workspace-tablet) .tool-options-tall .colour-picker-own input[type=text]{min-width:0}.preview-3d-wide .preview-3d-note{bottom:calc(var(--tool-strip,0px) + var(--space-2))}.preview-3d-wide .preview-3d-note.preview-3d-left-out{bottom:calc(var(--tool-strip,0px) + var(--space-2) + 32px)}.preview-3d-wide .preview-3d-status{bottom:calc(var(--tool-strip,0px) + 2 * var(--space-2) + 24px)}.preview-3d-wide .tool-options .paint-options,.preview-3d-wide .tool-options .preview-mode{row-gap:var(--space-1);flex-wrap:wrap}.preview-3d-wide .tool-options .preview-placement-status{padding:var(--space-1) 0 0}.app .tool-bar .preview-mode button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.app .tool-bar .preview-mode button[aria-pressed=true]:hover:not(:disabled){background:var(--accent-hover)}.tool-bar button[aria-pressed=true] .tool-key{color:#fff;border-color:#ffffff8c}.preview-3d-wide .tool-bar .preview-mode{border-radius:var(--radius);box-shadow:0 2px 8px #20201e1a}.preview-3d-overlay{z-index:2;max-width:calc(100% - 2 * var(--space-2));flex-wrap:wrap;justify-content:flex-end;align-items:center}.preview-3d-wide .preview-3d-overlay{max-width:calc(100% - 9rem)}.preview-3d-overlay,.preview-3d-overlay .view-toggles{pointer-events:none}.preview-3d-overlay button{pointer-events:auto}.view-toggles{justify-content:flex-end;gap:var(--space-1);flex-wrap:wrap;min-width:0;max-width:100%;display:flex}.app .preview-3d-overlay .checks-badge{height:24px;padding:0 var(--space-2);border-color:var(--error);color:var(--error);background:#f9dede;font-size:.75rem;font-weight:600}.app .preview-3d-overlay .checks-badge-warning{border-color:var(--warning);color:var(--text);background:#f8eccb}.app .view-toggles button.model-view-menu{align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);background:#ffffffe0;max-width:100%;font-size:.75rem;display:inline-flex}.app .view-toggles button.model-view-menu[aria-expanded=true]{background:var(--accent-soft)}.model-view-menu .toolbar-menu-button-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.right-panel{position:relative}.right-panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.right-panel-body[hidden]{display:none}.app .panel-fold{top:var(--space-2);right:var(--space-2);z-index:2;justify-content:center;width:28px;height:28px;padding:0;font-size:1.125rem;position:absolute}.right-panel.right-panel-folded{width:40px}.app .right-panel-folded .panel-fold{justify-content:flex-start;gap:var(--space-3);width:100%;height:auto;padding:var(--space-3) 0;box-shadow:none;color:var(--text-muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;position:static}.panel-fold-label{writing-mode:vertical-rl;font-size:.8125rem}.pattern-editor .cm-content.cm-lineWrapping{min-width:0}.pattern-editor .cm-editor .cm-callout-folded{white-space:pre;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.app .editor-bar .notes-toggle{box-shadow:none;color:var(--text-muted);margin-left:auto}.app .editor-bar .notes-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.app button.make-line-text{font-size:1.125rem;line-height:1.5}li.make-kind-text>.make-line-text,li.make-kind-note>.make-line-text{align-items:baseline;gap:var(--space-2);flex:1;min-width:0;font-size:.9375rem;display:flex}.make-note-body{min-width:0}.make-note-folded .make-note-body,.make-note-folded .make-note-lines{-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}li.make-note-run>.make-line-text{align-items:flex-end}.make-note-lines{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.make-note-lines p{margin:0}.app .make-note-more{min-width:24px;height:auto;min-height:24px;padding:0 var(--space-1);box-shadow:none;color:var(--accent);background:0 0;border:0;flex:none;margin-left:auto;font-size:.875rem;text-decoration:underline}.app .make-note-more:hover:not(:disabled){color:var(--accent-hover);background:0 0}.app .danger-button{color:var(--error);font-weight:600}.app .danger-button:hover:not(:disabled){background:#f9dede}.make-cleared{top:calc(100% + var(--space-2));right:var(--space-5);left:var(--space-5);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--text);color:#fff;margin:0;font-size:.875rem;display:flex;position:absolute}.app .make-cleared button{height:26px;box-shadow:none;color:#fff;background:#ffffff26;border-color:#0000;margin-left:auto;font-weight:650}.app .make-cleared button:hover:not(:disabled){background:#ffffff40}.preview-3d-wide .tool-bar{row-gap:var(--space-3)}.pattern-finder{width:min(32rem,100%);height:min(36rem,85vh)}.pattern-finder-search{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.pattern-finder-search input{flex:1;min-width:10rem}.pattern-finder-list{padding:0 var(--space-2) var(--space-2);flex:1;margin:0;list-style:none;overflow-y:auto}.app .pattern-finder-list button{justify-content:space-between;gap:var(--space-3);width:100%;min-height:44px;box-shadow:none;color:var(--text);text-align:left;background:0 0;border:none;display:flex}.app .pattern-finder-list button:hover,.app .pattern-finder-list button:focus-visible{background:var(--accent-soft);color:var(--accent-hover)}.pattern-finder-when{color:var(--text-muted);flex:none;font-size:.8125rem}.pattern-finder-empty{padding:0 var(--space-4) var(--space-4);color:var(--text-muted);margin:0}.new-design-ask{width:min(28rem,100%)}.new-design-buttons{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.feedback-form{gap:var(--space-3);display:grid}.feedback-kinds{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.app .feedback-kinds button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.feedback-field{gap:var(--space-1);display:grid}.feedback-field textarea,.feedback-field input{width:100%;padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--text)}.feedback-photos{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.feedback-photo{position:relative}.feedback-photo img{object-fit:cover;border-radius:var(--radius);width:72px;height:72px;display:block}.app .feedback-photo button{min-width:24px;min-height:24px;padding:0;position:absolute;top:2px;right:2px}.feedback-add-photo{min-height:44px;padding:0 var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--accent);cursor:pointer;align-items:center;display:inline-flex}.feedback-add-photo input{opacity:0;width:1px;height:1px;position:absolute}.feedback-add-photo:focus-within{box-shadow:var(--focus-ring)}.feedback-check{align-items:center;gap:var(--space-2);min-height:24px;display:flex}.feedback-note{color:var(--text-muted);margin:0;font-size:.875rem}.feedback-error{color:var(--error);margin:0}.feedback-turnstile:empty{display:none}.feedback-buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.feedback-sent{gap:var(--space-3);justify-items:start;display:grid}.preview-3d-canvas{position:relative}.view-cube-box{right:var(--space-2);bottom:var(--space-2);z-index:2;align-items:flex-end;gap:var(--space-1);display:flex;position:absolute}.view-cube{place-items:center;width:100px;height:100px;display:grid;position:relative}.view-cube-body{transform-style:preserve-3d;position:relative}.app .view-cube-face{border:1px solid var(--accent);min-width:0;height:auto;box-shadow:none;backface-visibility:hidden;color:var(--text);background:#ffffffeb;border-radius:2px;place-items:center;padding:0;font-size:.75rem;line-height:1;display:grid;position:absolute;inset:0}.app .view-cube-face:hover:not(:disabled){background:var(--accent-soft)}.app .view-cube-face[data-thin]{color:#0000}.app .view-cube-arrow{z-index:1;width:24px;min-width:0;height:24px;box-shadow:none;color:var(--text-muted);background:0 0;border:none;justify-content:center;padding:0;font-size:.9rem;line-height:1;position:absolute}.app .view-cube-arrow:hover:not(:disabled){color:var(--accent);background:0 0}.view-cube-arrow-left{top:calc(50% - 12px);left:-3px}.view-cube-arrow-right{top:calc(50% - 12px);right:-3px}.view-cube-arrow-up{top:-3px;left:calc(50% - 12px)}.view-cube-arrow-down{bottom:-3px;left:calc(50% - 12px)}@media (pointer:coarse){.view-cube{width:124px;height:124px}.app .view-cube-arrow{width:30px;height:30px;font-size:1.25rem}.view-cube-arrow-left,.view-cube-arrow-right{top:calc(50% - 15px)}.view-cube-arrow-up,.view-cube-arrow-down{left:calc(50% - 15px)}}.view-cube-actions{gap:var(--space-1);flex-direction:column;display:flex}.app .view-cube-face-button,.app .view-cube-fit{height:24px;padding:0 var(--space-2);background:#ffffffe0;font-size:.75rem}.eye-spacing{min-width:5.5rem;padding:0 var(--space-2);color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;font-size:.8125rem}.app .toolbar-group button.toolbar-menu-button{gap:var(--space-1);white-space:nowrap}.app .toolbar-group button.toolbar-menu-button[aria-expanded=true]{background:var(--surface-subtle)}.toolbar-menu{min-width:14rem;max-width:15rem;max-height:min(70vh,32rem)}.toolbar-menu button{gap:var(--space-2);text-overflow:ellipsis;white-space:nowrap;flex:none;min-height:32px;overflow:hidden}.toolbar-menu button.toolbar-menu-danger{color:var(--error)}.toolbar-menu-label{white-space:normal;text-align:left;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.toolbar-menu-note{color:var(--text-muted);font-size:.75rem;font-weight:400}.toolbar-menu [role=group]{flex-direction:column;display:flex}.toolbar-menu [role=group]+[role=group]{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--border)}@media (pointer:coarse){.make-view,.toolbar-make,.toolbar-menu{touch-action:manipulation}.app .make-view button,.app .toolbar-make button,.app .toolbar-make input,.toolbar-menu button,.make-dialog button,.make-dialog input,.app .feedback-photo button{min-width:44px;min-height:44px}.feedback-check{min-height:44px}.app .make-step-arrow,.make-play .make-play-button,.make-play .make-play-all,.make-play .make-play-speed{height:44px}.make-play .make-play-button,.make-play .make-play-all{width:44px}.make-play{padding:2px}.make-step{height:3rem}.app .make-round,.app button.make-line-text,.app .make-piece-name,.app .make-note-more{min-height:44px}.app .make-mark{margin-top:-6px}}.dialog-close-x{display:none}@media (width<=699.98px),(height<=499.98px) and (pointer:coarse){.make-dialog-backdrop{align-items:stretch;padding:0}.make-dialog,.pattern-finder{width:100%;height:100%;max-height:none;box-shadow:none;border:0;border-radius:0}.make-dialog header{padding-right:var(--space-2);flex:none}.make-dialog-body{flex:1;min-height:0}.app .dialog-close,.dialog-close{min-width:44px;min-height:44px;box-shadow:none;background:0 0;border:0;padding:0;font-size:1.375rem;line-height:1}.dialog-close-words{display:none}.dialog-close-x{display:inline}}.app button.make-pieces-menu{width:100%;min-width:0;margin-top:var(--space-2);justify-content:space-between;gap:var(--space-2);font-weight:600;display:flex}.make-pieces-menu .toolbar-menu-button-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.make-view:not(.make-view-narrow) .make-sheet-head{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.make-view:not(.make-view-narrow) .make-sheet-top{display:contents}.make-view:not(.make-view-narrow) .make-sheet-head .make-overall{flex:none;order:1}.make-view:not(.make-view-narrow) .make-sheet-top>.toolbar-menu-button{order:2;margin-left:auto}.app .make-view:not(.make-view-narrow) button.make-pieces-menu{flex:1 1 0;width:auto;min-width:8rem;max-width:18rem;margin-top:0}.make-view:not(.make-view-narrow) .make-cleared{flex-basis:100%;order:3}.toolbar-menu-check{width:1em;color:var(--accent);flex:none}:is(html:has(.gallery),body:has(.gallery)){overflow:hidden}.app:has(.gallery){overflow:clip}.gallery{z-index:15;background:var(--bg);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;inset:0;overflow-y:auto}.gallery-top{justify-content:space-between;align-items:center;gap:var(--space-3);padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-5) var(--space-3);background:var(--surface);display:flex}.gallery-wordmark{align-items:center;gap:var(--space-2);color:var(--accent);white-space:nowrap;font-size:1.125rem;font-weight:700;display:inline-flex}.gallery-wordmark svg{width:22px;height:22px}.app .gallery-top button{align-items:center;gap:var(--space-1);display:inline-flex}.gallery-top-actions{justify-content:flex-end;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;min-width:0;display:inline-flex}.gallery-brand{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.alpha-badge{align-items:center;min-height:24px;text-decoration:none;display:inline-flex}.alpha-badge-pill{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600;line-height:1.4}.alpha-badge:hover .alpha-badge-pill,.alpha-badge:focus-visible .alpha-badge-pill{text-decoration:underline}.gallery-about{color:var(--text-muted);white-space:nowrap;padding:2px 0;font-weight:500;text-decoration:none;display:inline-block}.gallery-about:hover{color:var(--accent);text-decoration:underline}.gallery-hero{justify-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4) var(--space-5);text-align:center;background:linear-gradient(var(--surface), var(--bg));border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr);display:grid}.gallery-hero h2{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(1.5rem,4vw,2rem)}.gallery-heading{align-items:center;gap:var(--space-1);display:flex}.app .gallery-info{box-shadow:none;background:0 0;border-color:#0000}.gallery-about-dialog p{margin:0 0 var(--space-3)}.gallery-about-links{gap:var(--space-4);flex-wrap:wrap;display:flex}.gallery-search{width:min(36rem,100%);position:relative}.gallery-search svg{width:18px;height:18px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.app .gallery-search input{width:100%;height:48px;padding:0 var(--space-4) 0 44px;border:1px solid var(--border-strong);background:var(--surface);font:inherit;color:var(--text);border-radius:999px;font-size:1rem;box-shadow:0 2px 10px #3c1e2d14}.app .gallery-search input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.gallery-chips{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.app .gallery-chips button{height:auto;min-height:30px;padding:2px var(--space-3);background:var(--surface);border-radius:999px}.app .gallery-chips button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover);font-weight:600}.gallery-phone-only{display:none}.gallery-notice{margin:var(--space-4) var(--space-5) 0;color:var(--warning)}.gallery-current{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-4) var(--space-5) 0;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;display:flex}.gallery-current-words{min-width:0;display:grid}.gallery-current-words span{color:var(--text-muted);font-size:.8125rem}.gallery-current-buttons{gap:var(--space-2);display:flex}.gallery-cards{gap:var(--space-4);padding:var(--space-4) var(--space-5);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));margin:0;list-style:none;display:grid}.gallery-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.gallery-picture{aspect-ratio:1;background:var(--surface-subtle)}.gallery-picture img{object-fit:cover;width:100%;height:100%;display:block}.gallery-card-words{padding:var(--space-2) var(--space-3);flex:1;align-content:start;gap:2px;display:grid}.app button.gallery-card-name{text-align:left;height:auto;min-height:0;color:var(--text);background:0 0;border:0;justify-self:start;padding:0;font-weight:600;line-height:1.3}.app button.gallery-card-name:after{content:"";position:absolute;inset:0}.app button.gallery-link,.gallery-card-buttons button{z-index:1}.gallery-card-buttons button{position:relative}.app button.gallery-card-name:hover:not(:disabled),.app button.gallery-card-name:focus-visible{color:var(--accent-hover);background:0 0;text-decoration:underline}.gallery-details{gap:var(--space-3);max-width:64rem;padding:var(--space-4) var(--space-5) var(--space-6);margin:0 auto;display:grid}.app button.gallery-back{height:auto;color:var(--accent);background:0 0;border:0;justify-self:start;padding:0;font-weight:500}.app button.gallery-back:hover:not(:disabled){background:0 0;text-decoration:underline}.gallery-details-body{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.gallery-details-picture{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);overflow:hidden}.gallery-details-picture img{object-fit:cover;width:100%;height:100%;display:block}.turntable{position:relative}.turntable-view{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;background-repeat:no-repeat;width:100%;height:100%}.turntable-view:active{cursor:grabbing}.turntable-buttons{right:var(--space-2);bottom:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.app .turntable-buttons button{background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:999px;min-width:2.75rem;min-height:2.75rem;font-size:1.25rem}.gallery-details-words{gap:var(--space-3);min-width:0;display:grid}.gallery-details-words h2{letter-spacing:-.02em;margin:0;font-size:1.75rem;line-height:1.15}.gallery-details-words h3{margin:var(--space-1) 0 0;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.8125rem}.gallery-details-about,.gallery-details-note,.gallery-details-pieces{color:var(--text-muted);margin:0;font-size:.875rem}.gallery-details-pieces span,.gallery-details-note span{color:var(--text);font-weight:600}.gallery-facts{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.gallery-facts div{padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface-subtle);flex-direction:column-reverse;display:flex}.gallery-facts dd{font-variant-numeric:tabular-nums;text-transform:capitalize;margin:0;font-size:1.25rem;font-weight:700}.gallery-facts dt{color:var(--text-muted);font-size:.75rem}.gallery-details-buttons{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.app .gallery-details-buttons button{height:auto;min-height:56px;padding:var(--space-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.gallery-details-buttons small{opacity:.85;font-size:.75rem;font-weight:400}.gallery-details-start{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--editor-bg);font-family:var(--font-code);margin:0;font-size:.8125rem;line-height:1.6;overflow-x:auto}.app button.gallery-details-link{align-items:center;gap:var(--space-1);justify-self:start;display:inline-flex}.gallery-card-facts,.gallery-card-about{color:var(--text-muted);font-size:.8125rem;line-height:1.4}.gallery-card-facts{font-variant-numeric:tabular-nums}.app button.gallery-link{top:var(--space-2);right:var(--space-2);width:30px;height:30px;color:var(--text-muted);background:#ffffffd9;border-color:#0000;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.app button.gallery-link:hover:not(:disabled),.app button.gallery-link:focus-visible{color:var(--accent-hover)}.gallery-card-buttons{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);grid-template-columns:1fr 1fr;display:grid}.gallery-none{padding:var(--space-6) var(--space-5);text-align:center;color:var(--text-muted)}.gallery-parts{padding:0 var(--space-5) var(--space-6)}.gallery-parts h3{margin:var(--space-2) 0;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.8125rem}.gallery-parts ul{gap:var(--space-3);padding:0 0 var(--space-2);margin:0;list-style:none;display:flex;overflow-x:auto}.gallery-parts li{flex:0 0 8rem}.app .gallery-parts button{border-color:var(--border);background:var(--surface);text-align:left;flex-direction:column;align-items:stretch;width:100%;height:auto;padding:0;font-size:.8125rem;display:flex;overflow:hidden}.gallery-parts img{aspect-ratio:1;background:var(--surface-subtle);width:100%;display:block}.gallery-parts span{padding:var(--space-1) var(--space-2) var(--space-2)}@media (width<=699.98px){.gallery-top{padding-inline:var(--space-4)}.gallery-top-actions{gap:var(--space-3);flex-wrap:nowrap}.gallery-wide-only{display:none}.gallery-phone-only{display:inline}.gallery-hero{padding-top:var(--space-4);padding-bottom:var(--space-3)}}@media (height<=499.98px){.gallery-hero{padding-block:var(--space-3);grid-template-columns:minmax(0,1fr) auto;align-items:center}.gallery-hero .gallery-heading{display:none}.gallery-hero .gallery-chips{flex-wrap:nowrap}}@media (width<=699.98px){.gallery-current,.gallery-notice{margin-inline:var(--space-3)}.gallery-cards{gap:var(--space-2);padding:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-card-about{display:none}.gallery-card-words{padding:var(--space-2)}.gallery-card-buttons{gap:var(--space-1);padding:0 var(--space-2) var(--space-2)}.app .gallery-card-buttons button{padding:0 var(--space-1)}.gallery-parts{padding-inline:var(--space-3)}.gallery-details{padding:var(--space-3)}.gallery-details-body{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.gallery-details-picture{max-width:22rem}}.link-dialog{width:min(32rem,100%)}.link-dialog-url{width:100%;font-family:var(--font-code);font-size:.8125rem}.link-dialog-note,.link-dialog-status{color:var(--text-muted);font-size:.8125rem}.link-dialog-status:empty{display:none}.pattern-finder-list li{align-items:center;display:flex}.app .pattern-finder-list .pattern-finder-link{width:auto;color:var(--text-muted);flex:none;justify-content:center;font-size:.8125rem}.pattern-finder-list li.pattern-finder-group{padding:var(--space-3) var(--space-2) var(--space-1);color:var(--text-muted);font-size:.8125rem;font-weight:600;display:block}.app .pattern-finder-list button{align-items:center}.pattern-finder-words{flex:1;min-width:0;display:grid}.pattern-finder-about{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.pattern-finder-picture{border-radius:var(--radius);background:var(--surface-subtle);flex:none;width:40px;height:40px;overflow:hidden}.pattern-finder-picture img{width:100%;height:100%;display:block}.app button.toolbar-home{align-items:center;gap:var(--space-2);padding:0 var(--space-1);box-shadow:none;color:inherit;font:inherit;letter-spacing:inherit;background:0 0;border:none;display:flex}.app button.toolbar-home:hover:not(:disabled) .toolbar-title-words,.app button.toolbar-home:focus-visible .toolbar-title-words{text-decoration:underline}.sim-keep-trying{margin-left:var(--space-1);padding:0 var(--space-2);font-size:inherit}.home-screen-hint{left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));z-index:19;align-items:flex-start;gap:var(--space-2);max-width:32rem;padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:0 auto;display:flex;position:fixed}.home-screen-hint-top{top:calc(52px + var(--space-2));bottom:auto}.app .home-screen-hint .icon-button{min-width:44px;min-height:44px}.home-screen-hint p{flex:1;margin:0;font-size:.9375rem;line-height:1.4}@media print{.home-screen-hint{display:none}}.inspector{gap:var(--space-3);flex-direction:column;display:flex}.inspector-heading{padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--text);flex-wrap:wrap;align-items:center;gap:0 6px;margin:0;font-size:1rem;font-weight:600;display:flex}.preview-3d>.inspector>.inspector-heading{border-top:none;padding-top:0}.inspector-heading-label,.inspector-heading-dot{color:var(--text-muted)}.inspector-heading-dot{white-space:pre}.inspector-size{align-items:baseline;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;display:flex}.inspector-size .size-main{font-size:inherit;font-weight:inherit;letter-spacing:normal;font-variant-numeric:tabular-nums}.app button.size-other{height:auto;min-height:24px;padding:0 var(--space-1);box-shadow:none;color:var(--accent);background:0 0;border-color:#0000;font-size:.8125rem}.piece-construction>summary{cursor:pointer;min-height:32px;color:var(--text-muted);align-items:center;font-weight:600;display:flex}.piece-construction[open]>summary{margin-bottom:var(--space-2)}.held-cancel{top:var(--space-2);z-index:3;min-height:44px;padding:0 var(--space-4);position:absolute;left:50%;transform:translate(-50%)}.app .first-piece{z-index:3;min-height:48px;padding:0 var(--space-5);border-color:var(--accent);background:var(--accent);color:#fff;font-size:1rem;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inspector-actions{justify-content:flex-end;display:flex}.inspector-delete{color:var(--error)}@media (pointer:coarse){.inspector-delete{min-height:44px}}.inspector-toy{gap:var(--space-2);flex-direction:column;font-size:.8125rem;display:flex}.dimensions-table{border-collapse:collapse;font-variant-numeric:tabular-nums}.dimensions-table th,.dimensions-table td{padding:2px var(--space-3) 2px 0;text-align:left;vertical-align:baseline;font-weight:400}.dimensions-table th:last-child,.dimensions-table td:last-child{padding-right:0}.dimensions-size,.dimensions-simple>span{white-space:nowrap}.dimensions-table thead th{color:var(--text-muted);font-size:.75rem}.dimensions-simple{color:var(--text-muted);display:block}.dimensions-toy th,.dimensions-toy td{border-bottom:1px solid var(--border)}.inspector-toy .size-note{margin:0}.pick-detail{gap:var(--space-2);flex-direction:column;display:flex}.pick-detail-line{font-family:var(--font-code);overflow-wrap:anywhere;margin:0;font-size:.8125rem}.pick-detail-facts{color:var(--text-muted);margin:0;font-size:.8125rem}.pick-detail-status{font-variant-numeric:tabular-nums;font-size:.8125rem}.pick-detail-ok{color:var(--success)}.pick-detail-warning{color:var(--warning)}.pick-detail-error{color:var(--error)}.pick-detail-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.toy-yarn{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);flex-direction:column;font-size:.8125rem;display:flex}.toy-yarn-title{margin:0;font-size:.8125rem;font-weight:600}.toy-yarn-table{border-collapse:collapse;font-variant-numeric:tabular-nums}.toy-yarn-table th{align-items:center;gap:var(--space-2);text-align:left;padding:2px 0;font-weight:400;display:flex}.toy-yarn-table td{padding:2px 0 2px var(--space-3);text-align:right;white-space:nowrap}.toy-yarn-total th,.toy-yarn-total td{border-top:1px solid var(--border);font-weight:600}.toy-yarn-safety{padding-left:var(--space-4);margin:0}.pose-block{align-self:stretch;gap:var(--space-3);flex-direction:column;display:flex}.pose-boxes{gap:var(--space-1)}.pose-field{gap:var(--space-1);flex-direction:column;display:flex}.pose-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.pose-turn{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.toy-orient .pose-why{display:none}@media (hover:none){.toy-orient .pose-why{display:block}}.toy-orient .pose-main{align-self:stretch}.pose-ways{gap:var(--space-1);grid-template-columns:repeat(6,minmax(0,1fr));width:100%;display:grid}.app .pose-ways button{min-width:0;height:auto;padding:var(--space-1) 2px;white-space:normal;text-align:center;flex-direction:column;align-items:center;gap:1px;font-size:.75rem;line-height:1.2;display:flex}.app .pose-ways button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.app .pose-ways button:disabled{opacity:.5;border-style:dashed}.pose-glyph{font-size:1rem;line-height:1}.pose-marks{align-items:center;gap:var(--space-2);min-height:24px;font-size:.8125rem;display:flex}@media (pointer:coarse){.pose-marks{min-height:44px}}.toy-orient,.piece-front{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.toy-orient{gap:var(--space-4)}.toy-orient>*{max-width:25rem}.toy-orient .size-note,.piece-front .size-note{margin:0}.line-form-fields{gap:var(--space-1) var(--space-2);margin-top:var(--space-2);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.line-form-field{font-size:.8125rem;display:contents}.line-form-field label{color:var(--text-muted)}.line-form-field select,.line-form-field input:not([type=checkbox]){min-width:0;min-height:28px;font:inherit}.line-form-toggle input{justify-self:end}.line-form-more{margin-top:var(--space-2)}.line-form-more>summary{cursor:pointer;align-items:center;gap:var(--space-1);min-height:28px;color:var(--text-muted);font-size:.8125rem;list-style:none;display:flex}.line-form-more>summary::-webkit-details-marker{display:none}.line-form-more>summary:before{content:"▸";text-align:center;width:1em;display:inline-block}.line-form-more[open]>summary:before{content:"▾"}.app .cm-kind-form{cursor:pointer}.app .cm-kind-form:hover{color:var(--accent-hover)}.turn-control{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:.8125rem;display:flex}.turn-ring{border:2px solid var(--border-strong);border-radius:50%;flex:none;width:64px;height:64px;position:relative}.turn-ring-seam{background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.turn-ring .turn-mark{border:2px solid var(--accent);background:var(--surface);border-radius:50%;width:24px;min-width:0;height:24px;min-height:0;padding:0;position:absolute;transform:translate(-50%,-50%)}.turn-ring .turn-mark[aria-pressed=true]{background:var(--accent)}@media (pointer:coarse){.turn-ring{width:88px;height:88px}.turn-ring .turn-mark{width:32px;height:32px}}.app .cm-clause{border-radius:var(--radius);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--border);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 2px}.app .cm-clause-tip{max-width:22rem;padding:var(--space-1) var(--space-2);font-family:var(--font-ui);color:var(--text);font-size:.8125rem}.workspace-tablet{position:relative;overflow:clip}.workspace-tablet>.pattern-editor{z-index:5;visibility:hidden;width:min(30rem,85vw);min-width:0;max-width:none;transition:transform .2s,visibility .2s;position:absolute;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:4px 0 16px #0000002e}.workspace-tablet.workspace-pattern-open>.pattern-editor{visibility:visible;transform:none}@media (width>=700px) and (height>=500px){.workspace-tablet .preview-3d-wide .tool-bar{transition:left .2s}.workspace-tablet.workspace-pattern-open .preview-3d-wide .tool-bar{left:calc(min(30rem, 85vw) + var(--space-2))}}.app .toolbar-pattern[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}@media (orientation:portrait){.workspace-tablet{flex-direction:column}.workspace-tablet>.right-panel{border-top:1px solid var(--border);border-left:none;width:auto;max-height:45%}.workspace-tablet>.right-panel.right-panel-folded{width:auto;height:44px}.app .workspace-tablet .right-panel-folded .panel-fold{flex-direction:row;justify-content:center;padding:0}.workspace-tablet .panel-fold-label{writing-mode:horizontal-tb}.workspace-tablet .panel-fold>span[aria-hidden=true]{transform:rotate(90deg)}}@media (width<=699.98px){.workspace-tablet>.pattern-editor{width:100%;box-shadow:none}.toolbar:has(.toolbar-pattern){gap:var(--space-1)}:is(.toolbar-pattern .toolbar-pattern-words,.toolbar:has(.toolbar-pattern) .save-status){clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.toolbar:has(.toolbar-pattern) .toolbar-name-form{min-width:0}.app .toolbar:has(.toolbar-pattern) input.toolbar-name{min-width:0}}@media (width<=699.98px),(height<=499.98px){.workspace-tablet .preview-3d-wide .tool-bar{gap:var(--space-2);padding:var(--space-1) var(--space-2);border-top:1px solid var(--border);background:var(--surface);flex-flow:row;order:3;position:static;overflow-x:auto}.workspace-tablet .preview-3d-wide .tool-bar>.preview-mode{box-shadow:none;flex-flow:row;flex:none}.app .workspace-tablet .preview-3d-wide .tool-bar .preview-mode button{justify-content:center;min-height:44px}.app .workspace-tablet .preview-3d-wide .tool-bar .preview-mode button+button{margin-top:0;margin-left:-1px}.app .workspace-tablet .preview-3d-wide .tool-bar .preview-mode button:first-of-type{border-radius:var(--radius) 0 0 var(--radius)}.app .workspace-tablet .preview-3d-wide .tool-bar .preview-mode button:last-of-type{border-radius:0 var(--radius) var(--radius) 0}.workspace-tablet .tool-key{display:none}.workspace-tablet .side-panel{padding:0}.workspace-tablet .preview-3d-wide .preview-3d-stage{box-shadow:none;border-radius:0}.workspace-tablet .preview-3d-wide .tool-options{--tool-strip-bg:var(--surface-subtle);background:var(--surface-subtle);border-right:none;border-radius:0;order:2;height:auto;max-height:9rem;position:static}.workspace-tablet .preview-3d-wide .tool-options>*{flex-shrink:0}.workspace-tablet .preview-3d-wide .tool-options .paint-options,.workspace-tablet .preview-3d-wide .tool-options .preview-mode{flex-wrap:nowrap;overflow-x:auto}.app .workspace-tablet .tool-options button,.app .workspace-tablet .view-toggles button,.app .workspace-tablet .view-cube-actions button{flex:none;min-height:44px}.workspace-tablet .view-cube{width:100px;height:100px}.app .workspace-tablet .view-cube-arrow{width:22px;height:44px}.workspace-tablet .view-cube-arrow-left,.workspace-tablet .view-cube-arrow-right{top:calc(50% - 22px)}.app .workspace-tablet .view-cube-arrow-up,.app .workspace-tablet .view-cube-arrow-down{width:44px;height:22px;left:calc(50% - 22px)}}@media (height<=499.98px){.workspace-tablet .preview-3d-wide .tool-options{max-height:3.75rem}}@media (width<=699.98px) and (orientation:portrait){.workspace-tablet>.right-panel{max-height:33%}.workspace-tablet .preview-3d-wide .tool-options{max-height:6.5rem}}@media (prefers-reduced-motion:reduce){.workspace-tablet>.pattern-editor{transition:none}}.workspace-phone{flex-direction:column}@media (orientation:portrait){.workspace-phone>.phone-model{border-top:none;border-bottom:1px solid var(--border);order:-1}.phone-model-actions{order:-1}}.workspace-phone>.side-panel{flex:auto;min-height:0}.phone-model{gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);border-top:1px solid var(--border);background:var(--surface);flex-direction:column;flex:none;display:flex}.phone-model-note{color:var(--text-muted);margin:0;font-size:.875rem}.phone-model-about{align-items:center;gap:var(--space-3);display:flex}.phone-model-about .phone-model-note{flex:1 1 0}.phone-model-units .gauge-field{align-items:center;gap:var(--space-2);flex-direction:row;font-size:.875rem;display:flex}.app .phone-model-units .gauge-field select{width:auto;min-height:44px}.phone-model-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.app .phone-model-actions button{flex:1 0 auto;justify-content:center;min-height:44px}@media (orientation:landscape){.workspace-phone{flex-direction:row}.phone-model{border-top:none;border-left:1px solid var(--border);justify-content:safe center;width:19rem;overflow-y:auto}.phone-model-about{flex-direction:column;align-items:stretch}.phone-model-actions{grid-template-columns:1fr 1fr;display:grid}.app .phone-model-actions button{flex:none;min-width:0}}.phone-model .home-screen-hint{padding:var(--space-2);box-shadow:none;margin:0;position:static}.phone-model .home-screen-hint p{font-size:.875rem}.app .phone-model .home-screen-hint .icon-button{min-width:44px;min-height:44px}.crash-screen{padding:var(--space-4);background:var(--bg);justify-content:center;align-items:center}.crash-card{box-sizing:border-box;gap:var(--space-3);width:min(32rem,100%);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);display:grid}.crash-card h1{margin:0;font-size:1.25rem}.crash-card p{margin:0}.crash-buttons{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.app .crash-buttons button{min-height:44px}.crash-feedback{min-height:44px;color:var(--accent);align-items:center;font-weight:500;display:inline-flex}.crash-error{color:var(--text-muted);font-family:var(--font-code);overflow-wrap:anywhere;font-size:.8125rem}@media (pointer:coarse){.app button:not(.view-cube-face,.gallery-card-name),.app select,.app input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file]),.app summary{min-height:44px}.app .icon-button,.app button.gallery-link,.app .panel-fold,.app .outline-toggle,.app .toolbar-home{min-width:44px}.app .outline-piece-name,.app .outline-whole-toy,.app .outline-toggle{height:44px}.gallery-about{margin:-12px 0;padding:12px 0}.alpha-badge{justify-content:center;min-width:44px;min-height:44px;margin:-8px 0}.app .gauge-about .link-button{margin-block:-16px;padding-block:16px}.app .gallery-chips button{min-width:44px}.view-cube,.workspace-tablet .view-cube{width:140px;height:140px}.app .view-cube-arrow,.app .workspace-tablet .view-cube-arrow,.app .workspace-tablet .view-cube-arrow-up,.app .workspace-tablet .view-cube-arrow-down{width:44px;height:44px}.view-cube-arrow-left,.view-cube-arrow-right,.workspace-tablet .view-cube-arrow-left,.workspace-tablet .view-cube-arrow-right{top:calc(50% - 22px)}.view-cube-arrow-up,.view-cube-arrow-down,.app .workspace-tablet .view-cube-arrow-up,.app .workspace-tablet .view-cube-arrow-down{left:calc(50% - 22px)}.view-cube-arrow-left{left:-6px}.view-cube-arrow-right{right:-6px}.view-cube-arrow-up{top:-6px}.view-cube-arrow-down{bottom:-6px}}
