/* Layout concept: a journal plate — quiet cool-grey ground, wide margins, structures shown on white
   figure mats with numbered legends, serif display (Newsreader / Shippori Mincho) over IBM Plex body,
   Plex Mono for the specimen labels (Å, Ballesteros–Weinstein positions, years). */
:root{
  --bg:#f3f4f6; --surface:#ffffff; --surface-2:#e8ebf0;
  --ink:#151b26; --ink-2:#3b4454; --muted:#5f6878;
  --line:#dcdfe5; --line-strong:#b5bcc7;
  --accent:#b0353e; --accent-hover:#8f2a32; --accent-soft:#f5e2e3; --on-accent:#ffffff;
  --band-bg:#151b26; --band-fg:#c9cfd9; --band-heading:#ffffff; --band-line:#2b3341;
  --mat:#ffffff; --mat-ink:#151b26;
  --plate:#95949a; --plate-2:#c1bfc0; --plate-ink:#2a2a2e;
  --focus:#b0353e;
  --font-display:"Newsreader","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho",Georgia,"Times New Roman",serif;
  --font-body:"IBM Plex Sans JP","IBM Plex Sans","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,"Segoe UI",Helvetica,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --max:1200px; --gutter:clamp(16px,4vw,40px);
  --radius:4px; --radius-lg:14px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
.site{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
main{flex:1}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;font-weight:500;text-wrap:balance;overflow-wrap:anywhere}
strong{font-weight:600}
sup{font-size:.68em;line-height:0;vertical-align:baseline;position:relative;top:-.5em}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
.container{width:min(100% - var(--gutter)*2,var(--max));margin-inline:auto}
.narrow{max-width:860px}

.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;line-height:1.2;font-feature-settings:"palt"}
.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font-weight:500}
.en-small{font-size:.86rem;color:var(--muted);margin:0}
.mono{font-family:var(--font-mono)}
.ph{display:inline-block}
.muted{color:var(--muted)}
.text-link{color:var(--accent);font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s}
.link-row{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0}
.join-band{scroll-margin-top:calc(96px + env(safe-area-inset-top,0px))}
.text-link:hover{border-bottom-color:currentColor}
.ext{font-family:var(--font-mono);font-size:.78em;margin-left:.2em;color:var(--accent)}

/* bilayer divider — two rows of lipid head groups */
.bilayer{height:10px;margin:0;background-image:radial-gradient(circle at 4px 2.5px,var(--line-strong) 1.3px,transparent 1.7px),radial-gradient(circle at 4px 7.5px,var(--line-strong) 1.3px,transparent 1.7px);background-size:8px 10px;background-repeat:repeat-x;opacity:.9}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--bg);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:74px}
.brand{display:flex;flex-direction:column;gap:3px;line-height:1.1;padding:12px 0}
.brand-name{font-family:var(--font-display);font-size:1.4rem;font-weight:500;letter-spacing:-.005em;color:var(--ink)}
.brand-sub{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.site-nav{display:flex;align-items:center;gap:2px}
.site-nav a{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border-radius:999px;font-size:.9rem;font-weight:500;color:var(--ink-2);transition:background .2s,color .2s}
.site-nav a:hover{background:var(--surface-2);color:var(--ink)}
.site-nav a.active{color:var(--accent)}
.site-nav a.active:hover{background:var(--accent-soft)}
.site-nav .lang-link{margin-left:10px;border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;color:var(--ink);min-height:34px;padding:0 14px}
.site-nav .lang-link:hover{border-color:var(--ink);background:transparent}
.nav-toggle{display:none;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;min-height:36px;padding:0 14px;border-radius:999px;cursor:pointer}

/* buttons */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;border:1px solid var(--ink);color:var(--ink);font-weight:500;font-size:.95rem;line-height:1.2;transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap}
.button.primary{background:var(--ink);color:var(--bg)}
.button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.button.ghost:hover{background:var(--surface)}
.button .arrow{font-family:var(--font-mono);font-size:.9em}
.button.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.button.accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}

/* hero */
.hero{border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px)}
.hero h1{font-size:clamp(2.45rem,5.2vw,4.3rem);line-height:1.14;margin:0 0 .55em}
.hero h1:lang(ja){font-size:clamp(2.2rem,4.5vw,3.6rem)}
.hero h1:lang(en){font-size:clamp(2.05rem,4vw,3.1rem)}
.hero h1 .sub{display:block;font-size:.52em;line-height:1.4;margin-top:.55em;color:var(--ink-2)}
.hero-en{font-family:var(--font-display);font-style:italic;font-size:clamp(1.15rem,1.6vw,1.4rem);color:var(--accent);margin:0 0 18px;font-feature-settings:normal}
.hero-lead{font-size:1.05rem;color:var(--ink-2);max-width:40em;margin:0 0 32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 36px}
.hero-meta{display:flex;flex-wrap:wrap;gap:6px 0;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.02em;color:var(--muted);margin:0}
.hero-meta span{display:inline-flex;align-items:center}
.hero-meta span:not(:last-child)::after{content:"/";margin:0 12px;color:var(--line-strong)}
.hero-plate{margin:0;display:flex;flex-direction:column;gap:12px}
.plate{position:relative;background:linear-gradient(180deg,var(--plate) 0%,var(--plate-2) 100%);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;width:100%;max-width:520px;margin-inline:auto;box-shadow:0 30px 60px -30px rgba(21,27,38,.45)}
.plate img{width:100%;height:100%;object-fit:cover;animation:breathe 14s ease-in-out infinite alternate;transform-origin:50% 55%}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.03)}}
.plate-tag{position:absolute;z-index:2;right:14px;top:14px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:#f3f4f6;background:rgba(21,27,38,.55);padding:5px 11px;border-radius:999px;backdrop-filter:blur(4px)}
.hero-plate figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-family:var(--font-mono);font-size:.74rem;color:var(--muted);padding-inline:4px}
.hero-plate figcaption strong{font-weight:500;color:var(--ink-2)}

/* sections */
.section{padding-block:clamp(56px,8vw,104px)}
.section.tight{padding-block:clamp(40px,6vw,72px)}
.section-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px 56px;align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.section-head h2{font-size:clamp(1.8rem,3.3vw,2.7rem)}
.section-head .eyebrow{margin-bottom:12px}
.section-head p.lede{margin:0 0 6px;color:var(--muted);font-size:.98rem}
.section-head.single{grid-template-columns:minmax(0,1fr);max-width:780px}

/* workflow strip */
.flow-rail{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.flow-rail em{font-style:normal;color:var(--accent)}
.flow-rail .arr{color:var(--line-strong)}
.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong)}
.flow-step{padding:30px 32px 34px 0;border-right:1px solid var(--line);position:relative}
.flow-step+.flow-step{padding-left:32px}
.flow-step:last-child{border-right:0;padding-right:0}
.step-no{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;color:var(--accent);font-weight:500}
.flow-step h3{font-family:var(--font-display);font-size:1.4rem;font-weight:500;margin:16px 0 12px;line-height:1.35;font-feature-settings:"palt"}
.flow-step p{color:var(--ink-2);font-size:.95rem;margin:0}
.flow-step .en-small{margin-top:12px}

/* hairline spec grid */
.spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.spec-grid>div{background:var(--bg);padding:26px 26px 28px;min-width:0}
.spec-grid h3{font-size:1.02rem;font-weight:600;margin:0 0 10px;line-height:1.5}
.spec-grid p{font-size:.9rem;color:var(--ink-2);margin:0}
.spec-grid .idx{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);letter-spacing:.14em;display:block;margin-bottom:14px}

/* split + facts */
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:start}
.split h2{font-size:clamp(1.8rem,3.3vw,2.7rem);margin-bottom:18px}
.split .lead{font-size:1.08rem;color:var(--ink-2)}
.facts{border-top:1px solid var(--line-strong);margin:0;padding:0;list-style:none}
.facts li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.facts span{color:var(--muted);font-size:.9rem}
.facts strong{font-family:var(--font-display);font-size:2rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}

/* band */
.band{background:var(--band-bg);color:var(--band-fg);border:1px solid var(--band-line);border-radius:var(--radius-lg);padding:clamp(28px,4.5vw,56px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.band .eyebrow{color:var(--band-fg);opacity:.8}
.band h2{color:var(--band-heading);font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:14px}
.band p{margin:0;max-width:52em;font-size:.97rem}
.band .button{border-color:var(--band-heading);color:var(--band-heading)}
.band .button:hover{background:var(--band-heading);color:var(--band-bg)}

/* inner page hero */
.page-hero{padding-block:clamp(48px,7vw,92px) clamp(32px,5vw,60px);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.06;letter-spacing:-.015em;margin:0 0 16px}
.page-hero .lede{font-size:1.1rem;color:var(--ink-2);max-width:42em;margin:0}

/* research */
.research-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.toc-wrap{position:sticky;top:calc(92px + env(safe-area-inset-top,0px))}
.toc{display:flex;flex-direction:column;gap:2px;margin:0;padding:0}
.toc-title{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 10px 12px}
.toc a{display:block;font-size:.86rem;padding:7px 12px;border-left:2px solid var(--line);color:var(--muted);transition:color .2s,border-color .2s;line-height:1.5}
.toc a:hover{color:var(--ink)}
.toc a.active{color:var(--ink);border-left-color:var(--accent)}
.research-item{padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--line);scroll-margin-top:calc(90px + env(safe-area-inset-top,0px))}
.research-item:first-child{border-top:0;padding-top:0}
.research-item h2{font-size:clamp(1.6rem,2.8vw,2.3rem);margin:0 0 20px}
.research-item p{max-width:44em;color:var(--ink-2)}
.research-item p.en-small{margin-top:4px}
.research-item strong{color:var(--ink)}
.inline-stat{display:inline-flex;align-items:baseline;gap:14px;margin:6px 0 18px;padding:14px 20px;border:1px solid var(--line);background:var(--surface)}
.inline-stat strong{font-family:var(--font-display);font-size:2.2rem;font-weight:500;line-height:1;color:var(--ink)}
.inline-stat span{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

.fig-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}
.fig{margin:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);min-width:0}
.fig.wide{grid-column:1/-1}
.fig-mat{flex:1;background:var(--mat);color:var(--mat-ink);padding:22px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);min-height:240px}
.fig-mat img{width:100%;height:auto;max-height:520px;object-fit:contain}
.fig-mat.m2 img{width:min(100%,760px)}
.fig-mat video{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;max-height:520px;background:#000;border-radius:2px}
.fig-legend{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px}
.fig-label{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:var(--accent);font-weight:500}
.fig-legend strong{font-size:1.05rem;line-height:1.5;color:var(--ink)}
.fig-legend .legend{font-size:.92rem;color:var(--ink-2);line-height:1.8;margin:0;max-width:none}
.study-link{font-family:var(--font-mono);font-size:.78rem;color:var(--accent);letter-spacing:.02em;align-self:flex-start;border-bottom:1px solid transparent;transition:border-color .2s}
.study-link:hover{border-bottom-color:currentColor}
.credit{font-size:.74rem;color:var(--muted);line-height:1.6;margin:0}
.credit a{text-decoration:underline;text-underline-offset:2px}

.direction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}
.direction-card{background:var(--surface);border:1px solid var(--line);padding:28px 28px 30px;display:flex;flex-direction:column;gap:10px;min-width:0}
.direction-card .eyebrow{margin:0 0 4px}
.direction-card h3{font-family:var(--font-display);font-size:1.25rem;font-weight:500;line-height:1.45;font-feature-settings:"palt"}
.direction-card p{margin:0;font-size:.93rem;line-height:1.8;max-width:none}
.direction-card .study-link{margin-top:6px}

/* graphical abstract */
.ga-section{padding-block:clamp(36px,5vw,56px) 0}
.ga{margin:0}
.svg-mat{background:var(--surface);color:var(--ink);padding:18px 18px 10px;min-height:0;display:block}
.ga-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ga-svg{display:block;width:100%;height:auto;min-width:1000px}
.ga-img{display:none;width:100%;height:auto;max-height:none}
.ga.has-image .ga-img{display:block}
.ga.has-image .ga-scroll{display:none}

/* team */
.team-group+.team-group{margin-top:clamp(36px,5vw,60px)}
.team-group>h2{font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line-strong);margin:0 0 22px;display:flex;justify-content:space-between;gap:16px}
.team-group>h2 .count{color:var(--muted);opacity:.7}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.person{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);min-width:0}
.photo{position:relative;aspect-ratio:4/3;background-color:var(--surface-2);background-image:radial-gradient(circle,var(--line-strong) .9px,transparent 1.3px);background-size:14px 14px;overflow:hidden}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.photo img.contain{object-fit:contain;padding:12px}
.photo img.missing{display:none}
.initials{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:2.4rem;color:var(--muted);letter-spacing:.04em;z-index:1}
.person-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:6px}
.role{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0;font-weight:500}
.person h3{font-size:1.15rem;font-weight:600;line-height:1.4}
.person h3 span{display:block;font-size:.8rem;font-weight:400;color:var(--muted);margin-top:2px}
.affiliation{font-size:.86rem;color:var(--muted);margin:0}
.tags{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.tags span{font-size:.83rem;color:var(--ink-2);padding-left:12px;border-left:2px solid var(--line-strong);line-height:1.55}
.person.leader{grid-column:1/-1;display:grid;grid-template-columns:260px minmax(0,1fr);align-items:stretch}
.person.leader .photo{aspect-ratio:auto;min-height:260px}
.person.leader .person-body{padding:28px 30px;justify-content:center}
.person.leader h3{font-size:1.5rem;font-family:var(--font-display);font-weight:500}

/* publications */
.pub-intro{margin-bottom:28px;max-width:46em}
.pub-intro p{color:var(--ink-2)}
.pub-links{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 48px}
.pub-links a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:.86rem;font-weight:500;color:var(--ink-2);transition:border-color .2s,background .2s,color .2s}
.pub-links a:hover{border-color:var(--ink);color:var(--ink)}
.pub-links a.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pub-links a.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pub-links a .ext{color:inherit;opacity:.7}
.pub-section-title{font-size:1.6rem;margin:0 0 6px}
.pub-list{border-top:1px solid var(--line-strong);margin-top:22px}
.pub{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.pub .year{font-family:var(--font-mono);font-size:.84rem;color:var(--accent);padding-top:5px;font-weight:500}
.pub strong{display:block;font-size:1.04rem;line-height:1.55;font-weight:600}
.pub strong a{transition:color .2s}
.pub strong a:hover{color:var(--accent)}
.pub p{margin:7px 0 0;color:var(--muted);font-size:.9rem;line-height:1.7}
.pub p b{color:var(--ink-2);font-weight:600}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;margin-left:6px;vertical-align:middle;white-space:nowrap}
.source-note{margin-top:28px;color:var(--muted);font-size:.84rem}

/* profile */
.profile-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.profile-card{position:sticky;top:calc(96px + env(safe-area-inset-top,0px));background:var(--surface);border:1px solid var(--line);padding:22px 22px 26px}
.profile-photo{aspect-ratio:1/1;background:var(--surface-2);display:flex;align-items:flex-end;justify-content:center;margin-bottom:20px;overflow:hidden}
.profile-photo img{width:62%;height:auto;max-height:100%}
.profile-card h2{font-family:var(--font-display);font-size:1.6rem;font-weight:500;margin:0 0 2px}
.profile-card .romaji{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin:0 0 14px;letter-spacing:.02em}
.profile-card p{font-size:.92rem;margin:0 0 10px;color:var(--ink-2)}
.profile-card .en-small{margin:0}
.profile-copy>h2{font-family:var(--font-display);font-size:1.55rem;font-weight:500;margin:0 0 16px;padding-top:36px;border-top:1px solid var(--line);font-feature-settings:"palt"}
.profile-copy>h2:first-child{padding-top:0;border-top:0}
.profile-copy>p{color:var(--ink-2);max-width:46em}
.profile-copy>ul+h2,.profile-copy>p+h2,.profile-copy>div+h2{margin-top:32px}
.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:26px 0 10px}
.metrics div{background:var(--surface);padding:18px 20px}
.metrics strong{font-family:var(--font-display);font-size:2.1rem;font-weight:500;line-height:1;display:block;font-variant-numeric:tabular-nums}
.metrics span{display:block;margin-top:8px;font-size:.78rem;color:var(--muted);line-height:1.5}
.clean-list{margin:0;padding-left:1.2em;color:var(--ink-2)}
.clean-list li{margin:4px 0}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;padding:16px 0;border-top:1px solid var(--line)}
.timeline li:first-child{border-top:0;padding-top:4px}
.timeline .when{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);padding-top:4px;font-weight:500;letter-spacing:.02em}
.timeline strong{display:block;line-height:1.6;font-weight:600}
.timeline p{margin:4px 0 0;font-size:.9rem;color:var(--muted);line-height:1.65}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,64px);align-items:start}
.contact-grid h2{font-family:var(--font-display);font-size:1.7rem;font-weight:500;margin:0 0 14px}
.contact-grid h3{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-weight:500}
.contact-address{margin:28px 0;padding-top:22px;border-top:1px solid var(--line)}
.contact-note{margin-top:28px;padding:24px;border:1px solid var(--line);background:var(--surface)}
.contact-note p{color:var(--ink-2);margin:0 0 8px}
.contact-note p:last-child{margin:0}
.email-card{background:var(--surface);border:1px solid var(--line);padding:28px;margin-bottom:36px}
.email-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:6px 0 10px}
.email-note{font-size:.84rem;color:var(--muted);margin:0 0 16px;line-height:1.7}
.email{font-family:var(--font-mono);font-size:1.12rem;color:var(--ink);word-break:break-all;-webkit-user-select:all;user-select:all}
.copy-btn{border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;min-height:34px;padding:0 14px;border-radius:999px;cursor:pointer;transition:border-color .2s,color .2s}
.copy-btn:hover{border-color:var(--ink);color:var(--ink)}
.copy-btn.done{border-color:var(--accent);color:var(--accent)}
.email-card p{color:var(--ink-2);margin:0 0 18px;font-size:.95rem}
.email-card p:last-child{margin-bottom:0}
.link-list{display:grid;gap:10px;margin-top:6px}
.link-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--line);background:var(--surface);transition:border-color .2s}
.link-list a:hover{border-color:var(--ink)}
.link-list strong{font-weight:600;font-size:.95rem}
.link-list span{font-size:.8rem;color:var(--muted);font-family:var(--font-mono)}
.link-list a.primary{background:var(--band-bg);color:var(--band-heading);border-color:var(--band-bg)}
.link-list a.primary span{color:var(--band-fg)}

/* news */
.news-split{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
.news-split .lead{font-size:1rem}
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.news-item{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.news-date{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);padding-top:5px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.news-body{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.news-cat{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;white-space:nowrap}
.news-title{font-weight:600;line-height:1.65;font-size:1rem}
.news-title a{transition:color .2s}
.news-title a:hover{color:var(--accent)}
.news-text{margin:0;font-size:.92rem;color:var(--ink-2);line-height:1.75}
.news-empty{color:var(--muted);margin:0}
.news-year-group+.news-year-group{margin-top:40px}
.news-year{font-family:var(--font-display);font-size:1.7rem;font-weight:500;margin:0 0 12px;font-variant-numeric:tabular-nums}
.news-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 32px}
.chip{border:1px solid var(--line-strong);background:transparent;color:var(--ink-2);font-family:var(--font-body);font-size:.84rem;font-weight:500;min-height:36px;padding:0 14px;border-radius:999px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* footer */
.site-footer{background:var(--band-bg);color:var(--band-fg);border-top:1px solid var(--band-line);padding-block:44px 40px;margin-top:auto}
.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;font-size:.86rem;line-height:1.7}
.footer-grid strong{color:var(--band-heading);font-family:var(--font-display);font-size:1.15rem;font-weight:500}
.footer-grid .mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.footer-grid .copy{text-align:right;font-family:var(--font-mono);font-size:.76rem;align-self:end}
.footer-grid .updated{display:block;margin-top:6px;opacity:.7;letter-spacing:.02em}

/* responsive */
@media (max-width:1000px){
  .research-layout{grid-template-columns:minmax(0,1fr)}
  .toc-wrap{position:static}
  .toc{flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:6px;margin:0 0 8px;-webkit-overflow-scrolling:touch}
  .toc-title{display:none}
  .toc a{border-left:0;border:1px solid var(--line-strong);border-radius:999px;white-space:nowrap;padding:6px 14px;font-size:.8rem}
  .toc a.active{border-color:var(--accent);color:var(--accent)}
  .profile-grid{grid-template-columns:minmax(0,1fr)}
  .profile-card{position:static;display:grid;grid-template-columns:160px minmax(0,1fr);gap:0 24px;align-items:center}
  .profile-photo{margin:0}
  .profile-card h2{grid-column:2}
  .profile-card p{grid-column:2}
}
@media (max-width:900px){
  .site-nav{position:absolute;top:calc(100% + 1px);left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:10px var(--gutter) 16px;box-shadow:0 24px 40px -24px rgba(21,27,38,.35)}
  .site-nav.open{display:flex}
  .site-nav a{width:100%;border-radius:0;min-height:46px;border-bottom:1px solid var(--line);padding:0 4px}
  .site-nav a:hover{background:transparent}
  .site-nav .lang-link{margin:12px 0 0;justify-content:center;border-radius:999px;border:1px solid var(--line-strong)}
  .nav-toggle{display:inline-flex;align-items:center}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .plate{aspect-ratio:4/4.5;max-width:520px}
  .section-head{grid-template-columns:minmax(0,1fr)}
  .flow{grid-template-columns:minmax(0,1fr)}
  .flow-step{border-right:0;border-bottom:1px solid var(--line);padding:26px 0}
  .flow-step+.flow-step{padding-left:0}
  .flow-step:last-child{border-bottom:0}
  .spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split,.news-split{grid-template-columns:minmax(0,1fr)}
  .band{grid-template-columns:minmax(0,1fr)}
  .fig-grid{grid-template-columns:minmax(0,1fr)}
  .direction-grid{grid-template-columns:minmax(0,1fr)}
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .person.leader{grid-template-columns:minmax(0,1fr)}
  .person.leader .photo{aspect-ratio:4/3;min-height:0}
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:minmax(0,1fr)}
  .footer-grid .copy{text-align:left}
}
@media (max-width:600px){
  body{font-size:15.5px}
  .brand-name{font-size:1.2rem}
  .hero h1{font-size:2.3rem}
  .plate{aspect-ratio:4/4.4;border-radius:10px}
  .spec-grid,.team-grid,.metrics{grid-template-columns:minmax(0,1fr)}
  .pub{grid-template-columns:minmax(0,1fr);gap:6px}
  .timeline li{grid-template-columns:minmax(0,1fr);gap:4px}
  .news-item{grid-template-columns:minmax(0,1fr);gap:6px}
  .fig-mat{padding:12px}
  .fig-legend{padding:18px 18px 22px}
  .direction-card{padding:22px}
  .band{padding:26px 22px}
  .band .button{width:100%}
  .profile-card{grid-template-columns:minmax(0,1fr)}
  .profile-card h2,.profile-card p{grid-column:auto}
  .profile-photo{margin:0 0 18px}
  .hero-meta{flex-direction:column;gap:4px}
  .hero-meta span:not(:last-child)::after{content:none}
  .fig-mat{min-height:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .plate img{animation:none}
  *{transition:none!important}
}

