:root{color-scheme:light dark;--ink:light-dark(#1d1d1f,#f5f5f7);--paper:light-dark(#fff,#1c1c1e);--secondary:light-dark(#626268,#b9b9c0);--surface:light-dark(#f5f5f7,#262628);--line:light-dark(#d4d4da,#505056);--accent:light-dark(#0066cc,#0071e3);--danger:light-dark(#b42318,#ffb4ab)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI','Yu Gothic UI',sans-serif}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0;background:none;min-height:44px;min-width:44px;border-radius:10px;padding:8px 12px}button:disabled{cursor:default;opacity:.45}button:not(:disabled):active{filter:brightness(.86)}a{color:light-dark(#005bb7,#81baff)}:is(button,a,input):focus-visible{outline:3px solid light-dark(#0066cc,#90c2ff);outline-offset:3px}[hidden]{display:none!important}.skip{position:fixed;z-index:20;left:12px;top:-100px;background:var(--paper);padding:12px}.skip:focus{top:8px}.top{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:16px}.brand{font-size:28px;letter-spacing:-1px;font-weight:650;white-space:nowrap}.brand span{font-size:14px;font-weight:400;letter-spacing:0;margin-left:12px;color:var(--secondary)}.top-right{display:flex;align-items:center;gap:18px}.beta{font-size:12px;color:var(--secondary)}.quiet{font-size:14px}.layout{display:grid;grid-template-columns:190px minmax(280px,1fr) 270px;min-height:calc(100dvh - 76px)}aside{background:var(--surface);padding:24px 14px;border-right:1px solid var(--line);min-width:0}.new{border:1px solid var(--line);background:var(--paper);width:100%;font-size:14px;margin-bottom:24px}.eyebrow{font-size:12px;color:var(--secondary);font-weight:600;margin:0 0 10px}.sample,.history-item{display:flex;align-items:center;text-align:left;gap:10px;width:100%;font-size:14px;line-height:1.5;padding:10px;border-radius:10px;margin:5px 0}.sample img,.history-item img{width:34px;height:40px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:5px;flex-shrink:0}.selected{background:light-dark(#dcecff,#233d58);box-shadow:inset 3px 0 var(--accent)}.history{max-height:45vh;overflow:auto}.history-item span{overflow-wrap:anywhere}.history-item small{display:block;color:var(--secondary);font-size:12px}aside .secondary{font-size:12px;margin:14px 4px 28px}main{padding:28px 32px;min-width:0;outline:none}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}h1{font-size:24px;line-height:1.4;letter-spacing:-.5px;margin:0;font-weight:650}h2{font-size:20px;line-height:1.4;margin:0 0 22px;font-weight:600}.secondary{font-size:14px;color:var(--secondary)}#subtitle{margin:14px 0 22px}.segmented{display:flex;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:3px}.segmented button{font-size:14px;border-radius:10px}.segmented [aria-pressed=true]{background:var(--paper);box-shadow:0 1px 5px #0002;font-weight:600}.stage{height:clamp(340px,55vh,660px);min-height:340px;display:flex;align-items:center;justify-content:center;position:relative;border-radius:14px;background:var(--surface);overflow:hidden;padding:20px}.stage.drag{outline:3px solid var(--accent);outline-offset:-3px}.stage canvas,.stage>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 8px 30px #0001}.empty{text-align:center;padding:20px;max-width:100%}.empty-mark{font-size:32px;color:var(--secondary);display:block;margin-bottom:18px}.empty p{font-size:14px}.primary{background:var(--accent);color:white;font-size:14px;font-weight:600;min-height:48px;border-radius:12px;padding:12px 18px}.working{position:absolute;inset:0;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.working h2{margin:22px 0 8px}.working p{font-size:14px;color:var(--secondary)}.activity{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.playbar{display:flex;align-items:center;gap:12px;padding:5px 12px 5px 5px;background:var(--surface);border:1px solid var(--line);border-radius:30px;margin-top:20px}.play{width:44px;height:44px;background:var(--paper);box-shadow:0 1px 4px #0002;border-radius:50%;flex-shrink:0}input[type=range]{accent-color:var(--accent);height:44px;min-width:0;cursor:pointer}.playbar input{flex:1;width:40px}.playbar output{font-size:12px;color:var(--secondary);min-width:34px;font-variant-numeric:tabular-nums}.playbar .quiet{font-size:12px;padding:6px}.status{font-size:14px;color:var(--secondary);min-height:24px;margin:14px 0}.error{padding:14px;background:light-dark(#fff0ed,#411f1b);border:1px solid var(--danger);border-radius:12px;font-size:14px;color:var(--danger)}.controls{border-left:1px solid var(--line);padding:28px 22px}.source{display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;margin-bottom:24px;font-size:14px}.source small{display:block;font-size:12px;color:var(--secondary);margin-top:4px;overflow-wrap:anywhere}.source img{height:44px;width:44px;object-fit:cover;border-radius:6px}.source>span:first-child{font-size:22px;width:36px;text-align:center}.field{margin:22px 0}.field label{display:flex;justify-content:space-between;gap:10px;font-size:14px}.field output{color:var(--secondary)}.field input{width:100%;margin:3px 0}.ends{display:flex;justify-content:space-between;font-size:12px;color:var(--secondary);gap:10px}.hint{font-size:12px;line-height:1.65;color:var(--secondary);margin:10px 0}.paper{padding:0;border:0;margin:24px 0}.paper legend{font-size:14px;margin-bottom:10px}.swatches{display:flex;gap:10px}.swatch{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;padding:0;display:grid;place-items:center;background:transparent}.swatch.selected{box-shadow:none;outline:2px solid var(--accent);outline-offset:2px}.swatch span{width:23px;height:23px;border-radius:50%;border:1px solid #9995}.white{background:#fff}.cream{background:#f5eedf}.gray{background:#e9e9e4}.generate,.secondary-button{width:100%}.secondary-button{border:1px solid var(--line);font-size:14px;border-radius:12px;margin-top:8px}.danger{color:var(--danger);margin-top:10px;width:100%}.destructive{background:#b42318}.stage .primary{min-width:140px}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:26px;max-width:480px;width:calc(100% - 32px);box-shadow:0 20px 80px #0004}dialog::backdrop{background:#0007}dialog p{font-size:14px;line-height:1.8}dialog .dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}dialog .dialog-heading h2{margin:5px 0 20px}dialog .primary{width:100%;margin-top:10px}dialog input[type=password]{display:block;width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:10px;margin:8px 0 20px}dialog label{font-size:14px}#save-path{width:100%;margin-top:8px}
@media(min-width:1440px){.layout{grid-template-columns:210px minmax(280px,1fr) 300px}main{padding:32px 48px}.controls{padding:32px}.stage{height:65vh}}
@media(max-width:1050px){.layout{grid-template-columns:164px minmax(250px,1fr) 244px}main{padding:24px 20px}.controls{padding:24px 18px}.brand span{margin-left:8px}.stage{padding:14px}}
@media(max-width:850px){.layout{grid-template-columns:minmax(0,1fr) 244px}aside{grid-column:1/-1;display:flex;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);border-right:0;overflow-x:auto}aside .eyebrow,aside .secondary{display:none}.new,.sample,.history-item{width:auto;flex-shrink:0;min-width:130px;margin:0}.history{display:flex;gap:8px;max-height:none;overflow:visible}.history-item img{display:none}.top{padding:0 20px}.history:empty{display:none}.sample img{width:28px;height:32px}}
@media(max-width:600px){.layout{display:block}.controls{border-left:0;border-top:1px solid var(--line);padding:24px 20px}main{padding:24px 16px}.brand span{display:none}.top{height:64px;padding:0 16px}.top-right{gap:8px}.top-right .quiet{font-size:12px}.beta{font-size:12px}.heading{gap:14px}.stage{height:390px;min-height:300px}.playbar{gap:8px}.field{margin:24px 0}.empty{padding:12px}h1{font-size:22px}.controls h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.activity{border-top-color:var(--accent);border-right-color:var(--accent)}}
@media(forced-colors:active){button,.selected{border:1px solid ButtonText}.selected{outline:2px solid Highlight}.swatch span{forced-color-adjust:none}.stage canvas{forced-color-adjust:none}}

.playbar select{font:inherit;font-size:14px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:4px}.playbar select:focus-visible{outline:3px solid var(--accent)}

.setup-note{font-size:14px;line-height:1.7;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
