:root{--bg:#f6f8fb;--surface:#fff;--border:#e3e8ef;--text:#16202f;--muted:#5d6b82;--brand:#2563eb;--brand-dark:#1d4ed8;--brand-soft:#eef4ff;--ok:#10893e;--err:#d64545;--radius:12px;--shadow:0 1px 2px #10202f0f, 0 8px 24px #10202f0f;--max:1200px}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3{letter-spacing:-.015em;margin:0 0 .5em;line-height:1.25}h1{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.3rem)}h2{margin-top:1.6em;font-size:clamp(1.25rem,1.1rem + .7vw,1.5rem)}h3{margin-top:1.4em;font-size:1.05rem}p{margin:0 0 1em}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}.site-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;position:sticky;top:0}.site-header .wrap{flex-wrap:wrap;align-items:center;gap:16px;min-height:60px;display:flex}.logo{color:var(--text);align-items:center;gap:9px;font-size:1.1rem;font-weight:700;display:flex}.logo:hover{text-decoration:none}.logo img{width:28px;height:28px;display:block}.logo span em{color:var(--brand);font-style:normal}.nav{gap:18px;margin-left:auto;font-size:.93rem;display:flex}.nav a{color:var(--muted);font-weight:500}.nav a:hover{color:var(--brand)}.site-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);margin-top:48px;padding:36px 0 24px;font-size:.9rem}.footer-cols{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px 20px;margin-bottom:30px;display:grid}.footer-col h3{text-transform:uppercase;letter-spacing:.07em;color:var(--text);margin:0 0 10px;font-size:.78rem}.footer-col ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.footer-col a{color:var(--muted);font-size:.87rem}.footer-col a:hover{color:var(--brand)}.footer-bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:20px;display:flex}.footer-bottom nav{flex-wrap:wrap;gap:16px;display:flex}@media (width<=560px){.footer-cols{grid-template-columns:repeat(2,1fr)}}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.site-footer nav{flex-wrap:wrap;gap:16px;display:flex}.page{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 0;display:grid}@media (width>=1080px){.page.has-rail{grid-template-columns:minmax(0,1fr) 300px;align-items:start}}.rail{display:none}@media (width>=1080px){.rail{display:block;position:sticky;top:84px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}@media (width<=560px){.card{padding:16px}}.lede{color:var(--muted);max-width:62ch;font-size:1.05rem}.prose{max-width:70ch}.prose ol,.prose ul{margin:0 0 1em;padding-left:1.2em}.prose li{margin-bottom:.4em}.badges{flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.badges li{color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:5px 11px;font-size:.8rem;font-weight:600}.ad{color:#9aa7ba;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius);background:repeating-linear-gradient(45deg,#fbfcfe,#fbfcfe 10px,#f4f6fa 10px 20px);border:1px dashed #d3dbe6;justify-content:center;align-items:center;font-size:.75rem;display:flex;overflow:hidden}.ad-leaderboard{min-height:90px;margin:16px 0 0}.ad-inline{min-height:250px;margin:28px 0}.ad-rail{min-height:600px}.ad-footer{min-height:250px;margin:28px 0 0}.drop{border-radius:var(--radius);text-align:center;cursor:pointer;background:#fbfcfe;border:2px dashed #c6d2e3;padding:34px 20px;transition:border-color .15s,background .15s}.drop:hover,.drop.over{border-color:var(--brand);background:var(--brand-soft)}.drop strong{margin-bottom:4px;font-size:1.05rem;display:block}.drop small{color:var(--muted)}.drop svg{width:38px;height:38px;color:var(--brand);margin-bottom:8px}.options{flex-wrap:wrap;gap:16px 22px;margin:20px 0 0;display:flex}.opt{flex-direction:column;flex:150px;gap:5px;min-width:150px;display:flex}.opt label{color:var(--muted);font-size:.82rem;font-weight:600}.opt select,.opt input[type=number]{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:9px 10px}.opt input[type=range]{width:100%;accent-color:var(--brand)}.opt .val{font-variant-numeric:tabular-nums;color:var(--text);font-size:.85rem;font-weight:600}.actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.btn{font:inherit;cursor:pointer;background:var(--brand);color:#fff;border:1px solid #0000;border-radius:9px;padding:11px 20px;font-weight:600}.btn:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text);border-color:var(--border);background:#fff}.btn-ghost:hover:not(:disabled){background:#f2f5fa}.btn-sm{border-radius:7px;padding:6px 12px;font-size:.85rem}.files{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.file{border:1px solid var(--border);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.file .thumb{object-fit:cover;background:#eef1f6;border-radius:7px;flex:none;width:44px;height:44px}.file .meta{flex:1;min-width:0}.file .name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.file .sub{color:var(--muted);font-size:.8rem}.file .sub .down{color:var(--ok);font-weight:600}.file .sub .bad{color:var(--err);font-weight:600}.file .act{flex:none;align-items:center;gap:6px;display:flex}.note{color:var(--muted);margin-top:14px;font-size:.85rem}.grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);height:100%;padding:16px;transition:border-color .15s,transform .15s,box-shadow .15s;display:block}.tool-card:hover{border-color:var(--brand);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.tool-card b{margin-bottom:3px;font-size:.98rem;display:block}.tool-card span{color:var(--muted);font-size:.85rem}.ff-progress{margin-top:18px}.ff-bar{background:#e6ebf3;border-radius:999px;height:8px;overflow:hidden}.ff-bar span{background:var(--brand);border-radius:999px;width:0;height:100%;transition:width .25s;display:block}.ff-bar span.indeterminate{transition:none;animation:1.1s ease-in-out infinite ff-slide;width:40%!important}@keyframes ff-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.ff-label{color:var(--muted);margin-top:8px;font-size:.85rem}.tool-group{margin-top:26px}.tool-group:first-of-type{margin-top:14px}.tool-group h3{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 12px;font-size:.82rem}.faq details{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:10px;padding:12px 14px}.faq summary{cursor:pointer;font-weight:600}.faq p{color:var(--muted);margin:10px 0 0}.crumbs{color:var(--muted);margin-bottom:12px;font-size:.85rem}.crumbs a{color:var(--muted)}.crop-wrap{user-select:none;touch-action:none;max-width:100%;line-height:0;display:inline-block;position:relative}.crop-wrap img{cursor:crosshair;max-width:100%;height:auto;display:block}.crop-sel{cursor:move;box-sizing:border-box;border:2px solid #fff;position:absolute;box-shadow:0 0 0 9999px #0c16268c}.crop-h{border:2px solid var(--brand);box-sizing:border-box;background:#fff;border-radius:4px;width:16px;height:16px;position:absolute}.crop-h[data-h=nw]{cursor:nwse-resize;top:-9px;left:-9px}.crop-h[data-h=ne]{cursor:nesw-resize;top:-9px;right:-9px}.crop-h[data-h=sw]{cursor:nesw-resize;bottom:-9px;left:-9px}.crop-h[data-h=se]{cursor:nwse-resize;bottom:-9px;right:-9px}.crop-stage{margin-top:18px}.crop-info{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:12px;font-size:.85rem}.drag-h{cursor:grab;color:#9aa7ba;touch-action:none;background:0 0;border:0;padding:4px 7px;font-size:1.15rem;line-height:1}.drag-h:hover{color:var(--brand)}.drag-h:active{cursor:grabbing}.file.dragging{opacity:.45}.guide-meta{color:var(--muted);margin:-.3em 0 1.6em;font-size:.88rem}.prose figure{margin:1.9em 0}.prose figure img{box-sizing:border-box;border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;height:auto;padding:16px;display:block}.prose figcaption{color:var(--muted);text-align:center;margin-top:9px;font-size:.82rem}.prose h2{margin-top:2em}.prose blockquote{border-left:3px solid var(--brand);color:var(--muted);margin:1.4em 0;padding:2px 0 2px 18px}
