:root {
  --bg: #f7f7f4;
  --surface: #ffffff;
  --surface-soft: #f0f1ee;
  --text: #1c2230;
  --muted: #5d6674;
  --line: #d9dde2;
  --accent: #7b1738;
  --accent-strong: #5d0f2a;
  --link: #6f1836;
  --success: #2d6a4f;
  --shadow: 0 14px 42px rgba(24, 31, 42, 0.08);
  --max: 1120px;
  --radius: 18px;
}
html[data-theme="dark"] {
  --bg: #111418; --surface: #191d23; --surface-soft: #20262e;
  --text: #f0f2f5; --muted: #b0b8c4; --line: #303842;
  --accent: #d27a98; --accent-strong: #e39ab2; --link: #e39ab2;
  --success: #7bc7a3; --shadow: 0 16px 48px rgba(0,0,0,.24);
}
*{box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}p,.pub-meta,.contact-value{text-align:justify;text-justify:inter-word}
body[dir="rtl"]{font-family:Tahoma,"Segoe UI",Arial,sans-serif}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--accent-strong)}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}
.skip-link{position:absolute;inset-inline-start:12px;top:-60px;z-index:1000;background:var(--accent);color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.header-inner{width:min(calc(100% - 32px),var(--max));margin:0 auto;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;font-weight:760;letter-spacing:-.015em}.brand-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:.72rem;letter-spacing:.03em}
.nav-wrap{display:flex;align-items:center;gap:10px}.site-nav{display:flex;align-items:center;gap:17px}.site-nav a{color:var(--text);text-decoration:none;font-size:.92rem;font-weight:590}.site-nav a:hover{color:var(--accent)}
.icon-btn,.menu-btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);min-width:38px;height:38px;padding:0 10px;border-radius:10px;cursor:pointer;font:inherit}.menu-btn{display:none}
.lang-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none;font-size:.9rem;font-weight:650;background:var(--surface)}
main{overflow:hidden}.container{width:min(calc(100% - 32px),var(--max));margin:0 auto}
.hero{padding:78px 0 60px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 10% 20%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 32%),radial-gradient(circle at 90% 70%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 34%)}
.hero-grid{display:grid;grid-template-columns:1fr 240px;align-items:center;gap:72px}.eyebrow{margin:0 0 12px;color:var(--accent);text-transform:uppercase;letter-spacing:.11em;font-size:.8rem;font-weight:780}body[dir="rtl"] .eyebrow{text-transform:none;letter-spacing:normal}
h1{margin:0;font-size:clamp(2.5rem,6vw,4.65rem);letter-spacing:-.045em;line-height:1.02;max-width:840px}body[dir="rtl"] h1{letter-spacing:-.02em}.hero-role{margin:18px 0 0;font-size:clamp(1.08rem,2vw,1.3rem);color:var(--muted);max-width:790px}.hero-subrole{margin:9px 0 0;color:var(--muted);font-size:.98rem}
.hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:23px}.tag{display:inline-flex;padding:7px 10px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 85%,transparent);font-size:.88rem;color:var(--muted)}
.hero-actions,.profile-links{display:flex;flex-wrap:wrap;gap:10px}.hero-actions{margin-top:28px}.profile-links{margin-top:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:11px;text-decoration:none;border:1px solid var(--line);font-weight:680}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{color:#fff;background:var(--accent-strong)}.btn-secondary{background:var(--surface);color:var(--text)}
.mini-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.84rem;text-decoration:none;color:var(--muted)}.mini-link:hover{color:var(--accent)}.mini-link.verified::before{content:"✓";color:var(--success);font-weight:800}
.profile-link{gap:7px}.profile-icon{width:18px;height:18px;object-fit:contain;display:block;flex:0 0 18px}.profile-links-contact{margin-top:7px}.profile-links-contact .mini-link{font-weight:600}html[data-theme="dark"] .profile-icon:not([src$="dblp.svg"]){filter:brightness(0) invert(1);opacity:.92}
.profile-frame{width:232px;aspect-ratio:4/5;border-radius:24px;padding:8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.profile-frame img{width:100%;height:100%;object-fit:cover;object-position:center 20%;border-radius:17px}
.section{padding:68px 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:220px 1fr;gap:40px;margin-bottom:32px}.section-kicker{color:var(--accent);font-size:.82rem;font-weight:760;text-transform:uppercase;letter-spacing:.1em}body[dir="rtl"] .section-kicker{text-transform:none;letter-spacing:normal}
h2{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.025em;line-height:1.15}h3{margin:0 0 8px;font-size:1.08rem;line-height:1.4}.lead{margin:12px 0 0;color:var(--muted);max-width:840px;font-size:1.04rem}
.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 0 rgba(0,0,0,.02)}.card p:first-child{margin-top:0}.card p:last-child{margin-bottom:0}
.clean-list{margin:0;padding-inline-start:1.1rem}.clean-list li+li{margin-top:7px}.pill-list{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid var(--line);background:var(--surface-soft);padding:7px 10px;border-radius:999px;font-size:.91rem}
.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.theme-card{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.theme-card h3{font-size:1.05rem}.theme-card p{margin:7px 0 0;color:var(--muted);font-size:.94rem}.theme-number{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--surface-soft);color:var(--accent);font-weight:800;font-size:.78rem;margin-bottom:11px}
.timeline{display:grid;gap:14px}.timeline-item{display:grid;grid-template-columns:180px 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--line)}.timeline-item:first-child{border-top:0;padding-top:0}.timeline-meta{color:var(--muted);font-size:.93rem}.timeline-content p{margin:4px 0 0;color:var(--muted)}
.pub-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:-5px 0 25px}.pub-group+.pub-group{margin-top:34px}.pub-group-title{margin:0 0 14px;font-size:1.1rem;color:var(--accent)}.pub-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;counter-reset:pubs}.pub-list li{position:relative;padding:18px 20px 18px 54px;background:var(--surface);border:1px solid var(--line);border-radius:14px;counter-increment:pubs}body[dir="rtl"] .pub-list li{padding:18px 54px 18px 20px}.pub-list li::before{content:counter(pubs);position:absolute;left:18px;top:18px;width:25px;height:25px;border-radius:50%;background:var(--surface-soft);display:grid;place-items:center;color:var(--muted);font-size:.78rem;font-weight:700}body[dir="rtl"] .pub-list li::before{left:auto;right:18px}.pub-title{font-weight:700;color:var(--text)}.pub-meta{margin-top:5px;color:var(--muted);font-size:.94rem}.pub-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pub-link{font-size:.82rem;font-weight:700;text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:var(--surface-soft)}
.teaching-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.course{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.course-meta{color:var(--muted);font-size:.9rem;margin-top:4px}details{margin-top:18px}summary{cursor:pointer;color:var(--accent);font-weight:700}
.award-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.award{padding:18px;border-inline-start:3px solid var(--accent);background:var(--surface);border-radius:0 12px 12px 0}body[dir="rtl"] .award{border-inline-start:3px solid var(--accent);border-radius:12px 0 0 12px}.award p{margin:0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.contact-item+.contact-item{margin-top:15px}.contact-label{color:var(--muted);font-size:.84rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}body[dir="rtl"] .contact-label{text-transform:none;letter-spacing:normal}.contact-value{margin-top:3px;font-weight:600}.note{color:var(--muted);font-size:.9rem}
.site-footer{padding:30px 0 46px;color:var(--muted);font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr 190px;gap:36px}.profile-frame{width:190px}.site-nav{display:none;position:absolute;top:62px;left:16px;right:16px;flex-direction:column;align-items:stretch;gap:0;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.site-nav.is-open{display:flex}.site-nav a{padding:10px 11px;border-radius:8px}.site-nav a:hover{background:var(--surface-soft)}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.section-head{grid-template-columns:1fr;gap:8px}.about-grid,.contact-grid{grid-template-columns:1fr}}
@media(max-width:680px){.hero{padding:52px 0 44px}.hero-grid{grid-template-columns:1fr}.profile-frame{width:170px;order:-1}.theme-grid,.teaching-grid,.award-list{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:5px}.header-inner{width:min(calc(100% - 22px),var(--max))}.brand span:last-child{display:none}.container{width:min(calc(100% - 24px),var(--max))}.lang-link{padding:0 9px}.icon-btn{display:none}.pub-list li{padding-inline-start:48px}.pub-list li::before{left:14px}body[dir="rtl"] .pub-list li{padding-inline-start:20px;padding-inline-end:48px}body[dir="rtl"] .pub-list li::before{right:14px}}
@media print{.site-header,.hero-actions,.profile-links,.menu-btn,.icon-btn,.lang-link{display:none!important}.hero,.section{padding:24px 0}.site-footer{padding:18px 0}.card,.course,.pub-list li,.theme-card{break-inside:avoid;box-shadow:none}}

/* Teaching personalization and reusable course-page components */
.featured-course{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.65fr);gap:24px;padding:28px;margin:0 0 30px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 0 rgba(0,0,0,.02)}
.featured-course-main h3{font-size:clamp(1.35rem,2.5vw,1.8rem);margin:10px 0 8px}.featured-course-main p{margin:0;color:var(--muted)}
.course-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}.course-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:var(--accent);color:#fff;font-size:.77rem;font-weight:760;letter-spacing:.015em}.muted-badge{background:var(--surface-soft);color:var(--muted);border:1px solid var(--line)}
.course-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.featured-course-side{display:grid;align-content:start;gap:13px;padding:18px;border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line)}.featured-course-side div{display:grid;gap:2px}.featured-course-side span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.featured-course-side strong{font-size:.93rem;line-height:1.45}body[dir="rtl"] .featured-course-side span{text-transform:none;letter-spacing:normal}
.subsection-title{margin:4px 0 14px;font-size:1.08rem;color:var(--accent)}
.course-hero{padding:64px 0 48px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 8% 20%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 32%),var(--bg)}.course-hero h1{font-size:clamp(2.25rem,5.6vw,4.15rem);max-width:960px}.course-hero .hero-role{max-width:880px}.course-quick-meta{display:flex;flex-wrap:wrap;gap:9px 22px;margin-top:24px;color:var(--muted);font-size:.94rem}.course-quick-meta strong{color:var(--text)}
.course-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:34px;align-items:start}.course-layout h2{margin-top:7px}.course-info{position:sticky;top:94px}.course-info dl{margin:0}.course-info dl div{display:grid;grid-template-columns:105px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.course-info dl div:first-child{border-top:0}.course-info dt{color:var(--muted);font-size:.84rem}.course-info dd{margin:0;font-weight:620}
.topic-list{list-style:none;counter-reset:topics;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.topic-list li{position:relative;counter-increment:topics;padding:19px 19px 19px 54px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}body[dir="rtl"] .topic-list li{padding:19px 54px 19px 19px}.topic-list li::before{content:counter(topics,decimal-leading-zero);position:absolute;left:17px;top:19px;color:var(--accent);font-size:.8rem;font-weight:800}body[dir="rtl"] .topic-list li::before{left:auto;right:17px}.topic-list strong{display:block;margin-bottom:5px}.topic-list span{display:block;color:var(--muted);font-size:.92rem;text-align:justify}
.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.resource-card{padding:21px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.resource-card p{margin:6px 0 15px;color:var(--muted)}.resource-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);font-size:.79rem;font-weight:680}
.status-note{padding:20px 22px;border-inline-start:4px solid var(--accent);background:var(--surface);border-radius:0 14px 14px 0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}body[dir="rtl"] .status-note{border-inline-start:4px solid var(--accent);border-radius:14px 0 0 14px;border-left:1px solid var(--line);border-right:0}.status-note p{margin:5px 0 0;color:var(--muted)}
@media(max-width:900px){.featured-course,.course-layout{grid-template-columns:1fr}.course-info{position:static}.topic-list{grid-template-columns:1fr}.course-nav{display:none}}
@media(max-width:680px){.featured-course{padding:21px}.resource-grid{grid-template-columns:1fr}.course-quick-meta{display:grid;gap:7px}.course-hero{padding:46px 0 38px}}
