@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Bricolage Grotesque;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Bricolage Grotesque;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Bricolage Grotesque;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_62df8c{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_62df8c{--font-bricolage:"Bricolage Grotesque","Bricolage Grotesque Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-mono-jb:"JetBrains Mono","JetBrains Mono Fallback"}:root{color-scheme:dark;--bg:oklch(0.215 0.016 205);--surface:oklch(0.255 0.016 205);--surface-2:oklch(0.29 0.016 205);--ink:oklch(0.965 0.004 200);--ink-2:oklch(0.795 0.009 200);--ink-3:oklch(0.645 0.011 200);--rule:oklch(0.315 0.014 205);--rule-2:oklch(0.39 0.016 205);--field:oklch(0.56 0.021 205);--signal:oklch(0.855 0.135 88);--signal-dim:oklch(0.78 0.12 88);--signal-ink:oklch(0.22 0.03 88);--danger:oklch(0.74 0.13 25);--focus:var(--signal);--glow:oklch(0.85 0.13 88);--font-sans:var(--font-bricolage),ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:var(--font-mono-jb),ui-monospace,SFMono-Regular,Menlo,monospace;--s1:0.25rem;--s2:0.5rem;--s3:0.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:2.5rem;--s8:3.5rem;--s9:5rem;--r-sm:0.5rem;--r-md:0.75rem;--r-phone:1.875rem;--rail-w:clamp(15rem,20vw,21rem);--gutter:clamp(1.25rem,5vw,3rem);--ease:cubic-bezier(0.22,1,0.36,1);--dur:180ms;--z-skip:100}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}[role=button],a,button,input,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.55;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.025em;line-height:1.1;text-wrap:balance}p{margin:0;text-wrap:pretty}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:from-font}img,svg,video{display:block;max-width:100%}::selection{background:var(--signal);color:var(--signal-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}[id]{scroll-margin-top:var(--s6)}.skip{position:fixed;left:var(--s2);top:var(--s2);z-index:var(--z-skip);transform:translateY(-200%);background:var(--signal);color:var(--signal-ink);font-weight:600;padding:var(--s3) var(--s4);border-radius:var(--r-sm);text-decoration:none;transition:transform var(--dur) var(--ease)}.skip:focus-visible{transform:translateY(0)}.shell{max-width:76rem;margin:0 auto;padding:0 var(--gutter);padding-bottom:env(safe-area-inset-bottom)}@media (min-width:64rem){.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);grid-gap:clamp(var(--s6),4vw,var(--s9));gap:clamp(var(--s6),4vw,var(--s9));align-items:start}}.rail{padding:var(--s7) 0 var(--s5)}@media (min-width:64rem){.rail{position:-webkit-sticky;position:sticky;top:0;min-height:100dvh;padding:var(--s9) 0 var(--s7);display:flex;flex-direction:column}}.avatar{width:3.25rem;height:3.25rem;border-radius:50%;object-fit:cover;background:var(--surface);border:1px solid var(--rule-2)}.avatar-fallback{display:grid;place-items:center;font-size:1.125rem;font-weight:600;color:var(--ink-3)}@media (min-width:64rem){.avatar{width:4rem;height:4rem}.avatar-fallback{font-size:1.375rem}}.rail h1{font-size:clamp(1.625rem,1.4rem + 1vw,2rem);font-weight:800;letter-spacing:-.035em;margin-top:var(--s4)}.rail-line{margin-top:var(--s3);color:var(--ink-2);font-size:1.0625rem;max-width:26ch}.handles{list-style:none;margin:var(--s5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1)}@media (min-width:64rem){.handles{flex-direction:column;align-items:flex-start;gap:0;margin-top:var(--s6)}}.handle{display:inline-flex;align-items:center;gap:.5rem;min-height:2.25rem;padding:var(--s1) var(--s2);margin-left:calc(var(--s2) * -1);border-radius:var(--r-sm);color:var(--ink-3);text-decoration:none;font-size:.875rem;transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.handle svg{width:1rem;height:1rem;flex:none;opacity:.75;transition:opacity var(--dur) var(--ease)}.handle .at{font-weight:500}.handle .plat{display:none;color:var(--ink-3)}@media (min-width:64rem){.handle .plat{display:inline}}@media (hover:hover){.handle:hover{color:var(--ink);background:var(--surface)}.handle:hover svg{opacity:1}}.rail-foot{display:none}@media (min-width:64rem){.rail-foot{display:block;margin-top:auto;padding-top:var(--s6);font-size:.8125rem;line-height:1.9;color:var(--ink-3)}.rail-foot a{display:inline-flex;align-items:center;min-height:1.5rem;color:var(--ink-3);text-decoration:none;transition:color var(--dur) var(--ease)}.rail-foot a:hover{color:var(--ink)}}.stack{padding-bottom:var(--s4)}@media (min-width:64rem){.stack{padding-top:var(--s9)}}.project{padding:var(--s7) 0;border-top:1px solid var(--rule);display:grid;grid-gap:var(--s4);gap:var(--s4);grid-template-areas:"head" "media" "body"}.project:first-child{border-top:none;padding-top:var(--s2)}.project-head{grid-area:head;min-width:0}.project-media{grid-area:media;min-width:0}.project-body{grid-area:body;min-width:0}@media (min-width:64rem){.project[data-device=mac]{grid-template-columns:clamp(17rem,26vw,24rem) minmax(0,1fr)}.project{grid-template-columns:clamp(11rem,16vw,15rem) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"media head" "media body";column-gap:var(--s7);row-gap:0;padding:var(--s8) 0;align-items:start}.project:first-child{padding-top:0}}.project-name{font-size:clamp(1.375rem,1.25rem + .6vw,1.625rem);font-weight:700;margin-top:-.12em}@media (min-width:64rem){.project-head{margin-bottom:var(--s3)}}.project-line{font-size:1.0625rem;max-width:36ch;color:var(--ink)}.project.is-teaser .project-name{color:var(--ink-2);font-weight:600}.project.is-teaser .project-line{color:var(--ink-2)}.project-price{margin-top:var(--s3);font-size:.9375rem;color:var(--ink-3)}.phone-wrap{position:relative;width:100%;max-width:12.5rem;isolation:isolate}@media (min-width:64rem){.phone-wrap{max-width:none}}.phone-wrap:before{content:"";position:absolute;inset:-14%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,var(--glow),transparent 72%);opacity:.16;pointer-events:none}.phone{position:relative;width:100%;container-type:inline-size;aspect-ratio:1470/3000}.phone-screen{position:absolute;top:1.6%;right:4.3%;bottom:1.6%;left:4.3%;overflow:hidden;border-radius:12cqw;background:var(--surface)}.phone[data-device=mac]{aspect-ratio:1480/962}.phone[data-device=mac] .phone-screen{top:11.35%;right:11.35%;bottom:11.4%;left:11.35%;border-radius:.6cqw}.project[data-device=mac] .phone-wrap{max-width:none}.phone-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}.phone-link{display:block;border-radius:var(--r-phone);transition:transform var(--dur) var(--ease)}@media (hover:hover){.phone-link:hover{transform:translateY(-2px)}.project:has(.phone-link:hover) .btn-solid{background:var(--signal-dim)}}.phone-media,.phone-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.phone-media{opacity:0;transition:opacity .4s var(--ease)}.phone-media.is-playing{opacity:1}.actions{margin-top:var(--s5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:2.875rem;padding:0 1.25rem;border-radius:var(--r-sm);font:inherit;font-size:1rem;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform 90ms var(--ease)}.btn:active{transform:translateY(1px)}.btn-solid{background:var(--signal);color:var(--signal-ink)}@media (hover:hover){.btn-solid:hover{background:var(--signal-dim)}}.btn-outline{background:transparent;color:var(--ink);border-color:var(--field)}@media (hover:hover){.btn-outline:hover{border-color:var(--ink-3);background:var(--surface)}}.btn[aria-disabled=true],.btn[disabled]{opacity:.5;cursor:progress}.btn .arrow{transition:transform var(--dur) var(--ease)}@media (hover:hover){.btn:hover .arrow{transform:translateX(2px)}}.social-link{display:inline-flex;align-items:center;gap:.375rem;min-height:2.25rem;margin-top:var(--s3);color:var(--ink-3);font-size:.875rem;text-decoration:none;transition:color var(--dur) var(--ease)}.social-link:hover{color:var(--ink-2);text-decoration:underline}.waitlist{display:flex;flex-wrap:wrap;gap:var(--s2);max-width:27rem}.waitlist input[type=email]{flex:1 1 12rem;min-width:0;min-height:2.875rem;padding:0 var(--s3);font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--field);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.waitlist input[type=email]:hover{border-color:var(--ink-2)}.waitlist input[type=email]:focus{background:var(--surface-2)}.waitlist input::placeholder{color:var(--ink-3)}.waitlist input[aria-invalid=true]{border-color:var(--danger)}.hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.form-note{margin-top:var(--s3);color:var(--ink-3);font-size:.875rem;max-width:34ch}.form-note[data-state=error]{color:var(--danger)}.form-done{display:flex;align-items:center;gap:var(--s2);min-height:2.875rem;color:var(--ink);font-size:1.0625rem;font-weight:500}.form-done .tick{display:grid;place-items:center;width:1.375rem;height:1.375rem;flex:none;border-radius:50%;background:var(--signal);color:var(--signal-ink);font-size:.8125rem;font-weight:700}.contact{border-top:1px solid var(--rule);padding:var(--s7) 0}.contact h2{font-size:1.125rem;font-weight:600;margin-bottom:var(--s5)}.contact-grid{display:flex;flex-wrap:wrap;gap:var(--s5) var(--s8)}.contact-item .label{display:block;margin-bottom:.125rem;font-size:.875rem;color:var(--ink-3)}.contact-item .addr{display:inline-flex;align-items:center;min-height:1.75rem;font-size:1.0625rem;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-2);padding-bottom:2px;transition:border-color var(--dur) var(--ease)}.contact-item .addr:hover{border-color:var(--signal);color:var(--ink)}.foot{border-top:1px solid var(--rule);padding:var(--s5) 0 var(--s7);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:.8125rem}.foot,.foot a{align-items:center;color:var(--ink-3)}.foot a{text-decoration:none;min-height:2.25rem;display:inline-flex}.foot a:hover{color:var(--ink);text-decoration:underline}@media (min-width:64rem){.foot{display:none}}.prose{max-width:36rem;margin:0 auto;padding:var(--s8) var(--gutter) var(--s9)}.prose h1{font-size:1.875rem;font-weight:700;margin-bottom:var(--s2)}.prose .stamp{color:var(--ink-3);font-size:.875rem}.prose h2{font-size:1.0625rem;font-weight:600;margin:var(--s6) 0 var(--s2)}.prose li,.prose p{color:var(--ink-2);margin-bottom:var(--s3)}.prose a{color:var(--ink);-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2)}.prose a:hover{-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--surface);padding:.1em .35em;border-radius:4px}.prose ul{padding-left:1.15rem}.prose .back{display:inline-flex;align-items:center;min-height:2.25rem;margin-bottom:var(--s5);color:var(--ink-3);font-size:.875rem;text-decoration:none}.prose .back:hover{color:var(--ink)}.prose .fineprint{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--rule);font-size:.875rem;color:var(--ink-3)}@media (min-width:40rem) and (max-width:63.9375rem){.rail{display:grid;grid-template-columns:auto minmax(0,1fr);grid-column-gap:var(--s5);column-gap:var(--s5);align-items:start;padding-bottom:var(--s6);border-bottom:1px solid var(--rule)}.rail>.avatar{grid-column:1;grid-row:1/span 2;align-self:center;width:4rem;height:4rem}.rail>h1{grid-column:2;align-self:end;margin-top:0}.rail>.rail-line{grid-column:2;align-self:start;max-width:48ch}.rail>.rail-foot,.rail>nav{grid-column:1/-1}.rail>nav{margin-top:var(--s5)}.project[data-device=mac]{grid-template-columns:20rem minmax(0,1fr)}.project{grid-template-columns:13rem minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"media head" "media body";column-gap:var(--s6);row-gap:0;align-items:start}.project-head{margin-bottom:var(--s3)}.phone-wrap{max-width:none}.project-line{max-width:44ch}.contact-grid{gap:var(--s5) var(--s9)}}@media (pointer:coarse){.handle,.prose .back,.social-link{min-height:2.75rem}.contact-item .addr{min-height:2.75rem;align-items:flex-end}.foot a{display:inline-flex;align-items:center;min-height:2.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}