.pv{--field:var(--ch-go);background:var(--bg);color:var(--text)}.pv [id]{scroll-margin-top:96px}.pv-fill{padding:0 6px;border-radius:4px;background:var(--lime);color:var(--ink);font-weight:500;white-space:nowrap}.pv-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:40px 72px;padding:88px var(--gutter) 72px;background:var(--field);color:var(--ink)}.pv-hero h1{margin:0;font-size:clamp(52px,8.4vw,132px);font-weight:800;letter-spacing:-0.05em;line-height:0.9;max-width:7.2em}.pv-hero-face{flex:none;width:clamp(88px,13vw,196px);height:clamp(88px,13vw,196px)}.pv-hero-text{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:20px 48px}.pv-hero-text p{margin:0;font-size:clamp(20px,1.7vw,24px);line-height:1.45;max-width:40ch}.pv-hero-text .pv-date{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:1.125rem;max-width:none}.pv-short{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 72px;padding:120px var(--gutter)}.pv-short h2{grid-column:1 / -1;margin:0;font-size:clamp(44px,6vw,96px);font-weight:800;letter-spacing:-0.05em;line-height:0.92}.pv-short h3,.pv-toc h2{margin:0 0 20px;font-size:2rem;font-weight:800;letter-spacing:-0.03em}.pv-short ul,.pv-lists ul{display:flex;flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;font-size:1.25rem;line-height:1.45}.pv-short li,.pv-lists li{display:flex;gap:14px}.pv-tick{flex:none;width:22px;height:22px;margin-top:3px;--mouth:var(--lime)}html[data-theme="light"] .pv-tick{--mouth:var(--lime-deep)}.pv-toc{padding:0 var(--gutter) 120px}.pv-toc ul{margin:0;padding:0;list-style:none;columns:3 240px;column-gap:48px;font-size:1.125rem}.pv-toc li{break-inside:avoid}.pv-toc a{display:inline-block;padding:8px 0;color:var(--text);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px}.pv-toc a:hover{text-decoration-color:currentColor}.pv-visit{display:flex;flex-wrap:wrap;align-items:center;gap:56px 72px;padding:120px var(--gutter);background:var(--ch-python);color:var(--ink)}.pv-visit-copy{flex:1 1 420px;min-width:0}.pv-visit h2{margin:0 0 28px;font-size:clamp(44px,5.4vw,84px);font-weight:800;letter-spacing:-0.05em;line-height:0.92}.pv-visit p{margin:0 0 18px;font-size:1.25rem;line-height:1.5;max-width:46ch}.pv-visit-copy p:last-child{margin-bottom:0}.pv-card{flex:1 1 480px;min-width:0;max-width:640px;overflow:hidden;border-radius:16px;background:#0d0d11;color:#e8e8ec}.pv-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px;background:#18181d;color:#c4c4cc;font-size:0.9375rem}.pv-card-face{width:20px;height:20px;color:var(--paper);--mouth:var(--lime)}.pv-card dl{margin:0;padding:12px 0 16px;font-family:var(--mono);font-size:0.9375rem;line-height:1.5}.pv-card dl div{display:grid;grid-template-columns:128px minmax(0,1fr);gap:0 16px;padding:7px 22px}.pv-card dt{color:#9a9aa4}.pv-card dd{margin:0;color:#c4c4cc;overflow-wrap:anywhere}.pv-card .pv-val{color:var(--ch-sql)}.pv-card .pv-who{background:var(--lime);font-weight:600}.pv-card .pv-who dt,.pv-card .pv-who dd{color:var(--ink)}.pv-card-none{margin:0;padding:32px 22px 36px;color:#e8e8ec;font-size:1.125rem;line-height:1.5}.pv-read{display:flex;flex-direction:column;gap:104px;padding:120px var(--gutter)}.pv-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:20px 48px}.pv-row h2{margin:0;font-size:clamp(32px,3vw,44px);font-weight:800;letter-spacing:-0.03em;line-height:1.02}.pv-row-body{min-width:0;font-size:1.125rem;line-height:1.6}.pv-row-body p{margin:0 0 16px;max-width:68ch}.pv-row-body p:last-child{margin-bottom:0}.pv-row-body ul{margin:0 0 16px;padding-left:22px;max-width:68ch}.pv-row-body li{margin-bottom:8px}.pv-row-body a,.pv-ask li a{color:inherit;text-decoration:underline;text-underline-offset:3px}.pv-table{width:100%;margin:0 0 20px;border-collapse:collapse;font-size:1rem;line-height:1.5}.pv-table:last-child{margin-bottom:0}.pv-table th{padding:0 20px 10px 0;font-weight:700;text-align:left;vertical-align:bottom}.pv-table td{padding:12px 20px 12px 0;border-top:1px solid var(--border);vertical-align:top}.pv-table td:first-child{width:26%;font-weight:500}.pv-table td:last-child,.pv-table th:last-child{padding-right:0}.pv-table code{padding:1px 6px;border-radius:4px;background:var(--surface-2);font-family:var(--mono);font-size:0.875rem;white-space:nowrap}.pv-table small{display:block;margin-top:2px;color:var(--text-muted);font-size:0.875rem;font-weight:400}.pv-ask{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:48px 72px;padding:120px var(--gutter);background:var(--lime);color:var(--ink)}.pv-ask h2{margin:0 0 28px;font-size:clamp(44px,5vw,80px);font-weight:800;letter-spacing:-0.05em;line-height:0.9}.pv-ask h3{margin:0 0 12px;font-size:1.5rem;font-weight:800;letter-spacing:-0.02em}.pv-ask p{margin:0 0 18px;font-size:1.125rem;line-height:1.55;max-width:50ch}.pv-ask ul{margin:0 0 24px;padding-left:22px;font-size:1.125rem;line-height:1.55;max-width:58ch}.pv-ask li{margin-bottom:8px}.pv-ask .pv-fill{background:var(--ink);color:var(--lime)}.pv-go{display:inline-flex;align-items:center;gap:8px;min-height:56px;padding:0 28px;border-radius:var(--pill);background:var(--ink);color:var(--lime);font-size:1.125rem;font-weight:700}.pv-go:hover{color:var(--lime);text-decoration:none;transform:translateY(-2px)}.pv-go:active{transform:translateY(1px)}.pv-go:focus-visible{outline:3px solid var(--ink);outline-offset:3px}@media (max-width: 900px){.pv-row,.pv-ask{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.pv-short{grid-template-columns:minmax(0,1fr)}.pv-short,.pv-visit,.pv-read,.pv-ask{padding-top:80px;padding-bottom:80px}.pv-toc{padding-bottom:80px}.pv-read{gap:72px}.pv-hero-text{order:1}.pv-hero-face{order:2;margin-left:auto}.pv-card dl{font-size:0.875rem}.pv-card dl div{grid-template-columns:100px minmax(0,1fr);padding-left:16px;padding-right:16px}.pv-fill{white-space:normal}}@media (max-width: 640px){.pv-table,.pv-table tbody,.pv-table tr,.pv-table td{display:block}.pv-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.pv-table tr{padding:12px 0;border-top:1px solid var(--border)}.pv-table td,.pv-table td:first-child{width:auto;padding:2px 0;border-top:0}}@media (prefers-reduced-motion: reduce){.pv-go:hover,.pv-go:active{transform:none}}.pv-php{--field:var(--ch-php)}.pv-js{--field:var(--ch-javascript)}.pv-html{--field:var(--ch-html)}.pv-sql{--field:var(--ch-sql)}.pv-ts{--field:var(--ch-typescript)}.pv-no{--mouth:var(--ch-java)}.pv-gap{--mouth:var(--field)}html[data-theme="light"] .pv-no{--mouth:var(--error)}html[data-theme="light"] .pv-gap{--mouth:var(--text-muted)}.pv kbd{padding:1px 7px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);font-family:var(--mono);font-size:0.875rem}.pv-jump{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.pv-jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:var(--pill);background:var(--ink);color:var(--field);font-weight:500}.pv-jump a:hover{color:var(--field);text-decoration:none}.pv-row.pv-big > h2{font-size:clamp(40px,4.4vw,68px);letter-spacing:-0.05em;line-height:0.95}.pv-q{padding:24px 0;border-top:1px solid var(--border)}.pv-q:first-child{padding-top:0;border-top:0}.pv-q h3{margin:0 0 8px;font-size:1.375rem;font-weight:700;letter-spacing:-0.02em;line-height:1.25}.pv-q p{margin:0;max-width:66ch;color:var(--text-muted);font-size:1.125rem;line-height:1.6}.pv-q a{color:var(--text);text-decoration:underline;text-underline-offset:3px}.pv-contact{display:flex;flex-direction:column;gap:56px;padding:120px var(--gutter);background:var(--lime);color:var(--ink)}.pv-contact-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px 72px}.pv-contact h2{margin:0;max-width:8em;font-size:clamp(48px,6.4vw,104px);font-weight:800;letter-spacing:-0.05em;line-height:0.9}.pv-mail{display:inline-flex;align-items:center;gap:14px;min-height:72px;padding:0 36px;border-radius:var(--pill);background:var(--ink);color:var(--lime);font-size:clamp(22px,2.4vw,34px);font-weight:700;overflow-wrap:anywhere}.pv-mail:hover{color:var(--lime);text-decoration:none}.pv-mail svg,.pv-lang-top svg{flex:none;fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;transition:transform 0.2s ease}.pv-mail svg{width:28px;height:28px}.pv-mail:hover svg,.pv-lang-top:hover svg{transform:translateX(4px)}.pv-mail:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.pv-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}.pv-tile{display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:16px;background:var(--ink);color:var(--paper)}.pv-tile h3{margin:0;font-size:1.375rem;font-weight:700;letter-spacing:-0.02em}.pv-tile p{margin:0;color:#c4c4cc;font-size:1.0625rem;line-height:1.5}.pv-tile a{margin-top:auto;color:var(--lime);font-weight:500;text-decoration:underline;text-underline-offset:3px}.pv-tile a:hover{color:var(--lime)}.pv-tile a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.pv-post{margin:0;font-size:1.0625rem;line-height:1.5}.pv-sec{padding:120px var(--gutter) 0}.pv-sec-end{padding-bottom:120px}.pv-sec > h2{margin:0 0 16px;font-size:clamp(44px,5.4vw,84px);font-weight:800;letter-spacing:-0.05em;line-height:0.92}.pv-sec > p,.pv-langs > p{margin:0 0 40px;max-width:58ch;color:var(--text-muted);font-size:1.25rem;line-height:1.5}.pv-scroll{overflow-x:auto}.pv-engines{width:100%;min-width:760px;border-collapse:collapse;font-size:1.0625rem;line-height:1.45}.pv-engines th{padding:0 24px 12px 0;color:var(--text-muted);font-size:0.9375rem;font-weight:700;text-align:left;vertical-align:bottom}.pv-engines td{padding:16px 24px 16px 0;border-top:1px solid var(--border);vertical-align:top}.pv-engines td:last-child,.pv-engines th:last-child{padding-right:0}.pv-engines small{display:block;margin-top:2px;color:var(--text-muted);font-size:0.9375rem}.pv-lang{display:flex;align-items:center;gap:12px;font-weight:700;white-space:nowrap}.pv-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--c,var(--text-muted));box-shadow:inset 0 0 0 1px var(--border-strong)}.pv-lic{font-family:var(--mono);font-size:0.875rem}.pv-lic span{display:inline-block;margin:0 6px 6px 0;padding:3px 8px;border-radius:6px;background:var(--surface-2)}.pv-engines a,.pv-gpl a,.pv-kit a{color:var(--text);text-decoration:underline;text-underline-offset:3px}.pv-gpl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:start;max-width:960px;margin-top:40px;padding:28px;border-radius:16px;background:var(--surface-2)}.pv-gpl .face{width:28px;height:28px;--mouth:var(--lime)}html[data-theme="light"] .pv-gpl .face{--mouth:var(--lime-deep)}.pv-gpl h3{margin:0 0 8px;font-size:1.375rem;font-weight:700;letter-spacing:-0.02em}.pv-gpl p{margin:0 0 10px;color:var(--text-muted);font-size:1.0625rem;line-height:1.55}.pv-gpl p:last-child{margin-bottom:0}.pv-kits{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.pv-kit{display:flex;flex-direction:column;gap:10px;padding:28px;border:1px solid var(--border);border-radius:16px}.pv-kit h3{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-0.02em}.pv-kit p{margin:0;color:var(--text-muted);font-size:1.0625rem;line-height:1.5}.pv-kit .pv-lic{margin-top:auto}.pv-band{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px 72px;padding:96px var(--gutter);background:var(--lime);color:var(--ink)}.pv-band h2{margin:0;max-width:12em;font-size:clamp(40px,4.6vw,72px);font-weight:800;letter-spacing:-0.05em;line-height:0.92}.pv-hero-text .pv-xml{max-width:none;font-family:var(--mono);font-size:1.0625rem}.pv-hero-text .pv-xml a{color:inherit;text-decoration:underline;text-underline-offset:3px}.pv-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:56px 48px;padding:120px var(--gutter) 0}.pv-groups h2,.pv-langs > h2{margin:0 0 16px;font-size:2rem;font-weight:800;letter-spacing:-0.03em}.pv-groups ul{margin:0;padding:0;list-style:none}.pv-groups li a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);font-size:1.1875rem;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:5px}.pv-groups li a:hover{text-decoration-color:currentColor}.pv-groups small{display:block;margin:-6px 0 6px;color:var(--text-muted);font-size:0.9375rem}.pv-langs{padding:120px var(--gutter)}.pv-lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}.pv-lang-card{display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--surface-2)}.pv-lang-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;background:var(--c);color:var(--ink);font-size:1.5rem;font-weight:800;letter-spacing:-0.03em}.pv-lang-top:hover{color:var(--ink);text-decoration:none}.pv-lang-top svg{width:22px;height:22px}.pv-lang-card ul{margin:0;padding:8px 24px 16px;list-style:none}.pv-lang-card li + li a{border-top:1px solid var(--border)}.pv-lang-card li a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;color:var(--text);font-size:1.0625rem}.pv-lang-card li span{color:var(--text-muted);font-family:var(--mono);font-size:0.875rem;white-space:nowrap}.pv-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 72px;padding:0 var(--gutter) 120px}.pv-lists h2{margin:0 0 28px;font-size:clamp(40px,4.4vw,68px);font-weight:800;letter-spacing:-0.05em;line-height:0.95}@media (max-width: 900px){.pv-lists{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.pv-contact,.pv-band,.pv-langs{padding-top:80px;padding-bottom:80px}.pv-sec,.pv-groups{padding-top:80px}.pv-sec-end,.pv-lists{padding-bottom:80px}.pv-mail{width:100%;justify-content:space-between;padding:0 28px}.pv-gpl{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.pv-mail:hover svg,.pv-lang-top:hover svg{transform:none}}@media (max-width: 640px){.pv-engines{min-width:0}.pv-engines,.pv-engines tbody,.pv-engines tr,.pv-engines td{display:block}.pv-engines thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.pv-engines tr{padding:16px 0;border-top:1px solid var(--border)}.pv-engines td{padding:4px 0;border-top:0}}