body{margin:0}a{color:#0A3D8F}a:hover{color:#072C69}.pp .about-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}.pp .ab-por{aspect-ratio:4/5;width:100%;max-width:500px;justify-self:end;border-radius:4px}.pp .ab-por svg{position:absolute;top:24px;left:24px}.pp .ab-glance{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;margin-top:36px;border-top:1px solid var(--line);font-size:16px}.pp .ab-glance dt,.pp .ab-glance dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line)}.pp .ab-glance dt{font:400 13px/1.6 var(--fp);color:var(--ink2);padding-top:14px}.pp .ab-commit{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.pp .ab-commit .chip i{background:var(--aurora)}.pp .ab-idx{list-style:none;border-top:2px solid var(--ink)}.pp .ab-idx>li{display:grid;grid-template-columns:64px minmax(0,3fr) minmax(0,4fr) minmax(0,5fr);gap:12px 28px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}.pp .ab-idx .n{font:400 15px/1.7 var(--fp);color:var(--ink2)}.pp .ab-idx h3{font-size:24px;line-height:1.2}.pp .ab-idx h3 a{display:inline-flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;min-height:44px}.pp .ab-idx h3 a:hover{color:var(--primary);text-decoration:underline}.pp .ab-idx h3 .sq{width:12px;height:12px}.pp .ab-idx p{color:var(--ink2);font-size:17px;padding-top:10px}.pp .ab-kids{display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;padding-top:10px;font-size:16px}.pp .ab-kids a{display:inline-flex;align-items:center;min-height:32px}.pp .ab-kids .soon{color:var(--ink2);display:inline-flex;gap:8px;align-items:center;min-height:32px}.pp .ab-path{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;list-style:none;margin-top:8px}.pp .ab-path::before{content:"";position:absolute;left:0;right:0;top:21px;height:6px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px)}.pp .ab-path::after{content:"";position:absolute;left:0;top:21px;height:6px;width:var(--prog);background:repeating-linear-gradient(90deg,var(--primary) 0 6px,transparent 6px 10px);transition:width .35s ease-out}.pp .ab-stop{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%;min-height:44px;padding:0 0 12px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;font:inherit}.pp .ab-stop .pt{width:48px;height:48px;display:grid;place-items:center;background:var(--bg);border:3px solid var(--line);font:400 14px/1 var(--fp);color:var(--ink2)}.pp .ab-stop.done .pt{border-color:var(--primary);color:var(--ink)}.pp .ab-stop[aria-pressed=true] .pt{background:var(--primary);border-color:var(--primary);color:#FFFFFF}.pp .ab-stop.last .pt{border-color:var(--aurora)}.pp .ab-stop.last[aria-pressed=true] .pt{background:var(--aurora);border-color:var(--aurora);color:#0C2236}.pp .ab-stop b{font:650 20px/1.2 var(--fd)}.pp .ab-stop span.k{font-size:14px;color:var(--ink2)}.pp .ab-stop:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.pp .ab-card{margin-top:28px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.pp .ab-card-main{padding:32px 36px;display:flex;flex-direction:column;gap:16px}.pp .ab-card-main h3{font-size:30px;letter-spacing:-.01em}.pp .ab-card-main p{font-size:18px;line-height:1.6}.pp .ab-card-side{padding:32px 36px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:18px;background:var(--bg)}.pp .ab-card-side h4{font:400 13px/1.4 var(--fp);color:var(--ink2);margin-bottom:8px}.pp .ab-card-side ul{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:16px}.pp .ab-alltext summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}.pp .ab-alltext dl{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px 24px;padding:12px 0 4px;font-size:16px}.pp .ab-alltext dt{font-weight:700}.pp .ab-alltext dd{margin:0;color:var(--ink2)}.pp .ab-map{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.pp .ab-map-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line)}.pp .ab-stage{position:relative;aspect-ratio:1000/320;background:var(--bg)}.pp .ab-stage>svg{position:absolute;inset:0;width:100%;height:100%;display:block}.pp .ab-land{fill:color-mix(in srgb,var(--ink2) 22%,transparent)}.pp .ab-rt{fill:none;stroke-width:3;stroke-linecap:square;stroke-dasharray:6 6;stroke:color-mix(in srgb,var(--ink2) 45%,transparent)}.pp .ab-rt.on{stroke:#2F6FD0;stroke-width:5;stroke-dasharray:10 5}.pp .ab-node{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px 6px 8px;border:1px solid color-mix(in srgb,var(--ink2) 50%,var(--line));border-radius:2px;background:var(--surface);color:var(--ink);font:700 15px/1.1 var(--fb);cursor:pointer;white-space:nowrap}.pp .ab-node i{width:12px;height:12px;background:var(--line);flex:none}.pp .ab-node.base i{background:var(--aurora)}.pp .ab-node[aria-pressed=true]{border:2px solid #2F6FD0;box-shadow:0 0 0 3px color-mix(in srgb,#2F6FD0 25%,transparent)}.pp .ab-node[aria-pressed=true] i{background:#2F6FD0}.pp .ab-node.base[aria-pressed=true] i{background:var(--aurora)}.pp .ab-node small{font:400 11px/1 var(--fp);color:var(--ink2)}.pp .ab-node:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.pp .ab-read{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border-top:1px solid var(--line)}.pp .ab-read>div{padding:24px 28px}.pp .ab-read>div+div{border-left:1px solid var(--line)}.pp .ab-clocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:14px}.pp .ab-bars{display:flex;flex-direction:column;gap:10px;margin-top:6px}.pp .ab-bar{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center;font-size:14px}.pp .ab-track{position:relative;height:18px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100% / 24));border:1px solid var(--line)}.pp .ab-seg{position:absolute;top:2px;bottom:2px}.pp .ab-seg.t{background:var(--aurora)}.pp .ab-seg.c{background:#2F6FD0}.pp .ab-seg.o{background:repeating-linear-gradient(45deg,var(--ink) 0 3px,transparent 3px 6px);top:-4px;bottom:-4px;opacity:.55}.pp .ab-ticks{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;font:400 11px/1 var(--fp);color:var(--ink2)}.pp .ab-ticks div{display:flex;justify-content:space-between}.pp .ab-honest{list-style:none}.pp .ab-honest li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px;padding:18px 0;border-top:1px solid var(--line)}.pp .ab-honest li:last-child{border-bottom:1px solid var(--line)}.pp .ab-lang{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pp .ab-lang>div{border:1px solid var(--line);border-radius:4px;padding:20px 22px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.pp .ab-lang b{font:650 22px/1.2 var(--fd)}.pp .ab-lang p{font-size:16px;color:var(--ink2)}@media (prefers-reduced-motion:reduce){.pp .ab-path::after{transition:none}}@container pp (max-width:1000px){.pp .about-hero,.pp .ab-card,.pp .ab-read{grid-template-columns:minmax(0,1fr)}.pp .ab-por{justify-self:start}.pp .ab-card-side,.pp .ab-read>div+div{border-left:0;border-top:1px solid var(--line)}.pp .ab-idx>li{grid-template-columns:48px minmax(0,1fr)}.pp .ab-idx>li>p,.pp .ab-idx>li>ul{grid-column:2}.pp .ab-path{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:20px}.pp .ab-path::before,.pp .ab-path::after{display:none}.pp .ab-lang{grid-template-columns:minmax(0,1fr)}}@container pp (max-width:640px){.pp .ab-glance,.pp .ab-alltext dl{grid-template-columns:minmax(0,1fr)}.pp .ab-glance dt{border-bottom:0;padding-bottom:0}.pp .ab-path{grid-template-columns:repeat(2,minmax(0,1fr))}.pp .ab-card-main,.pp .ab-card-side{padding:24px 20px}.pp .ab-stage{aspect-ratio:auto;display:flex;flex-direction:column;gap:8px;padding:14px}.pp .ab-stage>svg{display:none}.pp .ab-node{position:relative;transform:none;left:auto!important;top:auto!important;justify-content:flex-start}.pp .ab-read>div{padding:20px}.pp .ab-bar,.pp .ab-ticks{grid-template-columns:72px minmax(0,1fr)}.pp .ab-clocks{grid-template-columns:minmax(0,1fr)}}