._article_1ho7h_1{padding-block:var(--size-fluid-4)}._layout_1ho7h_6{min-width:0}._hasToc_1ho7h_10{grid-template-columns:minmax(0, var(--content-width)) 240px;column-gap:var(--size-8);grid-template-rows:auto auto 1fr;grid-template-areas:"header toc""visual toc""body toc";align-items:start;display:grid}._header_1ho7h_22{margin-bottom:var(--size-fluid-4);grid-area:header}._tocAside_1ho7h_27{top:calc(var(--nav-height) + var(--size-4) + var(--size-3));grid-area:toc;position:sticky}._body_1ho7h_33{grid-area:body;min-width:0}@media (width<820px){._hasToc_1ho7h_10{grid-template-columns:1fr;grid-template-areas:"header""visual""toc""body"}._tocAside_1ho7h_27{position:static}}._back_1ho7h_53{font-size:var(--font-size-1);font-family:var(--font-heading);color:var(--color-text);margin-bottom:var(--size-6);align-items:center;font-weight:400;text-decoration:none;transition:color .2s,text-shadow .2s;display:inline-flex;&:hover{color:var(--p-teal);text-shadow:0 0 8px color-mix(in srgb, var(--p-teal) 80%, transparent), 0 0 20px color-mix(in srgb, var(--p-teal) 40%, transparent)}}._title_1ho7h_72{font-size:var(--font-size-fluid-3);font-family:var(--font-heading);letter-spacing:.02em;margin:0 0 var(--size-4);background:linear-gradient(135deg, var(--p-teal2) 0%, var(--p-mint) 50%, var(--p-teal) 100%);-webkit-text-fill-color:transparent;background-clip:text;font-weight:400}._description_1ho7h_84{font-size:var(--font-size-2);font-family:var(--font-serif);color:var(--color-text);margin:0 0 var(--size-5);font-weight:300;line-height:1.6}._tags_1ho7h_94{gap:var(--size-2);margin:0 0 var(--size-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}._tag_1ho7h_94{font-size:var(--font-size-0);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);padding:.25em .8em;font-weight:500}._links_1ho7h_114{align-items:center;gap:var(--size-4);flex-wrap:wrap;display:flex}._githubLink_1ho7h_121{color:var(--color-text);align-items:center;text-decoration:none;transition:color .2s,filter .2s;display:flex;&:hover{color:var(--p-teal);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--p-teal) 80%, transparent))}}._liveLink_1ho7h_134{font-size:var(--font-size-1);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);align-items:center;gap:.4em;font-weight:500;text-decoration:none;transition:color .2s,text-shadow .2s;display:flex;&:hover{color:var(--p-green);text-shadow:0 0 8px color-mix(in srgb, var(--p-green) 80%, transparent), 0 0 20px color-mix(in srgb, var(--p-green) 40%, transparent)}}._pilot_1ho7h_155{background:var(--p-green);width:9px;height:9px;box-shadow:0 0 6px var(--p-green), 0 0 12px color-mix(in srgb, var(--p-green) 50%, transparent);border-radius:50%;flex-shrink:0}._coverFrame_1ho7h_165{justify-content:center;align-items:center;gap:var(--size-4);min-width:0;margin:0 0 var(--size-fluid-4);padding:var(--size-4);border-radius:var(--radius-3);border:1px solid color-mix(in srgb, var(--p-teal) 22%, transparent);background:color-mix(in srgb, var(--p-teal) 6%, var(--color-surface));box-shadow:0 0 0 1px color-mix(in srgb, var(--p-teal) 8%, transparent), 0 0 30px color-mix(in srgb, var(--p-teal) 10%, transparent);grid-area:visual;display:flex;overflow:hidden}._cover_1ho7h_165{border-radius:var(--radius-2);object-fit:contain;width:auto;max-width:100%;height:auto;max-height:min(380px,85vw);display:block}._coverPair_1ho7h_193 ._cover_1ho7h_165{max-width:45%;max-height:min(380px,72vw)}._content_1ho7h_199{font-size:var(--font-size-2);font-family:var(--font-serif);font-weight:300;line-height:1.75;& h2{font-family:var(--font-heading);font-size:var(--font-size-5);margin-top:var(--size-8);letter-spacing:.02em;color:var(--p-teal2);font-weight:400}& h3{font-family:var(--font-heading);font-size:var(--font-size-4);margin-top:var(--size-7);color:var(--p-mint);font-weight:400}& p{margin-block:var(--size-4)}& ul,& ol{padding-left:var(--size-6);margin-block:var(--size-4)}& li{margin-block:var(--size-2)}& pre{margin-block:var(--size-5)}& blockquote{border-left:4px solid var(--p-teal);padding-left:var(--size-4);color:var(--color-text);margin-inline:0;font-style:italic}& table{border-collapse:collapse;width:100%;margin-block:var(--size-5);font-size:var(--font-size-1)}& th,& td{padding:var(--size-2) var(--size-3);border:1px solid var(--color-border);text-align:left}& th{background:var(--color-surface);font-family:var(--font-heading);font-weight:500}}
