/* ===== LEME inner page styles ===== */

/* compact page hero */
.page-hero{ background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.page-hero::before{
  content:""; position:absolute; right:-8%; top:50%; transform:translateY(-50%);
  width:min(540px,50vw); aspect-ratio:1; border-radius:50%;
  background:
    radial-gradient(circle, transparent 30%, rgba(180,98,46,.0) 31%),
    repeating-radial-gradient(circle, transparent 0 18px, rgba(255,255,255,.05) 18px 19px);
  -webkit-mask:radial-gradient(circle, #000 60%, transparent 72%);
          mask:radial-gradient(circle, #000 60%, transparent 72%);
  pointer-events:none;
}
.page-hero-inner{ position:relative; z-index:2; padding-block:clamp(56px,9vw,108px) clamp(40px,6vw,64px); }
.breadcrumb{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#8FA3BC; margin-bottom:22px; display:flex; gap:8px; align-items:center; }
.breadcrumb a{ color:#8FA3BC; } .breadcrumb a:hover{ color:#fff; }
.page-hero h1{ color:#fff; max-width:20ch; margin-bottom:22px; }
.page-hero .page-lede{ color:#C9D4E2; max-width:60ch; font-size:clamp(17px,1.5vw,20px); line-height:1.55; }
.page-hero .eyebrow{ color:var(--copper-300); margin-bottom:20px; }
.page-hero .eyebrow::before{ background:var(--copper-300); }

/* section heading block */
.shead{ max-width:64ch; margin-bottom:clamp(32px,4vw,52px); }
.shead h2{ margin:16px 0 14px; }
.shead p{ color:var(--ink-70); font-size:17px; }
.shead.center{ margin-inline:auto; text-align:center; }
.shead.center .eyebrow{ justify-content:center; }

/* ---------- TEAM ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-grid.collab{ grid-template-columns:repeat(4,1fr); gap:20px; }
.member{ background:var(--white); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:all .3s var(--ease); }
.member:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(12,26,46,.35); border-color:var(--line-strong); }
.member .ph{ aspect-ratio:1/1; border:0; border-radius:0; border-bottom:1px solid var(--line); }
/* real team photos */
.member img.member-photo{
  display:block; width:100%; aspect-ratio:1/1;
  object-fit:cover; object-position:top center;
  border-bottom:1px solid var(--line);
}
.member.sm img.member-photo{ aspect-ratio:4/5; }
.director img.member-photo{
  display:block; width:100%; aspect-ratio:1/1.1;
  object-fit:cover; object-position:top center;
  border-radius:4px;
}
.member-body{ padding:20px 20px 22px; }
.member-role{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--copper-600); margin-bottom:7px; display:block; }
.member-body h3{ font-family:var(--serif); font-weight:500; font-size:21px; color:var(--navy); margin-bottom:8px; }
.member-body p{ font-size:14px; color:var(--ink-70); line-height:1.5; }
.member-links{ margin-top:14px; display:flex; gap:10px; }
.member-links a{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--navy-600); border:1px solid var(--line); border-radius:2px; padding:4px 9px; transition:all .2s; }
.member-links a:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.member.sm .ph{ aspect-ratio:4/5; }
.member.sm .member-body{ padding:16px; }
.member.sm h3{ font-size:18px; }

.subhead-row{ display:flex; align-items:baseline; gap:16px; margin:clamp(48px,6vw,72px) 0 26px; }
.subhead-row h2{ font-size:clamp(22px,2.4vw,30px); }
.subhead-row .count{ font-family:var(--mono); font-size:13px; color:var(--ink-30); }
.subhead-row .rule{ flex:1; height:1px; background:var(--line); }

/* director feature */
.director{ display:grid; grid-template-columns:300px 1fr; gap:clamp(28px,4vw,56px); align-items:center; background:var(--paper-2); border:1px solid var(--line); border-radius:6px; padding:clamp(24px,3vw,40px); }
.director .ph{ aspect-ratio:1/1.1; border-radius:4px; }

.director h2{ color:var(--navy); margin:10px 0 14px; }
.director .lede{ margin-bottom:18px; }

/* ---------- PUBLICATIONS ---------- */
.pub-toolbar{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:32px; }
.pub-filter{ font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:8px 14px; border:1px solid var(--line); background:#fff; border-radius:100px; cursor:pointer; color:var(--ink-70); transition:all .2s; }
.pub-filter:hover{ border-color:var(--navy); color:var(--navy); }
.pub-filter.on{ background:var(--navy); color:#fff; border-color:var(--navy); }
.pub-list{ border-top:1px solid var(--line); }
.pub{ display:grid; grid-template-columns:64px 1fr auto; gap:24px; padding:26px 4px; border-bottom:1px solid var(--line); align-items:start; transition:background .2s; }
.pub:hover{ background:var(--paper-2); }
.pub-year{ font-family:var(--serif); font-size:22px; color:var(--copper-600); line-height:1.2; }
.pub-main h3{ font-family:var(--sans); font-weight:600; font-size:18px; color:var(--navy); line-height:1.35; margin-bottom:8px; }
.pub-authors{ font-size:14px; color:var(--ink-70); margin-bottom:8px; }
.pub-authors strong{ color:var(--ink); }
.pub-venue{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ink-50); text-transform:uppercase; }
.pub-tags{ display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.pub-doi{ font-family:var(--mono); font-size:12px; color:var(--navy-600); white-space:nowrap; }
.pub-doi:hover{ text-decoration:underline; }

/* ---------- RESEARCH ---------- */
.lines-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.line-card{ background:var(--white); border:1px solid var(--line); border-radius:6px; padding:clamp(26px,3vw,38px); position:relative; overflow:hidden; transition:all .3s var(--ease); }
.line-card:hover{ border-color:var(--line-strong); box-shadow:0 18px 44px -26px rgba(12,26,46,.4); }
.line-num{ font-family:var(--mono); font-size:13px; color:var(--copper-600); letter-spacing:.1em; }
.line-card h3{ font-family:var(--serif); font-weight:500; font-size:clamp(22px,2.2vw,27px); color:var(--navy); margin:14px 0 14px; max-width:24ch; }
.line-card p{ color:var(--ink-70); font-size:15.5px; margin-bottom:18px; }
.line-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.line-card .line-rotor{ position:absolute; right:-40px; bottom:-40px; width:160px; opacity:.06; }

.approach{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.approach > div{ background:var(--paper); padding:clamp(24px,3vw,36px); }
.approach .mono-label{ color:var(--copper-600); margin-bottom:14px; }
.approach h3{ font-family:var(--serif); font-weight:500; font-size:22px; color:var(--navy); margin-bottom:10px; }
.approach p{ color:var(--ink-70); font-size:15px; }

/* ---------- PROJECTS ---------- */
.proj-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.proj{ background:var(--white); border:1px solid var(--line); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; transition:all .3s var(--ease); }
.proj:hover{ transform:translateY(-4px); box-shadow:0 22px 48px -26px rgba(12,26,46,.4); border-color:var(--line-strong); }
.proj .ph{ aspect-ratio:16/10; border:0; border-radius:0; border-bottom:1px solid var(--line); }
.proj-img{ display:block; width:100%; aspect-ratio:16/10; object-fit:cover; object-position:center; border-bottom:1px solid var(--line); }
.proj-video{ position:relative; aspect-ratio:16/10; background:#000; border-bottom:1px solid var(--line); overflow:hidden; }
.proj-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.proj-body{ padding:24px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1; }
.proj-meta{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.proj-body h3{ font-family:var(--serif); font-weight:500; font-size:24px; color:var(--navy); line-height:1.2; }
.proj-body p{ color:var(--ink-70); font-size:15px; flex:1; }
.proj-foot{ display:flex; justify-content:space-between; align-items:center; padding-top:14px; border-top:1px solid var(--line); font-family:var(--mono); font-size:12px; color:var(--ink-50); letter-spacing:.04em; }
.proj-dir{ display:flex; align-items:baseline; gap:8px; font-size:14px; color:var(--ink-70); }
.proj-dir .dir-label{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-50); white-space:nowrap; }
.proj-dir .dir-name{ font-weight:500; color:var(--navy); }

/* ---------- SERVICES ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc{ background:var(--white); border:1px solid var(--line); border-radius:6px; padding:clamp(26px,3vw,34px); display:flex; flex-direction:column; gap:14px; transition:all .3s var(--ease); }
.svc:hover{ border-color:var(--line-strong); box-shadow:0 18px 44px -26px rgba(12,26,46,.4); transform:translateY(-3px); }
.svc-ico{ width:48px; height:48px; border:1px solid var(--copper-300); border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--copper-tint); }
.svc-ico svg{ width:24px; height:24px; }
.svc h3{ font-family:var(--serif); font-weight:500; font-size:22px; color:var(--navy); }
.svc p{ color:var(--ink-70); font-size:15px; flex:1; }
.svc ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.svc li{ font-size:14px; color:var(--ink-70); display:flex; gap:10px; align-items:flex-start; }
.svc li::before{ content:""; width:6px; height:6px; margin-top:7px; background:var(--copper); border-radius:50%; flex-shrink:0; }

.process{ counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.process > div{ background:var(--paper); padding:clamp(22px,2.6vw,32px); position:relative; }
.process > div::before{ counter-increment:step; content:"0" counter(step); font-family:var(--mono); font-size:13px; color:var(--copper-600); letter-spacing:.1em; }
.process h3{ font-family:var(--sans); font-weight:600; font-size:18px; color:var(--navy); margin:16px 0 8px; }
.process p{ color:var(--ink-70); font-size:14px; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); }
.contact-info h2{ color:var(--navy); margin-bottom:24px; }
.info-block{ padding:20px 0; border-top:1px solid var(--line); }
.info-block:last-child{ border-bottom:1px solid var(--line); }
.info-block .mono-label{ color:var(--copper-600); margin-bottom:8px; display:block; }
.info-block p, .info-block a{ font-size:16px; color:var(--ink); line-height:1.5; }
.info-block a{ color:var(--navy-600); }
.info-block a:hover{ text-decoration:underline; }
.form{ background:var(--white); border:1px solid var(--line); border-radius:6px; padding:clamp(26px,3vw,38px); }
.field{ margin-bottom:18px; }
.field label{ display:block; font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-70); margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:12px 14px; border:1px solid var(--line-strong); border-radius:3px; background:var(--paper);
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(14,42,78,.1); }
.field textarea{ resize:vertical; min-height:120px; }
.form .btn{ width:100%; justify-content:center; margin-top:6px; }
.form-note{ font-size:13px; color:var(--ink-50); margin-top:14px; text-align:center; }
.map-ph{ aspect-ratio:21/9; margin-top:8px; }

/* alt bg helper */
.bg-alt{ background:var(--paper-2); }

/* responsive */
@media (max-width:980px){
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .team-grid.collab{ grid-template-columns:repeat(3,1fr); }
  .lines-grid{ grid-template-columns:1fr; }
  .approach{ grid-template-columns:1fr; }
  .proj-grid{ grid-template-columns:1fr; }
  .svc-grid{ grid-template-columns:1fr; }
  .process{ grid-template-columns:1fr 1fr; }
  .director{ grid-template-columns:1fr; text-align:left; }
  .director .ph{ max-width:260px; }
  .contact-grid{ grid-template-columns:1fr; }
  .pub{ grid-template-columns:48px 1fr; }
  .pub-tags{ grid-column:2; flex-direction:row; align-items:center; justify-content:flex-start; }
}
@media (max-width:600px){
  .team-grid, .team-grid.collab{ grid-template-columns:1fr 1fr; gap:14px; }
  .process{ grid-template-columns:1fr; }
  .member-body{ padding:14px; }
  .member-body h3{ font-size:18px; }
}

/* ---- graduated students ---- */
.grad-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); margin-top:8px; }
.grad-group .eyebrow{ margin-bottom:20px; }
.grad-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.grad-list li{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:16px 0; border-bottom:1px solid var(--line-soft); }
.grad-name{ font-family:var(--serif); font-size:19px; font-weight:500; color:var(--navy); }
.grad-list .mono-label{ flex-shrink:0; }
@media (max-width:600px){ .grad-grid{ grid-template-columns:1fr; } }
