:root{--paper: #f7f5f0;--paper-2: #efece4;--ink: #17211e;--ink-soft: #4a5551;--line: #d8d3c6;--accent: #0d7a63;--accent-ink: #085a49;--accent-soft: #dcefe9;--warn: #b45309;--warn-soft: #fdf0dd;--err: #b3261e;--ok: #0d7a63;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--maxw: 1060px;--radius: 14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}a{color:var(--accent-ink);text-underline-offset:3px}a:hover{color:var(--accent)}code{font-family:var(--mono);font-size:.85em;background:var(--paper-2);border:1px solid var(--line);border-radius:5px;padding:.08em .35em}pre{background:#1d2724;color:#d9e5e1;border-radius:10px;padding:16px 18px;overflow-x:auto;font-size:14px;line-height:1.55}pre code{background:none;border:none;color:inherit;padding:0}.site-head{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 88%,white);position:sticky;top:0;z-index:50;backdrop-filter:blur(8px)}.site-head .wrap{display:flex;align-items:center;gap:26px;height:60px}.brand{font-weight:800;letter-spacing:-.02em;text-decoration:none;color:var(--ink);font-size:18px;display:flex;align-items:center;gap:9px;white-space:nowrap}.brand svg{width:24px;height:24px}.brand .tld{color:var(--accent)}nav.main{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}nav.main a{text-decoration:none;color:var(--ink-soft);font-size:14.5px;font-weight:550;padding:6px 11px;border-radius:8px}nav.main a:hover,nav.main a[aria-current=page]{color:var(--ink);background:var(--paper-2)}@media(max-width:720px){.site-head .wrap{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}nav.main{margin-left:0}}.hero{padding:54px 0 8px}.hero h1{font-size:clamp(30px,5vw,46px);line-height:1.12;letter-spacing:-.03em;margin:0 0 14px;font-weight:800}.hero h1 em{font-style:normal;color:var(--accent)}.hero .sub{font-size:clamp(16px,2.2vw,19px);color:var(--ink-soft);max-width:700px;margin:0 0 8px}.badges{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 4px}.badge{font-family:var(--mono);font-size:12.5px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:color-mix(in srgb,var(--paper) 60%,white)}.badge b{color:var(--accent-ink);font-weight:700}.tool{margin:26px 0 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 1px 2px #17211e0a,0 12px 32px -18px #17211e2e;overflow:hidden}.dropzone{margin:18px;padding:44px 20px;text-align:center;cursor:pointer;border:2px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:12px;background:var(--accent-soft);transition:background .15s,border-color .15s}.dropzone:hover,.dropzone.over{background:color-mix(in srgb,var(--accent-soft) 60%,white);border-color:var(--accent)}.dropzone .dz-icon{line-height:1;margin-bottom:10px;color:var(--accent)}.dropzone .dz-icon .li svg{width:38px;height:38px;stroke-width:1.75}.dz-local{display:flex;align-items:center;justify-content:center;gap:6px}.dz-local .li svg{width:13px;height:13px}.dropzone .dz-main{font-weight:700;font-size:17px}.dropzone .dz-hint{color:var(--ink-soft);font-size:13.5px;margin-top:6px;font-family:var(--mono)}.tool input[type=file]{display:none}.tool-status{padding:0 20px 14px;font-size:14.5px;color:var(--ink-soft);min-height:20px}.tool-status.ok{color:var(--ok)}.tool-status.err{color:var(--err)}.tool-actions{padding:0 18px 18px;display:flex;gap:10px;flex-wrap:wrap}.tool-actions[hidden]{display:none}.btn{appearance:none;border:none;cursor:pointer;font:inherit;font-weight:700;padding:11px 20px;border-radius:10px;font-size:15.5px;display:inline-flex;align-items:center;gap:8px}.btn .li svg{width:17px;height:17px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink)}.btn-ghost{background:var(--paper-2);color:var(--ink)}.btn-ghost:hover{background:var(--line)}.tool-out{padding:0 18px 8px}.meta-section{margin:0 0 18px}.meta-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 8px;font-family:var(--mono)}.meta-section h3 .li svg{width:14px;height:14px}.meta-section.warn h3{color:var(--warn)}.meta-table{width:100%;border-collapse:collapse;font-size:14px}.meta-table th,.meta-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--paper-2);vertical-align:top}.meta-table th{font-family:var(--mono);font-weight:600;color:var(--ink-soft);width:218px;font-size:12.5px;white-space:nowrap}.meta-table td{font-family:var(--mono);font-size:13px;word-break:break-word}.meta-section.warn .meta-table{background:var(--warn-soft);border-radius:8px}.yt-form{display:flex;gap:10px;padding:18px;flex-wrap:wrap}.yt-form input[type=text]{flex:1;min-width:240px;font:inherit;font-family:var(--mono);font-size:14.5px;padding:11px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper)}.yt-form input[type=text]:focus{outline:2px solid var(--accent);border-color:var(--accent)}section.block{padding:34px 0 6px}section.block h2{font-size:clamp(22px,3vw,28px);letter-spacing:-.02em;margin:0 0 14px}.prose{max-width:760px}.prose p{margin:0 0 15px}.prose h2{font-size:24px;letter-spacing:-.02em;margin:34px 0 12px}.prose ul,.prose ol{padding-left:24px}.prose li{margin-bottom:6px}.prose table{border-collapse:collapse;width:100%;font-size:14.5px;margin:14px 0}.prose table th,.prose table td{border:1px solid var(--line);padding:8px 11px;text-align:left}.prose table th{background:var(--paper-2)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:8px 0;padding:0;list-style:none}.steps li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.steps .n{font-family:var(--mono);color:var(--accent);font-weight:800;font-size:13px}.steps b{display:block;margin:6px 0 4px;font-size:15.5px}.steps p{margin:0;color:var(--ink-soft);font-size:14px}.fmt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;padding:0;list-style:none;margin:8px 0}.fmt-grid a{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}.fmt-grid a:hover{border-color:var(--accent);transform:translateY(-2px)}.fmt-grid .fmt-ico{color:var(--accent);display:inline-flex}.fmt-grid .fmt-ico .li svg{width:24px;height:24px;stroke-width:1.9}.fmt-grid b{display:block;margin:8px 0 3px;font-size:15.5px}.fmt-grid span{color:var(--ink-soft);font-size:13.5px}.faq details{border-bottom:1px solid var(--line);padding:4px 0;max-width:760px}.faq summary{font-weight:650;cursor:pointer;padding:10px 0;font-size:16px}.faq details p{margin:2px 0 14px;color:var(--ink-soft)}.tst-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;padding:0;list-style:none;margin:8px 0}.tst-grid li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.tst-quote{font-size:14.5px;margin:0 0 14px;color:var(--ink)}.tst-who{display:flex;align-items:center;gap:10px}.tst-who img{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--paper-2)}.tst-who b{font-size:14px;display:block;line-height:1.2}.tst-who span{font-size:12.5px;color:var(--ink-soft)}.tst-src{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-soft);border:1px solid var(--line);padding:2px 7px;border-radius:999px}.post-list{list-style:none;padding:0;display:grid;gap:14px}.post-list a{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;text-decoration:none;color:var(--ink)}.post-list a:hover{border-color:var(--accent)}.post-list b{font-size:17px;letter-spacing:-.01em}.post-list p{color:var(--ink-soft);margin:6px 0 0;font-size:14.5px}.post-meta{font-family:var(--mono);font-size:12px;color:var(--ink-soft);margin-top:10px;display:block}.share-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.share-label{font-size:13px;color:var(--ink-soft);font-weight:600}.sbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink-soft);text-decoration:none}.sbtn:hover{border-color:var(--accent);color:var(--accent-ink)}.sbtn svg{width:16px;height:16px;fill:currentColor}.copy-ok{font-size:12.5px;color:var(--ok);font-family:var(--mono)}.related{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.related a{font-size:14px;text-decoration:none;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)}.related a:hover{border-color:var(--accent);color:var(--accent-ink)}.privacy-strip{display:flex;gap:14px;align-items:flex-start;margin:26px 0;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:12px;padding:16px 18px;max-width:760px}.privacy-strip .ico{color:var(--accent-ink);display:inline-flex;margin-top:2px}.privacy-strip .ico .li svg{width:24px;height:24px;stroke-width:1.9}.privacy-strip p{margin:0;font-size:14.5px;color:var(--accent-ink)}.site-foot{border-top:1px solid var(--line);margin-top:60px;padding:34px 0 44px;background:var(--paper-2)}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:26px}@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}.site-foot h4{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 10px;font-family:var(--mono)}.site-foot ul{list-style:none;padding:0;margin:0}.site-foot li{margin-bottom:7px}.site-foot a{color:var(--ink-soft);text-decoration:none;font-size:14px}.site-foot a:hover{color:var(--accent-ink)}.foot-brand{font-weight:800;font-size:16px}.foot-note{color:var(--ink-soft);font-size:13px;margin-top:8px;max-width:300px}.foot-bottom{margin-top:26px;font-size:12.5px;color:var(--ink-soft);font-family:var(--mono)}.article-head{padding:46px 0 10px;max-width:760px}.article-head h1{font-size:clamp(26px,4vw,36px);line-height:1.18;letter-spacing:-.025em;margin:0 0 12px}.article-head .post-meta{font-size:13px}.crumbs{font-size:13px;font-family:var(--mono);color:var(--ink-soft);padding-top:18px}.crumbs a{color:var(--ink-soft)}
