.gd-hero__inner{justify-items:start;gap:1.1rem;max-width:60rem;padding-block:clamp(7rem,15vh,9rem) clamp(1.5rem,3vw,2.5rem);display:grid}.gd-back{color:var(--mist);font-size:.9rem}.gd-title{letter-spacing:-.02em;overflow-wrap:break-word;text-wrap:balance;font-size:clamp(2.1rem,1.2rem + 3.6vw,4.2rem);font-weight:800;line-height:1.1}.gd-promise{font-size:var(--step-1);color:var(--paper);max-width:44rem;line-height:1.5}.gd-meta{color:var(--dim);flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.88rem;display:flex}.gd-meta a{color:var(--mist);text-decoration:underline;text-decoration-color:var(--line-accent);text-underline-offset:3px}.gd-cover{background:var(--ink-2);box-shadow:0 0 0 1px var(--line-dark), 0 40px 80px -40px #000000e6;border-radius:1.25rem;margin:0 0 clamp(2.5rem,5vw,4rem);overflow:hidden}.gd-cover img{width:100%;height:auto;display:block}.gd-layout{gap:2rem;padding-bottom:clamp(3rem,6vw,5rem);display:grid}@media (width>=1100px){.gd-layout{grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:clamp(3rem,5vw,5rem)}.gd-toc{position:sticky;top:6.5rem}.gd-toc__box>summary{display:none}}.gd-toc__box{background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-dark);border-radius:1rem}.gd-toc__box>summary{letter-spacing:.2em;text-transform:uppercase;cursor:pointer;justify-content:space-between;padding:1rem 1.2rem;font-size:.78rem;font-weight:700;list-style:none;display:flex}.gd-toc__box>summary:after{content:"+";color:var(--accent)}.gd-toc__box[open]>summary:after{content:"−"}.gd-toc__box>summary::-webkit-details-marker{display:none}.gd-toc ol{gap:.15rem;padding:0 .6rem .8rem;display:grid}@media (width>=1100px){.gd-toc__box{box-shadow:none;background:0 0}.gd-toc ol{padding:0}}.gd-toc a{color:var(--mist);border-radius:.5rem;grid-template-columns:2rem minmax(0,1fr);gap:.2rem;padding:.45rem .6rem;font-size:.9rem;line-height:1.35;transition:color .25s,background-color .25s;display:grid}.gd-toc a span{color:var(--dim);font-variant-numeric:tabular-nums}.gd-toc a.is-current{color:var(--paper);background:#ffffff0d}.gd-toc a.is-current span{color:var(--accent)}@media (hover:hover) and (pointer:fine){.gd-toc a:hover{color:var(--paper)}}.gprose{counter-reset:gstep;min-width:0;max-width:46rem;font-size:var(--step-0);color:var(--mist);line-height:1.7}.gprose>*+*{margin-top:1.1rem}.gprose h2{counter-increment:gstep;letter-spacing:-.01em;color:var(--paper);overflow-wrap:break-word;gap:.6rem;margin-top:clamp(3.5rem,7vw,5rem);scroll-margin-top:6.5rem;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);font-weight:800;line-height:1.2;display:grid}.gprose h2:before{content:counter(gstep, decimal-leading-zero);letter-spacing:.3em;color:var(--accent);font-size:.8rem;font-weight:700}.gprose>h2:first-child{margin-top:0}.gprose h3{font-size:var(--step-1);color:var(--paper);margin-top:2.2rem;scroll-margin-top:6.5rem;line-height:1.3}.gprose strong{color:var(--paper)}.gprose a{color:var(--accent);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.gprose ul,.gprose ol{gap:.5rem;padding-left:1.3rem;display:grid}.gprose ul{list-style:outside}.gprose ol{list-style:decimal}.gprose li::marker{color:var(--accent)}.gprose :not(pre)>code{background:var(--ink-4);color:var(--paper);overflow-wrap:anywhere;border-radius:.35rem;padding:.12em .4em;font-size:.88em}.gprose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.gprose th,.gprose td{border-bottom:1px solid var(--line-dark);text-align:left;vertical-align:top;padding:.7rem .8rem}.gprose th{color:var(--paper);font-weight:600}.gblock{box-shadow:inset 0 0 0 1px var(--line-dark);background:#0e0e10;border-radius:1rem;overflow:hidden}.gblock--prompt{box-shadow:inset 0 0 0 1px var(--line-accent)}.gblock__bar{border-bottom:1px solid var(--line-dark);background:var(--ink-3);align-items:center;gap:.75rem;min-height:3rem;padding:.45rem .6rem .45rem 1rem;display:flex}.gblock__kind:before{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:700}.gblock__kind[data-kind=prompt]:before{content:var(--k-prompt,"Prompt")}.gblock__kind[data-kind=command]:before{content:var(--k-command,"Terminal")}.gblock__kind[data-kind=output]:before{content:var(--k-output,"Output");color:var(--dim)}.gblock__title{min-width:0;color:var(--mist);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.gblock__copy{background:var(--accent-strong);color:#fff;border-radius:.4rem;flex:none;align-items:center;gap:.4rem;min-height:2.2rem;margin-left:auto;padding:0 .9rem;font-size:.85rem;font-weight:600;display:none}.gblock__copy.is-ready{display:inline-flex}.gblock__copy.is-done{background:#1f6f43}.gblock__copy:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.gblock pre{color:var(--paper);margin:0;padding:1rem 1.1rem 1.2rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.86rem;line-height:1.65;overflow-x:auto}.gblock--prompt pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-body);font-size:.95rem}.gblock--output pre{color:#c9c4bd;font-size:.78rem;line-height:1.5}.gblock pre:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gnote{border-left:3px solid var(--accent);color:var(--paper);background:#ff6a2b0f;border-radius:.8rem;padding:1rem 1.2rem}.gnote--warn{background:#f0b42912;border-left-color:#f0b429}.gnote:before{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:block}.gnote--note:before{content:var(--n-note,"Good to know")}.gnote--warn:before{content:var(--n-warn,"Heads up");color:#f0b429}.gnote>*+*{margin-top:.6rem}.gtabs{gap:1rem;display:grid}.gtabs__list{background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-dark);border-radius:.8rem;flex-wrap:wrap;gap:.4rem;padding:.3rem;display:flex}.gtabs__tab{min-height:2.6rem;color:var(--mist);border-radius:.55rem;flex:auto;padding:.4rem .9rem;font-size:.9rem;font-weight:600}.gtabs__tab[aria-selected=true]{background:var(--accent-strong);color:#fff}.gtabs__tab:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.gtabs__panel>*+*{margin-top:1rem}.gtabs:not(.is-ready) .gtabs__panel:before{content:attr(data-label);letter-spacing:.2em;text-transform:uppercase;color:var(--paper);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:block}.gtabs.is-ready .gtabs__panel[hidden]{display:none}.gdl{background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-accent);border-radius:1rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.1rem 1.2rem;display:grid;color:var(--paper)!important;text-decoration:none!important}.gdl__icon{background:var(--accent-strong);color:#fff;border-radius:.7rem;place-items:center;width:2.8rem;height:2.8rem;font-size:1.2rem;display:grid}.gdl__name{overflow-wrap:anywhere;font-weight:700;display:block}.gdl__what{color:var(--mist);font-size:.88rem;line-height:1.45;display:block}.gdl__btn{background:var(--accent-strong);color:#fff;white-space:nowrap;border-radius:.4rem;padding:.55rem 1rem;font-size:.88rem;font-weight:600}@media (width<=560px){.gdl{grid-template-columns:auto minmax(0,1fr)}.gdl__btn{text-align:center;grid-column:1/-1}}.gskills{gap:1rem;display:grid}@media (width>=720px){.gskills{grid-template-columns:repeat(2,minmax(0,1fr))}}.gskills__group{background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-dark);border-radius:1rem;padding:1.1rem 1.2rem 1.2rem}.gskills__group>p{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:700}.gskills__group ul{gap:.7rem;margin-top:.8rem;padding:0;list-style:none}.gskills__group li{gap:.15rem;display:grid}.gskills__group li code{justify-self:start}.gskills__group li span{font-size:.92rem;line-height:1.5}.gfig{margin:1.5rem 0 0}.gfig img{width:100%;height:auto;box-shadow:0 0 0 1px var(--line-dark);border-radius:1rem;display:block}.gfig figcaption{color:var(--dim);margin-top:.7rem;font-size:.85rem}.gflow{counter-reset:gflow;gap:.6rem!important;padding:0!important;list-style:none!important;display:grid!important}@media (width>=720px){.gflow{grid-template-columns:repeat(3,minmax(0,1fr))}}.gflow li{counter-increment:gflow;background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-dark);border-radius:.9rem;gap:.25rem;padding:1rem 1.1rem;display:grid}.gflow li:before{content:counter(gflow, decimal-leading-zero);letter-spacing:.2em;color:var(--accent);font-size:.75rem;font-weight:700}.gflow li b{color:var(--paper)}.gflow li code{justify-self:start}.gflow li span{font-size:.9rem;line-height:1.5}.gd-related ul{gap:.8rem;margin-top:1.2rem;display:grid}
