:root{--ink:#2C2218;--body:#4A3C2E;--mid:#7A6A58;--sage:#6B9B6F;--sage-d:#4A7A4E;--sage-bg:#EFF4EF;--warm:#FAF7F1;--kick:#8A4A22;--line:rgba(44,34,24,.12);--max:1080px;--pad:60px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--body);font:300 17px/1.8 Jost,"Century Gothic","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:300;color:var(--ink);line-height:1.15;margin:0 0 .55em}
h1{font-size:clamp(36px,5vw,60px);letter-spacing:-.01em}
h2{font-size:clamp(26px,3.2vw,38px);margin-top:0}
h3{font-size:clamp(22px,2.2vw,27px);font-weight:400;margin-top:0}
h4{font-size:22px;font-weight:400}
em{font-style:italic;color:var(--sage);font-weight:300}
p{margin:0 0 1.1em;max-width:660px}
a{color:var(--sage-d)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}.narrow{max-width:var(--max)}.center{text-align:center}.center p,.center .lead{margin-left:auto;margin-right:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;height:64px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:50}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 var(--pad);height:100%;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center}.logo img{height:30px;width:auto;display:block}
nav{display:flex;gap:28px;align-items:center}nav a{text-decoration:none;color:var(--body);font-size:14px;letter-spacing:.04em}nav a[aria-current]{color:var(--sage-d);border-bottom:1px solid var(--sage)}nav a:hover{color:var(--sage-d)}
nav .btn-sm{border:1px solid var(--sage);padding:7px 18px;border-radius:4px;color:var(--sage-d);border-bottom:1px solid var(--sage)}nav .btn-sm:hover{background:var(--sage);color:#fff}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:5px 12px;font:inherit;font-size:14px;color:var(--ink)}
main{padding-top:64px}
/* type bits */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--kick);font-weight:500;margin:0 0 22px;max-width:none}
.eyebrow::before{content:"";width:24px;height:1px;background:#C17D4A;flex:none}
.center .eyebrow{justify-content:center}
.lead{font-size:18px;color:var(--mid);line-height:1.85;max-width:620px;font-weight:400}
.muted{color:var(--mid)}
.pull{font-family:"Cormorant Garamond",serif;font-size:clamp(24px,3vw,32px);font-style:italic;font-weight:300;line-height:1.35;color:var(--ink);border-left:2px solid var(--sage);padding-left:24px;margin:40px 0;max-width:640px}
/* sections */
.hero{padding-top:96px;padding-bottom:64px;background:#fff}
.hero h1,.sec h2{max-width:780px}.hero h1{margin-bottom:.45em}.center h1,.center h2{margin-left:auto;margin-right:auto}
.sec{padding-top:80px;padding-bottom:80px}.sec.wrap{padding-left:var(--pad);padding-right:var(--pad)}
.amber{background:var(--warm)}.sage{background:var(--sage-bg)}
.band{padding-top:88px;padding-bottom:88px;background:var(--sage-bg)}
/* buttons */
.btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:34px 0 0}.center .btns{justify-content:center}
.btn{display:inline-flex;align-items:center;background:var(--sage);color:#fff;text-decoration:none;padding:15px 30px;border-radius:4px;font-weight:500;font-size:15px;letter-spacing:.05em;transition:background .2s}
.btn:hover{background:var(--sage-d)}.btn.ghost{background:none;color:var(--mid);font-weight:400;padding:15px 20px}.btn.ghost:hover{color:var(--ink)}
.lang{margin-top:26px;color:var(--mid);font-size:14px;letter-spacing:.04em}
/* grids and rows */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;margin:24px 0}
.card,.ex{border-top:1px solid var(--sage);padding-top:22px}.card h3,.ex h4{margin-bottom:.5em}
.card p,.ex p{font-size:16px;max-width:none}
.more{display:inline-block;margin-top:6px;font-weight:400;text-decoration:none;font-size:15px;letter-spacing:.03em}.more:hover{text-decoration:underline}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);gap:56px;padding:40px 0;border-top:1px solid var(--line)}.row:last-of-type{border-bottom:1px solid var(--line)}
.row h3{margin:0}.row p:last-child{margin-bottom:0}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}.chips li{border:1px solid var(--line);border-radius:999px;padding:3px 16px;font-size:14px;color:var(--mid)}
.founder-row{display:flex;gap:56px;align-items:center}
.founder-row img{width:260px;height:325px;object-fit:cover;object-position:50% 12%;border-radius:2px;flex:none}
/* principles + numbers */
.princ{list-style:none;padding:0;margin:40px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:40px 56px}
.princ li{display:block;border-top:1px solid var(--line);padding-top:18px}.princ h3{margin:.1em 0 .4em;font-size:24px}.princ p{font-size:16px;margin:0}
.num{display:block;font-family:"Cormorant Garamond",serif;font-size:15px;letter-spacing:.2em;color:var(--kick);font-weight:500;margin-bottom:6px}
/* cases */
.case{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);gap:56px;padding:40px 0;border-top:1px solid var(--line);margin:0}
.case:last-of-type{border-bottom:1px solid var(--line)}
.case h3{margin:0 0 .5em}.case .tags{grid-column:1;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--kick);margin:0;line-height:1.7}
.case .desc{grid-column:2;grid-row:1;font-weight:400;color:var(--ink);margin-bottom:.8em}.case .body,.case>p:not(.tags):not(.desc){grid-column:2;margin:0}
.case>div{grid-column:1;grid-row:1/span 2}
.plain{padding-left:1.1em;max-width:660px}.plain li{margin:.45em 0}.plain li::marker{color:var(--sage)}
.people{list-style:none;padding:0}.people li{margin:0 0 18px}
/* people grid */
.group-label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--kick);font-weight:500;margin:0 0 26px;padding-bottom:12px;border-bottom:1px solid var(--line);max-width:none}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-bottom:64px}.pgrid.three{grid-template-columns:repeat(3,1fr);gap:40px}
.pgrid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:2px;margin-bottom:14px;background:#F0EDE8;display:block}
.pname{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:400;color:var(--ink);line-height:1.2;margin:0 0 4px}
.prole{font-size:14px;color:var(--mid);line-height:1.6;margin:0;max-width:none}
/* quotes */
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 56px;margin-top:40px}
blockquote{margin:0;padding:0}blockquote p{font-family:"Cormorant Garamond",serif;font-size:clamp(21px,2.2vw,25px);font-style:italic;font-weight:300;line-height:1.4;color:var(--ink);margin:0 0 12px;max-width:none}
cite{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--kick);font-style:normal;font-weight:500}
.facts{display:grid;grid-template-columns:200px 1fr;gap:0 40px;margin:28px 0;border-top:1px solid var(--line)}.facts dt,.facts dd{padding:16px 0;border-bottom:1px solid var(--line);margin:0}.facts dt{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--kick);font-weight:500;padding-top:20px}
footer{border-top:1px solid var(--line);padding:44px 0;font-size:14px;color:var(--mid)}.foot-links{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:14px}.foot-links a{color:var(--body);text-decoration:none}.foot-links a:hover{color:var(--sage-d)}footer p{margin:0}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
@media(max-width:900px){:root{--pad:28px}.grid3,.grid2,.princ,.quotes{grid-template-columns:1fr;gap:32px}.row,.case{grid-template-columns:1fr;gap:12px;padding:30px 0}.case .tags,.case .desc,.case>p:not(.tags):not(.desc),.case>div{grid-column:1;grid-row:auto}.founder-row{flex-direction:column;align-items:flex-start;gap:28px}.founder-row img{width:200px;height:250px}.pgrid,.pgrid.three{grid-template-columns:repeat(2,1fr);gap:28px}.facts{grid-template-columns:1fr}.facts dt{border-bottom:0;padding-bottom:0}
.burger{display:block}nav{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:20px 28px;gap:16px;border-bottom:1px solid var(--line)}nav.open{display:flex}.hero{padding-top:56px;padding-bottom:40px}.sec{padding-top:56px;padding-bottom:56px}.band{padding-top:64px;padding-bottom:64px}}
@media(max-width:480px){.btns{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* how tmatsu thinks */
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:48px 0 40px}
figure{margin:0}figure svg{width:100%;height:auto;display:block;background:#fff;border:1px solid var(--line);border-radius:6px}
figcaption{padding-top:18px}figcaption .num{margin-bottom:4px}figcaption h4{margin:0 0 .3em}figcaption p{font-size:16px;margin:0}
.two-for{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;margin:8px 0 28px}.two-for p:last-child{margin-bottom:0}
.walk{animation:march 2.4s linear infinite}@keyframes march{to{stroke-dashoffset:-22}}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media(max-width:900px){.figs,.two-for{grid-template-columns:1fr;gap:32px}}
@media(prefers-reduced-motion:reduce){.walk{animation:none}.reveal{opacity:1;transform:none;transition:none}}
.premise{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:72px;align-items:center;margin-top:88px;padding-top:72px;border-top:1px solid var(--line)}
.premise figure svg{border:0;background:none;border-radius:0}
.premise h3.big{font-size:clamp(26px,3vw,36px);font-weight:300;line-height:1.2;margin-bottom:.6em}
.premise .two-for{gap:32px;margin:28px 0 12px}.premise .two-for p{font-size:16px}
@media(max-width:900px){.premise{grid-template-columns:1fr;gap:32px;margin-top:56px;padding-top:48px}.premise figure{max-width:420px}}
