@import "https://fonts.googleapis.com/css2?family=Archivo+Black&family=Bagel+Fat+One&family=Bungee+Inline&family=Bungee+Shade&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--ink:#0a0a0a;--ink-soft:#1a1a1a;--paper:#f5efe0;--paper-2:#eae2cd;--paper-3:#d9cfb3;--bone:#fbf7ec;--pop-yellow:#ffd400;--pop-pink:#ff2e88;--pop-cyan:#00c8ff;--pop-red:#ff3b26;--pop-green:#2bd96b;--pop-blue:#1f45ff;--pop-lilac:#c9a6ff;--tint-yellow:#ffe96b;--tint-pink:#ffb1ce;--tint-cyan:#a8e8ff;--riso-fluo-pink:#ff48b0;--riso-federal:#3d5588;--riso-sunflower:#ffb511;--riso-teal:#00838a;--riso-mint:#82d8d5;--riso-bright-red:#f15060;--riso-aqua:#5ec8e5;--riso-orchid:#ab60d0;--retro-mustard:#d9a441;--retro-burnt:#c2451f;--retro-avocado:#6b7a2b;--retro-clay:#b25738;--retro-cream:#f2ddb6;--retro-cocoa:#4a2e1f;--bg-1:var(--paper);--bg-2:var(--paper-2);--bg-3:var(--paper-3);--bg-4:var(--bone);--fg-1:var(--ink);--fg-2:#2a2a2a;--fg-3:#5c5c5c;--fg-4:#8c8c8c;--line:var(--ink);--bw-1:2px;--bw-2:3px;--bw-3:4px;--hs-1:4px 4px 0 0 var(--ink);--hs-2:6px 6px 0 0 var(--ink);--hs-3:10px 10px 0 0 var(--ink);--hs-pink:6px 6px 0 0 var(--pop-pink);--hs-yellow:6px 6px 0 0 var(--pop-yellow);--hs-cyan:6px 6px 0 0 var(--pop-cyan);--font-display:"Archivo Black", "Helvetica Neue", Impact, sans-serif;--font-groovy:"Bagel Fat One", "Bungee Inline", Impact, sans-serif;--font-retro:"Bungee Inline", "Bungee Shade", Impact, sans-serif;--font-shade:"Bungee Shade", "Bungee Inline", Impact, sans-serif;--font-sans:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--fs-mega:96px;--fs-display:56px;--fs-h1:36px;--fs-h2:24px;--fs-h3:18px;--fs-body:15px;--fs-small:13px;--fs-micro:11px;--lh-display:.92;--lh-heading:1.05;--lh-body:1.5;--tracking-tight:-.02em;--tracking-caps:.08em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:28px;--s-7:40px;--s-8:56px;--s-9:80px;--r-0:0;--ease-snap:cubic-bezier(.2, .9, .2, 1.05);--ease-thwack:cubic-bezier(.7, -.4, .4, 1.4);--dur-1:80ms;--dur-2:.14s;--dur-3:.22s;--halftone-bw:radial-gradient(var(--ink) 22%, transparent 24%) 0 0 / 6px 6px;--halftone-pink:radial-gradient(var(--pop-pink) 22%, transparent 24%) 0 0 / 6px 6px;--halftone-cyan:radial-gradient(var(--pop-cyan) 22%, transparent 24%) 0 0 / 6px 6px;--halftone-fluo:radial-gradient(var(--riso-fluo-pink) 22%, transparent 24%) 0 0 / 6px 6px;--halftone-federal:radial-gradient(var(--riso-federal) 22%, transparent 24%) 0 0 / 6px 6px;--pat-stripes-diag:repeating-linear-gradient(45deg, var(--ink) 0 6px, transparent 6px 14px);--pat-stripes-h:repeating-linear-gradient(0deg, var(--ink) 0 4px, transparent 4px 12px);--pat-checker:conic-gradient(var(--ink) 25%, transparent 0 50%, var(--ink) 0 75%, transparent 0) 0 0 / 16px 16px;--pat-grid:linear-gradient(var(--ink) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--ink) 1px, transparent 1px) 0 0 / 24px 24px;--pat-sunburst:repeating-conic-gradient(from 0deg at 50% 50%, var(--riso-sunflower) 0 8deg, transparent 8deg 16deg);--pat-wave:radial-gradient(circle at 50% 100%, var(--ink) 0 2px, transparent 3px) 0 0 / 14px 7px;--riso-shift-pink:3px 0 0 var(--riso-fluo-pink), -3px 0 0 var(--riso-teal);--riso-shift-cmy:2px 2px 0 var(--riso-fluo-pink), -2px -2px 0 var(--riso-aqua);--riso-shift-warm:2px 0 0 var(--riso-bright-red), -2px 0 0 var(--riso-sunflower)}html,body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}::selection{background:var(--pop-yellow);color:var(--ink)}h1,.h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h1);line-height:var(--lh-heading);letter-spacing:var(--tracking-tight);color:var(--ink);text-transform:uppercase;margin:0}h2,.h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);line-height:var(--lh-heading);letter-spacing:var(--tracking-tight);color:var(--ink);text-transform:uppercase;margin:0}h3,.h3{font-family:var(--font-sans);font-weight:700;font-size:var(--fs-h3);line-height:var(--lh-heading);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink);margin:0}.display{font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--tracking-tight);text-transform:uppercase;color:var(--ink)}.mega{font-family:var(--font-display);font-size:var(--fs-mega);line-height:var(--lh-display);letter-spacing:var(--tracking-tight);text-transform:uppercase;color:var(--ink)}p{margin:0 0 var(--s-4) 0;text-wrap:pretty}.eyebrow,.caps{font-family:var(--font-sans);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink);font-weight:700}.muted{color:var(--fg-3)}a{color:var(--ink);text-underline-offset:3px;background:var(--pop-yellow);transition:background var(--dur-1) var(--ease-snap);padding:0 2px;text-decoration:underline;text-decoration-thickness:2px}a:hover{background:var(--pop-pink);color:var(--paper)}code,.mono,kbd{font-family:var(--font-mono);font-weight:500}code{background:var(--ink);color:var(--paper);border-radius:0;padding:1px 6px}kbd{background:var(--paper);border:var(--bw-1) solid var(--ink);box-shadow:2px 2px 0 0 var(--ink);font-size:var(--fs-micro);padding:2px 8px;font-weight:700;display:inline-block}hr{height:var(--bw-1);background:var(--ink);margin:var(--s-7) 0;border:none}input[type=text],input[type=search],textarea,select{background:var(--bone);border:var(--bw-1) solid var(--ink);color:var(--ink);transition:box-shadow var(--dur-1) var(--ease-snap);border-radius:0;outline:none;padding:8px 10px;font-family:inherit}input:focus,textarea:focus,select:focus{box-shadow:var(--hs-1);transform:translate(-2px,-2px)}::placeholder{color:var(--fg-4)}.paper-grain{isolation:isolate;position:relative}.paper-grain:before{content:"";mix-blend-mode:multiply;opacity:.18;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");position:absolute;inset:0}.paper-grain>*{z-index:1;position:relative}.riso-stack{display:inline-block;position:relative}.riso-stack>.ink{mix-blend-mode:multiply;display:block}.riso-stack>.ink+.ink{position:absolute;inset:0}.riso-text{text-shadow:var(--riso-shift-cmy)}.riso-text--warm{text-shadow:var(--riso-shift-warm)}.riso-text--cool{text-shadow:var(--riso-shift-pink)}.retro-display{font-family:var(--font-retro);text-transform:uppercase;letter-spacing:var(--tracking-tight);font-weight:400;line-height:var(--lh-display)}.retro-shade{font-family:var(--font-shade);text-transform:uppercase;letter-spacing:var(--tracking-tight);font-weight:400;line-height:var(--lh-display)}.groovy{font-family:var(--font-groovy);letter-spacing:0;font-weight:400;line-height:.95}.blob{border-radius:62% 38% 55% 45%/48% 60% 40% 52%}.blob-2{border-radius:38% 62% 41% 59%/65% 38% 62% 35%}.blob-3{border-radius:70% 30% 60% 40%/30% 60% 40% 70%}.sticker{background:var(--bone);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);font-family:var(--font-sans);font-weight:700;font-size:var(--fs-small);text-transform:uppercase;letter-spacing:var(--tracking-caps);padding:6px 12px;display:inline-block;transform:rotate(-2deg)}.sticker--pink{background:var(--riso-fluo-pink);color:var(--bone)}.sticker--blue{background:var(--riso-federal);color:var(--bone)}.sticker--mustard{background:var(--retro-mustard);color:var(--ink)}*{box-sizing:border-box}html,body{margin:0}body{min-height:100vh}.btn{height:32px;font-family:var(--font-sans);font-weight:700;font-size:var(--fs-small);text-transform:none;background:var(--paper);color:var(--ink);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);cursor:pointer;transition:transform var(--dur-1) var(--ease-snap), box-shadow var(--dur-1) var(--ease-snap), background var(--dur-1) var(--ease-snap);border-radius:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--hs-2);transform:translate(-1px,-1px)}.btn:active{box-shadow:2px 2px 0 0 var(--ink);transform:translate(1px,1px)}.btn:focus-visible{box-shadow:var(--hs-2);outline:none}.btn-sm{height:28px;font-size:var(--fs-micro);padding:0 10px}.btn-lg{height:40px;font-size:var(--fs-body);padding:0 16px}.btn-primary{background:var(--pop-yellow);color:var(--ink)}.btn-primary:hover{background:var(--pop-yellow)}.btn-secondary{background:var(--paper);color:var(--ink)}.btn-ghost{box-shadow:none;text-transform:uppercase;height:28px;font-weight:700;font-size:var(--fs-micro);letter-spacing:var(--tracking-caps);background:0 0;border:none;padding:0 8px}.btn-ghost:hover{box-shadow:none;background:var(--paper-2);transform:none}.btn-icon{justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.btn-icon svg{width:14px;height:14px}.btn-danger{color:var(--pop-red)}.card{background:var(--paper-2);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);padding:var(--s-4);color:var(--ink);text-decoration:none;display:block}.card:hover{background:var(--paper-2);box-shadow:var(--hs-2)}.spec-card{background:var(--paper-2);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);padding:var(--s-4);color:var(--ink);transition:box-shadow var(--dur-2) var(--ease-snap), background var(--dur-1) var(--ease-snap);text-decoration:none;display:block}.spec-card:hover{background:var(--paper-2);box-shadow:var(--hs-3)}.spec-card .spec-card-id{font-family:var(--font-display);font-size:var(--fs-h3);text-transform:uppercase;letter-spacing:var(--tracking-tight);word-break:break-all;line-height:1.1}.spec-card .spec-card-meta{margin-top:var(--s-3);font-size:var(--fs-micro);color:var(--fg-3);gap:var(--s-3);flex-wrap:wrap;display:flex}.eyebrow{font-family:var(--font-sans);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink);font-weight:700}.field-label{font-family:var(--font-sans);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink);margin-bottom:4px;font-weight:700;display:block}.prompt-block{background:var(--paper-3);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-2);font-family:var(--font-mono);font-size:var(--fs-body);line-height:var(--lh-body);white-space:pre-wrap;color:var(--ink);padding:32px}.slot-row{align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:var(--bw-1) solid var(--ink);grid-template-columns:1fr auto;display:grid}.slot-row .slot-row-label{flex-direction:column;gap:4px;min-width:0;display:flex}.slot-row select{width:100%}.lock-btn{border:var(--bw-1) solid var(--ink);background:var(--paper);width:64px;height:28px;color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);cursor:pointer;box-shadow:2px 2px 0 0 var(--ink);transition:background var(--dur-1) var(--ease-snap);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.lock-btn[aria-pressed=true]{background:var(--pop-yellow)}.lock-btn:hover{background:var(--tint-yellow)}.toolbar{gap:var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.editor-drawer{margin-top:var(--s-4);background:var(--paper-2);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);padding:var(--s-4)}.tab-btn{border:var(--bw-1) solid var(--ink);background:var(--paper);height:28px;font-family:var(--font-sans);font-weight:700;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);cursor:pointer;align-items:center;padding:0 12px;display:inline-flex}.tab-btn-active{background:var(--pop-yellow)}.diff-grid{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.diff-pane{background:var(--bone);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);padding:var(--s-4);font-family:var(--font-mono);font-size:var(--fs-small);white-space:pre-wrap}.image-strip{gap:var(--s-3);padding:var(--s-3) 0;display:flex;overflow-x:auto}.image-tile{background:var(--paper-3);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);flex:none;position:relative}.image-tile img{height:96px;display:block}.image-tile .image-tile-del{border:var(--bw-1) solid var(--ink);background:var(--paper);cursor:pointer;width:22px;height:22px;font-family:var(--font-sans);padding:0;font-weight:700;line-height:1;position:absolute;top:4px;right:4px}.image-tile .image-tile-del:hover{background:var(--pop-pink);color:var(--paper)}.image-add{background:var(--paper);border:var(--bw-1) dashed var(--ink);cursor:pointer;font-family:var(--font-sans);font-weight:700;font-size:var(--fs-small);text-transform:uppercase;letter-spacing:var(--tracking-caps);flex:none;align-self:center;padding:12px 16px}.image-add:hover{background:var(--pop-yellow)}.history-card{background:var(--paper-2);border:var(--bw-1) solid var(--ink);box-shadow:var(--hs-1);padding:var(--s-4);margin-bottom:var(--s-3)}.history-card .history-head{gap:var(--s-2);margin-bottom:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.history-card .history-rendered{font-family:var(--font-mono);white-space:pre-wrap;background:var(--bone);border:var(--bw-1) solid var(--ink);padding:var(--s-3)}.star-btn{background:var(--paper);border:var(--bw-1) solid var(--ink);cursor:pointer;width:32px;height:28px;font-family:var(--font-sans);font-size:16px;font-weight:700;line-height:1}.star-btn[aria-pressed=true]{background:var(--pop-yellow)}.app-header{align-items:baseline;gap:var(--s-4);padding:var(--s-4) var(--s-5);background:var(--paper);border-bottom:var(--bw-1) solid var(--ink);display:flex}.app-header .wordmark{font-family:var(--font-groovy);color:var(--ink);background:0 0;padding:0;font-size:32px;line-height:1;text-decoration:none}.app-header .wordmark:hover{color:var(--ink);background:0 0}.app-header .tagline{font-family:var(--font-sans);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-3);font-weight:700}.app-main{padding:var(--s-6) var(--s-5);max-width:1280px;margin:0 auto}.stack-2>*+*{margin-top:var(--s-2)}.stack-3>*+*{margin-top:var(--s-3)}.stack-4>*+*{margin-top:var(--s-4)}.row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}input[type=checkbox]{accent-color:var(--ink);width:16px;height:16px}textarea{width:100%;font-family:var(--font-sans)}.mono-input{font-family:var(--font-mono)}
