.gr-headline .core{background:linear-gradient(#13120f,#0c0b0a);padding:32px 34px 30px}.gr-headline-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 32px;display:flex}.gr-headline-h{font-size:var(--fs-28);letter-spacing:-.035em;margin-top:2px;font-weight:600;line-height:1.12}.gr-headline-save{align-items:baseline;gap:14px;display:flex}.gr-headline-save b{font:500 var(--fs-54)/1 var(--label);letter-spacing:-.05em;color:var(--bone)}.gr-headline-save span{max-width:200px;font:500 var(--fs-12)/1.5 var(--label);letter-spacing:.02em;color:var(--bone-2)}.gr-bars{gap:12px;margin-top:30px;list-style:none;display:grid}.gr-bars li{grid-template-columns:150px minmax(0,1fr) 170px;align-items:center;gap:18px;display:grid}.gr-bar-name{font-size:var(--fs-15);color:var(--bone-2)}.gr-bar-track{border-radius:var(--r-pill);background:#ffffff0a;height:12px;position:relative;overflow:hidden}.gr-bar-track i{border-radius:var(--r-pill);background:#eeebe542;position:absolute;top:0;bottom:0;left:0}.gr-bar-val{font:500 var(--fs-15)/1.2 var(--label);font-variant-numeric:tabular-nums;text-align:right;color:var(--bone-2)}.gr-bars li.is-ours .gr-bar-name,.gr-bars li.is-ours .gr-bar-val{color:var(--bone);font-weight:600}.gr-bars li.is-ours .gr-bar-track i{background:var(--bone)}.gr-headline-note{font:400 var(--fs-12)/1.7 var(--label);color:var(--bone-3);margin-top:24px}.gr-includes{margin-top:32px}.gr-includes .pg-h3{margin-bottom:12px}.gr-cmp th,.gr-cmp td{padding:18px 16px}.gr-cmp th:first-child{padding-left:26px}.gr-cmp td:last-child{padding-right:26px}.gr-cmp .pg-num b{font-size:var(--fs-17)}.gr-cmp td.gr-ours{background:#eeebe509}.gr-cmp thead th:nth-child(2){color:var(--bone)}.gr-cmp small.gr-save{color:var(--bone);letter-spacing:.06em}.gr-stale{color:var(--bone-3)!important}.gr-tag{white-space:nowrap;border-radius:var(--r-pill);border:1px solid var(--line-2);text-transform:uppercase;align-items:center;width:max-content;height:20px;margin-left:auto;padding:0 8px;font:500 var(--fs-12)/1 var(--label)!important;letter-spacing:.1em!important;color:var(--bone-2)!important;margin-top:8px!important;display:flex!important}.gr-tag-alert{border-color:var(--bone);color:var(--bone)!important}.gr-src{font-size:var(--fs-13);flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;line-height:1.5;display:flex}.gr-src a{color:var(--bone-2);border-bottom:1px dotted var(--bone-3)}.gr-src a:hover{color:var(--bone)}.gr-src-cell small{font:500 var(--fs-12)/1.4 var(--label);letter-spacing:.04em;color:var(--bone-3);margin-top:6px;display:block}.gr-rules td{font-size:var(--fs-15);color:var(--bone-2);line-height:1.55}.gr-rules td.gr-src-cell{white-space:nowrap}.gr-method{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:56px;display:grid}.gr-method-item{border-radius:var(--r-lg);border:1px solid var(--line);background:#ffffff04;min-width:0;padding:26px 26px 24px}.gr-method-item h3{font-size:var(--fs-20);letter-spacing:-.025em;font-weight:600}.gr-method-item .pg-formula{margin-top:14px}.gr-method-item .pg-formula code{font-size:var(--fs-13);padding:16px 18px}.gr-method-item p{font-size:var(--fs-15);color:var(--bone-2);margin-top:12px;line-height:1.6}html:is([lang=zh-CN],[lang=ja],[lang=ko]) .gr-headline-save span{max-width:260px}@media (max-width:1100px){.gr-bars li{grid-template-columns:120px minmax(0,1fr) 150px;gap:12px}}@media (max-width:760px){.gr-headline .core{padding:22px 18px 20px}.gr-headline-h{font-size:var(--fs-20)}.gr-headline-save b{font-size:var(--fs-36)}.gr-bars{gap:14px}.gr-bars li{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.gr-bar-track{grid-area:2/1/auto/-1;height:10px}.gr-bar-val{font-size:var(--fs-15)}.gr-cmp th:first-child,.gr-cmp td:last-child{padding-left:0;padding-right:0}.gr-cmp td.gr-ours{background:0 0}.gr-cmp td.gr-src-cell{grid-column:1/-1}.gr-src{justify-content:flex-start;gap:0 14px}.gr-tag{margin-left:0}.gr-src a{text-underline-offset:4px;border-bottom:0;align-items:center;min-height:44px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}.gr-rules td.gr-src-cell{white-space:normal}.gr-rules td.gr-src-cell .pg-inline{align-items:center;min-height:44px;display:inline-flex}.gr-method{grid-template-columns:1fr;margin-top:36px}.gr-method-item{padding:20px 16px}}.gr-steps{margin-top:56px}.gr-params td{font-size:var(--fs-15);color:var(--bone-2);line-height:1.55}.gr-params tbody th .pg-code-inline{font-size:var(--fs-13)}.gr-params tbody th .pg-spec-sub{margin-top:8px}.gr-params td.pg-mono{font-size:var(--fs-13);color:var(--bone)}.gr-kv-tight{margin-top:0}.gr-kv-tight div{grid-template-columns:1fr;gap:6px}.gr-kv-tight dd{font-size:var(--fs-15);color:var(--bone-2);line-height:1.6}.gr-events{flex-wrap:wrap;gap:6px;display:flex}@media (max-width:760px){.gr-params tr{grid-template-columns:1fr}.gr-steps{margin-top:36px}}.gr-toc{margin-top:30px}.gr-toc ul{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.gr-toc a{border-radius:var(--r-pill);border:1px solid var(--line);min-height:44px;font-size:var(--fs-15);color:var(--bone-2);transition:border-color var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease);align-items:center;gap:10px;padding:0 16px;display:inline-flex}.gr-toc a:hover{color:var(--bone);border-color:var(--line-2)}.gr-toc a span{font:500 var(--fs-12)/1 var(--label);letter-spacing:.12em;color:var(--bone-3)}.gr-guide section.pg-sec{scroll-margin-top:90px}.gr-copy-row{justify-content:flex-end;margin-top:14px;display:flex}.gr-copy-row .pg-copy{height:36px}.pg-guide-layers .gr-copy-row{justify-content:flex-start;margin-top:20px}.gr-layer-mark{vertical-align:middle;border-top:1.5px solid #eeebe5bf;width:26px;height:0;margin-right:12px;display:inline-block}.gr-layer-mark.l2{border-top-style:dashed}.gr-layer-mark.l3{border-top:2px dotted #eeebe5bf}.gr-timelines{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:56px;display:grid}.gr-tl{border-radius:var(--r-lg);border:1px solid var(--line);background:linear-gradient(#ffffff0a,#ffffff03);min-width:0;padding:26px 26px 22px}.gr-tl-bar{gap:4px;margin-top:4px;list-style:none;display:grid}.gr-tl-bar li{border-radius:var(--r-xs);border:1px solid var(--line-2);height:34px;font:500 var(--fs-12)/1 var(--label);letter-spacing:.06em;color:var(--bone);white-space:nowrap;background:#eeebe514;align-items:center;padding:0 10px;display:flex;overflow:hidden}.gr-tl-bar li:nth-child(2){background:#eeebe524}.gr-tl-bar li:nth-child(3){background:#eeebe533}.gr-tl-beats{border-top:1px solid var(--line);margin-top:18px;list-style:none}.gr-tl-beats li{border-bottom:1px solid var(--line);font-size:var(--fs-15);color:var(--bone-2);grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px 0;line-height:1.55;display:grid}.gr-tl-beats b{font:500 var(--fs-12)/1.7 var(--label);color:var(--bone)}.gr-roles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:56px;display:grid}.gr-role{border-radius:var(--r-lg);border:1px solid var(--line);background:#ffffff04;flex-direction:column;min-width:0;padding:24px 22px;display:flex}.gr-role-n{font:500 var(--fs-12)/1 var(--label);color:var(--bone-2)}.gr-role h3{font-size:var(--fs-17);letter-spacing:-.02em;margin-top:26px;font-weight:600}.gr-role code{border-radius:var(--r-sm);font:500 var(--fs-13)/1.6 var(--mono);color:#d8d4cd;background:#00000057;margin-top:12px;padding:12px 14px;display:block}.gr-avoid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:56px;display:grid}.gr-avoid .pg-label{margin-bottom:4px}.gr-avoid-bad code{color:var(--bone-3)}.gr-pairs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:56px;display:grid}.gr-pair{border-radius:var(--r-lg);border:1px solid var(--line);background:linear-gradient(#ffffff0a,#ffffff03);flex-direction:column;min-width:0;padding:26px 26px 20px;display:flex}.gr-pair h3{font-size:var(--fs-20);letter-spacing:-.025em;font-weight:600}.gr-pair p{font-size:var(--fs-15);margin-top:16px;line-height:1.6}.gr-pair .pg-label{margin-bottom:6px}.gr-pair-weak{color:var(--bone-3)}.gr-pair-strong{color:var(--bone);border-radius:var(--r-md);border:1px solid var(--line);background:#0000004d;padding:14px 16px}.gr-pair-why{color:var(--bone-2);font-size:var(--fs-13)!important}.gr-pair .gr-copy-row{margin-top:auto;padding-top:14px}.gr-legend{flex-wrap:wrap;align-items:baseline;gap:10px 18px;margin-top:48px;display:flex}.gr-legend .pg-label{margin:0}.gr-legend ul{flex-wrap:wrap;gap:6px 8px;list-style:none;display:flex}.gr-legend li{border-radius:var(--r-pill);border:1px solid var(--line);font:500 var(--fs-12)/1.3 var(--label);color:var(--bone-2);padding:6px 12px}.gr-moves{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:28px;list-style:none;display:grid}.gr-move{border-radius:var(--r-lg);border:1px solid var(--line);background:#ffffff04;flex-direction:column;min-width:0;padding:22px 22px 16px;display:flex}.gr-move-top{align-items:baseline;gap:12px;display:flex}.gr-move-n{font:500 var(--fs-12)/1 var(--label);letter-spacing:.14em;color:var(--bone-3)}.gr-move h3{font-size:var(--fs-17);letter-spacing:-.02em;font-weight:600}.gr-move-when{font-size:var(--fs-13);color:var(--bone-3);margin-top:8px;line-height:1.5}.gr-move-t{border-radius:var(--r-md);font:500 var(--fs-13)/1.65 var(--label);color:#d8d4cd;background:#00000057;margin-top:14px;padding:14px 16px}.gr-move .gr-copy-row{margin-top:auto;padding-top:12px}mark.gr-ph{color:var(--bone);background:#eeebe51f;border-radius:4px;padding:0 3px}html:is([lang=zh-CN],[lang=ja],[lang=ko]) .gr-move-t,html:is([lang=zh-CN],[lang=ja],[lang=ko]) .gr-role code{font-family:var(--sans);font-size:var(--fs-15)}@media (max-width:1100px){.gr-roles,.gr-moves{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.gr-timelines,.gr-avoid,.gr-pairs,.gr-roles,.gr-moves{grid-template-columns:1fr;margin-top:36px}.gr-tl,.gr-pair{padding:20px 16px 16px}.gr-tl-bar li{font-size:var(--fs-12);padding:0 6px}.gr-tl-beats li{grid-template-columns:64px minmax(0,1fr)}.gr-copy-row .pg-copy{height:44px}}.gr-skills .btn .cost{font:600 var(--fs-12)/1 var(--label);letter-spacing:.04em;border-radius:var(--r-pill);background:#09090a17;align-items:center;height:26px;padding:0 10px;display:inline-flex}.gr-flows{grid-template-columns:repeat(3,minmax(0,1fr))}.gr-flows .pg-feat{flex-direction:column;display:flex}.gr-ask{padding-top:18px;line-height:1.55;font-size:var(--fs-13)!important;color:var(--bone)!important;margin-top:auto!important}.gr-ask .pg-label{margin-bottom:6px}.gr-install{gap:14px;margin-top:32px;list-style:none;display:grid}.gr-step{border-radius:var(--r-lg);border:1px solid var(--line);background:#ffffff04;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:6px 14px;padding:20px 22px;display:grid}.gr-step .pg-flow-n{padding-top:4px}.gr-step p{font-size:var(--fs-15);color:var(--bone-2);line-height:1.6}.gr-step .pg-code{grid-column:2;margin-top:8px}.gr-inside{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.gr-tree div{padding:12px 0}.gr-tree dt{text-transform:none;letter-spacing:0}.gr-tree dt .pg-code-inline{font-size:var(--fs-13)}.gr-preview pre{max-height:520px;overflow-y:auto}@media (max-width:1100px){.gr-flows{grid-template-columns:1fr}}@media (max-width:760px){.gr-step{grid-template-columns:1fr;padding:16px}.gr-step .pg-code{grid-column:1}.gr-inside{grid-template-columns:1fr}.gr-preview pre{max-height:420px}}.gr-map td{font-size:var(--fs-15);color:var(--bone-2);line-height:1.55}.gr-mfaq dt{text-transform:none;letter-spacing:-.01em;font:600 var(--fs-15)/1.4 var(--sans);color:var(--bone)}.gr-migrate .pg-note a{overflow-wrap:anywhere}.gr-map .pg-code-inline,.gr-codes .pg-code-inline{overflow-wrap:anywhere;word-break:break-word}.gr-codes{flex-wrap:wrap;gap:6px;display:flex}.gr-map th .pg-spec-sub,.gr-map td .pg-spec-sub{margin-top:4px;display:block}.gr-map3 th,.gr-map3 td,.gr-map4 th,.gr-map4 td,.gr-map-ids th,.gr-map-ids td{vertical-align:top;padding:16px 18px}@media (max-width:760px){.gr-map tr{grid-template-columns:1fr 1fr}.gr-map td:last-child{grid-column:1/-1}.gr-map3 tr{grid-template-columns:repeat(3,minmax(0,1fr))}.gr-map4 tr{grid-template-columns:repeat(2,minmax(0,1fr))}.gr-map4 td:last-child{grid-column:auto}.gr-map-ids tr{grid-template-columns:minmax(0,1fr)}.gr-map3 th,.gr-map3 td,.gr-map4 th,.gr-map4 td,.gr-map-ids th,.gr-map-ids td{padding:0}}.pg-kv dd{overflow-wrap:anywhere;min-width:0}.gr-letters{margin-top:30px}.gr-letters ol{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.gr-letters a{border-radius:var(--r-sm);border:1px solid var(--line);min-width:44px;height:44px;font:500 var(--fs-13)/1 var(--label);color:var(--bone-2);place-items:center;padding:0 10px;display:inline-grid}.gr-letters a:hover{color:var(--bone);border-color:var(--line-2)}.gr-dir-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px 48px;margin-top:72px;display:grid}.gr-dir-group{border-top:1px solid var(--line);grid-template-columns:56px minmax(0,1fr);gap:16px;padding:20px 0;scroll-margin-top:90px;display:grid}.gr-dir-letter{font:300 var(--fs-28)/1 var(--sans);color:var(--bone-warm)}.gr-dir-group ul{gap:2px;list-style:none;display:grid}.gr-dir-group li{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.gr-dir-link{flex-wrap:wrap;align-content:center;align-items:baseline;gap:2px 12px;min-height:44px;padding:6px 0;display:flex}.gr-dir-name{font-size:var(--fs-17);color:var(--bone)}.gr-dir-link:hover .gr-dir-name{text-underline-offset:4px;text-decoration:underline;-webkit-text-decoration-color:var(--bone-3);text-decoration-color:var(--bone-3)}.gr-dir-path{font:500 var(--fs-12)/1.4 var(--label);color:var(--bone-3);overflow-wrap:anywhere}.gr-dir-type{font:500 var(--fs-12)/1 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-3);flex:none}@media (max-width:760px){.gr-dir-groups{grid-template-columns:1fr;margin-top:40px}.gr-dir-group{grid-template-columns:40px minmax(0,1fr);gap:10px}}.gr-facts td{font-size:var(--fs-15);color:var(--bone-2);line-height:1.55}.gr-facts td:nth-child(3){color:var(--bone)}.gr-facts td.gr-src-cell{white-space:nowrap}@media (max-width:760px){.gr-facts tr{grid-template-columns:1fr 1fr}.gr-facts td.gr-src-cell{white-space:normal;grid-column:1/-1}.gr-facts td.gr-src-cell .pg-inline{align-items:center;min-height:44px;display:inline-flex}}.gr-index.pg-toolgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.gr-index .pg-toolcard{gap:0;min-height:0}.gr-index-b{font-size:var(--fs-15);color:var(--bone-2);margin-top:12px;line-height:1.55}.gr-index .pg-toolcard-n{margin-top:auto;padding-top:18px}@media (max-width:1100px){.gr-index.pg-toolgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.gr-index.pg-toolgrid{grid-template-columns:1fr}}.gr-index-h{font-size:var(--fs-h2);letter-spacing:-.03em;color:var(--bone);margin-bottom:24px;font-weight:600;line-height:1.1}.pg-sec.gr-index-sec+.pg-sec.gr-index-sec{padding-top:72px}.gr-index-more{margin-top:18px}.gr-index-more .link{align-items:center;gap:6px;min-height:44px;display:inline-flex}.gr-compare-link{margin-top:10px}.fine+.gr-compare-link{margin-top:12px}@media (max-width:760px){.gr-compare-link a{align-items:center;min-height:44px;display:inline-flex}}
