:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111318;--panel:#1b1f27;--text:#f2f4f8;--muted:#9aa3b2;--accent:#4f8cff;--accent-text:#fff;--danger:#ff5c5c;--border:#2b313d;--radius:12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.screen{flex-direction:column;max-width:720px;height:100%;margin:0 auto;display:flex}.panel{padding:12px 16px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));background:var(--panel)}header.panel{padding-top:max(12px, env(safe-area-inset-top))}footer.panel{padding-bottom:max(12px, env(safe-area-inset-bottom))}.title{margin:4px 0;font-size:1.3rem}.instruction{color:var(--text);margin:4px 0 0;line-height:1.4}.step-label,.muted{color:var(--muted);font-size:.9rem}.status{min-height:1.2em;margin:4px 0}.actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius);min-height:48px;color:var(--text);font:inherit;cursor:pointer;background:#262c38;flex:auto;padding:0 16px;font-size:1rem;font-weight:600}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.stage{background:#000;flex:1 1 0;min-height:200px;position:relative;overflow:hidden;container-type:size}.frame{position:absolute;inset:0}.frame.is-mirrored{transform:scaleX(-1)}.frame.is-mirrored .unmirror{display:inline-block;transform:scaleX(-1)}.preview{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.grid-overlay{width:calc(min(100cqw, 100cqh) * var(--grid-fraction,.62));aspect-ratio:1;pointer-events:none;border:2px solid #ffffffe6;border-radius:6px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);max-width:calc(100cqw - 140px);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000059}.grid-cell{border:1px solid #ffffff8c;position:relative}.cell-swatch{aspect-ratio:1;border:2px solid #ffffffd9;border-radius:50%;width:22%;position:absolute;bottom:6%;right:6%;box-shadow:0 0 4px #0009}.stage-controls{z-index:1;align-items:center;gap:8px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.pill,.pill-btn{color:#fff;font:inherit;white-space:nowrap;background:#0000008c;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:6px 12px;font-size:.85rem;display:flex}.pill-btn{cursor:pointer}.pill-btn.is-on{border-color:var(--accent);color:var(--accent)}.grid-size{width:120px;accent-color:var(--accent)}.edge-badge{color:#fff;white-space:nowrap;background:#0009;border-radius:999px;align-items:center;padding:3px 8px;font-size:.8rem;display:flex;position:absolute}.edge-badge .swatch{width:1.1em;height:1.1em}.edge-top{bottom:100%;left:50%;transform:translate(-50%,-6px)}.edge-bottom{top:100%;left:50%;transform:translate(-50%,6px)}.edge-left{top:50%;right:100%;transform:translate(-6px,-50%)}.edge-right{top:50%;left:100%;transform:translate(6px,-50%)}.tip{margin:6px 0 0}.scheme-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;font-size:.85rem;display:flex}.select{border:1px solid var(--border);color:var(--text);font:inherit;text-transform:capitalize;background:#262c38;border-radius:6px;padding:4px 6px;font-size:.85rem}.scheme-warning{color:var(--danger)}.thumb-color{color:var(--muted);text-transform:capitalize;font-size:.7rem}.camera-message{text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.thumbs{justify-content:space-between;gap:8px;display:flex}.thumb{border:2px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:4px;font-size:.8rem;display:flex}.thumb.is-current{border-color:var(--accent);color:var(--text)}.thumb.is-done{color:var(--text)}.thumb-label{text-transform:capitalize}.mini-grid{aspect-ratio:1;background:var(--border);border-radius:3px;grid-template-columns:repeat(3,1fr);gap:1px;width:36px;display:grid;overflow:hidden}.thumbs.is-mirrored .mini-grid{transform:scaleX(-1)}.mini-grid span{background:0 0;display:block}.btn-capture{flex:2 auto}.photos{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:12px;display:flex}.photo{text-align:center;color:var(--muted);margin:0;font-size:.75rem}.photo img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:72px;height:72px;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:.85rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.swatch{vertical-align:-.15em;border:1px solid #ffffff59;border-radius:3px;width:1em;height:1em;display:inline-block}.net-wrap{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;padding:12px;display:flex;overflow:auto}.net{aspect-ratio:12/9;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(12,1fr);gap:3px;width:100%;max-width:560px;display:grid}.sticker{font:inherit;color:#000000b3;cursor:pointer;border:2px solid #0009;border-radius:4px;padding:0;font-weight:700}.sticker.is-center{cursor:default}.sticker.is-unsure{border-style:dashed;border-color:#ffffffe6}.sticker.is-error{outline:3px solid var(--danger);outline-offset:-1px}.messages{height:5.6em;font-size:.9rem;overflow-y:auto}.errors{color:var(--danger);margin:0;padding-left:20px}.viewport{touch-action:none;flex:1 1 0;min-height:220px;position:relative}.viewport canvas{display:block;width:100%!important;height:100%!important}.hold-hint{color:var(--muted);margin:0 0 6px;font-size:.9rem}.move-label{letter-spacing:.02em;font-size:2.6rem;font-weight:800;line-height:1.1}.sequence{scrollbar-width:none;gap:6px;padding-bottom:6px;display:flex;overflow-x:auto}.seq-move{min-width:2.2em;color:var(--muted);text-align:center;background:#262c38;border-radius:6px;flex:none;padding:4px 8px;font-weight:600}.seq-move.is-done{opacity:.5}.seq-move.is-current{background:var(--accent);color:var(--accent-text)}
