*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{min-height:100vh;font-size:var(--font-size-body);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;overflow-x:clip}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{padding:0;list-style:none}:root{--white:#fff;--sage-1:#fbfdfc;--sage-2:#f7f9f8;--sage-3:#eef1f0;--sage-4:#e6e9e8;--sage-5:#dfe2e0;--sage-6:#d7dad9;--sage-7:#cbcfcd;--sage-8:#b8bcba;--sage-9:#868e8b;--sage-10:#7c8481;--sage-11:#5f6563;--sage-12:#1a211e;--color-background:var(--sage-1);--color-surface:var(--white);--color-text:var(--sage-12);--color-text-muted:var(--sage-10);--color-text-strong:var(--sage-12);--color-link:var(--sage-12);--color-link-border:var(--sage-9);--color-border:var(--sage-6);--color-border-strong:var(--sage-7);--color-shadow:var(--sage-12);--color-highlight:#fdfd96;--paragraph-indent:4ch;--link-preview-width:17.5rem;--font-size-base:1rem;--font-size-sm:.95rem;--font-size-letter:var(--font-size-card);--font-size-body:var(--font-size-base);--font-size-caption:calc(var(--font-size-base) * .95);--font-weight-regular:400;--font-weight-medium:500;--line-height-base:1.5;--line-height-letter:1.5;--line-height-tight:1.45;--line-height-snug:1.35;--letter-spacing-normal:0;--letter-spacing-wide:.01em;--font-family-display:"EB Garamond", serif;--font-family-letter:"Geist Mono", monospace;--font-optical-sizing:auto;--card-aspect-ratio:1.75;--card-width:min(32vw, 26rem);--font-size-card:.75rem;--font-size-card-name:calc(var(--font-size-card) * 1.2);--content-width:56.05rem;--content-padding-x:clamp(1.25rem, 4vw, 2.25rem);--content-padding-y:clamp(2rem, 4vw, 4rem);--letter-padding-top:clamp(3.5rem, 12vw, 6rem);--letter-padding-x:clamp(2rem, 7vw, 7rem);--letter-padding-bottom:clamp(2.5rem, 6vw, 4rem);--breakpoint-lg:991px;--layout-max-width:120rem;--page-padding:clamp(1.25rem, 4vw, 2.5rem);--sidebar-inset-inline:calc(max((100vw - var(--layout-max-width)) / 2, 0px) + var(--page-padding))}.eb-garamond{font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);font-weight:var(--font-weight-regular);font-style:normal}a{color:var(--color-link);border-bottom:1px dotted var(--color-link-border);text-decoration:none;transition:color .15s,border-color .15s}a:hover{color:var(--color-link);border-bottom:1px solid var(--color-text)}::selection{background-color:var(--color-highlight);color:var(--color-text-strong)}::selection{background-color:var(--color-highlight);color:var(--color-text-strong)}.link-preview{overflow-wrap:anywhere;position:relative}.link-preview__tooltip{z-index:20;width:min(var(--link-preview-width), calc(100vw - 2rem));background-color:var(--white);max-width:calc(100vw - 2rem);box-shadow:0 2px 8px color-mix(in srgb, var(--color-shadow) 8%, transparent);color:var(--color-text);text-align:left;text-indent:0;visibility:hidden;pointer-events:none;border-bottom:none;border-radius:0;flex-direction:column;align-items:flex-start;padding:.375rem;text-decoration:none;transition:visibility .15s,transform .15s;display:flex;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)translateY(.25rem)}.link-preview__image{aspect-ratio:1200/630;object-fit:cover;width:100%;height:auto;display:block}.link-preview__title{width:100%;font-size:var(--font-size-caption);line-height:var(--line-height-snug);text-indent:0;color:var(--color-text);margin-top:.375rem;padding-inline:0;font-style:normal;display:block}.link-preview__title:empty{display:none}@media (hover:hover){.link-preview:hover .link-preview__tooltip,.link-preview:focus-visible .link-preview__tooltip{visibility:visible;transform:translate(-50%)translateY(0)}}.page{z-index:1;width:100%;max-width:100%;min-height:100vh;padding:var(--page-padding);position:relative;overflow-x:clip}.layout{width:100%;min-width:0;max-width:var(--layout-max-width);grid-template-columns:minmax(0,1fr);gap:clamp(1.25rem,3vw,2rem);margin-inline:auto;display:grid}@media (width>=991px){.layout{grid-template-columns:var(--card-width) minmax(0, 1fr);align-items:start;gap:clamp(1.5rem,3vw,3rem)}}.sidebar{width:100%;min-width:0;max-width:100%;font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);font-weight:var(--font-weight-regular);font-style:normal}@media (width>=991px){.sidebar{width:var(--card-width);align-self:start}.sidebar .card-scene{z-index:2;top:var(--page-padding);left:var(--sidebar-inset-inline);width:var(--card-width);max-width:calc(100vw - 2 * var(--page-padding));position:fixed}}.card-scene{width:100%;aspect-ratio:var(--card-aspect-ratio)}.card-flipper{width:100%;height:100%;transform-style:preserve-3d;position:relative}@media (width>=991px){.card-scene{perspective:1200px}.card-flipper{transition:transform .65s cubic-bezier(.4,.2,.2,1)}.card-scene.is-flipped .card-flipper{transform:rotateY(180deg)}.card__face--front,.card__face--back{cursor:col-resize}}@media (prefers-reduced-motion:reduce){.card-flipper{transition:none}}.card__face{backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.card__face--back{transform:rotateY(180deg)}.card__back-message{font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);font-size:var(--font-size-card);font-style:italic;line-height:var(--line-height-snug);color:var(--color-text-muted);margin:0}.card{background-color:var(--color-surface);width:100%;height:100%;box-shadow:0 1px 2px color-mix(in srgb, var(--color-shadow) 1%, transparent), 0 6px 18px color-mix(in srgb, var(--color-shadow) 2%, transparent), 0 20px 40px color-mix(in srgb, var(--color-shadow) 3%, transparent);font-size:var(--font-size-card);line-height:var(--line-height-snug);color:var(--color-text);grid-template-rows:auto 1fr auto;grid-template-columns:1fr 1fr;gap:.5rem;padding:clamp(1rem,3.5vw,1.5rem) clamp(1rem,3.5vw,1.625rem);display:grid}.card.card__face--back{justify-content:center;align-items:center;display:flex}.card__top-left,.card__top-right{z-index:1;flex-direction:column;gap:.15em;min-width:0;display:flex}.card__top-left{grid-area:1/1;place-self:start;align-items:flex-start}.card__top-right{text-align:right;grid-area:1/2;place-self:start end;align-items:flex-end}.card__social{margin:0}.card__center{z-index:0;text-align:center;pointer-events:none;flex-direction:column;grid-area:2/1/auto/-1;justify-content:center;align-items:center;gap:.15em;padding-inline:.5rem;display:flex}.card__name{font-variant:small-caps;font-size:var(--font-size-card-name);font-weight:var(--font-weight-regular);letter-spacing:.04em;color:var(--color-text)}.card__role,.card__tagline{color:var(--color-text-muted)}.card__footer{text-align:center;color:var(--color-text-muted);grid-area:3/1/auto/-1;align-self:end;margin:0;font-style:italic}.card__link{z-index:1;overflow-wrap:anywhere;cursor:pointer;width:fit-content;max-width:100%;display:inline-block;position:relative}.main{width:100%;min-width:0;max-width:100%}.content{width:100%;min-width:0;max-width:min(var(--content-width), 100%);flex-direction:column;gap:clamp(1.25rem,3vw,2rem);display:flex}.paper{overflow-wrap:break-word;background-color:var(--color-surface);width:100%;min-width:0;box-shadow:0 1px 2px color-mix(in srgb, var(--color-shadow) 2%, transparent), 0 6px 18px color-mix(in srgb, var(--color-shadow) 2%, transparent), 0 20px 40px color-mix(in srgb, var(--color-shadow) 2%, transparent);padding:var(--content-padding-y) var(--content-padding-x)}.paper--letter{padding-top:var(--letter-padding-top);padding-bottom:var(--letter-padding-bottom);padding-inline:var(--letter-padding-x);font-family:var(--font-family-letter);font-size:var(--font-size-letter);line-height:var(--line-height-letter);color:var(--color-text)}.main .letter-body{min-height:4rem}.main .letter-body>p:first-child{font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);font-weight:var(--font-weight-regular);font-style:normal;font-size:calc(var(--font-size-letter) * 1.05);color:var(--color-text);margin-bottom:1.5rem;font-style:italic}.main .letter-body p{overflow-wrap:break-word;margin-bottom:1.25rem}.main .letter-body p:last-child{margin-bottom:0}.main .indent-first-line{text-indent:var(--paragraph-indent)}.main .article-title{font-style:italic}.contact__layout{grid-template-columns:1fr;gap:clamp(1.5rem,4vw,2.5rem);display:grid}@media (width>=991px){.contact__layout{grid-template-columns:3fr 7fr;align-items:start}}.contact__intro{font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);line-height:var(--line-height-base);overflow-wrap:break-word;min-width:0}.contact__heading{font-weight:var(--font-weight-regular);color:var(--color-text);margin-bottom:.75rem}.contact__intro p+p{margin-top:.75rem}.contact__form{flex-direction:column;gap:1rem;min-width:0;display:flex}.contact__fields{flex-direction:column;gap:1rem;display:flex}.contact__status{font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);line-height:var(--line-height-base);color:var(--color-text)}.contact__status--success{margin:0}.contact__status--error{color:var(--color-text-strong);margin:0}.contact__field{flex-direction:column;gap:.375rem;display:flex}.contact__label{font-size:var(--font-size-body);line-height:var(--line-height-snug);color:var(--color-text)}.contact__input{border:1px solid var(--color-border);background-color:var(--color-surface);width:100%;min-width:0;max-width:100%;color:var(--color-text);border-radius:0;padding:.625rem .75rem}.contact__input::placeholder{color:var(--color-text-muted)}.contact__input:focus{outline:2px solid var(--color-border-strong);outline-offset:0}.contact__textarea{resize:vertical;min-height:9rem}.contact__submit{background-color:var(--sage-11);color:var(--sage-1);font-family:var(--font-family-display);font-optical-sizing:var(--font-optical-sizing);font-size:var(--font-size-body);line-height:var(--line-height-snug);cursor:pointer;border:none;border-radius:9999px;align-self:flex-start;margin-top:.25rem;padding:.625rem 1.5rem;transition:opacity .15s}.contact__submit:hover{opacity:.88}.contact__submit:disabled{opacity:.65;cursor:wait}.contact__submit:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}
