:root{color-scheme:light;--canvas:#FFFFFF;--surface:#F4F4F1;--surface-strong:#E7E7E3;--text:#0A0A0A;--text-muted:#4A4A4A;--text-faint:#6E6E6E;--border:#0A0A0A;--rule:#D8D8D3;--brand:#C8102E;--brand-wash:rgba(200,16,46,.07);--human:#1A4FD6;--agent:#6C2BD9;--success:#1B7A3D;--error:#B3121F;--focus:#C8102E;--paper:var(--canvas);--paper-deep:var(--surface);--ink:var(--text);--ink-soft:var(--text-muted);--ink-faint:var(--text-faint);--annotation:var(--brand);--display:"Inter",Helvetica,Arial,sans-serif;--body:"Inter",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--page-inset:clamp(1.25rem,5vw,4rem);--page-frame:84rem;--measure:46rem;--principle-content:46rem;--number-rail:5rem;--number-gutter:2rem}[data-theme=dark]{color-scheme:dark;--canvas:#0B0B0C;--surface:#141416;--surface-strong:#1E1E21;--text:#F5F5F4;--text-muted:#B9B9B6;--text-faint:#8E8E8B;--border:#EDEDEA;--rule:#2C2C2F;--brand:#FF4D5E;--brand-wash:rgba(255,77,94,.12);--human:#7EA6FF;--agent:#C08CFF;--success:#5FD68A;--error:#FF7A85;--focus:#FF4D5E}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:clamp(.98rem,.94rem + .18vw,1.06rem);font-weight:400;line-height:1.55;font-synthesis-weight:none;font-feature-settings:"ss01","cv05";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}strong,b{font-weight:600}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.16em}.wrap{width:100%;max-width:calc(var(--page-frame) + 2 * var(--page-inset));margin:0 auto;padding-inline:var(--page-inset)}.mono,code{font-family:var(--mono)}.masthead{position:relative;padding-block:1.15rem;border-bottom:1px solid var(--ink);background:var(--paper)}.masthead .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.wordmark{font-family:var(--display);font-size:1.05rem;letter-spacing:.02em;font-weight:700;text-transform:uppercase;text-decoration:none}.wordmark b{font-weight:800}.byline{margin:0;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.masthead-meta{display:flex;align-items:center;gap:.85rem}.skill-link{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--annotation);border:1px solid var(--annotation);padding:.28rem .55rem;line-height:1;transition:background .15s ease,color .15s ease}.skill-link:hover,.skill-link:focus-visible{background:var(--annotation);color:var(--paper)}.theme-toggle{display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease}.theme-toggle:hover{background:var(--ink);color:var(--paper)}.theme-icon-dark{display:none}[data-theme=dark] .theme-icon-light{display:none}[data-theme=dark] .theme-icon-dark{display:block}.hero{padding-block:clamp(2.5rem,6vw,5rem)clamp(3rem,7vw,5.5rem)}.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr)}.hero-aside{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding-bottom:1.25rem;border-bottom:1px solid var(--rule);margin-bottom:clamp(1.5rem,4vw,2.5rem)}.hero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(3.2rem,1.2rem + 9vw,9rem);line-height:.86;letter-spacing:-.045em;margin:0 0 clamp(1.25rem,3vw,2rem);max-width:12ch}.hero .deck{font-size:clamp(1.15rem,1rem + .7vw,1.65rem);font-weight:400;line-height:1.4;max-width:42ch;color:var(--ink);margin:0}.hero .deck em{font-style:italic;color:var(--ink-soft)}.parse{margin-top:clamp(2.75rem,7vw,5rem);padding:clamp(1.25rem,3vw,2.25rem)0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);overflow-x:auto}.p-body .parse{margin-top:.5rem;margin-bottom:1rem;padding:1.15rem 0}.parse-cap{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--annotation);margin-bottom:1.5rem}.parse-row{display:flex;gap:.9rem;min-width:max-content}.tok{display:flex;flex-direction:column;align-items:stretch}.tok .lex{font-family:var(--mono);font-size:clamp(1rem,.8rem + 1.2vw,2rem);font-weight:500;white-space:nowrap;padding-bottom:.55rem}.tok .brk{height:.5rem;border:1.5px solid;border-top:none;transform-origin:center top}.tok .lab{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding-top:.5rem;color:currentColor}.tok.subj{color:var(--ink-faint)}.tok.noun,.tok.verb,.tok.targ{color:var(--human)}.tok.mod{color:var(--annotation)}.tok.noun .lex,.tok.verb .lex,.tok.targ .lex{color:var(--ink)}.tok.mod .lex{color:var(--annotation)}@media(prefers-reduced-motion:no-preference){.tok .brk{animation:draw .5s cubic-bezier(.2,.7,.3,1)backwards}.tok .lab{animation:fade .5s ease backwards}.tok:nth-child(1) .brk,.tok:nth-child(1) .lab{animation-delay:.15s}.tok:nth-child(2) .brk,.tok:nth-child(2) .lab{animation-delay:.28s}.tok:nth-child(3) .brk,.tok:nth-child(3) .lab{animation-delay:.41s}.tok:nth-child(4) .brk,.tok:nth-child(4) .lab{animation-delay:.54s}.tok:nth-child(5) .brk,.tok:nth-child(5) .lab{animation-delay:.67s}}@keyframes draw{from{transform:scaleX(.04);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes fade{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.block{border-top:1px solid var(--ink);padding-block:clamp(3rem,8vw,6.5rem)}.block .wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}@media(min-width:52rem){.block .wrap{grid-template-columns:14rem minmax(0,1fr);gap:3rem}}.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;line-height:1.4;color:var(--annotation);padding-top:.35rem}.lede p{max-width:var(--measure);font-size:clamp(1.05rem,1rem + .5vw,1.35rem);line-height:1.5;margin:0 0 1.15rem}.lede p:last-child{margin-bottom:0}.key{display:inline-block;font-family:var(--mono);font-size:.72em;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:.05em .25em}.key.h{color:var(--human);border-bottom:1px solid var(--human)}.key.a{color:var(--agent);border-bottom:1px solid var(--agent)}.toc{display:grid;grid-template-columns:minmax(0,1fr);border-top:2px solid var(--ink)}@media(min-width:52rem){.toc{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}}.toc a{padding:1.15rem 0 1.25rem;border-bottom:1px solid var(--rule);text-decoration:none;display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;transition:color .15s ease}.toc a:hover,.toc a:focus-visible{color:var(--annotation)}.toc .tn{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.toc .tt{font-family:var(--display);font-weight:700;font-size:clamp(1.35rem,1.05rem + .5vw,1.6rem);letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}.toc .tg{font-size:.88rem;color:var(--ink-soft);line-height:1.35}.section{border-top:2px solid var(--ink);padding-block:clamp(3.5rem,8vw,7rem);scroll-margin-top:1rem}.section .wrap{max-width:calc(var(--principle-content) + 2 * var(--page-inset))}.section-head{display:grid;grid-template-columns:minmax(0,1fr);margin-bottom:clamp(1.75rem,4vw,3rem)}.section-head .sec-index{font-family:var(--display);font-weight:800;font-size:clamp(4rem,2rem + 9vw,9.5rem);line-height:.8;letter-spacing:-.05em;color:var(--annotation)}.section-head .sec-kicker{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.section-head .n{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.section-head .sec-top{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--ink-faint);transition:color .15s ease}.section-head .sec-top:hover,.section-head .sec-top:focus-visible{color:var(--annotation)}.section-head h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.035em;font-size:clamp(2.6rem,1.4rem + 4vw,5.25rem);margin:.15rem 0 0;line-height:.92}.section-head .gloss{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:.6rem;display:block}@media(min-width:52rem){.section-head{grid-template-columns:var(--number-rail)minmax(0,1fr);column-gap:var(--number-gutter);align-items:end}.section-head .sec-index{grid-column:1;grid-row:1;justify-self:end;align-self:end;text-align:end}.section-head .sec-meta{grid-column:2;grid-row:1}}.p{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding-block:clamp(1.75rem,4vw,3.25rem);border-top:1px solid var(--rule);scroll-margin-top:2rem}.p:first-of-type{border-top:none;padding-top:0}.p-num{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,1.3rem + 3vw,4.25rem);letter-spacing:-.05em;color:var(--annotation);line-height:.85}.p-num .anchor{text-decoration:none;color:inherit}.p-num .anchor:hover,.p-num .anchor:focus-visible{color:var(--ink)}@media(min-width:52rem){.p{grid-template-columns:0 minmax(0,1fr)}.p-num{grid-column:1;justify-self:end;width:var(--number-rail);transform:translateX(calc(-1 * var(--number-gutter)));text-align:end}.p-body{grid-column:2}}.p-body{max-width:var(--principle-content)}.p-title{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.75rem;row-gap:.35rem;margin-bottom:.7rem}.p-title h3{flex:none;max-width:100%}.p-body h3{font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:clamp(1.4rem,1.05rem + .9vw,2rem);line-height:1.08;margin:0}.p-body>p{margin:0 0 1rem;max-width:var(--measure)}.p-body>p:last-child{margin-bottom:0}code,.mono{font-family:var(--mono);font-size:.85em;background:var(--paper-deep);padding:.1em .3em}.ex{font-family:var(--mono);font-size:.8rem;line-height:1.7;background:var(--paper-deep);border-left:2px solid var(--ink);padding:.9rem 1.1rem;margin:0 0 1rem;overflow-x:auto}.ex div{white-space:pre;display:block}.ex .yes::before{content:"OK  ";color:var(--success);font-weight:600}.ex .no::before{content:"NO  ";color:var(--error);font-weight:600}.ex .no{color:var(--ink-faint)}.ex .cmt{color:var(--ink-faint)}.ex .c-ok{color:var(--success);font-weight:600}.ex .c-err{color:var(--error);font-weight:600}.panes{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-top:.5rem}@media(min-width:40rem){.panes{grid-template-columns:1fr 1fr}}.pane{padding:1rem 1.1rem}.pane+.pane{border-top:1px solid var(--rule)}@media(min-width:40rem){.pane+.pane{border-top:none;border-left:1px solid var(--rule)}}.pane h4{font-family:var(--mono);font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .5rem;font-weight:600}.pane p{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink)}.pane.h h4{color:var(--human)}.pane.a h4{color:var(--agent)}.p.split .pane.h{border-top:2px solid var(--human)}.p.split .pane.a{border-top:2px solid var(--agent)}.flag{display:inline-flex;align-items:center;font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;padding:.25em .5em;color:var(--annotation);border:1px solid}.closing p,.colophon p{max-width:var(--measure);margin:0 0 1.1rem}.closing ul{max-width:var(--measure);margin:0 0 1.1rem;padding-left:1.1rem}.closing li{margin-bottom:.4rem}.closing li a{color:var(--annotation)}.colophon .sig{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:1.75rem;padding-top:1.1rem;border-top:1px solid var(--rule)}.colophon .sig .mono{background:0 0;padding:0;font-size:1em}footer{border-top:2px solid var(--ink);padding-block:2rem;margin-top:clamp(3rem,8vw,6rem)}footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}footer .heart{color:var(--annotation)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:var(--annotation);color:var(--paper)}*{scrollbar-color:var(--annotation)var(--paper-deep)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}