/* Faculty — Tesla-style light theme to match the home page */
.f-hero{text-align:center;padding:calc(var(--nav-h) + 11vh) 24px 40px}
.f-hero h1{font-size:clamp(34px,5vw,56px);font-weight:500;letter-spacing:-.01em;line-height:1.15}
.f-hero p{max-width:640px;margin:14px auto 0;color:var(--gray);font-size:clamp(14px,1.4vw,17px)}
.f-seg{display:inline-flex;margin-top:30px;padding:4px;border-radius:8px;background:var(--light)}
.f-seg button{padding:9px 22px;border-radius:6px;font-size:14px;font-weight:500;color:var(--gray);transition:.2s}
.f-seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.f-wrap{max-width:1280px;margin:0 auto;padding:0 40px 40px}
.f-sec{padding-top:64px}
.f-sec h2{font-size:clamp(24px,2.6vw,34px);font-weight:500;letter-spacing:-.01em;margin-bottom:26px;display:flex;align-items:center;gap:14px}
.f-sec h2::before{content:"";width:4px;height:28px;border-radius:2px;background:var(--blue)}
/* cards */
.f-grid{display:grid;gap:20px}
.f-grid.lg{grid-template-columns:repeat(2,1fr)}
.f-grid.md{grid-template-columns:repeat(4,1fr)}
.f-grid.md.n1{grid-template-columns:repeat(4,1fr)}
.f-card{background:var(--light);border-radius:12px;overflow:hidden;transition:transform .3s,box-shadow .3s;opacity:0;transform:translateY(20px)}
.f-card.in{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.f-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.12)}
.f-ph{position:relative;aspect-ratio:4/4.6;overflow:hidden;background:#e6e8ec}
.f-grid.lg .f-ph{aspect-ratio:4/3.4}
.f-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.f-card:hover .f-ph img{transform:scale(1.04)}
.f-txt{padding:22px 24px 26px}
.f-pos{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--blue);text-transform:uppercase;margin-bottom:6px}
.f-txt h3{font-size:19px;font-weight:500;line-height:1.35}
.f-grid.lg .f-txt h3{font-size:clamp(21px,2vw,26px)}
.f-txt p{margin-top:8px;color:var(--gray);font-size:14px;line-height:1.5}
/* directory */
.f-dir{border-top:1px solid #e4e4e4}
.f-row{display:grid;grid-template-columns:84px 1.2fr 1fr;gap:24px;align-items:center;padding:18px 12px;border-bottom:1px solid #e4e4e4;transition:background .2s;opacity:0;transform:translateY(14px)}
.f-row.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease,background .2s}
.f-row:hover{background:var(--light)}
.f-row img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 6%;background:#e6e8ec}
.f-row h3{font-size:18px;font-weight:500}
.f-row .f-pos{margin:3px 0 0}
.f-row p{color:var(--gray);font-size:14px}
body.solid .nav{background:#fff}
@media(max-width:1000px){.f-grid.md,.f-grid.md.n1{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.f-wrap{padding:0 16px 24px}.f-grid.lg{grid-template-columns:1fr}.f-txt{padding:16px 16px 20px}.f-txt h3{font-size:16px}.f-txt p{font-size:12.5px}
 .f-row{grid-template-columns:64px 1fr;gap:14px}.f-row img{width:56px;height:56px}.f-row p{grid-column:2;margin-top:-6px}}
@media(max-width:420px){.f-grid.md,.f-grid.md.n1{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.f-card,.f-row{opacity:1!important;transform:none!important}}

/* CV drawer */
.f-card.has-cv,.f-row.has-cv{cursor:pointer}
.f-cvb{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;color:var(--blue)}
.f-cvb b{font-weight:500;transition:transform .25s}
.has-cv:hover .f-cvb b{transform:translateX(5px)}
.f-row .f-cvb{margin:0 0 0 8px}
.cv-lock{overflow:hidden}
.cv-d{position:fixed;inset:0;z-index:300;visibility:hidden}
.cv-d.on{visibility:visible}
.cv-bd{position:absolute;inset:0;background:rgba(10,14,22,.55);backdrop-filter:blur(4px);opacity:0;transition:opacity .35s}
.cv-d.on .cv-bd{opacity:1}
.cv-p{position:absolute;top:0;right:0;bottom:0;width:min(680px,100vw);background:#fff;overflow-y:auto;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);box-shadow:-20px 0 60px rgba(0,0,0,.25)}
.cv-d.on .cv-p{transform:none}
.cv-x{position:absolute;top:16px;right:16px;z-index:5;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);font-size:26px;line-height:1;transition:transform .25s}
.cv-x:hover{transform:rotate(90deg)}
.cv-top{position:relative;min-height:320px;display:flex;align-items:flex-end;color:#fff;background:#0b0e14;overflow:hidden}
.cv-top img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;opacity:.8}
.cv-top::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,11,18,.95),rgba(8,11,18,.25) 70%,rgba(8,11,18,.1))}
.cv-tt{position:relative;z-index:2;padding:0 32px 30px}
.cv-k{font-size:12px;letter-spacing:.1em;font-weight:600;color:#9db7ff;text-transform:uppercase}
.cv-tt h2{font-size:clamp(26px,3.4vw,36px);font-weight:500;line-height:1.2;margin:8px 0 10px}
.cv-tt p{font-size:15px;opacity:.88;max-width:480px}
.cv-body{padding:28px 32px 56px}
.cv-hl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.cv-hl div{background:var(--light);border-radius:12px;padding:18px 16px}
.cv-hl b{display:block;font-size:clamp(22px,2.6vw,30px);font-weight:500;color:var(--blue);line-height:1.1;letter-spacing:-.01em}
.cv-hl span{display:block;margin-top:8px;font-size:12.5px;line-height:1.45;color:var(--gray)}
.cv-body h3{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:500;margin:34px 0 16px}
.cv-body h3::before{content:"";width:4px;height:20px;border-radius:2px;background:var(--blue)}
.cv-tl{list-style:none;position:relative;padding-left:0}
.cv-tl li{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:12px 0;border-top:1px solid #ececec;opacity:0;transform:translateY(10px);animation:cvIn .5s ease forwards}
.cv-tl li:first-child{border-top:0}
.cv-tl i{font-style:normal;font-size:13px;font-weight:600;color:var(--blue);padding-top:2px}
.cv-tl strong{display:block;font-size:15px;font-weight:500;line-height:1.45}
.cv-tl span{display:block;margin-top:3px;font-size:13.5px;color:var(--gray);line-height:1.5}
.cv-wk{list-style:none}
.cv-wk li{position:relative;padding:11px 0 11px 22px;border-top:1px solid #ececec;font-size:14px;line-height:1.6;color:#333;opacity:0;animation:cvIn .5s ease forwards}
.cv-wk li:first-child{border-top:0}
.cv-wk li::before{content:"";position:absolute;left:2px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.cv-tl li:nth-child(2),.cv-wk li:nth-child(2){animation-delay:.06s}.cv-tl li:nth-child(3),.cv-wk li:nth-child(3){animation-delay:.12s}.cv-tl li:nth-child(n+4),.cv-wk li:nth-child(n+4){animation-delay:.18s}
@keyframes cvIn{to{opacity:1;transform:none}}
@media(max-width:600px){.cv-hl{grid-template-columns:1fr}.cv-tl li{grid-template-columns:1fr;gap:2px}.cv-body{padding:22px 18px 48px}.cv-tt{padding:0 18px 24px}.cv-top{min-height:260px}}

/* E-mail */
.f-mail{display:inline-block;margin-top:10px;font-size:13px;font-weight:500;color:var(--blue);word-break:break-all;text-decoration:none;position:relative;z-index:2}
.f-mail:hover{text-decoration:underline}
.f-row .f-mail{display:block;margin-top:4px;font-size:13px}
