*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#f7f8f8;color:#151719;font-family:Arial,"Helvetica Neue","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #007da8;outline-offset:7px}a:hover{opacity:.68}.skip{position:absolute;top:-80px;left:20px;background:white;padding:15px;z-index:10}.skip:focus{top:10px}header{height:88px;display:flex;align-items:center;justify-content:space-between;margin:0 5%;border-bottom:1px solid #cdd0d2;position:relative;z-index:2}.brand{font-size:13px;font-weight:700;letter-spacing:.05em}nav{display:flex;gap:30px;font-size:11px;letter-spacing:.09em}main{overflow:hidden}.hero{min-height:720px;height:calc(100svh - 88px);max-height:1000px;position:relative;padding:80px 5% 38px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate}.hero:before{content:"";position:absolute;inset:-88px 0 -20px;z-index:-2;background:radial-gradient(ellipse at 78% 61%,#a5d8ee 0%,#c1e9fb 15%,transparent 44%),radial-gradient(ellipse at 97% 10%,#05070b 0%,#1b2930 17%,transparent 52%),radial-gradient(ellipse at 30% 100%,#fff 0%,#eff3f5 42%,transparent 70%),#e8ecee}.hero:after,.color-field:after{content:"";position:absolute;inset:0;background:url('/assets/grain.svg');opacity:.25;mix-blend-mode:multiply;pointer-events:none;z-index:-1}.eyebrow,.micro{font-size:11px;letter-spacing:.13em;line-height:1.8}.hero .eyebrow{max-width:250px}.hero h1{font-size:clamp(80px,12.2vw,200px);font-weight:500;line-height:.83;letter-spacing:-.075em;margin:80px 0 45px}.hero h1 span{display:block}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.role{font-size:clamp(16px,1.75vw,26px);letter-spacing:-.03em}.hero-note{font-size:12px;line-height:2;margin-top:18px}.scroll-link{font-size:11px;letter-spacing:.08em;display:flex;align-items:center;gap:35px}.scroll-link span{font-size:28px}.section{margin:0 5%;padding:105px 0;border-top:1px solid #cdd0d2;display:grid;grid-template-columns:28% 1fr;gap:5%}.section h2{font-size:13px;letter-spacing:.08em;font-weight:500;margin:4px 0}.section-number{font-size:10px;color:#696e72;display:block;margin-bottom:15px}.profile-lead{font-size:clamp(24px,3.1vw,44px);font-weight:400;line-height:1.65;letter-spacing:-.04em;margin:0 0 35px}.body-copy{max-width:620px;font-size:14px;line-height:2.3}.skills{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:35px;color:#5b6266;font-size:11px}.work-intro{margin:0 0 35px;font-size:13px;line-height:2;color:#5b6266}.work-row{display:grid;grid-template-columns:90px 1fr 25px;gap:16px;border-top:1px solid #cdd0d2;padding:29px 0;align-items:start}.work-row:last-child{border-bottom:1px solid #cdd0d2}.work-meta{font-size:10px;line-height:1.9;color:#62696d}.work-title{font-size:clamp(16px,1.6vw,22px);line-height:1.65;letter-spacing:-.025em}.work-detail{display:block;font-size:11px;color:#62696d;margin-top:10px;line-height:1.8}.arrow{font-size:24px;line-height:1.3}.app{display:grid;grid-template-columns:112px 1fr;gap:30px;align-items:center}.app img{width:112px;height:112px;border-radius:24px}.app h3{font-size:25px;font-weight:500;margin:10px 0}.app p{font-size:13px;line-height:2}.text-link{display:inline-block;border-bottom:1px solid;padding:8px 0;font-size:12px;margin-top:12px}.contact{position:relative;background:#15191c;color:#fff;padding:85px 5%;display:flex;justify-content:space-between;align-items:end;gap:30px}.contact h2{font-size:clamp(40px,7vw,100px);font-weight:400;letter-spacing:-.06em;margin:20px 0 0}.contact a{font-size:14px;border-bottom:1px solid #71828d;padding:12px 0}.footer{padding:28px 5%;display:flex;justify-content:space-between;gap:25px;font-size:10px;color:#5b6266;line-height:1.8}.footer-links{display:flex;flex-wrap:wrap;gap:20px}.document{max-width:800px;margin:0 auto;padding:80px 25px 100px;min-height:75vh}.document.wide{max-width:1000px}.document h1{font-size:clamp(30px,5vw,55px);font-weight:500;letter-spacing:-.045em;line-height:1.4;margin:20px 0}.document h2{font-size:20px;font-weight:500;margin:45px 0 15px}.document p,.document li{font-size:14px;line-height:2.15}.document a{border-bottom:1px solid #93a3ac}.document .date{font-size:11px;color:#657078;margin-bottom:40px}.document .back{font-size:11px}.document .app{margin:45px 0}.document .app h1{font-size:40px}.policy-nav{display:flex;gap:25px;margin:40px 0;flex-wrap:wrap}.color-field{height:180px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 70% 90%,#b2e8ff,transparent 60%),linear-gradient(125deg,#f8f8f8 15%,#91a5b1 50%,#101419);margin:40px 0}.notice{border-left:2px solid #9dddf5;padding-left:20px;color:#53616a}summary{cursor:pointer;padding:22px 0;font-size:15px}details{border-bottom:1px solid #cdd0d2}details p{padding-bottom:15px} @media(max-width:650px){header{height:74px}nav{gap:17px;font-size:9px}.brand{font-size:11px}.hero{min-height:640px;height:calc(90svh - 74px);padding-top:45px}.hero h1{font-size:19vw;margin:80px 0 40px}.hero:before{background:radial-gradient(ellipse at 90% 50%,#a5d8ee,transparent 55%),radial-gradient(ellipse at 100% 0%,#101419,transparent 58%),#e7ecef}.hero-bottom{align-items:start}.hero-note{font-size:11px}.scroll-link{gap:10px;font-size:9px}.section{padding:65px 0;grid-template-columns:1fr;gap:30px}.section h2{display:flex;gap:15px;align-items:center}.section-number{margin:0}.work-row{grid-template-columns:60px 1fr 16px;gap:10px;padding:24px 0}.work-meta{font-size:9px}.app{grid-template-columns:76px 1fr;gap:20px}.app img{width:76px;height:76px;border-radius:18px}.contact{align-items:start;flex-direction:column;padding-top:60px;padding-bottom:60px}.footer{flex-direction:column;gap:12px}.document{padding-top:45px}.document .app h1{font-size:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* A quiet field of grains, forming one word at a time. */
.particle-words{position:relative;width:100%;height:clamp(170px,19vw,240px);margin:0;overflow:hidden;isolation:isolate}
.particle-words canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .5s}
.particle-words.is-ready canvas{opacity:1}
.particle-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(38px,5.8vw,100px);font-weight:600;letter-spacing:-.045em;color:#253a44}
.particle-words.is-ready .particle-fallback{visibility:hidden}
.particle-controls{display:flex;justify-content:flex-end;min-height:34px;margin:0 0 28px}
.particle-toggle{border:0;background:transparent;color:#5b6266;font:inherit;font-size:10px;letter-spacing:.06em;cursor:pointer;min-height:32px;padding:8px 0 8px 15px;display:flex;align-items:center;gap:14px}
.particle-toggle[hidden]{display:none}.particle-toggle:hover{color:#151719}.particle-toggle:focus-visible{outline:2px solid #007da8;outline-offset:4px}
@media(max-width:650px){.particle-words{height:150px;margin-top:0}.particle-controls{margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){.particle-words canvas{transition:none}}

.profile-prefix{color:#151719;font-size:clamp(20px,2.6vw,38px);font-weight:400;line-height:1.3;letter-spacing:-.045em;margin:0}
/* Articles and talks sit in a full-width, dark field of grain. */
.activity-section{position:relative;isolation:isolate;margin:0;padding:105px 5%;border-top:0;color:#f7fafb;background:#0c1013}
.activity-section::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 100% 90%,#91bfd5 0%,#49697b 18%,transparent 58%),radial-gradient(ellipse at 65% 0%,#344852 0%,transparent 50%),#0c1013}
.activity-section::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(4,7,9,.72),rgba(4,7,9,.28)),url('/assets/grain.svg');background-blend-mode:multiply;opacity:.75;pointer-events:none}
.activity-section .section-number{color:#a7bbc6}
.activity-section .work-intro{color:#d7e2e8}
.activity-section .work-meta,.activity-section .work-detail{color:#becfd8}
.activity-section .work-row,.activity-section .work-row:last-child{border-color:rgba(225,240,249,.24)}
.activity-section .work-row:hover{opacity:1;color:#c2e9fc}
.activity-section .work-row:focus-visible{outline-color:#a6e0fc}
.activity-section+.section{border-top:0}
@media(max-width:650px){.activity-section{padding:65px 5%}.profile-prefix{font-size:22px}}
