@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2) format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2) format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-italic.xAqemagA.woff2) format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-italic.DFS986qL.woff2) format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-italic.Bxi8ein9.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:Iosevka Fixed;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_astro/iosevka-fixed-subset.DjnfWqgs.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--wall: #edd4d2;--pane: rgb(255 248 246 / 72%);--ink: #241c22;--ink-soft: #6b5b62;--art-red: #e23c28;--art-orange: #ff8a1f;--art-gold: #ffb61f;--art-green: #3dba5a;--art-teal: #2ec4b6;--art-cyan: #3ec6ff;--art-blue: #4a68ff;--art-violet: #9d5bff;--art-purple: #7b3fa0;--art-magenta: #ff3d99;--art-pink: #ff8fb8;--art-wood: #c48a4a;--art-steel: #6a7380;--art-dark: #2a2428;--mono: "Iosevka Fixed", ui-monospace, "SFMono-Regular", Menlo, monospace;--display: "Geist Variable", Geist, system-ui, sans-serif;--accent: "Newsreader Variable", "Newsreader", Georgia, serif;--link: #8c2c18;--mullion: clamp(6px, .7vw, 12px);--edge: clamp(16px, 2.4vw, 30px);--tile-ratio: 1.167}html{background:var(--wall)}body{min-width:320px;background:var(--wall);color:var(--ink);font-family:var(--mono);font-size:15px;line-height:1.6}body.facade-page{overflow:hidden}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.skip-link{position:fixed;top:12px;left:12px;z-index:100000;padding:9px 13px;border-radius:4px;background:var(--ink);color:var(--wall);font-family:var(--mono);font-size:12px;text-decoration:none;transform:translateY(-250%)}.skip-link:focus{transform:none}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}.top-bar{display:contents}.wordmark,.directory{position:fixed;top:var(--edge);z-index:60;color:#fff;mix-blend-mode:difference;opacity:1;transition:opacity .55s ease}.wordmark{left:var(--edge);font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.03em;text-decoration:none}.directory{right:var(--edge);padding:0 0 6px;border:0;background:none;cursor:pointer;font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.03em}.directory:after{position:absolute;right:0;bottom:0;left:20%;height:1px;background:currentcolor;content:"";transition:left .4s cubic-bezier(.2,.75,.2,1)}.directory:hover:after,.directory:focus-visible:after{left:0}.facade{position:fixed;inset:0;overflow:hidden;background:var(--wall);opacity:1;transition:opacity .55s ease}.facade-shift{width:100%;height:100%;will-change:transform}.facade-track{--room-h: calc(100svh / var(--facade-rows));--room-w: calc(var(--room-h) * var(--tile-ratio));display:grid;width:max-content;height:100%;grid-auto-columns:var(--room-w);grid-auto-flow:column;grid-template-rows:repeat(var(--facade-rows),1fr);animation:facade-drift 110s linear infinite}@keyframes facade-drift{to{transform:translate(-50%)}}.room{position:relative;overflow:hidden;margin:var(--mullion);border:1px solid rgb(255 255 255 / 70%);border-radius:8px;background:var(--pane);box-shadow:0 1px #fffc,0 10px 28px #241c2229,0 2px 6px #241c221a,inset 0 1px #ffffffe5}.room-interior{position:absolute;inset:-42px -64px;display:grid;place-items:center}.room-picture{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;filter:blur(5px);transition:filter .45s ease;will-change:transform}html:not(.has-room-hotspot) .room:hover .room-picture,.room.is-hot .room-picture,.room:focus-within .room-picture{filter:none}.room-flip .room-picture{transform:scaleX(-1)}.room-hit{position:absolute;inset:0;z-index:3;text-decoration:none}.room-label{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;pointer-events:none;color:#fff;mix-blend-mode:difference}.room-label-text{font-family:var(--mono);font-size:clamp(15px,calc(var(--room-h) / 8),30px);font-weight:700;letter-spacing:.06em;opacity:0}html:not(.has-room-hotspot) .room:hover .room-label-text,.room.is-hot .room-label-text,.room:focus-within .room-label-text{opacity:1}.facade.is-label-overlay .room-label{display:none}.room-title{display:none;position:fixed;z-index:50;align-items:center;justify-content:center;pointer-events:none;color:#fff;mix-blend-mode:difference}html:has(.facade.is-label-overlay) .room-title:not([hidden]){display:flex}.room-title-text{font-family:var(--mono);font-size:clamp(15px,calc(100svh / var(--facade-rows, 4) / 8),30px);font-weight:700;letter-spacing:.06em}.room-glass{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:8px;background:linear-gradient(to bottom,rgb(255 255 255 / 42%) 0%,rgb(255 255 255 / 8%) 38%,transparent 70%);box-shadow:inset 0 1px #ffffffbf;transition:background .45s ease}html:not(.has-room-hotspot) .room:hover .room-glass,.room.is-hot .room-glass,.room:focus-within .room-glass{background:linear-gradient(to bottom,rgb(255 255 255 / 12%) 0%,transparent 32%)}.sheet{--inset: clamp(10px, 1.2vw, 16px);width:min(430px,calc(100% - var(--inset) * 2));max-width:none;height:calc(100svh - var(--inset) * 2);max-height:none;margin:var(--inset) var(--inset) var(--inset) auto;padding:0;border:0;background:transparent}.sheet::backdrop{background:transparent}.sheet-scrim{position:fixed;inset:0;z-index:65;pointer-events:none;background:#241c2238;opacity:0;visibility:hidden;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .55s cubic-bezier(.22,.61,.36,1),visibility .55s linear}.sheet-scrim.is-on{pointer-events:auto;opacity:1;visibility:visible}.sheet-card{display:flex;height:100%;flex-direction:column;padding:clamp(20px,2.2vw,32px);border-radius:18px;background:#fff;box-shadow:0 40px 120px #241c2242}.sheet-top{display:flex;align-items:center;justify-content:space-between}.sheet-eyebrow,.sheet-close{color:var(--ink-soft);font-family:var(--mono);font-size:11px;letter-spacing:.04em}.sheet-close{padding:0;border:0;background:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.sheet-close:hover{color:var(--ink)}.sheet-nav{margin:auto 0}.sheet-nav ul{list-style:none}.sheet-link{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:7px 0;color:var(--ink);text-decoration:none}.sheet-link-label{font-family:var(--display);font-size:clamp(32px,3.6vw,44px);font-weight:500;letter-spacing:-.03em;line-height:1.1}.sheet-link-note{color:var(--ink-soft);font-family:var(--accent);font-size:13px;font-style:italic;pointer-events:none;opacity:0;transition:opacity .3s ease}html:not(.has-sheet-notes) .sheet-link:hover .sheet-link-label,.sheet-link.is-noted .sheet-link-label,.sheet-link:focus-visible .sheet-link-label{color:var(--link)}html:not(.has-sheet-notes) .sheet-link:hover .sheet-link-note,.sheet-link.is-noted .sheet-link-note,.sheet-link:focus-visible .sheet-link-note{opacity:1}.sheet-foot{display:flex;flex-direction:column;gap:6px}.sheet-foot a{color:var(--ink);font-family:var(--mono);font-size:12px;text-underline-offset:3px}.sheet-foot p{color:var(--ink-soft);font-family:var(--accent);font-size:13px;font-style:italic;line-height:1.45}.content-page{display:flex;min-height:100svh;flex-direction:column}.content-main{width:100%;flex:1;padding:clamp(92px,13vw,150px) var(--edge) clamp(72px,10vw,120px)}.content-article{width:min(100%,720px);margin:0 auto;font-family:var(--display);font-size:17px;line-height:1.72}.content-title-block{margin-bottom:clamp(44px,6vw,68px)}.content-kicker{margin-bottom:12px;color:var(--ink-soft);font-family:var(--mono);font-size:11px;letter-spacing:.04em}.content-article h1{font-family:var(--display);font-size:clamp(42px,7.5vw,72px);font-weight:600;letter-spacing:-.045em;line-height:.96}.content-updated{margin-top:16px;color:var(--ink-soft);font-family:var(--mono);font-size:11px}.content-lede{margin-bottom:clamp(40px,5vw,60px);font-family:var(--accent);font-size:clamp(21px,2.8vw,26px);font-style:italic;font-weight:300;line-height:1.48}.content-about{font-family:var(--mono)}.content-article section+section{margin-top:50px}.content-article h2{margin-bottom:14px;font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.02em}.content-article p+p,.content-article ul+p,.content-article p+ul{margin-top:16px}.content-article ul{padding-left:21px}.content-article li+li{margin-top:6px}.content-article a{color:var(--link);overflow-wrap:anywhere;text-decoration-thickness:1px;text-underline-offset:3px}.content-article a:hover{color:var(--ink)}.content-action{display:inline-flex;padding:10px 18px;border-radius:100px;background:var(--ink);color:var(--wall)!important;font-family:var(--mono);font-size:11px;text-decoration:none}.content-link-list{display:grid;gap:7px 28px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:560px){.content-link-list{grid-template-columns:minmax(0,1fr)}}.intro{display:none;position:fixed;inset:0;z-index:70;overflow:hidden;background:var(--wall)}html.is-intro .intro{display:block}html.is-intro .facade,html.is-intro .wordmark,html.is-intro .directory{opacity:0;pointer-events:none}html.is-intro .facade-track{animation-play-state:paused}.intro.is-done{opacity:0;transition:opacity .45s ease;pointer-events:none}.intro-world{width:100%;height:100%;will-change:transform}.intro-street{display:flex;align-items:flex-end;gap:clamp(10px,1.4vw,18px);height:100%;padding:0 18vw 7vh 8vw;will-change:transform}.intro-building{--intro-rows: 4;--intro-cols: 2;--intro-gap: 4px;--intro-pad-x: 8px;--intro-pad-top: 26px;--intro-pad-bottom: 8px;--intro-h: 38vh;position:relative;flex:0 0 auto;height:var(--intro-h);width:calc(var(--intro-cols) * ((var(--intro-h) - var(--intro-pad-top) - var(--intro-pad-bottom) - (var(--intro-rows) - 1) * var(--intro-gap)) / var(--intro-rows)) * var(--tile-ratio) + (var(--intro-cols) - 1) * var(--intro-gap) + var(--intro-pad-x) * 2);border-radius:6px 6px 0 0;background:color-mix(in srgb,var(--wall) 55%,var(--ink));box-shadow:8px 0 18px #241c221f}.intro-v2{--intro-h: 46vh}.intro-v3{--intro-h: 34vh}.intro-v4{--intro-h: 52vh}.intro-number{position:absolute;top:8px;left:50%;z-index:2;color:#fff;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.04em;transform:translate(-50%)}.intro-windows{display:grid;height:100%;padding:var(--intro-pad-top) var(--intro-pad-x) var(--intro-pad-bottom);gap:var(--intro-gap);grid-template-columns:repeat(var(--intro-cols),minmax(0,1fr));grid-template-rows:repeat(var(--intro-rows),minmax(0,1fr));place-items:stretch}.intro-window{border-radius:4px;aspect-ratio:var(--tile-ratio);width:100%;height:auto;max-height:100%;justify-self:center;align-self:center;background:#241c2247;box-shadow:inset 0 1px #ffffff1f}.intro-building.is-28{--intro-cols: 7;--intro-gap: 5px;--intro-pad-x: 10px;--intro-pad-top: 10px;--intro-pad-bottom: 10px;--intro-h: min(48vh, 420px);width:min(92vw,calc(var(--intro-cols) * ((var(--intro-h) - var(--intro-pad-top) - var(--intro-pad-bottom) - (var(--intro-rows) - 1) * var(--intro-gap)) / var(--intro-rows)) * var(--tile-ratio) + (var(--intro-cols) - 1) * var(--intro-gap) + var(--intro-pad-x) * 2));height:var(--intro-h);background:var(--pane);box-shadow:0 18px 40px #241c222e,inset 0 1px #fffc}.intro-building.is-28 .intro-number{top:12px;color:var(--ink);font-size:18px}.intro-facade{display:grid;height:100%;padding:var(--intro-pad-top) var(--intro-pad-x) var(--intro-pad-bottom);gap:var(--intro-gap);grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));place-items:stretch}.intro-pane{overflow:hidden;border-radius:8px;aspect-ratio:var(--tile-ratio);width:100%;height:auto;max-height:100%;justify-self:center;align-self:center;background:#fff8f6cc;box-shadow:inset 0 1px #fffc,0 1px 2px #241c2214}.intro-skip{position:fixed;right:var(--edge);bottom:var(--edge);z-index:80;padding:0;border:0;background:none;color:#fff;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.04em;mix-blend-mode:difference;text-decoration:underline;text-underline-offset:3px}@media(prefers-reduced-motion:reduce){.facade-track{animation:none}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
