@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/archivo-black.woff2)format("woff2")}@font-face{font-family:Archivo;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/archivo-var.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-mono-700.woff2)format("woff2")}:root{--font-display:"Archivo Black", "Archivo", ui-sans-serif, system-ui, sans-serif;--font-sans:"Archivo", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--radius-brut:10px;--color-braise:#e0402c;--color-sauge:#4ca96f;--color-cobalt:#2e52e8;--color-ocre:#f2a61b;--color-prune:#a13a96;--color-givre:#2fa6ce;--color-mousse:#7ca62f;--color-ardoise:#47617a;--paper:#fafaf0;--ink:#0d0d0d;--card:#fff;--meta:#55554d;--grid-line:#0000000a;--grain:#0000000a;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--paper:#14151b;--ink:#edebe0;--card:#1d1f26;--meta:#a3a195;--grid-line:#edebe00d;--grain:#edebe008;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--pigment:var(--color-ardoise)}[data-pigment=braise]{--pigment:var(--color-braise)}[data-pigment=sauge]{--pigment:var(--color-sauge)}[data-pigment=cobalt]{--pigment:var(--color-cobalt)}[data-pigment=ocre]{--pigment:var(--color-ocre)}[data-pigment=prune]{--pigment:var(--color-prune)}[data-pigment=givre]{--pigment:var(--color-givre)}[data-pigment=mousse]{--pigment:var(--color-mousse)}[data-pigment=ardoise]{--pigment:var(--color-ardoise)}@layer components{.nb-paper{background-color:var(--paper);background-image:repeating-linear-gradient(0deg, var(--grid-line) 0, var(--grid-line) 1px, transparent 1px, transparent 8px), repeating-linear-gradient(90deg, var(--grid-line) 0, var(--grid-line) 1px, transparent 1px, transparent 8px), radial-gradient(var(--grain) 1px, transparent 1px);background-size:8px 8px,8px 8px,2px 2px}.nb-card{border:3px solid var(--ink);border-radius:var(--radius-brut);background:var(--card);box-shadow:4px 4px 0 0 var(--ink)}.nb-press{transition:transform 80ms,box-shadow 80ms}@media (hover:hover){.nb-press:hover{box-shadow:6px 6px 0 0 var(--ink);transform:translate(-2px,-2px)}}.nb-press:active,.nb-pressed{box-shadow:2px 2px 0 0 var(--ink);transform:translate(2px,2px)}.nb-chip{border:3px solid var(--ink);border-radius:var(--radius-brut);background:var(--pigment);box-shadow:2px 2px 0 0 var(--ink);place-items:center;display:grid}.nb-badge{border:2px solid var(--ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--card);color:var(--ink);box-shadow:2px 2px 0 0 var(--ink);border-radius:6px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block;rotate:-3deg}.nb-wordmark{font-family:var(--font-display);letter-spacing:-.02em;text-shadow:4px 4px 0 var(--color-ocre)}.nb-menu-item{text-align:left;width:100%;color:var(--ink);align-items:center;gap:10px;padding:10px 14px;font-weight:700;display:flex}.nb-menu-item:hover{background:var(--ink);color:var(--card)}.nb-menu-item>.nb-menu-icon{font-family:var(--font-mono);text-align:center;flex:none;width:1.25rem;font-weight:700}@media (prefers-reduced-motion:reduce){.nb-press{transition:none}}}*{box-sizing:border-box}html,body{color:var(--ink);font-family:var(--font-sans);font-weight:500}html,body,#root{height:100%;margin:0}body{background-color:var(--paper);-webkit-font-smoothing:antialiased;font-size:15px}button{font-family:inherit}.drop-target{height:100%;position:relative}.app{flex-direction:column;height:100%;display:flex}.app-header{background:var(--card);border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.4rem;display:flex}.app-title{white-space:nowrap;align-items:center;gap:.55rem;margin:0;display:flex}.app-title-tag{flex:none}.app-title-arrow{color:var(--pigment);font-weight:700}.app-title .nb-wordmark{text-transform:uppercase;font-size:1.5rem;line-height:1.15}.header-right{align-items:center;gap:.9rem;min-width:0;display:flex}.header-file{align-items:center;gap:.7rem;min-width:0;font-size:.82rem;display:flex}.file-name{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-meta{font-family:var(--font-mono);color:var(--meta);white-space:nowrap;font-size:.75rem}.working-dot{background:var(--pigment);border:2px solid var(--ink);border-radius:50%;flex:none;width:8px;height:8px;animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.ghost-btn,.theme-switch{background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;font-family:inherit;font-weight:700}.ghost-btn{letter-spacing:.04em;text-transform:uppercase;padding:.3rem .75rem;font-size:.72rem}.theme-switch{flex:none;padding:.28rem .6rem;font-size:.9rem;line-height:1.2}.workspace{flex:1;grid-template-columns:1fr 1fr 320px;min-height:0;display:grid}.viewport-frame{min-width:0;min-height:0;margin:.7rem;position:relative;overflow:hidden}.viewport-wrap{background:var(--paper);position:absolute;inset:0}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.viewport-tag{z-index:1;pointer-events:none;position:absolute;top:.8rem;left:.9rem}.viewport-controls{inset-inline:0;pointer-events:none;flex-direction:column;gap:.5rem;padding:0 1rem;display:flex;position:absolute;bottom:.9rem}.preset-bar{pointer-events:auto;flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.preset-btn{background:var(--card);color:var(--ink);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;padding:.3rem .6rem;font-family:inherit;font-size:.7rem;font-weight:700}.viewport-hint{color:var(--meta);text-align:center;font-size:.72rem}.viewport-empty{color:var(--meta);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;pointer-events:none;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;inset:0}.panel{background:var(--card);border-left:3px solid var(--ink);scrollbar-width:thin;padding:1.2rem 1.25rem 2rem;overflow-y:auto}.panel-section{margin-bottom:1.7rem}.panel-section h2{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);align-items:center;gap:.7rem;margin:0 0 .9rem;font-size:.68rem;font-weight:700;display:flex}.panel-section h2:after{content:"";background:var(--ink);flex:1;height:2px}.control{margin-bottom:1.05rem;display:block}.control-head{justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.38rem;display:flex}.control-label{font-size:.83rem;font-weight:700}.control-value{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.78rem;font-weight:700}button.control-value{cursor:text;text-align:right;background:0 0;border:none;padding:0}button.control-value:hover{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.control-value:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.text-input,.control-value-edit{font-family:var(--font-mono);color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:6px;padding:.15rem .35rem;font-size:.78rem;font-weight:700}.control-value-edit{text-align:right;width:5.5ch}.text-input:focus,.control-value-edit:focus{outline:2px solid var(--ink);outline-offset:1px}.control-hint{color:var(--meta);margin-top:.35rem;font-size:.71rem;line-height:1.4;display:block}.control input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px}.control input[type=range]::-webkit-slider-runnable-track{background:var(--ink);height:3px}.control input[type=range]::-moz-range-track{background:var(--ink);height:3px}.control input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--pigment);border:2px solid var(--ink);width:14px;height:14px;box-shadow:2px 2px 0 0 var(--ink);border-radius:4px;margin-top:-6px}.control input[type=range]::-moz-range-thumb{background:var(--pigment);border:2px solid var(--ink);width:14px;height:14px;box-shadow:2px 2px 0 0 var(--ink);border-radius:4px}.control input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:2px 2px 0 0 var(--ink), 0 0 0 5px color-mix(in oklab, var(--pigment) 30%, transparent)}.control input[type=range]:focus-visible::-moz-range-thumb{box-shadow:2px 2px 0 0 var(--ink), 0 0 0 5px color-mix(in oklab, var(--pigment) 30%, transparent)}.control-check{cursor:pointer}.check-row{align-items:center;gap:.55rem;display:flex}.check-row input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.check-box{border:2px solid var(--ink);background:var(--card);width:16px;height:16px;box-shadow:2px 2px 0 0 var(--ink);border-radius:4px;flex:none;position:relative}.check-box:after{content:"";border:solid var(--card);opacity:0;border-width:0 2px 2px 0;width:4px;height:8px;transition:opacity .12s;position:absolute;top:1px;left:4px;transform:rotate(42deg)}.control-check:hover .check-box{border-color:color-mix(in oklab, var(--ink) 60%, var(--pigment))}.check-row input[type=checkbox]:checked+.check-box{background:var(--ink)}.check-row input[type=checkbox]:checked+.check-box:after{opacity:1}.check-row input[type=checkbox]:focus-visible+.check-box{box-shadow:2px 2px 0 0 var(--ink), 0 0 0 4px color-mix(in oklab, var(--pigment) 30%, transparent)}.segmented{gap:.3rem;margin-bottom:.7rem;display:flex}.segmented.wrap{flex-wrap:wrap}.segmented.wrap .segment{flex:30%}.segment{background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;flex:1;padding:.4rem .3rem;font-family:inherit;font-size:.72rem;font-weight:700}.segment.active{background:var(--ink);color:var(--card)}.compass{max-width:10.5rem}.compass .segment{flex:30%;padding:.34rem 0;font-size:.9rem;line-height:1}.segment-blank{box-shadow:none;cursor:default;pointer-events:none;background:0 0;border-color:#0000}.presets-form{gap:.4rem;margin-bottom:.6rem;display:flex}.presets-name{flex:1;min-width:0}.presets-name::placeholder{color:var(--meta)}.ghost-btn:disabled{opacity:.4;cursor:default}.presets-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.presets-item{background:var(--card);border:2px solid var(--ink);border-radius:6px;align-items:center;gap:.3rem;display:flex;overflow:hidden}.presets-load{min-width:0;color:var(--ink);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:.34rem .5rem;font-family:inherit;font-size:.78rem;font-weight:700;overflow:hidden}.presets-item:hover{background:color-mix(in oklab, var(--pigment) 18%, var(--card))}.presets-delete{color:var(--meta);cursor:pointer;background:0 0;border:none;flex:none;padding:.2rem .5rem;font-size:.95rem;line-height:1}.presets-delete:hover{color:var(--color-braise)}.panel-stats{border-top:3px solid var(--ink);padding-top:.9rem;font-size:.78rem}.panel-stats div{justify-content:space-between;gap:.8rem;margin-bottom:.35rem;display:flex}.panel-stats span{color:var(--meta)}.panel-stats strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700}.panel-error{color:var(--ink);background:color-mix(in oklab, var(--color-braise) 18%, var(--card));border:2px solid var(--ink);border-left-width:6px;border-radius:6px;margin:0 0 1.2rem;padding:.65rem .8rem;font-size:.78rem;line-height:1.45}.export-hint{font-family:var(--font-mono);color:var(--meta);margin:-.3rem 0 .8rem;font-size:.7rem;line-height:1.5}.export-hint.heavy{color:var(--ink);font-weight:700}.primary-btn{background:var(--ink);width:100%;color:var(--card);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.75rem;font-family:inherit;font-size:.78rem;font-weight:700}.primary-btn:disabled{opacity:.4;cursor:default;box-shadow:4px 4px 0 0 var(--ink);transform:none}.dropzone{cursor:pointer;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.dropzone-inner{text-align:center;width:min(30rem,100%);padding:2.2rem 2.4rem 2.4rem;animation:.5s ease-out both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.dropzone-eyebrow{margin:0 0 1.1rem}.dropzone-inner h2{margin:0 0 1.4rem;font-size:2rem;line-height:1.1}.dropzone-well{border:3px dashed var(--ink);border-radius:var(--radius-brut);background:color-mix(in oklab, var(--pigment) 10%, var(--card));flex-direction:column;align-items:center;gap:.7rem;padding:1.8rem 1.2rem;transition:background .2s;display:flex}.dropzone:hover .dropzone-well{background:color-mix(in oklab, var(--pigment) 22%, var(--card))}.dropzone-arrow{font-size:1.9rem;font-weight:700;line-height:1}.dropzone-cta{font-size:.88rem;font-weight:700}.dropzone-formats{gap:.5rem;margin-top:.2rem;display:flex}.dropzone-formats .nb-badge:nth-child(2){rotate:3deg}.dropzone-status,.dropzone-error{font-family:var(--font-mono);margin:1.1rem 0 0;font-size:.76rem;font-weight:700}.dropzone-status{color:var(--ink)}.dropzone-error{color:var(--ink);background:color-mix(in oklab, var(--color-braise) 18%, var(--card));border:2px solid var(--ink);border-radius:6px;padding:.5rem .7rem}.drop-overlay{background:color-mix(in oklab, var(--paper) 88%, transparent);border:3px dashed var(--ink);border-radius:var(--radius-brut);font-family:var(--font-display);z-index:40;pointer-events:none;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:absolute;inset:12px}.toast{z-index:50;cursor:pointer;max-width:330px;padding:.7rem .9rem;font-size:.78rem;line-height:1.45;position:absolute;bottom:1.1rem;right:1.1rem}.toast-warn{background:color-mix(in oklab, var(--pigment) 25%, var(--card));color:var(--ink)}.progress-overlay{background:color-mix(in oklab, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.progress-card{text-align:center;background:var(--card);padding:1.8rem 2.6rem}.progress-card p{margin:.9rem 0 0;font-size:.86rem;font-weight:700}.progress-sub{color:var(--meta);font-family:var(--font-mono);font-weight:500;margin-top:.3rem!important;font-size:.71rem!important}.spinner{border:3px solid var(--ink);border-top-color:var(--pigment);border-radius:50%;width:30px;height:30px;margin:0 auto;animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.workspace{grid-template-rows:1fr 1fr;grid-template-columns:1fr 300px}.panel{grid-area:1/2/3}}
