:root{color-scheme:light;--ink:#1F262D;--muted:#4b5560;--line:#d9dde1;--teal:#39434E;--soft:#fff4e6}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 system-ui,-apple-system,sans-serif}a{color:inherit}a:hover{color:var(--teal)}header,main,footer{max-width:1120px;margin:auto;padding:24px 36px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;font-size:27px;font-weight:750;letter-spacing:-1.1px}.brand i{font-style:normal;color:var(--teal)}nav{display:flex;gap:6px;flex-wrap:wrap}nav a{padding:8px 10px;text-decoration:none;font-size:14px;border-radius:6px}nav a[aria-current]{background:var(--soft);color:var(--teal);font-weight:600}.hero{padding:50px 0 28px;max-width:850px}.eyebrow{color:var(--teal);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase}h1{font:500 clamp(34px,5vw,62px)/1.08 Georgia,serif;letter-spacing:-.035em;margin:18px 0}h2{font:500 29px/1.2 Georgia,serif;letter-spacing:-.025em}p{margin:12px 0}.intro{font-size:20px;max-width:780px;color:var(--muted)}.privacy-badge{display:inline-block;color:var(--teal);font-size:14px;font-weight:600;padding:8px 14px;background:var(--soft);border-radius:24px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 44px}.card{padding:24px;border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:border .2s}.card:hover{border-color:var(--teal);background:var(--soft)}.card small{display:block;color:var(--muted);margin-top:10px}.card strong{font-size:23px;letter-spacing:-.02em}.arrow{float:right;color:var(--teal)}.panel{border:1px solid var(--line);border-radius:18px;padding:26px;margin-bottom:24px}.drop{background:var(--soft);border:1.5px dashed #39434E;text-align:center;padding:30px;border-radius:12px}.drop.dragging{background:#fbe0c2}.drop h2{margin:14px 0 4px}.drop p{color:var(--muted);margin:6px 0 18px}.icon{font-size:34px;color:var(--teal)}button,.button{border:1px solid var(--line);border-radius:6px;padding:12px 18px;background:white;color:var(--ink);font:600 15px/1.3 system-ui;cursor:pointer;min-height:46px;text-decoration:none}button.primary{background:var(--teal);color:white;border-color:var(--teal)}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.95)}#files{max-width:100%;margin-top:16px;font-size:14px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 12px}.status{color:var(--muted);font-size:14px}progress{width:100%;accent-color:var(--teal)}.queue{padding:0;list-style:none}.queue li{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.queue img{width:60px;height:60px;object-fit:contain;background:var(--soft);border-radius:6px}.file-info{flex:1;min-width:0}.filename{overflow-wrap:anywhere;font-weight:600}.detail{display:block;color:var(--muted);font-size:13px}.queue a{color:var(--teal);font-size:14px;font-weight:600}.error{color:#bb2633}.note{padding:18px 22px;background:#fff4e6;border-radius:10px;color:var(--muted);font-size:14px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:26px 0 40px}.step b{color:var(--teal);display:block;font:500 32px Georgia}details{border-bottom:1px solid var(--line);padding:18px 0}summary{font-weight:600;cursor:pointer;min-height:30px}details p{max-width:800px;color:var(--muted)}section{margin:24px 0 40px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-languages{display:flex;justify-content:flex-end;gap:6px;width:100%;margin-top:8px}.footer-languages a{padding:4px 8px;text-decoration:none;border-radius:6px}.footer-languages a[aria-current]{background:var(--soft);color:var(--teal);font-weight:600}.footer-languages{display:flex;justify-content:flex-end;gap:6px;width:100%;margin-top:8px}.footer-languages a{padding:4px 8px;text-decoration:none;border-radius:6px}.footer-languages a[aria-current]{background:var(--soft);color:var(--teal);font-weight:600}input[type=range]{accent-color:var(--teal);max-width:100%}.quality{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}@media(max-width:700px){header,main,footer{padding:20px}.hero{padding-top:28px}header{align-items:flex-start}.brand{font-size:24px}nav{gap:0}nav a{padding:8px}.grid{grid-template-columns:1fr 1fr;gap:10px}.card{padding:18px 14px}.card strong{font-size:18px}.panel{padding:14px}.drop{padding:24px 12px}.intro{font-size:18px}.steps{grid-template-columns:1fr;gap:10px}.step{display:flex;gap:15px;align-items:center}.queue li{gap:10px;flex-wrap:wrap}.queue a{margin-left:auto}footer{flex-direction:column}h2{font-size:26px}}@media(max-width:350px){.grid{grid-template-columns:1fr}header{flex-direction:column}.queue img{width:44px;height:44px}}
.brand{display:inline-flex;align-items:center;line-height:0}.brand img{display:block;height:46px;width:auto}
.volo{display:block;overflow:visible}.volo .wl{transform-origin:50px 104px;animation:vfl .3s infinite alternate ease-in-out}.volo .wr{transform-origin:150px 104px;animation:vfr .3s infinite alternate ease-in-out}
@keyframes vfl{to{transform:rotate(22deg)}}@keyframes vfr{to{transform:rotate(-22deg)}}@keyframes vbob{50%{transform:translateY(-8px)}}@keyframes vdot{50%{transform:translateY(-6px);opacity:.4}}
.volo-busy{display:none;align-items:center;justify-content:center;gap:14px;margin:14px 0 6px}.progress-on,progress:not([hidden])~.volo-busy{display:flex}
.volo-busy .volo{width:84px;height:80px;animation:vbob .9s infinite ease-in-out}.volo-busy .dots span{display:inline-block;width:9px;height:9px;margin:0 3px;border-radius:50%;background:#39434E;animation:vdot 1s infinite}.volo-busy .dots span:nth-child(2){animation-delay:.2s}.volo-busy .dots span:nth-child(3){animation-delay:.4s}
/* A source slot, four deliveries, and a visible empty-handed return. */
.hiw{--file:58px;--bird:84px;--dock:106px;--lift:46px;--cycle:6s;--pile-cycle:24s;position:relative;height:214px;margin:22px 0 0;border:1px solid var(--line);border-radius:18px;background:linear-gradient(#fff,#fff4e6);overflow:hidden}
.hiw .flight-route{position:absolute;left:calc(7% + var(--file)/2);top:calc(var(--dock) + 32px - var(--lift));width:calc(86% - var(--file));height:var(--lift);overflow:visible}
.hiw .flight-route path{fill:none;stroke:#F1A45E;stroke-width:2;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}
.hiw .landing-base{z-index:3;position:absolute;top:calc(var(--dock) + 60px);width:calc(var(--file) + 24px);height:22px;border:2px solid #39434E;border-radius:0 0 50% 50%;background:#f1d3b0;box-shadow:0 5px 0 #fbe0c2}
.hiw .landing-base::before{content:"";position:absolute;left:-2px;right:-2px;top:-7px;height:14px;border:2px solid #39434E;border-radius:50%;background:#fdeed9}
.hiw .origin{left:calc(7% - 12px)}.hiw .destination{right:calc(7% - 12px);z-index:0}
.hiw .origin::after{content:"";position:absolute;left:9px;right:9px;top:-3px;height:5px;border-radius:50%;background:#39434E;box-shadow:inset 0 2px 2px #1F262D}
.hiw .chip,.hiw .parcel{width:var(--file);height:64px;border:3px solid #1F262D;border-radius:8px 16px 8px 8px;background:#fff;text-align:center;font:800 13px/58px system-ui,sans-serif;letter-spacing:.4px;color:#1F262D}
.hiw .chip::after,.hiw .parcel::after{content:"";position:absolute;right:0;top:0;width:12px;height:12px;border-left:2px solid #1F262D;border-bottom:2px solid #1F262D;border-radius:0 10px 0 3px;background:#fbe0c2}
.hiw .source-slot{position:absolute;left:7%;top:var(--dock);width:var(--file);height:64px;overflow:hidden;z-index:1}
.hiw .a{position:absolute;inset:0;animation:vsource var(--cycle) infinite linear}
.hiw .output-stack{position:absolute;right:7%;top:var(--dock);width:var(--file);height:64px;z-index:1}
.hiw .stack-chip{position:absolute;inset:0;background:#f7cf9f;opacity:0;animation-duration:var(--pile-cycle);animation-iteration-count:infinite;animation-timing-function:linear}
.hiw .stack-0{animation-name:pile0}.hiw .stack-1{animation-name:pile1;transform:translate(-2px,-4px)}.hiw .stack-2{animation-name:pile2;transform:translate(1px,-8px)}.hiw .stack-3{animation-name:pile3;transform:translate(-1px,-12px)}
.hiw .courier{z-index:2;position:absolute;width:var(--bird);height:80px;left:calc(7% + (var(--file) - var(--bird))/2);top:calc(var(--dock) - 52px);animation:vcarry var(--cycle) infinite linear}
.hiw .courier>.volo{position:absolute;inset:0;width:84px;height:80px;animation:none}
.hiw .parcel{position:absolute;left:calc((var(--bird) - var(--file))/2);top:52px;transform-origin:50% 0;opacity:0;animation:vparcel var(--cycle) infinite linear}
.hiw .parcel::before{content:"";position:absolute;top:-5px;left:calc(50% - 6px);width:12px;height:6px;background:#F1A45E;border:2px solid #1F262D;border-top:0;border-radius:0 0 6px 6px;z-index:2}
.hiw .parcel-from,.hiw .parcel-to{position:absolute;inset:0}.hiw .parcel-from{animation:vfrom var(--cycle) infinite}.hiw .parcel-to{opacity:0;animation:vto var(--cycle) infinite}
@keyframes vcarry{0%,10%,100%{left:calc(7% + (var(--file) - var(--bird))/2);top:calc(var(--dock) - 52px)}52%,60%{left:calc(93% - (var(--file) + var(--bird))/2);top:calc(var(--dock) - 52px)}12%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0);top:calc(var(--dock) - 52px - var(--lift)*0)}16.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.125);top:calc(var(--dock) - 52px - var(--lift)*0.4375)}21%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.25);top:calc(var(--dock) - 52px - var(--lift)*0.75)}25.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.375);top:calc(var(--dock) - 52px - var(--lift)*0.9375)}30%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.5);top:calc(var(--dock) - 52px - var(--lift)*1)}34.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.625);top:calc(var(--dock) - 52px - var(--lift)*0.9375)}39%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.75);top:calc(var(--dock) - 52px - var(--lift)*0.75)}43.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.875);top:calc(var(--dock) - 52px - var(--lift)*0.4375)}48%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*1);top:calc(var(--dock) - 52px - var(--lift)*0)}62%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*1);top:calc(var(--dock) - 52px - var(--lift)*0)}66.25%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.875);top:calc(var(--dock) - 52px - var(--lift)*0.4375)}70.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.75);top:calc(var(--dock) - 52px - var(--lift)*0.75)}74.75%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.625);top:calc(var(--dock) - 52px - var(--lift)*0.9375)}79%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.5);top:calc(var(--dock) - 52px - var(--lift)*1)}83.25%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.375);top:calc(var(--dock) - 52px - var(--lift)*0.9375)}87.5%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.25);top:calc(var(--dock) - 52px - var(--lift)*0.75)}91.75%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0.125);top:calc(var(--dock) - 52px - var(--lift)*0.4375)}96%{left:calc(7% + (var(--file) - var(--bird))/2 + (86% - var(--file))*0);top:calc(var(--dock) - 52px - var(--lift)*0)}}
@keyframes vsource{0%{opacity:1;transform:translateY(64px)}9%,11.9%{opacity:1;transform:translateY(0)}12%,100%{opacity:0;transform:translateY(0)}}
@keyframes vparcel{0%,11.9%{opacity:0;transform:rotate(0)}12%,48%{opacity:1;transform:rotate(0)}25%{opacity:1;transform:rotate(-7deg)}38%{opacity:1;transform:rotate(6deg)}50.9%{opacity:1;transform:translateY(-4px)}51%,100%{opacity:0;transform:rotate(0)}}
@keyframes vfrom{0%,42%{opacity:1}47%,100%{opacity:0}}@keyframes vto{0%,42%{opacity:0}47%,100%{opacity:1}}
@keyframes pile0{0%,12.725%{opacity:0}12.75%{opacity:1}97%{opacity:1}99%,100%{opacity:0}}
@keyframes pile1{0%,37.725%{opacity:0}37.75%{opacity:1}97%{opacity:1}99%,100%{opacity:0}}
@keyframes pile2{0%,62.725%{opacity:0}62.75%{opacity:1}97%{opacity:1}99%,100%{opacity:0}}
@keyframes pile3{0%,87.725%{opacity:0}87.75%{opacity:1}97%{opacity:1}99%,100%{opacity:0}}
.volo-busy .busy-flight{--dock:82px;--lift:28px;--cycle:4s;--pile-cycle:16s;width:min(100%,320px);height:184px;margin:0;border:0;background:transparent}
@media(max-width:700px){.hiw{--file:50px}.hiw .chip,.hiw .parcel{font-size:11px}}
@media(prefers-reduced-motion:reduce){.volo *,.volo,.volo-busy .dots span,.hiw *{animation:none!important}.hiw .courier{left:calc(50% - 42px);top:16px;opacity:1}.hiw .a,.hiw .stack-chip{opacity:1}.hiw .parcel{opacity:0}.hiw .parcel-from{opacity:1}.hiw .parcel-to{opacity:0}}

/* A brief, small wing flap, followed by a long still pause. */
.brand .header-logo{display:block;width:138px;height:46px;overflow:visible}
.header-logo .logo-wing-left{transform-origin:50px 104px;animation:logo-flap-left 7s ease-in-out infinite}
.header-logo .logo-wing-right{transform-origin:150px 104px;animation:logo-flap-right 7s ease-in-out infinite}
@keyframes logo-flap-left{0%,84%,92%,100%{transform:rotate(0)}86%,90%{transform:rotate(12deg)}88%{transform:rotate(-3deg)}}
@keyframes logo-flap-right{0%,84%,92%,100%{transform:rotate(0)}86%,90%{transform:rotate(-12deg)}88%{transform:rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.header-logo *{animation:none!important}}

.header-nav{display:flex;align-items:center;gap:14px}.tools-menu{position:relative;border:0;padding:0}.tools-menu summary{padding:8px 10px;font-size:14px;font-weight:600;min-height:44px;display:flex;align-items:center;gap:7px;list-style:none;border-radius:6px;cursor:pointer}.tools-menu summary::-webkit-details-marker{display:none}.tools-menu summary::after{content:"⌄";font-size:16px}.tools-menu[open] summary{background:var(--soft);color:var(--teal)}.tools-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:268px;max-width:calc(100vw - 40px);padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #1F262D18;z-index:10}.tools-dropdown a{display:block;padding:10px 12px;min-height:44px;text-decoration:none;border-radius:6px;font-size:14px;line-height:1.5}.tools-dropdown a:hover{background:var(--soft)}.tools-dropdown .menu-blog{border-top:1px solid var(--line);border-radius:0;margin-top:4px}.tools-menu summary:focus-visible,.header-nav a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media(max-width:700px){header{flex-wrap:wrap;gap:10px}.header-nav{flex:1;justify-content:flex-end;gap:2px}.tools-menu summary{padding:8px}.tools-dropdown{right:0}.header-nav nav a{padding:8px 6px}}
@media(max-width:700px){.header-nav{flex:none;width:100%;justify-content:flex-end}}

/* TotImage: retro square layer. Anthracite #39434E + soft mandarin #F1A45E, slate ink #1F262D, white. */
:root{--ink:#1F262D;--muted:#4b5560;--line:#1F262D;--teal:#39434E;--soft:#F1A45E;--anth:#39434E;--man:#F1A45E;--manl:#fde7cf;--shadow:4px 4px 0 #1F262D}
body{background:#fff;color:var(--ink)}
a:hover{color:var(--anth)}
header,main,footer{max-width:1160px}
header{border-bottom:3px solid var(--ink);padding-top:14px;padding-bottom:14px;position:relative;z-index:30;background:#fff}
.brand{display:flex;align-items:center;line-height:0}
.brand svg{height:62px;width:auto;display:block}
nav a,.header-nav a,.tools-menu summary{font-weight:700;color:var(--ink);border-radius:0}
.tools-menu summary{border:2px solid var(--ink);background:#fff;padding:9px 14px;min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:var(--shadow);list-style:none;font-size:14px}
.tools-menu summary::-webkit-details-marker{display:none}
.tools-menu summary:hover,.tools-menu[open] summary{background:var(--man)}
.tools-menu[open] summary{box-shadow:none;transform:translate(4px,4px)}
.tools-dropdown{border:2px solid var(--ink);border-radius:0;box-shadow:var(--shadow);background:#fff}
.tools-dropdown a{border-radius:0;min-height:44px;display:flex;align-items:center;font-weight:650}
.tools-dropdown a:hover{background:var(--manl);color:var(--ink)}
.hero h1{font:800 clamp(34px,5vw,60px)/1.05 system-ui,-apple-system,sans-serif;letter-spacing:-.035em;color:var(--ink)}
h2{font:800 28px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:-.02em;color:var(--ink)}
.eyebrow{display:inline-block;background:var(--man);color:var(--ink);padding:4px 10px;border:2px solid var(--ink);font-weight:800;letter-spacing:.06em}
.privacy-badge{background:var(--manl);color:var(--ink);border:2px solid var(--ink);border-radius:0;padding:6px 12px;font-weight:700;box-shadow:3px 3px 0 var(--ink)}
.note{background:var(--manl);border:2px solid var(--ink);border-radius:0;color:var(--ink);box-shadow:var(--shadow)}
.card{border:2px solid var(--ink);border-radius:0;background:#fff;box-shadow:var(--shadow);transition:transform .1s,box-shadow .1s}
.card:hover{background:var(--manl);border-color:var(--ink);transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.card .arrow{color:var(--ink);font-weight:800}
.panel{border:2px solid var(--ink);border-radius:0;box-shadow:6px 6px 0 var(--ink);background:#fff}
.drop{background:var(--manl);border:3px dashed var(--ink);border-radius:0}
.drop.dragging{background:var(--man)}
.drop:has(.queue li){background:#fff7ec}
button{font:inherit;font-weight:750;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:0;padding:11px 18px;min-height:44px;box-shadow:var(--shadow);cursor:pointer;transition:transform .1s,box-shadow .1s}
button:hover:not(:disabled){background:var(--manl)}
button:active:not(:disabled){transform:translate(4px,4px);box-shadow:none}
button.primary{background:var(--man)}
button.primary:hover:not(:disabled){background:#f6b374}
button:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--anth);outline-offset:3px}
progress{accent-color:var(--anth)}
input[type=range]{accent-color:var(--anth)}
.queue li{border-bottom:2px solid var(--ink)}
.queue img{border-radius:0;border:2px solid var(--ink);background:#fff}
.queue a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.step b{font:800 34px system-ui,sans-serif;background:var(--man);display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);margin-bottom:10px}
details{border:2px solid var(--ink);border-radius:0;padding:14px 18px;margin:0 0 12px;background:#fff;box-shadow:3px 3px 0 var(--ink)}
details[open]{background:var(--manl)}
.tools-menu{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
.tools-menu[open]{background:transparent}
footer{border-top:3px solid var(--ink);color:var(--ink)}
.footer-languages a{border-radius:0;font-weight:700}
.footer-languages a[aria-current]{background:var(--man);color:var(--ink);border:2px solid var(--ink)}
.error{color:#a3202c;font-weight:700}
/* Tool pages: the drop box leads, visible without scrolling. */
main:has(>.panel){display:flex;flex-direction:column}
main:has(>.panel)>.hero{display:contents}
main:has(>.panel) .hero>*{order:-3}
main:has(>.panel) .hero .eyebrow{order:-5;align-self:flex-start;margin-top:12px}
main:has(>.panel) .hero h1{order:-4;font-size:clamp(28px,4vw,42px);margin:10px 0 6px}
main:has(>.panel) .hero .intro{font-size:16px;margin:4px 0 10px;max-width:none}
main:has(>.panel) .hero .privacy-badge{align-self:flex-start;margin:0 0 16px}
main:has(>.panel) .hero .note{display:none}
main:has(>.panel)>.panel{order:-1}
main:has(>.panel) .drop{padding:34px 22px}
main:has(>.panel) .drop h2{font-size:26px;margin:8px 0 4px}
.drop .icon{font-size:38px;color:var(--anth)}
.status:empty{display:none}
@media(max-width:700px){header{flex-wrap:nowrap;gap:8px}.brand svg{height:48px}.hero h1{font-size:34px}main:has(>.panel) .drop{padding:24px 14px}main:has(>.panel) .eyebrow{display:none}.panel{box-shadow:4px 4px 0 var(--ink);padding:16px}.actions button{flex:1 1 100%}}
button.primary,button.primary:disabled{color:var(--ink)}
#files{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip-path:inset(50%)}
.home-hero{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:32px;max-width:none}
.home-hero .hero-copy{min-width:0}
.hero-art{text-align:center}
.hero-art .volo{width:min(300px,100%);height:auto;display:block;margin:auto;animation:none}
.hero-art span{display:inline-block;font-weight:800;background:var(--man);border:2px solid var(--ink);box-shadow:var(--shadow);padding:6px 14px;transform:rotate(3deg);margin-top:6px}
@media(max-width:700px){.home-hero{grid-template-columns:1fr;gap:10px}.hero-art .volo{width:150px}.hero-art{order:-1;text-align:left}.hero-art span{display:none}}
.hiw{border:2px solid var(--ink);border-radius:0;box-shadow:var(--shadow);background:linear-gradient(#fff,var(--manl))}
@media(max-width:700px){.header-nav{width:auto;flex:none}.header-nav a{padding:8px}}

/* One privacy message on the home page, with a photo-carrying mascot. */
.home-hero{grid-template-columns:1.5fr 1fr;gap:36px;padding-top:32px}
.home-hero h1{margin-top:0}
.home-hero .intro{font-size:19px;line-height:1.5}
.home-privacy{margin-top:24px;padding:20px 22px;border:2px solid var(--ink);background:var(--manl);box-shadow:var(--shadow)}
.home-privacy strong{display:block;font-size:22px;line-height:1.3;letter-spacing:-.02em}
.home-privacy p{font-size:16px;line-height:1.55;margin:12px 0}
.home-privacy small{display:block;border-top:1px solid var(--ink);padding-top:12px;font-size:14px;font-weight:700;line-height:1.6}
.hero-art .volo{width:min(290px,100%)}
@media(max-width:700px){.home-hero{grid-template-columns:1fr;gap:16px;padding-top:12px}.home-hero h1{font-size:34px;margin-top:0}.home-hero .intro{font-size:17px}.hero-art .volo{width:145px}.home-privacy{margin-top:18px;padding:16px}.home-privacy strong{font-size:21px}.home-privacy p{font-size:15px}.home-privacy small{font-size:13px}}
/* Family alignment: quiet header, clear privacy, choose/change/download. */
header{border-bottom:1px solid var(--anth);padding-top:16px;padding-bottom:16px;align-items:center}
.brand{gap:8px;line-height:1;font:800 30px system-ui,sans-serif;letter-spacing:-1.2px}.brand>svg{width:60px;height:50px;animation:none}.brand i{color:var(--anth)}
.header-nav{display:flex;align-items:center;gap:12px;width:auto}.header-nav details{position:relative;border:0;padding:0;margin:0;box-shadow:none;background:transparent}.header-nav summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;min-width:92px;min-height:44px;font-size:14px;font-weight:750;white-space:nowrap;list-style:none;border:2px solid transparent;background:transparent;box-shadow:none;transform:none;color:var(--ink)}.header-nav summary::-webkit-details-marker{display:none}.header-nav summary::after{content:"";width:8px;height:8px;flex:none;border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}.header-nav details[open]>summary{border-color:var(--anth);background:var(--man);box-shadow:none;transform:none}.header-nav details[open]>summary::after{transform:translateY(2px) rotate(225deg)}.header-nav>a{padding:10px 12px;min-height:44px;font-size:14px}.header-nav a:hover{background:var(--manl)}.tools-dropdown,.language-dropdown{position:absolute;right:0;top:100%;padding:8px;z-index:40;border:2px solid var(--anth);background:white;box-shadow:4px 4px 0 var(--ink);max-height:65vh;overflow:auto;min-width:230px}.tools-dropdown a,.language-dropdown a{display:block;padding:10px 12px;min-height:44px;text-decoration:none;font-size:14px}.language-dropdown{min-width:150px}.language-dropdown a[aria-current]{background:var(--manl)}.mobile-menu{display:none}
.trust-banner{display:flex;gap:18px;padding:25px 28px;background:var(--man);border:2px solid var(--anth);box-shadow:6px 6px 0 var(--ink);color:var(--ink)}.trust-banner>svg{width:40px;height:45px;flex:none;margin-top:6px}.trust-label{font:700 11px/1.4 system-ui;letter-spacing:.11em}.trust-banner h2{font:500 clamp(25px,3vw,35px)/1.15 Georgia,serif;margin:8px 0 12px}.trust-banner p{margin:0 0 15px}.trust-banner a{font-size:13px;font-weight:700;text-underline-offset:4px}.home-trust{margin:0 0 38px}.free-badge{font-weight:750;font-size:14px;margin:20px 0}
.trust-strip{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;margin:0 0 18px!important;max-width:940px;order:-2}.trust-strip svg{width:19px;height:22px;flex:none;margin-top:2px}.trust-strip a{text-underline-offset:3px;font-weight:650}
.note{background:#fffaf4;border:0;border-left:3px solid var(--anth);box-shadow:none;padding:18px 22px;font-size:14px;color:var(--ink)}.tool-disclaimer h2{font:800 17px/1.3 system-ui;margin:0 0 8px}.tool-disclaimer p{margin:0;line-height:1.65}.how-visual{padding:28px 0;border-top:1px solid #d9dde1}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:24px 0 32px}.step{display:block;max-width:270px}.step-picture{position:relative;width:78px;height:78px;display:grid;place-items:center;border:2px solid var(--anth);background:#fff;box-shadow:4px 4px 0 var(--man);margin-bottom:18px}.step-picture svg{width:38px;height:38px}.step-picture b{position:absolute;right:-9px;bottom:-7px;width:25px;height:25px;background:var(--man);border:2px solid var(--anth);box-shadow:none;font:800 12px system-ui;margin:0}.step strong{display:block;font-size:16px;line-height:1.35}.step p{font-size:13px;line-height:1.5;margin:8px 0 0}
button.primary{background:var(--anth);color:#fff;border-color:var(--anth);box-shadow:4px 4px 0 var(--man)}button.primary:hover:not(:disabled){background:var(--ink);color:#fff}button.primary:disabled{background:var(--manl);color:var(--ink);box-shadow:none}
@media(max-width:700px){header{flex-wrap:nowrap;gap:8px;position:relative}.brand{font-size:26px}.brand>svg{width:46px;height:42px}.header-nav{width:auto;flex:none;gap:0}.header-nav>.tools-menu,.header-nav>.language-menu,.header-nav>a{display:none}.header-nav>.mobile-menu{display:block;position:static}.mobile-panel{position:absolute;left:0;right:0;top:100%;max-height:calc(100dvh - 90px);overflow:auto;padding:8px 20px 20px;background:white;border-top:2px solid var(--anth);border-bottom:2px solid var(--anth);box-shadow:0 8px 0 #1f262d18}.menu-head{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:16px 0 8px}.mobile-tools{display:grid;grid-template-columns:1fr 1fr;gap:4px}.mobile-panel a{display:block;text-decoration:none;min-height:44px;padding:10px 8px;font-size:14px;line-height:1.4}.mobile-langs{display:flex;flex-wrap:wrap;gap:8px}.mobile-langs a[aria-current]{background:var(--manl)}.mobile-blog{border-bottom:1px solid #d9dde1}.trust-banner{padding:20px 16px;gap:12px;box-shadow:4px 4px 0 var(--ink)}.trust-banner>svg{width:28px;height:32px}.trust-banner h2{font-size:25px}.trust-banner p{font-size:14px}.steps{grid-template-columns:1fr;gap:22px}.step{display:grid;grid-template-columns:60px 1fr;column-gap:18px;max-width:none}.step-picture{grid-row:span 2;margin:0;width:54px;height:54px}.step-picture svg{width:30px;height:30px}.step p{margin:5px 0 0}.trust-strip{font-size:12px}.home-trust{margin-bottom:32px}}

/* Real per-file state, not a simulated percentage. */
.queue li{padding:16px 12px;transition:background .18s;border-bottom:1px solid #d9dde1}.queue li.is-converting{background:#fff7ed;border-left:4px solid var(--anth)}.queue li.is-converting::before{content:"";width:20px;height:20px;flex:none;border:3px solid var(--manl);border-top-color:var(--anth);animation:file-spin .8s linear infinite}.queue li.is-ready{background:#f4f7f4;border-left:4px solid #42634a}.queue li.is-ready::before{content:"✓";font-weight:800;color:#42634a;width:20px;flex:none}.queue li.is-error{border-left:4px solid #a3202c}.queue a{background:var(--anth);color:white;padding:10px 14px;text-decoration:none;min-height:44px}.queue a:hover{color:white;background:var(--ink)}@keyframes file-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.queue li.is-converting::before{animation:none}.queue li{transition:none}}

.brand .volo *{animation:none!important}
/* Like TotPDF: choose files, prepare, then download. */
[hidden]{display:none!important}
.step-bar{display:flex;gap:6px;list-style:none;margin:0 0 16px;padding:0}
.step-bar li{flex:1;display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:3px solid var(--line);font-size:14px;font-weight:650;color:var(--muted)}
.step-bar b{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid currentColor;border-radius:5px;font-size:12px;flex:none}
.step-bar li[aria-current]{border-bottom-color:var(--ink);color:var(--ink)}
.step-bar li[aria-current] b{background:var(--soft)}
.panel[data-step="pick"]>:not(.step-bar,.drop,#status,noscript){display:none!important}
.panel[data-step="done"]>:not(.step-bar,#status,#result-title,#queue,.done-bar){display:none!important}
.panel:not([data-step="done"]) .done-bar,.panel:not([data-step="done"]) #result-title{display:none}
.panel[data-step="prepare"] .drop{padding:16px;text-align:left}
.panel[data-step="prepare"] .drop>.icon,.panel[data-step="prepare"] .drop>h2,.panel[data-step="prepare"] .drop>p{display:none}
.processing-state{display:none;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0}
.panel[data-busy="true"] .processing-state{display:flex}
.processing-state span:not(.processing-spinner){color:var(--muted);font-size:14px}
.processing-spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:flow-spin .8s linear infinite}
@keyframes flow-spin{to{transform:rotate(360deg)}}
.done-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.panel[data-step="done"] .queue a{font-size:16px;padding:10px 16px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}
@media(max-width:700px){.step-bar li{font-size:12px;padding:6px 3px;gap:5px}.panel[data-step="prepare"] .actions{position:sticky;bottom:0;z-index:5;background:#fff;padding:12px 0;border-top:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.processing-spinner{animation:none}}
@media(max-width:700px){.panel[data-step="done"] .queue li{display:grid;grid-template-columns:18px 60px minmax(0,1fr);gap:10px}.panel[data-step="done"] .queue li::before{grid-column:1;grid-row:1}.panel[data-step="done"] .queue img{grid-column:2;grid-row:1}.panel[data-step="done"] .queue .file-info{grid-column:3;grid-row:1}.panel[data-step="done"] .queue a{grid-column:2 / -1;justify-self:end}.panel[data-step="done"] .queue li:not(:has(img)) .file-info{grid-column:2 / -1}}
