@charset "UTF-8";
:root {
  --canvas:#fafaf9; --surface:#fff; --ink:#141413; --muted:#6f6f69;
  --line:#e6e6e1; --soft:#f0f0ec; --accent:#187cae; --accent-soft:#e8f3f8;
  --radius:24px; --radius-small:16px; --pill:999px;
  --shadow:0 2px 8px #19191904,0 12px 30px #19191903;
  --sans:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --mono:"SFMono-Regular",Consolas,monospace;
  --page-width:1200px; --gutter:48px; --header-height:88px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; scrollbar-gutter:stable; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:var(--sans); font-size:16px; -webkit-font-smoothing:antialiased; }
body.viewer-open { overflow:hidden; }
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; color:inherit; }
button,select { cursor:pointer; }
button { touch-action:manipulation; }
a,button,select { -webkit-tap-highlight-color:transparent; }
button:disabled { opacity:.32; cursor:default; }
a:focus-visible,button:focus-visible,select:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
img { max-width:100%; display:block; }
::selection { background:#cce8f5; color:var(--ink); }
.shell { width:calc(100% - var(--gutter)*2); max-width:var(--page-width); margin-inline:auto; }
.sr-only,.skip:not(:focus) { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip:focus { position:fixed; top:12px; left:12px; z-index:100; padding:14px 20px; background:var(--surface); border-radius:var(--pill); }
.header { min-height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:32px; border-bottom:1px solid var(--line); }
.wordmark { display:inline-block; font-size:29px; font-weight:650; line-height:1; letter-spacing:-1.7px; font-style:normal; }
.logo-period { color:var(--accent); margin-left:1px; }
.header-tools { display:flex; align-items:center; gap:34px; }
.header nav { display:flex; align-items:center; gap:30px; font-size:14px; }
.header nav a { color:var(--muted); padding:12px 0; transition:color .18s; }
.header nav a:hover { color:var(--ink); }
.language-control { display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:var(--pill); background:var(--surface); padding-left:13px; min-height:40px; }
.language-control svg { width:16px; height:16px; flex-shrink:0; color:var(--muted); }
.language-select { font-size:13px; border:0; background:transparent; max-width:120px; min-height:38px; padding:6px 11px 6px 0; border-radius:var(--pill); }
.push-bell { position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink); }
.push-bell[hidden] { display:none; }
.push-bell svg { width:18px;height:18px; }
.push-indicator { position:absolute;right:5px;top:5px;width:7px;height:7px;border:2px solid var(--surface);border-radius:50%;background:var(--muted); }
.push-bell.is-on .push-indicator { background:var(--accent); }
.question { max-width:980px; margin:0 auto; padding:48px 0 50px; text-align:center; }
.hero-author { margin:0 0 20px; color:var(--muted); font-size:13px; letter-spacing:.12em; }
h1 { font-size:clamp(32px,3.8vw,49px); font-weight:400; line-height:1.55; letter-spacing:-.045em; margin:0; text-wrap:balance; }
[data-i18n="question"],[data-i18n="aboutLead"] { white-space:pre-line; }
.obligations { margin:25px 0 0; font-size:14px; line-height:1.7; letter-spacing:.025em; color:#777770; white-space:normal; text-decoration:line-through; text-decoration-color:#b2b2aa; text-decoration-thickness:1px; }
.eyebrow { color:var(--muted); font-size:12px; font-weight:500; line-height:1.5; letter-spacing:.09em; margin:0; }
.collection-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.filters { display:flex; gap:3px; padding:4px; border:1px solid var(--line); border-radius:var(--pill); background:var(--soft); }
.filters button { border:0; border-radius:var(--pill); padding:8px 19px; font-size:13px; background:transparent; color:var(--muted); transition:color .16s,background .16s,box-shadow .16s; }
.filters button[aria-pressed="true"] { background:var(--surface); color:var(--ink); box-shadow:0 1px 3px #00000010; }
.filters button:hover { color:var(--ink); }
.photo-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.content-status { padding:24px; margin-bottom:20px; color:var(--muted); border:1px solid var(--line); border-radius:var(--radius-small); }
.content-status button { margin-left:16px; border:0; background:transparent; color:var(--accent); text-decoration:underline; }
.featured-entry { grid-column:1/-1; }
.featured-link { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); min-height:420px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:border-color .25s,box-shadow .25s; }
.featured-link:hover { border-color:#c9c9c3; box-shadow:0 8px 30px #19191909; }
.featured-visual { position:relative; overflow:hidden; background:var(--soft); }
.featured-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.featured-copy { display:flex; flex-direction:column; align-items:flex-start; padding:42px 38px 34px; }
.entry-meta { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; color:var(--muted); letter-spacing:.025em; }
.badge { display:inline-flex; align-items:center; padding:4px 10px; border:1px solid var(--line); border-radius:var(--pill); font-size:12px; line-height:1.4; font-weight:400; background:var(--canvas); }
.featured-copy h3 { margin:27px 0 18px; font-size:32px; line-height:1.55; letter-spacing:-.03em; font-weight:500; text-wrap:balance; }
.entry-excerpt { font-size:15px; line-height:1.9; color:var(--muted); margin:0 0 36px; }
.read-link { display:inline-flex; align-items:center; gap:22px; border-radius:var(--pill); padding:12px 20px; margin-top:auto; background:var(--ink); color:var(--surface); font-size:14px; }
.read-link .arrow { transition:transform .2s; }
.featured-link:hover .read-link .arrow { transform:translateX(3px); }
.photo-entry { margin:0; min-width:0; }
.photo-button { display:block; width:100%; padding:0; border:1px solid var(--line); border-radius:var(--radius); text-align:left; overflow:hidden; background:var(--surface); box-shadow:var(--shadow); transition:border-color .2s; }
.photo-button:hover { border-color:#c9c9c3; }
.photo-image { position:relative; overflow:hidden; background:var(--soft); }
.photo-image img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.image-expand { display:flex; align-items:center; justify-content:center; width:38px; height:38px; position:absolute; right:16px; bottom:16px; border-radius:50%; color:var(--ink); background:#ffffffed; border:1px solid #ffffff44; font-size:19px; transition:transform .2s; }
.photo-button:hover .image-expand,.cover-button:hover .image-expand { transform:translate(2px,-2px); }
.photo-caption { display:flex; align-items:center; gap:16px; padding:22px 24px; }
.photo-number { font:11px var(--mono); color:var(--muted); }
.photo-title { font-size:17px; font-weight:400; letter-spacing:-.015em; }
.photo-kind { margin-left:auto; font-size:12px; color:var(--muted); }
.about { display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:center;gap:clamp(40px,7vw,100px);padding:64px 0 72px;margin-top:84px;border-top:1px solid var(--line); }
.about-portrait { display:block;width:100%;height:auto;border-radius:var(--radius); }
.about-body { max-width:590px; }
.about h2 { font-size:32px;font-weight:400;line-height:1.5;letter-spacing:-.025em;margin:18px 0 26px;color:var(--ink);text-wrap:balance; }
.about .about-lead { font-size:22px;line-height:1.8;letter-spacing:-.02em;margin:0 0 20px; }
.about-description { font-size:15px;line-height:2;color:var(--muted);margin:0; }
.about-work { display:inline-flex;align-items:center;gap:18px;min-height:44px;margin-top:23px;font-size:13px;border-bottom:1px solid var(--line); }
.about-work:hover { color:var(--accent);border-color:currentColor; }
.signature { font-size:14px; letter-spacing:.03em; margin:0; }
.signature span { display:block; }
.signature span+span { font-size:11px; color:var(--muted); letter-spacing:.1em; margin-top:8px; }
.projects { display:grid; grid-template-columns:1fr 3fr; align-items:center; gap:30px; border:1px solid var(--line); border-radius:var(--radius); padding:30px 34px; background:var(--surface); margin-bottom:42px; }
.project-link { display:flex; align-items:center; justify-content:space-between; gap:28px; min-width:0; }
.project-link img { width:244px; height:auto; }
.project-action { display:flex; align-items:center; gap:20px; font-size:13px; color:var(--muted); white-space:nowrap; }
.circle-arrow { display:flex; justify-content:center; align-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; color:var(--ink); font-size:19px; transition:background .2s,transform .2s; }
.project-link:hover .circle-arrow { background:var(--soft); transform:translate(2px,-2px); }
.footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 0 32px; color:var(--muted); }
.footer small { font-size:11px; letter-spacing:.08em; }
.footer a { font-size:12px; padding:8px 0; }
.footer a:hover { color:var(--ink); }
.social-links { display:flex;align-items:center;justify-content:center;gap:24px; }
.social-links a { display:inline-flex;align-items:center;gap:6px;min-height:44px; }
.social-links span { font-size:12px;color:var(--muted); }
.push-prompt { position:fixed;z-index:90;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:min(390px,calc(100vw - 36px));padding:26px;border:1px solid #30302d;border-radius:22px;background:#171715;color:#fff;box-shadow:0 18px 55px #0000002b; }
.push-prompt[hidden] { display:none; }
.push-close { position:absolute;right:14px;top:13px;width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:#c4c4bd;font-size:24px;font-weight:300; }
.push-close:hover { background:#ffffff10;color:#fff; }
.push-prompt-icon { display:block;width:10px;height:10px;margin-bottom:22px;border-radius:50%;background:var(--accent);color:transparent; }
.push-prompt .eyebrow { color:#a8a8a1;font-size:11px; }
.push-prompt h2 { margin:10px 34px 9px 0;font-size:25px;font-weight:400;line-height:1.5;letter-spacing:-.025em; }
.push-prompt div>p:last-child { margin:0;color:#bdbdb6;font-size:13px;line-height:1.8; }
.push-enable { width:100%;min-height:48px;margin-top:21px;border:0;border-radius:var(--pill);background:#fff;color:var(--ink);font-size:14px; }
.push-enable:disabled { opacity:.58;cursor:default; }
.push-status { min-height:1.7em;margin:11px 2px 0;color:#bdbdb6;font-size:11px;line-height:1.7; }
.newsletter { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:45px;padding:45px 48px;margin-bottom:28px;border-radius:var(--radius);background:var(--ink);color:var(--surface); }
.newsletter .eyebrow { color:#b8b8b0;font-size:11px; }
.newsletter h2 { font-size:32px;font-weight:400;line-height:1.5;letter-spacing:-.025em;margin:15px 0 12px;text-wrap:balance; }
.newsletter-copy>p:last-child { font-size:14px;line-height:1.8;color:#b8b8b0;margin:0; }
.newsletter-signup { text-align:left;min-width:0; }
.newsletter-label { display:block;font-size:13px;font-weight:500;margin-bottom:10px;color:#f1f1eb; }
.newsletter-fields { display:flex;gap:10px; }
.newsletter-email { flex:1;min-width:0;width:100%;min-height:50px;border:1px solid #d9d9d1;border-radius:12px;background:#fff;color:#171715;padding:13px 16px;font:inherit;font-size:16px;caret-color:#187cae; }
.newsletter-email::placeholder { color:#61615b;opacity:1; }
.newsletter-email:disabled { background:#e7e7e0;opacity:1;-webkit-text-fill-color:#61615b;cursor:not-allowed; }
.newsletter-email:focus-visible { outline:2px solid #83c7eb;outline-offset:3px; }
#newsletter-title { scroll-margin-top:100px; }
.newsletter-action { display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:13px 26px;border:0;border-radius:var(--pill);background:#fff;color:var(--ink);font-size:14px;white-space:nowrap; }
.newsletter-action:disabled { opacity:.68;cursor:default; }
.newsletter-signup p { font-size:12px;color:#c5c5bd;line-height:1.7;margin:13px 0 0; }
.photo-viewer { width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:0; inset:0; border:0; background:#121312; color:#fafaf9; }
.photo-viewer[open] { display:flex; flex-direction:column; }
.photo-viewer::backdrop { background:#121312; }
.viewer-bar { display:flex; align-items:center; justify-content:space-between; padding:20px 30px; flex-shrink:0; }
.viewer-brand { font-size:20px; font-weight:500; letter-spacing:-1px; }
.icon-button { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:44px; height:44px; border:1px solid #ffffff30; border-radius:50%; color:inherit; background:transparent; font-size:20px; transition:background .2s; }
.icon-button:hover { background:#ffffff15; }
.viewer-close { font-size:29px; font-weight:300; }
.viewer-stage { flex:1; min-height:0; position:relative; display:flex; align-items:center; justify-content:center; padding:0 30px; touch-action:pan-y pinch-zoom; }
.viewer-image { width:auto; height:auto; max-height:100%; max-width:100%; object-fit:contain; opacity:1; transition:opacity .18s; }
.viewer-image.is-loading { opacity:0; }
.viewer-error { position:absolute; font-size:15px; text-align:center; padding:24px; }
.viewer-footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:24px 30px 20px; flex-shrink:0; }
.viewer-caption h2 { font-size:16px; font-weight:400; margin:0 0 8px; }
.viewer-caption p { font-size:12px; color:#aaa; margin:0; }
.viewer-actions { display:flex; align-items:center; gap:12px; }
.viewer-original { font-size:13px; margin-right:20px; color:#ccc; }
.viewer-thumbnails { display:flex; justify-content:center; gap:10px; padding:0 24px 22px; }
.viewer-thumbnail { width:60px; height:46px; padding:3px; border:1px solid transparent; background:transparent; border-radius:7px; opacity:.55; }
.viewer-thumbnail[aria-pressed="true"] { opacity:1; border-color:#fff; }
.viewer-thumbnail img { width:100%; height:100%; object-fit:cover; border-radius:3px; }
@media(min-width:1600px) { :root { --page-width:1280px; } .question { padding-block:50px; } }
@media(max-width:1000px) {
 .newsletter { grid-template-columns:1fr;gap:28px; }
 :root { --gutter:32px; }
 .featured-link { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); min-height:380px; }
 .featured-copy { padding:32px 28px; }.featured-copy h3 { font-size:28px; }.entry-excerpt { font-size:14px; }
 .projects { grid-template-columns:1fr 4fr; padding:26px; }.project-link img { width:210px; }
}
@media(max-width:760px) {
 .footer { flex-wrap:wrap;gap:14px 20px; }.social-links { order:-1;flex-basis:100%;justify-content:flex-start;gap:28px; }
 .push-prompt { right:18px;bottom:max(18px,env(safe-area-inset-bottom));padding:21px 22px 20px; }
 .push-prompt-icon { margin-bottom:17px; }
 .push-prompt h2 { margin-right:24px;font-size:22px;line-height:1.45; }
 .push-enable { margin-top:17px; }
 :root { --gutter:24px; --header-height:100px; --radius:20px; }
 .header { display:grid; grid-template-columns:1fr auto auto; gap:15px; padding:22px 0 18px; }
 .header-tools { display:contents; }.wordmark { grid-row:1;grid-column:1;font-size:27px; }.header nav { flex-wrap:wrap; }
 .language-control { grid-row:1;grid-column:2; }.push-bell { grid-row:1;grid-column:3; }.header nav { grid-column:1/-1; grid-row:2; justify-content:flex-end; gap:24px; font-size:13px; }.header nav a { padding:0; }
 .question { padding:45px 0 48px; } h1 { font-size:32px;line-height:1.65;letter-spacing:-.04em; }.hero-author { margin-bottom:20px; }.obligations { font-size:13px; margin-top:22px; }
 .collection-toolbar { flex-wrap:wrap; gap:16px; margin-bottom:20px; }.collection-toolbar>.eyebrow { width:100%; }.filters { width:100%; }.filters button { flex:1; padding:9px 12px; }
 .featured-link { grid-template-columns:1fr; }.featured-visual img { position:static; height:auto; aspect-ratio:4/3; }.featured-copy { padding:28px; }.featured-copy h3 { margin:20px 0 14px; font-size:29px; }.entry-excerpt { font-size:15px;margin-bottom:28px; }
 .photo-list { gap:20px; }.photo-caption { padding:17px 18px;flex-wrap:wrap;gap:10px; }.photo-title { font-size:15px; }.photo-kind { display:none; }
 .image-expand { width:34px;height:34px;right:12px;bottom:12px; }
 .about { grid-template-columns:1fr;gap:32px;padding:40px 0 48px;margin-top:58px; }.about-portrait { width:240px;max-width:100%; }.about h2 {font-size:28px;margin:16px 0 22px;}.about .about-lead {font-size:20px;}
 .projects { grid-template-columns:1fr;gap:22px;padding:26px; }.project-link { gap:18px; }.project-link img { width:200px; }.project-action>span:first-child { display:none; }
 .newsletter { grid-template-columns:1fr;gap:28px;padding:32px 28px; }.newsletter h2 {font-size:29px;}.newsletter-signup {text-align:left;}
 .viewer-bar { padding:14px 18px; }.viewer-stage { padding-inline:12px; }.viewer-footer { padding:20px 18px;gap:18px;flex-wrap:wrap; }.viewer-actions { width:100%; }.viewer-original { margin-right:auto; }.viewer-thumbnails { padding-bottom:18px; }
}
@media(max-width:440px) {
 .newsletter-fields { flex-direction:column; }.newsletter-action { min-height:50px; }.header nav { gap:17px;font-size:12px; }
 html:lang(ja) .newsletter h2 { font-size:clamp(20px,6.4vw,25px); }
 .about-lead { text-wrap:balance; }
 :root { --gutter:18px; }.wordmark { font-size:25px;letter-spacing:-1.5px; }.language-control { padding-left:10px;gap:5px; }.language-select { max-width:95px;font-size:12px;padding-right:8px; }.language-control svg { width:14px;height:14px; }
 .question h1 { font-size:25px;letter-spacing:-.045em;line-height:1.8; }.question { padding-block:38px; }.hero-author { font-size:12px; }.photo-list { grid-template-columns:1fr; }.featured-copy { padding:25px 24px 28px; }.featured-copy h3 { font-size:28px; }.photo-image img { aspect-ratio:4/3; }.photo-caption { padding:21px; }.photo-title { font-size:17px; }.photo-kind { display:block; }.about-lead { font-size:27px; }.projects { padding:24px; }.project-link img { width:200px;max-width:calc(100% - 60px); }
}
@media(max-width:360px) { .question h1 {font-size:22px;} .wordmark {font-size:22px;} .language-control svg {display:none;} .language-control {padding-left:9px;} .featured-copy h3 {font-size:25px;} .entry-meta {gap:8px;} }
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} *,*::before,*::after {transition:none!important;animation:none!important;} }
