@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/app/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/app/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/app/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/app/assets/barlow-latin-500-normal-C1h8hMer.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/app/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/app/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Sofia Sans Extra Condensed;font-style:normal;font-display:swap;font-weight:300;src:url(/app/assets/sofia-sans-extra-condensed-latin-300-normal-CNujw4pI.woff2)format("woff2"),url(/app/assets/sofia-sans-extra-condensed-latin-300-normal-DCB8odLt.woff)format("woff")}@font-face{font-family:Sofia Sans Extra Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/app/assets/sofia-sans-extra-condensed-latin-400-normal-BlYm7T1p.woff2)format("woff2"),url(/app/assets/sofia-sans-extra-condensed-latin-400-normal-wwjSeB08.woff)format("woff")}:root{--paper:oklch(12.5% .008 55);--paper-2:oklch(16% .009 55);--paper-3:oklch(20.5% .01 55);--paper-4:oklch(25% .01 55);--ink:oklch(92% .012 78);--ink-2:oklch(80% .012 75);--muted:oklch(64% .012 65);--rule:oklch(29% .01 55);--accent:oklch(73% .15 58);--accent-ink:oklch(12.5% .008 55);--ok:oklch(78% .12 150);--warn:oklch(80% .12 75);--error:oklch(70% .15 30);--ok-bg:oklch(24% .04 150);--warn-bg:oklch(22% .035 65);--error-bg:oklch(21% .04 30);--stage:oklch(17% 0 0);--stage-2:oklch(21% 0 0);--scrim:oklch(0% 0 0/.6);--film-edge:oklch(0% 0 0);--display:"Sofia Sans Extra Condensed", "Arial Narrow", sans-serif;--body:"Barlow", ui-sans-serif, system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, monospace;--t-black:oklch(8% 0 0);--t-grey:oklch(52% 0 0);--t-white:oklch(96% 0 0);--t-cyan:oklch(74% .13 205);--t-red:oklch(60% .19 27);--t-magenta:oklch(62% .21 340);--t-green:oklch(66% .17 145);--t-yellow:oklch(86% .16 95);--t-blue:oklch(56% .18 262);--g-exposure:linear-gradient(90deg, var(--t-black), var(--t-white));--g-contrast:linear-gradient(90deg, var(--t-grey), var(--t-white)) top / 100% 50% no-repeat, linear-gradient(90deg, var(--t-grey), var(--t-black)) bottom / 100% 50% no-repeat;--g-black:linear-gradient(90deg, var(--t-grey), var(--t-black));--g-cr:linear-gradient(in oklab 90deg, var(--t-cyan), var(--t-red));--g-gm:linear-gradient(in oklab 90deg, var(--t-green), var(--t-magenta));--g-by:linear-gradient(in oklab 90deg, var(--t-blue), var(--t-yellow));--g-sat:linear-gradient(in oklch 90deg, var(--t-grey), var(--t-red), var(--t-yellow), var(--t-green), var(--t-blue));--g-noise:linear-gradient(in oklab 90deg, var(--t-magenta), var(--t-green) 30%, var(--t-grey) 65%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow-x:clip}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--body)}button{font:inherit;color:inherit}.btn,.seg button,.badge,.round span,.kicker{text-box:trim-both cap alphabetic}.app{flex-direction:column;height:100%;display:flex}.bar{border-bottom:1px solid var(--rule);background:var(--paper-2);flex-wrap:wrap;align-items:center;gap:10px 16px;min-height:51px;padding:10px 16px;display:flex}.logo{font:300 26px/1 var(--display);text-transform:uppercase;white-space:nowrap}.logo i{color:var(--muted);font-style:normal}.status{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.crumb{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;overflow:hidden}.saved{color:var(--muted);white-space:nowrap;font-size:13px}.saved.dirty{color:var(--warn)}.btn.icon{justify-content:center;align-items:center;padding:6px 9px;display:inline-flex}.btn.icon svg{display:block}.body{flex:1;grid-template-columns:260px 1fr;min-height:0;display:grid}.body.has-roll{grid-template-columns:250px 1fr 300px}.panel{background:var(--paper);border-right:1px solid var(--rule);flex-direction:column;gap:12px;padding:18px;display:flex;overflow-y:auto}.plabel{color:var(--muted);font-size:13px}.drop{border:1px dashed var(--rule);cursor:pointer;flex-direction:column;gap:4px;padding:14px;display:flex;position:relative}.drop:hover,.drop.over,.drop:focus-within{border-color:var(--accent)}.drop b{font-weight:600}.drop span{color:var(--muted);font-size:13px}.drop .ok{color:var(--ok)}.drop input{opacity:0;width:1px;height:1px;position:absolute}.seg{border:1px solid var(--rule);display:flex}.seg button{color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:1;padding:9px 6px}.seg button+button{border-left:1px solid var(--rule)}.seg button:hover:not(:disabled){background:var(--paper-3)}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.seg button:disabled{opacity:.45;cursor:default}.seg button:focus-visible,.btn:focus-visible,.frame:focus-visible,.link:focus-visible,.version:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.failed{color:var(--warn);word-break:break-word;flex-direction:column;gap:4px;font-size:13px;display:flex}.main{background:var(--stage);flex-direction:column;gap:16px;min-width:0;min-height:0;padding:16px;display:flex;overflow-y:auto}.empty{text-align:center;flex-direction:column;gap:8px;max-width:42ch;margin:auto;font-size:16px;display:flex}.muted{color:var(--muted);font-size:13px}.viewer{flex-direction:column;gap:8px;display:flex}.viewer.placeholder{background:var(--stage-2);height:min(62vh,56vw)}.viewer{--stage-h:min(62vh, 56vw)}.stage-area{min-height:var(--stage-h);justify-content:center;align-items:center;display:flex}.stage-box{touch-action:none;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.stage-box.editing,.stage-box.picking{cursor:crosshair}.stage{width:100%;height:100%;display:block}.editor{--stage-h:calc(min(62vh, 56vw) - 48px);flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.editor-bar{flex-wrap:wrap;align-items:center;gap:8px;width:100%;font-size:13px;display:flex}.hint{color:var(--muted)}.crop-rect{outline:2px solid var(--accent);box-shadow:0 0 0 9999px var(--scrim);pointer-events:none;position:absolute}.crop-rect:focus{outline-style:solid}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){background:color-mix(in oklch, var(--accent) 88%, var(--ink))}.btn.ghost{background:0 0;border-color:#0000}.btn:disabled{opacity:.45;cursor:default}.viewer-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px;display:flex}.viewer-bar .name{font:400 20px/1 var(--display);text-transform:uppercase}.base{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.tag{color:var(--muted)}.stage-box.splitting{cursor:ew-resize}.stage-box.loading{opacity:.6;transition:opacity .15s}.divider{border-left:2px solid var(--t-white);pointer-events:none;width:0;position:absolute;top:0;bottom:0}.divider span{background:var(--scrim);color:var(--t-white);white-space:nowrap;padding:3px 6px;font-size:12px;position:absolute;top:8px}.divider span:first-child{right:8px}.divider span:last-child{left:8px}.gpu-error{color:var(--warn);max-width:50ch}.inspector{background:var(--paper);border-left:1px solid var(--rule);flex-direction:column;gap:12px;min-width:0;padding:18px;display:flex;overflow-y:auto}.histogram{background:var(--paper-3);flex:none;width:100%;height:96px;display:block}.histogram path{mix-blend-mode:screen;opacity:.75}.histogram .h-r{fill:var(--t-red)}.histogram .h-g{fill:var(--t-green)}.histogram .h-b{fill:var(--t-blue)}.base-row{align-items:center;gap:10px;display:flex}.swatch{border:1px solid var(--film-edge);flex:none;width:34px;height:34px}.base-text{flex-direction:column;flex:1;min-width:0;display:flex}.base-text b{font-weight:600}.slider{flex-direction:column;gap:6px;display:flex}.slider-head{justify-content:space-between;font-size:13.5px;display:flex}.slider .value{font-variant-numeric:tabular-nums;color:var(--ink-2)}.slider input{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.slider input::-webkit-slider-runnable-track{background:var(--grad,var(--rule));height:6px;box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--ink) 16%, transparent)}.slider input::-moz-range-track{background:var(--grad,var(--rule));height:6px;box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--ink) 16%, transparent)}.slider input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);width:14px;height:14px;box-shadow:0 0 0 3px var(--paper);border:0;margin-top:-4px}.slider input::-moz-range-thumb{background:var(--ink);width:14px;height:14px;box-shadow:0 0 0 3px var(--paper);border:0;border-radius:0}.slider input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.slider input:focus-visible::-webkit-slider-thumb{background:var(--accent)}.slider input:focus-visible::-moz-range-thumb{background:var(--accent)}.slider input:disabled{opacity:.45;cursor:default}.tabs{border:1px solid var(--rule);display:flex}.tabs button{color:var(--ink-2);cursor:pointer;text-box:trim-both cap alphabetic;background:0 0;border:0;flex:1;padding:9px 6px}.tabs button+button{border-left:1px solid var(--rule)}.tabs button:hover{background:var(--paper-3)}.tabs button[data-changed=true]:after{content:"";vertical-align:middle;background:var(--accent);width:6px;height:6px;margin-left:7px;display:inline-block}.tabs button[aria-selected=true]{background:var(--paper-4);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.look{flex-direction:column;gap:12px;display:flex}.look-note{margin:0}.slider .track{display:block;position:relative}.slider .mark{width:2px;top:1px;bottom:1px;left:calc(7px + (100% - 14px) * var(--at));background:var(--accent);pointer-events:none;margin-left:-1px;position:absolute}.field{flex-direction:column;gap:6px;display:flex}.field input[type=text],.note{font:inherit;color:var(--ink);background:var(--paper-3);border:1px solid var(--rule);border-radius:0;min-width:0;padding:8px 10px}.field input[type=text]:focus-visible,.note:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sp{flex:1}.btn{border:1px solid color-mix(in oklch, var(--ink) 30%, transparent);cursor:pointer;white-space:nowrap;background:0 0;padding:9px 13px;font-weight:500}.btn:hover:not(:disabled){background:var(--paper-3)}.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.sheet{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.frame{cursor:pointer;text-align:left;width:100%;color:var(--ink-2);background:0 0;border:0;flex-direction:column;gap:6px;padding:0;display:flex}.frame canvas,.frame .ph{aspect-ratio:3/2;outline:1px solid var(--film-edge);object-fit:contain;background:var(--stage-2);width:100%;height:auto;display:block}.frame .ph.decoding{animation:1.2s ease-in-out infinite pulse}.frame .ph.failed{background:repeating-linear-gradient(45deg, var(--error-bg) 0 6px, var(--stage-2) 6px 12px)}.frame.sel{color:var(--ink)}.frame[aria-pressed=true] canvas{outline:2px solid var(--ink-2);outline-offset:3px}.frame.sel canvas{outline:2px solid var(--accent);outline-offset:3px}.meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:12.5px;display:flex}.meta .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.badges{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.badge{white-space:nowrap;background:var(--paper-3);color:var(--ink);padding:4px 6px}.badge.flag{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:0 0}@keyframes pulse{50%{background:var(--paper-4)}}.unsupported{flex-direction:column;gap:8px;max-width:48ch;margin:20vh auto;padding:0 16px;display:flex}.unsupported h1{font:300 34px/1 var(--display);text-transform:uppercase;margin:0}@media (width<=1100px){.body.has-roll{grid-template-rows:minmax(0,3fr) minmax(0,2fr);grid-template-columns:1fr 280px}.body.has-roll .inspector{border-bottom:1px solid var(--rule);grid-area:1/2}.body.has-roll .panel{border-right:0;border-left:1px solid var(--rule);grid-area:2/2}.body.has-roll .main{grid-area:1/1/span 2}}@media (width<=720px){.app{height:auto;min-height:100%}.body,.body.has-roll{flex-direction:column;display:flex}.panel,.body.has-roll .panel{border:0;border-bottom:1px solid var(--rule)}.body.has-roll .main{display:contents}.body.has-roll .viewer{background:var(--stage);order:1;padding:16px}.body.has-roll .inspector{border:0;border-bottom:1px solid var(--rule);order:2}.body.has-roll .sheet{background:var(--stage);order:3;padding:16px}.main{overflow:visible}.body:not(.has-roll) .main{order:-1}}.dialog{border:1px solid var(--rule);background:var(--paper-2);width:min(720px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--ink);padding:22px}.dialog::backdrop{background:var(--scrim)}.dialog-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.dialog-head h2{font:300 30px/1 var(--display);text-transform:uppercase;margin:0}.cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.card{border:1px solid var(--rule);cursor:pointer;background:var(--paper);flex-direction:column;gap:8px;padding:14px;display:flex;position:relative}.card:hover{background:var(--paper-3)}.card.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card:focus-within{outline:2px solid var(--accent);outline-offset:2px}.card input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.kicker{color:var(--accent);font-size:12.5px}.facts{grid-template-columns:110px 1fr;gap:8px 12px;margin:18px 0;font-size:13.5px;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.seg.small{display:inline-flex}.seg.small button{flex:none;padding:7px 10px}.dialog-foot{justify-content:flex-end;gap:8px;display:flex}.export-status{background:var(--warn-bg);border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;font-size:13.5px;display:flex}.export-status progress{width:160px;accent-color:var(--accent)}.export-status .failed{flex-basis:100%}@media (width<=720px){.cards,.facts{grid-template-columns:1fr}.facts dt{margin-top:4px}}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.warn{color:var(--warn);font-size:13px}.usual{font-size:13.5px}.link{color:var(--accent);text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link:disabled{opacity:.45;cursor:default}.check{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:flex}.check input{accent-color:var(--accent)}.check input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge.ai.ok{background:var(--ok-bg);color:var(--ok)}.ai-panel{border-top:1px solid var(--rule);flex-direction:column;gap:10px;padding-top:14px;display:flex}.ai-panel b{font-weight:600}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.rounds{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;display:grid}.round{border:1px solid var(--rule);cursor:pointer;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;background:0 0;flex-direction:column;gap:5px;padding:3px;font-size:12px;display:flex}.round img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.round span{padding:2px 0 1px}.round:hover:not(:disabled){background:var(--paper-3)}.round.best{border-color:var(--accent);color:var(--ink)}.round:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.round:disabled{cursor:default}.reason{color:var(--ink-2);margin:0;font-size:13.5px}.notice{border-bottom:1px solid var(--rule);background:var(--ok-bg);align-items:center;gap:10px;padding:8px 16px;font-size:13.5px;display:flex}.notice.error{background:var(--error-bg);color:var(--error)}.notice span{flex:1}.round[aria-pressed=true]{background:var(--paper-3);color:var(--ink)}.crop-rect:focus-visible{outline:2px solid var(--t-white);outline-offset:0}.stage-box:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.aim{border:2px solid var(--accent);width:14px;height:14px;box-shadow:0 0 0 1px var(--film-edge);pointer-events:none;border-radius:50%;margin:-7px 0 0 -7px;position:absolute}.offset{color:var(--muted);margin:0;font-size:13px}.versions{border-top:1px solid var(--rule);flex-direction:column;gap:8px;margin-top:auto;padding-top:14px;display:flex}.versions ol{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.version{width:100%;color:var(--ink-2);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:10px;padding:7px 9px;font-size:13.5px;display:flex}.version time{white-space:nowrap;font-variant-numeric:tabular-nums}button.version:hover:not(:disabled){background:var(--paper-3);color:var(--ink)}button.version:disabled{cursor:default;opacity:.6}.version[aria-current=true]{background:var(--paper-3);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}@media (prefers-reduced-motion:reduce){.frame .ph.decoding{animation:none}.stage-box.loading{transition:none}}.overview{flex-direction:column;gap:10px;width:100%;max-width:1200px;margin:0 auto;display:flex}.overview h1{font:300 40px/1 var(--display);text-transform:uppercase;margin:0}.overview>p{max-width:60ch;margin:0 0 8px}.rolls{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.roll-card{min-width:0;position:relative}.roll-open{border:1px solid var(--rule);background:var(--paper);width:100%;height:100%;color:var(--ink);text-align:left;cursor:pointer;flex-direction:column;gap:8px;padding:0 0 10px;display:flex}.roll-open:hover:not(:disabled){background:var(--paper-3)}.roll-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.roll-open:disabled{opacity:.6;cursor:default}.roll-cover{aspect-ratio:3/2;object-fit:cover;background:var(--stage-2);width:100%;display:block}.roll-name{font:400 22px/1.1 var(--display);text-transform:uppercase;overflow-wrap:break-word;min-width:0;padding:0 12px}.roll-meta{color:var(--ink-2);flex-wrap:wrap;gap:4px 12px;padding:0 12px;font-size:13px;display:flex}.roll-meta .dirty{color:var(--warn)}.roll-meta .resume{color:var(--accent)}.roll-remove{background:var(--scrim);color:var(--t-white);position:absolute;top:6px;right:6px}.roll-remove:hover{background:var(--paper-3)}.format{align-items:center;gap:8px;display:inline-flex}.format select{font:inherit;color:var(--ink);background:var(--paper-3);border:1px solid var(--rule);border-radius:0;padding:7px 8px}.format select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.straighten input{width:140px;accent-color:var(--accent)}.straighten input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.straighten .value{font-variant-numeric:tabular-nums;min-width:4ch;color:var(--ink-2)}.info{vertical-align:middle;display:inline-flex;position:relative}.info-btn{border:1px solid var(--rule);width:20px;height:20px;color:var(--muted);font:600 12px/1 var(--body);cursor:help;text-box:trim-both cap alphabetic;background:0 0;border-radius:50%;padding:0}.info-btn:hover,.info-btn:focus-visible{color:var(--ink);border-color:var(--ink-2)}.info-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.info-tip{z-index:30;background:var(--paper-3);width:250px;color:var(--ink);text-align:left;white-space:normal;box-shadow:0 0 0 1px var(--rule);opacity:0;visibility:hidden;pointer-events:none;gap:8px;padding:12px;font-size:13px;font-weight:400;line-height:1.4;transition:opacity .12s,visibility .12s;display:grid;position:fixed}.info:hover .info-tip,.info-btn:focus+.info-tip{opacity:1;visibility:visible}.info-tip svg{width:100%;height:48px;display:block}.info-tip .ln{fill:none;stroke:var(--ink-2);stroke-width:1.5px}.info-tip .ac{fill:none;stroke:var(--accent);stroke-width:2px}@media (prefers-reduced-motion:reduce){.info-tip{transition:none}}
