.tool{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-2);padding:14px;position:relative}@media (width>=600px){.tool{padding:18px}}.track{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.track li{gap:5px;display:grid}.track span{background:var(--surface-3);border-radius:4px;height:4px;position:relative;overflow:hidden}.track span:after{content:"";background:var(--brand);transform-origin:0;transition:transform .5s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0;transform:scaleX(0)}[dir=rtl] .track span:after{transform-origin:100%}.track b{color:var(--ink-3);font-size:.78rem;font-weight:700}.tool[data-step="1"] .track li:first-child span:after,.tool[data-step="2"] .track li:nth-child(-n+2) span:after,.tool[data-step="3"] .track li span:after{transform:none}.tool[data-step="1"] .track li:first-child b,.tool[data-step="2"] .track li:nth-child(-n+2) b,.tool[data-step="3"] .track li b{color:var(--ink)}.tool-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=900px){.tool-grid{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:start;gap:20px}}.picker{z-index:5;align-content:start;gap:12px;min-width:0;display:grid;position:relative}.picker>*,.main-pane{min-width:0}.search-wrap{position:relative}.search-wrap>svg{inset-inline-start:14px;width:20px;height:20px;color:var(--ink-3);pointer-events:none;margin-top:-10px;position:absolute;top:50%}.search{padding:0 14px;border:1.5px solid var(--line-2);background:var(--surface);width:100%;height:50px;color:var(--ink);font:inherit;border-radius:12px;padding-inline-start:44px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.search::placeholder{color:var(--ink-3)}.search:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft);outline:none}.search.pulse{animation:1.2s ease-out 2 pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--brand) 45%, transparent)}to{box-shadow:0 0 0 14px #0000}}.results{inset-inline:0;z-index:20;background:var(--surface);border:1px solid var(--line);max-height:min(56vh,380px);box-shadow:var(--shadow-2);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);overflow:auto}.results button{text-align:start;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.results button:hover,.results button[aria-selected=true]{background:var(--brand-soft)}.results .r-ico{background:var(--surface-2);width:34px;height:34px;color:var(--brand);border-radius:9px;flex:none;place-items:center;display:grid}.results .r-ico svg{width:18px;height:18px}.results .r-name{font-weight:700;display:block}.results .r-spec{color:var(--ink-3);font-size:.82rem;display:block}.none{color:var(--ink-2);margin:0;font-size:.92rem}.link{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.selected{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.sel-ico{background:var(--surface);width:40px;height:40px;color:var(--brand);border-radius:10px;flex:none;place-items:center;display:grid}.sel-ico svg{width:21px;height:21px}.sel-main{flex:1;min-width:0}.sel-main b{line-height:1.25;display:block}.sel-pills{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.sel-pills .pill{background:var(--surface)}.list-h{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:2px 2px 0;font-size:.75rem;font-weight:800}.flist{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.flist li{min-width:0}.frow{border:1px solid var(--line);background:var(--surface);text-align:start;cursor:pointer;border-radius:10px;align-items:center;gap:9px;width:100%;padding:7px 9px;transition:border-color .15s,background-color .15s;display:flex}.frow:hover{border-color:var(--brand-line);background:var(--brand-soft)}.frow[aria-pressed=true],.slist .chip[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}.frow-ico{background:var(--surface-2);width:30px;height:30px;color:var(--brand);border-radius:8px;flex:none;place-items:center;display:grid}.frow-ico svg{width:17px;height:17px}.frow-txt{min-width:0}.frow-txt b{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;line-height:1.2;display:block;overflow:hidden}.frow-txt small{color:var(--ink-3);font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;display:block;overflow:hidden}.slist{flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.slist .chip{min-height:34px;font-family:var(--mono);padding:0 12px;font-size:.82rem}.slist .chip-alt{font-family:var(--font);color:var(--brand);border-style:dashed;border-color:var(--brand-line);font-size:.88rem}.all-link{margin-top:10px;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-block}.all-link:hover{text-decoration:underline}@media (width>=900px){.flist{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=899px){.flist,.slist{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;display:flex;overflow-x:auto}.flist::-webkit-scrollbar,.slist::-webkit-scrollbar{display:none}.flist li,.slist li{flex:none}.frow{width:auto;padding:6px 12px 6px 6px}.frow-txt small{display:none}.frow-ico{width:28px;height:28px}.all-link{display:none}}.custom{background:var(--surface-2);border:1.5px solid var(--brand-line);border-radius:14px;padding:14px;animation:.3s cubic-bezier(.2,.8,.2,1) openIn}@keyframes openIn{0%{opacity:0;transform:translateY(-6px)}}.custom-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{gap:5px;min-width:0;display:grid}.field label{color:var(--ink);font-size:.84rem;font-weight:700}.field input,.field select{border:1.5px solid var(--line-2);background:var(--surface);width:100%;height:46px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;border-radius:10px;padding:0 12px;font-size:1rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--ink-3);font-weight:400}.field input:hover,.field select:hover{border-color:var(--ink-3)}.field input:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft);outline:none}.field-wide,.field-btn{grid-column:1/-1;align-content:end}.field-btn .btn{width:100%;min-height:46px}.stage{--cw:200px;--ch:240px;--cy:46%;isolation:isolate;perspective:1100px;perspective-origin:50% 35%;background-color:var(--surface-2);border:2px dashed var(--line-2);border-radius:16px;height:clamp(330px,50vh,460px);transition:border-color .2s,background-color .2s;position:relative;overflow:hidden}@media (width>=900px){.main-pane .stage{height:clamp(370px,55vh,490px)}}.stage[data-state=empty]{cursor:pointer}.stage[data-state=empty]:hover{border-color:var(--brand-line);background-color:var(--brand-soft)}.stage:not([data-state=empty]){border-style:solid;border-color:var(--line)}.floor{pointer-events:none;background:repeating-linear-gradient(90deg, var(--line-2) 0 1px, transparent 1px 10px) top left / 100% 6px no-repeat, repeating-linear-gradient(90deg, var(--ink-3) 0 1px, transparent 1px 50px) top left / 100% 11px no-repeat, repeating-linear-gradient(180deg, var(--line-2) 0 1px, transparent 1px 10px) top left / 6px 100% no-repeat, repeating-linear-gradient(180deg, var(--ink-3) 0 1px, transparent 1px 50px) top left / 11px 100% no-repeat;opacity:.55;position:absolute;inset:0}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;inset:0}.stack{width:84px;height:100px;transform-style:preserve-3d;margin-bottom:12px;animation:5s ease-in-out infinite stackFloat;position:relative}.stack i{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-1);border-radius:10px;transition:transform .35s cubic-bezier(.2,.9,.3,1.3);position:absolute;inset:0}.stack i:first-child{background:var(--surface-3);transform:rotate(-10deg)translate(-12px)}.stack i:nth-child(2){background:var(--surface-3);transform:rotate(7deg)translate(12px)}.stack i:nth-child(3){color:var(--brand);box-shadow:var(--shadow-2);place-items:center;display:grid}.stack i svg{width:40px;height:40px}.stage.is-over .stack i:first-child,.stage[data-state=empty]:hover .stack i:first-child{transform:rotate(-20deg)translate(-34px)}.stage.is-over .stack i:nth-child(2),.stage[data-state=empty]:hover .stack i:nth-child(2){transform:rotate(16deg)translate(34px)}.stage.is-over .stack i:nth-child(3),.stage[data-state=empty]:hover .stack i:nth-child(3){transform:translateY(-8px)scale(1.04)}@keyframes stackFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.empty-title{letter-spacing:-.02em;margin:0;font-size:clamp(1.3rem,3vw,1.6rem);font-weight:800}.empty-btns{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.empty-btns .btn{min-height:50px;padding:0 24px}.empty-note{color:var(--ink-3);margin:0;font-size:.88rem}.empty-safe{color:var(--ok);align-items:center;gap:6px;margin:4px 0 0;font-size:.88rem;font-weight:700;display:flex}.empty-safe svg{width:16px;height:16px}.only-touch{display:none}@media (pointer:coarse),(hover:none){.only-touch{display:inline-flex}.only-mouse{display:none}}.stage:not([data-state=empty]) .empty{display:none}.veil{z-index:6;background:color-mix(in srgb, var(--brand) 10%, transparent);opacity:0;pointer-events:none;place-items:center;transition:opacity .15s;display:grid;position:absolute;inset:0}.veil span{background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-2);border-radius:999px;align-items:center;gap:10px;padding:12px 20px;font-weight:800;display:flex}.veil svg{width:20px;height:20px}.stage.is-over .veil{opacity:1}.stage[data-state=empty].is-over .veil{opacity:0}.stage[data-state=empty].is-over{border-color:var(--brand);background-color:var(--brand-soft)}.shadow{left:50%;top:calc(var(--cy) + var(--ch) / 2 + 10px);width:calc(var(--cw) * .95);height:22px;margin:-11px 0 0 calc(var(--cw) * -.475);opacity:0;pointer-events:none;background:radial-gradient(closest-side,#0f172a47,#0000);border-radius:50%;transition:opacity .4s,transform .4s;position:absolute}:root[data-theme=dark] .shadow{background:radial-gradient(closest-side,#000000b3,#0000)}.stage.has-card .shadow{opacity:1}.shadow.s-fall{animation:1.1s ease-out both shadowFall}.shadow.s-gone{transform:scale(.4);opacity:0!important}.shadow.s-idle{animation:5s ease-in-out infinite shadowIdle}@keyframes shadowFall{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes shadowIdle{50%{opacity:.75;transform:scale(.9)}}.card3d{left:calc(50% - var(--cw) / 2);top:calc(var(--cy) - var(--ch) / 2);width:var(--cw);height:var(--ch);z-index:3;transform-style:preserve-3d;transition:width .5s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1),left .5s cubic-bezier(.2,.8,.2,1),top .5s cubic-bezier(.2,.8,.2,1);position:absolute}.stage.snap .card3d{transition:none}.card3d.is-ghosted{visibility:hidden}.card-float,.card-tilt,.card-inner{transform-style:preserve-3d;position:absolute;inset:0}.card-tilt{transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .25s ease-out}.card3d.is-idle .card-float{animation:5s ease-in-out infinite idle}@keyframes idle{50%{transform:translate3d(0,-7px,10px)rotateX(4deg)rotateY(-4deg)}}.face{background:#fff;border-radius:10px;position:absolute;inset:0;overflow:hidden;box-shadow:0 14px 30px -12px #0f172a59,0 0 0 1px #0f172a14}:root[data-theme=dark] .face{box-shadow:0 18px 36px -14px #000c,0 0 0 1px #ffffff14}.face-front{background:repeating-conic-gradient(#eceff3 0 25%, #fff 0 50%) 0 0 / 14px 14px}.face-front img,.face-front canvas{object-fit:cover;width:100%;height:100%;display:block}.stage[data-state=crop] .face-front canvas{cursor:grab;touch-action:none}.stage[data-state=crop] .face-front canvas:active{cursor:grabbing}.drag-hint{color:#fff;white-space:nowrap;pointer-events:none;background:#0f172ac7;border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:700;animation:3.5s forwards hintFade;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}@keyframes hintFade{0%,70%{opacity:1}to{opacity:0}}.stamp{top:10px;color:#12805c;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:#fffffff5;border:2.5px solid #12805c;border-radius:8px;padding:5px 11px;font-size:.95rem;font-weight:800;position:absolute;inset-inline-end:10px;transform:rotate(-10deg);box-shadow:0 6px 14px -6px #00000059}.stamp.bad{color:#c8372d;border-color:#c8372d}.stamp.hit{animation:.42s cubic-bezier(.2,1.5,.4,1) both stampIn}@keyframes stampIn{0%{opacity:0;transform:scale(2.6)rotate(-30deg)}60%{opacity:1}to{opacity:1;transform:scale(1)rotate(-10deg)}}.card3d.a-fall{animation:1.1s cubic-bezier(.3,.6,.35,1) both paperFall}@keyframes paperFall{0%{opacity:0;transform:translate(-30px,-480px)rotateX(70deg)rotate(-22deg)}8%{opacity:1}30%{transform:translate3d(40px,-290px,50px)rotateX(-38deg)rotate(14deg)}52%{transform:translate3d(-26px,-120px,26px)rotateX(28deg)rotate(-8deg)}72%{transform:translate3d(10px,-28px,8px)rotateX(-12deg)rotate(3deg)}88%{transform:translateY(5px)rotateX(5deg)}to{opacity:1;transform:none}}.card3d.a-thud{animation:.35s ease-out thud}@keyframes thud{40%{transform:translate3d(0,4px,-8px)scale(.985)}}.card3d.a-shake{animation:.5s ease-in-out shake}@keyframes shake{20%,60%{transform:translate(-9px)rotate(-2deg)}40%,80%{transform:translate(9px)rotate(2deg)}}.card3d.a-pop{animation:.45s cubic-bezier(.3,1.6,.4,1) pop}@keyframes pop{40%{transform:scale(1.06)}}.card3d.a-out{animation:.4s ease-in both out}@keyframes out{to{opacity:0;transform:translate3d(0,30px,-160px)rotateX(30deg)scale(.75)}}.orbit{left:50%;top:var(--cy);z-index:4;width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute}.orbit i{border:4px solid var(--surface-3);border-top-color:var(--brand);border-radius:50%;animation:.8s linear infinite spin;position:absolute;inset:0}@keyframes spin{to{transform:rotate(360deg)}}.stage-msg{inset-inline:0;z-index:5;text-align:center;pointer-events:none;margin:0;position:absolute;bottom:14px}.stage-msg:empty{display:none}.stage-msg span{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:999px;padding:8px 16px;font-size:.92rem;font-weight:700;display:inline-block}.stage-msg.ask span{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.fx{z-index:4;pointer-events:none;position:absolute;inset:0}.fx .bit{left:50%;top:var(--cy);background:var(--c);border-radius:2px;width:8px;height:12px;margin:-6px 0 0 -4px;animation:1.1s cubic-bezier(.15,.7,.3,1) both bit;position:absolute}@keyframes bit{0%{opacity:1;transform:translate(0,0)scale(.6)}to{opacity:0;transform:translate3d(var(--x), var(--y), 0) rotate(var(--r)) scale(1)}}.below{justify-items:stretch;gap:12px;margin-top:14px;display:grid}.dl{text-align:start;justify-content:center;gap:14px;width:100%}.dl svg{stroke-width:2.4px;width:26px;height:26px}.dl-txt{gap:4px;display:grid}.dl-txt b{font-size:1.15rem;line-height:1}.dl-txt small{font-family:var(--mono);opacity:.85;font-size:.78rem;font-weight:600}.dl.pop{animation:.55s cubic-bezier(.2,1.4,.4,1) both dlIn}@keyframes dlIn{0%{opacity:0;transform:translateY(14px)scale(.96)}}.dl:hover svg{animation:.9s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(3px)}}.checks{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ck{background:var(--ok-soft);color:var(--ok);border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:.85rem;font-weight:700;display:inline-flex}.ck svg{flex:none;width:15px;height:15px}.ck-fail{background:var(--bad-soft);color:var(--bad)}.ck-note{background:var(--warn-soft);color:var(--warn)}.ck em{opacity:.85;font-style:normal;font-weight:600}.saveas{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;font-size:.9rem;display:flex}.saveas b{font-family:var(--mono);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 8px}.saveas-arrow{color:var(--ink-3)}.saveas-out{align-items:center;gap:8px;font-weight:600;display:inline-flex}.saveas select{border:1.5px solid var(--line-2);background:var(--surface);height:38px;color:var(--ink);font-family:var(--mono);cursor:pointer;border-radius:8px;padding:0 10px;font-size:.9rem;font-weight:700}.saveas select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.saveas select:disabled{cursor:default;opacity:.8}.saveas-lock{color:var(--ink-3);flex-basis:100%;font-size:.82rem}.plan{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.9rem;font-weight:600;display:flex}.plan .pill{font-family:var(--font);background:var(--brand-soft);border-color:var(--brand-line);color:var(--ink)}.zoom{align-items:center;gap:10px;display:flex}.zoom input{accent-color:var(--brand);flex:1}.zoom-btn{border:1px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.zoom-btn svg{width:18px;height:18px}.extras{gap:10px;display:grid}.extras-h{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:2px 0 0;font-size:.78rem;font-weight:800}.xcard{border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.xcard:hover{border-color:var(--ink-3)}.xcard:has(.switch:checked){border-color:var(--brand);background:var(--brand-soft)}.xico{background:var(--surface-2);width:38px;height:38px;color:var(--brand);border-radius:10px;flex:none;place-items:center;font-size:1rem;font-weight:800;display:grid}.xtxt{flex:1;gap:2px;min-width:0;display:grid}.xtxt b{font-size:.95rem}.xtxt small{color:var(--ink-3);font-size:.82rem;line-height:1.35}.switch{appearance:none;background:var(--line-2);cursor:pointer;border-radius:99px;flex:none;width:46px;height:28px;margin:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .22s cubic-bezier(.3,1.4,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch:checked{background:var(--brand)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px}[dir=rtl] .switch:checked:after{transform:translate(-18px)}[dir=rtl] .switch:after{left:auto;right:3px}.caption-fields{border:1.5px solid var(--brand-line);background:var(--surface-2);border-radius:14px;grid-template-columns:1fr 1fr;gap:12px;padding:14px;animation:.3s cubic-bezier(.2,.8,.2,1) openIn;display:grid}.caption-fields[hidden]{display:none}.xwarn{background:var(--warn-soft);border-radius:10px;grid-column:1/-1;margin:0;padding:8px 10px;font-size:.85rem}.opt-inline{align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.opt-inline input{width:18px;height:18px;accent-color:var(--brand)}.cap-preview{color:var(--ink-3);gap:6px;font-size:.8rem;font-weight:700;display:grid}.cap-preview canvas{border:1px solid var(--line-2);background:#fff;border-radius:6px;width:100%;max-width:320px}.actions{flex-wrap:wrap;gap:10px;display:flex}.actions .btn-lg{flex:220px}.note{background:var(--warn-soft);color:var(--ink);border-radius:10px;margin:0;padding:10px 12px;font-size:.9rem}.alert{background:var(--bad-soft);color:var(--ink);border-inline-start:4px solid var(--bad);border-radius:10px;margin:0;padding:12px 14px;font-size:.93rem}.alert.info{background:var(--brand-soft);border-inline-start-color:var(--brand)}.feedback{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.92rem}.feedback p{margin:0 0 8px;font-weight:700}.feedback .chips{gap:6px}.sfx-canvas{z-index:90;pointer-events:none;width:100vw;height:100vh;display:none;position:fixed;inset:0}.sfx-canvas.on{display:block}.sfx-wait{left:50%;bottom:max(22px, env(safe-area-inset-bottom));z-index:95;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);opacity:0;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:.92rem;font-weight:700;transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;transform:translate(-50%,20px)}.sfx-wait.on{opacity:1;transform:translate(-50%)}.sfx-wait i{border:2.5px solid var(--surface-3);border-top-color:var(--brand);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}
