:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--webase-color-canvas:#f5f4ed;--webase-color-surface:#faf9f5;--webase-color-surface-muted:#e8e6dc;--webase-color-ink:#141413;--webase-color-ink-soft:#504e49;--webase-color-ink-muted:#6b6a64;--webase-color-border:#e5e3d8;--webase-color-border-strong:#d8d5c9;--webase-color-placeholder:#e8e6dc;--webase-color-brand:#1b365d;--webase-color-brand-light:#2d5a8a;--webase-color-brand-tint:#eef2f7;--webase-color-error:#9b4c46;--webase-color-success:#3f7658;--webase-color-warning:#8e4e36;--webase-color-warning-field:#f1dfd4;--webase-color-info:#56768f;--webase-focus-ring:2px solid var(--webase-color-brand);--webase-focus-ring-offset:3px;--webase-dot-rule-image:radial-gradient(circle, var(--webase-color-brand) 0 1px, transparent 1.25px);--webase-shadow-book:#14141324;--webase-shadow-whisper:0 16px 36px #14141314;--webase-shadow-offset:color-mix(in srgb, var(--webase-color-ink) 22%, transparent);--webase-emboss-light:#ffffffb8;--webase-emboss-dark:#14141333;--webase-font-body:Charter, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--webase-font-sans:"Futura Local", "Futura Local Fallback", Arial, sans-serif;--webase-font-display:"Cormorant Garamond Local", "Cormorant Local Fallback", Georgia, serif;--webase-font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--webase-letter-spacing-caps:.16em;--webase-letter-spacing-nav:.09em;--webase-ease-out:cubic-bezier(.23, 1, .32, 1);--webase-ease-in-out:cubic-bezier(.77, 0, .175, 1);--webase-ease-drawer:cubic-bezier(.32, .72, 0, 1);--webase-duration-fast:.14s;--webase-duration-ui:.2s;--paper:var(--webase-color-canvas);--surface:var(--webase-color-surface);--surface-muted:var(--webase-color-surface-muted);--ink:var(--webase-color-ink);--ink-soft:var(--webase-color-ink-soft);--ink-muted:var(--webase-color-ink-muted);--hairline:var(--webase-color-border);--hairline-strong:var(--webase-color-border-strong);--placeholder:var(--webase-color-placeholder);--brand:var(--webase-color-brand);--brand-light:var(--webase-color-brand-light);--brand-tint:var(--webase-color-brand-tint);--status-error:var(--webase-color-error);--status-success:var(--webase-color-success);--status-warning:var(--webase-color-warning);--status-warning-field:var(--webase-color-warning-field);--status-info:var(--webase-color-info);--focus-ring:var(--webase-focus-ring);--focus-ring-offset:var(--webase-focus-ring-offset);--dot-rule-image:var(--webase-dot-rule-image);--book-shadow:var(--webase-shadow-book);--whisper-shadow:var(--webase-shadow-whisper);--shadow-offset:var(--webase-shadow-offset);--emboss-light:var(--webase-emboss-light);--emboss-dark:var(--webase-emboss-dark);--font:var(--webase-font-body);--sans:var(--webase-font-sans);--display:var(--webase-font-display);--mono:var(--webase-font-mono);--track-caps:var(--webase-letter-spacing-caps);--track-nav:var(--webase-letter-spacing-nav);--ease-out:var(--webase-ease-out);--ease-in-out:var(--webase-ease-in-out);--ease-drawer:var(--webase-ease-drawer);--duration-fast:var(--webase-duration-fast);--duration-ui:var(--webase-duration-ui)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--webase-color-canvas:#141413;--webase-color-surface:#242421;--webase-color-surface-muted:#30302e;--webase-color-ink:#faf9f5;--webase-color-ink-soft:#b0aea5;--webase-color-ink-muted:#8f8c82;--webase-color-border:#44423d;--webase-color-border-strong:#5d5a52;--webase-color-placeholder:#30302e;--webase-color-brand:#9bb3d1;--webase-color-brand-light:#c2d1e3;--webase-color-brand-tint:#293541;--webase-color-error:#d98d86;--webase-color-success:#7fb795;--webase-color-warning:#f0b99f;--webase-color-warning-field:#442b23;--webase-color-info:#8fb2cc;--webase-shadow-book:#00000061;--webase-shadow-whisper:0 18px 44px #00000057;--webase-emboss-light:#ffffff1a;--webase-emboss-dark:#0000008c}@font-face{font-family:Futura Local;src:url(../../../fonts/futura-light.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:300}@font-face{font-family:Futura Local;src:url(../../../fonts/futura-regular.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:Futura Local;src:url(../../../fonts/futura-medium.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:500}@font-face{font-family:Cormorant Garamond Local;src:url(../../../fonts/cormorant-garamond-semibold-italic-latin.woff2)format("woff2");font-display:swap;font-style:italic;font-weight:600}@font-face{font-family:Futura Local Fallback;src:local(Futura),local(Avenir Next),local(Helvetica Neue),local(Arial);font-style:normal;font-weight:300;size-adjust:88%;ascent-override:101.8%;descent-override:30%;line-gap-override:0%}@font-face{font-family:Futura Local Fallback;src:local(Futura),local(Avenir Next),local(Helvetica Neue),local(Arial);font-style:normal;font-weight:400;size-adjust:88%;ascent-override:101.8%;descent-override:30%;line-gap-override:0%}@font-face{font-family:Futura Local Fallback;src:local(Futura),local(Avenir Next),local(Helvetica Neue),local(Arial);font-style:normal;font-weight:500;size-adjust:92.3%;ascent-override:101.8%;descent-override:30%;line-gap-override:0%}@font-face{font-family:Cormorant Local Fallback;src:local(Georgia Bold Italic);font-display:swap;font-style:italic;font-weight:600;size-adjust:70%}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}@supports not selector(::-webkit-scrollbar){*{scrollbar-color:var(--brand) transparent;scrollbar-width:thin}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#0000;background-image:radial-gradient(circle, var(--brand) 0 1px, transparent 1.25px);cursor:grab;background-position:50%;background-repeat:repeat;background-size:8px 7px}::-webkit-scrollbar-thumb:hover{background-image:radial-gradient(circle, var(--brand-light) 0 2.5px, transparent 2.75px)}::-webkit-scrollbar-thumb:active{background-image:radial-gradient(circle, var(--brand) 0 2.5px, transparent 2.75px);cursor:grabbing}::-webkit-scrollbar-corner{background:0 0}body{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--duration-ui) var(--ease-out), color var(--duration-ui) var(--ease-out);margin:0;font-weight:400}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button:focus-visible,a:focus-visible{outline:var(--focus-ring);outline-offset:4px}.page{max-width:1120px;min-height:calc(100dvh - 120px);margin:0 auto;padding:calc(clamp(36px,6vw,88px) + 56px) clamp(24px,5vw,64px) 10vh}:root[data-initial-load] .page{animation:page-enter var(--duration-ui) var(--ease-out) both}.top{--top-logo-size:34px;--top-link-size:20px;z-index:500;background-color:var(--paper);background-color:color-mix(in srgb, var(--paper) 92%, transparent);background-image:var(--dot-rule-image);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none;background-position:0 100%;background-repeat:repeat-x;background-size:7px 2px;justify-content:space-between;align-items:center;min-height:62px;padding:14px clamp(20px,4vw,48px);display:flex;position:fixed;inset:0 0 auto}.top .name,.top nav{letter-spacing:var(--track-nav);pointer-events:auto}.top .name{width:var(--top-logo-size);height:var(--top-logo-size);flex:none;justify-content:center;align-items:center;display:inline-flex}.top .name img{width:var(--top-logo-size);height:var(--top-logo-size);object-fit:contain;display:block}.top nav{font-family:var(--display);align-items:center;gap:20px;font-size:12px;font-style:italic;font-weight:600;display:flex}.top nav>a,.top nav>.menu>a{height:var(--top-link-size);font-size:var(--top-link-size);justify-content:center;align-items:center;line-height:1;display:inline-flex}.top nav a{color:var(--ink-muted);transition:color var(--duration-ui) var(--ease-out)}.top nav a[aria-current=page]{color:var(--ink)}.menu{position:relative}.menu-arrow{transform-origin:50%;transition:transform .16s var(--ease-out);will-change:transform;display:inline-block}.menu:focus-within .menu-arrow,.menu.touch-open .menu-arrow{transform:rotateX(180deg)}.menu .dropdown{z-index:50;opacity:0;pointer-events:none;transform-origin:100% 0;visibility:hidden;min-width:156px;transition:opacity .16s var(--ease-out), transform .16s var(--ease-out), visibility 0s linear .16s;flex-direction:column;padding-top:18px;display:flex;position:absolute;top:100%;right:0;transform:translateY(4px)}.menu:focus-within .dropdown,.menu.touch-open .dropdown{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)}.menu .dropdown a{border:1px solid var(--hairline);background:var(--surface);min-height:44px;color:var(--ink-muted);letter-spacing:var(--track-nav);border-top:0;align-items:center;padding:12px 16px;font-size:12px;display:flex}.menu .dropdown a:first-child{border-top:1px solid var(--hairline);border-radius:3px 3px 0 0}.menu .dropdown a:last-child{border-radius:0 0 3px 3px}.menu .dropdown a:hover{background:var(--brand-tint);color:var(--ink)}.icon-btn{width:17px;height:17px;color:var(--ink-muted);transition:color var(--duration-ui) var(--ease-out), transform var(--duration-ui) var(--ease-out);place-items:center;display:inline-grid}.icon-mask{width:12px;height:12px;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor}.theme-toggle{width:var(--top-link-size);height:var(--top-link-size);color:var(--ink-muted);cursor:pointer;transition:color var(--duration-ui) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.theme-toggle:before{background:var(--hairline-strong);content:"";width:1px;position:absolute;top:0;bottom:0;left:-10px}.theme-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:4px;color:var(--brand)}.theme-toggle:focus-visible .theme-icon{filter:drop-shadow(0 0 2px color-mix(in srgb, var(--brand) 55%, transparent))}.theme-icon{width:var(--top-link-size);height:var(--top-link-size);fill:none;stroke:currentColor;stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round}.theme-icon-dark,:root[data-theme=dark] .theme-icon-light{display:none}:root[data-theme=dark] .theme-icon-dark{display:block}.hero{overflow-anchor:none;align-content:center;justify-items:center;min-height:100svh;margin-top:calc(-1*clamp(28px,5vw,72px) - 56px);padding-bottom:clamp(48px,7svh,66px);display:grid;position:relative}.hero-kicker,.section-label{color:var(--brand);font-family:var(--sans);letter-spacing:var(--track-caps);text-transform:uppercase;font-size:11px;font-weight:500}.hero-kicker{text-align:center;margin:0 0 clamp(18px,3vh,34px);line-height:1.32}.hero-name{z-index:0;color:var(--brand);filter:blur(3px);font-family:var(--display);letter-spacing:-.03em;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap;pointer-events:none;margin:0 0 -.52em;font-size:clamp(64px,12vw,128px);font-style:italic;font-weight:600;line-height:1;position:relative}.sb-wrap{z-index:1;justify-items:center;gap:20px;width:100%;display:grid;position:relative}.sb-stage{justify-content:center;align-items:center;width:100%;display:flex}.sb-book{perspective:2600px;width:min(80vw,780px);min-width:0;position:relative}.sb-book:before{background:var(--book-shadow);filter:blur(28px);content:"";border-radius:18px;position:absolute;inset:9% 19% 3% 21%}.sb-motion-filters{position:absolute}.sb-full{position:absolute;inset:0}.sb-full img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.sb-full.sb-stack img{width:100%;height:auto;position:absolute;top:0;left:0}.sb-half{width:50%;position:absolute;top:0;bottom:0;overflow:clip visible}.sb-half.left{left:0}.sb-half.right{left:50%}.sb-half-img{width:200%;max-width:none;height:auto;display:block}.sb-half-img.right{margin-left:-100%}.sb-half.sb-out{animation:.22s ease-out .6s forwards sb-fade-out}.sb-half.sb-in{opacity:0;animation:.4s forwards sb-fade-in}.sb-flap{z-index:5;width:50%;transform-style:preserve-3d;will-change:transform;position:absolute;top:0;bottom:0}.sb-flap.next{transform-origin:0;animation:.85s cubic-bezier(.42,.05,.25,1) forwards sb-fold-next;left:50%}.sb-flap.prev{transform-origin:100%;animation:.85s cubic-bezier(.42,.05,.25,1) forwards sb-fold-prev;left:0}.sb-face{backface-visibility:hidden;position:absolute;inset:0;overflow:clip visible}.sb-face.back{transform:rotateY(180deg)}.sb-wrap.intro .sb-flap{animation-duration:var(--riffle-dur,.16s);animation-timing-function:linear}.sb-wrap.intro .sb-half.sb-out{animation-duration:calc(var(--riffle-dur,.16s) * .4);animation-delay:calc(var(--riffle-dur,.16s) * .5)}.sb-wrap.intro .sb-half.sb-in{animation-duration:calc(var(--riffle-dur,.16s) * .5)}.sb-wrap.intro.b1 .sb-full img,.sb-wrap.intro.b1 .sb-half-img{filter:url(#sb-mblur-1)}.sb-wrap.intro.b2 .sb-full img,.sb-wrap.intro.b2 .sb-half-img{filter:url(#sb-mblur-2)}.sb-wrap.intro .sb-caption{animation:none}.sb-wrap.intro .sb-caption.cap-out{display:none}.sb-zone{z-index:60;cursor:pointer;background:0 0;border:0;width:50%;position:absolute;top:0;bottom:0}.sb-prev{left:0}.sb-next{right:0}.sb-arrow{z-index:6;width:44px;height:44px;color:var(--ink-muted);cursor:pointer;transition:color var(--duration-ui) var(--ease-out);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sb-arrow.left{margin-right:30px}.sb-arrow.right{margin-left:30px}.sb-captions{justify-items:center;display:grid}.sb-captions>*{grid-area:1/1}.sb-caption{color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-caps);text-transform:uppercase;margin:0;font-size:12px;line-height:1.3;animation:.45s both caption-in}.sb-caption.cap-out{animation:.35s both caption-out}.hero-down{color:var(--ink);cursor:pointer;animation:cue-breathe 2.6s var(--ease-in-out) infinite paused;background:0 0;border:0;padding:10px 14px;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.hero.is-visible .hero-down{animation-play-state:running}.about{grid-template-columns:minmax(0,540px) clamp(192px,22vw,270px);justify-content:center;align-items:stretch;gap:clamp(28px,5vw,52px);margin-top:clamp(16px,4vh,48px);scroll-margin-top:100px;display:grid}.about-text{align-items:center;display:flex}.about-text .bio{max-width:540px;color:var(--ink-soft);letter-spacing:0;margin:0;font-size:clamp(16px,1.8vw,19px);line-height:1.58}.bio-link{color:var(--brand);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-strong);text-decoration-color:var(--hairline-strong);text-underline-offset:3px;font-weight:500;transition:text-decoration-color .2s}.bio-link:hover{-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand)}.headshot{aspect-ratio:1;align-self:start;width:100%;min-height:0;position:relative}.headshot img{border:1px solid var(--hairline);object-fit:contain;object-position:top center;border-radius:8px;width:100%;height:100%}.projects-section{margin-top:clamp(72px,11vh,128px);scroll-margin-top:100px}.section-label{align-items:center;gap:10px;margin:0 0 24px;display:flex}.section-label:before{background:var(--brand);content:"";border-radius:2px;flex:none;width:3px;height:18px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:clamp(34px,4vw,48px) clamp(18px,2.5vw,30px);display:grid}.project-card .thumb{border:1px solid var(--hairline);aspect-ratio:16/10;background:var(--surface);transform-origin:50%;transition:border-color var(--duration-ui) var(--ease-out), box-shadow var(--duration-ui) var(--ease-out), transform var(--duration-fast) var(--ease-out);border-radius:8px;position:relative;overflow:hidden}.project-card .thumb img{object-fit:cover;width:100%;height:100%;transition:transform .22s var(--ease-out)}.project-card:focus-visible .thumb{border-color:var(--hairline-strong);box-shadow:var(--whisper-shadow)}.project-card:active .thumb{transform:scale(.98)}.project-card .cap{justify-content:space-between;align-items:baseline;gap:12px;margin-top:13px;display:flex}.project-card .title{letter-spacing:0;font-size:18px;font-weight:500}.project-card .category{color:var(--ink-muted);font-family:var(--sans);letter-spacing:.04em;text-align:right;text-transform:uppercase;font-size:12px}.listing-page,.article-page,.error-page{padding-top:clamp(112px,14vh,158px)}.article-page{overflow-x:clip}@media (width>=1161px){.article-page{overflow-x:visible}}.listing-page{min-height:calc(100vh - 160px)}.blog-year-groups{gap:clamp(44px,7vh,72px);display:grid}.blog-year{color:var(--brand);margin:0 0 14px;font-size:clamp(24px,3vw,32px);font-weight:500;line-height:1.2}.blog-rows{background-image:var(--dot-rule-image);background-position:0 0;background-repeat:repeat-x;background-size:7px 2px}.blog-row{background-image:var(--dot-rule-image);transition:background-color var(--duration-ui) var(--ease-out), opacity var(--duration-fast) var(--ease-out), transform var(--duration-ui) var(--ease-out);background-position:0 100%;background-repeat:repeat-x;background-size:7px 2px;grid-template-columns:6.5em 1fr auto;align-items:baseline;gap:16px;padding:20px 12px;display:grid;position:relative;transform:translate(0)}.blog-row:before{background:var(--brand);content:"";opacity:0;width:3px;transition:opacity var(--duration-ui) var(--ease-out), transform var(--duration-ui) var(--ease-out);border-radius:2px;position:absolute;inset:14px auto 14px 0;transform:scaleY(.3)}.blog-row:focus-visible{background-color:var(--surface);transform:translate(8px)}.blog-row:focus-visible:before{opacity:1;transform:scaleY(1)}.blog-row time,.blog-row .tag{color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-nav);font-size:12px}.blog-row time{font-family:var(--font);letter-spacing:0;white-space:nowrap}.blog-row .title{letter-spacing:0;font-size:clamp(18px,2vw,22px);font-weight:500}.blog-row .tag{background:var(--brand-tint);color:var(--brand);text-align:right;text-transform:uppercase;border-radius:3px;padding:3px 7px}.blog-row .row-thumb{z-index:6;border:1px solid var(--hairline);background:var(--placeholder);width:116px;box-shadow:var(--whisper-shadow);opacity:0;pointer-events:none;aspect-ratio:3/2;transition:opacity var(--duration-ui) var(--ease-out), transform var(--duration-ui) var(--ease-out);border-radius:8px;position:absolute;top:50%;right:7.5em;overflow:hidden;transform:translateY(-50%)scale(.9)}.blog-row .row-thumb img{object-fit:cover;width:100%;height:100%}.back-link{color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-nav);margin-bottom:clamp(34px,6vh,64px);font-size:12px;transition:color .2s;display:inline-block}.back-link:hover{color:var(--brand)}.article-layout{grid-template-columns:0 minmax(0,760px);max-width:760px;margin:0 auto;display:grid}.article-layout>article{grid-column:2;min-width:0;scroll-margin-top:96px}.article-header{border-left:3px solid var(--brand);border-radius:2px;margin-bottom:clamp(48px,8vh,84px);padding-left:clamp(18px,3vw,28px)}.article-header h1,.error-page h1{letter-spacing:0;max-width:820px;margin:0;font-size:clamp(42px,7vw,76px);font-weight:500;line-height:1.1}.article-meta{color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-nav);flex-wrap:wrap;gap:10px;margin:18px 0 0;font-size:12px;display:flex}.article-tags a{color:var(--brand);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-strong);text-decoration-color:var(--hairline-strong);text-underline-offset:3px;transition:text-decoration-color var(--duration-ui) var(--ease-out)}.article-tags a:hover{-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand)}.article-description{max-width:620px;color:var(--ink-soft);letter-spacing:0;margin:28px 0 0;font-size:clamp(17px,2.2vw,21px);line-height:1.55}.prose{color:var(--ink-soft);font-family:var(--font);letter-spacing:0;font-size:17px;line-height:1.62}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--ink);scroll-margin-top:96px}.prose h2{margin:2.8em 0 .8em;font-size:clamp(24px,4vw,34px);font-weight:500;line-height:1.25}.prose h3{margin:2.2em 0 .7em;font-size:20px;font-weight:500}.prose h4{margin:2em 0 .65em;font-size:17px;font-weight:600}.prose h5,.prose h6{font-family:var(--sans);letter-spacing:var(--track-nav);margin:1.9em 0 .65em;font-size:12px;font-weight:500}.prose h6{color:var(--ink-muted);text-transform:uppercase}.prose p,.prose ul,.prose ol,.prose blockquote{margin:0 0 1.45em}.prose a{color:var(--brand);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-strong);text-decoration-color:var(--hairline-strong);text-underline-offset:3px;font-weight:500}.prose img{border:1px solid var(--hairline);border-radius:8px;width:100%;height:auto;margin:clamp(28px,5vw,56px) 0}.prose blockquote{border-left:3px solid var(--brand);color:var(--ink-soft);padding-left:24px}.prose li::marker{color:var(--brand)}.prose hr{background-image:var(--dot-rule-image);background-position:0;background-repeat:repeat-x;background-size:7px 2px;border:0;width:min(180px,40%);height:2px;margin:clamp(44px,7vw,72px) auto}.prose strong{color:var(--ink)}.prose del{color:var(--ink-muted)}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.7em;font-size:.92em;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;min-width:120px;padding:10px 14px}.prose th{border-bottom-color:var(--hairline-strong);color:var(--ink);font-family:var(--sans);letter-spacing:var(--track-nav);text-transform:uppercase;font-size:.72em;font-weight:500}.prose input[type=checkbox]{accent-color:var(--brand);margin:0 .45em 0 0}.prose details{background-image:var(--dot-rule-image), var(--dot-rule-image);background-position:0 0,0 100%;background-repeat:repeat-x;background-size:7px 2px;margin:0 0 1.45em;padding:12px 0}.prose summary{cursor:pointer;color:var(--ink);font-weight:600}.prose kbd{border:1px solid var(--hairline-strong);background:var(--surface);font-family:var(--mono);border-bottom-width:2px;border-radius:4px;padding:.08em .35em;font-size:.78em}.article-footer{background-image:var(--dot-rule-image);text-align:center;background-position:0 0;background-repeat:repeat-x;background-size:7px 2px;margin-top:clamp(64px,10vh,108px);padding-top:clamp(28px,4vw,42px)}.content-relations+.article-footer{margin-top:clamp(42px,6vh,66px)}.article-back-button{border:1px solid var(--hairline-strong);color:var(--brand);font-family:var(--sans);letter-spacing:var(--track-nav);border-radius:2px;align-items:center;gap:9px;padding:10px 16px;font-size:11px;line-height:1;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex}.article-back-button:hover{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}.article-nav{text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,8vw,88px);margin-top:clamp(42px,6vw,66px);display:grid}.article-nav-link{flex-direction:column;gap:8px;min-width:0;min-height:72px;padding:4px 0;display:flex}.article-nav-link:hover .article-nav-title{color:var(--brand)}.article-nav-next{text-align:right;align-items:flex-end}.article-nav-direction{color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-caps);text-transform:uppercase;font-size:10px;line-height:1.3}.article-nav-title{overflow-wrap:anywhere;color:var(--ink-soft);font-size:16px;line-height:1.35;transition:color .2s}.article-nav-placeholder{min-height:72px}.prose code{border:1px solid var(--hairline);background:var(--surface);font-family:var(--mono);border-radius:5px;padding:.12em .34em;font-size:.86em}.prose pre{border:1px solid var(--hairline);background:var(--surface);font-family:var(--mono);tab-size:2;border-radius:8px;padding-block:18px;font-size:.86em;line-height:1.7;overflow-x:auto}.prose pre code{min-width:max-content;font:inherit;background:0 0;border:0;padding:0;display:grid}.prose [data-rehype-pretty-code-figure]{margin-block:1.5em}.prose [data-rehype-pretty-code-figure] pre{margin:0}.prose [data-line]{padding-inline:18px}.prose [data-highlighted-line]{border-left:2px solid var(--ink-muted);background:color-mix(in srgb, var(--surface-muted) 68%, transparent)}.prose [data-highlighted-chars]{background:var(--surface-muted);border-radius:3px;padding:.1em .2em}.prose [data-theme*=\ ] span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);-webkit-text-decoration:var(--shiki-light-text-decoration);text-decoration:var(--shiki-light-text-decoration)}:root[data-theme=dark] .prose [data-theme*=\ ] span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);-webkit-text-decoration:var(--shiki-dark-text-decoration);text-decoration:var(--shiki-dark-text-decoration)}.error-page{min-height:calc(100vh - 140px)}.error-page .back-link{margin-top:48px}.foot{background-image:var(--dot-rule-image);max-width:1120px;color:var(--ink-muted);font-family:var(--sans);letter-spacing:var(--track-caps);text-align:center;background-position:0 0;background-repeat:repeat-x;background-size:7px 2px;margin:clamp(40px,8vh,90px) auto 0;padding:4vh clamp(28px,5vw,72px) 6vh;font-size:11px}.footer-socials{justify-content:center;align-items:center;gap:15px;margin-bottom:14px;display:flex}.footer-copyright{margin:0}@keyframes page-enter{0%{opacity:0;transform:translateY(4px)}}@keyframes sb-fade-out{to{opacity:0}}@keyframes sb-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sb-fold-next{to{transform:rotateY(-180deg)}}@keyframes sb-fold-prev{to{transform:rotateY(180deg)}}@keyframes caption-in{0%{opacity:0;transform:translateY(5px)}}@keyframes caption-out{to{opacity:0}}@keyframes cue-breathe{0%,to{opacity:.35;transform:translate(-50%)}50%{opacity:.8;transform:translate(-50%,4px)}}@media (hover:hover) and (pointer:fine){.top nav a:hover{color:var(--ink)}.menu:hover .menu-arrow{transform:rotateX(180deg)}.menu:hover .dropdown{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)}.icon-btn:hover{color:var(--brand);transform:translateY(-1px)}.theme-toggle:hover{color:var(--brand)}.sb-arrow:hover{color:var(--ink)}.hero-down:hover{animation-play-state:paused}.project-card:hover .thumb img{transform:scale(1.04)}.project-card:hover .thumb{border-color:var(--hairline-strong);box-shadow:var(--whisper-shadow)}.blog-row:hover{background-color:var(--surface);transform:translate(8px)}.blog-row:hover:before{opacity:1;transform:scaleY(1)}.blog-row:hover .row-thumb{opacity:1;transform:translateY(-50%)scale(1)}.blog-rows:hover .blog-row:not(:hover){opacity:.45}}@media (pointer:coarse){.top nav>a,.top nav>.menu>a,.theme-toggle,.top .name{min-width:44px;min-height:44px}}@media (width<=720px){.page{padding:84px 18px 8vh}.top{--top-logo-size:36px;--top-link-size:14px;min-height:56px;padding:6px 8px}.top nav{letter-spacing:.05em;gap:0;font-size:10px}.top nav>a,.top nav>.menu>a,.theme-toggle{min-width:44px;min-height:44px}.top .name{width:44px;height:44px;min-height:44px}.theme-toggle:before{width:2px;height:var(--top-link-size);background:0 0;background-image:var(--dot-rule-image);background-position:50%;background-repeat:repeat-y;background-size:2px 7px;top:50%;bottom:auto;left:6px;transform:translate(-50%,-50%)}.menu .dropdown{left:0;right:auto}.hero{min-height:100svh;margin-top:-84px;padding-bottom:54px}.hero-kicker{max-width:300px;font-size:9px;line-height:1.7}.hero-name{font-size:clamp(52px,16.5vw,72px)}.sb-wrap{width:calc(100% + 36px);margin-inline:-18px}.sb-book{width:min(86vw,680px)}.sb-stage{position:relative}.sb-arrow{position:absolute;top:50%;transform:translateY(-50%)}.sb-arrow.left{margin:0;left:4px}.sb-arrow.right{margin:0;right:4px}.sb-caption{font-size:10px}.about{grid-template-columns:1fr;gap:24px;margin-top:42px}.headshot{order:-1;justify-self:center;width:112px;height:112px;min-height:0}.about-text .bio{font-size:16px;line-height:1.6}.projects-section{margin-top:78px}.project-grid{grid-template-columns:1fr}.blog-row{grid-template-columns:6.2em 1fr;padding:18px 4px}.blog-row .tag,.blog-row .row-thumb{display:none}.article-header h1,.error-page h1{font-size:clamp(38px,12vw,56px)}.article-meta{flex-wrap:wrap}.article-header{padding-left:16px}.prose{font-size:16px}.article-footer{margin-top:64px}.article-nav{grid-template-columns:1fr;gap:20px}}@media (width<=1160px){.article-layout{grid-template-columns:minmax(0,1fr)}.article-layout>article{grid-column:1}}@media (width>=721px) and (width<=1040px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}:root[data-initial-load] .page,.sb-half,.sb-flap,.sb-caption,.hero-down{animation:none}.menu-arrow,.icon-btn,.project-card .thumb,.project-card .thumb img,.blog-row,.blog-row:before,.blog-row .row-thumb{transition-property:color,background-color,border-color,opacity,box-shadow}.menu-arrow,.icon-btn,.project-card .thumb,.project-card .thumb img,.blog-row,.blog-row:before{transform:none}.blog-row .row-thumb{transform:translateY(-50%)}.menu .dropdown{transition:opacity var(--duration-fast) var(--ease-out), visibility 0s linear var(--duration-fast);transform:none}.menu:focus-within .dropdown{transition-delay:0s}.project-card:active .thumb,.project-card:hover .thumb img,.blog-row:hover,.blog-row:focus-visible,.blog-row:hover:before,.blog-row:focus-visible:before,.blog-row:hover .row-thumb,.icon-btn:hover,.menu:hover .menu-arrow,.menu:focus-within .menu-arrow,.menu.touch-open .menu-arrow{transform:none}.blog-row:hover .row-thumb{transform:translateY(-50%)}.menu.touch-open .dropdown{transform:none}}.light-switch-root.svelte-1ecbkfy{display:contents}.room-shade.svelte-1ecbkfy,.room-warmth.svelte-1ecbkfy,.pendant-root.svelte-1ecbkfy,.cord-sway.svelte-1ecbkfy,.blackout.svelte-1ecbkfy{position:fixed}.room-shade.svelte-1ecbkfy,.room-warmth.svelte-1ecbkfy{z-index:550;opacity:0;pointer-events:none;transition:opacity .45s;inset:0}.room-shade.svelte-1ecbkfy{background:radial-gradient(140% 140% at clamp(65px,50% - 515px,184px) 130px,#0000 0%,#0000000a 22%,#00000024 46%,#00000047 72%,#00000061 100%)}.room-warmth.svelte-1ecbkfy{mix-blend-mode:screen;background:radial-gradient(420px at clamp(71px,50% - 523px,172px) 129px,#ffca7d1f,#ffbe690a 42%,#0000 70%)}:root[data-theme=dark] .room-shade.svelte-1ecbkfy,:root[data-theme=dark] .room-warmth.svelte-1ecbkfy{opacity:1;transition:none}.pendant-root.svelte-1ecbkfy{z-index:560;visibility:hidden;pointer-events:none;transition:transform .56s cubic-bezier(.5,0,.85,.6) .17s,visibility 0s linear .73s;top:0;left:clamp(34px,50% - 560px,135px);transform:translateY(-230px)}:root[data-theme=dark] .pendant-root.svelte-1ecbkfy{visibility:visible;transition:transform .7s cubic-bezier(.22,1.18,.36,1) 70ms;transform:translateY(0)}.pendant-sway.svelte-1ecbkfy{transform-origin:37px 0;animation:9s ease-in-out infinite svelte-1ecbkfy-switch-sway;position:relative}.pendant-glow.svelte-1ecbkfy{filter:blur(10px);opacity:0;background:radial-gradient(circle,#ffe09a7a,#ffbe682e 48%,#ffae5212 66%,#0000 78%);border-radius:50%;width:118px;height:118px;position:absolute;top:70px;left:-22px}:root[data-theme=dark] .pendant-glow.svelte-1ecbkfy{opacity:1;animation:4.2s ease-in-out infinite svelte-1ecbkfy-bulb-breathe}.pendant-svg.svelte-1ecbkfy{filter:none;display:block;position:relative}:root[data-theme=dark] .pendant-svg.svelte-1ecbkfy{filter:drop-shadow(0 0 18px #ffbe6457)}.pendant-wire.svelte-1ecbkfy{stroke:#3737348c;stroke-width:3px;stroke-linecap:round}.pendant-cap.svelte-1ecbkfy,.cord-joint.svelte-1ecbkfy{fill:#32353c}.pendant-fixture.svelte-1ecbkfy{fill:#282d35;stroke:#080a0e6b}.pendant-vents.svelte-1ecbkfy{stroke:#05070ab3;stroke-width:1.6px;stroke-linecap:round}.pendant-ring.svelte-1ecbkfy,.pull-accent.svelte-1ecbkfy{fill:var(--brand)}.pendant-bulb.svelte-1ecbkfy{stroke:#ffe6af99}.pendant-bulb-off.svelte-1ecbkfy{fill:#e7e4da;stroke:#14141324;opacity:.96;transition:opacity .14s ease-out}:root[data-theme=dark] .pendant-bulb-off.svelte-1ecbkfy{opacity:0}.pendant-glint.svelte-1ecbkfy{fill:none;stroke:#ffffffad;stroke-width:1.8px;stroke-linecap:round}.cord-sway.svelte-1ecbkfy{z-index:570;transform-origin:top;animation:8s ease-in-out -2s infinite svelte-1ecbkfy-switch-sway;top:-54px;right:12px}.cord-button.svelte-1ecbkfy{cursor:grab;background:0 0;border:0;padding:0;transition:transform .62s cubic-bezier(.18,1.6,.4,1);display:block}.cord-button.svelte-1ecbkfy:active{cursor:grabbing}.cord-button.svelte-1ecbkfy:not(.pulled):hover{transform:translateY(5px)}.cord-button.pulled.svelte-1ecbkfy{transition:transform .18s cubic-bezier(.55,0,.9,.7);transform:translateY(46px)}.cord-rope.svelte-1ecbkfy{fill:none;stroke:#3737348f;stroke-width:2.5px;stroke-linecap:round}.pull-handle.svelte-1ecbkfy{fill:#ebe8de;stroke:#1414132e}.pull-grip.svelte-1ecbkfy{stroke:#14141338;stroke-width:1.5px;stroke-linecap:round}:root[data-theme=dark] .pendant-wire.svelte-1ecbkfy,:root[data-theme=dark] .cord-rope.svelte-1ecbkfy{stroke:#cdd4e852}:root[data-theme=dark] .pendant-cap.svelte-1ecbkfy,:root[data-theme=dark] .cord-joint.svelte-1ecbkfy{fill:#3b414d}:root[data-theme=dark] .pendant-fixture.svelte-1ecbkfy,:root[data-theme=dark] .pull-handle.svelte-1ecbkfy{fill:#252a33;stroke:#ffffff1f}:root[data-theme=dark] .pendant-vents.svelte-1ecbkfy,:root[data-theme=dark] .pull-grip.svelte-1ecbkfy{stroke:#0000008c}:root[data-theme=dark] .pendant-fixture-sheen.svelte-1ecbkfy,:root[data-theme=dark] .pull-handle-sheen.svelte-1ecbkfy{opacity:.58}.cord-button.svelte-1ecbkfy:focus-visible{outline:none}.cord-button.svelte-1ecbkfy:focus-visible .pull-handle:where(.svelte-1ecbkfy){stroke:var(--brand);stroke-width:2.2px}.blackout.svelte-1ecbkfy{z-index:580;opacity:0;pointer-events:none;background:#000;inset:0}@keyframes svelte-1ecbkfy-switch-sway{0%,to{transform:rotate(-.85deg)}50%{transform:rotate(.85deg)}}@keyframes svelte-1ecbkfy-bulb-breathe{0%,to{opacity:1}50%{opacity:.82}}@media (width>=901px){.theme-toggle{display:none}}@media (width<=900px){.light-switch-root.svelte-1ecbkfy{display:none}}@media (prefers-reduced-motion:reduce){.pendant-sway.svelte-1ecbkfy,.pendant-glow.svelte-1ecbkfy,.cord-sway.svelte-1ecbkfy{animation:none}.pendant-root.svelte-1ecbkfy,.cord-button.svelte-1ecbkfy,.room-shade.svelte-1ecbkfy,.room-warmth.svelte-1ecbkfy{transition:none}}.social-item.svelte-1c5q26z{place-items:center;display:grid;position:relative}.social-link.svelte-1c5q26z{width:44px;height:44px}.social-link-icon.svelte-1c5q26z{--social-icon-inset:0px;width:20px;height:20px;display:block;position:relative}.rss-link-icon.svelte-1c5q26z{--social-icon-inset:2px}.social-link-icon-mono.svelte-1c5q26z,.social-link-icon-color.svelte-1c5q26z{inset:var(--social-icon-inset);width:calc(100% - (var(--social-icon-inset) * 2));height:calc(100% - (var(--social-icon-inset) * 2));transition:opacity var(--duration-ui) var(--ease-out), transform var(--duration-ui) var(--ease-out);position:absolute}.social-link-icon-mono.svelte-1c5q26z{opacity:1;transform:scale(1)}.social-link-icon-color.svelte-1c5q26z{object-fit:contain;opacity:0;display:block;transform:scale(.78)rotate(-5deg)}.social-link.svelte-1c5q26z:hover .social-link-icon-mono:where(.svelte-1c5q26z),.social-link.svelte-1c5q26z:focus-visible .social-link-icon-mono:where(.svelte-1c5q26z){opacity:0;transform:scale(.88)}.social-link.svelte-1c5q26z:hover .social-link-icon-color:where(.svelte-1c5q26z),.social-link.svelte-1c5q26z:focus-visible .social-link-icon-color:where(.svelte-1c5q26z){opacity:1;transform:scale(1)rotate(0)}:root[data-theme=dark] .social-link-icon-color.monochrome-brand.svelte-1c5q26z{filter:invert()}.social-preview.svelte-1c5q26z{--preview-accent:var(--brand);z-index:100;border:1px solid color-mix(in srgb, var(--hairline-strong) 82%, transparent);background:radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--ink) 5%, transparent) 0 .55px, transparent .75px) 0 0 / 12px 12px, color-mix(in srgb, var(--surface) 97%, transparent);width:min(284px,100vw - 32px);color:var(--ink);font-family:var(--sans);letter-spacing:0;opacity:0;pointer-events:none;text-align:left;transform-origin:bottom;visibility:hidden;transition:opacity var(--duration-ui) var(--ease-out) 80ms, transform var(--duration-ui) var(--ease-out) 80ms, visibility 0s linear .28s;border-radius:7px;flex-direction:column;gap:10px;padding:14px 16px 0;font-size:13px;line-height:1.45;display:flex;position:absolute;bottom:calc(100% + 16px);left:50%;overflow:hidden;transform:translate(-50%,4px)scale(.95);box-shadow:0 24px 64px #1414132e,0 4px 14px #14141314}.social-preview.svelte-1c5q26z:before{background:var(--preview-accent);content:"";opacity:.82;height:3px;position:absolute;inset:0 0 auto}.social-preview-profile.svelte-1c5q26z{--preview-accent:#181717}.social-preview-github.svelte-1c5q26z{--preview-accent:#2da44e}.social-preview-email.svelte-1c5q26z{--preview-accent:#7898b4}.social-preview-rss.svelte-1c5q26z{--preview-accent:#f26522}:root[data-theme=dark] .social-preview-profile.svelte-1c5q26z{--preview-accent:#f5f4ed}.social-item.svelte-1c5q26z:focus-within .social-preview:where(.svelte-1c5q26z),.social-item[data-preview-open].svelte-1c5q26z .social-preview:where(.svelte-1c5q26z){opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translate(-50%)scale(1)}.preview-action.svelte-1c5q26z{border-top:1px solid color-mix(in srgb, var(--preview-accent) 20%, var(--hairline));background:color-mix(in srgb, var(--preview-accent) 5%, transparent);min-height:44px;color:var(--preview-accent);font-family:var(--mono);letter-spacing:var(--track-nav);text-transform:uppercase;transition:background var(--duration-fast) var(--ease-out), letter-spacing var(--duration-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:12px;margin:0 -16px;padding:0 16px;font-size:10px;display:flex}.preview-action.svelte-1c5q26z:hover{background:color-mix(in srgb, var(--preview-accent) 9%, transparent);letter-spacing:calc(var(--track-nav) + .025em)}.preview-action.svelte-1c5q26z:focus-visible{outline-offset:2px}.profile-header.svelte-1c5q26z,.github-header.svelte-1c5q26z,.rss-preview-header.svelte-1c5q26z{align-items:center;min-height:44px;display:flex}.rss-preview-header.svelte-1c5q26z{gap:12px}.rss-preview-header.svelte-1c5q26z>span:where(.svelte-1c5q26z):last-child{flex-direction:column;display:flex}.rss-preview-header.svelte-1c5q26z strong:where(.svelte-1c5q26z){color:var(--ink);font-family:var(--font);font-size:16px;font-weight:600;line-height:1.15}.rss-preview-header.svelte-1c5q26z>span:where(.svelte-1c5q26z):last-child>span:where(.svelte-1c5q26z){color:var(--ink-muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.rss-preview-icon.svelte-1c5q26z{width:28px;height:28px;color:var(--preview-accent)}.profile-header.svelte-1c5q26z img:where(.svelte-1c5q26z){border:1px solid color-mix(in srgb, var(--preview-accent) 24%, var(--hairline-strong));object-fit:cover;border-radius:50%;flex:none;width:44px;height:44px;box-shadow:0 3px 10px #1414131f}.profile-identity.svelte-1c5q26z,.github-header.svelte-1c5q26z>span:where(.svelte-1c5q26z):first-child{flex-direction:column;flex:1;min-width:0;margin-left:10px;display:flex}.github-header.svelte-1c5q26z>span:where(.svelte-1c5q26z):first-child{margin-left:0}.profile-identity.svelte-1c5q26z strong:where(.svelte-1c5q26z),.github-header.svelte-1c5q26z strong:where(.svelte-1c5q26z){color:var(--ink);font-family:var(--font);font-size:16px;font-weight:600;line-height:1.15}.profile-identity.svelte-1c5q26z>span:where(.svelte-1c5q26z),.github-header.svelte-1c5q26z>span:where(.svelte-1c5q26z):first-child>span:where(.svelte-1c5q26z){color:var(--ink-muted);font-family:var(--mono);letter-spacing:.05em;font-size:9px}.preview-network-icon.svelte-1c5q26z{width:18px;height:18px;color:var(--preview-accent);-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;flex:none}.profile-bio.svelte-1c5q26z{color:var(--ink-soft);font-family:var(--font);margin:2px 0;font-size:14px;line-height:1.55}.profile-stats.svelte-1c5q26z{border-block:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;font-size:9px;display:grid}.profile-stats.svelte-1c5q26z>span:where(.svelte-1c5q26z){flex-direction:column;gap:1px;padding:8px 0;display:flex}.profile-stats.svelte-1c5q26z>span:where(.svelte-1c5q26z)+span:where(.svelte-1c5q26z){border-left:1px solid var(--hairline);padding-left:12px}.profile-stats.svelte-1c5q26z strong:where(.svelte-1c5q26z){color:var(--ink);font-family:var(--font);font-size:16px;font-weight:600}.profile-stats.svelte-1c5q26z small:where(.svelte-1c5q26z){letter-spacing:.08em;text-transform:uppercase;font-size:8px}.preview-meta.svelte-1c5q26z{border-top:1px solid var(--hairline);color:var(--ink-muted);font-family:var(--mono);letter-spacing:var(--track-nav);text-transform:uppercase;justify-content:space-between;align-items:center;margin-top:0;padding-top:9px;font-size:10px;display:flex}.preview-section-label.svelte-1c5q26z{color:var(--ink-muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:8px;display:flex}.activity-status.svelte-1c5q26z{align-items:center;gap:5px;display:inline-flex}.activity-status.svelte-1c5q26z i:where(.svelte-1c5q26z){background:var(--preview-accent);width:5px;height:5px;box-shadow:0 0 0 3px color-mix(in srgb, var(--preview-accent) 12%, transparent);border-radius:50%}.contribution-grid.svelte-1c5q26z{border-block:1px solid color-mix(in srgb, var(--preview-accent) 12%, var(--hairline));gap:2px;padding:9px 0;display:flex}.contribution-column.svelte-1c5q26z{flex-direction:column;gap:2px;display:flex}.contribution-cell.svelte-1c5q26z{background:var(--surface-muted);border:0;border-radius:1.5px;width:7px;height:7px;display:block}.contribution-cell.level-1.svelte-1c5q26z{background:color-mix(in srgb, var(--preview-accent) 28%, var(--surface-muted))}.contribution-cell.level-2.svelte-1c5q26z{background:color-mix(in srgb, var(--preview-accent) 48%, var(--surface-muted))}.contribution-cell.level-3.svelte-1c5q26z{background:color-mix(in srgb, var(--preview-accent) 70%, var(--surface-muted))}.contribution-cell.level-4.svelte-1c5q26z{background:var(--preview-accent)}.rss-preview-list.svelte-1c5q26z{border-top:1px solid var(--hairline);flex-direction:column;display:flex}.rss-preview-list.svelte-1c5q26z a:where(.svelte-1c5q26z){border-bottom:1px solid var(--hairline);min-height:45px;color:var(--ink);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.rss-preview-list.svelte-1c5q26z a:where(.svelte-1c5q26z):hover,.rss-preview-list.svelte-1c5q26z a:where(.svelte-1c5q26z):focus-visible{background:color-mix(in srgb, var(--preview-accent) 6%, transparent);color:var(--preview-accent)}.rss-preview-list.svelte-1c5q26z a:where(.svelte-1c5q26z)>span:where(.svelte-1c5q26z):first-child{color:var(--ink-muted);font-family:var(--mono);letter-spacing:.04em;font-size:8px}.rss-preview-list.svelte-1c5q26z strong:where(.svelte-1c5q26z){font-family:var(--font);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:1.25;overflow:hidden}.rss-preview-list.svelte-1c5q26z a:where(.svelte-1c5q26z)>span:where(.svelte-1c5q26z):last-child{color:var(--preview-accent);font-size:10px}.social-preview-email.svelte-1c5q26z{--mail-paper:#f5f4ed;--mail-ink:#5e5c56;--mail-red:#b56f6b;--mail-blue:#7898b4;background:radial-gradient(circle at 1px 1px, #68665f0d 0 .55px, transparent .75px) 0 0 / 12px 12px, var(--mail-paper);height:204px;color:var(--mail-ink);border:0;border-radius:7px;padding:0;display:block;position:absolute;overflow:hidden}.social-preview-email.svelte-1c5q26z .preview-action:where(.svelte-1c5q26z){z-index:5;min-height:43px;color:var(--mail-blue);background:#f5f4eddb;border-top-color:#68665f3d;margin:0;padding:0 13px;position:absolute;bottom:4px;left:4px;right:4px}.social-preview-email.svelte-1c5q26z:before{z-index:4;background:repeating-linear-gradient(135deg, var(--mail-red) 0 7px, transparent 7px 14px, var(--mail-blue) 14px 21px, transparent 21px 28px) top / 100% 3px no-repeat, repeating-linear-gradient(135deg, var(--mail-red) 0 7px, transparent 7px 14px, var(--mail-blue) 14px 21px, transparent 21px 28px) bottom / 100% 3px no-repeat, repeating-linear-gradient(45deg, var(--mail-red) 0 7px, transparent 7px 14px, var(--mail-blue) 14px 21px, transparent 21px 28px) left / 3px 100% no-repeat, repeating-linear-gradient(45deg, var(--mail-red) 0 7px, transparent 7px 14px, var(--mail-blue) 14px 21px, transparent 21px 28px) right / 4px 100% no-repeat;content:"";opacity:.66;pointer-events:none;position:absolute;inset:0}.envelope-flap.svelte-1c5q26z{z-index:0;clip-path:polygon(0 100%,0 66%,50% 19%,100% 66%,100% 100%);filter:drop-shadow(0 -1px #68665f3d);background:#68665f06;height:62%;position:absolute;inset:auto 0 0}.envelope-return.svelte-1c5q26z{z-index:1;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:8px;line-height:1.45;position:absolute;top:19px;left:19px}.envelope-return.svelte-1c5q26z>span:where(.svelte-1c5q26z),.envelope-address-label.svelte-1c5q26z{letter-spacing:.16em;opacity:.68;margin-bottom:3px;font-size:6px;display:block}.envelope-stamps.svelte-1c5q26z{z-index:2;grid-template-columns:45px 34px;gap:4px;display:grid;position:absolute;top:13px;right:15px}.envelope-stamp.svelte-1c5q26z{border:3px dotted var(--mail-paper);font-family:var(--mono);flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;box-shadow:0 0 0 1px #68665f5c}.envelope-stamp-portrait.svelte-1c5q26z{background:#b56f6b1c;height:55px;transform:rotate(1.5deg)}.envelope-stamp-portrait.svelte-1c5q26z img:where(.svelte-1c5q26z){object-fit:cover;filter:grayscale()contrast(1.08);width:30px;height:30px}.envelope-stamp-portrait.svelte-1c5q26z span:where(.svelte-1c5q26z),.envelope-stamp-mark.svelte-1c5q26z>span:where(.svelte-1c5q26z):last-child{letter-spacing:.06em;margin-top:3px;font-size:5px}.envelope-stamp-mark.svelte-1c5q26z{background:#7898b41a;height:44px;margin-top:5px;transform:rotate(-3deg)}.envelope-stamp-star.svelte-1c5q26z{color:#7898b4e6;font-size:16px}.envelope-postmark.svelte-1c5q26z{z-index:3;opacity:.72;border:1px solid #68665f94;border-radius:50%;width:34px;height:34px;position:absolute;top:25px;right:67px;transform:rotate(-8deg)}.envelope-postmark.svelte-1c5q26z:before{content:"26 JUL";font-family:var(--mono);letter-spacing:.04em;place-items:center;font-size:5px;display:grid;position:absolute;inset:0}.envelope-postmark.svelte-1c5q26z:after{content:"";background:repeating-linear-gradient(#68665f94 0 1px,#0000 1px 5px);width:44px;height:16px;position:absolute;top:8px;left:26px}.envelope-address.svelte-1c5q26z{z-index:2;font-family:var(--mono);white-space:nowrap;line-height:1.25;position:absolute;top:94px;left:42px}.envelope-address-value.svelte-1c5q26z{color:var(--mail-ink);letter-spacing:.045em;align-items:baseline;font-size:13px;display:inline-flex}@media (hover:hover) and (pointer:fine){.social-item.svelte-1c5q26z:hover .social-preview:where(.svelte-1c5q26z){opacity:1;pointer-events:auto;visibility:visible;transition-delay:80ms,80ms,80ms;transform:translate(-50%)scale(1)}}@media (width<=600px){.social-preview.svelte-1c5q26z{width:min(272px,100vw - 32px)}.social-item.svelte-1c5q26z:first-child .social-preview:where(.svelte-1c5q26z){transform-origin:0 100%;left:0;transform:translateY(4px)scale(.95)}.social-item:first-child[data-preview-open].svelte-1c5q26z .social-preview:where(.svelte-1c5q26z),.social-item.svelte-1c5q26z:first-child:focus-within .social-preview:where(.svelte-1c5q26z){transform:translate(0)scale(1)}.social-item-rss.svelte-1c5q26z .social-preview:where(.svelte-1c5q26z){transform-origin:100% 100%;left:auto;right:0;transform:translateY(4px)scale(.95)}.social-item-rss[data-preview-open].svelte-1c5q26z .social-preview:where(.svelte-1c5q26z),.social-item-rss.svelte-1c5q26z:focus-within .social-preview:where(.svelte-1c5q26z){transform:translate(0)scale(1)}}@media (hover:hover) and (pointer:fine) and (width<=600px){.social-item.svelte-1c5q26z:first-child:hover .social-preview:where(.svelte-1c5q26z),.social-item-rss.svelte-1c5q26z:hover .social-preview:where(.svelte-1c5q26z){transform:translate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.social-link-icon-mono.svelte-1c5q26z,.social-link-icon-color.svelte-1c5q26z{transition:opacity var(--duration-fast) var(--ease-out);transform:none}.social-preview.svelte-1c5q26z{transition:opacity var(--duration-fast) var(--ease-out), visibility 0s linear var(--duration-fast);transform:translate(-50%)scale(1)}.contribution-cell.svelte-1c5q26z{transform:none}}@media (prefers-reduced-motion:reduce) and (width<=600px){.social-item.svelte-1c5q26z:first-child .social-preview:where(.svelte-1c5q26z),.social-item-rss.svelte-1c5q26z .social-preview:where(.svelte-1c5q26z){transform:translate(0)scale(1)}}
