:root{--color-bg:#F7F5F0;--color-bg-raised:#FFFFFF;--color-ink:#1A1D1B;--color-muted:#63665F;--color-accent:#1F3A5F;--color-accent-ink:#FFFFFF;--color-accent-soft:#E7ECF1;--color-line:#DDD8CC;--color-danger:#8A3324;--font-display:ui-serif,Georgia,"Iowan Old Style","Palatino Linotype",serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--space-1:0.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--radius:10px;--max-width:760px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);line-height:1.55;font-size:16px}a{color:var(--color-accent)}a:focus-visible,button:focus-visible,input:focus-visible,label:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:0.001ms !important;transition-duration:0.001ms !important}}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-3)}.site-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--color-line)}.brand{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--color-ink);text-decoration:none;letter-spacing:-0.01em}.brand-mark{color:var(--color-accent)}.nav-link{font-size:0.95rem;color:var(--color-muted);text-decoration:none}.nav-link:hover{color:var(--color-ink)}.trust-badge{display:inline-flex;align-items:center;gap:0.5em;font-family:var(--font-mono);font-size:0.8rem;color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:0.35em 0.9em}.trust-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent);flex-shrink:0}.hero{padding:var(--space-5) 0 var(--space-4)}.hero h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.75rem);line-height:1.15;letter-spacing:-0.015em;margin:var(--space-2) 0 var(--space-2)}.hero p.lede{font-size:1.15rem;color:var(--color-muted);max-width:46ch}.diagram{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;flex-wrap:wrap}.diagram-step{flex:1 1 140px;text-align:center;padding:var(--space-2);background:var(--color-bg-raised);border:1px solid var(--color-line);border-radius:var(--radius)}.diagram-step svg{display:block;margin:0 auto var(--space-1)}.diagram-step .label{font-family:var(--font-mono);font-size:0.8rem;color:var(--color-muted)}.diagram-arrow{font-family:var(--font-mono);color:var(--color-muted);flex:0 0 auto}.tool-grid{display:grid;gap:var(--space-2);margin:var(--space-3) 0 var(--space-5)}.tool-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-raised);border:1px solid var(--color-line);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color 0.15s ease}.tool-card:hover{border-color:var(--color-accent)}.tool-card h3{margin:0 0 0.25em;font-family:var(--font-display);font-size:1.15rem}.tool-card p{margin:0;color:var(--color-muted);font-size:0.92rem}.tool-card .go{font-family:var(--font-mono);color:var(--color-accent);font-size:0.9rem;white-space:nowrap}.tool-card.disabled{opacity:0.5;pointer-events:none}.tool-page main{padding:var(--space-4) 0 var(--space-6)}.tool-back{font-family:var(--font-mono);font-size:0.85rem;color:var(--color-muted);text-decoration:none}.tool-page h1{font-family:var(--font-display);font-size:2rem;margin:var(--space-2) 0 var(--space-1)}.tool-page .lede{color:var(--color-muted);margin-bottom:var(--space-3)}.dropzone{border:2px dashed var(--color-line);border-radius:var(--radius);padding:var(--space-5) var(--space-3);text-align:center;background:var(--color-bg-raised);cursor:pointer;transition:border-color 0.15s ease,background 0.15s ease}.dropzone.dragover{border-color:var(--color-accent);background:var(--color-accent-soft)}.dropzone p{margin:0.25em 0}.dropzone .primary{font-size:1.05rem}.dropzone .secondary{font-size:0.88rem;color:var(--color-muted)}.dropzone input[type="file"]{display:none}.result{margin-top:var(--space-3);display:none}.result.visible{display:block}.result-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);background:var(--color-bg-raised);border:1px solid var(--color-line);border-radius:var(--radius);margin-bottom:var(--space-1)}.result-row .filename{font-family:var(--font-mono);font-size:0.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row .meta{font-size:0.8rem;color:var(--color-muted)}.btn{display:inline-block;font:inherit;font-family:var(--font-body);font-weight:600;font-size:0.9rem;padding:0.6em 1.2em;background:var(--color-accent);color:var(--color-accent-ink);border:none;border-radius:999px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{opacity:0.9}.btn.ghost{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent)}.error-msg{color:var(--color-danger);font-size:0.9rem;margin-top:var(--space-1);display:none}.error-msg.visible{display:block}.site-footer{border-top:1px solid var(--color-line);padding:var(--space-3) 0 var(--space-4);color:var(--color-muted);font-size:0.85rem}.nav-toggle{display:none}.nav-toggle-label{display:none;cursor:pointer;padding:0.5rem;margin:-0.5rem}.nav-toggle-label span,.nav-toggle-label span::before,.nav-toggle-label span::after{display:block;background:var(--color-ink);height:2px;width:22px;border-radius:2px;position:relative}.nav-toggle-label span::before,.nav-toggle-label span::after{content:'';position:absolute}.nav-toggle-label span::before{bottom:7px}.nav-toggle-label span::after{top:7px}@media (max-width:640px){.wrap{padding:0 var(--space-2)}.site-header{flex-wrap:wrap;gap:var(--space-1)}.nav-toggle-label{display:block}.site-header nav{display:none;width:100%;flex-direction:column;gap:var(--space-1);padding-top:var(--space-1)}.nav-toggle:checked ~ nav{display:flex}.hero{padding:var(--space-4) 0 var(--space-3)}.hero h1{font-size:clamp(1.6rem,6vw,2rem)}.diagram{flex-direction:column;gap:var(--space-1)}.diagram-arrow{transform:rotate(90deg)}.diagram-step{flex:1 1 auto;width:100%}.tool-card{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.result-row{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.dropzone{padding:var(--space-4) var(--space-2)}}/* cache-bust-1787348855 */
