/* Trust is visible at the point where a file is selected. */
.trust-banner{display:flex;align-items:flex-start;gap:18px;padding:24px 28px;margin:0 0 22px;background:#f4f6ff;border:1px solid #d9dff7;border-left:4px solid #233ede;border-radius:14px;color:#132a99}
.trust-banner>svg{width:32px;height:36px;flex:none;margin-top:6px}
.trust-label{font:700 11px/1.4 system-ui,sans-serif;letter-spacing:.11em}
.trust-banner h2{font:750 clamp(21px,2.2vw,29px)/1.2 system-ui,sans-serif;letter-spacing:-.025em;margin:7px 0 8px;color:#132a99;max-width:850px}
.trust-banner p{font-size:15px;line-height:1.5;margin:0;color:#3d4c78}
.trust-check{padding:24px 28px!important;margin:0 0 34px!important;border:1px solid #e1e5f3;border-radius:14px;background:#fffefa}
.trust-check h2{font:700 21px/1.3 system-ui,sans-serif;margin:0 0 16px;color:#132a99}
.trust-check ol{padding-left:24px;margin:0 0 16px;max-width:850px}
.trust-check li{padding-left:6px;margin:9px 0;line-height:1.55}
.trust-check li::marker{color:#132a99;font-weight:750}
.trust-check a{font-weight:650;color:#132a99;text-underline-offset:4px}
.trust-note{font-size:14px;color:#586078;line-height:1.6;max-width:850px}
.privacy-copy{max-width:920px}.privacy-copy>section:not(.trust-check){margin:32px 0}.privacy-copy>section p{max-width:800px}
/* Two gentle cycles, then rest. No endless motion beside the controls. */
.action-scene .scene-bird{animation:scene-bob 2.4s ease-in-out 2}
.action-scene .scene-press{animation:scene-press 2.4s ease-in-out 2}
.action-scene .scene-scissors{transform-origin:152px 166px;animation:scene-cut 2.4s ease-in-out 2}
.action-scene .scene-turn{transform-origin:372px 204.5px;animation:scene-turn 2.4s ease-in-out 2}
.action-scene .scene-lift{animation:scene-lift 2.4s ease-in-out 2}
.action-scene .scene-camera{transform-origin:217px 145px;animation:scene-camera 2.4s ease-in-out 2}
.action-scene .scene-photo{animation:scene-lift 2.4s ease-in-out 2}
@keyframes scene-fly{0%,100%{transform:translate(0,0) rotate(0)}12%{transform:translate(-70px,-14px) rotate(-5deg)}28%{transform:translate(-150px,-4px) rotate(2deg)}50%{transform:translate(10px,-22px) rotate(-3deg)}72%{transform:translate(150px,-6px) rotate(4deg)}88%{transform:translate(70px,-12px) rotate(3deg)}}@keyframes scene-flap{0%,100%{scale:1 1}50%{scale:1.04 .93}}@keyframes scene-bob{0%,100%{transform:translateY(0)}45%{transform:translateY(4px)}70%{transform:translateY(-2px)}}
@keyframes scene-press{0%,100%{transform:translateY(0)}40%,60%{transform:translateY(7px)}}
@keyframes scene-cut{0%,100%{transform:rotate(0)}35%{transform:rotate(-7deg)}60%{transform:rotate(4deg)}}
@keyframes scene-turn{0%,100%{transform:rotate(0)}45%,65%{transform:rotate(-90deg)}}
@keyframes scene-lift{0%,100%{transform:translateY(0)}45%,65%{transform:translateY(-6px)}}
@keyframes scene-camera{0%,100%{transform:scale(1)}40%{transform:scale(1.06)}55%{transform:scale(1)}}
@media(max-width:600px){.trust-banner{gap:12px;padding:20px 16px}.trust-banner>svg{width:26px;height:30px}.trust-banner h2{font-size:21px}.trust-check{padding:20px 18px!important}.trust-check h2{font-size:20px}.trust-banner p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.action-scene *{animation:none!important;scale:none}}
/* Keep native semantics, replace the OS checkbox appearance. */
.options .consent{align-self:end;min-width:0}
.options .consent>span{display:flex;align-items:flex-start;gap:12px;padding:12px 0;line-height:1.5;font-size:14px}
.options input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:0 0 22px;width:22px;height:22px;min-height:22px;margin:0;border:2px solid #233ede;border-radius:5px;background:#fffefa;cursor:pointer;display:grid;place-content:center}
.options input[type=checkbox]::before{content:"";width:10px;height:6px;border-left:2px solid #132a99;border-bottom:2px solid #132a99;transform:translateY(-1px) rotate(-45deg) scale(0)}
.options input[type=checkbox]:checked{background:#f8e455}.options input[type=checkbox]:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
.options input[type=checkbox]:focus-visible{outline:3px solid #f8e455;outline-offset:3px}.options input[type=checkbox]:disabled{background:#edf0fa;border-color:#7381b4;cursor:not-allowed}
.actions #run.primary{background:#233ede;color:#fffefa;border:2px solid #233ede;border-radius:8px;opacity:1}
.actions #run.primary:hover:not(:disabled){background:#132a99;border-color:#132a99;color:#fffefa}
.actions #run.primary:disabled{background:#fff9cb;color:#132a99;border-color:#e4d758;opacity:1;cursor:not-allowed;box-shadow:none}
.options .custom-select{min-width:0}.options .select-trigger{border:2px solid #c9d0f0;border-radius:8px;background:#fffefa;color:#132a99;min-height:48px}
@media(max-width:600px){.options:has(.consent){grid-template-columns:1fr!important}.options .consent>span{padding:4px 0 12px}}
.options input[type=checkbox]{padding:0}
@media(max-width:600px){.options .consent{flex-basis:100%}}
/* Text-only header controls in every interaction state. */
.header-nav details>summary,.header-nav details>summary:hover,.header-nav details>summary:focus,.header-nav details>summary:focus-visible,.header-nav details[open]>summary{background:transparent!important;border-color:transparent!important;box-shadow:none!important;filter:none!important}
.header-nav details>summary:focus-visible{outline:2px solid #233ede;outline-offset:3px}
.header-nav details[open]>summary::before{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:2px;border-radius:2px;background:#233ede}
.processing-state{display:none;align-items:center;gap:18px;background:#f4f6ff;border:1px solid #d9dff7;border-radius:12px;padding:22px;margin:18px 0;color:#132a99}
.processing-state:has(progress:not([hidden])){display:flex}.processing-state>div{flex:1;min-width:0}.processing-state strong,.processing-state span:not(.processing-spinner){display:block}.processing-state strong{font-size:18px}.processing-state span:not(.processing-spinner){font-size:14px;margin:4px 0 12px}
.processing-spinner{width:34px;height:34px;flex:none;border:4px solid #e0e5fb;border-top-color:#233ede;border-right-color:#f8e455;border-radius:50%;animation:processing-spin 1s linear infinite}
.processing-state progress{display:block;width:100%;height:10px;border:0;border-radius:8px;overflow:hidden;accent-color:#233ede}.processing-state progress::-webkit-progress-bar{background:#e0e5fb;border-radius:8px}.processing-state progress::-webkit-progress-value{background:#233ede;border-radius:8px}
@keyframes processing-spin{to{transform:rotate(360deg)}}
#results:not(:empty){background:#f4f6ff;border:1px solid #d9dff7;border-radius:14px;padding:24px;margin:24px 0;box-shadow:none}
.result-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.result-heading h2{font:750 22px/1.25 system-ui,sans-serif;margin:0 0 5px}.result-heading p{font-size:14px;margin:0;color:#586078}.result-check{display:grid;place-items:center;background:#f8e455;color:#132a99;border-radius:50%;width:34px;height:34px;flex:none;font-weight:800}
.result-file{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffefa;border:1px solid #d9dff7;border-radius:10px;padding:18px;margin-top:10px}.result-info{min-width:0}.result-name{display:block;overflow-wrap:anywhere;line-height:1.45;font-size:15px}.result-meta{display:block;font-size:13px;color:#586078;margin-top:7px}
#results .download{display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0;padding:12px 18px;min-height:46px;background:#233ede;color:#fffefa;border:2px solid #233ede;border-radius:8px;box-shadow:none;text-decoration:none}
#results .download:hover{background:#132a99;color:#fffefa}#results .download:focus-visible{outline:3px solid #f8e455;outline-offset:3px}
@media(max-width:600px){#results:not(:empty){padding:18px}.result-file{align-items:stretch;flex-direction:column;gap:14px;padding:16px}.result-heading h2{font-size:20px}.processing-state{padding:18px;gap:12px}}
@media(prefers-reduced-motion:reduce){.processing-spinner{animation:none}}

/* Unified visual language: squared geometry, cobalt outlines, lemon fills. */
.card,.panel,.drop,.note,.privacy-badge,.queue img,.trust-banner,.trust-check,.processing-state,.processing-state progress,.processing-state progress::-webkit-progress-bar,.processing-state progress::-webkit-progress-value,#results:not(:empty),.result-check,.result-file,.step-picture b,.step-picture,.tools-dropdown,.language-dropdown,.tools-dropdown a,.language-dropdown a,.select-list,.select-list [role=option],.select-trigger,.options input,.options select,.options input[type=checkbox],header nav a,.languages a,button,.button,#results .download,.actions #run.primary,.header-nav summary,.tools-menu summary,.language-menu summary{border-radius:0!important}
.processing-spinner{border-radius:0!important;border:4px solid #e0e5fb;border-top-color:#233ede;border-right-color:#f8e455}
.header-nav details[open]>summary::before{border-radius:0!important}
.result-check{border:2px solid #233ede;background:#f8e455;color:#233ede;box-shadow:3px 3px 0 #233ede}
/* Buttons (reference: lemon fill, cobalt border, hard cobalt shadow). Primary = cobalt fill + lemon hard shadow. */
button,.button{border:2px solid #233ede;background:#f8e455;color:#132a99;box-shadow:4px 4px 0 #233ede;font-weight:750;transition:transform .12s,box-shadow .12s}
button:hover:not(:disabled),.button:hover{background:#f8e455;color:#132a99;filter:none;transform:translate(2px,2px);box-shadow:2px 2px 0 #233ede}
button.primary,.button.primary,.actions #run.primary,#results .download{background:#233ede;color:#fffefa;border:2px solid #233ede;box-shadow:4px 4px 0 #f8e455;opacity:1}
button.primary:hover:not(:disabled),.button.primary:hover,#results .download:hover{background:#132a99;border-color:#132a99;color:#fffefa;filter:none;transform:translate(2px,2px);box-shadow:2px 2px 0 #f8e455}
button.primary:disabled,.actions #run.primary:disabled{background:#fff9cb;color:#132a99;border-color:#e4d758;box-shadow:none;transform:none;opacity:1}
.drop .queue button{background:#fffefa;color:#233ede;box-shadow:2px 2px 0 #233ede}
.card,.drop,.panel,.trust-banner,.trust-check,#results:not(:empty),.result-file,.processing-state{border-color:#233ede}
.privacy-badge{border-radius:0}
.languages a[aria-current]{background:#f8e455;border-radius:0}
/* Selects and header menus: squared retro states, no clipped labels. */
.select-trigger{background:#fffefa;color:#132a99;border:2px solid #233ede;box-shadow:3px 3px 0 #233ede;transform:none;white-space:normal;text-align:left;line-height:1.3;height:auto;min-height:48px}
.select-trigger:hover:not(:disabled){background:#fffefa;transform:none;box-shadow:3px 3px 0 #233ede;filter:none}
.select-trigger[aria-expanded=true],.select-trigger[aria-expanded=true]:hover{background:#fff9cb;border-color:#233ede;box-shadow:1px 1px 0 #233ede;transform:translate(2px,2px)}
.select-list{border:2px solid #233ede;box-shadow:4px 4px 0 #233ede;background:#fffefa}
.select-list [role=option]{white-space:normal;line-height:1.3}
.select-list [role=option]:hover,.select-list [role=option][aria-selected=true]{background:#f8e455;color:#132a99}
.header-nav{flex-wrap:wrap}.header-nav summary{white-space:nowrap;overflow:visible;text-overflow:clip}
.header-nav details[open]>summary::before{display:none}
.header-nav details[open]>summary{border:2px solid #233ede!important;background:transparent!important;box-shadow:none!important}
.header-nav details>summary{border:2px solid transparent!important}
.tools-dropdown,.language-dropdown{border:2px solid #233ede;box-shadow:4px 4px 0 #233ede;border-radius:0!important}
.tools-dropdown a:hover,.language-dropdown a:hover,.language-dropdown a[aria-current]{background:#f8e455;color:#132a99}
@media(max-width:420px){.header-nav{gap:2px}.header-nav summary,.header-nav>a{padding:10px 8px!important;font-size:13px!important}}
/* Tool guidance is always visible; accordions are reserved for the FAQ. */
.tool-help{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:34px 0}
.tool-help .help-item{background:#fffefa;border:2px solid #233ede;box-shadow:4px 4px 0 #f8e455;padding:20px 22px}
.tool-help .help-item h2{font:750 18px/1.3 system-ui,sans-serif;margin:0 0 10px;color:#132a99}
.tool-help .help-item p{margin:0;font-size:15px;line-height:1.6}
@media(max-width:800px){.tool-help{grid-template-columns:1fr;gap:16px}}
/* Refined button palette: softer lemon, deeper cobalt, calm disabled state. */
button,.button{background:#fbe870;color:#17289e;border-color:#1f35c9;box-shadow:4px 4px 0 #1f35c9}
button:hover:not(:disabled),.button:hover{background:#fff1a0;color:#17289e;box-shadow:2px 2px 0 #1f35c9}
button:active:not(:disabled),.button:active{background:#f5de55;transform:translate(4px,4px);box-shadow:0 0 0 #1f35c9}
button.primary,.button.primary,.actions #run.primary,#results .download{background:#1f35c9;color:#fffefa;border-color:#1f35c9;box-shadow:4px 4px 0 #fbe870}
button.primary:hover:not(:disabled),.button.primary:hover,#results .download:hover{background:#17289e;border-color:#17289e;color:#fffefa;box-shadow:2px 2px 0 #fbe870}
button.primary:active:not(:disabled),.button.primary:active,#results .download:active{background:#101c78;transform:translate(4px,4px);box-shadow:0 0 0 #fbe870}
button:disabled,button.primary:disabled,.actions #run.primary:disabled{background:#f1efe2;color:#8c91b3;border-color:#c5c8e0;box-shadow:none;transform:none;opacity:1;cursor:not-allowed}
.drop .queue button{background:#fffefa;color:#1f35c9;box-shadow:2px 2px 0 #1f35c9}
.select-trigger[aria-expanded=true],.select-trigger[aria-expanded=true]:hover{background:#fff6c2}


/* Shadow refinement: deep ink-cobalt by default, lemon kept as a small accent. */
:root{--shadow-cobalt:#101c78;--shadow-lemon:#fbe870}
button,.button{box-shadow:4px 4px 0 var(--shadow-cobalt)}
button:hover:not(:disabled),.button:hover{box-shadow:2px 2px 0 var(--shadow-cobalt)}
button:active:not(:disabled),.button:active{box-shadow:0 0 0 var(--shadow-cobalt)}
button.primary,.button.primary,.actions #run.primary,#results .download{box-shadow:4px 4px 0 var(--shadow-lemon)}
button.primary:hover:not(:disabled),.button.primary:hover,#results .download:hover{box-shadow:2px 2px 0 var(--shadow-lemon)}
button.primary:active:not(:disabled),.button.primary:active,#results .download:active{box-shadow:0 0 0 var(--shadow-lemon)}
.drop .queue button{box-shadow:2px 2px 0 var(--shadow-cobalt)}
.card,.drop,.panel,.trust-banner,.trust-check,#results:not(:empty),.result-file,.processing-state,.result-check{box-shadow:4px 4px 0 var(--shadow-cobalt)}
.select-trigger,.select-trigger:hover:not(:disabled){box-shadow:3px 3px 0 var(--shadow-cobalt)}
.select-trigger[aria-expanded=true],.select-trigger[aria-expanded=true]:hover{box-shadow:1px 1px 0 var(--shadow-cobalt)}
.select-list,.tools-dropdown,.language-dropdown{box-shadow:4px 4px 0 var(--shadow-cobalt)}
/* One lemon-shadow accent outside the primary action: the always-visible guidance cards. */
.tool-help .help-item{box-shadow:4px 4px 0 var(--shadow-lemon)}

/* Home: documents stay in the bird's wings, with a small in-place bob. */
.hero-art>.home-mascot{overflow:visible;animation:home-bob 3.6s ease-in-out 2}
@keyframes home-bob{0%,100%{transform:translateY(0)}45%{transform:translateY(4px)}70%{transform:translateY(-2px)}}
.home-privacy{margin:0 0 38px}
.home-privacy .trust-banner{background:#f8e455;border:2px solid #132a99;box-shadow:6px 6px 0 #132a99;padding:25px 28px;margin:0}
.home-privacy .trust-banner>svg{width:40px;height:45px}
.home-privacy .trust-banner h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(25px,3vw,35px);line-height:1.15}
.home-privacy .trust-banner p{color:#132a99}
.home-privacy .home-privacy-links{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:15px;font-size:13px;font-weight:700}
.home-privacy-links a{text-underline-offset:4px}
@media(max-width:700px){.home-privacy{margin-bottom:32px}.home-privacy .trust-banner{padding:20px 16px;gap:12px;box-shadow:4px 4px 0 #132a99}.home-privacy .trust-banner>svg{width:28px;height:32px}.home-privacy .trust-banner h2{font-size:25px}.home-privacy .trust-banner p{font-size:14px}.home-privacy .home-privacy-links{font-size:12px;gap:10px}}
@media(prefers-reduced-motion:reduce){.hero-art>.home-mascot{animation:none!important}}

.tool-disclaimer h2{font:800 17px/1.3 system-ui,sans-serif;margin:0 0 8px;color:#132a99}
.tool-disclaimer p{margin:0;line-height:1.65}

/* Tool explanations use the same closed-by-default pattern as FAQs. */
.tool-help{display:block;margin:34px 0}
.tool-help .help-detail{background:transparent;border:0;border-bottom:1px solid #c9cee4;box-shadow:none;padding:17px 0}
.tool-help .help-detail p{margin:8px 0 14px;font-size:14px;line-height:1.7}

/* A smaller PDF gets a clear, green size comparison on its own result card. */
#results .result-file:has(.compression-summary){flex-wrap:wrap}
#results .compression-summary{flex-basis:100%;width:100%;margin-top:16px;padding:16px 18px;border:2px solid #132a99;background:#f5f2e4;box-shadow:4px 4px 0 #132a99;color:#132a99}
#results .compression-summary.is-smaller{background:#dcfce7;border-color:#166534;box-shadow:4px 4px 0 #166534;color:#14532d}
#results .compression-sizes{margin:0 0 8px;font-size:15px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
#results .compression-percent{display:block;font-size:clamp(23px,3vw,31px);font-weight:850;line-height:1.2;letter-spacing:-.025em}
#results .compression-summary:not(.is-smaller) .compression-percent{font-size:16px;line-height:1.4}
@media(max-width:600px){#results .compression-summary{padding:14px 15px}#results .compression-sizes{font-size:14px}}

/* Header triggers: one CSS chevron, roomy text, no text glyph inside the arrow. */
.header-nav details>summary{justify-content:space-between;gap:12px;padding:10px 14px!important;min-width:92px;width:max-content;overflow:visible;border:2px solid transparent!important;line-height:1.3}
.header-nav details>summary::after,.header-nav details[open]>summary::after{content:""!important;display:block;flex:0 0 8px;width:8px;height:8px;border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;margin:0 2px 0 0;transform:translateY(-2px) rotate(45deg)}
.header-nav details[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.header-nav details[open]>summary{background:#f8e455!important;border-color:#233ede!important}
.header-nav details>summary::before{display:none!important}
@media(max-width:420px){.header-nav details>summary{padding:10px 12px!important;gap:12px;min-width:88px}}
