@layer reset{*,*:before,*:after{box-sizing:inherit}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block:0}body{margin:0;padding:0;min-height:100vh;line-height:1.25}h1,h2,h3,h4,button,input,label{line-height:1.1}p{margin-block:0;text-wrap:pretty}td,th{text-align:left;text-wrap:pretty;vertical-align:top}ul:not(.list-default),ol:not(.list-default){margin:0;padding:0;list-style:none}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}figure{margin-inline:0;display:block}img,picture{max-width:100%;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}a,button,select,input,textarea{outline-offset:.125rem}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media screen and (prefers-reduced-motion:reduce),(update:slow){*{background-attachment:initial!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}}:root{--step--2: clamp(.7813rem, .7736rem + .0341vw, .8rem);--step--1: clamp(.9375rem, .9119rem + .1136vw, 1rem);--step-0: clamp(1.125rem, 1.0739rem + .2273vw, 1.25rem);--step-1: clamp(1.35rem, 1.2631rem + .3864vw, 1.5625rem);--step-2: clamp(1.62rem, 1.4837rem + .6057vw, 1.9531rem);--step-3: clamp(1.944rem, 1.7405rem + .9044vw, 2.4414rem);--step-4: clamp(2.3328rem, 2.0387rem + 1.3072vw, 3.0518rem);--step-5: clamp(2.7994rem, 2.384rem + 1.8461vw, 3.8147rem)}h2{font-size:var(--step--1)}.text-label{font-size:var(--step--2)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.hidden{display:none}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}:root{--color-primary: #434343;--color-primary-hover: #7c7c7c;--color-secondary: #353e4a;--color-secondary-hover: #ff3e78;--color-highlight: #36c253;--color-highlight-light: #a4e1ac;--color-instructional: #2563eb;--border-color: #c6cdd6;--border-radius: .375rem;--bg-color: #f8fafc;--text-color: #1e293b;--text-muted: #64748b;--success-color: #10b981;--error-color: #ef4444;--warning-color: #f8cb00;--warning-hover: #f8cb00;--button-tertiary: #efefef;--button-disabled: #a1a1a1;--button-active-background: #36c253;--button-hover-background: rgba(67, 67, 67, .04);--scan-bulb-color: rgba(255, 255, 255, .95);--scan-bulb-glow: rgba(255, 255, 255, .6);--canvas-bg: #ffffff;--sidebar-width: 340px}*,*:before,*:after{box-sizing:inherit}html{box-sizing:border-box}body{font-size:16px;font-weight:400;line-height:1.5;scrollbar-width:thin;color:var(--text-color);background-color:var(--bg-color);font-family:IBM Plex Mono,monospace;scrollbar-color:var(--color-primary) #fff}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{border-radius:6px;background-color:var(--color-primary)}a,input,button,select,textarea{appearance:none;color:var(--text-color);&:not(:disabled){&:focus-visible,&:focus-within{outline-offset:.125rem;outline:2px solid var(--color-primary)}}}input,textarea{font-size:16px}button,label.label-button{text-transform:lowercase}button:not(:disabled):active,label.label-button:active{transform:scale(.98)}ul.list-default{padding-inline-start:1em}a{&:hover,&:focus-visible{color:#fff;background-color:var(--color-primary)}}.icon{height:1em;width:auto;color:currentColor;display:inline-block;vertical-align:middle}.highlighted{border-radius:.25em;color:var(--color-primary);padding:.05em .25em .1em;background-color:var(--color-highlight-light)}.privacy-notice{text-wrap:pretty;margin-block-end:1.5em;font-size:var(--step--2)}.slitscanner{display:grid;grid-template-areas:"header" "scan-button" "upload" "canvas" "controls";gap:1rem;min-height:100vh;padding-inline:1rem}.sidebar{display:contents}.scanner-header{grid-area:header}.scan-button-section{grid-area:scan-button}.upload-section{grid-area:upload}.canvas-area{grid-area:canvas}.controls-panel{grid-area:controls}.logo{img{max-width:100%}}.scanner-header{padding-block-start:1rem}.scanner-header p{margin-block-start:1em;color:var(--text-muted)}.scan-button-section{top:0;gap:.5rem;z-index:100;display:flex;position:sticky;padding:.5rem 1rem;flex-direction:column;width:calc(100% + 2rem);margin-inline-start:-1rem;background-color:var(--bg-color);button{width:100%}}.upload-section{gap:1rem;display:flex;flex-wrap:wrap;align-items:center}.file-input{inset:0;opacity:0;z-index:-1;position:absolute}.accordion-trigger{width:100%;gap:.5rem;display:flex;line-height:1;cursor:pointer;background:none;font-weight:500;align-items:center;font-family:inherit;padding:.75rem 1rem;font-size:var(--step--1);color:var(--color-primary);justify-content:space-between;border-radius:var(--border-radius);border:1px solid var(--color-primary);transition:background-color .2s,border-color .2s;&.accordion-trigger--secondary{border-color:var(--border-color)}}.accordion-trigger:hover{border-color:var(--color-primary);background-color:var(--button-hover-background)}.accordion-trigger:focus-visible{outline-offset:.125rem;outline:2px solid var(--color-primary)}.accordion-trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.accordion-label{display:inline-flex;align-items:center;gap:.5rem}.accordion-arrow{flex-shrink:0;transition:transform .25s ease}.accordion-trigger[aria-expanded=true] .accordion-arrow{transform:rotate(180deg)}#text-controls{display:flex;gap:.75rem;border-top:none;flex-basis:100%;flex-direction:column;margin-block-end:.25rem;margin-block-start:-1rem;padding:.75rem 1rem 1rem;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-left:1px solid var(--color-primary);border-right:1px solid var(--color-primary);border-bottom:1px solid var(--color-primary)}#text-controls textarea,.text-input-field{font-family:var(--text-input-font-family, "IBM Plex Mono", monospace);font-weight:var(--text-input-font-weight, normal);font-style:var(--text-input-font-style, normal)}#text-controls[hidden]{display:none}#tips-panel{gap:.75rem;display:flex;padding:.75rem;border-top:none;position:relative;flex-direction:column;margin-block-start:-1rem;border:1px solid var(--border-color);border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}#tips-panel[hidden]{display:none}#tips-panel ol,#tips-panel ul{font-size:.85rem;margin-block-end:0}#tips-panel ol{padding-inline-start:1.85em}#tips-panel ul{padding-inline-start:1.25em}#tips-panel li+li{margin-block-start:.5em}.info-note{padding:.75rem;font-size:.85rem;color:var(--text-color);margin-block-start:1rem;width:calc(100% + 1.5rem);margin-inline-start:-.75rem;background-color:var(--button-tertiary);border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.text-area-input{width:100%;font-size:16px;padding:.75rem;resize:vertical;min-height:3rem;border-radius:var(--border-radius);border:1px solid var(--border-color)}.text-area-input:hover{border-color:var(--color-primary)}.text-input-field{width:100%;font-size:16px;padding:.75rem;border-radius:var(--border-radius);border:1px solid var(--border-color)}.text-input-field:hover{border-color:var(--color-primary)}.alignment-controls{display:flex;border-radius:var(--border-radius);border:1px solid var(--border-color)}.alignment-btn{flex:1;border:none;font-weight:500;cursor:pointer;background:none;font-size:.8rem;font-family:inherit;padding:.4rem .5rem;color:var(--text-color);border-right:1px solid var(--border-color);transition:background-color .15s ease-out,color .15s ease-out}.alignment-btn:first-child{border-top-left-radius:var(--border-radius);border-bottom-left-radius:var(--border-radius)}.alignment-btn:last-child{border-right:none;border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.alignment-btn:hover{background-color:var(--button-hover-background)}.alignment-btn:focus-visible{outline:2px solid var(--color-primary)}.alignment-btn.active{background-color:var(--color-primary);color:#fff}#download-section{gap:.25rem;display:none;flex-direction:column}.helper-text{margin:0;line-height:1.4;font-size:.78rem;color:var(--text-muted)}.credits{padding:.75rem 1rem;width:calc(100% + 2rem);margin-block-start:4rem;font-size:var(--step--2);margin-inline-start:-1rem;background-color:var(--button-tertiary);h2{font-size:var(--step--1)}>*+*{margin-block-start:1rem}}.canvas-area{min-width:0}.canvas-wrapper{display:block;max-width:100%;position:relative}.quickstart-guide-shown{.show-quickstart-guide-btn{display:none}.quickstart-guide{display:flex}}.quickstart-guide{gap:1rem;z-index:10;width:100%;display:none;padding:1rem;flex-direction:column;margin-block-end:1.5rem;background-color:#fff;border-radius:var(--border-radius);border:2px solid var(--color-primary);*{font-size:var(--step--1)}#demo-video-link{text-decoration:none}ol,ul{margin:0;line-height:1.4;padding-inline-start:1.85em;li{text-wrap:balance}li+li{margin-block-start:.5em}}.quickstart-guide__close{top:.75rem;right:.75rem;position:absolute}}.show-quickstart-guide-btn{margin-block-start:1rem}.canvas-label{font-weight:600;font-size:.9rem;letter-spacing:.05em;color:var(--text-muted);text-transform:uppercase}.canvas-container{max-width:100%;max-height:85vh;overflow:hidden;width:max-content;position:relative;border:2px solid var(--border-color);box-shadow:0 2px 8px #00000014;background-color:#fff;background-image:linear-gradient(45deg,#e0e0e0 25%,transparent 25%),linear-gradient(-45deg,#e0e0e0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e0e0e0 75%),linear-gradient(-45deg,transparent 75%,#e0e0e0 75%);background-size:32px 32px;background-position:0 0,0 16px,16px -16px,-16px 0px}canvas{width:auto;height:auto;display:block;cursor:default;max-width:100%;max-height:85vh}.canvas-wrapper.drag-over{outline-offset:-.1875rem}.canvas-wrapper.drag-over .quickstart-guide{display:none}.canvas-wrapper.drag-over .canvas-container:before{inset:0;content:"";z-index:1000;position:absolute;pointer-events:none;background:#00000059;border:.375rem dashed var(--color-instructional)}.canvas-wrapper.drag-over .canvas-container:after{top:50%;left:50%;color:#fff;z-index:1001;font-weight:600;position:absolute;padding:1rem 2rem;font-size:1.25rem;pointer-events:none;content:"drop image here!";transform:translate(-50%,-50%);border-radius:var(--border-radius);background:var(--color-instructional)}.scan-bulb{left:0;right:0;z-index:10;display:none;height:.625rem;position:absolute;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--scan-bulb-glow) 20%,var(--scan-bulb-color) 50%,var(--scan-bulb-glow) 80%,transparent);box-shadow:0 0 20px #fffc,0 0 40px #fff6;transition:top 16ms linear}.countdown-overlay{display:none;inset:0;gap:1rem;z-index:20;padding:.5rem;position:absolute;align-items:center;pointer-events:none;flex-direction:column;justify-content:center;background-color:#000000b3}#countdown-number{color:#fff;line-height:1;font-size:5rem;font-weight:700;animation:pulse 1s ease-in-out infinite;text-shadow:0 4px 20px rgba(0,0,0,.5)}.scan-tip{color:#fff;max-width:56ch;text-align:center;font-size:var(--step-0);margin-block-start:.5em}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}.scan-complete{display:none;top:50%;left:50%;z-index:20;color:#fff;padding:1rem;font-size:1rem;font-weight:600;text-align:center;position:absolute;pointer-events:none;transform:translate(-50%,-50%);animation:slideDown .3s ease-out;border-radius:var(--border-radius);box-shadow:0 8px 32px #10b98166;background-color:var(--button-active-background)}@keyframes slideDown{0%{transform:translate(-50%,-60%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}.controls-panel{gap:1.5rem;display:flex;position:relative;padding:1.5rem 1rem 0;flex-direction:column;background-color:#fff;width:calc(100% + 2rem);margin-inline-start:-1rem;&:before{content:"";height:1px;inset-inline:0;position:absolute;inset-block-start:0;background-color:var(--border-color)}}.control-group{width:100%;gap:.75rem;display:flex;flex-direction:column}.control-label{font-weight:600;color:var(--text-color);font-size:var(--step--2)}.select-wrapper{position:relative;.accordion-arrow{top:50%;right:1rem;position:absolute;pointer-events:none;transform:translateY(-50%)}}.select-input{width:100%;line-height:1;cursor:pointer;font-family:inherit;padding:.75rem 1rem;background-color:#fff;text-transform:lowercase;font-size:var(--step--1);transition:border-color .2s;border-radius:var(--border-radius);border:1px solid var(--border-color)}.select-input:hover{border-color:var(--color-primary)}.select-input:focus-visible{outline-offset:.125rem;outline:2px solid var(--color-primary)}.custom-ratio-inputs{gap:.5rem;display:flex;align-items:center}.number-input{width:4rem;font-size:.9rem;text-align:center;font-family:inherit;padding:.4rem .5rem;-moz-appearance:textfield;transition:border-color .2s;border-radius:var(--border-radius);border:1px solid var(--border-color)}.number-input::-webkit-inner-spin-button,.number-input::-webkit-outer-spin-button{margin:0;appearance:none}.ratio-separator{font-weight:600;font-size:.9rem;color:var(--text-color)}.btn{border:none;line-height:1;cursor:pointer;font-size:1rem;font-weight:600;text-align:center;font-family:inherit;display:inline-block;padding:.75rem 1.5rem;border-radius:var(--border-radius);&:not(:disabled){&:hover{outline:2px solid var(--color-primary-hover)}}}.btn:disabled{cursor:not-allowed;background-color:var(--button-disabled)}.btn-primary{color:#fff;border:1px solid var(--color-primary);background-color:var(--color-primary)}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled){background-color:var(--button-active-background)}.btn-secondary{background-color:#fff;color:var(--color-primary);border:1px solid var(--border-color)}.btn-active{color:#fff;background-color:var(--button-active-background);&:not(:disabled){&:hover,&:focus-visible{background-color:color-mix(in srgb,var(--button-active-background) 80%,transparent)}}}.btn-warning{width:100%;vertical-align:middle;color:var(--color-primary);background-color:var(--button-tertiary)}.btn-warning:hover:not(:disabled){background-color:var(--warning-hover)}.btn-small{white-space:nowrap;padding:.5rem .75rem;font-size:var(--step--2)}.btn-xsmall{padding:.25rem;white-space:nowrap;font-size:var(--step--2)}.media-button{gap:.5rem;width:100%;line-height:1;font-size:1rem;cursor:pointer;font-weight:500;position:relative;align-items:center;display:inline-flex;padding:.75rem 1rem;justify-content:flex-start;color:var(--color-primary);background-color:transparent;transition:background-color .2s;border-radius:var(--border-radius);border:2px dashed var(--color-primary)}.media-button:hover:not(:disabled){background-color:var(--button-hover-background)}.media-button:disabled{opacity:.5;cursor:not-allowed}.media-button:focus-within{outline-offset:.125rem;outline:2px solid var(--color-primary)}.checkbox-label{gap:.5rem;width:100%;cursor:pointer;font-weight:500;user-select:none;align-items:center;display:inline-flex;font-size:var(--step--2);color:var(--color-primary)}.checkbox-label input[type=checkbox]{width:0;height:0;opacity:0;position:absolute;pointer-events:none}.checkbox-indicator{flex-shrink:0;width:1.25rem;height:1.25rem;align-items:center;display:inline-flex;border-radius:.25rem;justify-content:center;background-color:transparent;border:2px solid var(--color-primary);transition:background-color .15s ease-out,border-color .15s ease-out}.checkbox-indicator:after{opacity:0;content:"";display:block;width:.35rem;height:.6rem;border:solid #fff;border-width:0 2px 2px 0;transition:opacity .15s ease-out;transform:rotate(45deg) translateY(-1px)}.checkbox-label input[type=checkbox]:checked+.checkbox-indicator{border-color:var(--color-primary);background-color:var(--color-primary)}.checkbox-label input[type=checkbox]:checked+.checkbox-indicator:after{opacity:1}.checkbox-label input[type=checkbox]:focus-visible+.checkbox-indicator{outline-offset:.125rem;outline:2px solid var(--color-primary)}.slider{appearance:none;width:100%;height:6px;outline:none;border-radius:3px;background:var(--border-color)}.slider:focus-visible{&::-webkit-slider-thumb{outline-offset:.125rem;outline:2px solid var(--color-primary)}&::-moz-range-thumb{outline-offset:.125rem;outline:2px solid var(--color-primary)}}.slider::-webkit-slider-thumb{width:1.25rem;height:1.25rem;cursor:pointer;appearance:none;border-radius:50%;transition:all .2s;background:var(--color-primary)}.slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 8px #2563eb1a}.slider::-moz-range-thumb{width:20px;height:20px;border:none;cursor:pointer;border-radius:50%;transition:all .2s;background:var(--color-primary)}.slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 8px #2563eb1a}.speed-markers{display:flex;font-size:.75rem;color:var(--text-muted);justify-content:space-between}.color-picker-wrapper{gap:.5rem;display:flex;align-items:center}.color-input{height:40px;cursor:pointer;padding:.25rem;background-color:#fff;transition:border-color .2s;border-radius:var(--border-radius);border:1px solid var(--border-color)}.color-input:hover{border-color:var(--color-primary)}.status-message{display:none;max-width:100%;font-weight:500;font-size:.9rem;width:max-content;padding:.75rem 1rem;margin-block-start:1rem;border-radius:var(--border-radius)}.status-success{border:1px solid var(--color-highlight);color:color-mix(in srgb,var(--color-highlight) 80%,#000);background-color:color-mix(in srgb,var(--color-highlight) 3%,transparent)}.status-error{color:var(--error-color);border:1px solid var(--error-color);background-color:#ef44441a}.status-info{color:var(--color-primary);border:1px solid var(--color-primary);background-color:var(--button-tertiary)}.demo-dialog{padding:0;width:auto;border:none;position:fixed;max-width:90vw;max-height:90vh;border-radius:var(--border-radius);box-shadow:0 25px 50px -12px #00000080}.demo-dialog::backdrop{background:#000000bf}.demo-dialog__close{z-index:1;position:absolute;inset-inline-end:.75rem;inset-block-start:.75rem}.demo-video-dialog{background:#000;aspect-ratio:1728 / 1080}.demo-video-dialog__content{display:flex}.demo-video-dialog__content video{width:100%;height:auto;display:block;max-width:90vw;max-height:90vh}.examples-dialog{.demo-dialog__close{inset-block-start:1.25rem;inset-inline-end:2rem}}.examples-dialog__content{padding:1.5rem 1rem 2rem;header{padding-inline-end:4rem}}@media(min-width:768px){.slitscanner{gap:0;padding:0;height:100vh;overflow:hidden;grid-template-rows:1fr;grid-template-areas:"sidebar canvas";grid-template-columns:var(--sidebar-width) 1fr}.sidebar{padding:0;gap:1.5rem;display:flex;overflow-y:auto;grid-area:sidebar;flex-direction:column;background-color:#fff;border-right:1px solid var(--border-color)}.scan-button-section{width:100%;margin-inline:0;padding-block:.5rem;background-color:#fff}.logo,.scan-button-section,.upload-section{padding-inline:1rem}.canvas-area{gap:2rem;display:flex;overflow-y:auto;grid-area:canvas;position:relative;padding:2rem 2rem .5rem;justify-content:space-between;flex-direction:column-reverse}.quickstart-guide{overflow-y:auto;position:absolute;inset-block-start:2rem;inset-inline-start:2rem;width:calc(100% - 4rem);max-height:calc(100vh - 8rem)}.privacy-notice{margin:0}.controls-panel{width:100%;margin-inline:0;background-color:transparent;&:before{inset-inline:1rem}}.scanner-header{text-align:left}.media-button{width:100%}#countdown-number{font-size:8rem}.status-message.status-message--visible{display:block}.examples-dialog__content{padding:1.5rem 2rem 2rem}}@media(max-width:480px){#countdown-number{font-size:4rem}}
