:root{--desk:oklch(92.5% .005 80);--paper:oklch(98.6% .0015 240);--card:oklch(99.4% .001 240);--ink:oklch(19% .006 60);--ink-2:oklch(40% .008 60);--ink-3:oklch(48.5% .008 60);--rule:oklch(91% .004 80);--line:oklch(20% .006 60);--accent:oklch(57% .215 27);--accent-deep:oklch(48.5% .19 27);--second:oklch(22% .006 60);--soft:oklch(84% .006 70);--soft-2:oklch(93.5% .004 75);--light:oklch(88% .004 80);--gold:oklch(80% .145 84);--hi:oklch(92.5% .005 75);--dock:oklch(19% .006 60);--dock-2:oklch(30% .006 60);--dock-ink:oklch(96% .004 80);--dock-edge:oklch(19% .006 60);--rail:oklch(15% .006 60);--screen:oklch(92% .004 80);--screenLine:oklch(70% .005 80);--cap:var(--ink-2);--scrim:oklch(19% .006 60/.32);--shadow:oklch(30% .016 60/.4)}:root[data-theme=dark]{--desk:oklch(19.99% .0025 80);--paper:oklch(25.99% .000825 240);--card:oklch(27.99% .00055 240);--ink:oklch(95% .0051 60);--ink-2:oklch(82% .0068 60);--ink-3:oklch(73.5% .0068 60);--rule:oklch(33.99% .0022 80);--line:oklch(95% .0051 60);--accent:oklch(63% .172 27);--accent-deep:oklch(76.5% .1292 27);--second:oklch(39.99% .0042 60);--soft:oklch(38% .00372 70);--soft-2:oklch(28.5% .00248 75);--light:oklch(34% .00248 80);--gold:oklch(46% .075 84);--hi:oklch(29.5% .0031 75);--dock:oklch(32% .006 60);--dock-2:oklch(43% .006 60);--dock-ink:oklch(96% .004 80);--dock-edge:oklch(65% .006 60);--rail:oklch(15% .006 60);--screen:oklch(32% .004 80);--screenLine:oklch(51.4% .0035 80);--cap:var(--ink-2);--scrim:oklch(8% .008 80/.62);--shadow:oklch(5% .01 80/.62)}:root{color-scheme:light;--sheet:min(52rem, 100vw);--pad:4.5rem;--m:calc((100vw - var(--sheet)) / 2);--gap:28px;--shelf:62vh;--lamp-w:min(240px, calc(var(--m) * .6));--lamp-x:calc(50% - var(--sheet) / 2 - var(--gap) - var(--lamp-w) * .625);--lamp-y:calc(var(--shelf) - var(--lamp-w) * .5);--head:"Literata", Georgia, serif;--body:"Literata", Georgia, serif;--label:"Literata", Georgia, serif;--room:"Familjen Grotesk", "Helvetica Neue", Arial, sans-serif;--em:var(--body);--head-weight:600;--display-weight:600;--hand:"Reenie Beanie", "Segoe Print", "Bradley Hand", Georgia, serif;--typed:"Courier Prime", "Courier New", Courier, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-prose:1.0625rem;--text-lede:1.1875rem;--text-lg:1.25rem;--text-xl:clamp(1.625rem, 1.3rem + 1vw, 2.125rem);--text-2xl:clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem);--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}[hidden],html:not(.js) .js-only{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}html{background:var(--desk);font-kerning:normal;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:clip}body{background-color:var(--desk);color:var(--ink);font:400 var(--text-base)/1.65 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:clip}a{color:inherit}::selection{background:var(--hi);color:var(--ink)}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{z-index:200;background:var(--card);font:600 var(--text-sm)/1 var(--label);padding:.5rem .75rem;top:1rem;left:1rem}.svg-label{font-family:var(--room)}.s{stroke-linecap:round;stroke-linejoin:round}.s:not([stroke]){stroke:var(--line)}.s:not([stroke-width]){stroke-width:1.5px}.h{stroke:var(--line);stroke-width:1px;stroke-linecap:round;opacity:.38;fill:none}html:not(.sketch) .rough{display:none}.rough{pointer-events:none}html.quiet [data-svg] .wash{fill-opacity:var(--q,0)}html:not(.quiet) [data-svg] .under{display:none}html.quiet [data-svg] .wash.glass{fill-opacity:calc(var(--q,0) * .32)}html.quiet [data-svg] .detail{opacity:calc(.28 + .72 * var(--q,0))}html.quiet [data-svg] .rough-line{opacity:calc(.6 + .4 * var(--q,0))}html.quiet [data-svg] .shadow{opacity:var(--q,0)}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=dark] .o-lava [data-svg]{--q:1}.page{z-index:2;pointer-events:none;padding:4rem 0 6rem;position:relative}.sheet{pointer-events:auto;width:min(var(--sheet), 100%);background:var(--paper);--sheet-pt:2.25rem;--rail-in:4px;padding:var(--sheet-pt) var(--pad) 4rem;box-shadow:0 1px 0 color-mix(in oklch, var(--ink) 5%, transparent), 0 24px 60px -32px var(--shadow), 0 2px 8px -3px color-mix(in oklch, var(--ink) 14%, transparent);margin:.6rem auto 0;position:relative}.sheet-head{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding-bottom:1rem;display:flex}.wordmark{font:700 1.75rem/1 var(--room);letter-spacing:-.02em;text-decoration:none}.wordmark b{font-weight:inherit;color:var(--accent)}.nav{font:500 var(--text-sm)/1 var(--label);flex-wrap:wrap;align-items:center;gap:0 1.25rem;display:flex}.nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:4px;text-decoration-thickness:2px}.nav a,.nav button{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;padding:.625rem 0;text-decoration:none}.nav a:hover,.nav button:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--soft);text-underline-offset:4px;text-decoration-thickness:2px}.nav kbd{font:500 var(--text-xs)/1 var(--label);border:1px solid var(--rule);color:var(--ink-3);border-bottom-width:2px;margin-left:.4rem;padding:.125rem .3rem}.kicker{font:600 var(--text-sm)/1.4 var(--label);color:var(--ink-2);text-wrap:balance;align-items:center;gap:.5rem;margin:0;display:flex}.hero{padding:3.5rem 0 .5rem}.hero h1{font:var(--display-weight) var(--text-2xl)/1.02 var(--head);letter-spacing:-.02em;text-wrap:balance;margin:0 0 1.5rem}.hero h1,.a-title,.contact h2{overflow-wrap:anywhere}.lede{font-size:var(--text-lede);color:var(--ink-2);text-wrap:pretty;max-width:33em;margin:0;line-height:1.55}.chips{flex-wrap:wrap;gap:.625rem .5rem;margin-top:1.875rem;display:flex}.chip{isolation:isolate;min-height:2.25rem;font:600 var(--text-xs)/1 var(--room);letter-spacing:.01em;color:var(--ink);cursor:pointer;transition:translate .3s var(--ease-out), rotate .3s var(--ease-out);background:0 0;border:0;align-items:center;gap:.45rem;padding:.5rem .8rem .5rem 1.6rem;text-decoration:none;display:inline-flex;position:relative}.chip:after{content:"";position:absolute;inset:-4px}html:not(.sketch) .chip{border:1px solid var(--ink)}.chip .rb{z-index:-1;pointer-events:none;position:absolute;overflow:visible}.chip .rb-on{display:none}.chip[aria-current=true]{color:var(--card)}html:not(.sketch) .chip[aria-current=true]{background:var(--ink);border-color:var(--ink)}html:not(.js) .desk,html:not(.js) .dock,html.js .chips-note{display:none}.chip[aria-current=true] .rb-on{display:inline}.chip[aria-current=true] .rb-off{display:none}.chip:hover{translate:0 -2px;rotate:-2deg}.chips-more{cursor:pointer;min-height:2.25rem;font:600 var(--text-xs)/1 var(--room);letter-spacing:.01em;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px;background:0 0;border:0;align-items:center;padding:.5rem .25rem;text-decoration-thickness:1.5px;display:none}.chips-more:hover{color:var(--ink)}@media (width<=760px){html.js .chips-more{display:inline-flex}html.js .chips:not(.is-open) .chip[data-more]:not([aria-current=true]){display:none}}.sec{padding-top:4.5rem;scroll-margin-top:1.5rem}.sec-head{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.sec-head h2{font:var(--display-weight) var(--text-xl)/1 var(--head);letter-spacing:-.015em;margin:0;position:relative}.sheet:before{content:"";background:radial-gradient(circle 2.5px at 44px 50%, color-mix(in oklch, var(--dock-ink) 45%, var(--rail)) 95%, transparent), radial-gradient(circle 2.5px at calc(100% - 44px) 50%, color-mix(in oklch, var(--dock-ink) 45%, var(--rail)) 95%, transparent), var(--rail);border-radius:3px;height:15px;position:absolute;top:-11px;left:-10px;right:-10px}@media (width<=760px){.sheet:before{background:var(--rail);border-radius:0;height:6px;top:0;left:0;right:0}}@media (hover:none),(pointer:coarse),(width<=760px){.nav kbd{display:none}}body:before{content:"";z-index:0;pointer-events:none;opacity:var(--glow,1);position:fixed;inset:0}:root[data-theme=dark] body:before{background:radial-gradient(ellipse 26% 24% at var(--lamp-x) var(--lamp-y), color-mix(in oklch, var(--accent) 22%, transparent), transparent 78%), radial-gradient(ellipse 70% 60% at var(--lamp-x) var(--lamp-y), color-mix(in oklch, var(--accent) 10%, transparent), transparent 74%)}.count{font:500 var(--text-xs)/1 var(--label);color:var(--ink-3)}.posts{margin:0;padding:0;list-style:none}.post{border-top:1px solid var(--rule)}.post:last-child{border-bottom:1px solid var(--rule)}.post a{grid-template-columns:1fr auto;column-gap:1rem;padding:1.25rem 0;text-decoration:none;display:grid}.post a:after{content:"›";content:"›" / "";font:400 1.5rem/1 var(--room);color:var(--ink-3);grid-area:1/2/span 3;align-self:center}.post h3,.post p,.post .meta{grid-column:1}.meta time{font-variant-numeric:tabular-nums}.post h3{font:var(--head-weight) var(--text-lg)/1.25 var(--head);letter-spacing:-.006em;text-wrap:balance;margin:0}.post h3 span{-webkit-box-decoration-break:clone;box-decoration-break:clone;margin:0 -.12em;padding:0 .12em}.post a:focus-visible h3 span,.post a:active h3 span{color:var(--paper);background:linear-gradient(var(--ink), var(--ink)) 0 85% / 100% .98em no-repeat}@media (hover:hover){.post a:hover h3 span{color:var(--paper);background:linear-gradient(var(--ink), var(--ink)) 0 85% / 100% .98em no-repeat}}.post a:hover:after,.post a:focus-visible:after{color:var(--ink)}.post p{color:var(--ink-2);font-size:var(--text-base);text-wrap:pretty;margin:.4rem 0 0;line-height:1.55}.meta{font:500 var(--text-xs)/1.4 var(--label);color:var(--ink-3);margin-top:.6rem}.empty button{font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px;background:0 0;border:0;margin-left:.25rem;padding:.5rem 0}.empty{font-size:var(--text-base);color:var(--ink-3);margin:0;padding:1.125rem 0;line-height:1.5}.cards{grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:2rem 1.5rem;margin:1.75rem 0 0;padding:0;list-style:none;display:grid}.card,.keys{background-color:var(--card);background-image:linear-gradient(90deg, transparent 32px, color-mix(in oklch, var(--ink) 22%, transparent) 32px, color-mix(in oklch, var(--ink) 22%, transparent) 33px, transparent 33px), repeating-linear-gradient(180deg, transparent 0 27px, color-mix(in oklch, var(--second) 14%, transparent) 27px 28px);background-position:0 0,0 17px;padding:1.25rem 1.25rem 1rem 2.9rem}.card{isolation:isolate;height:100%;rotate:var(--r,0deg);transition:rotate .45s var(--ease-out), translate .45s var(--ease-out);text-decoration:none;display:block;position:relative}html:not(.sketch) .card{box-shadow:0 12px 26px -16px var(--shadow)}.card .rb{z-index:-1;pointer-events:none;position:absolute;overflow:visible}.card:hover,.card:focus-visible{translate:0 -5px;rotate:0deg}.card h3{font:var(--head-weight) var(--text-lg)/1.75rem var(--head);letter-spacing:-.012em;text-wrap:balance;margin:0}.card p{font-size:var(--text-base);color:var(--ink-2);text-wrap:pretty;margin:0;line-height:1.75rem}.card .meta{margin-top:1.75rem;line-height:1.75rem}.foot{border-top:1px solid var(--rule);font:500 var(--text-xs)/1.5 var(--label);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:5rem;padding-top:1.125rem;display:flex}.foot a{text-decoration:none}.foot-note{flex-basis:100%}.foot a:hover,.foot button:hover{color:var(--ink);text-decoration:underline}.foot-nav{clip-path:inset(-.5rem -.5rem -.5rem -6px)}.foot-nav ul{flex-wrap:wrap;margin:0 0 0 -1.25rem;padding:0;list-style:none;display:flex}.foot-nav ul+ul{margin-top:.375rem}.foot-nav li{align-items:center;padding-left:1.25rem;display:flex;position:relative}.foot-nav li:before{content:"·";text-align:center;width:1.25rem;position:absolute;top:50%;left:0;translate:0 -50%}.foot button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.foot-nav a,.foot-nav button{margin-inline:-.3125rem;padding:.25rem .3125rem}@media (hover:none),(pointer:coarse){.foot-nav .keys-link{display:none}}.madeby{text-align:center;width:fit-content;max-width:100%;font:600 var(--text-sm)/1.4 var(--label);color:var(--ink-2);margin:5rem auto 0;text-decoration:none;display:block}.madeby img{opacity:.8;width:300px;max-width:100%;height:auto;transition:opacity .3s var(--ease-out);margin:0 auto .875rem;display:block}.madeby .madeby-night,:root[data-theme=dark] .madeby .madeby-day{display:none}:root[data-theme=dark] .madeby .madeby-night{display:block}.madeby span{text-decoration:underline;text-decoration-color:var(--soft);text-underline-offset:4px;text-decoration-thickness:2px}.madeby:hover,.madeby:focus-visible{color:var(--ink)}.madeby:hover img,.madeby:focus-visible img{opacity:1}main:has(.madeby)+.foot{margin-top:3rem}:root{--stick-top:0px}.sheet-sticky{top:var(--stick-top);z-index:6;height:0;margin:calc(var(--rail-in) - var(--sheet-pt)) calc(-1 * var(--pad)) calc(var(--sheet-pt) - var(--rail-in));position:sticky}.sheet-sticky.is-stuck:before{content:"";height:var(--stick-top);background:var(--paper);position:absolute;bottom:100%;left:0;right:0}.sheet-sticky.is-stuck:has(.read-left.is-on):after{content:"";background:var(--paper);border-bottom:1px solid var(--rule);z-index:-1;height:1.6rem;position:absolute;top:0;left:0;right:0}.ipod-band{display:none}@media (width<=760px){html.js body:not([data-page=post]) .ipod-band-bar{display:none}html.js body:not([data-page=post]) .ipod-band{align-content:center}html.js{--band-h:2.25rem;scroll-padding-top:calc(var(--band-h) + .75rem)}html.js .ipod-band{z-index:7;height:var(--band-h);box-sizing:border-box;padding:.375rem var(--pad) .4375rem;margin:calc(var(--rail-in) - var(--sheet-pt)) calc(-1 * var(--pad)) calc(var(--sheet-pt) - var(--rail-in));background:var(--screen);border-bottom:1px solid var(--screenLine);color:var(--ink);font:600 .6875rem/1 var(--room);letter-spacing:.01em;font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;align-items:center;gap:.3125rem .625rem;display:grid;position:sticky;top:0}html.js .ipod-band-left{color:var(--ink-2)}html.js .ipod-band-bar{box-sizing:border-box;border:1px solid var(--ink);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}html.js .ipod-band-bar i{background:var(--accent-deep);transform-origin:0;height:100%;display:block;transform:scaleX(0)}html.js{--stick-top:var(--band-h)}html.js .read-line{display:none}html.js .read-left{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html.js .sheet-sticky.is-stuck:has(.read-left.is-on):after{display:none}}.read-line{background:var(--accent-deep);transform-origin:0;height:3px;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}html.reduced .read-line{transition:none}.read-left{right:var(--pad);font:500 var(--text-xs)/1 var(--label);color:var(--ink-3);font-variant-numeric:tabular-nums;visibility:hidden;opacity:0;background:0 0;border:0;margin:0;padding:.3125rem 0 .375rem;transition:opacity .2s,visibility 0s .2s;position:absolute;top:3px}.read-left.is-on{visibility:visible;opacity:1;transition-delay:0s}.filter-line{min-height:2.5rem;padding:0 var(--pad);background:var(--paper);border-bottom:1px solid var(--ink-3);font:500 var(--text-xs)/1.2 var(--label);color:var(--ink-2);visibility:hidden;opacity:0;transition:transform .3s var(--ease-out), opacity .2s, visibility 0s .3s;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.filter-line.is-on{visibility:visible;opacity:1;transition-delay:0s;transform:none}.filter-line b{color:var(--ink);font-weight:600}.filter-line button{font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px;background:0 0;border:0;padding:.5rem 0;font-weight:600;text-decoration-thickness:1.5px}.article{padding-top:2.75rem}@media (width<=760px){.article{padding-top:1rem}.article .kicker{margin-top:.25rem}.article>.back{display:none}.hero h1{font-size:2rem}}.back{font:500 var(--text-sm)/1 var(--label);color:var(--ink-2);padding:.625rem 0;text-decoration:none;display:inline-block}.back:hover{color:var(--ink);text-decoration:underline}.article .kicker{margin-top:1.75rem}.a-title{font:var(--display-weight) clamp(2rem, 1.4rem + 2.2vw, 3rem)/1.04 var(--head);letter-spacing:-.02em;text-wrap:balance;margin:.9rem 0 1.25rem}.dek{font-size:var(--text-lede);color:var(--ink-2);text-wrap:pretty;margin:0;line-height:1.5}.dek a{text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:4px;text-decoration-thickness:2px}.search-hint kbd{font:500 var(--text-xs)/1 var(--label);border:1px solid var(--rule);color:var(--ink-3);border-bottom-width:2px;padding:.125rem .3rem}@media (hover:none),(pointer:coarse),(width<=760px){.search-hint{display:none}}.a-tags{flex-wrap:wrap;gap:.625rem .5rem;margin-top:1.625rem;display:flex}.prose{border-top:1px solid var(--rule);font-size:var(--text-prose);margin-top:2.5rem;padding-top:2.25rem;line-height:1.68}.prose p,.lede,.dek{text-wrap:pretty}.prose>*{max-width:36rem}.prose>p{text-wrap:pretty;margin:0 0 1.15em}.prose h2{font:var(--head-weight) 1.625rem/1.15 var(--head);letter-spacing:-.02em;margin:1.9em 0 .55em}.prose blockquote{font-family:var(--em);font-style:italic;font-size:var(--text-lede);color:var(--ink);margin:2rem 0;padding:0 0 0 1.75rem;line-height:1.5;position:relative}.prose blockquote p{margin:0}.fnref{vertical-align:super;font-variant-numeric:lining-nums;font-size:.72em;line-height:0}.fnref a{padding:0 .1em}.note-back{color:var(--ink-3);margin-left:.2em;text-decoration:none}.note-back:hover,.note-back:focus-visible{color:var(--ink)}.refs li{scroll-margin-top:4rem}.refs li:target,.refs li.is-target{outline:2px solid var(--ink);outline-offset:.375rem}.fnref a{scroll-margin-top:30vh}.fnref a:target,.fnref a.is-target{color:var(--paper);background:var(--ink);text-decoration:none}.prose li{text-wrap:pretty;overflow-wrap:anywhere}.prose .credit{font:500 var(--text-sm)/1.4 var(--label);color:var(--ink-2);margin:-1.25rem 0 2rem;padding-left:1.75rem}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.4em}.prose li{margin:.35em 0}.prose li>ul,.prose li>ol{margin-bottom:0}.prose a{text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px;background:linear-gradient(var(--hi), var(--hi)) no-repeat 0 100% / 100% 0;transition:background-size .3s var(--ease-out);text-decoration-thickness:1.5px}.prose a:hover{background-size:100% 100%}.care{border-block:1px solid var(--rule);max-width:36rem;margin-top:2rem;padding:1rem 0}.care p{font-size:var(--text-base);color:var(--ink-2);text-wrap:pretty;margin:.35rem 0 0;line-height:1.55}.care a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:4px;white-space:nowrap;text-decoration-thickness:2px}.reply{border-top:1px solid var(--rule);max-width:36rem;margin-top:3rem;padding-top:1.25rem}.reply p{font-size:var(--text-base);color:var(--ink-2);text-wrap:pretty;margin:.35rem 0 0;line-height:1.55}.reply a{text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:4px;text-decoration-thickness:2px}.endmark{border-top:1px solid var(--rule);grid-template-columns:1fr;gap:1.25rem;margin-top:4rem;padding-top:1.25rem;display:grid}.endmark a{padding:.5rem 0;text-decoration:none}.typewriter{color:var(--ink);justify-items:center;padding:1.5rem 0 0;display:grid}.tw-paper{z-index:0;box-sizing:border-box;background:var(--card);text-align:left;width:62%;min-height:9.5rem;box-shadow:0 0 0 1px color-mix(in oklch, var(--ink) 10%, transparent), 0 10px 24px -18px var(--shadow);transition:translate .35s var(--ease-out);padding:1.5rem 1.75rem 3rem;display:block;position:relative}.tw-machine{z-index:1;width:100%;margin-top:-6.33%;display:block;position:relative}.tw-machine>svg{width:100%;height:auto;display:block;overflow:visible}.tw-key{transform-box:fill-box;transform-origin:50%}.tw-lever{transform-box:view-box;transform-origin:104px 58px}.tw-label,.tw-line{font-family:var(--typed);color:var(--ink);font-weight:400;display:block}.tw-label{font-size:var(--text-sm);color:var(--ink-2)}.endmark .tw-line{font:400 1.375rem/1.35 var(--typed);letter-spacing:0;margin-top:.6rem}.tw-w{white-space:nowrap}.tw-c{display:inline-block}.typewriter:hover .tw-paper,.typewriter:focus-visible .tw-paper{translate:0 -4px}.typewriter:focus-visible{outline:none}.typewriter:focus-visible .tw-paper{outline:2px solid var(--accent-deep);outline-offset:3px}@media (prefers-reduced-motion:reduce){.tw-paper{transition:none}}.label{font:500 var(--text-xs)/1.4 var(--label);color:var(--ink-3)}.prose h2{scroll-margin-top:5rem}.about .prose{margin-top:2rem}.endmark strong{font:var(--head-weight) var(--text-lg)/1.15 var(--head);letter-spacing:-.015em;margin-top:.35rem;display:block}.endmark .related:hover strong{text-decoration:underline;text-decoration-color:var(--soft);text-decoration-thickness:2px}.desk{z-index:1;pointer-events:none;position:fixed;inset:0}.obj{width:var(--w);pointer-events:auto;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;display:block;position:absolute}.obj:focus-visible{outline:2px solid var(--accent-deep);outline-offset:8px}.obj:not(.is-drawn){visibility:hidden}.obj .lift{display:block}.obj svg{width:100%;height:auto;display:block;overflow:visible}.desk{--cap-drop:46px}.desk .obj{top:calc(var(--shelf) - var(--w) * var(--feet))}.obj .cap{width:max-content;top:calc(var(--w) * var(--feet) + var(--cap-drop));text-align:center;font:600 var(--text-xs)/1.2 var(--room);color:var(--cap);position:absolute;translate:-50%}.obj:hover .cap,.obj:focus-visible .cap{color:var(--ink)}.desk{--L:calc(50% - var(--sheet) / 2);--R:calc(50% + var(--sheet) / 2)}.shelf-run{height:44px;left:0;right:0;top:calc(var(--shelf) - 10px);position:absolute}.shelf-run svg{width:100%;height:100%;display:block;overflow:visible}.o-ipod{--w:min(274px, max(204px, calc(var(--m) * .68)));--feet:1.1538;left:calc(var(--R) + var(--gap) + var(--m) * .08);pointer-events:none}.o-ipod .cap{pointer-events:auto}.o-ipod .ipod-hit{pointer-events:all}.o-ipod .cap{left:54%}.o-ipod .ipod-wheel,.o-ipod .ipod-centre{aspect-ratio:1;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;margin:0;padding:0;position:absolute;top:65.9%;left:53.8%;translate:-50% -50%}.o-ipod .ipod-wheel{touch-action:none;cursor:grab;width:36.9%}.o-ipod.is-scrubbing .ipod-wheel{cursor:grabbing}.o-ipod .ipod-centre{width:13.1%}.o-ipod .ipod-wheel:focus-visible,.o-ipod .ipod-centre:focus-visible{outline:2px solid var(--accent-deep);outline-offset:4px}.o-lava{--w:var(--lamp-w);--feet:1.25;left:calc(var(--L) - var(--gap) - var(--w))}.o-lava .cap{left:38%}.lava-blob{transform-box:fill-box;transform-origin:50%}.chips-note{font:500 var(--text-xs)/1.4 var(--label);color:var(--ink-3);margin:.75rem 0 0}.ipod-thumb{transform-box:view-box;transform-origin:72px 168px}@property --tilt{syntax:"<angle>";inherits:true;initial-value:0deg}.desk .obj{transition:--tilt .45s var(--ease-out)}.o-lava{--lean-by:2.4deg}.o-ipod{--lean-by:1.8deg}.desk .obj:hover,.o-lava:focus-visible,.o-ipod:has(:focus-visible){--tilt:calc(var(--lean,1) * var(--lean-by))}.ipod-tilt{transform-box:view-box;transform-origin:140px 300px;transform:rotate(var(--tilt))}.lava-lamp{transform-box:view-box;transform-origin:90px 300px;transform:rotate(var(--tilt))}.o-ipod .ipod-wheel,.o-ipod .ipod-centre{rotate:var(--tilt);transform-origin:50% calc(50% + var(--w) * 68 / 260)}.ipod-thumb-dot{transform-box:fill-box;transform-origin:50%}.ipod-prog{transform-box:fill-box;transform-origin:0}.scrim{z-index:80;background:var(--scrim);opacity:0;visibility:hidden;position:fixed;inset:0}.finder{z-index:85;background:var(--card);isolation:isolate;transform-origin:0 0;visibility:hidden;width:min(36rem,100vw - 1.75rem);position:fixed;top:13vh;left:50%;translate:-50%}html:not(.sketch) .finder{border:1.5px solid var(--ink);box-shadow:7px 7px 0 var(--second)}.finder .rb{z-index:-1;pointer-events:none;position:absolute;overflow:visible}.finder .bar :focus-visible{outline-color:var(--paper)}.finder .bar{background:var(--ink);min-height:2.75rem;color:var(--card);font:600 var(--text-sm)/1 var(--label);align-items:center;gap:1rem;padding:0 1rem;display:flex}.finder .bar-count{color:var(--soft-2);margin-left:auto;font-weight:500}.finder .close{font:inherit;color:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:.75rem 0;text-decoration:underline}.finder .field:focus-within{outline:2px solid var(--accent-deep);outline-offset:2px}.finder .field{border-bottom:1px solid var(--rule);align-items:center;gap:.75rem;padding:1rem 1.125rem;display:flex}.finder .field label{font:600 var(--text-xs)/1 var(--label);color:var(--ink-3)}.finder input{min-width:0;color:var(--ink);font:500 1.5rem/1.2 var(--head);background:0 0;border:0;outline:0;flex:1}.finder input::placeholder{color:var(--ink-3)}.finder input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.results-box{overscroll-behavior:contain;max-height:min(52vh,27rem);overflow:auto}.results{margin:0;padding:.375rem 0 .5rem;list-style:none}.results a{grid-template-columns:4rem 1fr;gap:.875rem;padding:.625rem 1.125rem;text-decoration:none;display:grid}.results a[aria-selected=true]{background:var(--hi);outline:2px solid var(--ink);outline-offset:-2px}.finder .hint{border-top:1px solid var(--rule);font:500 var(--text-xs)/1.4 var(--label);color:var(--ink-3);margin:0 0 1.75rem;padding:.625rem 1.125rem 0}@media (hover:none),(pointer:coarse){.finder .hint{display:none}.results-box{margin-bottom:1.75rem}}@media (width<=760px){.finder{top:max(.75rem, env(safe-area-inset-top))}}.results .kind{font:600 var(--text-xs)/1.9 var(--label);color:var(--ink-2)}.results strong{font:var(--head-weight) var(--text-base)/1.3 var(--head);display:block}.results small{font-size:var(--text-sm);color:var(--ink-2);line-height:1.4;display:block}.results mark{background:var(--soft);color:inherit}.results-box .none{color:var(--ink-2);font-size:var(--text-sm);margin:0;padding:1.25rem 1.125rem;line-height:1.5}.finder .hole{background:var(--desk);width:12px;height:12px;box-shadow:inset 0 1px 2px color-mix(in oklch, var(--ink) 25%, transparent);border-radius:50%;margin-left:-6px;position:absolute;bottom:8px;left:50%}.keys{z-index:85;isolation:isolate;visibility:hidden;width:min(31rem,100vw - 1.75rem);padding-bottom:1.4375rem;position:fixed;top:14vh;left:50%;translate:-50%}html:not(.sketch) .keys{border:1.5px solid var(--ink);box-shadow:7px 7px 0 var(--second)}.keys .keys-pref{border-top:1px solid var(--rule);font:500 var(--text-sm)/1.4 var(--label);color:var(--ink-2);cursor:pointer;align-items:center;gap:.6rem;margin:1rem 0 0;padding-top:.9rem;display:flex}.keys .keys-pref input{width:1.25rem;height:1.25rem;accent-color:var(--ink);margin:0}.keys .rb{z-index:-1;pointer-events:none;position:absolute;overflow:visible}.keys h2{font:var(--head-weight) var(--text-lg)/1.75rem var(--head);letter-spacing:-.012em;margin:0}.keys .close{float:right;cursor:pointer;min-height:1.75rem;font:600 var(--text-sm)/1.75rem var(--label);color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--soft);text-underline-offset:4px;background:0 0;border:0;margin:0 0 0 1rem;padding:0;text-decoration-thickness:2px}.keys .close:hover{color:var(--ink)}.keys dl{margin:1.75rem 0 0}.keys dl>div{grid-template-columns:9.5rem 1fr;column-gap:1rem;display:grid}.keys dt,.keys dd{margin:0;line-height:1.75rem}.keys dt{font:500 var(--text-xs)/1.75rem var(--label);color:var(--ink-2)}.keys dd{font-size:var(--text-base);color:var(--ink)}.keys kbd{text-align:center;min-width:1.5rem;font:600 var(--text-xs)/1 var(--label);color:var(--ink);background:var(--paper);border:1px solid var(--ink-3);border-bottom-width:2px;padding:.1875rem .3125rem;display:inline-block}@media (width<=760px){.keys dl>div{grid-template-columns:1fr}.keys dl>div+div{margin-top:1.75rem}}.contact{z-index:90;visibility:hidden;position:fixed;inset:0}.letter{overscroll-behavior:contain;transform-origin:0 0;background-color:var(--card);width:100vw;height:100dvh;position:absolute;top:0;left:0;overflow:auto}@media (width>=761px){.letter{background-image:linear-gradient(90deg, transparent max(0px, calc(50% - 21.5rem)), color-mix(in oklch, var(--ink) 22%, transparent) max(0px, calc(50% - 21.5rem)), color-mix(in oklch, var(--ink) 22%, transparent) max(1px, calc(50% - 21.5rem + 1px)), transparent max(1px, calc(50% - 21.5rem + 1px)))}}.letter-lede,.ways{background:repeating-linear-gradient(180deg, transparent 0 calc(2rem - 1px), color-mix(in oklch, var(--second) 14%, transparent) calc(2rem - 1px) 2rem)}.letter-inner{max-width:40rem;margin:0 auto;padding:9vh 1.5rem 12vh;position:relative}.fold{cursor:pointer;font:600 var(--text-sm)/1 var(--label);color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--soft);text-underline-offset:4px;background:0 0;border:0;margin-bottom:3rem;padding:.75rem 0;text-decoration-thickness:2px;display:inline-block}.fold:hover{color:var(--ink)}.fold-end{margin:2rem 0 0}.salutation{font:400 2.5rem/1 var(--hand);color:var(--ink);margin:0}.contact h2{font:var(--display-weight) clamp(2.5rem, 1.8rem + 3vw, 3.75rem)/1 var(--head);letter-spacing:-.02em;margin:.5rem 0 1.25rem}.contact h2:focus{outline:none}.letter-lede{max-width:32em;font-size:var(--text-lede);color:var(--ink-2);margin:0 0 2rem;line-height:2rem}.ways,.facts{gap:0;margin:0;display:grid}.ways>div,.facts>div{grid-template-columns:8rem 1fr;gap:0 1rem;display:grid}.ways dt,.facts dt{font:600 var(--text-sm)/2rem var(--label);color:var(--ink-3)}.ways dd,.facts dd{font-size:var(--text-base);margin:0;line-height:2rem}.facts{border-top:1px solid var(--rule);margin-top:2rem}.facts>div{border-bottom:1px solid var(--rule);padding:.25rem 0}.facts dd{font-size:var(--text-base);color:var(--ink-2);text-wrap:pretty;line-height:2rem}.ways a{text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:4px;text-decoration-thickness:2px}.copy{background:var(--paper);border:1px solid var(--ink);cursor:pointer;min-height:1.75rem;font:600 var(--text-xs)/1 var(--label);color:var(--ink);margin-left:.5rem;padding:.3rem .7rem}.copy:hover{background:var(--hi)}.copy{position:relative}.stamp{pointer-events:none;border:2px solid var(--ink);color:var(--ink);background:color-mix(in oklch, var(--paper) 70%, transparent);font:700 var(--text-xs)/1.2 var(--label);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;opacity:0;border-radius:3px;padding:2px 7px;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:-7deg}.signoff{font:400 3rem/1 var(--hand);color:var(--ink);margin:3rem 0 0}.letter-stamp{width:64px;position:absolute;top:7vh;right:max(1.5rem,50% - 22rem);rotate:8deg}html:not(.js) .contact{z-index:2;visibility:visible;width:min(var(--sheet), 100%);margin:-3rem auto 4rem;scroll-margin-top:1.5rem;position:relative;inset:auto}html:not(.js) .letter{border:1px solid var(--ink);width:auto;height:auto;position:relative;overflow:visible}html:not(.js) .letter-inner{padding:3rem var(--pad) 3.5rem}html:not(.js) .letter-stamp{top:2.5rem;right:var(--pad)}.dock{display:none}.dock :focus-visible{outline-color:var(--gold)}@media (width<1280px),(hover:none),(pointer:coarse){.desk{display:none}.dock{left:50%;bottom:calc(.875rem + env(safe-area-inset-bottom,0px));z-index:60;background:var(--dock);border:1px solid var(--dock-edge);transition:transform .32s var(--ease-out);border-radius:3px;gap:2px;padding:5px;display:flex;position:fixed;translate:-50%}.dock.is-away,.dock.is-tucked{transform:translateY(calc(100% + 2rem))}.dock button{min-width:min(4.25rem,30vw);height:3.375rem;color:var(--dock-ink);cursor:pointer;font:600 var(--text-xs)/1 var(--room);letter-spacing:.01em;background:0 0;border:0;border-radius:3px;align-content:center;justify-items:center;gap:.1875rem;padding:0 .375rem;display:grid}.dock button:active{background:var(--dock-2)}.dock svg{width:22px;height:22px;display:block}.page{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}}@media (hover:none),(pointer:coarse){.nav a,.nav button,.back,.foot a,.foot button,.wordmark{align-items:center;min-height:44px;display:inline-flex}.chip,.chips-more,.filter-line button,.filter-line,.copy{min-height:2.75rem}.ways .copy{vertical-align:top;margin:10px 0}}@media (width<=760px){:root{--pad:min(1.375rem, 6vw)}.page{padding-top:0}.sheet{box-shadow:none;--sheet-pt:1.25rem;--rail-in:6px;margin-top:0}.nav{gap:0 .875rem}.madeby img{width:240px}.facts>div{grid-template-columns:1fr;gap:.25rem}.hero{padding-top:2.5rem}:root{--text-prose:1rem;--text-lede:1.0625rem}.prose blockquote,.prose .credit{padding-left:1.25rem}.tw-paper{width:74%;min-height:8rem;padding:1.1rem 1.1rem 2.4rem}.endmark .tw-line{font-size:1.0625rem}.ways>div{grid-template-columns:1fr;gap:.25rem}.letter-stamp{width:48px;top:2rem}}@media (prefers-reduced-motion:reduce){.card,.chip,.post h3 span,.prose a,.nav a,.nav button,.dock,.filter-line,.read-left,.madeby img,.desk .obj{transition:none}}html.reduced .card,html.reduced .chip,html.reduced .post h3 span,html.reduced .prose a,html.reduced .dock,html.reduced .filter-line,html.reduced .read-left,html.reduced .madeby img,html.reduced .desk .obj{transition:none}.foot-nav .smooth-link{display:none}@media (width>=1280px) and (hover:hover) and (pointer:fine){.foot-nav .smooth-link{display:flex}}html.reduced .foot-nav .smooth-link{display:none}@media (forced-colors:active){.rough-fill{display:none}.rough-line path{stroke:canvastext}.shadow{display:none}.chip[aria-current=true]{forced-color-adjust:none;color:highlighttext;background:highlight;border-color:highlight}.post a:focus-visible h3 span,.post a:active h3 span{forced-color-adjust:none;color:highlighttext;background:highlight}.chip[aria-current=true] .rb-on path{fill:highlight;stroke:highlight}.chip .rb-eye{fill:canvas;stroke:canvastext}.chip[aria-current=true] .rb-eye{fill:highlight;stroke:highlighttext}html:not(.sketch) .card,html:not(.sketch) .keys,html:not(.sketch) .finder{border:1px solid canvastext}}
