.mobile-menu{display:contents}.mobile-menu__trigger{block-size:44px;inline-size:44px;color:var(--ink);cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;margin-inline-start:-8px;display:none}.mobile-menu__bars{block-size:14px;inline-size:22px;display:block;position:relative}.mobile-menu__bars span{background:currentColor;border-radius:2px;block-size:2px;transition:transform .24s cubic-bezier(.7,0,.2,1),opacity .16s;position:absolute;inset-inline:0}.mobile-menu__bars span:first-child{inset-block-start:0}.mobile-menu__bars span:nth-child(2){inset-block-start:6px}.mobile-menu__bars span:nth-child(3){inset-block-start:12px}.mobile-menu__bars.is-open span:first-child{transform:translateY(6px)rotate(45deg)}.mobile-menu__bars.is-open span:nth-child(2){opacity:0}.mobile-menu__bars.is-open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.mobile-menu__overlay{z-index:1000;pointer-events:none;position:fixed;inset:0}.mobile-menu__backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(2px);pointer-events:auto;position:fixed;inset:0}.mobile-menu__panel{background:var(--paper-3,var(--paper));border-inline-end:1px solid var(--rule-strong);inline-size:min(82vw,360px);max-inline-size:100vw;box-shadow:var(--shadow-lg,0 18px 48px #0000004d);-webkit-overflow-scrolling:touch;pointer-events:auto;flex-direction:column;padding:clamp(64px,12vh,96px) clamp(20px,6vw,32px) 28px;display:flex;position:fixed;inset-block:0;inset-inline-start:0;overflow-y:auto}.mobile-menu__close{block-size:44px;inline-size:44px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;font-size:26px;line-height:1;transition:color .16s,background .16s;display:inline-flex;position:absolute;inset-block-start:14px;inset-inline-end:14px}.mobile-menu__close:hover{color:var(--ink);background:rgba(var(--ink-rgb,26, 22, 18), .06)}.mobile-menu__nav{flex-direction:column;gap:2px;display:flex}.mobile-menu__item{inline-size:100%;color:var(--ink);cursor:pointer;text-align:start;background:0 0;border:0;border-radius:10px;grid-template-columns:auto 1fr;grid-template-areas:"num label""num tag";align-items:baseline;column-gap:14px;padding:16px 12px;text-decoration:none;transition:background .18s;display:grid}.mobile-menu__item:hover{background:rgba(var(--ink-rgb,26, 22, 18), .05)}.mobile-menu__item.is-active,.mobile-menu__item--link.active{background:rgba(var(--ink-rgb,26, 22, 18), .07)}.mobile-menu__item--project{--tile-accent:var(--tile-accent-light);background:rgba(var(--ink-rgb,26, 22, 18), .03);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 8%, transparent)}.mobile-menu__item--project:hover{background:rgba(var(--ink-rgb,26, 22, 18), .05);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 14%, transparent)}.mobile-menu__item--project.is-active{background:rgba(var(--ink-rgb,26, 22, 18), .07);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 18%, transparent)}:root[data-theme=dark] .mobile-menu__item--project{--tile-accent:var(--tile-accent-dark,var(--tile-accent-light));background:rgba(var(--ink-rgb,26, 22, 18), .06);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 14%, transparent)}:root[data-theme=dark] .mobile-menu__item--project:hover{background:rgba(var(--ink-rgb,26, 22, 18), .09);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 20%, transparent)}:root[data-theme=dark] .mobile-menu__item--project.is-active{background:rgba(var(--ink-rgb,26, 22, 18), .12);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 26%, transparent)}.mobile-menu__num{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-3);grid-area:num;align-self:center;font-size:12px}.mobile-menu__label{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);grid-area:label;font-size:clamp(24px,7vw,32px);font-style:italic;font-weight:350;line-height:1.04}.mobile-menu__tag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);grid-area:tag;margin-block-start:4px;font-size:10px}.mobile-menu__item.is-active .mobile-menu__num,.mobile-menu__item--link.active .mobile-menu__num{color:var(--ink)}@media (width<=760px){.mobile-menu__trigger{display:inline-flex}.dock{display:none!important}:root{--dock-h:0px!important}}.theme-toggle{block-size:40px;inline-size:40px;color:var(--ink);cursor:pointer;pointer-events:auto;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;transition:background .18s,transform .18s,color .22s;display:inline-flex}.theme-toggle--armed{color:#2f6bd8}:root[data-theme=dark] .theme-toggle--armed{color:#7ba6ff}.theme-toggle:hover{background:rgba(var(--ink-rgb), .07)}.theme-toggle:active{transform:scale(.94)}.theme-toggle__icon{transition:transform .26s cubic-bezier(.7,0,.2,1);display:inline-flex}.theme-toggle:hover .theme-toggle__icon{transform:rotate(12deg)}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle__icon{transition:none}.theme-toggle:hover .theme-toggle__icon{transform:none}}.topnav{z-index:10;pointer-events:none;padding:14px clamp(16px,4vw,48px);position:fixed;inset-block-start:0;inset-inline:0}.topnav__inner{pointer-events:auto;justify-content:space-between;align-items:center;gap:12px;display:flex}.topnav__left{align-items:center;gap:10px;display:inline-flex}.topnav__right{align-items:center;gap:8px;display:inline-flex}.topnav__brand{color:var(--ink);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.topnav__brand--armable{touch-action:none}.topnav__vault{font-family:var(--serif);color:var(--ink-2);border-radius:8px;padding:6px 10px;font-size:14px;font-style:italic;text-decoration:none;animation:.42s both vault-entry-in}.topnav__vault:hover{color:var(--ink);background:rgba(var(--ink-rgb), .07)}@keyframes vault-entry-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.topnav__vault{animation:none}}.topnav__mark{background:var(--ink);block-size:28px;inline-size:28px;color:var(--paper);font-family:var(--serif);font-variation-settings:"opsz" 24, "SOFT" 60;border-radius:50%;place-items:center;padding-block-end:1px;padding-inline-end:1px;font-size:15px;font-style:italic;display:grid}.topnav__brand-text{font-family:var(--serif);letter-spacing:-.01em;font-variation-settings:"opsz" 24, "SOFT" 50;font-size:20px;font-style:italic}@media (width<=540px){.topnav{padding:10px 14px}.topnav__brand-text{display:none}}.dock{z-index:10;block-size:var(--dock-h);background:var(--dock-bg);-webkit-backdrop-filter:blur(20px)saturate(140%);border-block-start:1px solid var(--rule);position:fixed;inset-block-end:0;inset-inline:0}.dock__inner{align-items:stretch;block-size:100%;display:flex}.dock__item{text-align:start;border:0;border-inline-start:1px solid var(--rule);min-inline-size:0;color:inherit;cursor:pointer;background:0 0;border-radius:0;flex-direction:column;flex:1 1 0;justify-content:space-between;align-items:flex-start;padding:18px clamp(14px,1.8vw,28px);transition:background .24s cubic-bezier(.7,0,.2,1);display:flex;position:relative;overflow:hidden}.dock__item:first-child{border-inline-start:0}.dock__item:before{content:"";background:rgba(var(--ink-rgb), .04);opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.dock__item:hover:before{opacity:1}.dock__item--link.active,.dock__item--project.is-active{background:rgba(var(--ink-rgb), .05)}.dock__item--link.active:after,.dock__item--project.is-active:after{content:"";background:var(--ink);block-size:2px;position:absolute;inset-block-start:0;inset-inline:0}.dock__item--project{--tile-accent:var(--tile-accent-light);background:rgba(var(--ink-rgb), .04);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 8%, transparent)}:root[data-theme=dark] .dock__item--project{--tile-accent:var(--tile-accent-dark,var(--tile-accent-light));background:rgba(var(--ink-rgb), .08);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 15%, transparent)}:root[data-theme=dark] .dock__item--project:hover{background:rgba(var(--ink-rgb), .12);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 22%, transparent)}:root[data-theme=dark] .dock__item--project.is-active{background:rgba(var(--ink-rgb), .16);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 30%, transparent)}.dock__item--project:hover{background:rgba(var(--ink-rgb), .08);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 16%, transparent)}.dock__item--project.is-active{background:rgba(var(--ink-rgb), .1);background:color-mix(in srgb, var(--tile-accent,var(--ink)) 26%, transparent)}.dock__item--project:before{display:none}.dock__item--project.is-active:after{background:var(--tile-accent,var(--ink))}.dock__item--project.is-active .dock__title{color:var(--tile-accent,var(--ink))}.dock__num{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:12px;transition:color .24s}.dock__item--link.active .dock__num,.dock__item--project.is-active .dock__num{color:var(--ink)}.dock__title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink-2);font-variation-settings:"opsz" 36, "SOFT" 50;white-space:nowrap;text-overflow:ellipsis;max-inline-size:100%;margin-block:6px 0;font-size:clamp(16px,1.6vw,26px);font-style:italic;font-weight:350;line-height:1.04;transition:color .24s;overflow:hidden}.dock__item--link.active .dock__title,.dock__item--project.is-active .dock__title{color:var(--ink)}.dock__meta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.single{--project-accent:var(--project-accent-light);block-size:100svh;inline-size:100%;color:var(--ink);background:var(--paper);isolation:isolate;grid-template-columns:minmax(0,1fr);grid-template-rows:72px minmax(0, 1fr) var(--dock-h);display:grid;position:relative;overflow:hidden}:root[data-theme=dark] .single{--project-accent:var(--project-accent-dark,var(--project-accent-light))}@media (width>=900px){.single{grid-template-rows:88px minmax(0, 1fr) var(--dock-h)}}.single__stage{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.single__snap{inset:72px 0 var(--dock-h) 37%;z-index:2;will-change:transform, opacity;position:absolute;-webkit-mask-image:linear-gradient(90deg,#0000 0% 9%,#000 53% 100%);mask-image:linear-gradient(90deg,#0000 0% 9%,#000 53% 100%)}@media (width>=900px){.single__snap{inset:88px 0 var(--dock-h) 37%}}.single__snap>[data-test=app-snapshot],.single__snap svg{width:100%;height:100%;display:block}.single__scrim{z-index:1;pointer-events:none;background:var(--paper);opacity:1;transition:background .9s cubic-bezier(.65,0,.2,1);position:absolute;inset:0}.single__scrim--project{background:linear-gradient(115deg, var(--project-accent) 0%, transparent 55%), radial-gradient(75% 70% at 0% 100%, var(--project-accent) 0%, transparent 60%), radial-gradient(60% 65% at 100% 100%, var(--project-accent) 0%, transparent 55%), var(--paper);opacity:.6}.single__grain{z-index:3;pointer-events:none;opacity:.025;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.single__nav-spacer{grid-row:1}.single__hero{z-index:3;grid-row:2;grid-template-rows:minmax(0,1fr) auto;gap:16px;min-block-size:0;padding:16px clamp(20px,5vw,64px) 12px;display:grid;position:relative}.single__featured{flex-direction:column;justify-content:center;min-block-size:0;display:flex}.single__title{color:var(--ink);font-family:var(--serif);letter-spacing:-.035em;font-variation-settings:"opsz" 144, "SOFT" 40;max-inline-size:7em;margin:0;font-size:clamp(48px,9.5vw,156px);font-style:italic;font-weight:350;line-height:.92}.single__title--brand{max-inline-size:none;margin-block-start:8px;font-size:clamp(80px,16vw,240px)}.single__overview-lead{max-inline-size:50ch;font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-2);font-variation-settings:"opsz" 30, "SOFT" 50;margin:24px 0 0;font-size:clamp(17px,1.5vw,22px);font-weight:350;line-height:1.45}.single__project-desc{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-2);font-variation-settings:"opsz" 30, "SOFT" 50;max-inline-size:38ch;margin:24px 0 0;font-size:clamp(17px,1.5vw,22px);font-weight:350;line-height:1.45}.single__bottom{flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:14px;padding-block-end:4px;display:flex}.single__cta{background:var(--cta-bg);color:var(--cta-fg);font-family:var(--sans);letter-spacing:.005em;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:10px;padding:14px 22px 14px 26px;font-size:14px;font-weight:500;text-decoration:none;transition:transform .28s cubic-bezier(.7,0,.2,1),background .28s;display:inline-flex}.single__cta:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.single__cta-arrow{font-family:var(--sans);font-size:15px;transition:transform .28s cubic-bezier(.7,0,.2,1);display:inline-block}.single__cta:hover .single__cta-arrow{transform:translate(2px,-2px)}.single__cta--visit{background:rgba(var(--ink-rgb), .04);color:var(--ink);border:1px solid rgba(var(--ink-rgb), .36);background:color-mix(in srgb, var(--project-accent,var(--ink)) 9%, var(--paper));border-color:color-mix(in srgb, var(--project-accent,var(--ink)) 55%, var(--paper));box-shadow:0 1px 2px #1a16121a,0 6px 16px #1a16120f;box-shadow:0 1px 2px color-mix(in srgb, var(--project-accent,var(--ink)) 24%, transparent), 0 8px 22px color-mix(in srgb, var(--project-accent,var(--ink)) 14%, transparent);transition:transform .22s cubic-bezier(.7,0,.2,1),color .22s,border-color .22s,background .22s,box-shadow .22s}.single__cta--visit:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-1px);box-shadow:0 4px 14px #1a161238}.single__cta--visit:hover .single__cta-arrow{transform:translate(2px,-2px)}.single__cta--visit:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.single__cta--visit:active{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(1px);box-shadow:0 1px 3px #1a161233}@media (prefers-reduced-motion:reduce){.single__cta--visit{transition:none}.single__cta--visit:hover{transform:none}}@media (width<=760px){.single{grid-template-rows:56px minmax(0, 1fr) var(--dock-h)}.single__hero{gap:12px;padding:4px 20px 12px}.single__featured{justify-content:flex-start;padding-block-start:clamp(8px,7vh,64px)}.single__title{font-size:clamp(44px,13vw,80px)}.single__bottom{flex-direction:column;align-items:stretch;gap:14px;padding-block-end:2px}.single__cta{align-self:flex-start;padding:13px 20px 13px 22px;font-size:13px}.single__snap{inset:47% 0 var(--dock-h) 0;-webkit-mask-image:linear-gradient(#0000 0%,#000 56% 100%);mask-image:linear-gradient(#0000 0%,#000 56% 100%)}}@media (width<=400px){.single__title{font-size:clamp(40px,14vw,60px)}}@media (height<=480px){.single{grid-template-rows:48px minmax(0, 1fr) var(--dock-h)}.single__hero{gap:8px;padding-block:8px}.single__title{font-size:clamp(40px,9vw,64px)}.single__title--brand{margin-block-start:0;font-size:clamp(48px,11vw,96px)}.single__overview-lead,.single__project-desc{margin-top:8px;font-size:14px;line-height:1.35}}.about{background:var(--paper);block-size:100svh;inline-size:100%;color:var(--ink);isolation:isolate;position:relative;overflow:hidden}.about__bg{z-index:0;pointer-events:none;background:radial-gradient(50% 50% at 80% 12%,#a44a2c1f,#0000 70%),radial-gradient(60% 60% at 10% 92%,#4a3e6a1a,#0000 70%);position:absolute;inset:0}.about__grain{z-index:1;pointer-events:none;opacity:.025;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.about__main{z-index:2;block-size:calc(100% - var(--dock-h));flex-direction:column;justify-content:flex-start;gap:clamp(18px,3vh,36px);max-inline-size:1280px;margin-inline:auto;padding:clamp(100px,18vh,220px) clamp(20px,6vw,96px) 40px;display:flex;position:relative;overflow-y:auto}.about__hero{align-items:center;gap:clamp(16px,2.5vw,48px);display:flex}.about__hero-text{flex-direction:column;flex:0 auto;gap:clamp(18px,3vh,36px);min-inline-size:0;display:flex}.about__mark-wrap{flex:1 1 0;justify-content:center;align-items:center;min-inline-size:clamp(150px,15vw,240px);display:flex}.about__mark{aspect-ratio:1;inline-size:clamp(150px,15vw,240px);color:var(--ink);-webkit-user-select:none;user-select:none;background-color:currentColor;display:block;-webkit-mask:url(/logo-lines.png) 50%/contain no-repeat;mask:url(/logo-lines.png) 50%/contain no-repeat}.about__title{font-family:var(--serif);letter-spacing:-.03em;font-variation-settings:"opsz" 96, "SOFT" 40;max-inline-size:18ch;color:var(--ink);margin:0;font-size:clamp(32px,4.6vw,64px);font-style:italic;font-weight:350;line-height:1.04}.about__lead{font-family:var(--serif);color:var(--ink-2);max-inline-size:60ch;margin:0;font-size:clamp(15px,1.35vw,18px);font-weight:350;line-height:1.45}.about__cols{border-block-start:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,56px);padding-block-start:clamp(14px,2.5vh,28px);display:grid}.about__col-h{color:var(--ink-3);margin-block-end:12px;display:block}.about__list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.about__list li,.about__line{font-family:var(--serif);color:var(--ink);font-variation-settings:"opsz" 30, "SOFT" 50;margin:0;font-size:clamp(14px,1.1vw,17px);font-style:italic;font-weight:350;line-height:1.36}.about__muted{color:var(--ink-3);margin-block-start:2px}@media (width<=760px){.about__main{block-size:calc(100% - var(--dock-h));justify-content:flex-start;gap:18px;padding:72px 20px 28px;padding-block-start:72px;overflow-y:auto}.about__mark{display:none}.about__title{font-size:clamp(32px,9vw,48px)}.about__lead{font-size:15px}.about__cols{grid-template-columns:1fr;gap:16px;padding-block-start:14px}.about__col-h{margin-block-end:8px}.about__list li,.about__line{font-size:16px}}.contact{background:var(--paper);block-size:100svh;inline-size:100%;color:var(--ink);isolation:isolate;position:relative;overflow:hidden}.contact__bg{z-index:0;pointer-events:none;background:radial-gradient(46% 46% at 88% 8%,#a44a2c14,#0000 70%),radial-gradient(56% 56% at 6% 96%,#3a5e440f,#0000 70%);position:absolute;inset:0}.contact__grain{z-index:1;pointer-events:none;opacity:.02;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.contact__main{z-index:2;block-size:100%;padding:80px clamp(20px, 5vw, 64px) calc(28px + var(--dock-h));place-items:safe center;display:grid;position:relative;overflow-y:auto}.contact__card{flex-direction:column;gap:clamp(20px,3vh,32px);inline-size:100%;max-inline-size:640px;display:flex}.contact__head{flex-direction:column;gap:8px;display:flex}.contact__eyebrow{color:var(--ink-3)}.contact__heading{font-family:var(--serif);letter-spacing:-.03em;font-variation-settings:"opsz" 96, "SOFT" 40;max-inline-size:18ch;color:var(--ink);margin:0;font-size:clamp(32px,4.4vw,56px);font-style:italic;font-weight:350;line-height:1.02}.contact__lead{font-family:var(--serif);color:var(--ink-2);max-inline-size:50ch;margin:4px 0 0;font-size:clamp(15px,1.2vw,18px);font-weight:350;line-height:1.42}.contact__form{flex-direction:column;gap:14px;min-inline-size:0;display:flex}.contact__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.contact__field{flex-direction:column;gap:6px;min-inline-size:0;display:flex}.contact__label{font-family:var(--sans);letter-spacing:.01em;color:var(--ink-2);font-size:12px;font-weight:500}.contact__label-hint{color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:400}.contact__counter{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);text-align:end;font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:11px;transition:color .2s}.contact__counter.near-cap{color:var(--warn)}.contact__counter.at-cap{color:var(--danger)}.contact__counter-used{font-weight:500}.contact__counter-sep{opacity:.45;margin:0 4px}.contact__input{inline-size:100%;font-family:var(--sans);color:var(--ink);background:var(--field-bg);border:1px solid var(--rule);appearance:none;border-radius:10px;min-inline-size:0;padding:11px 14px;font-size:16px;line-height:1.45;transition:border-color .18s,box-shadow .18s,background .18s;display:block}.contact__input::placeholder{color:var(--ink-3);opacity:1}.contact__input:hover{border-color:rgba(var(--ink-rgb), .22)}.contact__input:focus{background:var(--field-bg-focus);border-color:var(--ink);box-shadow:0 0 0 3px rgba(var(--ink-rgb), .08);outline:none}textarea.contact__input{resize:none;block-size:clamp(96px,14vh,140px);font-family:var(--sans)}.contact__field.is-invalid .contact__input{border-color:var(--danger-strong)}.contact__field.is-invalid .contact__input:focus{box-shadow:0 0 0 3px var(--danger-ring)}.contact__error{font-family:var(--sans);color:var(--danger);margin:0;font-size:12px;line-height:1.3}.contact__honey{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact__actions{border-block-start:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-block-start:4px;padding-block-start:14px;display:flex}.contact__privacy{font-family:var(--sans);color:var(--ink-3);text-align:end;max-inline-size:32ch;margin:0;font-size:12px;line-height:1.4}.contact__submit{background:var(--cta-bg);color:var(--cta-fg);font-family:var(--sans);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:10px;padding:12px 22px 12px 26px;font-size:14px;font-weight:500;text-decoration:none;transition:transform .22s cubic-bezier(.7,0,.2,1),background .22s,box-shadow .22s;display:inline-flex;box-shadow:0 1px 2px #1a16122e,0 6px 18px #1a16121f}.contact__submit:hover:not(:disabled){background:var(--cta-bg-hover);transform:translateY(-1px);box-shadow:0 2px 4px #1a161238,0 10px 24px #1a16122e}.contact__submit:disabled{opacity:.55;cursor:not-allowed}.contact__submit-arrow{font-size:15px;transition:transform .22s cubic-bezier(.7,0,.2,1)}.contact__submit:hover:not(:disabled) .contact__submit-arrow{transform:translate(2px,-2px)}.contact__fallback{font-family:var(--sans);color:var(--ink-3);cursor:pointer;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);background:0 0;border:0;padding:0;font-size:13px;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}.contact__fallback:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.contact__panel{background:var(--panel-bg);border:1px solid var(--rule-strong);border-radius:14px;padding:28px 32px}.contact__panel--success{background:var(--success-bg);border-color:var(--success-border)}.contact__panel--error{background:var(--danger-bg);border-color:var(--danger-border)}.contact__panel-h{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 8px;font-size:clamp(24px,2.4vw,32px);font-style:italic;font-weight:350;line-height:1.1}.contact__panel-p{font-family:var(--serif);color:var(--ink-2);max-inline-size:50ch;margin:0;font-size:16px;font-weight:350;line-height:1.45}.contact__panel-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-block-start:18px;display:flex}.contact__panel-p--wait{font-family:var(--sans);color:var(--ink-3);margin-block-start:8px;font-size:13px}.contact__submit--quiet{color:var(--ink);border:1px solid var(--rule-strong);box-shadow:none;background:0 0}.contact__submit--quiet:hover:not(:disabled){background:rgba(var(--ink-rgb,26, 22, 18), .05);color:var(--ink);box-shadow:none}@media (width<=640px){.contact{block-size:auto;min-block-size:100svh;overflow:hidden visible}.contact__main{padding:56px 20px calc(28px + var(--dock-h));align-items:stretch}textarea.contact__input{block-size:clamp(80px,11vh,110px)}.contact__heading{font-size:clamp(28px,8vw,40px)}.contact__lead{font-size:14px}.contact__row{grid-template-columns:1fr}.contact__actions{flex-direction:column;align-items:stretch;gap:12px}.contact__submit{justify-content:center}.contact__fallback{text-align:center}}@media (height<=760px) and (width>=641px){.contact__main{padding-block-start:72px;padding-block-end:calc(14px + var(--dock-h))}.contact__card{gap:18px}.contact__heading{font-size:clamp(28px,3.4vw,40px)}textarea.contact__input{block-size:clamp(80px,10vh,110px)}}.errorboundary{background:var(--paper);min-block-size:100svh;color:var(--ink);place-items:safe center;padding:clamp(24px,6vw,64px);display:grid}.errorboundary__card{text-align:start;max-inline-size:44ch}.errorboundary__title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 12px;font-size:clamp(28px,5vw,44px);font-style:italic;font-weight:350;line-height:1.05}.errorboundary__body{font-family:var(--serif);color:var(--ink-2);margin:0 0 24px;font-size:17px;font-weight:350;line-height:1.5}.errorboundary__actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.errorboundary__btn{background:var(--cta-bg);color:var(--cta-fg);font-family:var(--sans);cursor:pointer;border-radius:999px;align-items:center;padding:12px 22px;font-size:14px;font-weight:500;transition:background .16s,transform .16s;display:inline-flex}.errorboundary__btn:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.errorboundary__link{font-family:var(--sans);color:var(--ink-2);text-underline-offset:3px;font-size:14px}.errorboundary__link:hover{color:var(--ink)}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-italic-300-900-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-italic-300-900-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-normal-300-900-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-normal-300-900-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-normal-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-normal-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-normal-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-normal-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-normal-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-normal-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-normal-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-normal-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-normal-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-normal-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f4efe5;--paper-2:#ebe5d8;--paper-3:#fefcf7;--ink:#1a1612;--ink-2:#5a5247;--ink-3:#756c5d;--rule:#1a16121a;--rule-strong:#1a161238;--ink-rgb:26, 22, 18;--shadow-sm:0 1px 2px #1a16120a, 0 2px 8px #1a16120a;--shadow-md:0 4px 16px #1a161212, 0 16px 48px #1a161214;--shadow-lg:0 12px 32px #1a16121a, 0 32px 96px #1a16121f;--dock-bg:#fefcf7c7;--field-bg:#fefcf7a6;--field-bg-focus:#fff;--panel-bg:#fefcf7b3;--backdrop:#0000006b;--cta-bg:var(--ink);--cta-fg:var(--paper);--cta-bg-hover:#000;--warn:#8a6413;--danger:#a32d2d;--danger-strong:#c64545;--danger-ring:#c6454529;--danger-bg:#c645450a;--danger-border:#c6454533;--success-bg:#3a5e440f;--success-border:#3a5e4433;--serif:"Fraunces", "Times New Roman", Georgia, serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--max:1320px;--pad-x:clamp(20px, 5vw, 64px);--dock-h:24svh;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--paper:#17140f;--paper-2:#201c15;--paper-3:#221e17;--ink:#f1ece1;--ink-2:#b8b0a1;--ink-3:#8f887a;--ink-rgb:241, 236, 225;--rule:#f1ece11f;--rule-strong:#f1ece142;--shadow-sm:0 1px 2px #00000073, 0 2px 8px #00000073;--shadow-md:0 4px 16px #0000008c, 0 16px 48px #0000008c;--shadow-lg:0 12px 32px #0009, 0 32px 96px #0009;--dock-bg:#18150fb8;--field-bg:#f1ece10d;--field-bg-focus:#00000038;--panel-bg:#f1ece10d;--backdrop:#0000009e;--cta-bg:var(--ink);--cta-fg:var(--paper);--cta-bg-hover:#fff;--warn:#e2b45c;--danger:#ef9f9f;--danger-strong:#e07a7a;--danger-ring:#e07a7a3d;--danger-bg:#e07a7a1a;--danger-border:#e07a7a4d;--success-bg:#78ac841f;--success-border:#78ac8452;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width>=900px){:root{--dock-h:26svh}}@media (width<=760px){:root{--dock-h:30svh}}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);margin:0;padding:0;overflow-x:clip}body{font-family:var(--sans);font-feature-settings:"ss01", "cv11";font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}:where(a,button,[role=button],input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.single__cta:focus-visible,.contact__submit:focus-visible{outline-color:var(--ink);box-shadow:0 0 0 2px var(--paper)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}::selection{background:var(--ink);color:var(--paper)}img,svg{max-width:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.t-display{font-family:var(--serif);letter-spacing:-.04em;font-variation-settings:"opsz" 144, "SOFT" 30;font-size:clamp(56px,11vw,168px);font-weight:350;line-height:.92}.t-display-it{font-style:italic}.t-h1{font-family:var(--serif);letter-spacing:-.03em;font-variation-settings:"opsz" 96, "SOFT" 30;font-size:clamp(40px,6.5vw,96px);font-weight:350;line-height:.98}.t-h2{font-family:var(--serif);letter-spacing:-.025em;font-variation-settings:"opsz" 72, "SOFT" 30;font-size:clamp(32px,4.4vw,64px);font-weight:350;line-height:1.05}.t-h3{font-family:var(--serif);letter-spacing:-.015em;font-variation-settings:"opsz" 36, "SOFT" 30;font-size:clamp(22px,2.4vw,32px);font-weight:350;line-height:1.15}.t-lead{font-family:var(--serif);letter-spacing:-.005em;font-variation-settings:"opsz" 30, "SOFT" 50;color:var(--ink-2);font-size:clamp(20px,2vw,26px);font-weight:350;line-height:1.45}.t-body{font-family:var(--sans);color:var(--ink-2);font-size:16px;font-weight:400;line-height:1.6}.t-mono{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:500}.container{max-width:var(--max);padding-inline:var(--pad-x);margin-inline:auto}.rule{border:0;border-block-start:1px solid var(--rule);margin:0}.link{color:var(--ink);display:inline-block;position:relative}.link:after{content:"";inset-inline:0;transform-origin:0;background:currentColor;height:1px;transition:transform .36s cubic-bezier(.7,0,.2,1);position:absolute;bottom:-2px}.link:hover:after{animation:.6s cubic-bezier(.7,0,.2,1) .22s forwards link-redraw;transform:scaleX(0)}@keyframes link-redraw{0%{transform-origin:100%;transform:scaleX(0)}to{transform-origin:100%;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
