:root {
  --navy-950:#061522;
  --navy-900:#071a2b;
  --navy-800:#0c2a40;
  --ink:#102330;
  --muted:#60717c;
  --line:#dce4e8;
  --paper:#f8faf9;
  --white:#ffffff;
  --teal:#13a7a0;
  --teal-dark:#0a7473;
  --blue:#1e6f9f;
  --max:1180px;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --serif:Georgia,"Times New Roman","Noto Serif JP",serif;
}

*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--teal-dark)}
img{max-width:100%}

.navbar{background:rgba(248,250,249,.97)!important;border-bottom:1px solid rgba(7,26,43,.1);padding:1rem 0;backdrop-filter:none!important}
.navbar-brand{font-size:.9rem;font-weight:800;letter-spacing:.14em;color:var(--navy-900)!important}
.navbar-nav .nav-link{font-size:.82rem;font-weight:650;letter-spacing:.025em;color:#314651!important;margin:0 .18rem}
.navbar-nav .nav-link:hover{color:var(--teal-dark)!important}
.navbar-toggler{border:0}

#quarto-content{padding:0}
main.content{padding:0!important;margin:0!important;max-width:none!important}
.page-columns{display:block!important}

.hero-shell{min-height:700px;background:var(--navy-950);color:#fff;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:4rem;padding:7rem max(6vw,calc((100vw - var(--max))/2));position:relative;overflow:hidden}
.hero-copy{position:relative;z-index:2;max-width:760px}
.eyebrow,.section-kicker{font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:1.2rem}
.hero-shell h1{font-family:var(--serif);font-weight:500;font-size:clamp(3.4rem,6vw,6.5rem);line-height:.98;letter-spacing:-.055em;margin:0 0 2rem;color:#fff;max-width:920px}
.hero-lead{font-size:clamp(1rem,1.4vw,1.28rem);color:#cdd9df;max-width:760px;margin:0 0 2.2rem;line-height:1.9}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:3rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.72rem 1.2rem;border-radius:999px;font-size:.82rem;font-weight:750;letter-spacing:.03em;border:1px solid transparent}
.button.primary{background:var(--teal);color:#042129}
.button.primary:hover{background:#2dbbb3;color:#042129}
.button.ghost{border-color:#526572;color:#fff}
.button.ghost:hover{border-color:#9fb4bf;color:#fff}
.button.light{background:#fff;color:var(--navy-900)}
.hero-meta{display:flex;gap:.65rem;flex-wrap:wrap}
.hero-meta span{font-size:.72rem;color:#b6c5cd;border:1px solid #304758;border-radius:999px;padding:.38rem .7rem}

.hero-signal{position:relative;height:470px;min-width:0}
.signal-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent 0%,#000 20%,#000 80%,transparent 100%)}
.signal-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:150px;height:150px;border:1px solid #39717b;display:grid;place-items:center;font-family:var(--serif);font-size:4rem;color:#fff;background:rgba(6,21,34,.9)}
.signal-node{position:absolute;width:58px;height:58px;border:1px solid #2b6670;color:#6bd3cb;display:grid;place-items:center;font-size:.72rem;font-weight:800;background:#071a2b}
.node-a{left:10%;top:10%}.node-b{right:6%;top:20%}.node-c{left:5%;bottom:12%}.node-d{right:14%;bottom:8%}
.signal-line{position:absolute;height:1px;background:#2e6670;transform-origin:left center;opacity:.8}
.line-a{width:43%;left:20%;top:24%;transform:rotate(26deg)}
.line-b{width:42%;left:49%;top:51%;transform:rotate(-34deg)}
.line-c{width:44%;left:15%;top:75%;transform:rotate(-31deg)}

.section-wrap{max-width:var(--max);margin:0 auto;padding:7rem 1.5rem}
.section-title{font-family:var(--serif);font-size:clamp(2.2rem,4vw,4.4rem);font-weight:500;letter-spacing:-.04em;line-height:1.05;margin:0 0 3.2rem;color:var(--navy-900)}
.research-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.research-card{min-height:360px;padding:1.65rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:#fff}
.card-index{font-size:.7rem;font-weight:800;letter-spacing:.12em;color:var(--teal-dark);margin-bottom:4rem}
.research-card h3{font-family:var(--serif);font-size:1.65rem;line-height:1.08;font-weight:500;letter-spacing:-.025em;margin:0 0 1rem;color:var(--navy-900)}
.research-card p{font-size:.88rem;color:var(--muted);margin:0 0 2rem}
.card-link{font-size:.78rem;font-weight:750;margin-top:auto;color:var(--teal-dark)}

.dark-panel{max-width:none;background:var(--navy-900);color:#fff;padding-left:max(1.5rem,calc((100vw - var(--max))/2));padding-right:max(1.5rem,calc((100vw - var(--max))/2))}
.dark-panel .section-title{color:#fff}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:var(--max);margin:auto}
.project-card{padding:2rem;min-height:300px;border:1px solid #2c4757;background:#0a2235;display:flex;flex-direction:column}
.project-tag{font-size:.66rem;letter-spacing:.14em;color:#62d4ca;font-weight:800;margin-bottom:4rem}
.project-card h3{font-family:var(--serif);font-size:1.7rem;line-height:1.1;margin:0 0 1rem;font-weight:500}
.project-card p{font-size:.87rem;color:#b8c8d0;margin:0 0 1.5rem}
.project-card span:last-child{font-size:.76rem;font-weight:750;color:#8fe3dc;margin-top:auto}

.split-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}.text-link{font-size:.82rem;font-weight:750;color:var(--teal-dark);margin-bottom:3.4rem}
.publication-list{border-top:1px solid var(--line)}
.publication-row{display:grid;grid-template-columns:100px 1fr;gap:1.6rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.pub-year{font-family:var(--serif);font-size:1.3rem;color:var(--teal-dark)}
.publication-row strong{font-size:1rem;color:var(--navy-900)}
.publication-row p{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}

.news-strip{display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem;border-top:1px solid var(--line)}
.news-list{border-top:1px solid var(--line)}
.news-list a{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}
.news-list span{font-size:.78rem;color:var(--teal-dark);font-weight:800}.news-list strong{font-size:.9rem}

.join-banner{background:var(--teal);color:#062331;display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;padding:5rem max(1.5rem,calc((100vw - var(--max))/2))}
.join-banner .section-kicker{color:#063f45}.join-banner h2{font-family:var(--serif);font-size:clamp(2.4rem,4vw,4.4rem);font-weight:500;letter-spacing:-.04em;margin:.3rem 0}.join-banner p{max-width:720px;margin:0}

.page-hero{background:var(--navy-950);color:#fff;padding:6.5rem max(1.5rem,calc((100vw - var(--max))/2)) 5.5rem}
.page-hero h1{font-family:var(--serif);font-size:clamp(3rem,6vw,6rem);line-height:1;letter-spacing:-.055em;font-weight:500;max-width:980px;margin:0 0 1.8rem;color:#fff}
.page-hero p{max-width:820px;color:#c8d5dc;font-size:1.05rem;margin:0}
.page-hero + h2, main.content > h2{max-width:var(--max);margin:5rem auto 1rem;padding:0 1.5rem;font-family:var(--serif);font-size:2.3rem;font-weight:500;letter-spacing:-.025em;color:var(--navy-900)}
main.content > p,main.content > ul,main.content > ol{max-width:var(--max);margin:0 auto 1.4rem;padding:0 1.5rem}
main.content > p strong{color:var(--navy-900)}
.notice-box,.link-panel{max-width:calc(var(--max) - 3rem);margin:2.5rem auto;padding:1.3rem 1.5rem;border-left:3px solid var(--teal);background:#edf5f3;color:#34505b}
.people-grid{max-width:var(--max);margin:1rem auto;padding:0 1.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.person-card{background:#fff;border:1px solid var(--line);padding:1.5rem}.person-monogram{width:76px;height:76px;background:var(--navy-900);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:1.7rem;margin-bottom:1.5rem}.person-card h3{font-family:var(--serif);font-weight:500;margin:.2rem 0}.person-card p{font-size:.85rem;color:var(--muted);margin:.2rem 0}.person-card a{font-size:.8rem;color:var(--teal-dark);font-weight:750}
.value-grid{max-width:var(--max);margin:2rem auto;padding:0 1.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}.value-grid>div{background:#fff;padding:1.5rem;min-height:170px}.value-grid strong{color:var(--navy-900);font-size:.85rem}.value-grid p{font-size:.85rem;color:var(--muted)}
.timeline{max-width:var(--max);margin:3rem auto;padding:0 1.5rem;border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:140px 1fr;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}.timeline-item>span{color:var(--teal-dark);font-size:.8rem;font-weight:800}.timeline-item h3{font-family:var(--serif);font-weight:500;margin:0}.timeline-item p{margin:.3rem 0;color:var(--muted)}

.nav-footer{background:#061522!important;color:#b7c6cd!important;border-top:0!important;padding:2.2rem 0!important}.nav-footer a{color:#d7e2e7!important}.nav-footer-left,.nav-footer-center,.nav-footer-right{font-size:.75rem}

@media(max-width:980px){.hero-shell{grid-template-columns:1fr;padding-top:6rem;min-height:auto}.hero-signal{height:320px;max-width:640px;width:100%;margin:auto}.research-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr}.news-strip{grid-template-columns:1fr}.people-grid{grid-template-columns:repeat(2,1fr)}.value-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.hero-shell{padding:5rem 1.2rem 4rem;gap:2.5rem}.hero-shell h1{font-size:3.3rem}.desktop-only{display:none}.hero-signal{height:260px}.signal-core{width:110px;height:110px;font-size:3rem}.signal-node{width:46px;height:46px}.section-wrap{padding:4.5rem 1.2rem}.research-grid{grid-template-columns:1fr}.research-card{min-height:300px}.card-index{margin-bottom:2.5rem}.dark-panel{padding-left:1.2rem;padding-right:1.2rem}.split-heading{display:block}.text-link{display:inline-block;margin:-2rem 0 2.5rem}.publication-row{grid-template-columns:65px 1fr}.news-list a{grid-template-columns:80px 1fr}.join-banner{align-items:flex-start;flex-direction:column;padding:4rem 1.2rem}.page-hero{padding:5rem 1.2rem 4rem}.page-hero h1{font-size:3.2rem}.people-grid,.value-grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:.4rem}.navbar{padding:.7rem 0}}

@media(prefers-color-scheme:dark){body{background:#07131c;color:#d7e1e6}.navbar{background:rgba(7,19,28,.97)!important;border-bottom-color:#263843}.navbar-brand,.navbar-nav .nav-link{color:#dbe6eb!important}.section-title,main.content>h2,.publication-row strong,.person-card h3,.value-grid strong{color:#eef5f7}.research-card,.person-card,.value-grid>div{background:#0c1b25;border-color:#263843}.research-grid,.publication-list,.publication-row,.news-strip,.news-list,.news-list a,.timeline,.timeline-item{border-color:#263843}.research-card p,.publication-row p,.person-card p,.timeline-item p{color:#9eb0b9}.notice-box,.link-panel{background:#0b2829;color:#b7d4d2}.pub-year,.card-link,.text-link,.person-card a,.timeline-item>span,.news-list span{color:#56cfc6}.nav-footer{background:#040d13!important}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* --- v2: explicit light/dark toggle, research detail, access, mobile polish --- */
.quarto-color-scheme-toggle{margin-left:.25rem}
.quarto-color-scheme-toggle .bi{font-size:1rem}

.research-detail-grid{max-width:var(--max);margin:4rem auto 1rem;padding:0 1.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.research-detail-card{display:flex;flex-direction:column;min-height:310px;padding:2rem;background:#fff;border:1px solid var(--line)}
.research-detail-card h2{font-family:var(--serif);font-size:2rem;line-height:1.08;font-weight:500;letter-spacing:-.03em;color:var(--navy-900);margin:2.2rem 0 1rem}
.research-detail-card p{font-size:.92rem;color:var(--muted);margin:0 0 1.5rem}
.research-detail-card .card-link{margin-top:auto}

.access-grid{max-width:var(--max);margin:2rem auto 4rem;padding:0 1.5rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}
.access-card{background:#fff;padding:1.5rem;min-height:190px}
.access-card .card-index{display:block;margin-bottom:2.5rem}
.access-card strong{display:block;color:var(--navy-900);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.8rem}
.access-card p{color:var(--muted);font-size:.88rem;margin:0}
.map-frame{max-width:calc(var(--max) - 3rem);margin:1.5rem auto 4rem;padding:0;aspect-ratio:16/7;border:1px solid var(--line);background:#e8eef0;overflow:hidden}
.map-frame iframe{width:100%;height:100%;border:0;display:block}

/* Quarto's manual color-scheme toggle adds quarto-dark/quarto-light to body. */
body.quarto-dark{background:#07131c;color:#d7e1e6}
body.quarto-dark .navbar{background:rgba(7,19,28,.97)!important;border-bottom-color:#263843}
body.quarto-dark .navbar-brand,body.quarto-dark .navbar-nav .nav-link{color:#dbe6eb!important}
body.quarto-dark .section-title,body.quarto-dark main.content>h2,body.quarto-dark .publication-row strong,body.quarto-dark .person-card h3,body.quarto-dark .value-grid strong,body.quarto-dark .research-detail-card h2,body.quarto-dark .access-card strong{color:#eef5f7}
body.quarto-dark .research-card,body.quarto-dark .person-card,body.quarto-dark .value-grid>div,body.quarto-dark .research-detail-card,body.quarto-dark .access-card{background:#0c1b25;border-color:#263843}
body.quarto-dark .research-grid,body.quarto-dark .publication-list,body.quarto-dark .publication-row,body.quarto-dark .news-strip,body.quarto-dark .news-list,body.quarto-dark .news-list a,body.quarto-dark .timeline,body.quarto-dark .timeline-item,body.quarto-dark .access-grid,body.quarto-dark .map-frame{border-color:#263843}
body.quarto-dark .access-grid{background:#263843}
body.quarto-dark .research-card p,body.quarto-dark .publication-row p,body.quarto-dark .person-card p,body.quarto-dark .timeline-item p,body.quarto-dark .research-detail-card p,body.quarto-dark .access-card p{color:#9eb0b9}
body.quarto-dark .notice-box,body.quarto-dark .link-panel{background:#0b2829;color:#b7d4d2}
body.quarto-dark .pub-year,body.quarto-dark .card-link,body.quarto-dark .text-link,body.quarto-dark .person-card a,body.quarto-dark .timeline-item>span,body.quarto-dark .news-list span{color:#56cfc6}
body.quarto-dark .nav-footer{background:#040d13!important}

@media(max-width:980px){
  .access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .research-detail-grid{grid-template-columns:1fr}
}

@media(max-width:640px){
  body{font-size:15px}
  .navbar .container-fluid{padding-left:1rem;padding-right:1rem}
  .navbar-collapse{padding-top:.8rem}
  .navbar-nav .nav-link{padding:.62rem 0;margin:0;border-bottom:1px solid rgba(100,120,130,.14)}
  .navbar-nav:last-child .nav-link{border-bottom:0}
  .hero-shell{padding-left:1rem;padding-right:1rem}
  .hero-shell h1{font-size:clamp(2.75rem,14vw,3.45rem);overflow-wrap:anywhere}
  .hero-lead{font-size:.98rem;line-height:1.75}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%;max-width:360px}
  .button{width:100%}
  .hero-meta{gap:.45rem}.hero-meta span{font-size:.66rem}
  .hero-signal{height:220px}
  .section-title{font-size:clamp(2.2rem,12vw,3.2rem);margin-bottom:2.2rem}
  .research-card{padding:1.35rem;min-height:270px}
  .project-card{padding:1.5rem;min-height:260px}
  .publication-row{gap:.8rem}.publication-row strong{font-size:.92rem}
  .news-list a{gap:.7rem}
  .page-hero{padding-left:1rem;padding-right:1rem}.page-hero h1{font-size:clamp(2.6rem,13vw,3.4rem);overflow-wrap:anywhere}
  main.content>h2,main.content>p,main.content>ul,main.content>ol{padding-left:1rem;padding-right:1rem}
  .research-detail-grid,.access-grid{padding-left:1rem;padding-right:1rem}
  .access-grid{grid-template-columns:1fr;background:transparent;gap:.75rem}
  .access-card{border:1px solid var(--line);min-height:auto}
  .map-frame{margin-left:1rem;margin-right:1rem;aspect-ratio:4/3}
  .join-banner .button{width:auto}
  .nav-footer{padding-left:1rem!important;padding-right:1rem!important}
}
