:root{--bg:#fff;--fg:#0d0d0d;--fg-2:#6e6e80;--line:#ececf1;--surface:#f7f7f8;--radius:16px;--container:72rem;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--fg);background:var(--bg);text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.6}.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}a{color:inherit}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:4px}.skip-link{background:var(--fg);color:#fff;border-radius:0 0 8px;padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{z-index:10;left:0}.site-header{justify-content:space-between;align-items:center;padding-block:1.25rem;display:flex}.brand{letter-spacing:-.02em;font-size:1.1875rem;font-weight:700;text-decoration:none}.site-nav{gap:1.5rem;display:flex}.site-nav a{color:var(--fg-2);font-weight:500;text-decoration:none}.site-nav a:hover{color:var(--fg)}.site-footer{border-top:1px solid var(--line);color:var(--fg-2);margin-top:clamp(4rem,10vw,8rem);padding:2.5rem 0 4rem;font-size:.9375rem}.site-footer nav{flex-wrap:wrap;gap:1.25rem;margin-bottom:.75rem;display:flex}.site-footer a{color:var(--fg-2)}.hero{padding-block:clamp(3.5rem,12vw,9rem) clamp(2rem,6vw,4rem)}.hero h1{letter-spacing:-.035em;text-wrap:balance;max-width:20ch;margin:0 0 1.5rem;font-size:clamp(2.875rem,8vw,5.5rem);font-weight:700;line-height:1.02}.hero .sub{color:var(--fg-2);max-width:44rem;margin:0;font-size:clamp(1.125rem,2.2vw,1.375rem);line-height:1.5}.section{padding-block:clamp(1.5rem,4vw,3rem)}.section-title{letter-spacing:-.025em;margin:0 0 1.5rem;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;display:grid}.tool-card{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:1.5rem;text-decoration:none;transition:border-color .15s;display:flex}.tool-card:hover{border-color:var(--fg)}.tool-card strong{letter-spacing:-.01em;font-size:1.0625rem}.tool-card span{color:var(--fg-2);font-size:.9375rem;line-height:1.5}.tool-card .tag{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);background:var(--surface);border-radius:999px;align-self:flex-start;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.tool-hero{padding-block:clamp(2rem,6vw,4.5rem) clamp(1.5rem,4vw,2.5rem)}.tool-hero h1{letter-spacing:-.03em;text-wrap:balance;margin:0 0 .75rem;font-size:clamp(2.25rem,5.5vw,3.75rem);font-weight:700;line-height:1.05}.tool-hero .sub{color:var(--fg-2);max-width:46rem;margin:0;font-size:clamp(1.0625rem,2vw,1.25rem)}.tool-panel{max-width:46rem}.tool-stage{min-height:clamp(15rem,32vw,19rem);display:flex}.tool-stage .face{flex:1;display:none}.tool-panel[data-state=idle] .face-idle,.tool-panel[data-state=busy] .face-busy,.tool-panel[data-state=done] .face-done{display:flex}.face-idle{border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:center;border:1.5px dashed #d1d1d9;flex-direction:column;justify-content:center;align-items:center;gap:.375rem;padding:clamp(2rem,6vw,3.5rem) 1.5rem;transition:border-color .15s,background .15s}.face-idle:hover,.face-idle.dragover{border-color:var(--fg);background:#f1f1f4}.dz-hit{cursor:pointer}.dz-hit:focus-visible{outline:2px solid var(--fg);outline-offset:4px;border-radius:8px}.dz-title{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.dz-sub{color:var(--fg-2);margin:0;font-size:.9375rem}.face-busy{border-radius:var(--radius);background:var(--surface);text-align:center;pointer-events:none;border:1.5px dashed #e4e4e9;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:clamp(2rem,6vw,3.5rem) 1.5rem}.face-busy .dz-title{margin:0}.spinner{border:3px solid #dcdce3;border-top-color:var(--fg);border-radius:50%;width:1.75rem;height:1.75rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.progress{background:#dcdce3;border-radius:999px;width:min(20rem,80%);height:6px;overflow:hidden}.progress-fill{background:var(--fg);border-radius:999px;width:0%;height:100%;transition:width .25s}.face-done{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:1.25rem;padding:clamp(1.25rem,4vw,2rem)}.preview{background:conic-gradient(#e9e9ee 25%, transparent 0 50%, #e9e9ee 0 75%, transparent 0) 0 0 / 16px 16px;border-radius:12px;max-width:100%;max-height:14rem;margin-inline:auto;display:block}.result-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.stat-chip{font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.375rem .875rem;font-size:.9375rem;font-weight:600}.stat-accent{background:var(--fg);border-color:var(--fg);color:#fff}.stat-note{text-align:center;width:100%;color:var(--fg-2);font-size:.875rem}.result-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.tool-status{text-align:center;min-height:1.5rem;color:var(--fg-2);margin:.75rem 0 0;font-size:.9375rem}.tool-status.error{color:#b3261e}.tool-upsell{text-align:center;margin:.5rem 0 0;font-size:.9375rem}.tool-upsell a{font-weight:600}.breadcrumb{color:var(--fg-2);flex-wrap:wrap;gap:.5rem;padding-top:1.25rem;font-size:.875rem;display:flex}.breadcrumb a{color:var(--fg-2)}.breadcrumb a:hover{color:var(--fg)}.tool-block{margin-bottom:1.25rem}.variant-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.variant-chip{color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.375rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none}.variant-chip:hover{border-color:var(--fg)}.variant-chip[aria-pressed=true]{background:var(--fg);border-color:var(--fg);color:#fff}.chip-row{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.repair-glyph{background:var(--fg);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;margin-inline:auto;font-size:1.75rem;display:flex}.io-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=48rem){.io-grid{grid-template-columns:1fr}}.io-field{color:var(--fg-2);flex-direction:column;gap:.375rem;font-size:.875rem;font-weight:600;display:flex}.io-field textarea,.io-field input{color:var(--fg);background:var(--surface);border:1px solid var(--line);resize:vertical;border-radius:12px;padding:.875rem 1rem;font:.9375rem/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.io-field textarea:focus,.io-field input:focus{outline:2px solid var(--fg);outline-offset:-1px}.io-out{white-space:pre-wrap;word-break:break-word;min-height:12rem;max-height:28rem;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0;padding:.875rem 1rem;font:.9375rem/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.io-field textarea,.io-field .io-out{flex:auto}.ft-gallery{flex-direction:column;gap:.375rem;margin-top:.75rem;display:flex}.ft-row{background:var(--surface);border:1px solid var(--line);cursor:copy;text-align:left;border-radius:10px;align-items:center;gap:1rem;width:100%;padding:.625rem .875rem;display:flex}.ft-row:hover{border-color:var(--fg)}.ft-label{color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;flex:0 0 10.5rem;font-size:.8125rem;font-weight:600;overflow:hidden}.ft-out{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex:1;font:1.05rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.ft-copy{color:var(--fg-2);flex:none;font-size:1rem}@media (width<=48rem){.ft-label{flex-basis:7.5rem}}.ic-hint{color:var(--fg-2);margin:0 0 .75rem;font-size:.9375rem}.ic-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.5rem;margin-bottom:1.25rem;display:grid}.ic-card{background:var(--surface);border:1px solid var(--line);cursor:copy;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.625rem .75rem;display:flex}.ic-card:hover{border-color:var(--fg)}.ic-cp{color:var(--fg);font:600 .8125rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.ic-name{color:var(--fg-2);font-size:.8125rem}.ic-copy{color:var(--fg-2);opacity:.7;font-size:.75rem}.ic-detect .io-field{margin-bottom:.5rem}.io-error{color:#b3261e;font-weight:500}.io-controls{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.io-controls label{color:var(--fg-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.375rem;padding:.375rem .875rem;font-size:.875rem;display:inline-flex}mark{background:#ffe9a8;border-radius:3px;padding:0 2px}.diff-add{color:#116329;background:#e6f4ea;display:block}.diff-del{color:#b3261e;background:#fdecea;text-decoration:line-through #e5a8a2;display:block}.diff-sign{user-select:none;opacity:.7;width:1.25rem;display:inline-block}.pro-card{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:1.25rem;max-width:34rem;padding:clamp(1.5rem,4vw,2.5rem);display:flex}.pro-price{align-items:baseline;gap:.5rem;display:flex}.pro-amount{letter-spacing:-.03em;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:700}.pro-period{color:var(--fg-2)}.pro-list{flex-direction:column;gap:.625rem;margin:0;padding:0;list-style:none;display:flex}.pro-list li:before{content:"✓ ";font-weight:700}.pro-note{color:var(--fg-2);margin:0;font-size:.9375rem}.prose{max-width:46rem;color:var(--fg)}.prose p{margin:0 0 1em}.faq{max-width:46rem;margin:0}.faq dt{margin-top:1.25rem;font-weight:600}.faq dd{color:var(--fg-2);margin:.375rem 0 0}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary{background:var(--fg);color:#fff}.btn-primary:hover{background:#2a2a32}.btn-ghost{border-color:var(--line);color:var(--fg);background:0 0}.btn-ghost:hover{border-color:var(--fg)}
