@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sc-chinese-simplified-400-normal-Ba7eOkfT.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-400-normal-CN8EQoOj.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sc-chinese-simplified-600-normal-CI4uXaOp.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-600-normal-BZjJ-uhR.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/noto-sans-sc-chinese-simplified-900-normal-Di-dyiBb.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-900-normal-BgOe1Og4.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{color-scheme:dark;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#e7d9bc;background:#090a09;font-synthesis:none;text-rendering:geometricPrecision;--paper: #eadcbd;--ink: #090a09;--gold: #dfa611;--red: #9d3025;--rail-width: clamp(132px, 10.48vw, 156px)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;scroll-behavior:smooth;background:#090a09}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:#090a09;-webkit-font-smoothing:antialiased}button,a,textarea{font:inherit;-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:-5px}.poster-shell{position:relative;display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);min-height:max(100svh,760px);overflow:hidden;isolation:isolate;background:linear-gradient(180deg,rgba(234,220,189,.015),transparent 36%,rgba(0,0,0,.25)),#090a09}.poster-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:url(/assets/textures/black-paper.webp) center / 768px 768px repeat,linear-gradient(90deg,transparent 0 17%,rgba(219,151,15,.022) 17% 17.15%,transparent 17.15%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(232,219,188,.013) 32px,transparent 33px);opacity:.34;mix-blend-mode:normal}.poster-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 150px #00000080}.poster-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;width:100%;height:100%;pointer-events:none}.side-rail{position:relative;z-index:5;display:flex;flex-direction:column;grid-column:1;min-height:max(100svh,760px);border-right:1px solid rgba(223,166,17,.66);padding:2rem 1.45rem 1.75rem;background:#08090899}.rail-wordmark{color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:.82rem;font-weight:600;letter-spacing:.16em;text-decoration:none;white-space:nowrap}.rail-wordmark span{color:var(--paper)}.side-rail nav{display:flex;flex-direction:column;gap:2.8rem;margin-top:5.8rem}.rail-link{display:flex;align-items:center;gap:1.1rem;border:0;padding:0;color:var(--paper);background:transparent;font-size:1.03rem;font-weight:600;letter-spacing:.12em;text-decoration:none;cursor:pointer;white-space:nowrap}.rail-link>span{display:block;width:4px;height:22px;background:transparent}.rail-link:hover,.rail-link:focus-visible,.rail-link.is-current{color:#fff0d1}.rail-link.is-current>span{background:var(--gold)}.rail-footer{display:flex;align-items:flex-start;flex-direction:column;gap:.65rem;margin-top:auto;color:var(--paper);font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.035em;white-space:nowrap}.rail-footer span{width:24px;height:3px;background:var(--gold)}.mobile-header{display:none}.poster-main{position:relative;z-index:4;display:flex;flex-direction:column;grid-column:2;min-width:0;min-height:max(100svh,760px);padding:clamp(4.5rem,10vh,6.7rem) clamp(4rem,4.4vw,4.6rem) clamp(2rem,3.5vh,3rem) clamp(3rem,8.4vw,7.8rem)}.poster-hero{position:relative;display:flex;flex:0 0 auto;min-height:clamp(253px,28.8vh,308px)}.hero-code{position:absolute;top:-2.25rem;left:-3.9rem;width:8.2rem;height:18rem;color:#eadcbdc2;font-family:IBM Plex Mono,monospace;font-size:.66rem;font-weight:600;letter-spacing:.06em;line-height:1}.hero-code:after{content:"";position:absolute;top:5.65rem;right:.15rem;width:3.8rem;height:8.8rem;opacity:.38;background:repeating-linear-gradient(0deg,transparent 0 9px,rgba(223,166,17,.52) 9px 12px,transparent 12px 18px),repeating-linear-gradient(90deg,transparent 0 8px,rgba(223,166,17,.38) 8px 13px,transparent 13px 21px);-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent)}.hero-code-column{position:absolute;top:0;display:flex;flex-direction:column;gap:1.02rem}.hero-code-column span{height:.68rem}.hero-code-left{left:0}.hero-code-right{top:.1rem;left:4.55rem;color:#dfa611e0}.hero-code-right span:nth-child(3n+1){transform:translate(.45rem)}.hero-code-right span:nth-child(4n){color:#eadcbd75}.hero-code-left span:nth-child(6){color:var(--gold)}.hero-code-left span:nth-child(7){margin-top:.15rem}.hero-copy{min-width:0;width:100%}.hero-title{width:min(60.5vw,900px);margin:clamp(16px,1.8vh,19px) 0 0;line-height:1;overflow:visible}.hero-wordmark-image{display:block;width:100%;height:auto;filter:drop-shadow(0 1px 0 rgba(255,243,216,.08));transform:translateY(-2px);-webkit-user-select:none;user-select:none;pointer-events:none}.hero-copy p{margin:1.2rem 0 0 .2rem;color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:clamp(.82rem,1.25vw,1.14rem);font-weight:600;letter-spacing:.17em}.projects-carousel{position:relative;flex:0 0 auto;width:100%;min-width:0}.projects-stage{--collapsed-card-width: clamp(170px, 21.7vw, 322px);--active-card-width: clamp(500px, 44.65vw, 664px);display:flex;flex:0 0 auto;gap:10px;width:100%;height:clamp(410px,54vh,570px);min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-behavior:auto;scroll-snap-type:x proximity;scrollbar-width:none}.projects-stage:has(.project-card.is-active){--collapsed-card-width: clamp(170px, 23.52vw, 350px)}.projects-stage::-webkit-scrollbar{display:none}.carousel-control{position:absolute;top:50%;z-index:15;display:grid;place-items:center;width:50px;height:50px;border:1px solid rgba(234,220,189,.42);color:var(--ink);background:#dfa611f0;box-shadow:5px 5px #00000047;cursor:pointer;transform:translateY(-50%);transition:color .18s ease,background .18s ease,transform .18s ease}.carousel-control:hover,.carousel-control:focus-visible{color:var(--paper);background:#0c0d0cf5}.carousel-control:hover{transform:translateY(-50%) scale(1.04)}.carousel-control-left{left:-58px}.carousel-control-right{right:-58px}.carousel-all{width:50px;height:50px;color:var(--paper);background:#0c0d0cf5;font-family:IBM Plex Mono,monospace;font-size:.64rem;letter-spacing:.12em}.carousel-all span{margin-top:.15rem}.project-card{position:relative;flex:0 0 var(--collapsed-card-width);min-width:0;height:calc(100% - 7px);overflow:clip;border:1px solid color-mix(in srgb,var(--card-color) 74%,#171817);color:var(--card-ink);background:var(--card-bg);scroll-snap-align:start;transition:flex-basis .52s cubic-bezier(.22,1,.36,1),filter .26s ease,border-color .18s ease}.project-card.is-active{flex-basis:var(--active-card-width);border-color:var(--card-color);filter:saturate(1.04)}.project-card:has(.card-rail:focus-visible){outline:2px solid var(--paper);outline-offset:-5px}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;opacity:.34;background:url(/assets/textures/black-paper.webp) center / 620px 620px repeat;mix-blend-mode:soft-light}.project-card:after{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;z-index:3;border:1px solid color-mix(in srgb,var(--card-ink) 15%,transparent);pointer-events:none}.project-card[data-project-card=clocktower]:after,.project-card[data-project-card=secret]:after{border-color:color-mix(in srgb,var(--card-color) 45%,transparent)}.card-visual{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:var(--card-bg)}.card-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,9,8,.5) 0,rgba(8,9,8,.08) 28%,transparent 46%,rgba(8,9,8,.18) 100%)}.project-card[data-project-card=xiangtou] .card-visual:after{background:linear-gradient(180deg,rgba(207,143,24,.14) 0,transparent 38%,rgba(207,143,24,.08) 100%)}.card-visual img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position);-webkit-user-select:none;user-select:none;filter:saturate(.92) contrast(1.03) brightness(.82);transform:scale(1.08);transition:transform .65s cubic-bezier(.22,1,.36,1),filter .36s ease}.project-card[data-project-card=xiangtou] .card-visual img{filter:saturate(.87) contrast(1.02) brightness(.88)}.project-card.is-active .card-visual img{filter:saturate(1) contrast(1.02) brightness(.97);transform:scale(1)}.project-card[data-project-card=xiangtou].is-active .card-visual img{filter:saturate(.87) contrast(1.02) brightness(.88)}.card-title{position:absolute;top:clamp(1.05rem,2.25vh,1.5rem);right:clamp(1.4rem,2.1vw,2rem);left:1.5rem;z-index:5;display:flex;align-items:flex-start;flex-direction:column;pointer-events:none}.card-title strong{max-width:100%;overflow:hidden;font-size:clamp(2rem,3.4vw,3.2rem);font-weight:900;line-height:1.05;letter-spacing:.035em;text-overflow:clip;text-shadow:0 2px 0 color-mix(in srgb,var(--card-bg) 62%,transparent);white-space:nowrap;transition:font-size .5s cubic-bezier(.22,1,.36,1)}.project-card.is-active .card-title strong{font-size:clamp(3.6rem,5vw,4.9rem)}.project-card[data-project-card=xiangtou] .card-title{left:2rem}.card-title>span{width:40px;height:8px;margin-top:.9rem;background:var(--card-color);box-shadow:13px 0 color-mix(in srgb,var(--card-color) 20%,transparent)}.project-card[data-project-card=xiangtou] .card-title>span{background:var(--ink);box-shadow:none}.card-rail{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;width:100%;border:0;padding:0;color:var(--card-ink);background:transparent;text-align:left;cursor:pointer}.project-card.is-active .card-rail{pointer-events:none}.card-expanded{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;width:var(--active-card-width);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .13s ease,transform .25s ease}.card-expanded-link{color:inherit;text-decoration:none;cursor:pointer}.project-card.is-active .card-expanded{opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:.25s}.card-description{margin:0;border-left:2px solid currentColor;padding:.12rem 0 .12rem .8rem;color:color-mix(in srgb,var(--card-ink) 88%,transparent);font-size:clamp(.83rem,1vw,.98rem);font-weight:650;line-height:1.65;letter-spacing:.045em;text-shadow:0 1px 0 color-mix(in srgb,var(--card-bg) 74%,transparent)}.card-info{display:flex;align-items:flex-end;flex-direction:column;gap:.55rem;width:min(48%,29rem);padding:.52rem .66rem .58rem;background:color-mix(in srgb,var(--card-bg) 78%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--card-ink) 9%,transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.card-bottom{position:absolute;right:2rem;bottom:clamp(1.25rem,2.6vh,2rem);left:2rem;z-index:8;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.card-enter{display:inline-flex;align-items:center;gap:.8rem;width:max-content;min-width:176px;border:0;border-bottom:2px solid currentColor;padding:.45rem .1rem .62rem;color:var(--card-ink);background:transparent;font-family:IBM Plex Mono,monospace;font-size:1.13rem;font-weight:600;letter-spacing:.09em;text-decoration:none;cursor:pointer}.project-card[data-project-card=xiangtou] .card-enter{min-width:100px}.card-enter svg{transition:transform .22s ease}.card-enter:hover svg,.card-enter:focus-visible svg,.card-expanded-link:hover .card-enter svg,.card-expanded-link:focus-visible .card-enter svg{transform:translate(6px)}.card-caption{display:none;align-items:flex-end;flex-direction:column;gap:.35rem;padding-bottom:.52rem;color:color-mix(in srgb,var(--card-ink) 78%,transparent);font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.12em;white-space:nowrap}.treehole-main{overflow-y:auto;padding:clamp(2.8rem,6.2vh,4.6rem) clamp(2.2rem,4.4vw,4.6rem) clamp(2rem,4vh,3.2rem) clamp(2.8rem,6.6vw,6.2rem)}.treehole-page{display:flex;flex:1;flex-direction:column;min-width:0;animation:treehole-arrive .42s cubic-bezier(.22,1,.36,1) both}.treehole-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;border-bottom:1px solid rgba(223,166,17,.58);padding-bottom:clamp(.75rem,1.35vh,1rem)}.treehole-kicker,.treehole-note-index,.treehole-footnote{color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:600;letter-spacing:.18em}.treehole-kicker{margin:0 0 .7rem}.treehole-heading h1{margin:0;color:var(--paper);font-size:clamp(4.6rem,9vw,8rem);font-weight:900;letter-spacing:.04em;line-height:.92}.treehole-intro{margin:clamp(1.55rem,3vh,2rem) 0 0;color:#eadcbdb3;font-size:clamp(.9rem,1.2vw,1.08rem);line-height:1.55;letter-spacing:.08em}.treehole-mark{display:grid;flex:0 0 auto;place-items:center;width:clamp(108px,10vw,142px);aspect-ratio:1;border:1px solid rgba(234,220,189,.32);color:var(--gold);background:#0c0d0cd1 url(/assets/textures/black-paper.webp) center / 480px 480px repeat;box-shadow:8px 8px #9d30252e}.treehole-mark span{margin-top:-.7rem;color:#eadcbda3;font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.18em}.treehole-layout{display:grid;flex:1;grid-template-columns:minmax(230px,.72fr) minmax(460px,1.45fr);gap:clamp(.75rem,1.4vw,1.2rem);min-height:390px;margin-top:clamp(1rem,2.4vh,1.5rem)}.treehole-note,.treehole-card{border:1px solid rgba(234,220,189,.2);background:#0a0b0ae0 url(/assets/textures/black-paper.webp) center / 560px 560px repeat}.treehole-note{display:flex;flex-direction:column;padding:clamp(1.35rem,2.4vw,2.2rem)}.treehole-note-index{margin:0}.treehole-note h2{margin:1.3rem 0 0;color:var(--paper);font-size:clamp(1.9rem,3vw,3rem);font-weight:900;letter-spacing:.03em;line-height:1.18}.treehole-note-copy{margin:clamp(2.5rem,5vh,3.4rem) 0 0;color:#eadcbd9e;font-size:.84rem;line-height:2.05;letter-spacing:.08em}.treehole-privacy{display:flex;align-items:flex-start;gap:.8rem;margin-top:auto;border-top:1px solid rgba(223,166,17,.38);padding-top:1rem;color:var(--gold)}.treehole-privacy svg{flex:0 0 auto;margin-top:.15rem}.treehole-privacy span{color:#eadcbd9e;font-size:.7rem;line-height:1.7}.treehole-privacy strong{display:block;margin-bottom:.2rem;color:var(--paper);font-size:.76rem;letter-spacing:.06em}.treehole-card{position:relative;min-width:0;border-color:#9d3025b3;padding:clamp(1.35rem,2.6vw,2.4rem);box-shadow:12px 12px #9d30251f}.treehole-card:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(234,220,189,.08);pointer-events:none}.treehole-form,.treehole-response{position:relative;z-index:1;display:flex;height:100%;flex-direction:column}.treehole-form fieldset{margin:0;border:0;padding:0}.treehole-form legend,.treehole-label{display:block;margin:0 0 .7rem;color:#eadcbdb8;font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:600;letter-spacing:.14em}.mood-options{display:flex;flex-wrap:wrap;gap:.5rem}.mood-option{min-height:38px;border:1px solid rgba(234,220,189,.28);padding:.45rem .8rem;color:#eadcbdad;background:#0607068a;font-size:.76rem;letter-spacing:.08em;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}.mood-option:hover,.mood-option:focus-visible{border-color:var(--gold);color:var(--paper)}.mood-option.is-selected{border-color:var(--gold);color:var(--ink);background:var(--gold);box-shadow:inset 0 -3px 0 var(--red)}.treehole-label{margin-top:clamp(1.2rem,2.2vh,1.7rem)}.treehole-form textarea{flex:1;width:100%;min-height:150px;resize:vertical;border:1px solid rgba(234,220,189,.24);border-radius:0;padding:1rem 1.05rem;color:var(--paper);background:#03040394;font-size:.9rem;line-height:1.85;outline:none}.treehole-form textarea::placeholder{color:#eadcbd57}.treehole-form textarea:focus{border-color:var(--gold);box-shadow:inset 4px 0 0 var(--red)}.treehole-form-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:1rem}.treehole-counter{color:#eadcbd7a;font-family:IBM Plex Mono,monospace;font-size:.66rem;letter-spacing:.12em}.treehole-submit,.treehole-again{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:46px;border:1px solid var(--gold);padding:.65rem 1.1rem;color:var(--ink);background:var(--gold);font-weight:900;letter-spacing:.08em;cursor:pointer;transition:color .16s ease,background .16s ease,transform .16s ease}.treehole-submit:hover:not(:disabled),.treehole-submit:focus-visible,.treehole-again:hover,.treehole-again:focus-visible{color:var(--paper);background:var(--red);transform:translateY(-2px)}.treehole-submit:disabled{border-color:#eadcbd2e;color:#eadcbd4d;background:#eadcbd0f;cursor:not-allowed}.treehole-response{align-items:flex-start;justify-content:center;padding:clamp(.5rem,2vw,1.2rem);color:var(--paper)}.treehole-response>svg{color:var(--gold)}.treehole-response .treehole-note-index{margin:1rem 0 0}.treehole-response h2{margin:.55rem 0 0;font-size:clamp(2.2rem,4.2vw,4rem);font-weight:900;line-height:1.1}.treehole-response blockquote{max-width:640px;margin:1.3rem 0 0;border-left:4px solid var(--red);padding-left:1rem;color:#eadcbdd1;font-size:clamp(.95rem,1.4vw,1.15rem);line-height:1.85}.treehole-again{margin-top:1.4rem;color:var(--paper);background:transparent;font-size:.78rem}.treehole-footnote{margin:clamp(.9rem,2vh,1.3rem) 0 0;color:#eadcbd57;text-align:right}.panel-email{display:inline-block;margin-top:.9rem;color:#eadcbdb8;font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.05em;text-underline-offset:.28rem}.panel-email:hover,.panel-email:focus-visible{color:var(--gold)}@keyframes treehole-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1.5rem;background:#000000c7;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.info-panel{position:relative;width:min(520px,100%);border:1px solid rgba(223,166,17,.72);padding:clamp(2rem,5vw,3.5rem);color:var(--paper);background:#0d0e0d url(/assets/textures/black-paper.webp) center / 600px 600px repeat;box-shadow:16px 16px #dfa6111f}.project-grid-panel{position:relative;width:min(1180px,100%);max-height:calc(100svh - 3rem);overflow:auto;border:1px solid rgba(223,166,17,.72);padding:clamp(1.35rem,3.2vw,2.8rem);color:var(--paper);background:#0d0e0d url(/assets/textures/black-paper.webp) center / 600px 600px repeat;box-shadow:16px 16px #dfa6111f}.grid-panel-heading{padding-right:4rem}.grid-panel-heading h2{margin:0;font-size:clamp(2rem,4.2vw,4rem);font-weight:900;line-height:1.05}.grid-panel-heading>p:last-child{margin:.8rem 0 0;color:#eadcbda8}.project-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.55rem,1.2vw,.9rem);margin-top:clamp(1.4rem,3vh,2.2rem)}.grid-project-card{position:relative;display:block;aspect-ratio:1;min-width:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--card-color) 72%,#272724);padding:0;color:var(--card-ink);background:var(--card-bg);text-align:left;text-decoration:none;cursor:pointer}.grid-project-card:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:3;border:1px solid color-mix(in srgb,var(--card-ink) 24%,transparent);pointer-events:none}.grid-project-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:var(--image-position);filter:saturate(.88) contrast(1.06) brightness(.76);transform:scale(1.04);transition:filter .26s ease,transform .48s cubic-bezier(.22,1,.36,1)}.grid-card-shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(8,9,8,.56),transparent 45%,rgba(8,9,8,.72))}.grid-card-index,.grid-card-copy,.grid-card-action{position:absolute;z-index:4}.grid-card-index{top:1rem;right:1rem;color:var(--card-color);font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:.14em}.grid-card-copy{top:1rem;left:1rem;display:flex;flex-direction:column;gap:.35rem;max-width:calc(100% - 3.2rem)}.grid-card-copy strong{overflow:hidden;color:var(--paper);font-size:clamp(1.15rem,1.8vw,1.7rem);font-weight:900;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.grid-card-copy small{color:#eadcbdb3;font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.09em}.grid-card-action{right:1rem;bottom:1rem;left:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid currentColor;padding-bottom:.35rem;color:var(--paper);font-family:IBM Plex Mono,monospace;font-size:.7rem;letter-spacing:.1em}.grid-project-card:hover img,.grid-project-card:focus-visible img{filter:saturate(1) contrast(1.03) brightness(.96);transform:scale(1)}.panel-close{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(234,220,189,.32);color:var(--paper);background:transparent;cursor:pointer}.panel-kicker{margin:0 0 1rem;color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.2em}.info-panel h2{margin:0;font-size:clamp(2rem,6vw,3.5rem);font-weight:900;line-height:1.15}.info-panel>p:not(.panel-kicker){margin:1.5rem 0 0;color:#eadcbdc2;line-height:1.9}.panel-status{display:flex;align-items:center;gap:.75rem;margin-top:2rem;color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:.75rem;letter-spacing:.12em}.panel-status span{width:30px;height:3px;background:currentColor}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){:root{--rail-width: 112px}.side-rail{padding-inline:1.1rem}.rail-wordmark{font-size:.68rem}.rail-link{gap:.75rem;font-size:.9rem}.poster-main{padding-left:clamp(2.8rem,6vw,4.5rem)}.poster-hero{min-height:270px}.hero-title{width:min(72vw,720px)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-stage{height:clamp(410px,53vh,520px)}.card-title strong{font-size:clamp(1.7rem,3.1vw,2.35rem)}.treehole-layout{grid-template-columns:minmax(205px,.68fr) minmax(390px,1.32fr)}.treehole-note{padding:1.35rem}}@media(max-width:760px){html,body{min-width:0}.poster-shell{display:block;min-height:100svh;overflow-y:auto}.side-rail{display:none}.mobile-header{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;height:66px;border-bottom:1px solid rgba(223,166,17,.32);padding:0 1.15rem}.mobile-header button{border:0;padding:.5rem;color:var(--paper);background:transparent;cursor:pointer}.mobile-header nav{display:flex;align-items:center;gap:.1rem}.mobile-header nav a,.mobile-header nav button{border:0;padding:.5rem;color:var(--paper);background:transparent;font-size:.82rem;text-decoration:none;cursor:pointer}.mobile-header nav a.is-current{color:var(--gold)}.poster-main{display:block;min-height:0;padding:1.5rem 1rem 2rem}.treehole-main{padding:1.4rem 1rem 2.2rem}.treehole-page{min-height:0}.treehole-heading{align-items:flex-end;gap:.8rem}.treehole-kicker{font-size:.56rem;letter-spacing:.12em}.treehole-heading h1{font-size:clamp(3.6rem,20vw,5rem)}.treehole-intro{margin-top:1.1rem;font-size:.78rem;line-height:1.55}.treehole-mark{width:80px;box-shadow:5px 5px #9d30252e}.treehole-mark svg{width:43px;height:43px}.treehole-mark span{font-size:.48rem}.treehole-layout{display:flex;flex-direction:column;min-height:0;margin-top:1rem}.treehole-note{min-height:290px}.treehole-note h2{font-size:2rem}.treehole-note-copy{margin-top:2rem;line-height:1.9}.treehole-card{min-height:430px;padding:1.3rem;box-shadow:7px 7px #9d30251f}.treehole-form textarea{min-height:185px}.mood-option{min-height:40px}.treehole-response{min-height:370px}.treehole-footnote{margin-top:1.2rem;font-size:.56rem;text-align:left}.poster-hero{min-height:155px}.hero-code{display:none}.hero-title{width:min(100%,520px);margin-top:0}.hero-copy p{margin-top:.75rem;font-size:.68rem}.projects-carousel{overflow:visible}.projects-stage{display:flex;flex-direction:column;gap:1rem;height:auto;min-height:0;overflow:visible;padding-bottom:0;scroll-snap-type:none}.projects-stage:has(.project-card.is-active){width:100%}.carousel-control{display:none}.project-card{flex:none;width:100%;height:clamp(230px,68vw,310px);scroll-margin-top:82px;scroll-snap-align:none;transition:height .42s cubic-bezier(.22,1,.36,1),filter .26s ease,border-color .18s ease}.project-card.is-active{height:clamp(390px,112vw,500px)}.card-title{top:1.2rem;right:1.2rem;left:1.2rem;align-items:flex-start}.card-title strong{font-size:clamp(2rem,10vw,2.8rem);letter-spacing:.055em;writing-mode:horizontal-tb}.project-card.is-active .card-title{right:1.2rem;left:1.2rem;align-items:flex-start}.project-card.is-active .card-title strong{font-size:clamp(2.55rem,12vw,3.4rem);writing-mode:horizontal-tb}.card-title>span{width:34px;height:6px;margin-top:.75rem}.project-card.is-active .card-title>span{width:38px;height:6px}.card-expanded{width:100%}.card-bottom{align-items:flex-start;flex-direction:column-reverse;gap:.85rem}.card-info{align-items:flex-start;width:100%}.card-description{font-size:.78rem}.card-bottom{right:1.2rem;bottom:1.1rem;left:1.2rem}.card-enter{min-width:118px;font-size:.82rem}.card-caption{display:none}.info-panel{box-shadow:8px 8px #dfa6111f}.project-grid-panel{padding:1.15rem;box-shadow:8px 8px #dfa6111f}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.grid-panel-heading{padding:0 3.4rem 0 .25rem}.grid-project-card:after{top:5px;right:5px;bottom:5px;left:5px}.grid-card-copy{top:.7rem;left:.7rem}.grid-card-index{top:.7rem;right:.7rem}.grid-card-action{right:.7rem;bottom:.7rem;left:.7rem}}@media(prefers-reduced-motion:reduce){html,.projects-stage{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
