:root{--ink:#102a43;--muted:#526578;--accent:#006b70;--line:#dce4e6;--paper:#fafaf7;--wash:#edf3f1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic",Meiryo,system-ui,sans-serif;font-size:16px;line-height:1.8}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip{position:absolute;top:-100px;left:16px;background:white;padding:10px;z-index:9}.skip:focus{top:5px}.draft{background:var(--ink);color:white;text-align:center;font-size:12px;letter-spacing:.06em;padding:6px 16px}header{border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{max-width:1240px;margin:auto;padding:26px 40px;display:flex;align-items:center;gap:36px}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.35;white-space:nowrap}.brand strong{font-size:22px;letter-spacing:.08em}.brand span{font-family:Georgia,serif;font-size:13px;color:var(--muted);margin-top:6px}nav{display:flex;gap:24px;margin-left:auto;flex-wrap:wrap}nav a{font-size:14px;text-decoration:none}nav a[aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}.language{font-size:13px;border-left:1px solid var(--line);padding-left:20px;text-decoration:none}main{max-width:1160px;margin:auto;padding:0 40px 80px}.hero{display:grid;grid-template-columns:1.45fr 1fr;gap:70px;padding:88px 0 78px;align-items:center}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.13em;margin:0 0 20px}h1,h2,h3{line-height:1.45;font-weight:600;overflow-wrap:anywhere}h1{font-size:clamp(30px,3.5vw,46px);letter-spacing:.025em;margin:0 0 26px}h2{font-size:26px;margin:0 0 22px}h3{font-size:19px;margin:0 0 12px}p{margin:0 0 18px}.hero-copy{max-width:560px;color:var(--muted);font-size:17px;line-height:2}.affiliation{font-size:14px;margin-top:24px}.actions{display:flex;align-items:center;gap:26px;margin-top:30px}.button{display:inline-block;background:var(--accent);color:white;text-decoration:none;padding:12px 24px;font-size:14px;border:0;cursor:pointer}.button:hover{background:var(--ink);color:white}.text-link{font-size:14px;font-weight:600}.research-art{position:relative;min-height:360px;background:var(--wash);overflow:hidden;border:1px solid #d8e4df}.art-caption{position:absolute;top:25px;left:25px;color:var(--accent);font-size:9px;letter-spacing:.18em}.orbit{position:absolute;border:1px solid #6e9693;border-radius:50%;width:220px;height:220px;left:50%;top:46%;transform:translate(-50%,-50%)}.orbit-b{width:150px;height:150px}.orbit-c{width:70px;height:70px;background:#dae7e2}.axis{position:absolute;height:1px;background:#adc4bd;transform:rotate(-35deg);left:5%;top:45%;width:90%}.axis-b{transform:rotate(55deg)}.dot{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--accent)}.dot-a{top:27%;left:63%}.dot-b{top:55%;left:39%}.dot-c{top:49%;left:70%;width:7px;height:7px;background:var(--ink)}.art-bottom{position:absolute;bottom:25px;left:25px;font-size:9px;letter-spacing:.1em;color:var(--muted)}.art-bottom strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:21px;color:var(--ink);margin-top:7px}.section{border-top:1px solid var(--line);padding:48px 0 20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.section-head .eyebrow{margin-bottom:10px}.section-head h2{margin:0}.section-head>a{font-size:14px}.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.topic{padding:18px 0 30px}.section-number{font-family:Georgia,serif;font-size:24px;color:var(--accent);display:block;margin-bottom:20px}.topic h2{font-size:22px}.topic p{color:var(--muted);font-size:15px}.publication{display:grid;grid-template-columns:68px 1fr;gap:24px;padding:30px 0;border-bottom:1px solid var(--line);break-inside:avoid}.pub-year{font-family:Georgia,serif;font-size:23px;color:var(--accent)}.publication .eyebrow{font-size:10px;margin:0 0 10px}.publication h3 a{text-decoration:none}.publication h3 a:hover{text-decoration:underline}.authors,.bibliography{font-size:14px;color:var(--muted);margin-bottom:6px;overflow-wrap:anywhere}.pub-links{display:flex;gap:24px;margin-top:14px;font-size:12px;color:var(--accent)}.closing{margin-top:60px;background:var(--wash);padding:36px 40px}.closing p{color:var(--muted);max-width:720px}.page-heading{padding:64px 0 42px;border-bottom:1px solid var(--line)}.page-heading h1{margin-bottom:20px}.page-heading p:last-child{max-width:740px;color:var(--muted);margin-bottom:0}.topic-index{display:flex;flex-wrap:wrap;gap:14px;padding:30px 0}.topic-index a{font-size:14px;border:1px solid var(--line);padding:8px 14px;text-decoration:none}.topic-full{scroll-margin-top:24px;padding:36px 0 46px}.topic-full>.section-number{float:left;margin-right:20px}.topic-full>h2{font-size:28px}.filters{display:grid;grid-template-columns:2fr .7fr 1.4fr auto;gap:18px;align-items:end;margin:32px 0 20px}.filters label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:8px}input,select{width:100%;min-width:0;background:white;border:1px solid #9daeb8;border-radius:0;color:var(--ink);padding:10px;font-size:14px;height:46px}.reset{height:46px;background:transparent;border:1px solid #9daeb8;padding:8px 14px;color:var(--ink);font-size:13px;cursor:pointer}#result-count{font-size:13px;color:var(--muted)}#empty{padding:35px 0}.profile-layout{display:grid;grid-template-columns:2fr 1fr;gap:70px;padding-top:44px}.subheading{margin-top:46px}.timeline{list-style:none;padding:0}.timeline li{display:grid;grid-template-columns:145px 1fr;gap:20px;border-top:1px solid var(--line);padding:18px 0}.timeline span{font-size:13px;color:var(--muted)}.timeline strong{font-size:15px;font-weight:500}.note{font-size:12px;color:var(--muted)}aside{border-left:1px solid var(--line);padding-left:30px}aside>a{display:block;margin-bottom:22px;font-size:14px}.teaching-panel{max-width:800px;padding:48px 0}.teaching-panel .note{margin-top:26px}.cv{padding-top:34px}.cv>h2{margin-top:30px}.print-button{margin-top:28px}footer{max-width:1160px;padding:36px 40px 44px;margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;font-size:12px;color:var(--muted)}footer strong{font-family:Georgia,serif;font-size:20px;color:var(--ink);font-weight:400}footer p{margin:10px 0 0}[hidden]{display:none!important}@media(max-width:950px){.header-inner{flex-wrap:wrap;gap:20px}nav{order:3;width:100%;margin:0;gap:20px}.language{margin-left:auto}.hero{gap:35px}.research-art{min-height:320px}.filters{grid-template-columns:2fr 1fr}.topics{gap:20px}.topic h2{font-size:19px}.profile-layout{gap:35px}}@media(max-width:600px){body{font-size:16px}.header-inner{padding:20px}.brand strong{font-size:20px}nav{gap:12px 19px}nav a{font-size:13px}main{padding:0 20px 50px}.hero{grid-template-columns:1fr;padding:46px 0;gap:36px}.hero h1{font-size:30px}.research-art{min-height:240px}.orbit{width:170px;height:170px}.orbit-b{width:115px;height:115px}.orbit-c{width:55px;height:55px}.art-bottom{left:auto;right:15px;bottom:12px}.art-caption{left:15px;top:15px}.topics{grid-template-columns:1fr;gap:0}.topic{border-bottom:1px solid var(--line)}.topic h2{font-size:23px}.section-number{margin-bottom:12px}.section-head{align-items:flex-start;flex-direction:column;gap:15px}.publication{grid-template-columns:1fr;gap:8px;padding:24px 0}.pub-year{font-size:19px}.closing{padding:26px 22px}.closing h2{font-size:23px}.page-heading{padding:42px 0 30px}.filters{grid-template-columns:1fr 1fr;gap:12px}.filters label:first-child{grid-column:1/-1}.filters label:nth-child(3){grid-column:1/-1}.reset{grid-column:1/-1}.profile-layout{grid-template-columns:1fr;gap:30px}.timeline li{grid-template-columns:1fr;gap:4px}aside{padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}footer{margin:0 20px;padding:28px 0;flex-direction:column}.actions{flex-wrap:wrap}.topic-full>h2{font-size:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{background:white;font-size:11pt;color:black}.draft,header,footer,.print-button,.skip{display:none}main{max-width:none;padding:0}.page-heading{padding:0 0 15px}.page-heading .eyebrow{display:none}h1{font-size:24pt}.publication{grid-template-columns:50px 1fr;padding:15px 0}.pub-links{display:none}.cv{padding:0}.cv>h2{font-size:16pt}.timeline strong{font-size:11pt}a{text-decoration:none}}
.combined-topics{padding-top:32px}.combined-topics .topic{padding-bottom:24px}.teaching-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:70px;padding:48px 0}.teaching-intro p{max-width:650px}.learning-steps{list-style:none;padding:0;margin:0}.learning-steps li{display:flex;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.learning-steps span{font-family:Georgia,serif;color:var(--accent);font-size:22px}.learning-steps strong{font-size:15px;font-weight:500}.teaching-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:30px 0}.teaching-topics h3{font-size:19px;border-top:2px solid var(--accent);padding-top:18px}.award{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:25px 0}.teaching-source{margin-top:28px}@media(max-width:600px){.teaching-intro{grid-template-columns:1fr;gap:25px;padding-top:32px}.teaching-topics{grid-template-columns:1fr;gap:12px}.award{grid-template-columns:1fr;gap:8px}.learning-aside{padding-top:22px}}
.activity{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}.activity-date{font-size:14px;color:var(--accent);font-weight:600}.activity h3{font-size:17px}.venue{font-size:14px;color:var(--muted);margin-bottom:8px}@media(max-width:600px){.activity{grid-template-columns:1fr;gap:6px}.hero h1{font-size:26px}}
.badges{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:6px}.badges:empty{display:none}.badge{font-size:11px;border:1px solid var(--line);padding:1px 8px;color:var(--muted);background:white}.badge-status{border-color:#d9a441;color:#7a5200;background:#fff7e6}.kind-group{padding-top:20px}.kind-heading{font-size:20px;border-bottom:2px solid var(--accent);padding-bottom:8px;margin:28px 0 0;display:flex;justify-content:space-between}.kind-heading span{font-size:14px;color:var(--muted);font-weight:400}.publication .pub-year{font-size:16px}.message{margin:0;padding:20px 24px;border-left:3px solid var(--accent);background:var(--wash);max-width:760px}.topic-list{padding-left:20px}.topic-list li{margin-bottom:6px}.career-list{color:var(--muted);font-size:15px}.preview-only{color:#7a5200}@media print{.badge-status,.preview-only,.filters,#result-count{display:none}}
.term-net{margin:0;background:var(--wash);border:1px solid #d8e4df;padding:10px 10px 4px;position:relative}.term-net svg{display:block;width:100%;height:auto;touch-action:none;user-select:none}.term-net figcaption{font-size:11px;color:var(--muted);padding:2px 6px 6px;line-height:1.6}.net-links line{stroke:#8fb0aa;stroke-opacity:.55}.net-node{cursor:grab}.net-node:active{cursor:grabbing}.net-node circle{stroke:#fff;stroke-width:1.5}.net-node text{text-anchor:middle;fill:var(--ink);paint-order:stroke;stroke:var(--wash);stroke-width:3px;font-family:"Yu Gothic",Meiryo,system-ui,sans-serif;pointer-events:none}.net-node:focus{outline:none}.net-node:focus circle{stroke:var(--ink);stroke-width:2.5}.net-node.g0 circle{fill:#006b70}.net-node.g1 circle{fill:#3f7cac}.net-node.g2 circle{fill:#b8860b}.net-node.g3 circle{fill:#8a5a9e}.net-node.g4 circle{fill:#5c8a3a}.net-node.g5 circle{fill:#b5534a}.term-net.has-focus .net-node:not(.is-on){opacity:.25}.net-node.minor text{opacity:0;transition:opacity .2s}.net-node.minor.is-on text,.net-node.minor:focus text{opacity:1}.term-net.has-focus .net-links line:not(.is-on){stroke-opacity:.12}.net-links line.is-on{stroke:var(--accent);stroke-opacity:.9}@media(max-width:600px){.term-net figcaption{font-size:11px}}
.summary{font-size:14px;margin:0 0 8px;color:var(--ink)}
.lang-tag{font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}.original-title{font-size:13px;color:var(--muted);margin:-4px 0 8px}

/* ---- ホーム上部：大きな共起ネットワーク（2026-11-03試作。build.py の HERO_VARIANT で切替） ---- */
.hero .term-net svg{aspect-ratio:420/380;height:auto}
.hero-net{position:relative;margin:0 -40px}
.hero-net .term-net{border:0;padding:0;background:radial-gradient(ellipse at 62% 42%,#f6faf8 0%,var(--wash) 52%,#e3edea 100%)}
.hero-net .term-net svg{width:100%}
.hero-overlay .term-net svg{height:min(80vh,720px);min-height:540px}
.hero-overlay .term-net figcaption{position:absolute;right:40px;bottom:14px;max-width:360px;text-align:right;padding:0}
.hero-net-text{position:absolute;left:40px;bottom:64px;max-width:640px;pointer-events:none}
.hero-net-text>*{pointer-events:auto;width:fit-content}
.hero-net-text .eyebrow{margin-bottom:14px;letter-spacing:.16em}
.hero-net-text h1{font-size:clamp(30px,3.7vw,50px);line-height:1.35;margin:0 0 18px}
.hero-net-text h1,.hero-net-text .hero-copy,.hero-net-text .affiliation,.hero-net-text .eyebrow{text-shadow:0 0 14px var(--wash),0 0 6px var(--wash),0 0 2px var(--wash)}
.hero-net-text .hero-copy{margin-bottom:6px}
.hero-net-text .affiliation{margin-top:0}
.hero-net-text .actions{margin-top:22px}
.hero-below .term-net svg{height:min(64vh,600px);min-height:440px}
.hero-below .term-net figcaption{position:absolute;right:40px;top:14px;max-width:380px;text-align:right;padding:0}
.hero-below-text{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:end;padding:30px 40px 44px;border-bottom:1px solid var(--line)}
.hero-below-text h1{font-size:clamp(22px,2.5vw,32px);line-height:1.45;margin:0}
.hero-below-text .eyebrow{margin-bottom:12px}
.hero-below-text .hero-copy{font-size:15px;margin-bottom:6px}
.net-links line.cross{stroke-dasharray:3 4;stroke-opacity:.4}
@media(max-width:950px){.hero-net-text{max-width:70%}}
@media(max-width:600px){.hero-net{margin:0 -20px}.hero-overlay .term-net svg{height:82vh;min-height:560px}.hero-net-text{left:20px;right:20px;bottom:48px;max-width:none}.hero-net-text h1{font-size:25px}.hero-overlay .term-net figcaption,.hero-below .term-net figcaption{position:static;text-align:left;max-width:none;padding:6px 20px 10px}.hero-below .term-net svg{height:62vh;min-height:420px}.hero-below-text{grid-template-columns:1fr;gap:16px;padding:20px 20px 32px}.hero-below-text h1{font-size:22px}}

/* 教育・ゼミ（2026-11-03） */
.seminar-lead{padding:44px 0 20px}.seminar-tagline{font-size:clamp(24px,2.8vw,34px);line-height:1.5;margin-bottom:20px}
.question-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:12px}.question-list li{font-size:18px;font-weight:600;padding:14px 18px;background:var(--wash);border-left:3px solid var(--accent)}
.seminar-timeline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.seminar-timeline li{border-top:2px solid var(--accent);padding-top:14px}.seminar-timeline span{font-size:12px;color:var(--accent);font-weight:700;letter-spacing:.05em}.seminar-timeline strong{display:block;font-size:17px;margin:6px 0}.seminar-timeline p{font-size:14px;color:var(--muted);margin:0}
.note-strong{margin-top:22px;font-weight:600}
.thesis-list{list-style:none;padding:0;display:grid;gap:14px}.thesis-list li{padding:14px 18px;border:1px solid var(--line);background:white}.thesis-list p{margin:6px 0 0;font-size:14px;color:var(--muted)}
.past-topics summary{cursor:pointer;font-size:14px;color:var(--accent);margin:10px 0}
@media(max-width:950px){.seminar-timeline{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.seminar-timeline{grid-template-columns:1fr}.question-list li{font-size:16px}}

/* ---- 表紙の背景を透明感のある表現に（本人依頼 2026-11-03「共起ネットが浮いている感じ」）。戻すときはこのブロックを削除 ---- */
.hero-net .term-net{background:
  radial-gradient(ellipse 46% 50% at 60% 42%,rgba(255,255,255,.85) 0%,rgba(255,255,255,.35) 45%,rgba(255,255,255,0) 75%),
  radial-gradient(ellipse 60% 60% at 88% 78%,rgba(120,186,178,.42) 0%,rgba(120,186,178,0) 70%),
  radial-gradient(ellipse 55% 55% at 12% 22%,rgba(150,186,224,.40) 0%,rgba(150,186,224,0) 70%),
  radial-gradient(ellipse 45% 40% at 35% 95%,rgba(176,206,214,.35) 0%,rgba(176,206,214,0) 70%),
  linear-gradient(160deg,#e6f0f2 0%,#eef4f2 55%,#e3eeec 100%)}
.hero-net .net-links line{stroke:#9fbcb7;stroke-opacity:.42}
.hero-net .net-node circle{stroke:rgba(255,255,255,.9);stroke-width:2;filter:drop-shadow(0 6px 8px rgba(16,42,67,.16)) drop-shadow(0 1px 2px rgba(16,42,67,.10))}
.hero-net .net-node text{stroke:rgba(250,250,247,.85)}
.hero-net-text h1,.hero-net-text .hero-copy,.hero-net-text .affiliation,.hero-net-text .eyebrow{text-shadow:0 0 16px var(--paper),0 0 8px var(--paper),0 0 2px var(--paper)}

/* ---- 共起ネットの説明文を画面に出さない（読み上げ用には残す）・表紙の下側を詰める（本人指示 2026-11-03） ---- */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero-overlay .term-net svg{height:min(70vh,630px);min-height:480px}
.hero-net .term-net{padding-bottom:0}
.hero-net-text{bottom:40px}
@media(max-width:600px){.hero-overlay .term-net svg{height:74vh;min-height:500px}.hero-net-text{bottom:28px}}

/* ---- 写真・ご依頼窓口・最近の活動（本人指示 2026-11-03） ---- */
.portrait{display:block;width:100%;height:auto;object-fit:cover}
.closing-with-photo{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:center}
.closing-with-photo .portrait{aspect-ratio:4/3.4;object-position:40% 30%}
.portrait-profile{max-width:420px;margin-bottom:30px}
aside .portrait{margin-bottom:26px}
.recent-more{display:flex;gap:28px;margin-top:22px}
@media(max-width:700px){.closing-with-photo{grid-template-columns:1fr;gap:22px}.closing-with-photo .portrait{max-width:360px}}
/* 共起ネットの丸の白い縁取りをなくす（影は残す） */
.net-node circle,.hero-net .net-node circle{stroke:none}

/* スマホでアドレスバーの出入りで図の高さが変わらないようにする（svh 対応ブラウザのみ。2026-11-03） */
@supports (height:1svh){@media(max-width:600px){.hero-overlay .term-net svg{height:74svh}}}

/* ---- スマホの表紙：ネットワークの描画スペースを広げ、ボタンは最初の画面に残す（本人相談 2026-11-03）。戻すときはこのブロックを削除 ---- */
@media(max-width:600px){
 .header-inner{padding:12px 20px 6px;gap:4px 20px}
 .brand strong{font-size:18px}
 .brand span{font-size:11px;margin-top:2px}
 nav{flex-wrap:nowrap;overflow-x:auto;gap:18px;padding-bottom:6px;scrollbar-width:none}
 nav::-webkit-scrollbar{display:none}
 nav a{font-size:13.5px;white-space:nowrap}
 .hero-overlay .term-net svg{height:calc(100svh - 100px);min-height:560px;max-height:780px}
 .hero-net-text{bottom:22px}
 .hero-net-text .eyebrow{font-size:10px;margin-bottom:8px}
 .hero-net-text h1{font-size:20.5px;letter-spacing:0;line-height:1.45;margin:0 0 8px}
 .hero-net-text .hero-copy{display:none}
 .hero-net-text .affiliation{font-size:12px}
 .hero-net-text .actions{margin-top:14px}
}

/* メニューの短い名前（スマホのみ表示） */
.nav-short{display:none}
@media(max-width:600px){.nav-full{display:none}.nav-short{display:inline}}

/* ---- 視認性の調整（本人相談「文字の色が薄くて読みづらい」、2026-11-03）。戻すときはこのブロックを削除 ---- */
/* Windowsの游ゴシック（標準の太さ）は線が細いので Medium を優先。Macはヒラギノ */
:root{--muted:#3f4f60}
body,button,input,select{font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","YuGothic","Yu Gothic",Meiryo,"Noto Sans JP",system-ui,sans-serif}
@supports (font-family:YuGothic){body{font-weight:500}}
.note,footer,footer p,.badge,.timeline span{font-size:13px}
.eyebrow{letter-spacing:.12em}
/* 共起ネットの語は以前の書体・太さのまま（本人指示 2026-11-03「図がメインなので」） */
.net-node text{font-weight:400}
