@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b8ccc630e9b93600-s.2qo5md4hn_gum.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1ab3e5abcf77747f-s.1d9rlgtqyj_-l.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/edb99fec956915f8-s.p.32sris142tqlb.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 Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.pOxM7a_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.pOxM7a_variable{--font-display:"Fraunces", "Fraunces Fallback"}
.house{--paper:#f8f1e6;--paper-2:#efe4d3;--ink:#2a1c12;--ink-2:#4e3b2c;--muted:#6a5341;--rule:#dccbb4;--clay:#a3482a;--clay-ink:#fffaf3;--teal:#1d5a55;--focus:#1d5a55;--display:var(--font-display), "Iowan Old Style", Georgia, serif;--body:var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;min-height:100svh;color:var(--ink);font-family:var(--body);background:#e9cfa6;position:relative}.house :focus-visible{outline:2px solid var(--focus);outline-offset:2px}.house .skip:focus-visible,.house .house-bar :focus-visible{box-shadow:0 0 0 6px var(--paper)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:60;background:var(--ink);color:var(--paper);border-radius:4px;padding:8px 14px;position:absolute;top:-60px;left:16px}.skip:focus{top:12px}.stage{background:linear-gradient(#f3c98f 0%,#e9b77d 38%,#b9744a 62%,#6e4a2f 100%);position:fixed;inset:0;overflow:hidden}.poster{background-position:50%;background-size:cover;transition:opacity .6s;position:absolute;inset:0}.poster-facade{background-image:url(/house/posters/facade.webp)}.poster-entry{background-image:url(/house/posters/entry.webp)}.poster-courtyard{background-image:url(/house/posters/courtyard.webp)}.poster-langsmith{background-image:url(/house/posters/langsmith.webp)}.poster-google{background-image:url(/house/posters/google.webp)}.poster-eighth-rank{background-image:url(/house/posters/eighth-rank.webp)}.poster-projects{background-image:url(/house/posters/projects.webp)}.poster-about{background-image:url(/house/posters/about.webp)}.poster-bedroom{background-image:url(/house/posters/bedroom.webp)}.poster-how-i-build{background-image:url(/house/posters/how-i-build.webp)}.canvas-wrap{opacity:0;touch-action:pan-y;cursor:grab;transition:opacity .9s;position:absolute;inset:0}.canvas-wrap:active{cursor:grabbing}.is-ready .canvas-wrap{opacity:1}.dim{opacity:0;pointer-events:none;background:#120b06;position:absolute;inset:0}.loading{color:#fbf3e6;background:#2a1c12b8;border-radius:999px;margin:0;padding:6px 14px;font-size:14px;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.still-note{z-index:5;max-width:460px;color:var(--ink);background:#f8f1e6f0;border-radius:10px;margin:0;padding:8px 12px;font-size:14px;line-height:1.45;position:absolute;top:64px;left:16px;right:16px;box-shadow:0 8px 24px -12px #2a1c1280}.still-note button{color:var(--teal);font:600 14px/1.45 var(--body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}@media (min-width:901px){.still-note{top:70px;left:20px;right:auto}}.hotspots{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hotspot{pointer-events:auto;color:#fff8ec;font:600 13px/1 var(--body,system-ui);white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a1c12b8;border:1px solid #fff6e6b3;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 8px;transition:background .2s;display:inline-flex;position:absolute;top:0;left:0}.hotspot:hover{background:#a3482aeb}.hotspot-dot{background:#ffd9a0;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #ffd9a04d}.house-bar{z-index:30;pointer-events:none;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:fixed;top:0;left:0;right:0}.house-bar>*{pointer-events:auto}.house-brand{color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f1e6e6;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;font-weight:600;text-decoration:none;display:inline-flex}.house-mark{background:var(--clay);width:30px;height:30px;color:var(--clay-ink);font:600 13px/1 var(--display);letter-spacing:.02em;border-radius:50%;place-items:center;display:grid}.house-links{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f1e6e6;border-radius:999px;gap:4px;padding:4px;display:flex}.house-links a{color:var(--ink);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;text-decoration:none}.house-links a:hover{background:var(--paper-2)}.controls{z-index:25;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f1e6eb;border-radius:26px;flex-wrap:wrap;justify-content:center;gap:6px;max-width:calc(100vw - 292px - min(460px,38vw));padding:6px;display:flex;position:fixed;bottom:18px;left:256px;box-shadow:0 8px 30px -12px #2a1c1273}.house .btn{border:1.5px solid var(--ink);min-height:40px;color:var(--ink);font:600 14px/1.2 var(--body);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.house .btn:hover{background:var(--paper-2)}.house .btn.primary{background:var(--clay);border-color:var(--clay);color:var(--clay-ink)}.house .btn.primary:hover{background:#8d3b20}.house .btn.ghost{border-color:#0000}.house .btn.ghost:hover{border-color:var(--rule)}.house .btn.is-on{background:var(--paper-2)}.map{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f1e6eb;border-radius:14px;width:220px;max-height:calc(100svh - 90px);padding:12px 14px;font-size:14px;position:fixed;bottom:18px;left:18px;overflow-y:auto;box-shadow:0 8px 30px -12px #2a1c1273}.minimap{width:120px;margin:0 auto 8px;display:block}.mm-house{fill:#c58a5f;stroke:#6b3f24;stroke-width:.3px}.mm-court{fill:#e9d9bf}.mm-pool{fill:#4f8b85}.mm-path{fill:#d8c8ab}.mm-stair{fill:#a07656}.mm-label{text-anchor:middle;fill:var(--muted);font-size:1.6px}.mm-marker{cursor:pointer}.mm-marker circle,.mm-marker rect{fill:var(--paper);stroke:var(--ink);stroke-width:.35px}.mm-marker.on circle:not(.mm-ring),.mm-marker.on rect{fill:var(--clay);stroke:var(--clay)}.mm-ring{animation:2s ease-in-out 2 mm-pulse;fill:none!important;stroke:var(--clay)!important;stroke-width:.3px!important}@keyframes mm-pulse{50%{opacity:.3}}.map-floor+.map-floor{margin-top:6px}.map-floor-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:600}.map ul{flex-wrap:wrap;gap:2px 4px;margin:0;padding:0;list-style:none;display:flex}.map ul a{color:var(--ink);border-radius:999px;padding:3px 8px;text-decoration:none;display:inline-block}.map ul a:hover{background:var(--paper-2)}.map ul a.on{background:var(--ink);color:var(--paper)}.map-hint{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.45}.map-hint kbd{border:1px solid var(--rule);background:var(--paper);min-width:1.6em;font:600 11px/1.5 var(--body);text-align:center;border-radius:4px;padding:0 4px;display:inline-block}.panel{z-index:20;overscroll-behavior:contain;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8f1e6f2;border-radius:16px;width:min(460px,38vw);padding:26px 28px 24px;font-size:16px;line-height:1.6;position:fixed;top:72px;bottom:18px;right:18px;overflow-y:auto;box-shadow:0 20px 50px -20px #2a1c128c}.panel:focus{outline:none}.place{color:var(--muted);margin:0 0 14px;font-size:13px}.place:before{content:"";background:var(--clay);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.room p{margin:0 0 12px}.eyebrow{color:var(--clay);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:700;margin:0 0 6px!important}.display{font:500 clamp(30px, 3.2vw, 40px) / 1.08 var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0 0 10px}.title{font:500 30px/1.12 var(--display);letter-spacing:-.01em;text-wrap:balance;margin:0 0 10px}.sub{border-top:1px solid var(--rule);font:500 21px/1.2 var(--display);letter-spacing:-.005em;margin:26px 0 10px;padding-top:14px}.byline{color:var(--ink-2);font-weight:600}.lede{color:var(--ink-2);font-size:17px}.muted{color:var(--muted)}.small{font-size:14px}.hint{font-weight:600;margin-top:18px!important}.room a:not(.btn):not(.doorway):not(.post-card):not(.deep-dive){color:var(--teal);text-underline-offset:3px}.actions{flex-wrap:wrap;gap:8px;margin:18px 0 4px;display:flex}.copy-email{display:inline-flex;position:relative}.copy-email-status{z-index:3;background:var(--ink);color:var(--paper);white-space:nowrap;-webkit-user-select:all;user-select:all;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:600;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 6px 16px -8px #2a1c1299}.copy-email-status:empty{display:none}.todo{color:#4a3200;background:#fde7a8;border-radius:3px;padding:0 4px}.doorways{gap:10px;margin:14px 0 16px;padding:0;list-style:none;display:grid}.doorway{border:1px solid var(--rule);border-left:4px solid var(--clay);background:var(--paper);color:var(--ink);border-radius:10px;gap:2px;padding:14px 16px;text-decoration:none;transition:background .15s,transform .15s;display:grid}.doorway:hover{background:#fffaf2;transform:translate(2px)}.doorway-side{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.doorway-title{font:500 20px/1.2 var(--display)}.doorway-line{color:var(--ink-2);font-size:15px}.shots{gap:12px;margin-top:16px;display:grid}.shot{margin:0}.shot button{border:1px solid var(--rule);background:var(--paper-2);cursor:zoom-in;border-radius:10px;width:100%;padding:0;display:block;overflow:hidden}.shot img{width:100%;height:auto;min-height:80px;display:block}.lightbox{background:var(--paper);border:0;border-radius:12px;max-width:min(1200px,94vw);max-height:92vh;padding:12px}.lightbox::backdrop{background:#140c06bf}.lightbox img{max-width:100%;max-height:calc(92vh - 90px);margin:0 auto 10px;display:block}.lightbox form{text-align:right}.projects{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.project{border:1px solid var(--rule);background:var(--paper);border-radius:10px;padding:14px 16px}.project h3{font:500 21px/1.2 var(--display);margin:0 0 4px}.project p{margin:0 0 6px!important}.tag{border:1px solid var(--teal);color:var(--teal);font:700 11px/1.4 var(--body);letter-spacing:.06em;text-transform:uppercase;vertical-align:3px;border-radius:999px;margin-left:10px;padding:2px 8px;display:inline-block}.timeline{border-left:2px solid var(--rule);margin:0 0 18px;padding:0;list-style:none}.timeline li{gap:1px;padding:0 0 14px 18px;display:grid;position:relative}.timeline li:before{content:"";background:var(--paper);border:2px solid var(--clay);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-6px}.timeline-when{color:var(--muted);font-size:13px;font-weight:600}.timeline-org{font:500 19px/1.25 var(--display)}.timeline-role{color:var(--ink-2);font-size:15px}.skills{border-top:1px solid var(--rule);margin:14px 0;display:grid}.skills>div{border-bottom:1px solid var(--rule);grid-template-columns:9em 1fr;gap:10px;padding:8px 0;display:grid}.skills dt{font-weight:700}.skills dd{color:var(--ink-2);margin:0}.credits{color:var(--ink-2);margin:0;padding-left:18px;font-size:14px}.facts,.limits{flex-wrap:wrap;gap:8px;margin:14px 0;padding:0;list-style:none;display:flex}.facts li{border:1px solid var(--rule);background:var(--paper);border-radius:8px;padding:6px 10px;font-size:14px}.facts b{font:600 20px/1 var(--display);margin-right:2px}.roles{gap:10px;display:grid}.role{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:14px 16px}.role:first-child{background:var(--ink);border-color:var(--ink);color:var(--paper)}.role:first-child .eyebrow{color:#f2b98f}.role h4{font:500 19px/1.2 var(--display);margin:0 0 4px}.role p:last-child{margin:0}.phases{flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;font-size:14px;list-style:none;display:flex}.phases li{border:1px solid var(--rule);background:var(--paper);border-radius:6px;padding:5px 10px}.phases li.here{background:var(--clay);border-color:var(--clay);color:var(--clay-ink);font-weight:600}.stations{counter-reset:st;border-left:2px dashed var(--rule);margin:10px 0;padding:0;list-style:none}.stations li{counter-increment:st;margin:0 0 12px;padding-left:34px;position:relative}.stations li:before{content:counter(st);background:var(--paper);border:2px solid var(--teal);width:24px;height:24px;color:var(--teal);font:700 12px/1 var(--body);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:-13px}.stations .who{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.stations p{color:var(--ink-2);font-size:15px;margin:2px 0 0!important}.why{gap:10px;margin:10px 0;padding:0;list-style:none;display:grid}.why li{border-left:3px solid var(--ink);background:var(--paper);border-radius:0 8px 8px 0;padding:10px 14px}.why p{color:var(--ink-2);font-size:15px;margin:2px 0 0!important}.limits li{border:1px solid var(--rule);background:var(--paper);border-radius:8px;gap:2px;width:calc(50% - 4px);padding:10px 12px;display:grid}.limits b{font:600 24px/1 var(--display)}.limits span{color:var(--muted);font-size:13px;line-height:1.35}.panel-next{border-top:1px solid var(--rule);text-align:right;margin-top:22px;padding-top:14px;font-weight:600}.panel-next a{color:var(--teal);text-underline-offset:3px}.deep-dive{background:var(--ink);color:var(--paper);border-radius:10px;gap:4px;margin:18px 0 4px;padding:14px 16px;text-decoration:none;display:grid}.deep-dive .eyebrow{color:#f2b98f}.deep-dive-title{font:500 20px/1.25 var(--display)}.deep-dive-go{color:#f8d8bd;font-size:14px;font-weight:600}.deep-dive:hover .deep-dive-go{text-decoration:underline}.posts{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.post-card{border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:10px;gap:4px;padding:14px 16px;text-decoration:none;transition:background .15s;display:grid}.post-card:hover{background:#fffaf2}.post-card-meta{color:var(--muted);font-size:13px}.post-card-title{font:500 20px/1.25 var(--display)}.post-card-summary{color:var(--ink-2);font-size:15px}.post .eyebrow .tag,.post-card-meta .tag{vertical-align:1px}.prose{font-size:16px;line-height:1.7}.prose h3{font:500 22px/1.25 var(--display);margin:26px 0 8px}.prose h4{margin:20px 0 6px;font-size:17px}.prose p,.prose ul,.prose ol{margin:0 0 14px}.prose ul,.prose ol{padding-left:20px}.prose li{margin-bottom:6px}.prose blockquote{border-left:3px solid var(--clay);color:var(--ink-2);margin:0 0 14px;padding-left:14px}.prose code{background:var(--paper-2);border-radius:4px;padding:1px 5px;font-size:.9em}.prose img{border-radius:8px;max-width:100%}.prose a{color:var(--teal)}.post-room{font-weight:600;margin-top:22px!important}.mode-static .canvas-wrap{display:none}@media (max-width:1100px){.panel{width:min(400px,42vw)}.controls{max-width:calc(100vw - 292px - min(400px,42vw))}}@media (max-width:900px){html{scroll-padding-top:64px}.house{background:var(--paper)}.stage{height:56svh;min-height:320px;position:relative}.house-bar{padding:12px 16px;position:absolute}.controls{max-width:none;box-shadow:0 1px 0 var(--rule);background:#f8f1e6f7;border-radius:0;flex-wrap:nowrap;justify-content:flex-start;padding:6px 12px;position:sticky;top:0;bottom:auto;left:auto;overflow-x:auto}.controls .btn{flex:none}.panel{background:var(--paper);width:auto;max-width:640px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;margin:0 auto;padding:22px 16px 8px;position:static;overflow:visible}.map{border-top:1px solid var(--rule);width:auto;max-width:640px;max-height:none;box-shadow:none;background:var(--paper);border-radius:0;margin:8px auto 24px;padding:16px;position:static;overflow:visible}.minimap{width:140px}.poster{background-position:50%}.poster-facade{background-image:url(/house/posters/facade-sm.webp)}.poster-entry{background-image:url(/house/posters/entry-sm.webp)}.poster-courtyard{background-image:url(/house/posters/courtyard-sm.webp)}.poster-langsmith{background-image:url(/house/posters/langsmith-sm.webp)}.poster-google{background-image:url(/house/posters/google-sm.webp)}.poster-eighth-rank{background-image:url(/house/posters/eighth-rank-sm.webp)}.poster-projects{background-image:url(/house/posters/projects-sm.webp)}.poster-about{background-image:url(/house/posters/about-sm.webp)}.poster-bedroom{background-image:url(/house/posters/bedroom-sm.webp)}.poster-how-i-build{background-image:url(/house/posters/how-i-build-sm.webp)}.loading{bottom:20px}.limits li{width:100%}}@media (prefers-reduced-motion:reduce){.poster,.canvas-wrap,.doorway,.mm-ring{transition:none!important;animation:none!important}}[data-focus]:focus{outline:none}
