@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(/static/media/dm-sans-latin-ext-400-normal.2d149d08ff5a20db3296.woff2) format("woff2"),url(/static/media/dm-sans-latin-ext-400-normal.a670f2d2237866916178.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(/static/media/dm-sans-latin-400-normal.97def203da337e26d827.woff2) format("woff2"),url(/static/media/dm-sans-latin-400-normal.2c8c7be0365aecdaf260.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(/static/media/dm-sans-latin-ext-500-normal.50b040ac644772dcb734.woff2) format("woff2"),url(/static/media/dm-sans-latin-ext-500-normal.51a1ede8bf3ecdcfa592.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(/static/media/dm-sans-latin-500-normal.95be878c7de25e1db4c0.woff2) format("woff2"),url(/static/media/dm-sans-latin-500-normal.ed11bdb46a5adfbb6416.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(/static/media/dm-sans-latin-ext-700-normal.0256f71a1ff29dc6b6d3.woff2) format("woff2"),url(/static/media/dm-sans-latin-ext-700-normal.534537dfd39d9e6da13c.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(/static/media/dm-sans-latin-700-normal.7747fc5114170ad2f6c7.woff2) format("woff2"),url(/static/media/dm-sans-latin-700-normal.4572dd29358123752875.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:500;src:url(/static/media/space-grotesk-vietnamese-500-normal.152372a3a900b90399af.woff2) format("woff2"),url(/static/media/space-grotesk-vietnamese-500-normal.4cd7d39dff78eef3c3ae.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:500;src:url(/static/media/space-grotesk-latin-ext-500-normal.411a971e2cf9367a1f90.woff2) format("woff2"),url(/static/media/space-grotesk-latin-ext-500-normal.9b786262bfe89305ed9a.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:500;src:url(/static/media/space-grotesk-latin-500-normal.2641fa827a3c8935ce36.woff2) format("woff2"),url(/static/media/space-grotesk-latin-500-normal.b49ceea0c1268b379704.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:700;src:url(/static/media/space-grotesk-vietnamese-700-normal.d961758c27eb1a21c68b.woff2) format("woff2"),url(/static/media/space-grotesk-vietnamese-700-normal.499e5d15f63548664580.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:700;src:url(/static/media/space-grotesk-latin-ext-700-normal.b40ed7a6c4733fbbac9f.woff2) format("woff2"),url(/static/media/space-grotesk-latin-ext-700-normal.60bdf4cbe6f46755f6fa.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:700;src:url(/static/media/space-grotesk-latin-700-normal.da60da10a1aa9aca283c.woff2) format("woff2"),url(/static/media/space-grotesk-latin-700-normal.06b64ac55dcc99993664.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef3f1;color:#19212d;font-family:DM Sans,Segoe UI,sans-serif;margin:0}a{color:inherit}.dropzone{background:linear-gradient(135deg,#f8fafdf0,#fff8f1eb);border:1.5px dashed #12376738;border-radius:28px;cursor:pointer;padding:14px;transition:border-color .25s ease,transform .25s ease,background-color .25s ease}.dropzone:hover{border-color:#12376770;transform:translateY(-1px)}.dropzone.active{background:linear-gradient(135deg,#ffecdffa,#f3f8fefa);border-color:#ff7a59}.upload-content{grid-gap:10px;display:grid;gap:10px;justify-items:center;padding:12px;text-align:center}.upload-content h3{color:#152740;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:clamp(1.18rem,1.6vw,1.45rem);letter-spacing:-.03em;margin:0}.upload-content p{color:#59677b;font-size:.94rem;line-height:1.45;margin:0;max-width:38ch}.upload-icon{background:#12376714;border-radius:18px;color:#123767;height:58px;width:58px}.upload-button,.upload-icon{align-items:center;display:inline-flex;justify-content:center}.upload-button{background:linear-gradient(135deg,#ff8c4b,#ff5d47);border:0;border-radius:16px;box-shadow:0 14px 22px #ff5d4738;box-sizing:border-box;color:#fff!important;cursor:pointer;font-size:1rem;font-weight:700;line-height:1;max-width:60vw;min-height:48px;min-width:220px;padding:14px 22px;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease;vertical-align:middle}@media(max-width:992px){.upload-button{min-width:100%}}.upload-button:hover{box-shadow:0 22px 36px #ff5d474d;transform:translateY(-1px)}.upload-caption{color:#677589;font-size:.86rem}.progress-container{grid-gap:10px;display:grid;gap:10px;margin:6px 0;width:100%}.progress-meta{align-items:center;color:#24354b;display:flex;gap:12px;justify-content:space-between}.progress-meta strong{font-size:.95rem}.progress-meta span{color:#5b697c;font-weight:700}.progress-track{background:#1237671a;border-radius:999px;height:14px;overflow:hidden}.progress-bar{background:linear-gradient(135deg,#ff8c4b,#ff5d47 45%,#234d7b);border-radius:inherit;height:100%;transition:width .3s ease-in-out}.image-preview{display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:30}.image-preview__backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c14209e;inset:0;position:absolute}.image-preview__dialog{background:#fffffff2;border:1px solid #19212d14;border-radius:28px;box-shadow:0 24px 60px #0c142033;max-height:min(88vh,900px);overflow:auto;padding:24px;position:relative;width:min(920px,100%);z-index:1}.image-preview__header{align-items:start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.image-preview__header h3{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:1.4rem;margin:10px 0 0;word-break:break-word}.image-preview__eyebrow{background:#12376714;border-radius:999px;color:#123767;display:inline-flex;font-size:.78rem;font-weight:700;letter-spacing:.14em;padding:8px 14px;text-transform:uppercase}.image-preview__close{background:#fff;border:1px solid #19212d1f;border-radius:16px;color:#152740;cursor:pointer;font-weight:700;min-height:46px;padding:0 18px}.image-preview__body{background:linear-gradient(180deg,#f6f8fb,#eef3f8);border-radius:20px;display:grid;min-height:240px;padding:18px;place-items:center}.image-preview__body img{border-radius:18px;max-height:70vh;max-width:100%;object-fit:contain}.app-shell{background:radial-gradient(circle at top left,#ffb17a52,#0000 32%),radial-gradient(circle at top right,#4688ff33,#0000 28%),linear-gradient(180deg,#f6efe5,#f4f7fb 48%,#eef3f1);min-height:100vh;min-height:100svh;min-height:100dvh;overflow:hidden;position:relative}.app-shell__glow{border-radius:50%;filter:blur(40px);opacity:.55;pointer-events:none;position:absolute}.app-shell__glow--left{background:#ff7a594d;height:260px;left:-120px;top:120px;width:260px}.app-shell__glow--right{background:#1f4d8a29;height:300px;right:-100px;top:40px;width:300px}.App{color:#19212d;display:flex;flex-direction:column;margin:0 auto;max-width:1320px;min-height:100vh;min-height:100svh;min-height:100dvh;padding:calc(18px + env(safe-area-inset-top, 0px)) calc(20px + env(safe-area-inset-right, 0px)) calc(18px + env(safe-area-inset-bottom, 0px)) calc(20px + env(safe-area-inset-left, 0px));position:relative;z-index:1}@media(max-width:992px){.App{padding:calc(14px + env(safe-area-inset-top, 0px)) calc(14px + env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) calc(14px + env(safe-area-inset-left, 0px))}}.workspace-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:16px}.workspace-header h1{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:clamp(1.9rem,3vw,3rem);letter-spacing:-.04em;line-height:1.02;margin:8px 0 6px}.workspace-header p{color:#566476;line-height:1.5;margin:0;max-width:56ch}@media(max-width:992px){.workspace-header{flex-direction:column;gap:12px;margin-bottom:12px}}.github-star{align-items:center;background:linear-gradient(135deg,#16283f,#234d7b);border-radius:999px;box-shadow:0 10px 24px #16283f2e;color:#fff;display:inline-flex;flex:none;font-size:.95rem;font-weight:700;gap:8px;min-height:42px;padding:0 16px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.github-star:focus-visible,.github-star:hover{box-shadow:0 14px 28px #16283f3d;transform:translateY(-1px)}.github-star:focus-visible{outline:3px solid #ff8c4b;outline-offset:2px}.github-star .github-star__icon{color:#ffb36b}.workspace-header__badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;min-width:280px}.workspace-header__badges span{align-items:center;background:#ffffffbd;border:1px solid #1237671a;border-radius:999px;color:#1c3558;display:inline-flex;font-size:.84rem;font-weight:700;min-height:36px;padding:0 12px;white-space:nowrap}@media(max-width:992px){.workspace-header__badges{justify-content:flex-start;min-width:0}}.compression-details,.empty-state-card,.panel-note,.privacy-note,.results-summary-card,.selection-bar,.uploaded-image,.workspace-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc7;border:1px solid #19212d14;box-shadow:0 24px 60px #1c283814}.eyebrow,.section-heading__eyebrow{align-items:center;background:#12376714;border-radius:999px;color:#123767;display:inline-flex;font-size:.74rem;font-weight:700;letter-spacing:.14em;padding:7px 12px;text-transform:uppercase;width:max-content}.workspace-grid{grid-gap:18px;display:grid;flex:1 1;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);min-height:0}@media(max-width:992px){.workspace-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}.workspace-card{border-radius:26px;display:flex;flex-direction:column;min-height:0;padding:18px}.workspace-card--secondary{gap:14px}@media(max-width:992px){.workspace-card{border-radius:24px;padding:16px}}.workspace-panel{overflow:hidden}.section-heading{align-items:end;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:1.45rem;letter-spacing:-.03em;margin:8px 0 0}.section-heading p{color:#5a6677;font-size:.95rem;line-height:1.45;margin:0;max-width:30ch}@media(max-width:992px){.section-heading{align-items:flex-start;flex-direction:column}}.panel-stack{display:flex;flex-direction:column;gap:12px;min-height:0}.empty-state-card,.panel-note,.privacy-note,.selection-bar{border-radius:18px;padding:13px 15px}.panel-note{align-items:center;color:#445368;display:flex;gap:12px;justify-content:space-between;margin-top:12px}.panel-note strong{color:#16283f}.panel-note span{line-height:1.4;text-align:right}@media(max-width:992px){.panel-note{align-items:flex-start;flex-direction:column}.panel-note span{text-align:left}}.selection-bar{align-items:center;color:#344052;display:flex;gap:12px;justify-content:space-between;margin-top:12px}.selection-bar strong{color:#0f223c;font-size:1.15rem}@media(max-width:992px){.selection-bar{align-items:flex-start;flex-direction:column}}.empty-state-card{grid-gap:6px;color:#5a6677;display:grid;gap:6px;margin-top:12px;min-height:0}.empty-state-card strong{color:#172334}.compress-level,.compression-settings{grid-gap:12px;display:grid;gap:12px}.settings-check,.settings-field{background:#f7f9fcf2;border:1px solid #12376714;border-radius:20px}.settings-field{grid-gap:8px;display:grid;gap:8px;padding:14px}.settings-field span{color:#223047;font-weight:700}.settings-field select{background:#fff;border:1px solid #12376724;border-radius:14px;color:#1a283b;font:inherit;min-height:46px;outline:none;padding:0 14px;width:100%}.settings-check{align-items:center;color:#223047;cursor:pointer;display:flex;font-weight:700;gap:10px;padding:14px}.settings-check input{accent-color:#123767;height:18px;width:18px}.toggle-row{align-items:center;background:#f7f9fcf2;border:1px solid #12376714;border-radius:18px;color:#213045;cursor:pointer;display:flex;gap:10px;padding:13px 14px}.toggle-row input{accent-color:#123767;height:18px;width:18px}.privacy-note{background:linear-gradient(135deg,#fff4e6f0,#ffffffdb)}.privacy-note--compact{padding:14px}.privacy-note strong{color:#7b3919;display:block;margin-bottom:6px}.privacy-note p{color:#6d4d3f;font-size:.94rem;line-height:1.45;margin:0}.action-header{align-items:center;color:#23344a;display:flex;gap:12px;justify-content:space-between}.action-header strong{font-size:1rem}.action-header span{color:#5b697c;font-size:.9rem;text-align:right}@media(max-width:992px){.action-header{align-items:flex-start;flex-direction:column}.action-header span{text-align:left}}.button-container{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1200px){.button-container{grid-template-columns:1fr}}.button-container button{border:1px solid #0000;border-radius:18px;cursor:pointer;font-size:1rem;font-weight:700;min-height:50px;padding:0 16px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease}.button-container button:hover:not(:disabled){box-shadow:0 16px 28px #1425411f;transform:translateY(-1px)}.button-container button:disabled{box-shadow:none;cursor:not-allowed;opacity:.55}.compress-button{background:linear-gradient(135deg,#16283f,#234d7b);color:#fff}.download-button{background:linear-gradient(135deg,#ff8c4b,#ff5d47);color:#fff}.back-button,.download-button--secondary{background:#ffffffe6;border-color:#1824351f;color:#16283f}.uploaded-images{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:12px;min-height:0}.uploaded-images--scrollable{align-content:start;flex:1 1;min-height:0;overflow:auto;padding-right:4px}.uploaded-image{grid-gap:10px;border-radius:20px;display:grid;gap:10px;padding:12px;position:relative}.uploaded-image img{aspect-ratio:4/3;background:#eef2f7;border-radius:16px;object-fit:cover;width:100%}.uploaded-image__meta{grid-gap:4px;display:grid;gap:4px}.uploaded-image__meta span,.uploaded-image__meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-image__meta strong{color:#16283f;font-size:.96rem}.uploaded-image__meta span{color:#607084;font-size:.92rem}.uploaded-image-btn{align-items:center;background:#16283fcc;border:0;border-radius:50%;color:#fff;display:inline-flex;height:34px;justify-content:center;position:absolute;right:12px;top:12px;width:34px}.uploaded-image-btn:hover{background:#ff5d47f2}.results-panel{grid-gap:12px;display:grid;gap:12px;min-height:0}.results-panel--scrollable{overflow:auto;padding-right:4px}.results-summary-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1200px){.results-summary-grid{grid-template-columns:1fr}}.results-summary-card{grid-gap:6px;border-radius:20px;display:grid;gap:6px;padding:16px 18px}.results-summary-card span{color:#607084;font-size:.9rem}.results-summary-card strong{color:#13253d;font-size:1.2rem}.compression-details{border-radius:22px;padding:16px}.compression-details h3{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:1.2rem;margin:0 0 14px}.compression-details ul{grid-gap:12px;display:grid;gap:12px;list-style:none;margin:0;padding:0}.compression-details li{align-items:center;border-bottom:1px solid #19212d14;display:flex;gap:16px;justify-content:space-between;padding-bottom:12px}.compression-details li:last-child{border-bottom:0;padding-bottom:0}.compression-details li div{grid-gap:4px;display:grid;gap:4px;min-width:0}.compression-details li span,.compression-details li strong{overflow:hidden;text-overflow:ellipsis}.compression-details li strong{white-space:nowrap}.compression-details li span{color:#5a6677;line-height:1.4}@media(max-width:992px){.compression-details li{align-items:flex-start;flex-direction:column}}.panel-credit{color:#5d6c80;font-size:.92rem;margin:auto 0 0;padding-top:4px}.panel-credit a{color:#163763;font-weight:700;text-decoration:none}