:root{--stage:#eeebf1;--panel:#fff;--ink:#2b2230;--muted:#6f6577;--line:#ded7e4;--accent:#7a4e93;--accent-soft:#f1e8f6;--ok:#4e7a5a;--warn:#a05a2c;--danger:#9b2c2c;--r-sm:8px;--r-md:14px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);color:var(--ink);font-family:Figtree,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--stage);overscroll-behavior:none;height:100%;margin:0}body{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #b58acb}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.shell{background:var(--stage);flex-direction:column;height:100%;display:flex}.topbar{padding:calc(10px + var(--sat)) calc(14px + var(--sar)) 10px calc(14px + var(--sal));background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex}.topbar h1{flex:1;margin:0;font-size:20px;font-weight:700}.topbar .brand{color:#8c5a8f;margin:0;font-family:Dancing Script,cursive;font-size:30px;font-weight:600}.page{padding:16px calc(16px + var(--sar)) calc(24px + var(--sab)) calc(16px + var(--sal));-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.page-inner{max-width:1100px;margin:0 auto}.btn{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;background:#fff;min-height:44px;padding:0 16px;font-weight:600}.btn:hover{background:#faf7fc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#6a4082}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.45;cursor:default}.btn.small{min-height:36px;padding:0 12px;font-size:14px}.ibtn{background:var(--panel);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 1px 3px #2b22302e}.ibtn:disabled{opacity:.35;cursor:default}.ibtn.flat{box-shadow:none;background:0 0}.ibtn svg,.seg svg{width:22px;height:22px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1}.muted{color:var(--muted)}.err{color:var(--danger);min-height:1.2em;margin-top:8px;font-size:14px}.tag{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.lib-actions{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.card{background:var(--panel);border-radius:var(--r-md);cursor:pointer;text-align:left;border:0;flex-direction:column;padding:0;display:flex;overflow:hidden;box-shadow:0 1px 3px #2b223024}.card:hover{box-shadow:0 3px 12px #2b223033}.card .thumb{aspect-ratio:4/3;background:#f6f3f8;place-items:center;display:grid}.card .thumb canvas,.card .thumb img{max-width:100%;max-height:100%;image-rendering:pixelated}.card .body{flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.card h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;overflow:hidden}.card .meta{color:var(--muted);font-size:13px}.bar{background:#eee8f2;border-radius:99px;height:8px;overflow:hidden}.bar b{background:var(--accent);width:0;height:100%;transition:width .3s;display:block}.empty{text-align:center;color:var(--muted);padding:48px 16px}.empty h2{color:var(--ink)}.cloud-note{color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.cloud-note svg{flex:none;width:18px;height:18px}.cloud-note span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app{flex:1;grid-template-columns:1fr 340px;min-height:0;display:grid}.stage{min-height:0;position:relative;overflow:hidden}#cv{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}#cv.painting{cursor:crosshair}.tools{left:calc(12px + var(--sal));flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:12px;right:12px}.seg{background:var(--panel);border-radius:999px;padding:4px;display:flex;box-shadow:0 1px 3px #2b22302e}.seg button{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:10px 16px;font-weight:600;display:flex}.seg button[aria-pressed=true]{background:var(--accent);color:#fff}.pill{background:var(--panel);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;height:48px;padding:0 16px 0 12px;font-weight:600;display:flex;box-shadow:0 1px 3px #2b22302e}.pill[hidden]{display:none}.pill svg{color:#d32f2f;width:20px;height:20px}.resume{background:var(--panel);z-index:2;border-radius:14px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 8px 8px 14px;display:flex;position:absolute;top:76px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #2b223038}.resume .dot{background:#d32f2f;border-radius:3px;flex:none;width:14px;height:14px}.resume span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.resume .x{cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:50%;font-size:24px;line-height:1}.chip{left:50%;bottom:calc(16px + var(--sab));background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:6px 6px 6px 8px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.chip .sw{border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:grid}.chip .t{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.chip .n{opacity:.75;white-space:nowrap}.chip button{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:999px;height:36px;padding:0 14px}.chip label{white-space:nowrap;cursor:pointer;background:#ffffff24;border-radius:999px;align-items:center;gap:8px;height:36px;padding:0 12px;display:flex}.chip label input{accent-color:#c9a7da;width:18px;height:18px;margin:0}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;text-align:center;z-index:5;border-radius:10px;max-width:80%;padding:10px 14px;transition:opacity .18s,transform .18s;position:absolute;top:72px;left:50%;transform:translate(-50%,-8px)}.toast.on{opacity:1;transform:translate(-50%)}.panel{background:var(--panel);border-left:1px solid var(--line);min-height:0;padding-right:var(--sar);flex-direction:column;display:flex}.head{border-bottom:1px solid var(--line);padding:18px 20px 14px}.title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.title h2{color:#8c5a8f;text-overflow:ellipsis;white-space:nowrap;margin:0;padding-bottom:2px;font-family:Dancing Script,cursive;font-size:40px;font-weight:600;line-height:1.3;overflow:hidden}.status{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.status i{background:var(--muted);border-radius:50%;width:8px;height:8px;display:inline-block}.status.ok i{background:var(--ok)}.status.busy i{background:#c9a13b}.status.off i{background:var(--warn)}.sub{color:var(--muted);margin:6px 0 12px;font-size:14px}.nums{justify-content:space-between;margin-top:8px;font-size:14px;display:flex}.nums strong{font-size:18px}.threads{-webkit-overflow-scrolling:touch;flex:1;padding:6px 0;overflow:auto}.th{cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;width:100%;padding:9px 20px;display:grid}.th:hover{background:#faf7fc}.th[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.th .sw{border:1px solid #00000014;border-radius:10px;place-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:grid}.th .nm{min-width:0}.th .code{font-weight:700}.th .name{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.th .mini{background:#eee8f2;border-radius:9px;height:4px;margin-top:6px;overflow:hidden}.th .mini b{height:100%;display:block}.th .cnt{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.th .cnt.full{color:var(--ok);font-weight:600}.bstag{color:var(--accent);margin-top:4px;font-size:12px;display:block}@media (orientation:portrait),(max-width:820px){.app{grid-template-rows:1fr minmax(240px,38vh);grid-template-columns:1fr}.panel{border-left:0;border-top:1px solid var(--line)}.head{padding:12px 16px 10px}.title h2{font-size:34px}.sub{display:none}.threads{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.th{padding:8px 16px}}@media (max-width:600px){.tools{left:calc(6px + var(--sal));gap:5px;top:6px;right:6px}.tools .ibtn{width:40px;height:40px}.tools .ibtn svg{width:19px;height:19px}.seg{padding:3px}.seg button{justify-content:center;min-width:40px;min-height:40px;padding:8px}.seg button span{display:none}.pill{height:40px;padding:0 12px 0 10px}.pill .txt{display:none}.resume{top:60px}}dialog{border-radius:var(--r-md);width:100%;max-width:min(560px,100% - 32px);color:var(--ink);border:0;padding:0;box-shadow:0 10px 40px #00000040}dialog::backdrop{background:#2b223073}dialog{cursor:pointer;position:relative}dialog .dl{cursor:auto}.dl-x{z-index:1;width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.dl-x:hover{background:var(--accent-soft);color:var(--ink)}.dl-x svg{width:20px;height:20px}.dl>h2:first-child,.dl>h3:first-child{padding-right:36px}.dl{max-height:86vh;padding:20px 22px;overflow:auto}.dl h2{margin:0 0 6px;font-size:20px}.dl p{color:var(--muted);margin:0 0 14px;line-height:1.45}.dl .actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.dl .actions .btn{flex:1;min-width:120px}.dl label.f{margin:12px 0 4px;font-size:14px;font-weight:600;display:block}.dl input[type=text],.dl input[type=email],.dl input[type=password],.dl input[type=number],.dl select,.dl textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;padding:11px 12px;font-size:16px}.vlist{border-top:1px solid var(--line);max-height:55vh;margin:0 -22px;overflow:auto}.vitem{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 22px;display:flex}.vitem .d{flex:1;min-width:0}.vitem .d b{display:block}.vitem .d span{color:var(--muted);font-size:13px}.sw-s{border:1px solid #0000001f;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-grid}.menu .btn{text-align:left;width:100%;margin-top:8px;display:block}.notice{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.4}.gen{grid-template-columns:340px 1fr;align-items:start;gap:16px;display:grid}.gen .side{background:var(--panel);border-radius:var(--r-md);padding:16px;box-shadow:0 1px 3px #2b223024}.gen .side h3{margin:16px 0 4px;font-size:15px}.gen .side h3:first-child{margin-top:0}.gen label.f{margin:10px 0 4px;font-size:14px;font-weight:600;display:block}.gen input[type=number],.gen select,.gen input[type=range]{width:100%;font:inherit;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;padding:8px 10px}.gen input[type=range]{padding:0}.gen .check{align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.gen .preview{background:var(--panel);border-radius:var(--r-md);min-height:300px;padding:12px;box-shadow:0 1px 3px #2b223024}.gen .preview canvas{max-width:100%;image-rendering:pixelated;border-radius:6px}.gen .dropzone{border:2px dashed var(--line);border-radius:var(--r-md);text-align:center;color:var(--muted);cursor:pointer;background:#fff;padding:32px 16px}.gen .dropzone.over{border-color:var(--accent);background:var(--accent-soft)}@media (max-width:820px){.gen{grid-template-columns:1fr}}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0 16px;display:grid}.stat{background:var(--accent-soft);border-radius:var(--r-sm);padding:10px 12px}.stat b{font-size:22px;display:block}.stat span{color:var(--muted);font-size:13px}.spark{align-items:flex-end;gap:3px;height:70px;margin:8px 0;display:flex}.spark i{background:var(--accent);opacity:.85;border-radius:3px 3px 0 0;flex:1;min-height:2px}.list{background:var(--panel);border-radius:var(--r-md);overflow:hidden;box-shadow:0 1px 3px #2b223024}.list .li{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.list .li:last-child{border-bottom:0}.banner{border-radius:var(--r-sm);background:#fff6e5;border:1px solid #f0dca6;margin-bottom:14px;padding:10px 14px;font-size:14px}.footer-note{color:var(--muted);text-align:center;margin-top:22px;font-size:12px}.social{flex-direction:column;gap:10px;margin:6px 0 4px;display:flex}.btn-social{border:1px solid var(--line);color:#1f2937;cursor:pointer;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;font-size:16px;font-weight:600;display:flex}.btn-social:hover{filter:brightness(.96)}.btn-social:disabled{opacity:.55;cursor:default}.btn-social.apple{color:#000}.o{color:var(--muted);align-items:center;gap:12px;margin:14px 0 12px;font-size:12px;display:flex}.o:before,.o:after{content:"";background:var(--line);flex:1;height:1px}.topbar .brand{white-space:nowrap}.btn svg{flex:none;width:18px;height:18px}.btn.small{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.banner{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.banner .btn{margin-left:0!important}@media (max-width:520px){.topbar{padding-left:calc(10px + var(--sal));padding-right:calc(10px + var(--sar));gap:6px}.topbar .brand{font-size:24px}.topbar .btn.small{min-height:40px;padding:0 10px;font-size:14px}}.lib-actions[hidden]{display:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,code{-webkit-user-select:text;user-select:text}.banner.ok{cursor:pointer;background:#eaf6ec;border-color:#b9dfc0}.plan-lista{margin:6px 0 10px;padding-left:20px}.plan-lista li{margin-bottom:4px}.gen .pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gen .adv{margin-top:10px}.gen .adv summary{cursor:pointer;padding:6px 0;font-size:14px;font-weight:600}.gen .zones{background:var(--panel);border-radius:var(--r-md);flex-direction:column;min-height:0;padding:12px;display:flex;box-shadow:0 1px 3px #2b223024}.gen .zones-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.gen .zones-bar h3{flex:1;margin:0;font-size:15px}.gen .zones-bar .seg button{min-height:38px;padding:6px 12px}.gen .dot{border-radius:50%;width:12px;height:12px;display:inline-block}.gen .zones-img{flex:1;justify-content:center;align-items:flex-start;min-height:0;display:flex;overflow:auto}.gen .zones-img canvas:first-child{max-width:100%;height:auto}.gen .zone-legend{flex-wrap:wrap;gap:6px 14px;margin:8px 0 4px;font-size:13px;display:flex}.gen .zone-legend i{vertical-align:-2px;border-radius:4px;width:14px;height:14px;margin-right:6px;display:inline-block}.gen .zones-tools{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.gen .preview{flex-direction:column;min-height:0;display:flex}.gen .preview-img{flex:1;justify-content:center;align-items:flex-start;min-height:240px;display:flex;overflow:auto}.gen .stats-line{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.gen .stats-line b{color:var(--ink)}@media (min-width:1000px){.gen-page{flex-direction:column;display:flex;overflow:hidden}.gen-inner{flex:1;width:100%;max-width:none;min-height:0}.gen{grid-template-columns:290px minmax(0,1fr) minmax(0,1fr);align-items:stretch;height:100%}.gen .side{min-height:0;overflow:auto}.gen .preview canvas{max-height:100%}.gen .zones-img canvas:first-child{width:auto;max-height:100%}.gen .zones-img>div{max-height:100%}}@media (min-width:821px) and (max-width:999px){.gen{grid-template-columns:300px 1fr}.gen .preview{grid-column:1/-1}}.gen.two{grid-template-columns:340px minmax(0,1fr)}.gen textarea{font:inherit}.gen .tpick{margin-top:10px}.gen .swatches{flex-wrap:wrap;gap:6px;display:flex}.gen .sw-pick{cursor:pointer;color:#fff;text-shadow:0 0 2px #000000b3;border:1px solid #0000002e;border-radius:7px;place-items:center;width:26px;height:26px;padding:0;font-weight:700;display:inline-grid;position:relative}.gen .sw-pick.on{outline:3px solid var(--accent);outline-offset:1px}.gen .sw-pick.other input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}@media (max-width:820px){.gen.two{grid-template-columns:1fr}}.gen .zones-bar h3{flex-basis:100%}.gen .zones-bar .seg button{white-space:nowrap;padding:6px 10px}.gen .rec{background:var(--accent-soft);border-radius:10px;margin:4px 0 8px;padding:8px 10px;font-size:13px;line-height:1.4}.gen .layers{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.gen .layers li{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:2px;padding:2px;display:flex}.gen .layers li.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.gen .layer-pick{cursor:pointer;text-align:left;min-width:0;font:inherit;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:6px 8px;display:flex}.gen .layer-pick .tag{background:var(--accent);color:#fff;border-radius:5px;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid}.gen .layer-pick .txt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gen .ibtn-s{cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:12px}.gen .ibtn-s:hover{background:var(--accent-soft);color:var(--ink)}.gen .layer-edit{border:1px solid var(--line);background:#fbf9fd;border-radius:10px;margin-top:10px;padding:10px}.gen .place{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.gen .place .btn{padding:0 6px}.gen .brush-ring{pointer-events:none;border:1.5px solid #fff;border-radius:50%;display:none;position:absolute;box-shadow:0 0 0 1px #0009}.seg.sm{box-shadow:none;border:1px solid var(--line);padding:2px}.seg.sm button{justify-content:center;gap:4px;min-height:28px;padding:3px 10px;font-size:13px}.gen .seg.sm{width:-moz-fit-content;width:fit-content;max-width:100%}.hint{vertical-align:middle;margin-left:4px;display:inline-flex}.hint-btn{border:1px solid var(--muted);width:16px;height:16px;color:var(--muted);cursor:help;background:#fff;border-radius:50%;padding:0;font:italic 700 11px/14px Georgia,serif}.hint-btn:hover,.hint-btn:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff}.hint-pop{z-index:60;color:#fff;pointer-events:none;background:#2b2230;border-radius:8px;width:256px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.45;position:fixed;box-shadow:0 4px 16px #0000004d}.gen .check-row{align-items:center;gap:2px;display:flex}.gen .check-row .check{flex:0 auto;margin:6px 0}.gen .rec{flex-wrap:wrap;align-items:center;gap:2px;font-weight:600;display:flex}.gen .sizeline{flex-wrap:wrap;align-items:center;gap:2px 0;display:flex}.backbar{margin-bottom:8px}.zoomwrap{flex:1;min-width:0;min-height:0;display:flex;position:relative}.zoombox{touch-action:none;flex:1;min-width:0;min-height:0;display:flex;overflow:auto}.zoomcontent{flex:none;margin:auto}.zoom-ctl{z-index:3;background:#ffffffeb;border-radius:8px;gap:2px;padding:2px;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 1px 4px #2b223040}.zoom-ctl button{cursor:pointer;background:0 0;border:0;border-radius:6px;min-width:30px;height:28px;padding:0 6px;font-size:14px;font-weight:700}.zoom-ctl button:hover{background:var(--accent-soft)}.gen .zoombox canvas,.gen .zoombox img{max-width:none;max-height:none;display:block}.gen .fontsel{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.gen .fontsel select{width:100%}.gen .fontprev{white-space:nowrap;max-width:100%;padding:0 4px;font-size:26px;line-height:1.7;overflow:hidden}.gen .lettersize{gap:6px;display:flex}.gen .lettersize input{border:1px solid var(--line);border-radius:var(--r-sm);width:70px;font:inherit;padding:6px 8px}.gen .lettersize select{flex:1;width:auto}.gen .simopts{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;display:flex}.gen .sw-pick.plus{color:var(--ink);text-shadow:none;background:#fff;font-size:16px}.gen .thr-more{border:1px solid var(--line);background:#fbf9fd;border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:8px;display:flex}.gen .thr-more input[type=text]{border:1px solid var(--line);width:100%;font:inherit;border-radius:6px;padding:6px 8px}.gen .thr-free{align-items:center;gap:8px;font-size:13px;display:flex}.gen .thr-free input[type=color]{border:1px solid var(--line);background:#fff;border-radius:6px;width:36px;height:28px;padding:0}.gen .sizeline{margin:4px 0 0}dialog .dl .actions{justify-content:flex-end;gap:8px;display:flex}.gen .preview-img .zoomwrap,.gen .zones-img .zoomwrap{align-self:stretch}.th.th-bs{grid-template-columns:26px 1fr auto;padding:4px 20px 8px 40px}.th.th-bs .sw{width:26px;height:26px;color:var(--ink);background:#fff;border-radius:7px}.th.th-bs .sw svg{width:16px;height:16px}.th.th-bs .code{font-size:14px;font-weight:600}.chip .kindtag{background:#fff3;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.gen .fontsel{display:block}.gen .fontbtn{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:46px;padding:2px 12px;font-size:22px;line-height:1.7;display:flex}.gen .fontbtn .car{color:var(--muted);font-family:system-ui,sans-serif;font-size:13px}.fontpop{z-index:70;border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;gap:6px;padding:6px;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 28px #2b223047}.fontpop input{border:1px solid var(--line);font:inherit;border-radius:6px;padding:6px 8px;font-size:14px}.fontpop ul{margin:0;padding:0;list-style:none;overflow:auto}.fontpop li button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;width:100%;padding:2px 10px;font-size:22px;line-height:1.6}.fontpop li button:hover{background:var(--accent-soft)}.fontpop li button.on{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.fontpop li.grp{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 10px 2px;font:600 11px system-ui,sans-serif}.gen .combo{display:flex;position:relative}.gen .combo input{border-top-right-radius:0;border-bottom-right-radius:0}.gen .combo-btn{border:1px solid var(--line);border-radius:0 var(--r-sm) var(--r-sm) 0;cursor:pointer;width:26px;color:var(--muted);background:#fff;border-left:0;font-size:11px}.combo-list{z-index:70;border:1px solid var(--line);background:#fff;border-radius:8px;max-height:260px;margin:0;padding:4px;list-style:none;position:fixed;overflow:auto;box-shadow:0 6px 20px #2b223040}.combo-list button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;border-radius:5px;padding:5px 10px}.combo-list button:hover,.combo-list button.on{background:var(--accent-soft)}.zoombox.pannable{cursor:grab}.zoombox.pannable:active{cursor:grabbing}.gen .seg button svg{width:16px;height:16px}.gen .lvl{align-items:center;gap:8px;font-size:12px;display:flex}.gen .lvl input{flex:1}.viewmenu{z-index:20;background:var(--panel);border-radius:12px;flex-direction:column;gap:2px;width:270px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 28px #2b223047}.viewmenu button{text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.viewmenu button b{font-size:14px}.viewmenu button span{color:var(--muted);font-size:12px}.viewmenu button:hover{background:#faf7fc}.viewmenu button.on{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.chip .kindseg{background:#ffffff24;border-radius:999px;padding:2px;display:flex}.chip .kindseg button{background:0 0;align-items:center;gap:5px;height:32px;padding:0 10px;display:flex}.chip .kindseg button[aria-pressed=true]{color:var(--ink);background:#fff}.chip .kindseg svg,.th .kinds svg{width:14px;height:14px}.th .kinds{gap:6px;margin-top:3px;display:flex}.th .kinds .k{color:var(--muted);background:#f4f0f7;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;display:inline-flex}.th.acabado .sw{opacity:.55}.th.acabado .code:after{content:" ✓";color:var(--ok)}.donehead{text-align:left;width:100%;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-top:1px solid #eee8f2;padding:12px 20px;font-size:13px;font-weight:600;display:block}.donehead:hover{background:#faf7fc}.updbar{top:calc(10px + env(safe-area-inset-top));z-index:1000;color:#fff;white-space:nowrap;background:#2b2230;border-radius:999px;align-items:center;gap:12px;padding:6px 6px 6px 18px;font-size:14px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #2b223040}.chip .fold{background:0 0;place-items:center;width:36px;padding:0;display:grid}.chip .fold svg,.chip.mini .up svg{width:20px;height:20px}.chip.mini{font:inherit;cursor:pointer;border:0;gap:8px;padding:5px 12px 5px 5px}.chip.mini .up{opacity:.8;place-items:center;display:grid}.bsed{z-index:50;background:var(--stage);flex-direction:column;display:flex;position:fixed;inset:0}.bsed-top{padding:calc(10px + var(--sat)) calc(14px + var(--sar)) 10px calc(14px + var(--sal));background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.bsed-top h2{margin:0;font-size:18px}.bsed-tools{padding:10px calc(14px + var(--sar)) 0 calc(14px + var(--sal));flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.bsed-tools .tpick{flex:320px;min-width:0}.bsed-tools .swatches{flex-wrap:wrap;gap:6px;max-height:76px;display:flex;overflow:auto}.bsed-dim{align-items:center;gap:8px;min-height:44px;font-size:14px;display:flex}.bsed-help{margin:6px calc(14px + var(--sar)) 8px calc(14px + var(--sal));color:var(--muted);font-size:13px}.bsed-stage{min-height:0;margin:0 calc(10px + var(--sar)) calc(10px + var(--sab)) calc(10px + var(--sal));border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--line);flex:1;position:relative;overflow:hidden}.bsed-stage canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.bsed-zoom{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:10px;right:10px}@media (max-width:700px){.bsed-help,.bsed-tools .seg button span{display:none}}:root{--plum:#3b2449;--cream:#f7f3ea;--serif:"Fraunces", Georgia, "Times New Roman", serif}.topbar{color:#fff;background:linear-gradient(#3b2449,#46295a);border-bottom:0}.brandmark{color:inherit;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brandmark img{border-radius:9px;flex:none;box-shadow:0 0 0 1px #ffffff2e}.topbar .brandmark .brand{color:#f4e7f9;font-size:31px;line-height:1}.brandmark .tagline{letter-spacing:.18em;text-transform:uppercase;color:#ffffff9e;white-space:nowrap;padding-top:6px;font-size:11px;font-weight:600}.navbtn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff3d;border-radius:999px;flex:none;align-items:center;gap:7px;height:40px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.navbtn svg{width:18px;height:18px}.navbtn:hover,.navbtn[aria-pressed=true]{background:#ffffff24}.navbtn.solid{color:var(--plum);background:#fff;border-color:#fff}.navbtn.solid:hover{background:#f4e7f9}.home .page-inner{flex-direction:column;min-height:100%;display:flex}.hero{background-color:var(--cream);background-image:radial-gradient(circle at 1.5px 1.5px,#7a604629 1.1px,#0000 1.6px),linear-gradient(135deg,#ffffffb3,#fff0 60%);background-size:10px 10px,100% 100%;border:1px solid #eae1cf;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:36px;margin:4px 0 22px;padding:34px 44px;display:grid;box-shadow:0 1px 2px #2b22300d,0 12px 32px #3b244914}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:700}.hero h2{font-family:var(--serif);color:var(--plum);overflow-wrap:anywhere;margin:8px 0 10px;font-size:clamp(26px,3.3vw,38px);font-weight:600;line-height:1.12}.hero-meta{color:var(--muted);max-width:50ch;margin:0;font-size:15.5px;line-height:1.5}.hero-bar{max-width:440px;color:var(--plum);align-items:center;gap:12px;margin:16px 0 20px;font-weight:700;display:flex}.hero-bar .bar{background:#7a4e9324;flex:1;height:10px}.btn.big{border-radius:999px;min-height:50px;padding:0 28px;font-size:16px;box-shadow:0 8px 20px #7a4e9352}.hoop{aspect-ratio:1;background:linear-gradient(145deg,#e8c595,#b98450 42%,#ddb07a 68%,#9e6c3f);border-radius:50%;width:clamp(200px,26vw,290px);margin:16px 8px 4px;padding:13px;position:relative;box-shadow:inset 0 0 0 2px #6e46238c,0 14px 30px #462d1947}.hoop canvas{border-radius:50%;width:100%;height:100%;display:block}.hoop:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:13px;box-shadow:inset 0 3px 10px #00000047}.hoop:before{content:"";background:linear-gradient(#d8d6dc,#8f8b96);border-radius:6px;width:30px;height:24px;position:absolute;top:-12px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #00000040}.callout{border:1px solid var(--line);background:#fff;border-left:4px solid #d9a441;border-radius:14px;align-items:center;gap:14px;margin:0 0 24px;padding:14px 16px;display:flex}.callout .ico{color:#a06a12;background:#fbf1dc;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:grid}.callout .ico svg{width:22px;height:22px}.callout b{font-size:15px}.callout p{color:var(--muted);margin:2px 0 0;font-size:14px;line-height:1.4}.home .cloud-note{margin:0 0 20px}.home-sec{margin:0 0 30px}.home-sec>h3{font-family:var(--serif);color:var(--plum);align-items:center;gap:10px;margin:0 0 14px;font-size:23px;font-weight:600;display:flex}.home-sec>h3 .count{color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 10px;font-family:Figtree,sans-serif;font-size:13px;font-weight:700}.starts{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;display:grid}.start{text-align:left;cursor:pointer;background:#fff;border:1px solid #e7e0ec;border-radius:16px;align-items:flex-start;gap:14px;padding:16px;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.start:hover{border-color:#cdb6da;transform:translateY(-1px);box-shadow:0 8px 22px #3b24491a}.start:disabled{opacity:.6;cursor:default;transform:none}.start .ico{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:13px;flex:none;place-items:center;display:grid}.start:first-child .ico{background:var(--accent);color:#fff}.start .ico svg{width:24px;height:24px}.start .txt b{font-size:16px;display:block}.start .txt small{color:var(--muted);margin-top:3px;font-size:13.5px;line-height:1.4;display:block}.home .cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.home .card{border:1px solid #e7e0ec;border-radius:16px;transition:box-shadow .15s,transform .15s;box-shadow:0 1px 2px #2b22300d}.home .card:hover{transform:translateY(-2px);box-shadow:0 10px 26px #3b244924}.home .card .thumb{background:var(--cream);position:relative;overflow:hidden}.home .card .thumb img{object-fit:cover;image-rendering:auto;width:100%;max-width:none;height:100%;max-height:none}.card .state{color:var(--muted);background:#fffffff0;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:10px;left:10px;box-shadow:0 1px 3px #0000001f}.card .state.going{color:var(--accent)}.card .state.done{color:var(--ok);background:#eef7f0}.card .pct{color:var(--plum);font-weight:700}.ibtn.flat.del{width:36px;height:36px;color:var(--muted)}.ibtn.flat.del svg{width:18px;height:18px}.ibtn.flat.del:hover{color:var(--danger);background:#fbeded}.appfoot{border-top:1px solid var(--line);text-align:center;color:var(--muted);margin-top:auto;padding:18px 0 4px;font-size:12.5px}.appfoot p{margin:4px 0}.appfoot a{color:inherit;text-decoration:none}.appfoot a:hover{text-decoration:underline}@media (max-width:760px){.hero{border-radius:16px;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:0 0 14px;padding:14px 16px}.hero .hoop{width:92px;margin:8px 2px 0;padding:6px}.hero .hoop:after,.hero .hoop-wait{inset:6px}.hero .hoop:before{border-radius:4px;width:18px;height:13px;top:-7px}.hero.welcome{grid-template-columns:1fr}.hero.welcome .hoop{display:none}.eyebrow{font-size:10.5px}.hero h2{margin:4px 0;font-size:20px}.hero-meta{font-size:13.5px;line-height:1.4}.hero-bar{gap:8px;margin:8px 0 10px;font-size:14px}.hero-bar .bar{height:7px}.btn.big{min-height:42px;padding:0 20px;font-size:15px;box-shadow:0 4px 12px #7a4e9347}.hero .sk{height:11px;margin:6px 0}.hero .sk.big{height:22px}.callout{flex-wrap:wrap;gap:10px;padding:10px 12px}.callout .ico{width:32px;height:32px}.callout .ico svg{width:18px;height:18px}.callout b{font-size:14px}.callout p{font-size:13px}.callout .btn{width:100%;min-height:38px}.home .cloud-note{margin:0 0 16px}}@media (max-width:640px){.brandmark .tagline,.navbtn:not(.solid) span{display:none}.navbtn:not(.solid){justify-content:center;width:40px;min-width:40px;padding:0}}.home .card h3{font-family:var(--serif);color:var(--plum);font-size:19px;font-weight:600}@media (max-width:820px){.gen,.gen.two{grid-template-columns:minmax(0,1fr)}.gen>*{min-width:0}.gen .seg{scrollbar-width:none;max-width:100%;overflow-x:auto}.gen .seg::-webkit-scrollbar{display:none}.gen .seg button{white-space:nowrap;flex:none}.gen .zones-tools>*,.gen .row>*{min-width:0}}.hoop canvas{opacity:0;transition:opacity .45s;position:relative}.hoop.ready canvas{opacity:1}.hoop-wait{background-color:#f4efe4;background-image:radial-gradient(circle at 1.5px 1.5px,#7a604638 1.1px,#0000 1.6px);background-size:9px 9px;border-radius:50%;position:absolute;inset:13px;overflow:hidden}.hoop-wait:after{content:"";background:linear-gradient(105deg,#0000 30%,#ffffffbf 50%,#0000 70%);animation:1.4s ease-in-out infinite brillo;position:absolute;inset:0;transform:translate(-100%)}.hoop.ready .hoop-wait{display:none}@keyframes brillo{to{transform:translate(100%)}}.sk{background:linear-gradient(90deg,#ece5da,#f6f1e9,#ece5da) 0 0/200% 100%;border-radius:7px;height:14px;margin:10px 0;animation:1.4s linear infinite sk;display:block}.sk.big{height:34px;margin:14px 0}@keyframes sk{to{background-position:-200% 0}}.tools{top:calc(12px + var(--sat));right:calc(12px + var(--sar))}.resume{top:calc(76px + var(--sat))}.toast{top:calc(72px + var(--sat))}.panel{padding-top:var(--sat)}.threads{padding-bottom:var(--sab)}@media (orientation:portrait),(max-width:820px){.panel{padding-top:0}}@media (max-width:600px){.tools{top:calc(6px + var(--sat));right:calc(6px + var(--sar))}.resume{top:calc(60px + var(--sat))}}
