:root{--paper:#f6f5ee;--ink:#183e32;--muted:#6c7469;--line:#d9ddd2;--lime:#d3ed77;--white:#fffef9;--red:#a54232;--amber:#a06b1f;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}button,a,label,summary{-webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}a{color:inherit}button{color:inherit}button:disabled{opacity:.5;cursor:wait}.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}.site-header{min-height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:750;font-size:25px;letter-spacing:-1.2px}.brand-symbol{position:relative;font-size:42px;line-height:1;font-family:Georgia,serif;display:inline-block;width:32px}.brand-symbol span{position:absolute;right:-1px;top:3px;font:700 18px Arial;color:var(--ink)}.beta{font-size:8px;letter-spacing:1.2px;font-weight:600;border:1px solid #b8c6b6;border-radius:4px;padding:5px 6px;margin-left:5px}.site-header nav{display:flex;gap:32px;font-size:13px}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.intro{padding-top:46px;padding-bottom:40px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;display:flex;align-items:center;gap:9px;margin:0 0 22px}.dot{width:7px;height:7px;background:var(--ink);border-radius:50%}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(56px,6.2vw,88px);line-height:.99;letter-spacing:-4px;margin:0}h1 span{font-style:italic;color:#647a55}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:22px;gap:20px}.intro-bottom>p{max-width:445px;font-size:14px;line-height:1.7;margin:0;color:#586555}.local-badge{display:flex;align-items:center;gap:9px;font-size:11px;white-space:nowrap;padding-bottom:4px}.local-badge>span{font-size:21px}.workspace{display:grid;grid-template-columns:340px 1fr;border:1px solid #cbd2c2;border-radius:16px;overflow:hidden;background:var(--white);box-shadow:0 16px 44px #183e3205}.controls{border-right:1px solid var(--line);background:#fbfbf5}.control-section{padding:25px 25px 23px;border-bottom:1px solid var(--line)}h2{font-size:14px;letter-spacing:-.25px;margin:0 0 20px;font-weight:700}.control-section h2{display:flex;align-items:center;gap:10px}.step{font-size:10px;color:#7e8a76;border:1px solid #cbd4c1;border-radius:50%;width:23px;height:23px;display:inline-grid;place-items:center;font-weight:400}.drop-zone{display:flex;flex-direction:column;align-items:center;border:1px dashed #b9c5ad;border-radius:9px;padding:23px 12px 17px;background:#f3f5e9;transition:background .15s,border-color .15s}.drop-zone.dragging{background:#e1edbd;border-color:var(--ink)}.upload-icon{font-size:30px;line-height:1;margin-bottom:13px;font-weight:400}.drop-zone strong{font-size:12px}.upload-description{color:var(--muted);font-size:10px;margin-top:7px}.button{display:inline-flex;justify-content:center;align-items:center;gap:15px;font-size:11px;border-radius:5px;padding:12px 17px;font-weight:600;text-decoration:none;line-height:1.2;border:1px solid transparent}.button-dark{color:#fff;background:var(--ink)}.button-dark:hover{background:#285640}.file-label{margin-top:18px;cursor:pointer}.text-button{background:none;border:0;padding:0;font-size:10px;margin-top:13px;text-decoration:underline;text-underline-offset:3px}.text-button span{margin-left:5px}.file-info{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px;padding:10px 0 0}.file-info>div{min-width:0}.file-info strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:220px}.file-info span{font-size:10px;color:var(--muted);display:block;margin-top:4px}.icon-button{border:1px solid var(--line);border-radius:50%;width:25px;height:25px;background:transparent;font-size:18px;line-height:1}.field-row{display:flex;gap:10px;margin-bottom:16px}.grow{flex:1;min-width:0}.unit-field{width:87px}.field label,legend{font-size:10px;font-weight:600;margin-bottom:7px;display:block}.field label span{color:var(--muted);font-weight:400}input[type=number],select{width:100%;height:38px;border:1px solid #ccd3c4;border-radius:5px;color:var(--ink);background:var(--white);padding:0 10px;font-size:12px}select{padding-right:22px}.times{align-self:flex-end;height:38px;display:flex;align-items:center;color:#8b9485;font-size:14px}fieldset{padding:0;border:0;margin:0 0 18px}.segmented{background:#edf0e6;display:flex;padding:3px;border:1px solid var(--line);border-radius:6px}.segmented label{width:50%;position:relative;font-size:10px;text-align:center;cursor:pointer}.segmented input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.segmented span{display:block;padding:10px 4px;border-radius:4px}.segmented input:checked+span{background:var(--ink);color:white;box-shadow:0 2px 3px #183e3212}.segmented input:focus-visible+span{outline:3px solid #829e3a;outline-offset:2px}.custom-ppi{width:90px}.advanced{font-size:10px;color:#63715d;margin-top:5px}.advanced summary{list-style-position:inside}.advanced .field{margin-top:14px}.field small{font-size:10px;line-height:1.5;display:block;margin-top:7px;font-weight:400;color:var(--muted)}.control-note{font-size:9px;line-height:1.6;text-align:center;color:#7f8878;padding:3px 14px;margin:13px 0}.results{min-width:0;padding:25px 28px 0}.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.preview-head h2{margin:0}.preview-tag{font-size:9px;letter-spacing:1px;color:#71806a}.preview-stage{background-color:#eceee5;background-image:radial-gradient(#bdc5b3 .65px,transparent .65px);background-size:12px 12px;position:relative;border-radius:8px;overflow:hidden}.preview-stage canvas{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}.preview-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1.8;font-family:Georgia,serif;font-size:24px}.preview-empty span{font-family:Arial,sans-serif;font-size:12px;color:var(--muted)}.preview-key{display:flex;justify-content:center;gap:22px;font-size:9px;color:#78816f;padding:13px 0 16px;flex-wrap:wrap}.preview-key span{display:inline-flex;align-items:center;gap:6px}.preview-key i{width:10px;height:10px;display:inline-block}.key-paper{border:1px solid var(--ink)}.key-crop{background:#b9beaf;opacity:.6}.key-margin{border:1px dashed #6c7f3e}.verdict{background:#edf4d7;border:1px solid #dbe9b5;border-radius:7px;display:flex;gap:12px;padding:15px 16px;align-items:center}.verdict.warning{background:#fbf1df;border-color:#ead9b5}.verdict-icon{width:28px;height:28px;border-radius:50%;background:var(--lime);display:grid;place-items:center;font-size:16px;flex-shrink:0}.warning .verdict-icon{background:#ecd6a7;color:#76501b}.verdict strong{display:block;font-size:13px}.verdict p{font-size:10px;line-height:1.6;margin:5px 0 0;color:#59664c}.warning p{color:#7b6846}.metrics{display:grid;grid-template-columns:1.05fr 1.25fr .85fr;margin:22px 0}.metric{padding:0 16px;border-left:1px solid var(--line)}.metric:first-child{padding-left:0;border-left:0}.metric>span{font-size:9px;color:#78816e;display:block;margin-bottom:10px}.metric strong{font-size:24px;letter-spacing:-.8px;font-weight:500;white-space:nowrap}.metric strong em{font-size:10px;letter-spacing:0;font-style:normal;font-weight:400}.metric small{font-size:8px;display:block;margin-top:7px;color:#828a7c;line-height:1.6}.report-row{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 0 20px}.report-row p{font-size:10px;line-height:1.7;margin:0}.report-row p span{font-size:9px;color:var(--muted)}.button-outline{border:1px solid #c1cbb6;background:transparent;white-space:nowrap}.button-outline:hover{background:#f0f3e5}.how{display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px;padding-top:65px;padding-bottom:65px}.how .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:17px}.how h2{font-family:Georgia,serif;font-size:36px;font-weight:400;line-height:1.1;letter-spacing:-1px;margin:0}.guide-number{font-size:8px;letter-spacing:1.1px;color:#78836b}.guide-card h3{font-size:15px;font-weight:500;line-height:1.5;margin:14px 0 10px}.guide-card p{font-size:11px;color:#78816e;line-height:1.9;margin:0 0 14px}.guide-card a{font-size:10px;text-decoration:none;border-bottom:1px solid #9cab8d;padding-bottom:4px;display:inline-flex;gap:16px}footer{display:grid;grid-template-columns:1fr 1.4fr auto;gap:32px;border-top:1px solid var(--line);padding:28px 0 32px;align-items:start}.footer-brand{font-weight:700;font-size:16px;letter-spacing:-.5px}.footer-brand span{display:block;font-size:9px;color:#7d8774;margin-top:7px;font-weight:400;letter-spacing:0}footer p{margin:0;line-height:1.8;font-size:9px;color:#7e8875;max-width:470px}.footer-meta{font-size:9px;color:#7e8875}.error{color:var(--red);font-size:11px;line-height:1.6;margin:11px 0 0}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.skip{position:fixed;top:-80px;left:20px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:10px}:focus-visible{outline:3px solid #87a53f;outline-offset:4px}#file-input:focus-visible+.text-button,.drop-zone:focus-within .file-label{outline:3px solid #87a53f;outline-offset:4px}[hidden]{display:none!important}
@media(min-width:1500px){.intro{padding-top:60px}.preview-stage canvas{max-height:460px}}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}.workspace{grid-template-columns:305px 1fr}.control-section{padding:23px 20px}.results{padding:24px 20px 0}.metric{padding-inline:10px}.metric strong{font-size:20px}.report-row{flex-wrap:wrap}.how{gap:30px}.metrics{grid-template-columns:1fr 1.25fr .8fr}.metric small{font-size:8px}.metric>span{font-size:8px}footer{grid-template-columns:.9fr 1.5fr}.footer-meta{display:none}}
@media(max-width:780px){.wrap{width:calc(100% - 36px)}.site-header{min-height:78px}.site-header nav{gap:18px;font-size:11px}.brand{font-size:22px}.brand-symbol{font-size:36px;width:27px}.beta{display:none}.intro{padding-top:34px;padding-bottom:28px}h1{font-size:65px;letter-spacing:-3px}.intro-bottom{display:block;margin-top:20px}.intro-bottom>p{font-size:13px;max-width:430px}.local-badge{margin-top:18px;font-size:10px}.eyebrow{font-size:8px;letter-spacing:1.5px}.workspace{grid-template-columns:1fr}.controls{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;align-items:start}.control-section{border-bottom:0;padding:24px 18px}.upload-section{border-right:1px solid var(--line);height:100%}.control-note{grid-column:1/-1;margin:0;border-top:1px solid var(--line);padding:10px}.results{padding:22px 18px 0}.preview-stage canvas{max-height:420px}.preview-head h2{font-size:13px}.metric strong{font-size:25px}.metric>span{font-size:9px}.metric small{font-size:9px}.metrics{grid-template-columns:1fr 1.25fr .8fr}.report-row{padding:17px 0 20px}.how{grid-template-columns:1fr 1fr;gap:28px;padding-block:40px}.how>div:first-child{grid-column:1/-1}.how h2 br{display:none}.how h2{font-size:31px}.how .eyebrow{margin-bottom:12px}footer{padding-top:24px;gap:20px}}
@media(max-width:490px){.site-header nav a:first-child{display:none}h1{font-size:57px}.controls{display:block}.upload-section{border-right:0;border-bottom:1px solid var(--line)}.control-section{padding:21px 20px}.drop-zone{padding:17px 10px}.upload-icon{margin-bottom:8px}.file-label{margin-top:13px}.preview-stage canvas{height:310px;object-fit:contain}.metric strong{font-size:20px}.metric>span{font-size:8px;line-height:1.5;min-height:24px;margin-bottom:7px}.metric small{font-size:8px}.metric{padding-inline:9px}.metrics{grid-template-columns:1fr 1.25fr .75fr}.verdict strong{font-size:12px}.verdict{padding:13px}.report-row{display:block}.report-row .button{width:100%;margin-top:13px}.preview-key{gap:12px;font-size:8px}.how{grid-template-columns:1fr;gap:26px}.how h2{font-size:29px}.guide-card h3{margin-top:9px}footer{grid-template-columns:1fr}.footer-brand span{display:inline-block;margin-left:13px}footer p{font-size:9px}.file-info strong{max-width:260px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.key-checker{background:conic-gradient(#c7ccbf 25%,#fff 0 50%,#c7ccbf 0 75%,#fff 0);background-size:6px 6px;border:1px solid #c3caba}
.guide .sources{display:block}
@media(max-width:490px){.upload-section{height:auto}}
.skip{top:10px;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap;padding:0}
.skip:focus{clip-path:none;width:auto;height:auto;padding:12px}
