/* Sumi & Washi (design direction 1a): ink on warm paper, generous ma. Fonts are self-hosted latin subsets (SIL OFL) so font-src stays 'self'. */
@font-face{font-family:'Shippori Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/shippori-mincho-400-latin.woff2) format('woff2')}
@font-face{font-family:'Shippori Mincho';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/shippori-mincho-500-latin.woff2) format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/zen-kaku-gothic-new-400-latin.woff2) format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/zen-kaku-gothic-new-500-latin.woff2) format('woff2')}
/* The design's lighter greys (#8a8378, #7a7466) fall below 4.5:1 on paper at small sizes; --muted keeps the tone and passes AA. */
:root{--paper:#f6f1e6;--ink:#2b2724;--muted:#6b6557;--line:#d8d0bd;--line-soft:#e2dbc9;--accent:#a94c28;--vermilion:#b3542e;--panel:#2b2724;--serif:'Shippori Mincho',Georgia,'Noto Serif',serif;--sans:'Zen Kaku Gothic New',system-ui,'Noto Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--accent)}.personal-page a:hover,.dev-page a:hover,.brand-header a:hover,.brand-footer a:hover{color:inherit;opacity:.7}button{font:inherit}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.skip-link{position:absolute;left:20px;top:-90px;padding:15px;background:var(--ink);color:var(--paper);z-index:10}.skip-link:focus{top:35px}
.brand-header{max-width:1200px;margin:auto;padding:40px 72px 0;display:flex;justify-content:space-between;align-items:baseline;gap:30px}.brand-name{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:.04em;text-decoration:none;white-space:nowrap}.brand-name span{color:var(--vermilion)}.brand-nav{display:flex;gap:40px;align-items:baseline;font-size:14px;letter-spacing:.1em}.brand-nav a{text-decoration:none}.brand-nav a:last-child{color:var(--muted)}.brand-container{max-width:1056px;margin:auto}.overline{font-family:var(--sans);font-size:13px;line-height:1.6;letter-spacing:.28em;text-transform:uppercase;font-weight:400;color:var(--muted)}.ink-link{display:inline-block;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px;letter-spacing:.06em}.ink-mark{display:block;width:110px;height:110px;margin-top:12px;color:var(--ink)}
.personal-intro{padding:130px 0 110px;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:start}.personal-intro .overline{display:block;margin-bottom:36px}.personal-intro h1{font-family:var(--serif);font-size:34px;line-height:1.6;font-weight:400;max-width:640px;margin:0}.intro-links{display:flex;flex-wrap:wrap;gap:16px 36px;margin-top:56px;font-size:15px;letter-spacing:.06em}.intro-links a{text-decoration:none}.intro-links a:first-child{border-bottom:1px solid var(--ink);padding-bottom:6px}.intro-links a+a{color:var(--muted)}
.section-top{display:flex;justify-content:space-between;gap:30px;align-items:baseline;border-top:1px solid var(--line);padding-top:36px;margin-bottom:8px}.section-top h2{font-family:var(--serif);font-size:30px;font-weight:400;margin:0}.section-top p{font-size:14px;color:var(--muted);margin:0;line-height:1.6}.essay-index{padding-bottom:100px}.essay-list{list-style:none;margin:0;padding:0}.essay-row a{display:grid;grid-template-columns:64px 220px 1fr auto;gap:32px;align-items:baseline;padding:34px 0;border-bottom:1px solid var(--line-soft);text-decoration:none}.essay-num{font-family:var(--serif);font-size:24px;color:var(--vermilion)}.essay-tag{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.essay-row h3{font-family:var(--serif);font-size:24px;line-height:1.4;font-weight:400;margin:0}.essay-row p{font-size:15px;color:var(--muted);line-height:1.7;margin:8px 0 0;max-width:560px}.essay-go{font-size:14px;letter-spacing:.06em;white-space:nowrap}
.work-bridge{background:var(--panel);color:#f6f1e6;padding:72px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.work-bridge .overline{display:block;font-size:12px;letter-spacing:.24em;color:#a89f8d;margin-bottom:24px}.work-bridge h2{font-family:var(--serif);font-size:38px;line-height:1.4;font-weight:400;margin:0}.work-bridge p{font-size:15px;line-height:1.8;color:#cfc7b4;margin:24px 0 0}.work-bridge .ink-link{margin-top:32px;font-size:14px}.work-bridge img{width:100%;height:300px;object-fit:cover}
.brand-footer{max-width:1056px;margin:0 auto;padding:64px 0 56px;display:flex;justify-content:space-between;align-items:baseline;gap:25px;font-size:13px;line-height:1.8;color:var(--muted)}.brand-footer p{margin:0;max-width:630px}.brand-footer nav{display:flex;gap:28px;align-items:baseline}.brand-footer a{white-space:nowrap;text-decoration:none}.brand-footer .credit{display:block;font-size:11px;letter-spacing:.02em;margin-top:6px}
.reader-page{--red:#a94c28;--rule:#d8d0bd;--card:#efe8da}.reader-page .brand-header{padding-bottom:28px;border-bottom:1px solid var(--line-soft)}.reader-page .brand-footer{border-top:1px solid var(--line)}.reader-page .article-header{padding-top:48px}.reader-page .hero{margin-bottom:40px}.reader-page .series-label{font-size:12px;line-height:1.7;letter-spacing:.06em;color:var(--muted);margin:0 0 18px}.reader-page .article-meta{font-size:12px}.reader-page .reading-progress{top:0}.reader-page .colophon{font-size:12px;line-height:1.7}.reader-page .article-nav a{max-width:67%}
.about-intro{max-width:850px;padding:110px 0 30px}.about-intro .overline{display:block}.about-intro h1{font-family:var(--serif);font-size:48px;font-weight:400;line-height:1.35;margin:28px 0 36px}.about-copy{max-width:680px;font-family:var(--serif);font-size:21px;line-height:1.85}.about-copy p{margin:0 0 25px}.about-links{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0 90px}.about-links a{display:block;text-decoration:none;border-top:1px solid var(--line);padding-top:26px}.about-links h2{font-family:var(--serif);font-weight:400;font-size:26px;margin:12px 0}.about-links p{font-size:15px;color:var(--muted);line-height:1.7;margin:0}
.project-intro{padding:54px 0 30px;max-width:850px}.project-intro h1{font-family:var(--serif);font-weight:400;font-size:56px;line-height:1.25;margin:18px 0 24px}.project-intro>p{font-family:var(--serif);font-size:22px;line-height:1.7;max-width:680px;color:var(--muted);margin:0 0 26px}.project-status{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.project-figure{margin:15px 0 30px}.project-figure img{width:100%;aspect-ratio:16/9;object-fit:cover}.project-figure figcaption{font-size:12px;color:var(--muted);padding-top:10px}.project-detail-copy{max-width:740px;margin:0 auto 50px}.project-detail-copy h2{font-family:var(--serif);font-weight:400;font-size:30px;margin:35px 0 17px}.project-detail-copy p{font-family:var(--serif);font-size:20px;line-height:1.8;color:var(--muted);margin:0 0 22px}.project-detail-copy ul{font-size:15px;line-height:1.9;color:var(--muted);padding-left:20px}.project-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;font-size:13px}.project-detail-copy .project-actions{margin-top:26px}
@media(max-width:1200px){.brand-header{padding-inline:48px}.brand-container,.brand-footer{margin-inline:48px}}
@media(max-width:850px){.brand-header{padding:28px 28px 0}.reader-page .brand-header{padding-bottom:22px}.brand-container,.brand-footer{margin-inline:28px}.brand-nav{gap:24px}.personal-intro{padding:72px 0 64px;gap:28px}.personal-intro h1{font-size:28px}.intro-links{margin-top:40px}.ink-mark{width:72px;height:72px}.essay-row a{grid-template-columns:48px 1fr;gap:6px 20px;padding:28px 0}.essay-tag,.essay-text,.essay-go{grid-column:2}.essay-go{margin-top:10px}.work-bridge{grid-template-columns:1fr;padding:44px 36px;gap:32px}.work-bridge img{grid-row:1;height:auto;aspect-ratio:16/10}.work-bridge h2{font-size:32px}.brand-footer{flex-direction:column;gap:14px;padding-top:48px}.brand-name small{display:none!important}.about-intro{padding-top:72px}.about-intro h1{font-size:40px}.project-intro h1{font-size:46px}}
@media(max-width:560px){.brand-header{padding:22px 20px 0;flex-wrap:wrap;gap:10px 20px}.brand-container,.brand-footer{margin-inline:20px}.brand-nav{gap:18px;font-size:13px;letter-spacing:.06em}.overline{font-size:11px;letter-spacing:.2em}.personal-intro{grid-template-columns:1fr;padding:44px 0 56px;gap:24px}.personal-intro .ink-mark{grid-row:1;width:60px;height:60px;margin:0}.personal-intro .overline{margin-bottom:24px}.personal-intro h1{font-size:24px;line-height:1.6}.section-top{display:block;padding-top:28px}.section-top p{margin-top:8px}.section-top h2{font-size:26px}.essay-index{padding-bottom:64px}.essay-row a{grid-template-columns:minmax(32px,auto) 1fr;gap:6px 14px}.essay-row h3{font-size:21px}.work-bridge{padding:28px 22px}.work-bridge h2{font-size:27px}.brand-footer{font-size:12px}.reader-page .article-header{padding-top:32px}.reader-page .article-nav{gap:20px}.reader-page .article-nav a{font-size:17px}.reader-page .article-nav a:first-child{font-size:12px}.about-intro{padding-top:44px}.about-intro h1{font-size:32px}.about-copy{font-size:19px}.about-links{grid-template-columns:1fr}.project-intro{padding-top:37px}.project-intro h1{font-size:38px}.project-intro>p{font-size:20px}.project-detail-copy p{font-size:18px}.project-figure img{aspect-ratio:1.4}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.brand-header,.brand-footer,.ink-mark{display:none}.brand-container{margin:0}.reader-page .hero{margin-bottom:14px}.reader-page .article-header{padding-top:0}.personal-intro{padding:20px 0 30px}.essay-row{break-inside:avoid}.work-bridge{break-inside:avoid;background:#eee;color:var(--ink)}.work-bridge .overline,.work-bridge p{color:var(--muted)}}
.personal-intro h1,.about-intro h1,.essay-row h3{text-wrap:balance}
.brand-footer .analytics-choice{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.brand-footer .analytics-choice:disabled{text-decoration:none;cursor:default}
@media(max-width:560px){.wide-break{display:none}}
[data-initial-width="40"]{width:40%}[data-initial-width="60"]{width:60%}
