@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/flipsmith/assets/archivo-vietnamese-500-normal-k0drYPZA.woff2) format("woff2"),url(/flipsmith/assets/archivo-vietnamese-500-normal-7W3lD2kQ.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/flipsmith/assets/archivo-latin-ext-500-normal-RFhg4CpD.woff2) format("woff2"),url(/flipsmith/assets/archivo-latin-ext-500-normal-D7mXw3Kz.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/flipsmith/assets/archivo-latin-500-normal-CGugC8dq.woff2) format("woff2"),url(/flipsmith/assets/archivo-latin-500-normal-pkzA7jw9.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/flipsmith/assets/archivo-vietnamese-800-normal-DHDgv4cm.woff2) format("woff2"),url(/flipsmith/assets/archivo-vietnamese-800-normal-BKe5Z8rz.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/flipsmith/assets/archivo-latin-ext-800-normal-BC6piDwP.woff2) format("woff2"),url(/flipsmith/assets/archivo-latin-ext-800-normal-B9NTbsU1.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/flipsmith/assets/archivo-latin-800-normal-cB6v3kRN.woff2) format("woff2"),url(/flipsmith/assets/archivo-latin-800-normal-DZa_k145.woff) format("woff");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-display:swap;font-weight:400;src:url(/flipsmith/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2) format("woff2"),url(/flipsmith/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/flipsmith/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2) format("woff2"),url(/flipsmith/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff) format("woff");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-display:swap;font-weight:400;src:url(/flipsmith/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2) format("woff2"),url(/flipsmith/assets/space-mono-latin-400-normal-_3DlpgIW.woff) format("woff");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-display:swap;font-weight:700;src:url(/flipsmith/assets/space-mono-vietnamese-700-normal-DWQgDHuA.woff2) format("woff2"),url(/flipsmith/assets/space-mono-vietnamese-700-normal-D-KrLuLr.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/flipsmith/assets/space-mono-latin-ext-700-normal-B2s3bDs2.woff2) format("woff2"),url(/flipsmith/assets/space-mono-latin-ext-700-normal-B_E7P90g.woff) format("woff");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-display:swap;font-weight:700;src:url(/flipsmith/assets/space-mono-latin-700-normal-mWgeinG7.woff2) format("woff2"),url(/flipsmith/assets/space-mono-latin-700-normal-D7A851RN.woff) format("woff");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}:root{--color-desk: oklch(94% .012 240);--color-paper: oklch(97.8% .008 95);--color-ink: oklch(24% .015 275);--color-ink-soft: oklch(46% .02 265);--color-line: oklch(84% .015 250);--color-cyan: oklch(78% .11 215);--color-red: oklch(60% .19 25);--color-red-soft: oklch(93% .04 25);--font-display: "Archivo", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--text-base: clamp(.92rem, .88rem + .2vw, 1rem);--text-wordmark: clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem);--space-gutter: clamp(1rem, .6rem + 2vw, 2.25rem);--radius-sheet: 12px;--radius-control: 8px;--duration-fast: .13s;--ease-out: cubic-bezier(.16, 1, .3, 1);--shadow-sheet: 0 1px 2px oklch(24% .015 275 / .08), 0 14px 34px -20px oklch(24% .015 275 / .45)}*{box-sizing:border-box;margin:0}body{background:var(--color-desk);color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1080px;margin:0 auto;padding:var(--space-gutter);display:flex;flex-direction:column;gap:1.1rem}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border-bottom:3px solid var(--color-ink);padding-bottom:1.1rem}.wordmark{font-size:var(--text-wordmark);font-weight:800;letter-spacing:-.02em;line-height:1}.wordmark em{font-style:normal;color:var(--color-red)}.tagline{color:var(--color-ink-soft);font-family:var(--font-mono);font-size:.78rem;max-width:52ch;margin-top:.5rem}.masthead-actions{display:flex;gap:.5rem}.btn{font:500 .9rem var(--font-display);padding:.5rem 1rem;border:2px solid var(--color-ink);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-ink);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 0 var(--color-ink)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--red{background:var(--color-red);border-color:var(--color-red);color:var(--color-paper)}.btn--small{font-size:.78rem;padding:.3rem .7rem}.btn:focus-visible,.seg-btn:focus-visible,.swatch:focus-visible,.thumb:focus-visible{outline:3px solid var(--color-cyan);outline-offset:2px}.frame-strip{list-style:none;padding:.4rem;display:flex;gap:.5rem;overflow-x:auto;background:#d0d9e1;border-radius:var(--radius-sheet)}.thumb{position:relative;display:block;border:2px solid var(--color-line);border-radius:6px;padding:0;background:var(--color-paper);cursor:pointer;overflow:hidden}.thumb.is-active{border-color:var(--color-red);box-shadow:0 0 0 2px var(--color-red-soft)}.thumb-canvas{display:block;width:72px;height:54px;image-rendering:pixelated}.thumb-number{position:absolute;bottom:2px;right:4px;font:700 .6rem var(--font-mono);color:var(--color-ink-soft)}.frame-ops{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.frame-count{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-soft);margin-left:auto}.desk{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:var(--space-gutter);align-items:start}@media(max-width:820px){.desk{grid-template-columns:1fr}}.table{background:var(--color-paper);border:2px solid var(--color-ink);border-radius:var(--radius-sheet);box-shadow:var(--shadow-sheet);padding:clamp(.4rem,1.5vw,.9rem)}.sheet{display:block;width:100%;height:auto;image-rendering:pixelated;cursor:crosshair;touch-action:none;border-radius:4px}.tools{display:flex;flex-direction:column;gap:1.1rem;background:var(--color-paper);border:2px solid var(--color-line);border-radius:var(--radius-sheet);padding:1rem}.tool-group{display:flex;flex-direction:column;gap:.45rem}.tool-label{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-soft)}.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:.35rem}.swatch{aspect-ratio:1;border:2px solid oklch(0% 0 0 / .15);border-radius:6px;cursor:pointer;padding:0}.swatch.is-active{border-color:var(--color-ink);box-shadow:0 0 0 2px var(--color-paper),0 0 0 4px var(--color-ink)}.seg{display:flex;border:2px solid var(--color-ink);border-radius:var(--radius-control);overflow:hidden;width:fit-content}.seg-btn{font:700 .75rem var(--font-mono);padding:.4rem .6rem;border:0;background:var(--color-paper);color:var(--color-ink);cursor:pointer}.seg-btn+.seg-btn{border-left:2px solid var(--color-ink)}.seg-btn.is-active{background:var(--color-ink);color:var(--color-paper)}.tool-check{flex-direction:row;align-items:center;gap:.5rem;font-size:.82rem;color:var(--color-ink-soft)}input[type=range]{accent-color:var(--color-red)}.preview{width:100%;image-rendering:pixelated;border:2px solid var(--color-line);border-radius:6px;background:var(--color-paper)}.preview-empty{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-soft);border:2px dashed var(--color-line);border-radius:6px;padding:1.5rem .8rem;text-align:center}.preview-note{font-family:var(--font-mono);font-size:.68rem;color:var(--color-ink-soft)}@media(prefers-reduced-motion:reduce){.btn{transition:none}}
