
:root{--bg:#f7f7f5;--fg:#090909;--muted:#666;--line:rgba(9,9,9,.15);--soft:rgba(9,9,9,.045);--card:#fbfbfa;--max:1280px;--narrow:900px;--pad:clamp(20px,4vw,60px);--font-jp:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",sans-serif;--font-latin:"Helvetica Neue","Avenir Next","Arial",sans-serif;font-family:var(--font-jp);color-scheme:light}
html[data-theme="dark"]{--bg:#111;--fg:#f3f1eb;--muted:#aaa59d;--line:rgba(255,255,255,.16);--soft:rgba(255,255,255,.055);--card:#161616;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-jp);font-size:16px;line-height:1.78;font-weight:300;letter-spacing:.012em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt" 1,"kern" 1;font-synthesis:none;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{max-width:var(--max);margin:auto;padding:20px var(--pad);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px}.brand{font-family:var(--font-latin);font-size:12px;font-weight:500;letter-spacing:.26em}.site-nav{justify-self:end;display:flex;gap:22px;align-items:center}.nav-link{font-family:var(--font-jp);font-size:11px;font-weight:400;letter-spacing:.075em;color:var(--muted);white-space:nowrap}.nav-link:hover,.nav-link.active{color:var(--fg)}.header-actions{grid-column:3;display:flex;gap:10px;align-items:center}.theme-toggle,.nav-toggle{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}.nav-toggle{display:none;position:relative}.nav-toggle span{position:absolute;width:14px;height:1px;background:var(--fg);transition:.2s}.nav-toggle span:first-child{transform:translateY(-3px)}.nav-toggle span:last-child{transform:translateY(3px)}.nav-toggle[aria-expanded="true"] span:first-child{transform:rotate(45deg)}.nav-toggle[aria-expanded="true"] span:last-child{transform:rotate(-45deg)}main{min-height:70vh}.shell{max-width:var(--max);margin:auto;padding-left:var(--pad);padding-right:var(--pad)}.shell.narrow{max-width:calc(var(--narrow) + var(--pad)*2)}.section{padding:clamp(72px,10vw,140px) 0;border-bottom:1px solid var(--line)}.section.compact{padding:clamp(50px,7vw,90px) 0}.eyebrow{font-family:var(--font-latin);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.26em;color:var(--muted);margin-bottom:22px}.hero{min-height:68vh;display:flex;align-items:flex-start}.hero-inner{width:100%;max-width:var(--max);margin:auto;padding:clamp(72px,8vw,110px) var(--pad) clamp(36px,4vw,56px)}.hero .kicker{font-family:var(--font-latin);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.28em;color:var(--muted);margin-bottom:clamp(20px,2.6vw,30px)}h1,h2,h3,p{margin-top:0}h1{font-family:var(--font-jp);font-size:clamp(64px,11vw,150px);line-height:.91;letter-spacing:-.065em;font-weight:300;margin-bottom:20px}.page-hero h1{font-size:clamp(46px,7vw,94px);letter-spacing:-.06em}h2{font-family:var(--font-jp);font-size:clamp(30px,4.7vw,58px);line-height:1.12;letter-spacing:-.045em;font-weight:300;margin-bottom:30px}h3{font-family:var(--font-jp);font-size:clamp(19px,2.3vw,28px);line-height:1.3;letter-spacing:-.02em;font-weight:300;margin-bottom:10px}.hero-en{font-family:var(--font-latin);font-size:clamp(24px,3.4vw,46px);font-weight:300;letter-spacing:-.035em;margin-bottom:clamp(26px,3.5vw,40px)}.lead{font-size:clamp(17px,2vw,24px);max-width:900px;line-height:1.8;letter-spacing:.018em;font-weight:300}.muted{color:var(--muted)}.text-large{font-size:clamp(20px,2.6vw,32px);max-width:900px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,90px)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.meta-list{display:flex;flex-wrap:wrap;gap:9px}.pill{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;color:var(--muted)}.button-link{display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--fg);padding-bottom:3px;font-size:14px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.card{background:var(--bg);padding:30px;min-height:250px;display:flex;flex-direction:column;transition:.2s}.card:hover{background:var(--soft)}.card .number,.card .meta{font-size:10px;color:var(--muted);letter-spacing:.14em;margin-bottom:38px}.card .en{color:var(--muted);font-size:14px;margin-bottom:12px}.card .keywords{font-size:12px;color:var(--muted);margin-top:auto}.card .arrow{margin-top:auto;font-size:20px}.list{border-top:1px solid var(--line)}.list-item{display:grid;grid-template-columns:140px 1fr auto;gap:30px;align-items:start;padding:28px 0;border-bottom:1px solid var(--line)}.list-item .date,.list-item .meta{font-size:12px;color:var(--muted)}.list-item h3{margin-bottom:5px}.detail-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:40px 0}.detail-meta>div{background:var(--bg);padding:20px}.detail-meta dt{font-size:11px;color:var(--muted);margin-bottom:5px}.detail-meta dd{margin:0}.prose{max-width:820px}.prose h2{font-size:28px;margin-top:60px}.prose p{font-size:18px}.search-tools,.filter-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:36px 0}.search-tools{grid-template-columns:1fr}.field{width:100%;background:transparent;border:1px solid var(--line);padding:14px 16px;border-radius:0;outline:none}.field:focus{border-color:var(--fg)}.result-count{font-size:12px;color:var(--muted);margin:20px 0}.site-footer{padding:60px var(--pad) 28px}.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.5fr 2fr .8fr;gap:40px;padding-bottom:50px}.footer-brand{font-family:var(--font-latin);font-size:12px;font-weight:500;letter-spacing:.26em;margin-bottom:12px}.footer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.footer-nav a,.footer-external a{font-size:13px;color:var(--muted)}.footer-external{display:flex;flex-direction:column;gap:8px}.copyright{max-width:var(--max);margin:auto;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}

.hero-brand{font-family:var(--font-latin);font-size:12px;font-weight:500;letter-spacing:.30em;margin-bottom:20px}
.hero-title-ja{display:block;white-space:nowrap}
.hero-statement{max-width:980px;margin-top:0}
.hero-statement .lead{margin-bottom:8px}
.hero-statement .lead.en{font-family:var(--font-latin);font-size:clamp(16px,1.75vw,21px);font-weight:300;line-height:1.62;letter-spacing:.005em}
.hero-statement .lead.ja{font-family:var(--font-jp);font-size:clamp(16px,1.72vw,21px);font-weight:300;letter-spacing:.04em;color:var(--muted)}
@media(max-width:980px){.header-inner{grid-template-columns:1fr auto}.header-actions{grid-column:2}.nav-toggle{display:grid}.site-nav{display:none;position:absolute;left:0;right:0;top:71px;background:var(--bg);border-bottom:1px solid var(--line);padding:28px var(--pad);grid-template-columns:1fr 1fr;gap:0}.site-nav.open{display:grid}.nav-link{padding:12px 0;border-bottom:1px solid var(--line)}.cards{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-external{grid-column:2}}
@media(max-width:700px){.section{padding:70px 0}.hero{min-height:auto}.hero-inner{padding-top:110px;padding-bottom:86px}h1{font-size:clamp(64px,21vw,104px)}.page-hero h1{font-size:clamp(42px,13vw,64px)}.grid-2,.grid-3,.cards{grid-template-columns:1fr}.list-item{grid-template-columns:1fr;gap:8px}.detail-meta{grid-template-columns:1fr 1fr}.filter-tools{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-external{grid-column:auto}.site-nav{grid-template-columns:1fr}.site-nav{max-height:calc(100vh - 71px);overflow:auto}}


/* PDF downloads */
.pdf-download-panel{margin:38px 0 8px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;align-items:center}
.pdf-download-label{font-size:10px;font-weight:500;letter-spacing:.20em;color:var(--muted)}
.pdf-download-actions{display:flex;flex-wrap:wrap;gap:10px}
.pdf-download-button{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:11px 15px;border:1px solid var(--fg);font-size:12px;letter-spacing:.035em;transition:.18s}
.pdf-download-button:hover{background:var(--fg);color:var(--bg)}
.pdf-archive{margin-bottom:clamp(60px,8vw,100px)}
.pdf-archive-head{display:grid;grid-template-columns:1fr 2fr;gap:22px 48px;align-items:end;margin-bottom:30px}
.pdf-archive-head .eyebrow{margin-bottom:0}
.pdf-archive-head h2{margin-bottom:0}
.pdf-archive-head p{grid-column:2;margin-bottom:0}
.pdf-archive-list{border-top:1px solid var(--line)}
.pdf-archive-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.pdf-archive-title{display:flex;flex-direction:column;gap:3px;min-width:0}
.pdf-archive-title strong{font-size:17px;font-weight:400;letter-spacing:-.02em}
.pdf-archive-title span{font-size:12px;color:var(--muted)}
.pdf-archive-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px}
.pdf-archive-actions a{font-size:11px;letter-spacing:.04em;border-bottom:1px solid var(--fg);padding-bottom:2px;white-space:nowrap}
.pdf-badge{display:inline-flex;width:max-content;margin-top:16px;padding:3px 7px;border:1px solid var(--line);font-size:9px;letter-spacing:.16em;color:var(--muted)}
@media(max-width:700px){.pdf-download-panel{align-items:flex-start;flex-direction:column}.pdf-download-actions,.pdf-download-button{width:100%}.pdf-archive-head{grid-template-columns:1fr;gap:10px}.pdf-archive-head p{grid-column:auto}.pdf-archive-row{grid-template-columns:1fr;gap:14px}.pdf-archive-actions{justify-content:flex-start}}

/* v1.3 bilingual + typographic refinement */
.lang-switch{font-family:var(--font-latin);font-size:10px;font-weight:500;letter-spacing:.18em;color:var(--muted);padding:8px 4px;white-space:nowrap}.lang-switch:hover{color:var(--fg)}
.home-framework{padding-top:20px}
html[lang="en"] body{font-family:var(--font-latin)}html[lang="en"] .nav-link,html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3{font-family:var(--font-latin)}
.en-hero-title{font-family:var(--font-latin);font-size:clamp(58px,8.5vw,118px);line-height:.94;letter-spacing:-.06em;font-weight:300;margin:0 0 12px}.en-hero-ja{font-family:var(--font-jp);font-size:clamp(24px,3vw,40px);font-weight:300;color:var(--muted);margin-bottom:clamp(28px,3.5vw,42px)}
.page-hero{padding-top:clamp(66px,8vw,105px);padding-bottom:clamp(48px,6vw,78px)}.page-hero .eyebrow{margin-bottom:18px}.page-hero .lead{font-family:var(--font-latin);color:var(--muted);line-height:1.45}.card h3{font-weight:300}.card .en{font-family:var(--font-latin)}
@media(max-width:700px){.lang-switch{padding:7px 0}.home-framework{padding-top:16px}.en-hero-title{font-size:clamp(48px,15vw,74px)}}

/* v1.4.0 — bilingual hierarchy: primary language / secondary translation */
.hero h1{margin-bottom:12px}
.hero-en{
  font-size:clamp(20px,2.65vw,36px);
  line-height:1.02;
  letter-spacing:-.025em;
  margin-bottom:clamp(28px,3.4vw,40px)
}

/* Section titles: translation is deliberately smaller and closer to the primary title. */
h2>.muted{
  display:block;
  margin-top:.18em;
  font-size:.54em;
  line-height:1.08;
  letter-spacing:-.02em;
  font-weight:300
}
html[lang="ja"] h2>.muted{font-family:var(--font-latin)}
html[lang="en"] h2>.muted{font-family:var(--font-jp);letter-spacing:-.035em}

/* Detail-page bilingual title hierarchy. */
.page-hero h1{margin-bottom:12px}
.page-hero .lead{
  font-size:clamp(15px,1.45vw,18px);
  line-height:1.5;
  letter-spacing:.005em;
  margin-bottom:0;
  color:var(--muted)
}
html[lang="ja"] .page-hero .lead{font-family:var(--font-latin)}
html[lang="en"] .page-hero .lead{font-family:var(--font-jp)}
.page-hero .lead+.lead{margin-top:7px;font-size:clamp(13px,1.2vw,15px)}

/* Cards and archive lists use the same bilingual hierarchy. */
.card h3{margin-bottom:6px}
.card .en{font-size:12px;line-height:1.45;margin-bottom:10px;letter-spacing:.005em}
.pdf-archive-title strong{line-height:1.35}
.pdf-archive-title span{font-size:11px;line-height:1.45}

/* Slightly tighter bilingual rhythm on mobile. */
@media(max-width:700px){
  .hero-en{font-size:clamp(19px,6.8vw,28px);margin-bottom:28px}
  h2>.muted{font-size:.58em;margin-top:.20em}
  .page-hero .lead{font-size:14px}
  .page-hero .lead+.lead{font-size:13px}
  .card .en{font-size:11px}
}

/* v1.4.1 — scholarly editorial typography */
:root{
  --font-jp-serif:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","Times New Roman",serif;
  --font-latin-serif:"Baskerville","Iowan Old Style","Palatino Linotype","Book Antiqua","Times New Roman",serif;
  --font-ui-jp:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",sans-serif;
  --font-ui-latin:"Helvetica Neue","Avenir Next","Arial",sans-serif;
}

/* Reading layer: calm, book-like, academic. */
body{
  font-family:var(--font-jp-serif);
  font-weight:400;
  line-height:1.88;
  letter-spacing:.018em;
}
html[lang="en"] body{font-family:var(--font-latin-serif)}

/* Display layer: serif for ideas/titles, with less aggressive tracking than the former grotesk. */
h1,h2,h3,
.hero-title-ja,
.hero-en,
.en-hero-title,
.en-hero-ja,
.text-large,
.prose,
.card h3,
.pdf-archive-title strong{
  font-family:var(--font-jp-serif);
  font-weight:400;
}
html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] .en-hero-title,
html[lang="en"] .text-large,
html[lang="en"] .prose,
html[lang="en"] .card h3,
html[lang="en"] .pdf-archive-title strong{
  font-family:var(--font-latin-serif);
}

h1{letter-spacing:-.035em;line-height:.96}
h2{letter-spacing:-.025em;line-height:1.18}
h3{letter-spacing:-.012em;line-height:1.38}
.hero-en{
  font-family:var(--font-latin-serif);
  letter-spacing:-.012em;
  font-weight:400;
}
.en-hero-title{
  font-family:var(--font-latin-serif);
  letter-spacing:-.025em;
  font-weight:400;
}
.en-hero-ja{font-family:var(--font-jp-serif);font-weight:400}

/* Secondary translations stay elegant but clearly subordinate. */
html[lang="ja"] h2>.muted,
html[lang="ja"] .card .en,
html[lang="ja"] .page-hero .lead,
html[lang="ja"] .pdf-archive-title span{
  font-family:var(--font-latin-serif);
}
html[lang="en"] h2>.muted,
html[lang="en"] .page-hero .lead,
html[lang="en"] .en-hero-ja{
  font-family:var(--font-jp-serif);
}
h2>.muted{font-weight:400;opacity:.88}
.card .en,.pdf-archive-title span{font-weight:400}

/* Long-form copy gets a slightly narrower, journal-like measure and more breathing room. */
.prose{max-width:760px}
.prose p{font-size:18px;line-height:2.02;letter-spacing:.022em}
.text-large{line-height:1.68;letter-spacing:.012em}
.lead{font-weight:400}

/* Interface layer remains sans-serif: taxonomy, navigation and controls. */
.brand,.hero-brand,.eyebrow,.hero .kicker,.lang-switch,
.nav-link,.button-link,.pill,.card .meta,.card .number,.card .keywords,
.list-item .date,.list-item .meta,.detail-meta dt,.detail-meta dd,
.pdf-download-label,.pdf-download-button,.pdf-archive-actions a,.pdf-badge,
.footer-brand,.footer-nav,.footer-external,.copyright,
button,input,select{
  font-family:var(--font-ui-jp);
}
.brand,.hero-brand,.eyebrow,.hero .kicker,.lang-switch,.footer-brand{
  font-family:var(--font-ui-latin);
}
html[lang="en"] .nav-link,
html[lang="en"] .button-link,
html[lang="en"] .pill,
html[lang="en"] .card .meta,
html[lang="en"] .card .number,
html[lang="en"] .card .keywords,
html[lang="en"] .list-item .date,
html[lang="en"] .list-item .meta,
html[lang="en"] .detail-meta dt,
html[lang="en"] .detail-meta dd,
html[lang="en"] .footer-nav,
html[lang="en"] .footer-external{
  font-family:var(--font-ui-latin);
}

/* Top statement: editorial rather than UI-like. */
.hero-statement .lead.en{font-family:var(--font-latin-serif);font-weight:400;letter-spacing:0}
.hero-statement .lead.ja{font-family:var(--font-jp-serif);font-weight:400;letter-spacing:.025em}

@media(max-width:700px){
  body{line-height:1.82}
  h1{letter-spacing:-.025em}
  .prose p{font-size:17px;line-height:1.95}
}
