@font-face{font-family:Futura;src:url(/fonts/futura/FUTURA55REGULAR.TTF) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Futura;src:url(/fonts/futura/FUTURA65MEDIUM.TTF) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Futura;src:url(/fonts/futura/FUTURA75BOLD.TTF) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:AveriaLibre;src:url(/fonts/Averia_Libre/AveriaLibre-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--color-black-grey: #1c1c1c;--color-dark-grey: #3f3f3f;--color-olive: #717045;--color-sage: #a4a97f;--color-mint: #d6e8bd;--color-light-sage: #edf2e9;--color-dark-sandstone: #9b5108;--color-orange: #f78f28;--color-light-orange: #f7bc5c;--color-error: #a3261b;--font-main: "Futura", "Century Gothic", sans-serif;--font-display: "AveriaLibre", "Futura", sans-serif;--panel-width: 370px}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font-main);font-size:14px;line-height:1.4;color:var(--color-black-grey);background:#fff;scrollbar-color:var(--color-sage) var(--color-mint)}[hidden]{display:none!important}button,select,input[type=text],input[type=number]{font-family:var(--font-main);font-size:13px;color:var(--color-black-grey)}button{padding:5px 12px;border:1px solid var(--color-sage);border-radius:999px;background:#fff;color:var(--color-olive);font-weight:500;cursor:pointer}button:hover:not(:disabled){background:var(--color-mint);border-color:var(--color-olive)}button:disabled{opacity:.45;cursor:default}select,input[type=text],input[type=number]{padding:4px 6px;border:1px solid var(--color-sage);border-radius:4px;background:#fff;min-width:0}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,.drop-zone:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}input[type=range],input[type=checkbox]{accent-color:var(--color-dark-sandstone)}input[type=color]{width:36px;height:28px;padding:0;border:1px solid var(--color-sage);border-radius:4px;background:#fff;cursor:pointer}#app{display:grid;grid-template-rows:auto 1fr auto}.app-header{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--color-mint)}.app-title{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700}.mode-badge{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;background:var(--color-mint);color:var(--color-olive)}body[data-mode=print] .mode-badge{background:var(--color-light-orange);color:var(--color-dark-sandstone)}.history-buttons{display:flex;gap:6px;margin-left:auto}.history-button{padding:3px 12px;font-size:12px}.history-button span{font-size:14px}.app-main{display:grid;grid-template-columns:var(--panel-width) 1fr;min-height:0}.status{padding:4px 16px;font-size:12px;color:var(--color-dark-grey);border-top:1px solid var(--color-mint);font-variant-numeric:tabular-nums}.fatal{padding:32px;color:var(--color-error)}.preview{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--color-light-sage)}.preview-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.preview-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.preview.has-image .preview-canvas{cursor:grab}.preview .preview-canvas.panning{cursor:grabbing}.preview-empty{position:absolute;inset:24px;display:grid;place-content:center;text-align:center;border:2px dashed var(--color-sage);border-radius:12px;color:var(--color-dark-grey);pointer-events:none}.preview-empty .hint{font-size:12px;color:var(--color-olive)}.preview.drag-over:after{content:"Drop to open";position:absolute;inset:12px;display:grid;place-items:center;border:3px dashed var(--color-orange);border-radius:12px;background:#f7bc5c40;font-weight:700;color:var(--color-dark-sandstone);pointer-events:none}.preview-toolbar{position:absolute;right:12px;bottom:12px;display:flex;gap:4px;padding:4px;border-radius:999px;background:#ffffffe6;box-shadow:0 1px 4px #00000026}.preview-toolbar button{min-width:32px;padding:4px 10px}.preview-toolbar .zoom-label{min-width:64px;font-variant-numeric:tabular-nums}.notice{position:absolute;top:12px;left:50%;transform:translate(-50%);max-width:min(560px,calc(100% - 24px));display:flex;align-items:flex-start;gap:12px;padding:10px 12px 10px 16px;border-radius:8px;background:#fff;box-shadow:0 2px 8px #0003;border-left:4px solid var(--color-sage)}.notice-error{border-left-color:var(--color-error)}.notice button{flex:none;padding:0 8px;border:none;font-size:18px;line-height:1}.notice button.notice-action{padding:4px 12px;border:1px solid var(--color-sage);font-size:13px}.panel{overflow-y:auto;border-right:1px solid var(--color-mint);background:#fff}.panel-section{border-bottom:1px solid var(--color-mint)}.panel-section>summary{padding:10px 16px;font-family:var(--font-display);font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:2px;color:var(--color-olive);cursor:pointer;user-select:none}.panel-section>summary:hover{background:var(--color-light-sage)}.panel-section-body{display:grid;gap:12px;padding:4px 16px 16px}.panel-placeholder{margin:0;font-size:13px;color:var(--color-sage);font-style:italic}.control{display:grid;gap:4px}.control-label{font-size:12px;font-weight:500;color:var(--color-dark-grey)}.control-body{display:flex;align-items:center;gap:8px}.control-body input[type=range]{flex:1;min-width:0}.control-body input[type=text]{flex:1}.control-number{width:72px}.control-hex{width:84px;flex:none!important;font-family:ui-monospace,monospace}.control-unit{font-size:12px;color:var(--color-olive)}.control-help{margin:0;font-size:12px;color:var(--color-olive)}.control-toggle{grid-template-columns:auto 1fr;align-items:center;column-gap:8px}.control-toggle .control-body{grid-row:1;grid-column:1}.control-toggle .control-label{grid-row:1;grid-column:2;cursor:pointer}.control-toggle .control-help{grid-column:1 / -1}.control-more>summary{cursor:pointer;font-size:12px;font-weight:500;color:var(--color-olive)}.control-more[open]{display:grid;gap:8px}.segmented{display:inline-flex;border:1px solid var(--color-sage);border-radius:999px;overflow:hidden}.segmented button{border:none;border-radius:0;padding:5px 16px}.segmented button+button{border-left:1px solid var(--color-sage)}.segmented button.active{background:var(--color-olive);color:#fff}.upload-block{display:grid;gap:8px}.drop-zone{display:grid;gap:2px;place-items:center;padding:18px 12px;border:2px dashed var(--color-sage);border-radius:10px;text-align:center;cursor:pointer}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--color-orange);background:var(--color-light-sage)}.drop-zone.busy{opacity:.6;cursor:progress}.drop-zone-title{font-weight:700;color:var(--color-olive)}.drop-zone-hint{font-size:12px;color:var(--color-dark-grey)}.upload-info{margin:0;font-size:12px;color:var(--color-dark-grey);word-break:break-all}@media (max-width: 760px){.app-main{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) auto}.panel{order:2;border-right:none;border-top:1px solid var(--color-mint);max-height:50vh}}.preview .preview-canvas.picking{cursor:crosshair}.loupe{position:absolute;z-index:5;display:flex;align-items:center;gap:6px;padding:3px 8px 3px 3px;border-radius:999px;background:#fff;box-shadow:0 1px 4px #00000040;font:12px ui-monospace,monospace;pointer-events:none}.loupe:before{content:"";width:22px;height:22px;border-radius:50%;background:var(--loupe-color);box-shadow:inset 0 0 0 1px #0003}.palette-block{display:grid;gap:10px}.palette-heading{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.ink-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.ink-row,.paper-row{display:flex;align-items:center;gap:5px}.ink-order{flex:none;width:14px;font-size:12px;font-weight:700;color:var(--color-olive);text-align:center}.swatch{flex:none;width:30px;height:28px;padding:0;border:1px solid rgb(0 0 0 / .25);border-radius:6px;background:var(--swatch, #fff)}.swatch:hover:not(:disabled){background:var(--swatch, #fff);border-color:var(--color-black-grey)}input.swatch-input{width:30px;height:28px;padding:0;border:1px solid rgb(0 0 0 / .25);border-radius:6px;background:none;-webkit-appearance:none;appearance:none;cursor:pointer}.swatch-input::-webkit-color-swatch-wrapper{padding:0}.swatch-input::-webkit-color-swatch{border:none;border-radius:5px}.swatch-input::-moz-color-swatch{border:none;border-radius:5px}.ink-row .control-hex{flex:1;width:0;min-width:74px}.paper-row .control-hex{width:74px}.icon-button{flex:none;display:grid;place-items:center;width:26px;height:26px;padding:0;font-size:14px;line-height:1}.icon-button.active{background:var(--color-orange);border-color:var(--color-dark-sandstone);color:#fff}.icon-button.remove{font-size:18px}.ink-move{display:grid;gap:1px}.ink-move .icon-button{width:22px;height:13px;font-size:8px;border-radius:3px}.add-ink{justify-self:start}.paper-row{padding-top:8px;border-top:1px dashed var(--color-mint)}.paper-row .control-label{flex:1}.swatch-popover{position:fixed;z-index:50;width:232px;padding:10px;border-radius:10px;background:#fff;box-shadow:0 4px 16px #0003}.swatch-popover-title{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--color-olive)}.swatch-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.swatch-choice{aspect-ratio:1;width:100%;padding:0;border:1px solid rgb(0 0 0 / .2);border-radius:4px;background:var(--swatch)}.swatch-choice:hover:not(:disabled){background:var(--swatch);transform:scale(1.15)}.swatch-choice.current{outline:2px solid var(--color-orange);outline-offset:1px}.swatch-custom{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px}.swatch-custom span{flex:1}.control-group{display:grid;gap:6px}.control-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.control-link{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--color-olive);cursor:pointer}.control-group-rows{display:grid;gap:6px;padding-left:8px;border-left:2px solid var(--color-mint)}.ink-dot{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #0003;vertical-align:-1px}.swatch-custom-only{margin-top:0}.swatch-custom-only input[type=color]{width:56px;height:36px}.ink-test-open{justify-self:start;margin-top:4px;border-style:dashed}.ink-test{position:absolute;inset:0;z-index:10;overflow:auto;padding:16px 24px 32px;background:#fff}.ink-test-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}.ink-test-header h2{margin:0;font-family:var(--font-display);font-size:18px}.ink-test-header p{margin:4px 0 0;max-width:560px;font-size:13px;color:var(--color-dark-grey)}.ink-test-controls{display:flex;gap:8px;align-items:center}.ink-test-legend{margin:12px 0 16px;font-size:12px;color:var(--color-olive)}.ink-test-stage{position:relative}.ink-test-stage canvas{display:block}.ink-test-labels{position:absolute;inset:0 auto auto 0;width:100%;pointer-events:none}.ink-test-heading,.ink-test-label{position:absolute;margin:0;font-size:12px;white-space:nowrap}.ink-test-heading{font-weight:700;color:var(--color-olive)}.ink-test-label{text-align:center;color:var(--color-dark-grey)}.ink-test-ramp-label{text-align:right}.panel-subsection{display:grid;gap:12px;padding:12px 0 0;border-top:1px dashed var(--color-mint)}.panel-subsection h3{margin:0;font-size:13px;font-weight:700;color:var(--color-olive)}.panel-end{display:grid;gap:12px;padding:12px 0 0;border-top:1px dashed var(--color-mint)}.panel-end:not(:has(>:not([hidden]))){display:none}.panel-subsection h3+.control-help{margin-top:-8px}.curve-editor{position:relative;width:100%}.curve-editor canvas{display:block;width:100%;border:1px solid var(--color-sage);border-radius:4px;touch-action:none}.curve-reset{position:absolute;top:4px;right:4px;padding:1px 8px;font-size:11px}.curve-editor.is-default .curve-reset{display:none}.control-curve .control-body{display:block}.layers-block,.layer-list{display:grid;gap:8px}.layer-list{margin:0;padding:0;list-style:none}.layer-row{display:grid;gap:4px;padding:6px 8px;border-radius:6px;background:var(--color-light-sage)}.layer-row.layer-hidden{opacity:.5}.layer-head,.layer-density{display:flex;align-items:center;gap:5px}.layer-name{flex:1;font-size:12px;font-family:ui-monospace,monospace}.layer-toggles{display:flex;flex-wrap:wrap;gap:5px}.layer-toggle{padding:2px 8px;font-size:12px}.layer-toggle.active{background:var(--color-olive);border-color:var(--color-olive);color:#fff}.layer-density span:first-child{font-size:12px;color:var(--color-dark-grey)}.layer-density input[type=range]{flex:1;min-width:0}.tonemap-block{display:grid;gap:6px}.tonemap-hist,.tonemap-strip{display:block;width:100%;border:1px solid var(--color-sage);border-radius:4px;touch-action:none}.tonemap-axis{display:flex;justify-content:space-between;margin-top:-4px;font-size:11px;color:var(--color-olive)}.tonemap-bands{display:grid;gap:6px;margin-top:4px}.tonemap-band{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;font-size:12px}.tonemap-band select{max-width:180px}.preview-modes{margin-right:4px}.preview-modes button{padding:4px 12px}.button-row{display:flex;flex-wrap:wrap;gap:6px}.crop-editor{position:absolute;inset:0;z-index:30;display:grid;grid-template-rows:1fr auto;background:#2f2f2a}.crop-editor[hidden]{display:none}.crop-canvas{width:100%;height:100%;min-height:0;display:block;touch-action:none}.crop-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 14px;background:#fff;border-top:1px solid var(--color-mint)}.crop-group{display:flex;align-items:center;gap:6px}.crop-group input[type=range]{width:140px}.crop-label{font-size:12px;color:var(--color-dark-grey)}.crop-field{width:64px}.crop-done{background:var(--color-olive);border-color:var(--color-olive);color:#fff}.crop-block .button-row{margin-top:2px}.presets-block{display:grid;gap:8px}.presets-block select{flex:1;min-width:0}.presets-upload{justify-self:start}.presets-message:empty{display:none}.presets-message.presets-error{color:var(--color-error)}.export-block{display:grid;gap:8px;padding-top:8px;border-top:1px dashed var(--color-mint)}.export-summary{margin:0;font-size:12px;color:var(--color-dark-grey)}.export-button{justify-self:start;padding:8px 20px;background:var(--color-olive);border-color:var(--color-olive);color:#fff;font-weight:700}.export-button:hover:not(:disabled){background:var(--color-dark-grey);border-color:var(--color-dark-grey)}.export-progress{display:flex;align-items:center;gap:8px}.export-progress progress{flex:1;accent-color:var(--color-dark-sandstone)}.export-message{min-height:1em}.export-warning{margin:0;font-size:12px;color:var(--color-error)}.ink-row.scheme-first .ink-order{color:#fff;background:var(--color-olive);border-radius:50%;width:16px;height:16px;line-height:16px;font-size:11px}.layer-more{font-size:12px}.layer-more summary{cursor:pointer;color:var(--color-olive);font-weight:500}.layer-more[open]{display:grid;gap:8px}.tone-curves,.tone-curve-rows,.channel-block,.channel-body,.selective-block,.selective-cards{display:grid;gap:10px}.tone-curve-row,.channel-card{display:grid;gap:8px;padding:8px;border-radius:6px;background:var(--color-light-sage)}.tone-curve-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tone-curve-head select{max-width:150px}.channel-card h4{display:flex;align-items:center;margin:0;font-size:12px;font-weight:700;color:var(--color-olive)}.hue-control input[type=range]{-webkit-appearance:none;appearance:none;height:10px;border-radius:999px;background:linear-gradient(to right,#e83030,#e8e830,#17cf17,#17cfcf,#4747eb,#e830e8,#e83030)}.hue-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--color-black-grey)}.hue-control input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--color-black-grey)}.hue-control input[type=range]::-moz-range-track{background:transparent}.icon-text-button{display:inline-flex;align-items:center;gap:6px}.icon-text-button.active{background:var(--color-orange);border-color:var(--color-dark-sandstone);color:#fff}
