@property --paper-fade-top{syntax: "<length-percentage>"; inherits: false; initial-value: 0px;}@property --paper-fade-bottom{syntax: "<length-percentage>"; inherits: false; initial-value: 0px;}@keyframes paper-fade-top{0%{--paper-fade-top: 0px}to{--paper-fade-top: var(--paper-fade-size)}}@keyframes paper-fade-bottom{0%{--paper-fade-bottom: var(--paper-fade-size)}to{--paper-fade-bottom: 0px}}.paper-page{--paper-canvas: #fff;--paper-ink: #000;--paper-body: #52524f;--paper-muted: #686864;--paper-rule: #e8e8e4;--paper-link: #2867b2;--paper-sage: #edf0e8;--paper-sand: #f0ece4;--paper-blue: #e9eff6;--paper-lilac: #eeecef;min-height:100vh;width:100%;margin:0;overflow-wrap:anywhere;color:var(--paper-ink);background:var(--paper-canvas);font-family:Geist Variable,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased}html[data-color-scheme=dark] .paper-page{--paper-canvas: #181a1b;--paper-ink: #f1f1ed;--paper-body: #c3c3bd;--paper-muted: #a0a09a;--paper-rule: #373936;--paper-link: #8cbcff;--paper-sage: #30392e;--paper-sand: #3a352d;--paper-blue: #2c3541;--paper-lilac: #37313d}html[data-color-scheme=dark] .paper-page .ocean-banner canvas{filter:invert(1) blur(20px)}html[data-color-scheme=dark] .paper-page .ocean-banner canvas[data-render-state=ready]{filter:invert(1)}.paper-page h1{-webkit-user-select:none;user-select:none}.paper-page h1:focus{outline:none}.paper-page a{color:inherit}.paper-page a:focus-visible,.paper-page button:focus-visible,.paper-page [tabindex="0"]:focus-visible{outline:2px solid var(--paper-link);outline-offset:4px}.paper-home{padding:0 0 64px}.paper-ocean-header{width:100%;min-height:clamp(160px,16vw,220px)}.paper-home-column{margin:0 auto;padding-top:32px}.paper-home-column{width:min(680px,calc(100% - 64px))}.paper-intro{padding-bottom:32px}.paper-intro-heading{display:flex;align-items:baseline;gap:24px;justify-content:space-between}.paper-intro h1,.paper-blog-header h1,.paper-article-header h1{margin:0;font-family:inherit;font-weight:400;letter-spacing:-.045em}.paper-intro h1{font-size:clamp(46px,5vw,64px);line-height:1.08;text-wrap:balance}.paper-lede{margin:22px 0 0;color:var(--paper-body);font-size:17px;line-height:28px}.paper-current-work{padding-bottom:48px;color:var(--paper-body)}.paper-current-work>p,.paper-contact-links{margin:0 0 16px;font-size:16px;line-height:28px;text-wrap:pretty}.paper-contact-links{display:block;margin-bottom:0}.paper-current-work a{color:var(--paper-ink);text-decoration:underline;text-decoration-color:var(--paper-rule);text-underline-offset:4px}.paper-current-work a:hover{text-decoration:underline;text-underline-offset:3px}.paper-disclosure{border:0}.paper-disclosure-header{display:flex;min-height:36px;align-items:center;justify-content:space-between;padding-bottom:12px}.paper-disclosure-label{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;line-height:24px;border:0;padding:0;color:inherit;background:transparent;cursor:pointer;font-family:inherit}.paper-disclosure-chevron{width:12px;height:12px;flex-shrink:0;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transform:rotate(-90deg);transition:transform .14s ease}.paper-disclosure-label[aria-expanded=true] .paper-disclosure-chevron{transform:rotate(0)}.paper-disclosure-meta{color:var(--paper-muted);font-size:13px;line-height:16px}.paper-disclosure-meta a{text-decoration:none}.paper-projects{border-top:1px solid var(--paper-rule);padding-top:26px}.paper-writing{padding-top:48px}.paper-section-header{display:flex;min-height:36px;align-items:center;justify-content:space-between;padding-bottom:12px}.paper-section-header h2{margin:0;font-size:16px;font-weight:600;line-height:24px}.paper-section-header>span,.paper-section-header>a{color:var(--paper-muted);font-size:13px;line-height:16px}.paper-section-header>a{text-decoration:none}.paper-scroll-fade{--paper-fade-size: min(12%, 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;mask-image:linear-gradient(to bottom,transparent 0,#000 var(--paper-fade-top),#000 calc(100% - var(--paper-fade-bottom)),transparent 100%);mask-repeat:no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--paper-fade-top),#000 calc(100% - var(--paper-fade-bottom)),transparent 100%);-webkit-mask-repeat:no-repeat}.paper-scroll-frame{position:relative}.paper-scroll-hint{position:absolute;inset-inline-end:12px;inset-block-end:10px;z-index:1;border:1px solid var(--paper-rule);border-radius:999px;padding:5px 9px;color:var(--paper-body);background:color-mix(in srgb,var(--paper-canvas) 92%,transparent);box-shadow:0 2px 8px #0000000f;font-size:11px;font-weight:500;line-height:16px;pointer-events:none}.paper-scroll-fade[data-overflowing=false]{mask-image:none;-webkit-mask-image:none}.paper-project-scroller{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.paper-notes-scroller{max-height:480px}@supports (animation-timeline: scroll()){.paper-scroll-fade{animation:paper-fade-top 1ms ease-in-out,paper-fade-bottom 1ms ease-in-out;animation-fill-mode:both;animation-range:0 96px,calc(100% - 96px) 100%;animation-timeline:scroll(self y),scroll(self y)}}@supports not (animation-timeline: scroll()){.paper-scroll-fade[data-overflowing=true][data-at-start=false]{--paper-fade-top: var(--paper-fade-size)}.paper-scroll-fade[data-overflowing=true][data-at-end=false]{--paper-fade-bottom: var(--paper-fade-size)}}.paper-scroll-content{min-width:0}.paper-project-row{display:flex;align-items:center;flex-shrink:0;gap:16px;padding:18px 0;border-bottom:1px solid var(--paper-rule);text-decoration:none;transition:opacity .14s ease}.paper-project-glyph{display:flex;width:42px;height:46px;flex-shrink:0;align-items:center;justify-content:center;border:0;border-radius:7px;box-shadow:none;font-family:inherit;font-size:29px;line-height:36px}.paper-project-glyph[data-tone=sage]{background:var(--paper-sage)}.paper-project-glyph[data-tone=sand]{background:var(--paper-sand)}.paper-project-glyph[data-tone=blue]{background:var(--paper-blue)}.paper-project-glyph[data-tone=lilac]{background:var(--paper-lilac)}.paper-project-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.paper-project-copy strong{font-size:15px;font-weight:500;line-height:21px}.paper-project-copy>span{color:var(--paper-muted);font-size:14px;line-height:21px}.paper-project-arrow{width:18px;flex-shrink:0;color:var(--paper-muted);font-size:16px;line-height:20px;transition:transform .12s ease}.paper-project-row:hover .paper-project-arrow{transform:translate(2px,-2px)}@media(hover:hover){.paper-project-scroller:has(.paper-project-row:is(:hover,:focus-visible)) .paper-project-row:not(:is(:hover,:focus-visible)){opacity:.6}}.paper-writing-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--paper-rule);padding:18px 0;text-decoration:none;transition:opacity .14s ease}@media(hover:hover){.paper-writing-list:has(.paper-writing-row:is(:hover,:focus-visible)) .paper-writing-row:not(:is(:hover,:focus-visible)){opacity:.6}}.paper-writing-row>span{min-width:0;flex:1;font-size:15px;line-height:23px}.paper-writing-row time{width:100px;flex-shrink:0;color:var(--paper-muted);font-size:13px;line-height:23px;text-align:right}.paper-colophon{display:flex;align-items:center;justify-content:space-between;padding-top:36px;color:var(--paper-muted);font-size:13px;line-height:22px}.paper-mark{color:var(--paper-ink);font-family:inherit;font-size:25px}.paper-blog-shell{width:min(640px,100%);margin:0 auto}.paper-blog-nav{display:flex;min-height:74px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--paper-rule);padding-bottom:20px;font-size:14px;line-height:22px}.paper-blog-tools{display:flex;align-items:center;gap:24px}.paper-blog-back{display:inline-flex;min-width:44px;min-height:44px;align-items:center}@media(max-width:400px){.paper-blog-tools{gap:12px}}.paper-blog-nav a,.paper-blog-back{text-decoration:none}.paper-blog-back{border:0;padding:0;color:inherit;background:transparent;cursor:pointer;font:inherit}.paper-blog-header{padding:42px 0 40px}.paper-blog-header h1{font-size:52px;line-height:58px}.paper-blog-header p{margin:18px 0 0;color:var(--paper-body);font-size:17px;line-height:28px;white-space:pre-line}.paper-notes{padding:68px 24px 64px}.paper-notes .paper-disclosure-header{min-height:33px;border-top:1px solid var(--paper-rule);padding:13px 0 0}.paper-note-row{display:flex;gap:24px;border-bottom:1px solid var(--paper-rule);padding:22px 0;text-decoration:none}.paper-note-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}.paper-note-copy strong{font-size:17px;font-weight:500;line-height:25px}.paper-note-copy span{color:var(--paper-muted);font-size:14px;line-height:23px}.paper-note-row time{width:58px;flex-shrink:0;color:var(--paper-muted);font-size:13px;line-height:23px}.paper-article{padding:68px 24px 80px}.paper-article-header{padding:42px 0 36px}.paper-article-header h1{font-size:52px;line-height:58px}.paper-article-deck{margin:18px 0 0;color:var(--paper-body);font-size:19px;line-height:30px}.paper-article-byline{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;color:var(--paper-muted);font-size:13px;line-height:22px}.paper-article .article-body{width:100%;max-width:none;margin:0;color:var(--paper-body);font-size:17px;line-height:30px}.paper-article .article-body>*{max-width:100%}.paper-article .article-body p{margin:0 0 24px}.paper-article .article-body h2{margin:50px 0 18px;color:var(--paper-ink);font-family:inherit;font-size:34px;font-weight:400;line-height:40px}.paper-article .article-body h3{margin:36px 0 14px;color:var(--paper-ink);font-size:19px;line-height:28px}.paper-article .article-body a{color:var(--paper-link);text-underline-offset:3px}.paper-article .article-ernie-cta{width:100%;margin:50px 0;border:1px solid var(--paper-rule);color:var(--paper-ink);background:transparent;box-shadow:none}.paper-article .article-body .article-ernie-cta h2{margin:0;color:inherit}.paper-article .article-body .article-ernie-cta p{margin:12px 0 0;color:var(--paper-body)}.paper-article .article-body .article-ernie-actions a{border-color:var(--paper-ink);color:var(--paper-canvas);background:var(--paper-ink);text-decoration:none}.paper-article .article-body .article-ernie-actions .article-ernie-secondary{color:var(--paper-ink);background:transparent}.paper-article .article-body img,.paper-article .article-body video{width:100%;height:auto;border-radius:0}.paper-article .article-body figure{margin:36px 0}.paper-article .article-body figcaption{margin-top:10px;color:var(--paper-muted);font-size:13px;line-height:21px}.paper-article .article-body pre{max-width:100%;overflow-x:auto}.paper-article .article-body blockquote{margin:30px 0;border-left:2px solid var(--paper-rule);padding-left:20px}.paper-blog-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--paper-rule);margin-top:48px;padding-top:24px;color:var(--paper-muted);font-size:13px;line-height:22px}@media(max-width:680px){.paper-home{padding-bottom:40px}.paper-home-column{width:100%;padding:24px 24px 0}.paper-intro{padding-bottom:34px}.paper-intro-heading{align-items:flex-start;flex-direction:column;gap:6px}.paper-intro h1{font-size:43px;line-height:48px}.paper-lede{margin-top:22px;font-size:17px;line-height:26px}.paper-project-scroller{grid-template-columns:minmax(0,1fr)}.paper-project-copy>span{line-height:21px}.paper-writing-row{align-items:flex-start}.paper-writing-row time{width:94px}.paper-notes,.paper-article{padding:36px 24px 56px}.paper-blog-header{padding:34px 0 32px}.paper-blog-header h1,.paper-article-header h1{font-size:44px;line-height:50px}.paper-notes-scroller{max-height:420px}.paper-note-row{gap:16px}.paper-note-copy strong{font-size:16px}.paper-blog-footer{margin-top:38px}}@media(prefers-reduced-motion:reduce){.paper-disclosure-chevron,.paper-project-row,.paper-project-arrow,.paper-writing-row{transition:none}}
