:root{color:#18211f;font-synthesis:none;--ink:#173c3a;--ink-soft:#2b5c59;--paper:#f8f3e9;--panel:#f1ede5;--line:#cdc5b8;--accent:#c85d3b;background:#d8d2c6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{min-width:768px;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #df8c4c}[hidden]{display:none!important}.app-header{color:#f9f1df;background:var(--ink);border-bottom:1px solid #0c2c2a;justify-content:space-between;align-items:center;gap:14px;height:52px;padding:0 18px;display:flex}.wordmark{letter-spacing:.02em;flex:none;font-family:Georgia,serif;font-size:24px;font-weight:700}.wordmark span{letter-spacing:.08em;opacity:.62;vertical-align:middle;margin-left:5px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:650}.header-tools{justify-content:flex-end;align-items:center;gap:14px;min-width:0;display:flex}.header-status{opacity:.76;white-space:nowrap;text-overflow:ellipsis;flex:180px;min-width:0;max-width:32vw;font-size:13px;overflow:hidden}.history-actions{flex:none;grid-template-columns:repeat(3,auto);display:grid}.history-actions button{color:#f9f1df;cursor:pointer;background:0 0;border:1px solid #a9bbb7;border-right:0;min-width:58px;height:40px;padding:0 9px;font-size:11px;font-weight:750}.history-actions button:first-child{border-radius:4px 0 0 4px}.history-actions button:last-child{border-right:1px solid #a9bbb7;border-radius:0 4px 4px 0}.history-actions button:disabled{color:#9aaba7;cursor:default;background:#00000024}.layout-choice{align-items:center;gap:6px;display:flex}.layout-choice>span{color:#e8dcc2;text-align:right;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:750;line-height:1.05}.layout-buttons{grid-template-columns:repeat(3,1fr);display:grid}.layout-buttons button{color:#f9f1df;cursor:pointer;background:0 0;border:1px solid #a9bbb7;border-right:0;justify-content:center;align-items:center;gap:4px;min-width:57px;height:40px;padding:0 7px;font-size:11px;font-weight:750;display:flex}.layout-buttons button:first-child{border-radius:4px 0 0 4px}.layout-buttons button:last-child{border-right:1px solid #a9bbb7;border-radius:0 4px 4px 0}.layout-buttons button.selected{color:var(--ink);background:#f9f1df}.layout-buttons button span{font-size:14px}.workbench{--work-size:50%;min-width:0;height:calc(100vh - 52px);min-height:0;display:grid;overflow:hidden}.workbench[data-layout=left]{grid-template-columns:var(--work-size) 10px minmax(0, 1fr);grid-template-areas:"canvas splitter panel"}.workbench[data-layout=right]{grid-template-columns:minmax(0, 1fr) 10px var(--work-size);grid-template-areas:"panel splitter canvas"}.workbench[data-layout=top]{grid-template-rows:var(--work-size) 10px minmax(0, 1fr);grid-template-areas:"canvas""splitter""panel"}.canvas-pane{background:linear-gradient(115deg,#ffffff38,#0000 38%),#d8d2c6;grid-area:canvas;place-items:center;min-width:0;min-height:0;padding:22px;display:grid;container-type:size}.canvas-stage{aspect-ratio:4/3;width:min(100%,850px,133.333cqh);height:auto;position:relative}.paper-canvas{background-color:#fff;background-image:linear-gradient(#173c3a0e 1px,#0000 1px),linear-gradient(90deg,#173c3a0e 1px,#0000 1px);background-size:50px 50px;border:1px solid #bdb5a8;border-radius:4px;width:100%;height:100%;min-height:0;position:relative;overflow:hidden;box-shadow:0 18px 45px #261f1624,0 2px 7px #261f1614}.paper-canvas.photo-dragging{border:3px dashed var(--accent);background-color:#fff8ec}.paper-canvas:before,.paper-canvas:after{content:"";pointer-events:none;background:#173c3a26;position:absolute}.paper-canvas:before{width:1px;height:calc(100% - 36px)}.paper-canvas:after{width:calc(100% - 36px);height:1px}.main-design{z-index:1;width:min(86%,760px);height:min(76%,500px);position:relative;overflow:visible}.arrangement-item{touch-action:none;cursor:grab;border:1px dashed #0000;min-width:3px;min-height:3px;position:absolute}.arrangement-item:active{cursor:grabbing}.arrangement-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px #ffffffd1}.resize-handle{z-index:8;background:var(--accent);touch-action:none;border:2px solid #fff;width:14px;height:14px;position:absolute;box-shadow:0 0 0 1px #803d29}.handle-top-left{cursor:nwse-resize;top:-8px;left:-8px}.handle-top-right{cursor:nesw-resize;top:-8px;right:-8px}.handle-bottom-left{cursor:nesw-resize;bottom:-8px;left:-8px}.handle-bottom-right{cursor:nwse-resize;bottom:-8px;right:-8px}.arrangement-item .main-design{pointer-events:none;width:100%;height:100%;max-height:none;display:block}.arrangement-item.item-photo{overflow:visible}.arrangement-item .canvas-photo{object-fit:fill;pointer-events:none;width:100%;height:100%}.arrangement-item .handwriting-group{width:100%;max-width:none;height:100%;max-height:none}.arrangement-item.item-flourishes{cursor:default;min-width:1px;min-height:1px}.flourish-group{width:100%;height:100%;position:relative}.flourish-piece{touch-action:none;cursor:grab;background:0 0;border:1px dashed #0000;margin:0;padding:0;position:absolute}.flourish-piece:active{cursor:grabbing}.flourish-piece.selected{border-color:var(--accent);box-shadow:0 0 0 1px #ffffffe6}.flourish-piece svg{pointer-events:none;width:100%;height:100%;transform:scale(var(--flip-x), var(--flip-y));transform-origin:50%;display:block;overflow:visible}.canvas-content{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:18px;width:100%;height:calc(100% - 36px);display:flex;position:relative}.canvas-lettering{place-items:center;min-height:0;display:grid}.canvas-lettering .main-design{width:100%;height:auto;max-height:310px}.canvas-photo-frame{flex:none;max-width:86%;max-height:45%;position:relative;overflow:hidden}.canvas-photo{object-fit:contain;width:100%;height:100%;display:block}.straighten-grid{pointer-events:none;background-image:linear-gradient(#173c3a5c 1px,#0000 1px),linear-gradient(90deg,#173c3a5c 1px,#0000 1px);background-size:10% 10%;border:1px solid #173c3a8c;position:absolute;inset:0}.mirror-center-line{z-index:4;pointer-events:none;background:var(--accent);width:2px;position:absolute;top:-5px;bottom:-5px;left:50%;box-shadow:0 0 0 1px #ffffffbf}.handwriting-group{flex:none;max-width:86%;max-height:48%;position:relative}.handwriting-piece{touch-action:none;cursor:grab;background:0 0;border:1px dashed #0000;min-width:2px;min-height:2px;margin:0;padding:0;position:absolute}.handwriting-piece:active{cursor:grabbing}.handwriting-piece.selected{border-color:#b44c2f}.handwriting-piece.split-target,.handwriting-piece.split-target:active{cursor:crosshair}.handwriting-piece.tool-fill,.handwriting-piece.tool-fill:active{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M8 3h8l5 8-8 5-7-10z' fill='%23f8f3e9' stroke='%23173c3a' stroke-width='2'/%3E%3Cpath d='M15 4c0-2 4-2 4 1' fill='none' stroke='%23173c3a' stroke-width='2'/%3E%3Cpath d='M21 16c3 3 3 5 1 7-2-2-2-4-1-7z' fill='%23c85d3b'/%3E%3C/svg%3E") 7 24,crosshair}.handwriting-piece.tool-eraser,.handwriting-piece.tool-eraser:active{cursor:crosshair}.handwriting-piece img{pointer-events:none;width:100%;height:100%;display:block}.split-line-overlay{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.split-line-overlay line{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.eraser-stroke-overlay{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.eraser-stroke-overlay polyline{fill:none;stroke:#ffffffdb;stroke-linecap:round;stroke-linejoin:round}.loading-mark{color:#6f746f;font-size:14px}.size-badge{color:#f8f3e9;background:var(--ink);font-variant-numeric:tabular-nums;border-radius:3px;padding:6px 9px;font-size:12px;position:absolute;bottom:12px;right:12px}.workbench-splitter{z-index:3;touch-action:none;cursor:col-resize;background:#aea596;grid-area:splitter;place-items:center;min-width:10px;min-height:10px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #483e3124}.workbench[data-layout=top] .workbench-splitter{cursor:row-resize}.workbench-splitter span{opacity:.72;background:repeating-linear-gradient(#665f55 0 3px,#0000 3px 6px);border-radius:3px;width:4px;height:38px}.workbench[data-layout=top] .workbench-splitter span{background:repeating-linear-gradient(90deg,#665f55 0 3px,#0000 3px 6px);width:38px;height:4px}.workbench-splitter:hover,.workbench-splitter.dragging,.workbench-splitter:focus-visible{background:#c85d3b}.control-panel{background:var(--panel);border-left:1px solid #bdb5a8;grid-area:panel;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;min-height:0;padding:10px 12px;display:grid;overflow:hidden;box-shadow:-5px 0 22px #2c241912;container:tools/inline-size}.workbench[data-layout=right] .control-panel{border-left:0;border-right:1px solid #bdb5a8;box-shadow:5px 0 22px #2c241912}.workbench[data-layout=top] .control-panel{border-top:1px solid #bdb5a8;border-left:0;box-shadow:0 -5px 22px #2c241912}.selection-strip{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex;overflow:visible}.selection-chip{min-width:max-content;height:34px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #9d9487;border-radius:17px;padding:0 12px;font-size:12px;font-weight:750}.selection-chip.selected{border-color:var(--ink);color:#fff;background:var(--ink)}.panel-body{scrollbar-color:#aca396 transparent;align-content:start;gap:5px;min-height:0;padding-right:3px;display:grid;overflow:hidden auto}.panel-body[data-selection=lettering]{grid-template-rows:auto minmax(154px,1fr) auto}.control-section{min-width:0}.section-heading,.font-heading-row{letter-spacing:.01em;justify-content:space-between;align-items:center;gap:8px;min-height:23px;font-size:12px;font-weight:750;display:flex}.section-heading output{color:#626864;font-variant-numeric:tabular-nums;font-size:11px;font-weight:650}.text-section{grid-template-columns:44px 1fr;align-items:start;gap:8px;display:grid}.text-section .section-heading{padding-top:10px}.line-inputs{grid-template-columns:minmax(0,1fr) auto auto;gap:4px 8px;display:grid}.line-inputs input{min-width:0}.line-inputs .second-line{grid-column:1/-1}.roman-toggle{cursor:pointer;align-items:center;gap:5px;min-height:44px;font-size:11px;font-weight:750;display:flex}.roman-toggle input{width:20px;height:20px;accent-color:var(--ink);margin:0}input[type=text],input[type=search],input[type=number]{color:#17201e;background:#fff;border:1px solid #bdb5a8;border-radius:4px;height:44px;padding:0 10px;box-shadow:inset 0 1px 1px #00000006}.link-button,.reset-link{min-height:44px;color:var(--ink-soft);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0 4px;text-decoration:underline}.reset-link{float:right;height:20px;min-height:20px;font-size:11px}.font-section{grid-template-rows:40px auto auto auto minmax(68px,1fr);min-height:154px;display:grid;overflow:visible}.font-heading-row{justify-content:flex-start}.font-heading-row label{width:38px}.font-heading-row input{flex:1;height:38px}.chip-row{scrollbar-width:thin;flex:none;gap:5px;min-height:46px;padding:4px 0 6px;display:flex;overflow-x:auto}.chip{cursor:pointer;background:#fff;border:1px solid #b8b0a4;border-radius:18px;min-width:max-content;height:36px;padding:0 12px}.chip.selected{border-color:var(--ink);color:#fff;background:var(--ink)}.font-list{scrollbar-color:#aca396 transparent;grid-row:5;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:64px;gap:2px 6px;min-height:68px;max-height:134px;padding:2px 4px 2px 0;display:grid;overflow:hidden auto}.font-tile{text-align:left;cursor:pointer;background:#fff;border:1px solid #c9c1b5;border-radius:4px;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:6px;min-width:0;height:64px;padding:5px 8px;display:grid;position:relative;overflow:hidden}.font-tile:hover{border-color:#708e89}.font-tile.selected{border:2px solid var(--accent);background:#fffaf3;padding:4px 7px}.font-name{padding-right:16px;font-size:11px;font-weight:700;line-height:1.15}.font-star{z-index:2;color:#8c857a;cursor:pointer;background:0 0;border:0;width:28px;height:28px;padding:0;font-size:18px;line-height:1;position:absolute;top:2px;right:2px}.font-star.selected{color:#d18b21;text-shadow:0 0 #68430e}.font-sample{place-items:center;min-width:0;height:44px;display:grid;overflow:hidden}.font-preview-svg{width:100%;height:40px}.sample-loading{color:#777;font-size:12px}.font-failed .sample-loading{text-decoration:line-through}.empty-fonts{color:#6b706d;grid-column:1/-1;place-items:center;min-height:76px;font-size:13px;display:grid}.font-drop{color:#4d5551;background:#faf7f0;border:2px dashed #9b9284;border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;margin:2px 0 5px;padding:6px 10px;font-size:12px;display:flex}.font-drop.dragging{border-color:var(--accent);background:#fff3e7}.font-drop strong{color:#1c302d}.file-button{min-height:38px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #8f877b;border-radius:3px;align-items:center;margin-left:auto;padding:0 10px;font-weight:700;display:inline-flex}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.plain-error{color:#9b2b24;min-height:0;margin:0;font-size:12px}.plain-error:not(:empty){min-height:24px;padding:3px 0}.adjustment-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:6px 10px;min-height:0;display:grid}.adjustment-grid .control-section{border-top:1px solid #d5cec3;padding-top:4px;position:relative}.span-two{grid-column:span 2}.span-three{grid-column:1/-1}.paired-fields{grid-template-columns:1fr 1fr;gap:7px;display:grid}.paired-fields label{grid-template-columns:auto 1fr;align-items:center;gap:6px;font-size:11px;font-weight:650;display:grid}.unit-input{background:#fff;border:1px solid #bdb5a8;border-radius:4px;grid-template-columns:1fr auto;align-items:center;min-width:0;display:grid}.unit-input input{border:0;width:100%;min-width:0;height:40px;padding-right:3px}.unit-input span{color:#6c726f;padding-right:8px;font-size:11px}.range{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}.range::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--range-value), #c7c0b5 var(--range-value));border-radius:3px;height:5px}.range::-webkit-slider-thumb{appearance:none;background:var(--ink);border:2px solid #fff;border-radius:50%;width:22px;height:22px;margin-top:-8.5px;box-shadow:0 1px 4px #0000004d}.range::-moz-range-track{background:#c7c0b5;border-radius:3px;height:5px}.range::-moz-range-progress{background:var(--accent);height:5px}.range::-moz-range-thumb{background:var(--ink);border:2px solid #fff;border-radius:50%;width:20px;height:20px}.segmented{grid-template-columns:repeat(3,1fr);display:grid}.fill-section{gap:5px;display:grid}.fill-segmented{grid-template-columns:repeat(6,1fr)}.segmented button,.segmented .fill-choice{text-align:center;cursor:pointer;background:#fff;border:1px solid #aaa195;border-right:0;place-items:center;min-height:38px;font-size:11px;display:grid}.segmented button:first-child{border-radius:4px 0 0 4px}.segmented button:last-child,.segmented .fill-choice:last-child{border-right:1px solid #aaa195;border-radius:0 4px 4px 0}.segmented button.selected,.segmented .fill-choice.selected{color:#fff;background:var(--ink)}.fill-choice input,[data-depth-face] input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}:is(.fill-choice:has(input:focus-visible),[data-depth-face]:has(input:focus-visible)){outline-offset:2px;outline:3px solid #df8c4c}.fill-options{border-left:3px solid #d4ccc0;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;padding:3px 0 2px 8px;display:grid}.fill-options[data-outline-control]{grid-template-columns:1fr}.effect-choice-row{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:750;display:flex}.small-segmented{grid-template-columns:1fr 1fr;display:grid}.small-segmented button{cursor:pointer;background:#fff;border:1px solid #aaa195;min-height:32px;padding:0 9px;font-size:10px}.small-segmented button:first-child{border-radius:4px 0 0 4px}.small-segmented button:last-child{border-left:0;border-radius:0 4px 4px 0}.small-segmented button.selected{color:#fff;background:var(--ink)}.depth-face-row .small-segmented{grid-template-columns:repeat(3,1fr)}.depth-face-row [data-depth-face]{cursor:pointer;background:#fff;border:1px solid #aaa195;border-right:0;place-items:center;min-height:32px;padding:0 7px;font-size:10px;display:grid}.depth-face-row [data-depth-face]:first-child{border-radius:4px 0 0 4px}.depth-face-row [data-depth-face]:last-child{border-right:1px solid #aaa195;border-radius:0 4px 4px 0}.depth-face-row [data-depth-face].selected{color:#fff;background:var(--ink)}.effect-slider{min-width:0}.effect-slider .section-heading{min-height:19px;font-size:11px}.depth-controls{grid-template-columns:minmax(0,1fr) auto;align-items:center}.depth-controls .depth-face-row{grid-column:1/-1}.chisel-controls{grid-template-columns:1fr}.effect-toggle,.soft-shade-toggle{cursor:pointer;align-items:center;gap:7px;min-height:32px;font-size:11px;font-weight:750;display:flex}.effect-toggle input,.soft-shade-toggle input{width:21px;height:21px;accent-color:var(--ink);margin:0}.soft-shade-toggle{width:fit-content}.direction-control{border-left:3px solid #d4ccc0;align-items:center;gap:12px;padding:3px 0 3px 8px;font-size:11px;font-weight:750;display:flex}.direction-dial{grid-template-rows:repeat(3,30px);grid-template-columns:repeat(3,30px);width:90px;display:grid}.direction-dial button{cursor:pointer;background:#fff;border:1px solid #aaa195;width:30px;height:30px;padding:0;font-size:17px;line-height:1}.direction-dial button.selected{z-index:1;border-color:var(--ink);color:#fff;background:var(--ink);position:relative}.direction-dial span{color:#8b8276;place-items:center;font-size:8px;display:grid}.shadow-controls{padding-top:1px}.measured-field{align-items:center;gap:6px;font-size:12px;display:flex}.measured-field input{width:80px;height:40px}.correction-label{color:#e8dcc2;font-size:12px}.swatch-row{gap:7px;display:flex}.swatch,.native-color{background:var(--swatch);cursor:pointer;border:2px solid #fff;border-radius:50%;flex:0 0 38px;width:38px;height:38px;position:relative;box-shadow:0 0 0 1px #aaa195}.swatch.selected{box-shadow:0 0 0 3px var(--accent)}.native-color{background:conic-gradient(#d53c30,#dcbf32,#43a05c,#3e87cf,#7d47b6,#d53c30);place-items:center;display:grid;overflow:hidden}.native-color input{opacity:0;cursor:pointer;width:28px;height:28px}.name-actions{gap:3px;display:grid}.name-action-row{grid-template-columns:1fr 120px;gap:7px;display:grid}.name-actions small{color:#626864;min-height:14px;font-size:11px}.filigree-editor{background:#faf7f0;border-radius:4px;grid-template-columns:1fr 1fr;align-items:end;gap:4px 10px;display:grid;border:1px solid #bdb5a8!important;padding:6px 8px!important}.filigree-title-row{grid-column:1/-1;justify-content:space-between;align-items:center;min-height:22px;display:flex}.filigree-title-row strong{font-family:Georgia,serif;font-size:15px}.filigree-title-row .reset-link{height:22px!important;min-height:22px!important;position:static!important}.filigree-choice-row{grid-template-columns:auto 1fr;align-items:center;gap:7px;min-width:0;font-size:11px;font-weight:750;display:grid}.filigree-choice-row .small-segmented{min-width:0}.filigree-choice-row [data-filigree-where]{padding-inline:5px}.filigree-choice-row:has([data-filigree-where]) .small-segmented{grid-template-columns:repeat(3,1fr)}.radio-segmented label{cursor:pointer;background:#fff;border:1px solid #aaa195;place-items:center;min-height:32px;font-size:10px;display:grid;position:relative}.radio-segmented label:first-child{border-radius:4px 0 0 4px}.radio-segmented label:last-child{border-left:0;border-radius:0 4px 4px 0}.radio-segmented input{opacity:0;width:1px;height:1px;position:absolute}.radio-segmented label:has(input:checked){color:#fff;background:var(--ink)}.filigree-shuffle{min-height:34px}.flourish-piece-controls,.filigree-group-actions{grid-column:1/-1}.flourish-piece-controls{border-top:1px solid #d5cec3;gap:5px;padding-top:5px;display:grid}.flourish-piece-controls>label{grid-template-columns:auto 120px;align-items:center;gap:8px;font-size:11px;font-weight:750;display:grid}.flourish-piece-controls .unit-input input{height:34px}.filigree-group-actions button,.flourish-piece-controls button{min-height:34px}.photo-control{grid-template-columns:1fr 1fr;align-items:end;gap:7px 10px;padding-bottom:2px;display:grid}.item-controls{gap:7px;padding-bottom:3px;display:grid}.item-width-control{grid-template-columns:auto 132px;align-items:center;gap:8px;display:grid}.item-width-control label{font-size:12px;font-weight:750}.item-action-row{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px;display:grid}.item-action-row button{min-width:0;padding-inline:6px;font-size:11px}.item-controls>small{color:#626864;font-size:11px}.background-gone-controls{grid-template-columns:minmax(140px,auto) 1fr;align-items:center;gap:10px;display:grid}.background-gone-controls .flip-control{grid-column:auto}.background-strength{min-width:0}.photo-size-control{grid-template-columns:auto 132px;align-items:center;gap:3px 10px;display:grid}.photo-control label{font-size:12px;font-weight:750}.photo-control .unit-input input{height:38px}.photo-size-control small{color:#626864;grid-column:2;font-size:11px}.straighten-control{min-width:0;position:relative}.straighten-control .reset-link{position:absolute;bottom:-2px;right:0}.photo-control>.primary-button,.photo-control>.secondary-button,.photo-control>.mirror-controls,.photo-control>.background-gone-controls,.photo-control>.layer-actions{grid-column:1/-1}.photo-enhance-actions{grid-column:1/-1;grid-template-columns:1fr auto;gap:8px;display:grid}.photo-enhance-actions button{min-width:110px}.mirror-controls{padding-bottom:3px}.mirror-controls .section-heading small{color:#626864;font-size:11px;font-weight:600}.mirror-buttons,.layer-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ink-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding-bottom:3px;display:grid}.ink-slider{min-width:0}.range-ends{color:#626864;justify-content:space-between;gap:6px;margin-top:-2px;font-size:9px;line-height:1.15;display:flex}.range-ends span:last-child{text-align:right}.flip-control{grid-column:1/-1;align-items:center;gap:8px;min-height:34px;font-size:12px;font-weight:700;display:flex}.flip-control input{width:20px;height:20px;margin:0}.ink-actions{grid-column:1/-1;gap:8px;display:flex}.ink-actions button{flex:1}.ink-controls .plain-error{grid-column:1/-1}.handwriting-controls{grid-template-columns:1fr;gap:7px;padding-bottom:3px;display:grid}.handwriting-controls>div:first-child{grid-template-columns:auto 132px;align-items:center;gap:3px 10px;min-width:0;display:grid}.handwriting-controls label{font-size:12px;font-weight:750}.handwriting-controls small{color:#626864;grid-column:1/-1;font-size:11px;line-height:1.25}.handwriting-controls .plain-error{grid-column:1/-1}.handwriting-controls .soft-warning{color:#8b3328}.handwriting-controls .width-warning{color:#6f4d15}.piece-action-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.piece-action-row button{min-width:0;padding-inline:7px}.eraser-sizes{grid-template-columns:auto repeat(3,1fr);align-items:center;gap:5px;min-height:36px;display:grid}.eraser-sizes span{font-size:11px;font-weight:750}.eraser-sizes button{cursor:pointer;background:#fff;border:1px solid #aaa195;border-radius:3px;min-width:0;min-height:34px}.eraser-sizes button.selected{color:#fff;background:var(--ink)}button:disabled{cursor:default;opacity:.5}.action-grid{grid-template-columns:1fr 1fr;gap:7px;padding-top:2px;display:grid}.print-sheet-button{grid-column:1/-1}.quiet-actions{grid-column:1/-1;justify-content:center;gap:24px;min-height:22px;display:flex}.quiet-actions .quiet-button{min-height:22px;padding:0 4px;font-size:11px}.action-error{grid-column:1/-1}.action-error:empty{display:none}.primary-button,.secondary-button,.quiet-button{cursor:pointer;border-radius:4px;min-height:44px;padding:0 13px;font-weight:750}.primary-button{color:#fff;background:var(--ink);border:1px solid #0f302e}.primary-button:hover{background:#245451}.secondary-button{background:#fff;border:1px solid #8e8579}.secondary-button.selected{border-color:var(--accent);color:#fff;background:var(--accent)}.quiet-button{color:#4f5854;text-underline-offset:3px;background:0 0;border:1px solid #0000;text-decoration:underline}.phone-dialog{text-align:center;background:var(--paper);border:1px solid #8e8579;border-radius:6px;width:min(480px,100vw - 40px);padding:26px;box-shadow:0 24px 80px #0000004d}.phone-dialog::backdrop{background:#121d1b9e}.phone-dialog h2{margin:0 0 10px;font-family:Georgia,serif}.pairing-content{justify-items:center;min-height:120px;display:grid}.pairing-status{color:#535d59;align-self:center;margin:22px 0}.pairing-instruction{max-width:340px;margin:0 0 12px;font-size:16px;line-height:1.4}.pairing-qr{width:224px;height:224px;margin:0 auto 8px}.pairing-qr svg{width:100%;height:100%;display:block}.pairing-code{letter-spacing:.16em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:34px}.pairing-address{color:#626864;max-width:100%;margin:7px 0 18px;font-size:12px;line-height:1.35}.pairing-address span{overflow-wrap:anywhere}.pairing-error:not(:empty){margin:10px 0 18px}.shape-dialog{background:var(--paper);border:1px solid #8e8579;border-radius:6px;width:min(560px,100vw - 40px);padding:16px;box-shadow:0 24px 80px #0000004d}.shape-dialog::backdrop{background:#121d1b9e}.shape-dialog-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.shape-dialog h2{margin:0;font-family:Georgia,serif;font-size:20px}.shape-close{cursor:pointer;background:0 0;border:0;border-radius:50%;width:38px;height:38px;font-size:26px}.shape-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.shape-tile{min-width:0;min-height:110px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #bdb5a8;border-radius:4px;grid-template-rows:78px auto;place-items:center;gap:3px;padding:7px;font-size:11px;font-weight:750;display:grid}.shape-tile:hover{border-color:var(--accent);background:#fffaf3}.shape-tile svg{fill:currentColor;width:70px;height:70px;overflow:visible}.shape-tile-light{fill:#fff;fill-opacity:.7;stroke:currentColor;stroke-width:.8px;stroke-linejoin:round}.shape-tile-light.split-face{stroke:none}.shape-tile-outline{fill:none;stroke:#111;stroke-width:.9px;stroke-linejoin:round}.mockup-overlay{display:none}.mockup-overlay.open{z-index:19;color:#18211f;background:#202322;grid-template-rows:68px minmax(0,1fr);display:grid;position:fixed;inset:0}.mockup-toolbar{color:#fff;background:var(--ink);grid-template-columns:minmax(150px,1fr) auto minmax(250px,1fr);align-items:center;gap:14px;min-width:0;padding:10px 18px;display:grid;box-shadow:0 4px 16px #00000047}.mockup-toolbar h1{white-space:nowrap;margin:0;font-family:Georgia,serif;font-size:21px}.mockup-toolbar .quiet-button{color:#fff;justify-self:start}.mockup-toolbar-actions{justify-self:end;gap:8px;display:flex}.mockup-toolbar .primary-button{background:var(--accent);border-color:#f6ebd1}.mockup-main{grid-template-columns:minmax(0,1fr) 330px;min-height:0;display:grid}.mockup-stage{background:#202322;min-width:0;min-height:0;position:relative;overflow:hidden}.mockup-stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.mockup-gesture-layer{touch-action:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mockup-gesture-layer [data-scale-line]{stroke:#f8f3e9;stroke-width:3px;stroke-dasharray:8 6;filter:drop-shadow(0 1px 2px #000c);pointer-events:none}.mockup-gesture-layer [data-calibration-dot]{fill:var(--accent);stroke:#fff;stroke-width:4px;cursor:grab;filter:drop-shadow(0 2px 4px #0000008c)}.mockup-gesture-layer .rotate-stem{stroke:#fff;stroke-width:2px;pointer-events:none;filter:drop-shadow(0 1px 2px #000000b3)}.mockup-gesture-layer .rotate-handle{fill:var(--ink);stroke:#fff;stroke-width:3px;cursor:grab;filter:drop-shadow(0 2px 4px #000000b3)}.mockup-empty{color:#e9e5dd;text-align:center;pointer-events:none;place-items:center;padding:30px;font-family:Georgia,serif;font-size:clamp(20px,3vw,34px);display:grid;position:absolute;inset:0}.mockup-panel{background:var(--panel);border-left:1px solid #bdb5a8;flex-direction:column;gap:18px;min-height:0;padding:18px;display:flex;overflow-y:auto;box-shadow:-5px 0 22px #00000024}.mockup-step{gap:10px;display:grid}.mockup-step+.mockup-step{border-top:1px solid var(--line);padding-top:18px}.mockup-step strong{font-family:Georgia,serif;font-size:18px}.mockup-step p{margin:0;font-size:14px;line-height:1.4}.mockup-step label{grid-template-columns:auto minmax(75px,1fr) auto;align-items:center;gap:7px;font-size:13px;font-weight:700;display:grid}.mockup-step input[type=number]{width:100%;min-width:0}.mockup-step small{color:#626864;font-size:12px;line-height:1.4}.mockup-status{color:#626864;min-height:18px;margin:0;font-size:12px}.mockup-error:not(:empty){margin:0}.enhance-overlay{display:none}.enhance-overlay.open{z-index:24;color:#18211f;background:#202322;grid-template-rows:68px minmax(0,1fr);display:grid;position:fixed;inset:0}.enhance-toolbar{color:#fff;background:var(--ink);grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;gap:14px;min-width:0;padding:10px 18px;display:grid;box-shadow:0 4px 16px #00000047}.enhance-toolbar h1{white-space:nowrap;margin:0;font-family:Georgia,serif;font-size:21px}.enhance-toolbar .quiet-button{color:#fff;justify-self:start}.enhance-toolbar .primary-button{background:var(--accent);border-color:#f6ebd1;justify-self:end;min-width:110px}.enhance-main{grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid}.enhance-compare{background:#77736d;grid-template-columns:1fr 1fr;gap:1px;min-height:0;display:grid}.enhance-side{background:#202322;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;display:grid}.enhance-side>strong{z-index:1;color:#fff;background:#173c3ae0;padding:12px 18px;font-family:Georgia,serif;font-size:17px}.enhance-viewport{touch-action:none;cursor:grab;background:#202322;min-width:0;min-height:0;position:relative;overflow:hidden}.enhance-viewport:active{cursor:grabbing}.enhance-viewport canvas{object-fit:contain;transform-origin:50%;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.enhance-working{z-index:2;color:#fff;background:#173c3ae0;border-radius:3px;padding:7px 10px;font-size:12px;font-weight:750;position:absolute;top:14px;right:14px}.enhance-panel{background:var(--panel);border-top:1px solid #bdb5a8;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(180px,auto);align-items:center;gap:8px 18px;padding:14px 18px;display:grid;box-shadow:0 -5px 22px #00000029}.enhance-slider{grid-template-columns:1fr auto;align-items:center;gap:1px 8px;min-width:0;font-size:12px;font-weight:750;display:grid}.enhance-slider output{color:#626864;font-variant-numeric:tabular-nums;font-size:11px}.enhance-slider input{grid-column:1/-1}.enhance-hint{color:#626864;grid-column:1;margin:0;font-size:11px;line-height:1.3}.enhance-status{color:#626864;grid-column:2/4;min-height:16px;margin:0;font-size:12px}.enhance-panel>.plain-error{grid-column:2/5}.enhance-actions{grid-area:1/5/span 2;gap:8px;display:grid}.enhance-actions button{min-width:160px}.print-overlay{display:none}.print-overlay.open{z-index:30;background:#c9c6c0;display:block;position:fixed;inset:0;overflow:auto}.print-toolbar{z-index:3;color:#fff;background:var(--ink);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;min-height:68px;padding:10px 18px;display:flex;position:sticky;top:0;box-shadow:0 4px 16px #0003}.print-toolbar p{margin:0;font-weight:700}.print-toolbar .print-shaded-note{color:#f0d8b0;white-space:nowrap;font-size:11px;font-weight:650}.print-toolbar label{align-items:center;gap:5px;font-size:12px;display:flex}.print-toolbar input[type=number]{width:70px;height:40px}.print-color-toggle input{width:22px;height:22px}.print-toolbar .quiet-button{color:#fff}.print-toolbar .primary-button{background:var(--accent);border-color:#f6ebd1}.print-preview{justify-content:center;gap:24px;padding:28px;display:grid}.print-page{color:#000;background:#fff;grid-template-rows:1fr auto;width:7.7in;min-height:10.2in;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 30px #0000002e}.print-page-body{place-content:start;min-height:8.25in;display:grid;overflow:hidden}.print-stack{flex-direction:column;align-items:flex-start;gap:.22in;display:flex}.printed-design{flex:none;display:block;overflow:visible}.printed-photo{object-fit:contain;flex:none;display:block}.printed-handwriting{flex:none;position:relative}.printed-handwriting img{display:block;position:absolute}.printed-arrangement{flex:none;position:relative;overflow:hidden}.printed-arrangement-item{position:absolute;overflow:visible}.printed-arrangement-item .printed-design,.arrangement-photo,.arrangement-piece-layer,.printed-flourishes{width:100%;height:100%;display:block}.printed-flourishes{position:relative}.printed-flourish{display:block;position:absolute;overflow:visible}.arrangement-photo{object-fit:fill}.arrangement-piece-layer{position:relative}.monochrome-ink{filter:grayscale()brightness(0)}.tile-frame{width:fit-content;height:fit-content;position:relative}.alignment-marks{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.alignment-marks path{fill:none;stroke:#000;stroke-width:.4px;vector-effect:non-scaling-stroke}.print-page-label{z-index:2;background:#fff;border:1px solid #000;padding:4px 7px;font-size:10pt;position:absolute;top:0;right:0}.print-footer{border-top:1px solid #aaa;flex-direction:column;justify-content:end;min-height:1.35in;padding-top:.08in;display:flex}.calibration-note{margin-bottom:.06in;font-size:8pt}.calibration-tools{justify-content:space-between;align-items:flex-end;display:flex}.calibration-square,.print-ruler{flex:none}.test-page-title{margin:.5in;font-family:Georgia,serif;font-size:20pt;font-weight:700}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1100px){.canvas-pane{padding:14px}.font-list{grid-template-columns:1fr}.adjustment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-three{grid-column:1/-1}.swatch-row,.direction-control,.direction-dial{flex-wrap:wrap!important}.piece-action-row{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}}@media (width<=900px){.canvas-pane{padding:12px}.app-header{gap:8px;padding-inline:10px}.header-tools{gap:8px}.header-status{flex-basis:40px;max-width:70px}.history-actions button{min-width:50px;padding-inline:5px}.layout-choice>span{display:none}.layout-buttons button{min-width:48px;padding-inline:4px}.control-panel{padding-inline:10px}.fill-options,.depth-controls{grid-template-columns:1fr}.effect-choice-row{flex-direction:column;align-items:flex-start}.filigree-editor{grid-template-columns:1fr}.filigree-title-row,.flourish-piece-controls,.filigree-group-actions{grid-column:1}.ink-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.ink-actions,.ink-controls .plain-error{grid-column:1/-1}.mockup-toolbar{grid-template-columns:auto 1fr}.mockup-toolbar h1{display:none}.mockup-main{grid-template-columns:minmax(0,1fr) 300px}.enhance-panel{grid-template-columns:repeat(2,minmax(140px,1fr))}.enhance-hint,.enhance-status,.enhance-panel>.plain-error{grid-column:1/-1}.enhance-actions{grid-area:auto/1/auto/-1;grid-template-columns:1fr 1fr}}@media print{@page{size:letter;margin:.4in}body{background:#fff;min-width:0;overflow:visible}#app,#mockup-root,#enhance-root,.print-toolbar{display:none!important}#print-root,.print-overlay.open,.print-preview{background:#fff;padding:0;display:block;position:static;overflow:visible}.print-page{width:7.7in;height:10.2in;min-height:10.2in;box-shadow:none;break-after:page;page-break-after:always}.print-page:last-child{break-after:auto;page-break-after:auto}}[data-shape-controls] button,[data-item-controls] .secondary-button,[data-handwriting-controls] .secondary-button{min-height:38px}.panel-body:not([data-selection=lettering]) .swatch,.panel-body:not([data-selection=lettering]) .native-color{flex-basis:38px;width:38px;height:38px}.panel-body:not([data-selection=lettering]) .adjustment-grid{gap:4px 10px}.adjustment-grid .control-section .reset-link{float:none;height:20px;min-height:20px;position:absolute;top:2px;right:34px}.adjustment-grid .control-section{padding-bottom:0}.name-actions{display:none!important}.selection-chip.strip-add{border-style:dashed}.direction-dial{flex-wrap:wrap;gap:3px;display:flex!important}.direction-dial button{width:30px;height:30px;min-height:30px;padding:0;font-size:13px}.direction-dial{width:auto!important}@container tools (width<=520px){.reset-link{float:right;height:38px;min-height:38px;font-size:11px}.chip{cursor:pointer;background:#fff;border:1px solid #b8b0a4;border-radius:19px;min-width:max-content;height:38px;padding:0 12px}.font-star{z-index:2;color:#8c857a;cursor:pointer;background:0 0;border:0;width:38px;height:38px;padding:0;font-size:18px;line-height:1;position:absolute;top:0;right:0}.small-segmented button{cursor:pointer;background:#fff;border:1px solid #aaa195;min-height:38px;padding:0 9px;font-size:10px}.radio-segmented label,.depth-face-row [data-depth-face]{min-height:38px}.effect-toggle,.soft-shade-toggle{cursor:pointer;align-items:center;gap:7px;min-height:38px;font-size:11px;font-weight:750;display:flex}.filigree-title-row .reset-link{height:38px!important;min-height:38px!important;position:static!important}.filigree-shuffle,.filigree-group-actions button,.flourish-piece-controls button{min-height:38px}.flip-control{grid-column:1/-1;align-items:center;gap:8px;min-height:38px;font-size:12px;font-weight:700;display:flex}.eraser-sizes button{cursor:pointer;background:#fff;border:1px solid #aaa195;border-radius:3px;min-width:0;min-height:38px}.quiet-actions{grid-column:1/-1;justify-content:center;gap:24px;min-height:38px;display:flex}.quiet-actions .quiet-button{min-height:38px;padding:0 4px;font-size:11px}.adjustment-grid .control-section .reset-link{float:none;height:38px;min-height:38px;position:absolute;top:-7px;right:34px}.direction-dial button{width:38px;height:38px;min-height:38px;padding:0;font-size:13px}.selection-chip{min-width:max-content;height:38px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #9d9487;border-radius:19px;padding:0 12px;font-size:12px;font-weight:750}}
