@font-face{font-family:Boldonse;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/boldonse-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Boldonse;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/boldonse-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacemono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacemono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/spacemono-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/spacemono-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Commissioner;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/commissioner-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Commissioner;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/commissioner-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100;font-display:swap;src:url(/fonts/bigshoulders-100-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100;font-display:swap;src:url(/fonts/bigshoulders-100-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bigshoulders-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bigshoulders-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bigshoulders-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bigshoulders-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Yuyu;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/yuyu-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Yuyu;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/yuyu-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sarina;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sarina-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sarina;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sarina-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mr Dafoe;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mrdafoe-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mr Dafoe;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/mrdafoe-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lilitaone-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lilitaone-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper: #f2f0e9;--paper-sunk: #e6e3d8;--ink: #0d0d0b;--ink-muted: #6b675c;--line: #0d0d0b;--accent: #ff3b00;--red: #e0102b;--chan-cyan: #00fff0;--chan-magenta: #ff00e5;--font-display: "Boldonse", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--border: 2px solid var(--line)}@media(prefers-color-scheme:dark){:root{--paper: #0d0d0b;--paper-sunk: #16150f;--ink: #f2f0e9;--ink-muted: #8f8b7f;--line: #f2f0e9;--accent: #ff5a2b}}.glitch{position:relative;color:var(--ink);margin:0}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper);overflow:hidden;clip-path:inset(0 0 0 0)}.glitch:before{left:2px;text-shadow:-2px 0 var(--chan-magenta)}.glitch:after{left:-2px;text-shadow:-2px 0 var(--chan-cyan)}@media(prefers-reduced-motion:no-preference){.glitch:before{animation:glitch-a 2.6s steps(2,end) infinite}.glitch:after{animation:glitch-b 3.1s steps(2,end) infinite}.glitch:hover:before{animation-duration:.4s}.glitch:hover:after{animation-duration:.5s}}@keyframes glitch-a{0%,92%,to{clip-path:inset(0 0 100% 0)}93%{clip-path:inset(10% 0 60% 0);transform:translate(-3px)}96%{clip-path:inset(40% 0 20% 0);transform:translate(3px)}}@keyframes glitch-b{0%,90%,to{clip-path:inset(100% 0 0 0)}91%{clip-path:inset(60% 0 20% 0);transform:translate(2px)}95%{clip-path:inset(20% 0 55% 0);transform:translate(-2px)}}.crt-surface{position:relative}.crt-surface:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(to bottom,rgb(0 0 0 / 12%) 0,rgb(0 0 0 / 12%) 1px,transparent 1px,transparent 3px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");mix-blend-mode:multiply}@media(prefers-reduced-motion:no-preference){.glitch-hover:hover{animation:btn-glitch .3s steps(2,end) infinite}}@keyframes btn-glitch{0%,to{text-shadow:none}50%{text-shadow:-2px 0 var(--chan-cyan),2px 0 var(--chan-magenta)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:13px}h1,h2,.display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em}.app{display:grid;grid-template-rows:auto 1fr auto;height:100%}a{color:var(--accent)}.glitch-home{color:inherit;text-decoration:none}.topbar{display:flex;align-items:center;gap:16px;padding:10px 14px;border-bottom:var(--border)}.topbar h1{font-size:22px;margin:0}.brand{display:flex;flex-direction:column;margin-right:8px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.seed-row{display:flex;align-items:center;gap:8px}.seed-row label{margin:0}.seed-field{position:relative;display:inline-flex;align-items:center}.seed-field input{padding-right:26px}.seed-dice{position:absolute;right:3px;top:50%;transform:translateY(-50%);padding:2px 4px;border:none;background:transparent;color:var(--ink-muted)}.seed-dice:hover{background:transparent;color:var(--accent)}.tagline{color:var(--ink-muted);font-size:11px;text-transform:uppercase}.main{display:grid;grid-template-columns:1fr 330px;overflow:hidden}.panel{border-left:var(--border);position:relative;overflow:hidden}.panel-scroll{height:100%;overflow-y:auto;padding:10px}.panel-title{font-size:14px;margin:0 0 8px}.preview{display:flex;align-items:center;justify-content:center;background:var(--paper-sunk);overflow:hidden;position:relative}.preview-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:24px;color:var(--ink-muted);font-size:12px;letter-spacing:.04em}.preview-empty p{margin:0}.empty-head{font-family:var(--font-display);font-size:20px;color:var(--ink);margin-bottom:6px}.empty-gap{margin-top:12px}.empty-note{margin-top:12px;color:var(--accent);line-height:1.5}.preview canvas{max-width:100%;max-height:100%;border:var(--border);background-color:var(--paper);background-image:linear-gradient(45deg,rgb(128 128 128 / 18%) 25%,transparent 25%),linear-gradient(-45deg,rgb(128 128 128 / 18%) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgb(128 128 128 / 18%) 75%),linear-gradient(-45deg,transparent 75%,rgb(128 128 128 / 18%) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.zoom-badge{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:90;padding:4px 8px;font-size:11px}.preview-toggle{position:absolute;bottom:12px;right:12px;z-index:90;padding:6px 9px}.preview-tools{position:absolute;bottom:12px;left:12px;z-index:90;display:flex;gap:6px}.preview-tools button{padding:6px 9px}button,.btn{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;white-space:nowrap;background:var(--paper);color:var(--ink);border:var(--border);padding:5px 9px;cursor:pointer}.menu-toggle{display:none;margin-left:auto;font-size:16px;padding:6px 10px}button:hover,.btn:hover{background:var(--ink);color:var(--paper)}button.active{background:var(--accent);color:#000;border-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.4}button:disabled:hover{background:var(--paper);color:var(--ink-muted);border-color:var(--line)}button.active:disabled{background:var(--paper-sunk);border-color:var(--line);color:var(--ink-muted)}input[type=text],input[type=number],select{font-family:var(--font-mono);background:var(--paper);color:var(--ink);border:var(--border);padding:4px 6px}input[type=range]{width:100%;accent-color:var(--accent)}label{display:block;margin:8px 0 2px;color:var(--ink-muted);font-size:11px}.add-filter{margin-top:8px}.effect-picker{margin:8px 0}.picker-group{margin-bottom:8px}.picker-cat{font-family:var(--font-display);font-size:9px;letter-spacing:.08em;color:var(--ink-muted);margin:6px 0 4px}.picker-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;margin-bottom:4px;text-align:left}.picker-name{font-size:12px}.picker-desc{font-size:10px;color:var(--ink-muted);line-height:1.2}.picker-item:hover .picker-desc{color:var(--paper)}.layers-hint{color:var(--ink-muted);font-size:10px;margin:8px 0}.layer-list{margin-top:4px}.layercard{border:var(--border);margin-bottom:8px}.layercard.selected{border-color:var(--accent)}.layercard.dragover-top{box-shadow:0 -3px 0 var(--accent)}.layercard.dragover-bottom{box-shadow:0 3px 0 var(--accent)}.layercard.dragging{opacity:.4}.layercard-head{display:flex;align-items:center;gap:6px;padding:6px;cursor:pointer}.grip{cursor:grab;color:var(--ink-muted)}.layercard-name{flex:1;display:flex;flex-direction:column;line-height:1.3}.layernum{font-size:10px;color:var(--ink-muted);letter-spacing:.06em}.roletag{font-style:normal;color:var(--accent);margin-left:6px}.layercard-name small{color:var(--ink-muted)}.del{padding:3px 8px;color:var(--ink-muted)}.del:hover{background:var(--red);border-color:var(--red);color:#fff}.layer-settings{padding:8px;border-top:var(--border);background:var(--paper-sunk)}.layer-desc{font-size:10px;color:var(--ink-muted);line-height:1.3;margin:0 0 8px}.mask-field{border-top:var(--border);margin-top:4px;padding-top:8px}.field{display:block;margin:0 0 8px}.field span{display:block;margin-bottom:2px;color:var(--ink-muted);font-size:11px}.field select,.field input[type=number],.field input[type=text],.field input[type=range]{width:100%}.color-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.color-head span{margin-bottom:0}.color-head input[type=color]{width:40px;height:22px;padding:0;border:var(--border);background:none;cursor:pointer}.field-check{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-check span{margin-bottom:0}.field-check input{accent-color:var(--accent)}.sourcebar{display:flex;align-items:center;gap:12px;padding:8px 14px;border-top:var(--border);overflow-x:auto}.sourcebar-label{font-family:var(--font-display);font-size:12px}.sourcebar-thumbs{display:flex;gap:8px}.samplethumb{height:144px;width:auto;border:var(--border);cursor:pointer;position:relative;z-index:6}.samplethumb:hover{outline:2px solid var(--accent)}.warn{padding:40px;text-align:center;font-family:var(--font-display);color:var(--accent)}.coffee{text-decoration:none;display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:var(--paper)}.coffee:hover{background:var(--red);border-color:var(--red);color:#fff}.aspect-lock{padding:6px}.corner-credit{position:fixed;right:10px;bottom:10px;z-index:90;padding:4px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);text-decoration:none;background:var(--paper);border:var(--border)}.corner-credit:hover{background:var(--accent);color:#000;border-color:var(--accent)}.crop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;cursor:crosshair}.crop-rect{position:absolute;border:1px solid var(--accent);cursor:move;box-shadow:0 0 0 100vmax #0000008c}.crop-thirds{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,transparent 33.33%,rgb(255 255 255 / 45%) 33.33% calc(33.33% + 1px),transparent calc(33.33% + 1px)),linear-gradient(to right,transparent 66.66%,rgb(255 255 255 / 45%) 66.66% calc(66.66% + 1px),transparent calc(66.66% + 1px)),linear-gradient(to bottom,transparent 33.33%,rgb(255 255 255 / 45%) 33.33% calc(33.33% + 1px),transparent calc(33.33% + 1px)),linear-gradient(to bottom,transparent 66.66%,rgb(255 255 255 / 45%) 66.66% calc(66.66% + 1px),transparent calc(66.66% + 1px))}.crop-handle{position:absolute;width:10px;height:10px;background:var(--accent);border:1px solid #000}.crop-handle.h-nw{top:-5px;left:-5px;cursor:nwse-resize}.crop-handle.h-n{top:-5px;left:calc(50% - 5px);cursor:ns-resize}.crop-handle.h-ne{top:-5px;right:-5px;cursor:nesw-resize}.crop-handle.h-e{top:calc(50% - 5px);right:-5px;cursor:ew-resize}.crop-handle.h-se{right:-5px;bottom:-5px;cursor:nwse-resize}.crop-handle.h-s{bottom:-5px;left:calc(50% - 5px);cursor:ns-resize}.crop-handle.h-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.crop-handle.h-w{top:calc(50% - 5px);left:-5px;cursor:ew-resize}.crop-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:11px;color:var(--accent);pointer-events:none}@media(max-width:768px){.app{display:flex;flex-direction:column;height:auto;min-height:100%}.menu-toggle{display:inline-flex}.topbar{position:relative;flex-wrap:wrap}.topbar-actions{display:none}.topbar-actions.open{display:flex;flex-direction:column;align-items:stretch;margin-left:0;gap:8px;position:absolute;top:100%;left:0;right:0;z-index:100;padding:12px 14px;background:var(--paper);border-bottom:var(--border)}.topbar-actions.open .seed-row,.topbar-actions.open select,.topbar-actions.open button,.topbar-actions.open .btn{width:100%}.topbar-actions.open .seed-field{flex:1}.topbar-actions.open .seed-field input{width:100%}.topbar-actions.open .seed-dice{width:auto}.main{display:flex;flex-direction:column;overflow:visible}.preview{min-height:0}.preview.is-empty{min-height:55vh}.preview canvas{max-height:80vh}.panel{border-left:none;border-top:var(--border);overflow:visible}.panel-scroll{height:auto;overflow:visible}.sourcebar{flex-wrap:wrap;overflow-x:hidden}.sourcebar-thumbs{flex:1 0 100%;overflow-x:auto;padding-bottom:4px}.samplethumb{height:104px}.corner-credit{display:none}}
