:root{--ink:#111316;--muted:#6d737a;--line:#d8dce1;--gray:#f2f2f2;--green:#164b3c;--gutter:clamp(22px,4.5vw,72px);--space:clamp(76px,10vw,150px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,"Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}figure{margin:0}
.site-header{position:sticky;z-index:20;top:0;display:flex;min-height:80px;align-items:center;justify-content:flex-end;padding:0 var(--gutter);border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.desktop-nav{display:flex;gap:clamp(32px,4vw,64px)}.desktop-nav a{position:relative;padding:29px 0;font-size:15px;font-weight:520}.desktop-nav a:after{position:absolute;bottom:16px;left:50%;width:6px;height:6px;border-radius:50%;content:"";background:var(--green);opacity:0;transform:translateX(-50%) scale(.4);transition:opacity .2s ease,transform .2s ease}.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{opacity:1;transform:translateX(-50%) scale(1)}.menu-button,.mobile-nav{display:none}
.hero{padding:clamp(72px,8vw,120px) var(--gutter) clamp(48px,6vw,88px);border-bottom:1px solid var(--line);background:var(--gray)}.hero-copy{text-align:center;padding-bottom:clamp(48px,6vw,80px)}.hero h1{margin:0;font-size:clamp(48px,6vw,88px);font-weight:600;letter-spacing:-.045em;line-height:1.08}.hero-copy>p{margin:24px 0 0;color:var(--muted);font-size:clamp(18px,1.35vw,22px)}.hero-actions{display:flex;justify-content:center;gap:34px;margin-top:36px}.hero-image{overflow:hidden;aspect-ratio:2.25/1;border-radius:20px;background:#e4e7e9}.hero-image img{object-position:center 64%}
.text-link{display:inline-flex;align-items:center;gap:15px;padding-bottom:5px;border-bottom:1px solid transparent;color:var(--green);font-size:16px;font-weight:650;transition:gap .18s ease,border-color .18s ease}.text-link:hover{gap:21px;border-color:currentColor}
.section{padding:var(--space) var(--gutter)}h2{margin:0;font-size:clamp(42px,4.1vw,70px);font-weight:620;letter-spacing:-.045em;line-height:1.08}.journal{border-bottom:1px solid var(--line)}.journal-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.78fr);gap:clamp(48px,7vw,112px);align-items:start}.journal h2{margin-bottom:48px}.note-list{border-top:1px solid var(--line)}.note-row{display:grid;grid-template-columns:minmax(145px,.35fr) 1fr;gap:8px 28px;padding:27px 0;border-bottom:1px solid var(--line)}.note-row small{grid-row:1/3;color:var(--muted);font-size:14px}.note-row h3{margin:0;font-size:clamp(22px,2.2vw,34px);font-weight:540;letter-spacing:-.025em}.note-row p{margin:8px 0 0;color:var(--muted);line-height:1.65}.notes-image{aspect-ratio:4/5;background:#e8eaec}
.section-heading{display:grid;grid-template-columns:.75fr 1fr;align-items:end;gap:48px;padding-bottom:clamp(50px,6vw,82px)}.section-heading-single{display:block}.section-heading p{max-width:34em;margin:0;color:var(--muted);font-size:clamp(17px,1.45vw,22px)}.projects{border-bottom:1px solid var(--line)}.project{display:grid;grid-template-columns:1.7fr .9fr;align-items:center;gap:clamp(42px,7vw,110px);padding:clamp(48px,6vw,86px) 0;border-top:1px solid var(--line)}.project.reverse{grid-template-columns:.9fr 1.7fr}.project.reverse .project-image{order:2}.project-image{overflow:hidden;aspect-ratio:3/2;background:#e8eaec}.project-copy>span{display:block;margin-bottom:28px;color:#a1a6ac;font-size:28px}.project h3{margin:0;font-size:clamp(30px,3vw,50px);font-weight:600;letter-spacing:-.035em}.project-copy p{margin:22px 0;color:#4f555c;font-size:17px;line-height:1.7}.project-copy small{color:#858a90}.project-links{display:flex;flex-wrap:wrap;gap:20px 32px;margin-top:30px}
.resources{padding:var(--space) var(--gutter);border-bottom:1px solid var(--line);background:var(--gray)}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.resource-grid article{min-height:270px;padding:clamp(28px,4vw,52px);background:#fff}.resource-grid small{color:var(--muted);letter-spacing:.04em}.resource-grid h3{margin:24px 0 16px;font-size:clamp(25px,2.5vw,38px);font-weight:560;letter-spacing:-.035em;line-height:1.2}.resource-grid p{margin:0;color:var(--muted);line-height:1.7}
.about{display:grid;grid-template-columns:1.4fr minmax(260px,.55fr);gap:clamp(50px,10vw,150px);align-items:center;padding:var(--space) var(--gutter)}.about h2{max-width:12em}.balanced-title span{display:block;white-space:nowrap}.about p{max-width:48em;margin:38px 0 32px;color:var(--muted);font-size:17px;line-height:1.75}.avatar{overflow:hidden;aspect-ratio:1/1;border:1px solid var(--line);border-radius:28px;background:#fafafa}.avatar img{object-position:center 62%}.not-found{min-height:80vh}
.about-page-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.58fr);gap:clamp(56px,10vw,150px);align-items:center;padding:var(--space) var(--gutter);border-bottom:1px solid var(--line)}.about-page-copy h1{margin:0;font-size:clamp(54px,7vw,100px);font-weight:620;letter-spacing:-.055em;line-height:1.02}.about-page-copy h1 span{display:block;white-space:nowrap}.about-page-lead{max-width:30em;margin:38px 0 0;color:var(--muted);font-size:clamp(20px,1.9vw,28px);line-height:1.65}.about-page-avatar{overflow:hidden;aspect-ratio:1/1;border:1px solid var(--line);border-radius:28px;background:#fafafa}.about-page-avatar img{object-position:center 62%}.about-story{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.25fr);gap:clamp(48px,10vw,150px);padding:var(--space) var(--gutter);border-bottom:1px solid var(--line)}.about-story h2{font-size:clamp(36px,4vw,62px)}.about-story-copy{max-width:760px}.about-story-copy p{margin:0 0 24px;color:#40464d;font-size:clamp(17px,1.4vw,20px);line-height:1.9}.about-focus{padding:var(--space) var(--gutter);background:var(--gray)}.about-focus>h2{margin-bottom:clamp(46px,6vw,76px)}.focus-list{border-top:1px solid var(--line)}.focus-item{display:grid;grid-template-columns:minmax(120px,.3fr) 1fr;gap:28px;padding:clamp(30px,4vw,48px) 0;border-bottom:1px solid var(--line)}.focus-item small{color:#92979d;font-size:17px}.focus-item h3{margin:0 0 14px;font-size:clamp(25px,2.5vw,38px);font-weight:580;letter-spacing:-.03em}.focus-item p{max-width:48em;margin:0;color:var(--muted);line-height:1.75}
.index-hero{padding:clamp(72px,9vw,132px) var(--gutter);border-bottom:1px solid var(--line);background:var(--gray)}.index-hero h1{max-width:10em;margin:0;font-size:clamp(54px,7vw,100px);font-weight:620;letter-spacing:-.055em;line-height:1.02}.index-hero p{max-width:38em;margin:32px 0 0;color:var(--muted);font-size:clamp(18px,1.6vw,25px);line-height:1.7}.content-index{padding:clamp(54px,7vw,96px) var(--gutter) var(--space)}.index-list{border-top:1px solid var(--line)}.index-item{display:grid;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr) auto;gap:22px 42px;align-items:start;padding:clamp(34px,4.5vw,58px) 0;border-bottom:1px solid var(--line)}.index-meta{color:var(--muted);font-size:14px;line-height:1.6}.index-copy h2{margin:0;font-size:clamp(28px,3vw,46px);font-weight:590;letter-spacing:-.035em}.index-copy p{max-width:48em;margin:16px 0 0;color:var(--muted);font-size:17px;line-height:1.75}.index-status{align-self:center;color:#969ba1;font-size:14px;white-space:nowrap}.index-item-link{transition:color .18s ease}.index-item-link:hover .index-copy h2{color:var(--green)}.index-actions{display:flex;flex-wrap:wrap;gap:18px 28px;margin-top:24px}.index-note{margin:44px 0 0;color:var(--muted);font-size:15px}.project-index-item{grid-template-columns:minmax(90px,.16fr) minmax(0,1fr) auto}.project-index-item .index-meta:first-child{font-size:26px;color:#9da2a8}
.project-page-hero{padding:var(--space) var(--gutter) clamp(60px,8vw,112px);border-bottom:1px solid var(--line);background:var(--gray)}.project-page-label{margin:0 0 26px;color:var(--muted);font-size:15px;letter-spacing:.05em}.project-page-hero h1{max-width:11em;margin:0;font-size:clamp(50px,7vw,100px);font-weight:620;letter-spacing:-.055em;line-height:1.02}.project-page-lead{max-width:38em;margin:34px 0 0;color:#4f555c;font-size:clamp(19px,1.65vw,26px);line-height:1.65}.project-page-actions{display:flex;flex-wrap:wrap;gap:22px 34px;margin-top:36px}.project-overview{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.25fr);gap:clamp(48px,10vw,150px);padding:var(--space) var(--gutter);border-bottom:1px solid var(--line)}.project-overview h2,.project-features h2{font-size:clamp(36px,4vw,62px)}.project-overview-copy{max-width:780px}.project-overview-copy p{margin:0 0 24px;color:#40464d;font-size:clamp(17px,1.4vw,20px);line-height:1.9}.project-features{padding:var(--space) var(--gutter);background:#fff}.project-features h2{margin-bottom:clamp(46px,6vw,76px)}.feature-list{border-top:1px solid var(--line)}.feature-item{display:grid;grid-template-columns:minmax(110px,.26fr) 1fr;gap:30px;padding:clamp(30px,4vw,48px) 0;border-bottom:1px solid var(--line)}.feature-item small{color:#92979d;font-size:17px}.feature-item h3{margin:0 0 13px;font-size:clamp(25px,2.5vw,38px);font-weight:580;letter-spacing:-.03em}.feature-item p{max-width:50em;margin:0;color:var(--muted);line-height:1.75}.project-privacy{padding:clamp(58px,8vw,110px) var(--gutter);border-top:1px solid var(--line);background:var(--gray)}.project-privacy p{max-width:34em;margin:0 0 30px;font-size:clamp(28px,3.7vw,58px);font-weight:560;letter-spacing:-.04em;line-height:1.25}
.site-footer{display:flex;min-height:112px;align-items:center;justify-content:flex-end;padding:0 var(--gutter);border-top:1px solid var(--line)}.site-footer small{color:var(--muted)}
@media(max-width:800px){.site-header{min-height:68px}.desktop-nav{display:none}.menu-button{display:grid;width:44px;height:44px;padding:10px;place-items:center;border:0;background:transparent;color:inherit;cursor:pointer}.menu-button svg{width:24px;height:24px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.mobile-nav{position:absolute;z-index:100;top:100%;right:0;left:0;min-height:calc(100vh - 68px);flex-direction:column;padding:22px var(--gutter);border-top:1px solid var(--line);background:#f5f5f7;box-shadow:0 20px 36px rgba(29,29,31,.14)}.mobile-nav:not([hidden]){display:flex}.mobile-nav a{position:relative;padding:18px 0;border-bottom:1px solid var(--line);font-size:23px;text-align:right}.mobile-nav a[aria-current="page"]:before{display:inline-block;width:6px;height:6px;margin-right:11px;border-radius:50%;background:var(--green);content:"";vertical-align:middle}.hero{padding-top:62px}.hero-actions{flex-wrap:wrap}.hero-image{aspect-ratio:4/3;border-radius:14px}.hero-image img{object-position:center center}.journal-grid,.section-heading,.project,.project.reverse,.about,.about-page-hero,.about-story,.project-overview{grid-template-columns:1fr}.notes-image{width:min(100%,460px);margin-inline:auto}.notes-image img{object-position:center center}.project.reverse .project-image{order:0}.resource-grid{grid-template-columns:1fr}.resource-grid article{min-height:220px}.avatar,.about-page-avatar{width:min(100%,360px);margin-inline:auto}.about-copy{order:2}.about-page-avatar{grid-row:1}.about-page-copy{grid-row:2}.focus-item,.feature-item,.index-item,.project-index-item{grid-template-columns:1fr;gap:12px}.index-status{margin-top:8px}.site-footer{min-height:96px;justify-content:center}}
@media(max-width:520px){:root{--gutter:20px}.hero h1{font-size:clamp(40px,12vw,50px)}h2{font-size:40px}.note-row{grid-template-columns:1fr;gap:7px}.note-row small{grid-row:auto}.about h2{font-size:clamp(34px,10vw,43px)}.about-page-copy h1{font-size:clamp(42px,12vw,54px)}}
.site-header{justify-content:space-between}.desktop-nav{margin-left:auto}.site-logo{display:block;width:48px;height:48px}.site-logo img{display:block;width:100%;height:100%;object-fit:contain}.hero-link,.hero-link:hover{gap:0;color:var(--green)}.index-hero{text-align:left}.index-hero h1,.index-hero p{margin-right:auto;margin-left:0}.about-page-copy{text-align:left}.about-page-lead{margin-right:auto;margin-left:0}
@media(max-width:800px){.site-logo{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
