:root{--accent:#a33117}.hero .eyebrow{color:#ffc5b5}.cta p{opacity:1}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 14px;border-radius:8px;background:#fff;color:#14211b;box-shadow:0 4px 18px #0003;transform:translateY(-150%);transition:transform .15s}.skip-link:focus{transform:translateY(0)}

.runtime-status{margin:0 0 16px;padding:11px 13px;border:1px solid #cddbd2;border-radius:10px;background:#f3f8f4;color:var(--green);font-size:.88rem;font-weight:750}.runtime-status-error{border-color:#e4b4a8;background:#fff2ee;color:#8b2d18}.calculator[aria-busy="true"] button[type="submit"]{cursor:progress}

.site-header{gap:18px}.site-header>nav{margin-inline-start:auto}.hero h1,.page-head h1,.card h3,.tool-row strong{overflow-wrap:anywhere}@media(max-width:760px){.site-header{gap:10px}.site-header>nav{gap:10px}}@media(max-width:460px){.site-header{flex-wrap:wrap}.site-header>nav{order:3;width:100%;justify-content:center;margin-inline-start:0}}

/* Focused, page-local creative utilities. */
.creative-tool input[type="color"]{min-height:48px;padding:4px}
.creative-tool [hidden]{display:none!important}
.tool-inline-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.tool-inline-actions .button,.signature-draw-controls .button{margin-top:0}
.creative-canvas-wrap{margin-top:22px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#dfe4e0;box-shadow:inset 0 0 0 1px #fff8}
.creative-canvas-wrap canvas{display:block;width:100%;height:auto;margin:auto;background:#fff;box-shadow:0 8px 26px #14211b20}
.signature-canvas-wrap{background-color:#e8e8e2;background-image:linear-gradient(45deg,#d7d7d1 25%,transparent 25%),linear-gradient(-45deg,#d7d7d1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d7d7d1 75%),linear-gradient(-45deg,transparent 75%,#d7d7d1 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}
.signature-canvas-wrap canvas{max-width:900px;aspect-ratio:3/1;background:transparent;object-fit:contain}
.signature-canvas-wrap canvas.is-drawing{cursor:crosshair;touch-action:none}
.signature-draw-controls{margin-top:18px}
.signature-draw-controls>label{display:block;max-width:420px}
.creative-output[hidden],.creative-output [hidden],.diff-output[hidden]{display:none}
.creative-output{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}
.creative-output p{margin:0}.creative-output .button{margin:0}
.meme-tool-layout{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(300px,1.18fr);gap:24px;align-items:start}
.meme-tool-layout>div:first-child>label{display:block;margin-bottom:18px}
.meme-tool-layout>div:first-child>label small{display:block;margin-top:6px}
.meme-tool-layout .creative-canvas-wrap{margin-top:0}
.meme-canvas-wrap canvas{max-height:680px;object-fit:contain}
.meme-tool-layout .button.secondary{margin-top:12px}
.source-status{min-height:1.4em;margin:9px 0 18px;color:var(--muted);font-size:.88rem;overflow-wrap:anywhere}
.text-compare-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.text-compare-inputs section{min-width:0;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.text-compare-inputs h2{margin:0 0 14px;font-size:1.25rem}
.text-compare-inputs textarea{min-height:21rem;font:500 .88rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;overflow:auto;resize:vertical}
.diff-output{margin-top:24px}
.diff-output>p{margin-bottom:0;text-align:center}.diff-output>p .button{margin-top:0}
.diff-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.diff-legend span{padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;font-weight:750}
.diff-legend .is-same{background:#fff}.diff-legend .is-removed{background:#ffe4df}.diff-legend .is-added{background:#def2e5}
.diff-output table{table-layout:fixed;min-width:760px}
.diff-output th:nth-child(1),.diff-output th:nth-child(3),.diff-output td:nth-child(1),.diff-output td:nth-child(3){width:58px}
.diff-output th,.diff-output td{text-align:left;vertical-align:top;white-space:pre-wrap}
.diff-line-number{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right!important;user-select:none}
.diff-text{overflow-wrap:anywhere;font:500 .82rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.diff-row.is-removed td:nth-child(-n+2){background:#ffe4df;color:#722315}
.diff-row.is-added td:nth-child(n+3){background:#def2e5;color:#164d31}
.diff-row.is-same{color:#4d5b54}
@media(max-width:760px){
  .meme-tool-layout,.text-compare-inputs{grid-template-columns:1fr}
  .text-compare-inputs textarea{min-height:15rem}
}
@media(max-width:520px){
  .tool-inline-actions{display:grid}
  .tool-inline-actions .button{width:100%}
  .creative-canvas-wrap{padding:8px}
}

/* High-demand local file and capture tools. */
.image-pdf-list li>span:first-child{display:grid;min-width:0;gap:3px}.image-pdf-list li>span:first-child strong{overflow-wrap:anywhere}.image-pdf-list li>span:first-child small{color:var(--muted)}
.file-order-actions{display:flex;flex:0 0 auto;gap:6px}.file-order-actions .button{margin:0;padding:7px 9px;font-size:.76rem}
.resize-output[hidden],.screen-output[hidden]{display:none}
.resize-output img{max-height:38rem}
.screen-output{display:grid;gap:14px;margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.screen-output h2{margin:0;font-size:1.25rem}.screen-output video{display:block;width:100%;max-height:38rem;border-radius:10px;background:#111}
.screen-output .button{width:max-content;margin:0}.screen-output small{color:var(--muted);overflow-wrap:anywhere}
.screen-status strong{font-size:1.08rem;font-variant-numeric:tabular-nums}
.compact-notice{margin:20px 0 0;padding:12px 14px;font-size:.88rem}
@media(max-width:720px){
  .image-pdf-list li{display:block}
  .file-order-actions{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px}
}
@media(max-width:520px){
  .screen-output{padding:14px}
  .screen-output .button{width:100%;text-align:center}
}
.coin-face{display:grid;width:9rem;aspect-ratio:1;margin:24px auto 0;border:8px double #f6d365;border-radius:50%;background:linear-gradient(145deg,#fff0a5,#d99c24);box-shadow:inset 0 0 0 3px #9a6817,0 10px 28px #14211b24;color:#513500;font-size:1.15rem;font-weight:850;text-align:center;place-items:center}
.pomodoro-display strong,.coin-face,[data-pomodoro-progress],.stopwatch-display strong,.countdown-display strong{font-variant-numeric:tabular-nums}
.dice-results{display:flex;flex-wrap:wrap;gap:10px;min-height:0;margin-top:22px}.dice-results:empty{margin:0}.dice-results span{display:grid;min-width:3.25rem;min-height:3.25rem;padding:8px;border:2px solid var(--green);border-radius:12px;background:#fff;color:var(--green);box-shadow:0 5px 13px #14211b14;font-size:1.15rem;font-weight:850;place-items:center}
.color-picker-layout{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(220px,1fr) minmax(180px,.8fr);gap:18px;align-items:stretch}.native-color-label input[type="color"]{display:block;width:100%;height:9.5rem;margin-top:7px;padding:6px;cursor:pointer}.color-picker-layout .button{margin-top:12px}.color-preview{display:grid;min-height:12rem;padding:20px;border:1px solid var(--line);border-radius:12px;background:#2563eb;color:#fff;font-weight:800;text-align:center;place-items:center;transition:background-color .12s,color .12s}
.pdf-file-list{display:grid;gap:9px;margin:18px 0 0;padding:0;list-style:none}.pdf-file-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow-wrap:anywhere}.pdf-file-controls{display:flex;flex:0 0 auto;gap:6px}.pdf-file-controls .button{margin:0;padding:7px 9px;font-size:.78rem}.pdf-download{margin-top:18px}.pdf-download .button{margin:0}@media(max-width:720px){.color-picker-layout{grid-template-columns:1fr 1fr}.color-preview{grid-column:1/-1;min-height:8rem}.pdf-file-list li{display:block}.pdf-file-controls{margin-top:10px}}@media(max-width:480px){.color-picker-layout{grid-template-columns:1fr}.color-preview{grid-column:auto}.pdf-file-controls{display:grid;grid-template-columns:repeat(3,1fr)}}
.sleep-options{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}.sleep-options li{display:grid;gap:3px;padding:15px 17px;border:1px solid var(--line);border-radius:11px;background:#fff}.sleep-options strong{font-size:1.18rem}.sleep-options span{color:var(--muted);font-size:.88rem}
.cps-target{display:grid;width:100%;min-height:16rem;margin-top:20px;padding:24px;border:3px solid var(--green);border-radius:18px;background:#e6efe9;color:var(--green);font:850 clamp(1.4rem,5vw,2.6rem)/1.1 inherit;cursor:pointer;place-items:center;touch-action:manipulation;user-select:none}.cps-target:hover,.cps-target:focus-visible{background:#d5e9dc}.cps-target:active{transform:scale(.995)}.cps-display strong{font-variant-numeric:tabular-nums}
.pdf-image-output{margin-top:26px}.pdf-image-output h2{margin-bottom:14px}.pdf-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}.pdf-image-grid figure{margin:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.pdf-image-grid img{display:block;width:100%;height:auto;max-height:30rem;object-fit:contain;border:1px solid #ddd;background:#fff}.pdf-image-grid figcaption{display:grid;gap:7px;margin-top:10px}.pdf-image-grid .button{margin:0;text-align:center}.pdf-image-grid small{color:var(--muted);text-align:center}
.wheel-tool-layout{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(280px,1.1fr);gap:28px;align-items:center}.wheel-tool-layout label+label{display:block;margin-top:18px}.wheel-stage{position:relative;width:min(100%,36rem);margin:auto;aspect-ratio:1}.wheel-stage canvas{display:block;width:100%;height:100%;filter:drop-shadow(0 12px 18px rgba(20,46,36,.14));transition:transform 3.6s cubic-bezier(.12,.7,.08,1);will-change:transform}.wheel-stage canvas.is-spinning{pointer-events:none}.wheel-pointer{position:absolute;top:-.4rem;left:50%;z-index:2;width:0;height:0;border-right:1.15rem solid transparent;border-left:1.15rem solid transparent;border-top:2.4rem solid var(--accent);filter:drop-shadow(0 3px 2px rgba(0,0,0,.18));transform:translateX(-50%)}@media(prefers-reduced-motion:reduce){.wheel-stage canvas{transition-duration:.08s}}@media(max-width:760px){.wheel-tool-layout{grid-template-columns:1fr}.wheel-stage{width:min(100%,30rem)}}
.notepad-editor{min-height:28rem;font:500 1rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4}.notepad-download{display:inline-block;margin-top:16px}.notepad-download[hidden]{display:none}.notepad-status strong{font-size:1.05rem;font-variant-numeric:tabular-nums}
.voice-meter{height:1rem;margin:24px 0 18px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:#edf1ed}.voice-meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),#e5ae35,var(--accent));transition:width .08s linear}.voice-status strong{font-size:1.15rem;font-variant-numeric:tabular-nums}.voice-output{display:grid;gap:14px;margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.voice-output[hidden]{display:none}.voice-output h2{margin:0;font-size:1.25rem}.voice-output audio{width:100%}.voice-output .button{width:max-content;margin:0}.voice-output small{color:var(--muted)}.calculator button:disabled{cursor:not-allowed;opacity:.48}
.graph-output{margin-top:1.25rem}.graph-output canvas{display:block;width:100%;height:auto;border:1px solid var(--line,#cbd5ce);border-radius:.75rem;background:#fff}.graph-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.75rem;font-size:.9rem}.graph-legend span{display:inline-flex;align-items:center;gap:.4rem}.graph-legend i{width:.85rem;height:.2rem;border-radius:1rem}
.typing-prompt{margin:1rem 0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.75rem;background:#f7f9f7;font:500 1.05rem/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;user-select:none}

/* Keep directory search useful without spending a card-sized block on it. */
.directory>.page-head{margin-bottom:16px}
.directory .tool-search{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:8px;width:min(100%,460px);max-width:none;margin-top:12px;padding:7px 9px;border-radius:11px}
.directory .tool-search label{display:block;padding:0 4px;color:var(--muted);font-size:.78rem;line-height:1;white-space:nowrap}
.directory .tool-search input{height:38px;margin:0;padding:7px 11px;border-radius:8px;font-size:.92rem}
.directory .tool-search p{margin:0;font-size:.78rem;line-height:1.2;white-space:nowrap}
.directory .tool-search [data-tool-empty]{grid-column:2/-1;padding:2px 2px 1px;white-space:normal}
.directory>.page-head+.directory-group{margin-top:28px}
@media(max-width:600px){
  .directory .tool-search{grid-template-columns:minmax(0,1fr) auto;margin-top:10px;padding:6px}
  .directory .tool-search label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .directory .tool-search input{height:36px;padding:6px 10px}
  .directory .tool-search [data-tool-empty]{grid-column:1/-1}
}

/* Keep the utility homepage information-dense: the first screen should expose
   useful tools instead of spending most of its height on presentation. */
body:has(.hero) .site-header{padding-top:16px;padding-bottom:16px}
.hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:clamp(30px,6vw,76px);align-items:center;margin-top:12px;margin-bottom:24px;padding:42px clamp(28px,5vw,60px);border-radius:24px}
.hero h1{max-width:720px;font-size:clamp(2.65rem,5.2vw,4.7rem);line-height:.96;margin:.18em 0}
.hero>p:not(.eyebrow){max-width:650px;margin:.75em 0 0;font-size:1.08rem}
.hero-main>p:not(.eyebrow){max-width:650px;margin:.75em 0 0;color:#dce9e2;font-size:1.05rem}
.hero .button{margin-top:16px}
.home-tool-search{max-width:610px;margin-top:22px}
.home-tool-search label{display:block;margin-bottom:7px;color:#fff;font-size:.88rem}
.home-tool-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.home-tool-search input{min-height:48px;margin:0;border:2px solid transparent;border-radius:10px}
.home-tool-search .button{min-height:48px;margin:0;padding:11px 18px;border-radius:10px}
.home-tool-search input:focus{outline:3px solid #ffc5b5;outline-offset:2px}
.hero-shortcuts{display:grid;gap:0;border-top:1px solid #ffffff45}
.hero-shortcuts>p{margin:0;padding:0 0 10px;color:#ffc5b5;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.hero-shortcuts a{display:flex;justify-content:space-between;gap:16px;padding:10px 2px;border-bottom:1px solid #ffffff45;color:#fff;text-decoration:none;font-size:.9rem;font-weight:700}
.hero-shortcuts a:hover{text-decoration:underline}
.hero+.section{padding-top:30px}
.section{padding-top:48px;padding-bottom:48px}
.section-heading{display:block}
.section-heading .eyebrow{margin-bottom:4px}
.section-heading h2{margin-top:0}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.card{min-height:205px;padding:20px;border-radius:16px}
.card h3{margin:18px 0 7px;font-size:1.2rem}
.card p{margin:.25em 0;font-size:.91rem;line-height:1.48}
.card b{padding-top:10px;font-size:.88rem}
.cta{margin-top:36px;margin-bottom:36px;padding:48px 24px}

@media(max-width:980px){
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .hero{display:block;margin:6px 12px 18px;padding:34px 22px}
  .hero h1{font-size:clamp(2.5rem,12vw,4rem)}
  .hero-shortcuts{margin-top:28px}
  .hero+.section{padding-top:24px}
  .section{padding-top:36px;padding-bottom:36px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{min-height:185px;padding:16px}
  .card h3{font-size:1.05rem}
  .card p{font-size:.84rem}
}
@media(max-width:480px){
  .home-tool-search>div{grid-template-columns:1fr}
  .home-tool-search .button{width:100%}
  .cards{grid-template-columns:1fr}
  .card{min-height:0}
}

/* Directory pages prioritize scanning over decorative whitespace. */
.directory{margin-top:32px}
.directory>.page-head{margin-bottom:26px}
.directory .page-head h1{margin-bottom:.12em}
.directory .lede{margin-top:.45em}
.directory-group{margin:42px 0}
.directory-group>h2{margin-bottom:14px;padding-bottom:10px;font-size:1.7rem}
.directory-group>p{margin-top:-4px;margin-bottom:14px;max-width:880px;color:var(--muted)}
.tool-list{gap:10px}
.tool-row{padding:16px 18px;border-radius:13px}
.tool-row strong{font-size:1.03rem}
.tool-row span{margin-top:2px;font-size:.9rem;line-height:1.45}
.tool-search{margin-top:22px;padding:16px 18px}
.recent-tools{margin-top:20px;padding:18px}

@media(max-width:760px){
  .directory{margin-top:28px}
  .directory-group{margin:34px 0}
  .tool-row{padding:15px}
}

/* Local PDF page utilities and exact image cropping. */
.pdf-split-output[hidden],.crop-output[hidden],.pdf-page-tool [hidden]{display:none!important}
.pdf-split-output{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.pdf-split-output h2{margin:0 0 14px;font-size:1.3rem}
.pdf-split-downloads{display:flex;flex-wrap:wrap;gap:10px}
.pdf-split-downloads .button{margin:0;text-align:center}
.pdf-remove-workspace{margin-top:24px}.pdf-remove-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:15px}.pdf-remove-heading h2{margin:0;font-size:1.4rem}.pdf-remove-heading p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.pdf-remove-heading>strong{flex:0 0 auto;color:var(--green);font-size:.92rem}.pdf-remove-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}.pdf-remove-actions .button{margin:0;padding:9px 13px;font-size:.82rem}.pdf-remove-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:11px;max-height:42rem;padding:12px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#e7e8e2}.pdf-remove-page{display:grid;min-width:0;padding:8px;border:2px solid transparent;border-radius:11px;background:#fff;color:var(--ink);text-align:left;box-shadow:0 2px 8px #14211b12;transition:border-color .15s,background .15s,transform .15s}.pdf-remove-page:hover{transform:translateY(-2px);border-color:#93a69c}.pdf-remove-page:focus-visible{outline:3px solid #f2643d66;outline-offset:2px}.pdf-remove-page.is-removed{border-color:var(--accent);background:#fff0ea}.pdf-remove-preview{position:relative;display:grid;min-height:8.4rem;overflow:hidden;border:1px solid #d5d8d1;border-radius:7px;background:linear-gradient(135deg,#f4f4f1,#e3e5df);place-items:center}.pdf-remove-preview canvas{display:block;width:auto;max-width:100%;height:auto;max-height:11rem;background:#fff;box-shadow:0 1px 6px #0002}.pdf-remove-preview>[data-page-loading]{position:absolute;padding:5px;color:var(--muted);font-size:.72rem;text-align:center}.pdf-remove-page[data-rendered="true"] [data-page-loading]{display:none}.pdf-remove-page-label{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 2px 0;font-size:.76rem}.pdf-remove-page-label strong{font-size:.8rem}.pdf-remove-page-label>[data-page-state]{color:var(--green);font-weight:800}.pdf-remove-page.is-removed [data-page-state]{color:#a63017}.pdf-remove-output[hidden]{display:none}.pdf-remove-output .button{margin-top:0}
.crop-instructions{margin:22px 0 10px;color:var(--muted);font-size:.92rem}
.crop-stage{display:grid;width:100%;min-height:8rem;margin:0 0 22px;padding:14px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#202722;place-items:center}
.crop-stage:has(canvas[width="1"][height="1"]){display:none}
.crop-stage canvas{display:block;width:auto;max-width:100%;height:auto;max-height:43rem;cursor:crosshair;touch-action:none;user-select:none}
.crop-fields input:disabled,.crop-fields select:disabled{cursor:not-allowed;background:#f1f1ed;color:#7a827e}
.crop-output img{max-height:38rem}
.rotate-output[hidden],.pdf-image-output[hidden]{display:none}
.rotate-output img{max-height:38rem}
.currency-swap{margin-right:8px}
.currency-result strong{font-size:clamp(1.05rem,3vw,1.45rem);overflow-wrap:anywhere}
.currency-source-note{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
.currency-source-note a{font-weight:700}
.tts-tool textarea{min-height:15rem}
.tts-result strong{font-size:1.05rem}
.ip-result strong{font-size:clamp(1.35rem,5vw,2.25rem);overflow-wrap:anywhere}
.ip-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0 0}
.ip-detail-grid div{min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.ip-detail-grid dt{color:var(--muted);font-size:.76rem;font-weight:700}.ip-detail-grid dd{margin:4px 0 0;font-weight:800;overflow-wrap:anywhere}
@media(max-width:520px){
  .pdf-split-downloads{display:grid}
  .pdf-split-downloads .button{width:100%}
  .pdf-remove-heading{display:block}.pdf-remove-heading>strong{display:block;margin-top:8px}.pdf-remove-actions{display:grid;grid-template-columns:1fr 1fr}.pdf-remove-actions .button{width:100%}.pdf-remove-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:34rem;padding:8px}.pdf-remove-preview{min-height:7.5rem}
  .crop-stage{padding:8px}
  .currency-swap{margin-right:0}
  .ip-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* High-demand planning and coordinate calculators. */
.calculation-output[hidden],.unit-fields[hidden]{display:none}
.calculation-output{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#f8f8f3}
.calculation-output>h2{margin:0 0 16px;font-size:1.35rem}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.metric-grid>div{min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}
.metric-grid dt{color:var(--muted);font-size:.76rem;font-weight:750}
.metric-grid dd{margin:5px 0 0;font-size:1rem;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.result-reading{margin:18px 0 0;padding:14px 16px;border-left:4px solid var(--green);background:#edf5ef;color:#30473c}
.metric-grid .formula-value{font:700 .95rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}
.calculation-output .table-scroll{margin-top:18px}
.calculation-caution{margin:16px 0 0;padding:12px 14px;border-left:4px solid var(--green);background:#e6efe9;font-size:.9rem}
.calculation-caution.is-warning{border-left-color:var(--accent);background:#fff0ea;color:#6f2a1b}
.unit-fields{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.coordinate-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.coordinate-points fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.coordinate-points legend{padding:0 6px;font-weight:800}
.coordinate-points .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .metric-grid,.coordinate-points{grid-template-columns:1fr}
  .calculation-output{padding:14px}
}

/* Local QR reading and shape-volume controls. */
.qr-camera-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.qr-camera-actions .button,.qr-safe-link{margin:0}
.qr-video-stage{position:relative;margin-top:18px;overflow:hidden;border:2px solid var(--green);border-radius:14px;background:#111}
.qr-video-stage[hidden],.qr-scan-canvas[hidden],.qr-safe-link[hidden]{display:none}
.qr-video-stage video{display:block;width:100%;max-height:34rem;object-fit:contain}
.qr-video-stage span{position:absolute;right:12px;bottom:12px;left:12px;padding:8px 11px;border-radius:9px;background:#14211bd9;color:#fff;font-size:.82rem;font-weight:750;text-align:center}
.qr-scan-canvas{display:block;width:auto;max-width:100%;height:auto;max-height:34rem;margin:18px auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff}
.qr-scan-result strong{max-height:22rem}
.qr-content-type{min-height:1.4em;margin:10px 0 0;color:var(--muted);font-size:.88rem;font-weight:700;overflow-wrap:anywhere}
.qr-safe-link{display:inline-block;margin-top:12px}
.volume-fields{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.volume-fields[hidden]{display:none}
@media(max-width:520px){
  .qr-camera-actions{display:grid}
  .qr-camera-actions .button,.qr-safe-link{width:100%;text-align:center}
}

/* High-demand device diagnostics and tire comparison. */
.keyboard-actions,.webcam-actions{display:flex;flex-wrap:wrap;gap:10px}
.keyboard-actions .button,.webcam-actions .button{margin:0}
.keyboard-metrics,.webcam-metrics,.tire-metrics{margin-top:20px}
.keyboard-scroll{margin-top:20px;padding:16px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#1d2621;outline-offset:4px}
.keyboard-board{display:flex;min-width:1120px;gap:14px;color:#fff;user-select:none}
.keyboard-zone{display:grid;align-content:start;gap:6px}
.keyboard-main{width:704px}.keyboard-navigation{width:174px}.keyboard-numpad{width:226px}
.keyboard-row{display:flex;min-height:43px;gap:5px}
.keyboard-row:first-child{margin-bottom:11px}
.keyboard-key{display:grid;flex:0 0 calc(39px * var(--key-width));min-width:0;min-height:42px;padding:4px;border:1px solid #718078;border-radius:7px;background:#37463e;color:#fff;font:750 .71rem/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;box-shadow:0 2px 0 #0d1511;place-items:center;transition:background .08s,transform .08s}
.keyboard-key.is-tested{border-color:#83cfac;background:#286b4d}
.keyboard-key.is-pressed{border-color:#ffc1a8;background:#d9532f;box-shadow:none;transform:translateY(2px)}
.keyboard-navigation .keyboard-row:nth-last-child(2){justify-content:center;margin-top:11px}
.keyboard-legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin:14px 0 0;color:var(--muted);font-size:.86rem}
.keyboard-legend span{display:flex;align-items:center;gap:7px}.keyboard-legend i{display:inline-block;width:18px;height:18px;border-radius:5px;background:#286b4d}.keyboard-legend i.is-pressed{background:#d9532f}
.tire-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.tire-pair fieldset{min-width:0;margin:0;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff}
.tire-pair legend{padding:0 7px;font-size:1rem;font-weight:800}
.tire-pair .fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.tire-size-label{margin:14px 0 0;padding:10px;border-radius:9px;background:#e6efe9;color:var(--green);font:800 1.15rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center}
.webcam-stage{position:relative;margin-top:18px;overflow:hidden;border:2px solid var(--green);border-radius:14px;background:#111}
.webcam-stage[hidden],.webcam-snapshot[hidden]{display:none}
.webcam-stage video{display:block;width:100%;max-height:38rem;object-fit:contain}
.webcam-stage video.is-mirrored{transform:scaleX(-1)}
.webcam-stage span{position:absolute;right:12px;bottom:12px;left:12px;padding:8px 11px;border-radius:9px;background:#14211bd9;color:#fff;font-size:.82rem;font-weight:750;text-align:center}
.webcam-snapshot h2{margin-top:0;font-size:1.3rem}.webcam-snapshot .button{margin:0}
@media(max-width:760px){
  .tire-pair{grid-template-columns:1fr}
}
@media(max-width:520px){
  .keyboard-actions,.webcam-actions{display:grid}
  .keyboard-actions .button,.webcam-actions .button{width:100%}
  .keyboard-scroll{padding:10px}
  .tire-pair .fields{grid-template-columns:1fr}
}

/* Private audio diagnostics and solid-color display inspection. */
.microphone-actions,.speaker-actions{display:flex;flex-wrap:wrap;gap:10px}
.microphone-actions .button,.speaker-actions .button{margin:0}
.microphone-level{position:relative;height:1.25rem;margin:22px 0 14px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:linear-gradient(90deg,#e8eeea 0 72%,#f7dfaa 72% 90%,#f3c4b6 90%)}
.microphone-level span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),#e1ac37 78%,var(--accent));transition:width .07s linear}
.microphone-level i{position:absolute;top:-2px;bottom:-2px;left:0;width:3px;border-radius:3px;background:#14211b;transform:translateX(-1px)}
.microphone-waveform{display:block;width:100%;max-width:100%;min-width:0;height:auto;max-height:18rem;box-sizing:border-box;border:1px solid var(--line);border-radius:13px;background:#14211b}
.microphone-metrics,.speaker-metrics{margin-top:20px}
.speaker-warning{margin:0 0 20px;padding:13px 15px;border-left:4px solid var(--accent);background:#fff0ea;color:#6f2a1b}
.speaker-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}
.speaker-channels>div{display:flex;align-items:center;gap:13px;padding:18px;border:2px solid var(--line);border-radius:14px;background:#fff;transition:background .12s,border-color .12s,transform .12s}
.speaker-channels span{display:grid;width:46px;height:46px;border-radius:50%;background:#dfe7e2;color:var(--green);font-size:1.3rem;font-weight:850;place-items:center}
.speaker-channels strong{font-size:1.08rem}
.speaker-channels>div.is-active{border-color:var(--accent);background:#fff0ea;transform:translateY(-2px)}
.speaker-channels>div.is-active span{background:var(--accent);color:#fff}
.speaker-status strong{font-size:1.08rem}
.dead-pixel-preview{height:9rem;margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(90deg,#000 0 11.11%,#fff 11.11% 22.22%,red 22.22% 33.33%,#0f0 33.33% 44.44%,#00f 44.44% 55.55%,#0ff 55.55% 66.66%,#f0f 66.66% 77.77%,#ff0 77.77% 88.88%,#808080 88.88%)}
.dead-pixel-tool>h2{margin:28px 0 12px;font-size:1.35rem}
.dead-pixel-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.dead-pixel-swatches button{position:relative;min-height:72px;padding:0;overflow:hidden;border:2px solid #bcc3bd;border-radius:10px}
.dead-pixel-swatches button span{position:absolute;right:4px;bottom:4px;left:4px;padding:4px;border-radius:6px;background:#14211bd9;color:#fff;font-size:.7rem;font-weight:750}
.dead-pixel-checklist{display:grid;gap:8px;padding-left:1.4rem}
.dead-pixel-overlay{position:fixed;z-index:9999;inset:0;cursor:crosshair}
.dead-pixel-overlay[hidden]{display:none!important}
.dead-pixel-controls{position:absolute;z-index:2;right:16px;bottom:16px;left:16px;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:12px;background:#14211bde;color:#fff;box-shadow:0 4px 22px #0005;cursor:default}
.dead-pixel-controls button{min-height:2.5rem;padding:8px 12px;border:1px solid #ffffff66;border-radius:8px;background:#fff;color:#14211b;font:inherit;font-weight:750}
.dead-pixel-controls strong{min-width:12rem;text-align:center}
.dead-pixel-hint{position:absolute;top:14px;right:14px;left:14px;margin:0;padding:8px 11px;border-radius:9px;background:#14211bd9;color:#fff;font-size:.8rem;font-weight:700;text-align:center;cursor:pointer}
.dead-pixel-overlay.controls-hidden .dead-pixel-controls,.dead-pixel-overlay.controls-hidden .dead-pixel-hint{display:none}
body.dead-pixel-active{overscroll-behavior:none}
@media(max-width:700px){
  .dead-pixel-controls{flex-wrap:wrap}
  .dead-pixel-controls strong{order:-1;width:100%}
}
@media(max-width:520px){
  .microphone-actions,.speaker-actions{display:grid}
  .microphone-actions .button,.speaker-actions .button{width:100%}
  .speaker-channels{gap:8px}.speaker-channels>div{display:grid;justify-items:center;padding:13px;text-align:center}
  .dead-pixel-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* High-demand local OCR, refresh timing, and print-ready text tools. */
.refresh-motion-stage{position:relative;height:9rem;margin-top:18px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f4f5ef}
.refresh-motion-grid{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 39px,#d7ddd8 40px 41px),linear-gradient(180deg,#fff,#edf1ed)}
.refresh-motion-marker{position:absolute;top:50%;left:5%;display:flex;gap:4px;transform:translate(-50%,-50%);will-change:left}
.refresh-motion-marker i{display:block;width:28px;height:58px;border-radius:7px;background:var(--accent);box-shadow:0 3px 10px #14211b22}
.refresh-motion-marker i:nth-child(2){height:76px;margin-top:-9px;background:var(--green)}
.refresh-motion-marker i:nth-child(3){background:#e1ac37}
.refresh-progress{height:.7rem;margin-top:12px;overflow:hidden;border-radius:999px;background:#dfe5e1}
.refresh-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--green)}
.refresh-actions,.ocr-actions,.text-pdf-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.refresh-actions .button,.ocr-actions .button,.text-pdf-actions .button{margin:0}
.ocr-preview .metric-grid,.ocr-output .metric-grid,.text-pdf-metrics{margin-top:20px}

.ocr-preview{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.ocr-preview[hidden],.ocr-progress[hidden],.ocr-output[hidden]{display:none!important}
.ocr-preview img{display:block;max-width:100%;max-height:32rem;margin:auto;border-radius:10px;object-fit:contain}
.ocr-options{align-items:end;margin-top:20px}
.ocr-check{display:flex;align-items:center;min-height:3.4rem;padding:12px 14px;border:1px solid #bfc2ba;border-radius:10px;background:#fff}
.ocr-check input{flex:0 0 auto}
.ocr-progress{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.ocr-progress>div{height:.8rem;overflow:hidden;border-radius:999px;background:#dfe5e1}
.ocr-progress>div span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--accent));transition:width .15s linear}
.ocr-progress p{margin:10px 0 0;color:var(--muted);font-size:.9rem;font-weight:700}
.ocr-output{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.ocr-output-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.ocr-output-head h2{margin:0;font-size:1.35rem}
.ocr-output-head span{padding:6px 10px;border-radius:999px;background:#e6efe9;color:var(--green);font-size:.8rem;font-weight:800}
.ocr-output textarea{min-height:18rem;font:500 .95rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}

.text-pdf-preview-wrap{margin:34px 0 60px}
.text-pdf-tool textarea{font-weight:400}
.text-pdf-preview-wrap>div{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}
.text-pdf-preview-wrap h2{margin:0;font-size:1.5rem}
.text-pdf-preview-wrap>div span{color:var(--muted);font-size:.84rem}
.text-pdf-document{width:min(100%,8.5in);margin:auto;padding:var(--text-pdf-preview-padding,.75in);border:1px solid #c8cbc5;background:#fff;color:#111;box-shadow:0 14px 40px #14211b17;font-family:Arial,"Helvetica Neue",sans-serif;font-size:var(--text-pdf-font-size,12pt);line-height:var(--text-pdf-line-height,1.45);text-align:var(--text-pdf-align,left);overflow-wrap:anywhere}
.text-pdf-document.is-a4.is-portrait{aspect-ratio:210/297}
.text-pdf-document.is-letter.is-portrait{aspect-ratio:8.5/11}
.text-pdf-document.is-a4.is-landscape{width:min(100%,11.69in);aspect-ratio:297/210}
.text-pdf-document.is-letter.is-landscape{width:min(100%,11in);aspect-ratio:11/8.5}
.text-pdf-document h1,.text-pdf-print-document h1{margin:0 0 .75em;font:700 1.7em/1.2 Arial,"Helvetica Neue",sans-serif;overflow-wrap:anywhere}
.text-pdf-document>div,.text-pdf-print-document>div{white-space:pre-wrap}
.text-pdf-print-document{display:none}

@media(max-width:520px){
  .refresh-actions,.ocr-actions,.text-pdf-actions{display:grid}
  .refresh-actions .button,.ocr-actions .button,.text-pdf-actions .button{width:100%}
  .refresh-motion-stage{height:7rem}
  .ocr-output{padding:14px}.ocr-output-head{display:block}.ocr-output-head span{display:inline-block;margin-top:8px}
  .text-pdf-preview-wrap>div{display:block}.text-pdf-preview-wrap>div span{display:block;margin-top:4px}
  .text-pdf-document{padding:min(var(--text-pdf-preview-padding,.75in),12vw)}
}

@media print{
  .text-pdf-screen{display:none!important}
  .text-pdf-page>.article{display:none!important}
  body:has(.text-pdf-print-document){margin:0;background:#fff;color:#000}
  .text-pdf-page{max-width:none;margin:0;padding:0}
  .text-pdf-print-document{display:block!important;margin:0;padding:0;background:#fff;color:#000;font-family:Arial,"Helvetica Neue",sans-serif;overflow-wrap:anywhere}
}
.directory{max-width:1180px;margin:50px auto;padding:0 32px}.directory-group{margin:60px 0}.directory-group>h2{font-size:2rem;letter-spacing:-.04em;border-bottom:1px solid var(--line);padding-bottom:14px}.tool-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.tool-row{display:block;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-decoration:none;transition:.2s}.tool-row:hover{transform:translateY(-2px);box-shadow:0 8px 24px #14211b0d}.tool-row strong{display:block;font-size:1.12rem}.tool-row span{display:block;color:var(--muted);margin-top:4px}.tool-search{max-width:620px;margin-top:32px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.tool-search label{display:block}.tool-search input{width:100%;margin-top:8px}.tool-search p{margin:10px 0 0;color:var(--muted);font-size:.9rem}.tool-search [data-tool-empty]{color:#9b321d;font-weight:700}
.recent-tools{margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#e6efe9}.recent-tools h2{margin:.15em 0 0;font-size:1.5rem}.recent-tools-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.recent-tool{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none}.recent-tool span{color:var(--muted);font-size:.86rem;white-space:nowrap}.recent-tool:hover strong{text-decoration:underline}
.personal-tools{background:#fff4ee}.save-tool{margin-top:18px;padding:9px 13px;border:1px solid var(--green);border-radius:999px;background:transparent;color:var(--green);font:inherit;font-size:.88rem;font-weight:750}.save-tool:hover,.save-tool.is-saved{background:var(--green);color:#fff}
.related-tools{border-top:1px solid var(--line);padding-top:32px;margin-top:60px}.related-tools h2{font-size:1.5rem}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.related-grid a{padding:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;font-weight:700}.related-guide{margin-top:30px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff}.related-guide h2{margin:.15em 0 .35em;font-size:1.35rem}.related-guide p:last-child{margin-bottom:0}.related-guide a{font-weight:750}.principles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:35px 0}.principle{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}.principle h2{margin-top:0;font-size:1.25rem}
@media(max-width:760px){.tool-list,.related-grid,.principles,.recent-tools-list{grid-template-columns:1fr}.directory{padding:0 20px}}
@media(prefers-reduced-motion:reduce){.skip-link,.tool-row{transition:none}.tool-row:hover{transform:none}}
.calculator-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.calculator-actions .button{margin-top:20px}.button.secondary{border:1px solid var(--green);background:transparent;color:var(--green)}.button.secondary:hover{background:#e6efe9}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #f2643d;outline-offset:3px}@media(max-width:520px){.calculator-actions{display:grid;grid-template-columns:1fr}.calculator-actions .button{width:100%;margin-top:10px}.calculator-actions .button:first-child{margin-top:20px}}
.guided-step-navigation{display:grid;gap:12px;margin:2px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#f5f8f5}.guided-step-progress{margin:0;color:var(--muted);font-size:.88rem;font-weight:800}.guided-step-controls{display:flex;flex-wrap:wrap;gap:10px}.guided-step-controls .button{margin:0}.guided-wizard>.form-step[hidden]{display:none!important}@media(max-width:520px){.guided-step-controls{display:grid}.guided-step-controls .button{width:100%}}
textarea{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #bfc2ba;border-radius:10px;background:white;font:inherit;resize:vertical}.code-output strong{font:500 .92rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:34rem;overflow:auto}
.markdown-preview{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:14px;background:white;overflow-wrap:anywhere}.markdown-preview>:first-child{margin-top:0}.markdown-preview>:last-child{margin-bottom:0}.markdown-preview pre{overflow:auto;padding:14px;border-radius:10px;background:#14211b;color:#f6f3ea}.markdown-preview code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.markdown-preview blockquote{margin-left:0;padding-left:16px;border-left:4px solid var(--accent);color:var(--muted)}
.image-output{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:14px;background:white}.image-output img{display:block;max-width:100%;max-height:32rem;margin:auto;border-radius:10px}.image-output p{margin-bottom:0;text-align:center}
.qr-output{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#f6f4ed;text-align:center}.qr-output canvas{display:block;width:min(100%,32rem);height:auto;margin:auto;background:#fff;box-shadow:0 8px 24px #14211b16;image-rendering:pixelated}.qr-output p{margin:18px 0 0}.qr-output .button{margin:0}
.passport-editor,.passport-output{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:14px;background:white}.passport-editor-copy,.passport-output-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:10px}.passport-editor-copy h2,.passport-output-heading h2{margin:.1em 0 0;font-size:1.55rem}.passport-output-heading>p{max-width:26rem;margin:0;color:var(--muted);font-size:.9rem}.passport-editor-actions{display:flex;flex-wrap:wrap;gap:8px}.passport-editor-actions .button{margin:0;padding:10px 14px}.passport-editor-instruction{margin:0 0 18px;color:var(--muted)}.passport-editor-layout{display:grid;grid-template-columns:minmax(280px,540px) minmax(220px,1fr);gap:24px;align-items:start}.passport-editor-stage{position:relative;width:100%;aspect-ratio:1;margin:auto;overflow:hidden;border:3px solid var(--green);border-radius:16px;background:#d9ddd9;box-shadow:0 12px 34px #14211b24;cursor:grab;touch-action:none;user-select:none}.passport-editor-stage:active{cursor:grabbing}.passport-editor-stage canvas{display:block;width:100%;height:100%}.passport-composition-guide{position:absolute;inset:0;pointer-events:none;filter:drop-shadow(0 1px 1px #0007)}.passport-composition-guide[hidden]{display:none}.passport-center-line{position:absolute;top:0;bottom:0;left:50%;border-left:1px dashed #fff9}.passport-eye-zone{position:absolute;top:31%;left:0;width:100%;height:13%;border-top:2px solid #2ee08c;border-bottom:2px solid #2ee08c;background:#24c77a24}.passport-eye-zone b{position:absolute;top:4px;left:8px;padding:4px 7px;border-radius:6px;background:#0d593ee8;color:#fff;font-size:.68rem}.passport-head-bracket{position:absolute;top:17%;right:5%;width:10%;height:65%;border:3px solid #ffd166;border-left:0}.passport-head-bracket:before,.passport-head-bracket:after{content:"";position:absolute;right:0;width:160%;border-top:3px solid #ffd166}.passport-head-bracket:before{top:0}.passport-head-bracket:after{bottom:0}.passport-head-bracket b{position:absolute;top:50%;right:8px;width:8rem;transform:translateY(-50%) rotate(-90deg);transform-origin:right center;padding:3px 6px;border-radius:5px;background:#6e4e00e8;color:#fff;font-size:.65rem;text-align:center}.passport-head-shape{position:absolute;top:17%;left:24%;width:52%;height:65%;border:2px dashed #ffd166;border-radius:48% 48% 44% 44%}.passport-drag-label{position:absolute;right:10px;bottom:10px;padding:5px 9px;border-radius:999px;background:#14211bd9;color:#fff;font-size:.72rem;font-weight:750;pointer-events:none}.passport-editor-status{margin:12px 0 0;color:var(--muted);font-size:.9rem;text-align:center}.passport-visual-check{padding:20px;border:1px solid var(--line);border-radius:14px;background:#f6f4ed}.passport-visual-check h3{margin:.15em 0 14px;font-size:1.3rem}.passport-visual-check ol{display:grid;gap:10px;margin:0;padding:0;list-style:none}.passport-visual-check li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px;border-radius:10px;background:#fff}.passport-visual-check li>span{display:grid;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-weight:800;place-items:center}.passport-visual-check p{margin:0;color:var(--muted);font-size:.86rem}.passport-visual-check strong{display:block;color:var(--ink);font-size:.93rem}.passport-visual-note{margin-top:14px!important}.passport-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:22px;align-items:start}.passport-preview-grid figure{margin:0}.passport-preview-grid figcaption{margin-top:8px;color:var(--muted);font-size:.84rem;text-align:center}.passport-preview-wrap{position:relative;width:100%;aspect-ratio:1;margin:auto;overflow:hidden;background:#eee}.passport-preview-wrap img{display:block;width:100%;height:100%;object-fit:cover}.passport-sheet-preview{width:100%;aspect-ratio:2/3;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 8px 22px #14211b16}.passport-sheet-preview img{display:block;width:100%;height:100%;object-fit:contain}.passport-guide-note{max-width:46rem;margin:14px auto 0;color:var(--muted);font-size:.9rem;text-align:center}.passport-downloads{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.passport-downloads .button{margin-top:0}.calculator input[type="range"]{padding:0;accent-color:var(--green)}.calculator label output{display:block;margin-top:6px;color:var(--muted);font-size:.9rem}@media(max-width:760px){.passport-editor-layout{grid-template-columns:1fr}.passport-visual-check ol{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.passport-editor-copy,.passport-output-heading{display:block}.passport-editor-actions{margin-top:12px}.passport-output-heading>p{margin-top:8px}.passport-preview-grid{grid-template-columns:1fr}.passport-sheet-preview{width:min(72%,320px);margin:auto}.passport-visual-check ol{grid-template-columns:1fr}}@media(max-width:520px){.passport-editor,.passport-output{padding:14px}.passport-editor-actions{display:grid}.passport-editor-actions .button{width:100%}.passport-drag-label{font-size:.65rem}.passport-downloads{display:grid}.passport-downloads .button{text-align:center}}
.zip-output{margin-top:28px}.zip-output td:first-child{max-width:28rem;overflow-wrap:anywhere;white-space:normal}.zip-download,.archive-download{margin:0;padding:8px 12px}.zip-output [role="status"]{min-height:1.5em;color:var(--muted)}
.calculator input[type="checkbox"]{display:inline-block;width:1.05rem;height:1.05rem;margin:0 .45rem 0 0;padding:0;accent-color:var(--green);vertical-align:-.15em}

/* Local PDF editor */
.pdf-editor-page{max-width:1180px}.pdf-editor{padding:24px}.pdf-editor-upload{padding:4px}.pdf-editor-file-status{margin:14px 0 0;color:var(--muted);overflow-wrap:anywhere}.pdf-editor-workspace{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:24px;margin-top:24px}.pdf-editor-workspace[hidden]{display:none}.pdf-editor-toolbar{display:grid;gap:14px;align-content:start}.pdf-editor-tool-picker{display:grid;gap:11px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.pdf-editor-tool-picker p{margin:0}.pdf-editor-tool-picker p>strong,.pdf-editor-tool-picker p>span{display:block}.pdf-editor-tool-picker p>span{margin-top:4px;color:var(--muted);font-size:.86rem;line-height:1.45}.pdf-editor-tool-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pdf-editor-tool-buttons .button{width:100%;margin:0;padding:9px 8px;font-size:.82rem}.pdf-editor-tool-buttons .button[aria-pressed="true"]{border-color:var(--green);background:var(--green);color:#fff}.pdf-editor-tool-status{color:var(--muted);font-size:.8rem;line-height:1.4}.pdf-editor-toolbar fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f6f4ed}.pdf-editor-toolbar .pdf-editor-tool-panel[hidden]{display:none}.pdf-editor-toolbar legend{padding:0 7px;color:var(--green);font-weight:850}.pdf-editor-toolbar label{min-width:0}.pdf-editor-toolbar input,.pdf-editor-toolbar select{margin-top:5px;padding:9px}.pdf-editor-toolbar input[type="color"]{height:43px;padding:4px;cursor:pointer}.pdf-editor-toolbar .check-label{align-self:end;padding:10px 0}.pdf-editor-toolbar .check-label input{width:1rem;height:1rem;margin:0 .35rem 0 0}.pdf-editor-wide,.pdf-editor-toolbar fieldset>.button,.pdf-signature-pad,.pdf-editor-inline-actions{grid-column:1/-1}.pdf-editor-toolbar fieldset>.button{width:100%;margin:0}.pdf-signature-pad{display:block;width:100%;height:auto;border:1px solid #aeb4af;border-radius:10px;background:#fff;cursor:crosshair;touch-action:none}.pdf-editor-inline-actions,.pdf-editor-page-actions,.pdf-editor-save-actions{display:flex;flex-wrap:wrap;gap:9px}.pdf-editor-inline-actions .button,.pdf-editor-page-actions .button,.pdf-editor-save-actions .button{margin:0}.pdf-editor-inline-actions .button{flex:1 1 8rem;padding:9px 12px}.pdf-editor-document{min-width:0}.pdf-editor-pagebar{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.pdf-editor-pagebar .button{margin:0;padding:9px 14px}.pdf-editor-pagebar label{display:flex;align-items:center;gap:7px}.pdf-editor-pagebar input{display:inline-block;width:5rem;margin:0;padding:8px;text-align:center}.pdf-editor-pagebar span{white-space:nowrap}.pdf-editor-instruction{margin:0 0 12px;color:var(--muted);font-size:.88rem;text-align:center}.pdf-editor-stage-wrap{overflow:auto;padding:14px;border:1px solid var(--line);border-radius:14px;background:#dfe3df}.pdf-editor-stage{position:relative;width:100%;max-width:100%;margin:auto;overflow:hidden;background:#fff;box-shadow:0 10px 26px #14211b24;isolation:isolate}.pdf-editor-stage canvas,.pdf-editor-item-layer{position:absolute;inset:0;display:block;width:100%;height:100%}.pdf-editor-stage canvas:first-child{position:relative}.pdf-editor-drawing-layer{z-index:2;pointer-events:none}.pdf-editor-item-layer{z-index:3;pointer-events:none}.pdf-editor-stage.is-drawing .pdf-editor-drawing-layer{cursor:crosshair;pointer-events:auto;touch-action:none}.pdf-editor-stage.is-drawing .pdf-editor-item-layer{pointer-events:none}.pdf-editor-item{position:absolute;display:flex;align-items:flex-start;border:2px solid transparent;cursor:move;pointer-events:auto;touch-action:none;user-select:none}.pdf-editor-item.is-selected{border-color:var(--accent);background:#fff2}.pdf-editor-item-content{display:block;width:100%;height:100%;pointer-events:none}.pdf-editor-item.is-image .pdf-editor-item-content{object-fit:fill}.pdf-editor-item.is-text .pdf-editor-item-content{overflow:visible;line-height:1.15;white-space:nowrap}.pdf-editor-resize-handle{position:absolute;right:-7px;bottom:-7px;display:none;width:15px;height:15px;border:2px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 1px 4px #0005;cursor:nwse-resize}.pdf-editor-item.is-selected .pdf-editor-resize-handle{display:block}.pdf-editor-loading{position:absolute;inset:0;z-index:5;display:grid;background:#fffffff0;color:var(--green);font-weight:850;place-items:center}.pdf-editor-loading[hidden]{display:none}.pdf-editor-page-actions{justify-content:center;margin-top:12px}.pdf-editor-page-actions .button{padding:9px 13px}.pdf-editor-result,.pdf-editor-save-actions{grid-column:1/-1}.pdf-editor-result{margin:0}.pdf-editor-result strong{font-size:1.1rem}.pdf-editor-save-actions{justify-content:flex-end;padding-top:2px}@media(max-width:860px){.pdf-editor-workspace{grid-template-columns:1fr}.pdf-editor-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-editor-tool-picker,.pdf-editor-tool-panel{grid-column:1/-1}}@media(max-width:620px){.pdf-editor{padding:14px}.pdf-editor-toolbar{grid-template-columns:1fr}.pdf-editor-tool-buttons{grid-template-columns:1fr 1fr}.pdf-editor-pagebar{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:7px}.pdf-editor-pagebar .button{padding:9px 7px;font-size:.78rem}.pdf-editor-pagebar label{justify-content:center}.pdf-editor-pagebar input{width:3.7rem}.pdf-editor-stage-wrap{padding:7px}.pdf-editor-page-actions,.pdf-editor-save-actions{display:grid}.pdf-editor-page-actions .button,.pdf-editor-save-actions .button{width:100%;text-align:center}}
.option-group{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0;padding:12px 14px;border:1px solid #bfc2ba;border-radius:10px}.option-group legend{padding:0 5px;font-size:.9rem;font-weight:700}.option-group .check-label{font-weight:600}

.selection-status{margin:4px 0 14px;color:var(--muted);font-size:.9rem}
.scientific-inserts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:14px}
.scientific-inserts button{min-height:42px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#f5f8f5;color:var(--green);font:800 .94rem/1 system-ui,sans-serif;cursor:pointer}
.scientific-inserts button:hover{background:#e6efe9}.scientific-inserts button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.scientific-examples{margin-top:12px}.scientific-examples .button{padding:9px 12px;font-size:.84rem}
@media(max-width:620px){.scientific-inserts{grid-template-columns:repeat(4,minmax(0,1fr))}.scientific-examples{display:grid}.scientific-examples .button{width:100%}}

/* Guided forms for calculators that need several related assumptions. */
.calculator-intro{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin:0 0 22px;padding:16px 18px;border-radius:14px;background:#edf3ef;color:var(--muted)}
.calculator-intro:before{content:"Before you start";padding:4px 9px;border-radius:999px;background:var(--green);color:#fff;font-size:.72rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.calculator-intro p{margin:0}
.calculator .form-step{min-width:0;margin:0 0 18px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 5px 18px #14211b09}
.calculator .form-step legend{max-width:calc(100% - 12px);padding:0 8px 0 0;color:var(--ink);font-size:1.08rem;font-weight:850;line-height:1.3}
.advanced-options{margin:14px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8faf8}.advanced-options summary{cursor:pointer;color:var(--ink);font-weight:800}.advanced-options>p{margin:10px 0;color:var(--muted);font-size:.88rem}.advanced-options .fields{margin-top:10px}
.step-number{display:inline-grid;width:30px;height:30px;margin-right:8px;border-radius:50%;background:var(--green);color:#fff;font-size:.86rem;place-items:center;vertical-align:middle}
.step-help{max-width:680px;margin:0 0 16px;color:var(--muted);font-size:.9rem;line-height:1.5}
.form-step .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-step label{min-width:0}
.field-help{display:block;margin:4px 0 0;color:var(--muted);font-size:.78rem;font-weight:450;line-height:1.35}
.calculator>.form-step+.button{margin-top:2px}
.form-step input,.form-step select{min-height:48px}
.debt-entry{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f8f7f2}
.debt-entry:first-of-type{margin-top:0}
.debt-entry[hidden]{display:none}
.debt-entry h3{margin:0 0 12px;color:var(--green);font-size:1rem;letter-spacing:0}
.debt-entry .fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.progressive-entry-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}
.progressive-entry-controls .button{margin:0;padding:10px 15px}
.progressive-entry-controls p{margin:0;color:var(--muted);font-size:.84rem}
.result:focus{outline:3px solid var(--accent);outline-offset:3px}
.guided-result{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px;font-size:1rem!important}
.guided-result-item{display:block;padding:11px 12px;border:1px solid #cddbd2;border-radius:10px;background:#fff;color:var(--ink);font-size:.88rem;font-weight:650;line-height:1.4}
.guided-result-primary{grid-column:1/-1;padding:15px 16px;border:0;background:var(--green);color:#fff;font-size:clamp(1.15rem,3vw,1.5rem);font-weight:850}
.guided-result:not(.show-all-details) .guided-result-overflow{display:none}
.guided-result-toggle{width:max-content;margin:12px 0 0;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--green);font:750 .84rem/1.2 system-ui,sans-serif;cursor:pointer}
.guided-result-toggle:hover{background:#edf2ee}.guided-result-toggle:focus-visible{outline:3px solid #f2b84b;outline-offset:2px}
@media(max-width:760px){.calculator-intro{grid-template-columns:1fr}.calculator-intro:before{width:max-content}.calculator .form-step{padding:16px}.form-step .fields,.debt-entry .fields{grid-template-columns:1fr}.calculator .form-step legend{font-size:1rem}.step-help{font-size:.86rem}.calculator>.button[type="submit"]{width:100%;min-height:50px;text-align:center}.guided-result{grid-template-columns:1fr}.guided-result-primary{grid-column:auto}.progressive-entry-controls{display:grid}.progressive-entry-controls .button{width:100%}}
.schedule-output{margin-top:28px}.schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.schedule-heading h2{margin:0}.schedule-heading .button{margin-top:0}.table-scroll{overflow:auto;margin-top:16px;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;background:white;font-size:.86rem}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}tbody tr:last-child td{border-bottom:0}.progress-track{display:inline-block;width:78px;height:8px;margin-right:7px;border-radius:99px;background:#d9d8cf;overflow:hidden;vertical-align:middle}.progress-track span{display:block;height:100%;background:var(--green)}@media(max-width:520px){.schedule-heading{display:block}.schedule-heading .button{margin-top:12px}}
.article pre{overflow:auto;padding:18px;border-radius:12px;background:#14211b;color:#f6f3ea;font:500 .9rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.article :not(pre)>code{padding:.12em .35em;border-radius:.3em;background:#e6efe9;font:500 .88em ui-monospace,SFMono-Regular,Consolas,monospace}
.contrast-preview{margin-top:22px;padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff}.contrast-preview>strong{font-size:1.45rem}.contrast-preview button{padding:9px 13px;border:2px solid currentColor;border-radius:8px;background:transparent;color:inherit;font:inherit;font-weight:700}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 14px;border-radius:8px;background:#fff;color:#14211b;box-shadow:0 4px 18px #0003;transform:translateY(-150%);transition:transform .15s}.skip-link:focus{transform:translateY(0)}

/*
 * Simple, direct visual layer.
 * Functional workspaces keep their purpose-built controls; the surrounding
 * site uses plain surfaces, restrained type, and compact spacing.
 */
:root {
  --ink: #202922;
  --muted: #5c655f;
  --paper: #fff;
  --card: #fff;
  --accent: #9b3c27;
  --green: #2f5542;
  --line: #d9ddd9;
  --radius: 4px;
}

body {
  background: #fff;
  line-height: 1.6;
}

.site-header {
  max-width: 1120px;
  min-height: 60px;
  padding: 12px 24px;
  border-bottom: 1px solid var(--line);
}

.site-header nav {
  gap: 18px;
}

.hero {
  max-width: 1120px;
  margin: 0 auto;
  padding: 46px 24px;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  background-image: none;
  color: var(--ink);
}

.hero h1 {
  max-width: 720px;
  margin: .16em 0 .3em;
  font-size: clamp(2.6rem, 5vw, 4.4rem);
  line-height: 1;
  letter-spacing: -.045em;
}

.hero-main > p:not(.eyebrow),
.hero > p:not(.eyebrow) {
  color: var(--muted);
}

.hero .eyebrow,
.hero-shortcuts > p {
  color: var(--accent);
}

.hero-shortcuts {
  border-top-color: var(--line);
}

.hero-shortcuts a {
  border-bottom-color: var(--line);
  color: var(--ink);
  font-weight: 650;
}

.button {
  border: 1px solid var(--green);
  border-radius: 4px;
  background: var(--green);
}

.button.light {
  border-color: var(--green);
  background: #fff;
  color: var(--green);
}

.section {
  max-width: 1120px;
  padding-top: 44px;
  padding-bottom: 44px;
}

.section h2,
.cta h2 {
  font-size: clamp(1.9rem, 3.5vw, 3rem);
  letter-spacing: -.035em;
}

.cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  border-top: 1px solid var(--line);
}

.card {
  min-height: 0;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  transition: none;
}

.card:hover {
  background: #f7f8f7;
  box-shadow: none;
  transform: none;
}

.card h3 {
  margin: 10px 0 6px;
  font-size: 1.2rem;
}

.card p {
  margin: .2em 0;
}

.card b {
  padding-top: 10px;
}

.cta {
  max-width: 1068px;
  margin-top: 24px;
  margin-bottom: 24px;
  padding: 40px 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  color: var(--ink);
}

.page,
.directory {
  margin-top: 34px;
}

.page-head {
  margin-bottom: 30px;
}

.page-head h1 {
  max-width: 780px;
  font-size: clamp(2.35rem, 5.5vw, 3.9rem);
  line-height: 1.04;
  letter-spacing: -.045em;
}

.calculator {
  margin: 28px 0;
  padding: 24px;
  border-radius: 4px;
  background: #f8f9f8;
  box-shadow: none;
}

input,
select,
textarea,
.calculator .form-step,
.calculator-intro,
.advanced-options,
.debt-entry,
.guided-step-navigation,
.guided-result-item,
.guided-result-toggle,
.result,
.table-scroll,
.tool-search,
.tool-row {
  border-radius: 4px;
  box-shadow: none;
}

.calculator .form-step {
  background: #fff;
}

.calculator-intro {
  background: #f1f4f2;
}

.calculator-intro::before,
.step-number {
  border-radius: 4px;
}

.result {
  padding: 18px;
  border-left: 4px solid var(--green);
  background: #edf3ef;
}

.tool-row {
  transition: none;
}

.tool-row:hover {
  box-shadow: none;
  transform: none;
}

footer {
  max-width: 1120px;
  margin-top: 48px;
  padding: 24px;
}

@media (max-width: 760px) {
  .site-header {
    padding: 10px 18px;
  }

  .hero {
    margin: 0;
    padding: 36px 20px;
  }

  .hero-shortcuts {
    margin-top: 24px;
  }

  .section {
    padding-top: 34px;
    padding-bottom: 34px;
  }

  .cards {
    grid-template-columns: 1fr;
  }

  .calculator {
    padding: 18px;
  }
}
