:root{--paper: #ffffff;--ink: #16181c;--dim: #6b7280;--rule: #d8dbe1;--sunken: #f2f4f8;--lead: var(--ink);--accent: #1a4b9c;--accent-soft: #6b83b8;--warn: #b4443c;--title: var(--accent);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #15181d;--ink: #ccd2da;--dim: #868e9a;--rule: #2a3038;--sunken: #1c2027;--lead: #e5eaf2;--accent: #7fa6ea;--accent-soft: #61748f;--warn: #e0806f;color-scheme:dark}}:root[data-theme=dark]{--paper: #15181d;--ink: #ccd2da;--dim: #868e9a;--rule: #2a3038;--sunken: #1c2027;--lead: #e5eaf2;--accent: #7fa6ea;--accent-soft: #61748f;--warn: #e0806f;color-scheme:dark}@property --sky-x{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --sky-y{syntax: "<length>"; inherits: true; initial-value: 0px;}:root[data-sky=stars]{--paper: #06080f;--sunken: #0e1220;--rule: #232a3a;animation:sky-drift 840s linear infinite}:root[data-sky=stars].sky-driven{animation:none}@keyframes sky-drift{to{--sky-x: 1600px}}:root[data-sky=stars] body{background:transparent}:root[data-sky=stars] body:before,:root[data-sky=stars] body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-repeat:repeat}:root[data-sky=stars] body:before{background-position:var(--sky-x) var(--sky-y);background-image:radial-gradient(2px 2px at 856px 415px,rgba(255,255,255,.67) 50%,transparent 100%),radial-gradient(1px 1px at 1237px 48px,rgba(255,255,255,.91) 50%,transparent 100%),radial-gradient(1px 1px at 1510px 614px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1px 1px at 578px 817px,rgba(255,255,255,.8) 50%,transparent 100%),radial-gradient(1px 1px at 1559px 515px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(1px 1px at 1419px 482px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1px 1px at 605px 53px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 55px 708px,rgba(255,255,255,.92) 50%,transparent 100%),radial-gradient(1px 1px at 1047px 816px,rgba(255,255,255,.84) 50%,transparent 100%),radial-gradient(1px 1px at 1424px 907px,rgba(255,255,255,.81) 50%,transparent 100%),radial-gradient(1px 1px at 197px 919px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 117px 202px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 836px 320px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(2px 2px at 57px 284px,rgba(255,255,255,.91) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 843px 811px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1px 1px at 122px 834px,rgba(255,255,255,.89) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 590px 417px,rgba(255,255,255,.92) 50%,transparent 100%),radial-gradient(1px 1px at 899px 194px,rgba(255,255,255,.94) 50%,transparent 100%),radial-gradient(1px 1px at 945px 462px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1px 1px at 1184px 416px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 411px 848px,rgba(255,255,255,.91) 50%,transparent 100%),radial-gradient(1px 1px at 701px 646px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1584px 155px,rgba(255,255,255,.92) 50%,transparent 100%),radial-gradient(1px 1px at 774px 822px,rgba(255,255,255,.74) 50%,transparent 100%),radial-gradient(1px 1px at 991px 960px,rgba(255,255,255,.87) 50%,transparent 100%),radial-gradient(2px 2px at 1304px 616px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 79px 463px,rgba(255,255,255,.78) 50%,transparent 100%),radial-gradient(1px 1px at 456px 384px,rgba(255,255,255,.64) 50%,transparent 100%),radial-gradient(1px 1px at 1388px 211px,rgba(255,255,255,.82) 50%,transparent 100%),radial-gradient(1px 1px at 1559px 373px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(2px 2px at 317px 583px,rgba(255,255,255,.79) 50%,transparent 100%),radial-gradient(1px 1px at 505px 164px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(2px 2px at 1353px 821px,rgba(255,255,255,.71) 50%,transparent 100%),radial-gradient(2px 2px at 1116px 847px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 334px 752px,rgba(255,255,255,.82) 50%,transparent 100%),radial-gradient(2px 2px at 368px 938px,rgba(255,255,255,.91) 50%,transparent 100%),radial-gradient(1px 1px at 642px 167px,rgba(255,255,255,.77) 50%,transparent 100%),radial-gradient(2px 2px at 1520px 766px,rgba(255,255,255,.6) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 706px 944px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1px 1px at 511px 265px,rgba(255,255,255,.9) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 191px 417px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 188px 285px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 703px 186px,rgba(255,255,255,.76) 50%,transparent 100%),radial-gradient(1px 1px at 378px 864px,rgba(255,255,255,.78) 50%,transparent 100%),radial-gradient(1px 1px at 874px 614px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 830px 57px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1px 1px at 1173px 72px,rgba(255,255,255,.76) 50%,transparent 100%),radial-gradient(1px 1px at 310px 367px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(2px 2px at 517px 943px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 432px 575px,rgba(255,255,255,.9) 50%,transparent 100%),radial-gradient(1px 1px at 1280px 920px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 1551px 321px,rgba(255,255,255,.63) 50%,transparent 100%),radial-gradient(1px 1px at 1016px 129px,rgba(255,255,255,.71) 50%,transparent 100%),radial-gradient(1px 1px at 1572px 73px,rgba(255,255,255,.83) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 649px 677px,rgba(255,255,255,.73) 50%,transparent 100%),radial-gradient(2px 2px at 1115px 616px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 1287px 268px,rgba(255,255,255,.91) 50%,transparent 100%),radial-gradient(1px 1px at 1302px 752px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1124px 909px,rgba(255,255,255,.75) 50%,transparent 100%),radial-gradient(2px 2px at 1295px 816px,rgba(255,255,255,.94) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 771px 711px,rgba(255,255,255,.81) 50%,transparent 100%),radial-gradient(2px 2px at 101px 628px,rgba(255,255,255,.73) 50%,transparent 100%),radial-gradient(1px 1px at 756px 535px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(1px 1px at 1374px 311px,rgba(255,255,255,.74) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 238px 154px,rgba(255,255,255,.77) 50%,transparent 100%),radial-gradient(2px 2px at 1183px 153px,rgba(255,255,255,.89) 50%,transparent 100%),radial-gradient(1px 1px at 813px 532px,rgba(255,255,255,.82) 50%,transparent 100%),radial-gradient(1px 1px at 735px 49px,rgba(255,255,255,.78) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1236px 343px,rgba(255,255,255,.79) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1563px 970px,rgba(255,255,255,.67) 50%,transparent 100%),radial-gradient(1px 1px at 1175px 257px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(2px 2px at 1020px 79px,rgba(255,255,255,.92) 50%,transparent 100%),radial-gradient(2px 2px at 842px 745px,rgba(255,255,255,.69) 50%,transparent 100%),radial-gradient(1px 1px at 596px 955px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(2px 2px at 229px 751px,rgba(255,255,255,.81) 50%,transparent 100%),radial-gradient(1px 1px at 1437px 741px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(2px 2px at 517px 737px,rgba(255,255,255,.74) 50%,transparent 100%),radial-gradient(2px 2px at 781px 346px,rgba(255,255,255,.68) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 242px 74px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1px 1px at 1361px 647px,rgba(255,255,255,.93) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 898px 906px,rgba(255,255,255,.67) 50%,transparent 100%),radial-gradient(1px 1px at 549px 596px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 188px 502px,rgba(255,255,255,.83) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 219px 853px,rgba(255,255,255,.79) 50%,transparent 100%),radial-gradient(1px 1px at 461px 504px,rgba(255,255,255,.84) 50%,transparent 100%),radial-gradient(1px 1px at 1095px 687px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1px 1px at 1123px 507px,rgba(255,255,255,.82) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 322px 213px,rgba(255,255,255,.92) 50%,transparent 100%),radial-gradient(1px 1px at 954px 616px,rgba(255,255,255,.73) 50%,transparent 100%),radial-gradient(1px 1px at 468px 51px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 561px 243px,rgba(255,255,255,.72) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1415px 393px,#fff 50%,transparent 100%),radial-gradient(1px 1px at 20px 947px,rgba(255,255,255,.78) 50%,transparent 100%),radial-gradient(1px 1px at 699px 317px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 24px 55px,rgba(255,255,255,.86) 50%,transparent 100%),radial-gradient(2px 2px at 1231px 122px,#fff 50%,transparent 100%),radial-gradient(2px 2px at 1420px 89px,#fff 50%,transparent 100%),radial-gradient(2px 2px at 1240px 482px,rgba(255,255,255,.84) 50%,transparent 100%),radial-gradient(1px 1px at 1037px 258px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(1px 1px at 254px 612px,rgba(255,255,255,.83) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 1545px 831px,rgba(255,255,255,.74) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 333px 275px,rgba(255,255,255,.77) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 328px 52px,rgba(255,255,255,.7) 50%,transparent 100%),radial-gradient(2px 2px at 995px 733px,rgba(255,255,255,.85) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 586px 542px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 376px 542px,#fff 50%,transparent 100%),radial-gradient(1.5px 1.5px at 65px 414px,rgba(255,255,255,.7) 50%,transparent 100%),radial-gradient(1px 1px at 972px 343px,rgba(255,255,255,.77) 50%,transparent 100%);background-size:1600px 1000px}:root[data-sky=stars] body:after{background-position:calc(var(--sky-x) * .6) calc(var(--sky-y) * .6);background-image:radial-gradient(1.5px 1.5px at 757px 355px,rgba(255,255,255,.47) 50%,transparent 100%),radial-gradient(1px 1px at 110px 379px,rgba(255,255,255,.39) 50%,transparent 100%),radial-gradient(1px 1px at 728px 306px,rgba(255,255,255,.61) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 913px 454px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 619px 246px,rgba(255,255,255,.38) 50%,transparent 100%),radial-gradient(1px 1px at 269px 487px,rgba(255,255,255,.69) 50%,transparent 100%),radial-gradient(1px 1px at 541px 556px,rgba(255,255,255,.41) 50%,transparent 100%),radial-gradient(1px 1px at 258px 371px,rgba(255,255,255,.64) 50%,transparent 100%),radial-gradient(1px 1px at 425px 565px,rgba(255,255,255,.46) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 227px 31px,rgba(255,255,255,.44) 50%,transparent 100%),radial-gradient(1px 1px at 534px 314px,rgba(255,255,255,.47) 50%,transparent 100%),radial-gradient(1px 1px at 612px 398px,rgba(255,255,255,.39) 50%,transparent 100%),radial-gradient(1px 1px at 612px 107px,rgba(255,255,255,.57) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 880px 212px,rgba(255,255,255,.52) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 54px 393px,rgba(255,255,255,.65) 50%,transparent 100%),radial-gradient(1px 1px at 703px 526px,rgba(255,255,255,.37) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 840px 161px,rgba(255,255,255,.54) 50%,transparent 100%),radial-gradient(1px 1px at 133px 132px,rgba(255,255,255,.54) 50%,transparent 100%),radial-gradient(1px 1px at 370px 334px,rgba(255,255,255,.51) 50%,transparent 100%),radial-gradient(1px 1px at 656px 317px,rgba(255,255,255,.61) 50%,transparent 100%),radial-gradient(1px 1px at 461px 284px,rgba(255,255,255,.68) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 872px 332px,rgba(255,255,255,.61) 50%,transparent 100%),radial-gradient(1px 1px at 76px 161px,rgba(255,255,255,.5) 50%,transparent 100%),radial-gradient(1px 1px at 746px 473px,rgba(255,255,255,.63) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 850px 47px,rgba(255,255,255,.63) 50%,transparent 100%),radial-gradient(1px 1px at 249px 582px,rgba(255,255,255,.52) 50%,transparent 100%),radial-gradient(1px 1px at 783px 302px,rgba(255,255,255,.36) 50%,transparent 100%),radial-gradient(1px 1px at 914px 406px,rgba(255,255,255,.43) 50%,transparent 100%),radial-gradient(1px 1px at 528px 212px,rgba(255,255,255,.38) 50%,transparent 100%),radial-gradient(1px 1px at 747px 127px,rgba(255,255,255,.39) 50%,transparent 100%),radial-gradient(1px 1px at 457px 225px,rgba(255,255,255,.63) 50%,transparent 100%),radial-gradient(1px 1px at 547px 103px,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 406px 368px,rgba(255,255,255,.39) 50%,transparent 100%),radial-gradient(1px 1px at 436px 163px,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 365px 105px,rgba(255,255,255,.69) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 663px 37px,rgba(255,255,255,.51) 50%,transparent 100%),radial-gradient(1px 1px at 489px 385px,rgba(255,255,255,.5) 50%,transparent 100%),radial-gradient(1px 1px at 423px 51px,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 844px 459px,rgba(255,255,255,.46) 50%,transparent 100%),radial-gradient(1px 1px at 529px 70px,rgba(255,255,255,.51) 50%,transparent 100%),radial-gradient(1px 1px at 522px 495px,rgba(255,255,255,.43) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 145px 537px,rgba(255,255,255,.58) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 59px 182px,rgba(255,255,255,.6) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 709px 7px,rgba(255,255,255,.66) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 911px 135px,rgba(255,255,255,.42) 50%,transparent 100%),radial-gradient(1px 1px at 46px 436px,rgba(255,255,255,.57) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 373px 216px,rgba(255,255,255,.57) 50%,transparent 100%),radial-gradient(1px 1px at 260px 278px,rgba(255,255,255,.53) 50%,transparent 100%),radial-gradient(1px 1px at 405px 485px,rgba(255,255,255,.59) 50%,transparent 100%),radial-gradient(1px 1px at 179px 278px,rgba(255,255,255,.6) 50%,transparent 100%),radial-gradient(1px 1px at 661px 567px,rgba(255,255,255,.45) 50%,transparent 100%),radial-gradient(1px 1px at 210px 212px,rgba(255,255,255,.44) 50%,transparent 100%),radial-gradient(1px 1px at 8px 304px,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 125px 465px,rgba(255,255,255,.54) 50%,transparent 100%),radial-gradient(1px 1px at 918px 546px,rgba(255,255,255,.68) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 34px 55px,rgba(255,255,255,.67) 50%,transparent 100%),radial-gradient(1px 1px at 312px 386px,rgba(255,255,255,.53) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 359px 454px,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 779px 419px,rgba(255,255,255,.61) 50%,transparent 100%),radial-gradient(1px 1px at 60px 588px,rgba(255,255,255,.36) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 813px 544px,rgba(255,255,255,.59) 50%,transparent 100%),radial-gradient(1px 1px at 120px 39px,rgba(255,255,255,.57) 50%,transparent 100%),radial-gradient(1px 1px at 903px 43px,rgba(255,255,255,.5) 50%,transparent 100%),radial-gradient(1px 1px at 691px 194px,rgba(255,255,255,.51) 50%,transparent 100%),radial-gradient(1px 1px at 788px 201px,rgba(255,255,255,.39) 50%,transparent 100%),radial-gradient(1px 1px at 348px 32px,rgba(255,255,255,.7) 50%,transparent 100%),radial-gradient(1px 1px at 104px 185px,rgba(255,255,255,.69) 50%,transparent 100%),radial-gradient(1px 1px at 350px 582px,rgba(255,255,255,.7) 50%,transparent 100%),radial-gradient(1.5px 1.5px at 600px 466px,rgba(255,255,255,.36) 50%,transparent 100%),radial-gradient(1px 1px at 270px 152px,rgba(255,255,255,.58) 50%,transparent 100%);background-size:960px 600px;animation:twinkle 5s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.25}to{opacity:1}}*{box-sizing:border-box}html,body{margin:0;font-size:1.1rem;font-family:Avenir Next,Avenir,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.65;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}.container{max-width:37rem;margin:0 auto;padding:0 1rem 5rem}a{color:var(--accent)}p{margin:0 0 1.6em}ul,ol,dl{margin:0 0 1.8em}li{margin:.5em 0}li a:has(+br){font-weight:600;text-decoration:none}li a:has(+br):hover{text-decoration:underline}h1,h2,h3{color:var(--title);line-height:1.25;margin:3.2rem 0 1.2rem;text-wrap:balance}h1{font-size:2.6rem;font-weight:800;letter-spacing:-.02em;margin-top:2.4rem}h2{font-size:1.35rem;border-bottom:.12rem solid var(--rule);padding-bottom:.3rem}h3{font-size:1.1rem}.lead{font-size:1.15em;color:var(--lead)}blockquote{margin:2.2em 1.5em;font-family:Times New Roman,Times,serif;font-size:1.5rem;color:var(--dim)}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82em}pre{background:var(--sunken);padding:.9em 1em;overflow-x:auto;border-left:.12rem solid var(--rule)}figure{margin:0 0 1.8em;text-align:center}figure img{max-width:min(11rem,100%);height:auto;border:1px solid var(--rule)}figure img.large{max-width:min(22rem,100%)}figure img.wide{max-width:100%}p>img.large{width:9rem}.space{height:calc(var(--n, 1) * 1.6em)}p>img{float:right;width:5.5rem;height:auto;margin:.2em 0 .6em 1.2em;border:1px solid var(--rule)}h2{clear:both}a[target=_blank]:after{content:"↗";font-size:.7em;margin-left:.15em;vertical-align:.15em;opacity:.7}hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}dl dt{color:var(--dim);font-size:.8em;margin-top:1.8em}dl dt:first-child{margin-top:0}dl dd{margin:.2em 0 0}.site-header{display:flex;align-items:center;gap:1rem;padding:2rem 0 3rem}.mark{flex:none;line-height:0}.site-header>div{flex:1;min-width:0}.theme-toggle{visibility:hidden;opacity:0;transition:opacity .6s ease;flex:none;align-self:flex-start;margin-top:.4rem;width:2rem;height:2rem;padding:0;border:1px solid var(--rule);border-radius:50%;background:none;color:var(--dim);font-size:1rem;line-height:1;cursor:pointer}.theme-toggle.ready{visibility:visible;opacity:1}:root[data-page-theme] .theme-toggle{display:none}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.planet{width:4.25rem;height:4.25rem;display:block;border-radius:50%;background:radial-gradient(circle at 38% 35%,var(--rule),var(--sunken) 70%);animation:breathe 1.6s ease-in-out infinite}.planet.grown{background:none;animation:none}@keyframes fade-in{0%{opacity:0}}@keyframes breathe{50%{opacity:.45}}.brand{font-size:1.9rem;font-weight:800;color:var(--ink);text-decoration:none;letter-spacing:-.01em}nav{display:flex;flex-wrap:wrap;gap:.35rem .8rem;font-size:.78rem;letter-spacing:.04em}.navlink{color:var(--dim);text-decoration:none}.navlink:hover{color:var(--ink)}.navlink[aria-current]{color:var(--accent)}.ran{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;color:var(--dim);margin-bottom:.6em}.ran .ps1{color:var(--accent)}.listing{list-style:none;padding:0;border-top:1px solid var(--rule)}.listing li{margin:0;padding:.7em 0;border-bottom:1px solid var(--rule)}.listing a{text-decoration:none;font-weight:600}.listing .summary{display:block;color:var(--dim);font-size:.85em}.terminal{animation:fade-in .6s ease;margin-top:3rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem}.terminal .screen>*{margin:0 0 .6em}.terminal .echo{color:var(--dim)}.terminal .echo .ps1,.terminal .prompt .ps1{color:var(--accent)}.terminal pre{background:none;border:0;padding:0;font-size:inherit;white-space:pre-wrap}.terminal .listing-out a{text-decoration:none}.terminal .listing-out a:hover{text-decoration:underline}.terminal .error{color:#b4443c}.terminal .cat{padding-left:1em;border-left:.12rem solid var(--rule);font-family:Avenir Next,Avenir,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem}.terminal .cat h1{font-size:1.6rem;margin-top:.6rem}.terminal .prompt{display:flex;gap:.5em;align-items:baseline;margin:0}.terminal .prompt input{flex:1;min-width:0;border:0;outline:0;padding:0;background:none;color:var(--ink);font:inherit}.terminal .hint{color:var(--dim)}.app{--wide: min(60rem, 100vw - 2rem);width:var(--wide);margin:0 0 2em calc((100% - var(--wide)) / 2);font-size:.9rem}.app .charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:1em 1.5em}.app .dials{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));gap:.6em 1.2em;margin-bottom:1.2em}.app .dials label{display:block;font-size:.8rem;color:var(--dim)}.app .dials label output{color:var(--ink);font-variant-numeric:tabular-nums}.app .dials input[type=range]{display:block;width:100%;margin:.2em 0 0;accent-color:var(--accent)}.app .figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.6em;margin-bottom:1.2em}.app .figures div{border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:.25em;padding:.6em .8em;font-size:.78rem;color:var(--dim)}.app .figures strong{display:block;font-size:1.3rem;color:var(--ink);font-variant-numeric:tabular-nums}.app .figures .clean{border-left-color:var(--accent)}.app .figures .debt{border-left-color:var(--warn)}.app .chart{margin-bottom:1.2em;border:1px solid var(--rule);border-radius:.25em;padding:.8em}.app .charts>.week,.app .maps>div{border:1px solid var(--rule);border-radius:.25em;padding:.8em}.app .chart h4{margin:0 0 .3em;font-size:.85rem;color:var(--dim)}.app svg{display:block;width:100%;height:auto}.app svg text{font-size:10px;fill:var(--dim)}.app svg .grid{stroke:var(--rule)}.app svg .clean{stroke:var(--accent);fill:var(--accent)}.app svg .debt{stroke:var(--warn);fill:var(--warn)}.app svg .line{fill:none;stroke-width:2}.app .row{display:flex;flex-wrap:wrap;gap:.5em 1em;align-items:center;margin-bottom:.8em;font-size:.85rem}.app select,.app input[type=text],.app input[type=number]{font:inherit;font-size:.85rem;padding:.15em .4em;border:1px solid var(--rule);border-radius:.2em;background:var(--paper);color:var(--ink)}.app input[type=number]{width:4.5em}.app button{font:inherit;font-size:.8rem;padding:.25em .7em;border:1px solid var(--accent);border-radius:.2em;background:none;color:var(--accent);cursor:pointer}.app button:hover{background:var(--accent);color:var(--paper)}.app .week{display:grid;grid-template-columns:3.2em repeat(5,1fr);gap:2px;margin-bottom:1.2em;-webkit-user-select:none;user-select:none}.app .week .head,.app .week .hour{font-size:.72rem;color:var(--dim);text-align:center;align-self:center}.app .week .hour{text-align:right;padding-right:.4em}.app .week .slot{height:1.6em;border:1px solid var(--rule);border-radius:.15em;font-size:.72rem;line-height:1.6em;text-align:center;overflow:hidden;white-space:nowrap;cursor:pointer}.app .week .slot.meeting{background:var(--sunken);border-color:var(--accent-soft);color:var(--ink)}.app .week .cell{height:1.6em;font-size:.72rem;line-height:1.6em;text-align:center;border-radius:.15em;background:color-mix(in srgb,var(--accent) calc(var(--heat) * 100%),var(--sunken));color:var(--ink)}.app .maps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:1em}.app .maps h4{margin:0 0 .3em;font-size:.8rem;color:var(--dim)}.app canvas.world{display:block;width:min(100%,22rem);margin:0 auto 1em;aspect-ratio:1;cursor:grab;touch-action:none}.app canvas.world:active{cursor:grabbing}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;align-items:baseline;margin-top:4rem;padding-top:1.2rem;border-top:1px solid var(--rule);font-size:.8rem;color:var(--dim)}.site-footer .social{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.site-footer a{color:var(--dim);text-decoration:none}.site-footer a:hover{color:var(--accent)}@media(max-width:640px){.app{--wide: 100%;margin-left:0}.site-header{padding:1.4rem 0 2.2rem}h1{font-size:2rem}blockquote{margin:1.8em .6em;font-size:1.3rem}p>img.large{float:none;display:block;width:min(14rem,100%);margin:.2em auto 1.2em}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
