body.protected,body.protected *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body.protected img,body.protected svg,body.protected video{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;pointer-events:none}body.protected [role=button],body.protected [tabindex],body.protected a,body.protected button,body.protected input,body.protected select,body.protected textarea{pointer-events:auto}body.protected input,body.protected select,body.protected textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}body.protected ::selection{background:0 0;color:inherit}body.protected ::-moz-selection{background:0 0;color:inherit}:root{--bg-0:#FAF6EE;--bg-1:#F1ECDF;--ink:#1A1530;--ink-2:#3B3556;--dim:#6B6680;--aqua:#2BA8C4;--violet:#6D5BFF;--rose:#E85C8A;--amber:#C8923D;--line:rgba(26,21,48,0.10);--line-soft:rgba(26,21,48,0.06);--paper:#FFFFFF}*{box-sizing:border-box}body,html{margin:0;background:var(--bg-0);color:var(--ink);font-family:"Familjen Grotesk",ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}body{background:radial-gradient(70% 50%at 100% 0%,rgba(232,92,138,.1),transparent 60%),radial-gradient(60% 50%at 0% 30%,rgba(43,168,196,.1),transparent 60%),radial-gradient(50% 40%at 50% 100%,rgba(200,146,61,.08),transparent 60%),linear-gradient(180deg,var(--bg-0) 0%,var(--bg-1) 100%);background-attachment:fixed;min-height:100vh}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(26,21,48,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(26,21,48,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}a{color:inherit;text-decoration:none}.container{max-width:1320px;margin:0 auto;padding:0 32px;position:relative;z-index:1}.display{font-family:"Familjen Grotesk",sans-serif;font-weight:500;letter-spacing:-.04em;line-height:.92}.serif{font-family:"Instrument Serif",serif;font-weight:400;font-style:italic}.mono{font-family:"JetBrains Mono",monospace;letter-spacing:.18em;text-transform:uppercase;font-size:11px}.num{font-family:"JetBrains Mono";font-feature-settings:"tnum"1}.glass,.pill{border:1px solid var(--line)}.glass{background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.65));backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 1px 0 0 rgba(255,255,255,.9) inset,0 24px 48px -28px rgba(26,21,48,.18);border-radius:18px}.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.7);font-size:11.5px;letter-spacing:.04em;color:var(--ink-2)}.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--aqua);box-shadow:0 0 12px var(--aqua)}.nav,.nav .left,.nav .right{display:flex;align-items:center}.nav{justify-content:space-between;padding:18px 0;position:sticky;top:0;z-index:30;backdrop-filter:blur(18px);background:rgba(250,246,238,.75);border-bottom:1px solid var(--line)}.nav .left{gap:16px}.nav .left .logo{width:34px;height:34px;display:grid;place-items:center;color:var(--ink)}.nav .left .logo img,.nav .left .logo svg{width:100%;height:100%;display:block}.nav .left b{font-weight:600;font-size:16px;letter-spacing:-.01em}.nav ul{display:flex;gap:6px;margin:0;padding:0;list-style:none}.nav ul a{padding:8px 14px;color:var(--dim);transition:all .2s}.lang-switch a:hover,.nav ul a:hover{color:var(--ink);background:rgba(26,21,48,.04)}.nav .right{gap:10px}.nav .cta,.nav ul a{border-radius:99px;font-size:13px}.nav .cta{padding:10px 18px;background:linear-gradient(135deg,var(--aqua),var(--violet));color:#fff;font-weight:600;box-shadow:0 8px 22px rgba(109,91,255,.3)}.nav-menu-toggle{display:none;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.7);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;flex-shrink:0}.nav-menu-toggle span{display:block;width:18px;height:2px;background:var(--ink);border-radius:1px;transition:transform .2s,opacity .2s}.nav.nav-open .nav-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav.nav-open .nav-menu-toggle span:nth-child(2){opacity:0}.nav.nav-open .nav-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(26,21,48,.35);border:0;padding:0;cursor:pointer;z-index:28}.nav.nav-open~.nav-backdrop,header>.nav.nav-open~.nav-backdrop{display:block}body.blog-lightbox-lock,body.nav-locked{overflow:hidden}.lang-switch{display:flex;gap:4px;align-items:center}.lang-switch a{padding:6px 10px;border-radius:99px;font-size:12px;color:var(--dim);font-family:"JetBrains Mono";text-transform:uppercase;letter-spacing:.08em;transition:all .2s}.lang-switch a.active{background:rgba(26,21,48,.06)}.hero{padding-block:60px 56px;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center}.cta-row,.hero-pill-row{display:flex;flex-wrap:wrap;align-items:center}.hero-pill-row{gap:10px;margin-bottom:30px}.hero h1{font-size:clamp(54px,7vw,116px);margin:0;text-wrap:balance}.hero h1 em,.hero p.lead em,.id-strip .row .v em{font-family:"Instrument Serif";font-style:italic;font-weight:400}.hero h1 em{background:linear-gradient(135deg,var(--aqua) 0%,var(--violet) 50%,var(--rose) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.03em}.hero p.lead{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:520px;margin:30px 0}.hero p.lead b,.lang-switch a.active{color:var(--ink);font-weight:500}.hero p.lead em,.id-strip .row .v em{color:var(--violet)}.cta-row{gap:12px}.cta-row .ghost,.cta-row .primary{padding:14px 22px;border-radius:99px;font-size:14px}.cta-row .primary{background:linear-gradient(135deg,var(--aqua),var(--violet));color:#fff;font-weight:600;box-shadow:0 12px 28px rgba(109,91,255,.3)}.cta-row .ghost{border:1px solid var(--line);color:var(--ink);font-weight:500;background:rgba(255,255,255,.6)}.hero-image{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(26,21,48,.25)}.hero-image img{display:block;width:100%;height:auto}.hero-image .frame-ornament{position:absolute;inset:14px;border:1px dashed rgba(255,255,255,.6);border-radius:14px;pointer-events:none;mix-blend-mode:overlay}.hero-image .stamp{position:absolute;left:18px;bottom:18px;background:rgba(26,21,48,.85);color:#faf6ee;font-family:"JetBrains Mono";font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:6px 12px;border-radius:99px;backdrop-filter:blur(8px)}.id-strip{margin-top:36px;padding:22px 26px;display:grid;grid-template-columns:repeat(6,1fr);gap:20px;align-items:start}.id-strip .row{display:flex;flex-direction:column;gap:4px;padding:0 14px;border-left:1px solid var(--line)}.id-strip .row:first-child{border-left:none;padding-left:0}.id-strip .row .k{color:var(--dim);font-family:"JetBrains Mono";font-size:10px;letter-spacing:.16em;text-transform:uppercase}.id-strip .row .v{color:var(--ink);font-size:13.5px;font-weight:500;line-height:1.35}.metrics{padding-block:30px 60px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{padding:24px 22px;text-align:left}.metric .k,.sec-head h2{font-weight:500;line-height:1;color:var(--ink)}.metric .k{font-size:46px;letter-spacing:-.03em}.metric .k em{font-family:"Instrument Serif";font-style:italic;font-weight:400;color:var(--violet)}.metric .v{margin-top:8px;font-size:11.5px;color:var(--dim);line-height:1.4;letter-spacing:.04em}.metric.academic{background:linear-gradient(180deg,rgba(109,91,255,.07),rgba(255,255,255,.55));border-color:rgba(109,91,255,.28);box-shadow:0 1px 0 0 rgba(255,255,255,.9) inset,0 24px 48px -30px rgba(109,91,255,.35)}.metric.academic .metric-source{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--violet)}.metric.academic .metric-source .dot{width:5px;height:5px;border-radius:50%;background:var(--violet);box-shadow:0 0 10px var(--violet);flex-shrink:0}.metric.academic .k em{background:linear-gradient(135deg,var(--violet),var(--aqua));display:inline-block;padding-right:.1em;-webkit-background-clip:text;background-clip:text;color:transparent}.contact-card h2 em,.hero h1 em,.sec-head h2 em{padding-right:.08em}[dir=rtl] .contact-card h2 em,[dir=rtl] .hero h1 em,[dir=rtl] .sec-head h2 em{padding-right:0;padding-left:.08em}[dir=rtl] .metric.academic .k em{padding-right:0;padding-left:.1em}.metric.academic .v{font-family:"Instrument Serif",serif;font-style:italic;font-size:15px;letter-spacing:0;color:var(--ink-2);text-transform:none;margin-top:6px}[dir=rtl] .metric.academic .metric-source{letter-spacing:0;text-transform:none;font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}[dir=rtl] .metric.academic .v{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif;font-style:normal}.sec-head{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:end;margin-bottom:36px}.sec-head .eyebrow{display:flex;align-items:center;gap:10px;color:var(--dim)}.loop-card.aqua .hd .nm,.loop-card.cyan .hd .nm,.sec-head .eyebrow .num{color:var(--aqua)}.sec-head h2{font-size:clamp(40px,5.5vw,84px);margin:0;letter-spacing:-.035em;text-wrap:balance}.metric.academic .k em,.sec-head h2 em{-webkit-background-clip:text;background-clip:text;color:transparent}.sec-head h2 em{font-family:"Instrument Serif";font-style:italic;font-weight:400;background:linear-gradient(135deg,var(--rose),var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent}.loop{padding-block:60px}.loop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.loop-card{padding:32px 28px 28px;overflow:hidden;min-height:280px;flex-direction:column}.loop-card .glow{position:absolute;width:240px;height:240px;border-radius:50%;filter:blur(60px);opacity:.3;top:-80px;right:-80px}.loop-card.aqua .glow,.loop-card.cyan .glow,.proj ul li::before{background:var(--aqua)}.loop-card.violet .glow{background:var(--violet)}.loop-card.rose .glow{background:var(--rose)}.loop-card.amber .glow{background:var(--amber)}.loop-card,.loop-card .hd{display:flex;position:relative}.loop-card .hd{justify-content:space-between;align-items:center;margin-bottom:22px}.loop-card .hd .stage{color:var(--dim)}.loop-card .hd .nm,.loop-card .hd .stage{font-family:"JetBrains Mono";font-size:11px;letter-spacing:.18em;text-transform:uppercase}.loop-card.violet .hd .nm{color:var(--violet)}.loop-card.rose .hd .nm{color:var(--rose)}.loop-card.amber .hd .nm{color:var(--amber)}.loop-card h3,.loop-card p,.proj ul li{color:var(--ink);position:relative}.loop-card p{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0 0 22px}.loop-card h3,.proj h3{font-size:32px;font-weight:500;letter-spacing:-.03em;line-height:1.05;margin:0 0 14px}.proj h3{font-size:30px;line-height:1.04;margin:0 0 4px;color:var(--ink)}.loop-card .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;position:relative}.loop-card .chips span{font-size:11px;padding:5px 10px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.7);color:var(--ink-2)}.projects{padding-block:60px}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.proj{padding:24px 24px 22px;display:flex;flex-direction:column;min-height:340px}.proj .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.proj .tag{padding:5px 11px;border-radius:99px;font-size:11px;letter-spacing:.04em;border:1px solid var(--line);background:rgba(255,255,255,.6);color:var(--ink-2)}.proj .meta span,.proj .num{font-family:"JetBrains Mono";color:var(--dim);text-transform:uppercase;font-size:10.5px;letter-spacing:.14em}.proj .num{font-size:11px;letter-spacing:.16em}.proj .sub{font-family:"Instrument Serif";font-style:italic;color:var(--violet);font-size:17px;margin-bottom:14px}.cv-sec p{font-size:13.5px}.cv-sec p,.entity-card p,.proj p,.solves-card p{line-height:1.55;color:var(--ink-2)}.proj p,.solves-card p{font-size:13.5px;margin:0 0 14px}.solves-card p{margin:0}.proj ul{margin:0 0 16px;padding:0;list-style:none}.proj ul li{font-size:13px;margin-bottom:6px;padding-left:18px}.proj ul li::before{content:"";width:5px;height:5px;border-radius:50%;position:absolute;left:0;top:9px;box-shadow:0 0 10px var(--aqua)}.proj .meta,.work-meta{display:flex;flex-wrap:wrap}.proj .meta{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);gap:14px}.proj.aqua,.proj.cyan{box-shadow:0 0 0 1px rgba(43,168,196,.25) inset,0 24px 48px -28px rgba(26,21,48,.18)}.proj.violet{box-shadow:0 0 0 1px rgba(109,91,255,.25) inset,0 24px 48px -28px rgba(26,21,48,.18)}.proj.rose{box-shadow:0 0 0 1px rgba(232,92,138,.25) inset,0 24px 48px -28px rgba(26,21,48,.18)}.proj.amber{box-shadow:0 0 0 1px rgba(200,146,61,.3) inset,0 24px 48px -28px rgba(26,21,48,.18)}.proj .proj-more{margin-top:16px;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--violet);text-decoration:none;padding:8px 16px;border:1.5px solid var(--violet);border-radius:99px;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.proj .proj-more:hover,.work-meta .ghost{background:var(--violet);color:#fff;text-decoration:none;box-shadow:0 8px 20px -10px rgba(109,91,255,.6)}.work-meta .ghost{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.02em;border:1px solid var(--violet);padding:10px 20px;border-radius:99px;box-shadow:0 10px 24px -12px rgba(109,91,255,.7);transition:transform .15s ease,box-shadow .15s ease}.work-meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.work-count{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.work-meta .ghost:hover{transform:translateY(-1px);box-shadow:0 14px 30px -12px rgba(109,91,255,.85)}.cv-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px;padding:14px 22px}.cv-strip-label{font-family:"JetBrains Mono";font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}.cv-strip-actions{display:flex;gap:10px;flex-wrap:wrap}.cv-strip-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;padding:9px 18px;border-radius:99px;border:1px solid var(--line);color:var(--ink);text-decoration:none;background:rgba(255,255,255,.55);transition:border-color .15s ease,transform .15s ease}.cv-strip-btn:hover{border-color:var(--violet);transform:translateY(-1px)}.cv-sec h2{color:var(--violet)}.cv-strip-btn span,.solves-card h2{color:var(--violet);font-size:12px}.gallery-masonry{column-count:4;column-gap:14px}@media (max-width:1100px){.gallery-masonry{column-count:3}}@media (max-width:700px){.gallery-masonry{column-count:2}}@media (max-width:480px){.gallery-masonry{column-count:1}}.gallery-item{break-inside:avoid;margin:0 0 14px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.55)}.gallery-item a{display:block;line-height:0}.gallery-item img{width:100%;height:auto;display:block;transition:transform .3s ease}.credential-thumb:hover img,.gallery-item:hover img{transform:scale(1.03)}.gallery-cap{padding:9px 12px 11px;display:flex;flex-direction:column;gap:3px;line-height:1.4}.gallery-cap span{font-size:12.5px;color:var(--ink-2)}.gallery-date{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.08em;color:var(--dim)}.proj-cover{width:calc(100% + 48px);margin:-24px -24px 16px;aspect-ratio:3/2;height:auto;object-fit:cover;border-radius:18px 18px 0 0;display:block}.proj-video{width:100%;border-radius:12px;margin:18px 0;background:#000;display:block}.proj-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:18px 0}.proj-gallery img{width:100%;height:140px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.solves{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}@media (max-width:700px){.solves{grid-template-columns:1fr}}.solves-card{border:1px solid var(--line);border-left:3px solid var(--violet);border-radius:12px;padding:14px 16px;background:rgba(255,255,255,.55)}.cv-sec h2,.solves-card h2{text-transform:uppercase}.solves-card h2{letter-spacing:.1em;margin:0 0 6px}[dir=rtl] .solves-card{border-left:1px solid var(--line);border-right:3px solid var(--violet)}.cv-toolbar,.cv-tools{display:flex;align-items:center;flex-wrap:wrap}.cv-toolbar{justify-content:space-between;gap:12px;padding-block:20px}.cv-tools{gap:14px}.cv-print{font:inherit;font-size:13px;padding:7px 16px;border-radius:99px;border:1px solid var(--line);background:var(--ink);color:#fff;cursor:pointer}.cv{max-width:820px;margin:0 auto;padding-block:10px 60px;color:var(--ink)}.cv-head{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px}.cv-head h1{font-size:34px;letter-spacing:-.02em;margin:0 0 4px;font-weight:600}.cv-role{font-size:15px;color:var(--ink-2);margin-bottom:8px}.cv-contacts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink-2)}.cv-contacts a{color:var(--violet);text-decoration:none}.cv-scholar{font-size:12.5px;color:var(--dim);margin-top:6px}.cv-sec{margin-bottom:20px}.cv-sec h2{font-size:13px;letter-spacing:.12em;border-bottom:1px solid var(--line);padding-bottom:4px;margin:0 0 10px}.cv-sec p{margin:0 0 6px}.cv-item{margin-bottom:12px}.cv-item-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.cv-item-title,.entity-card h3{font-weight:600;font-size:14px;color:var(--ink)}.entity-card h3{font-size:24px;letter-spacing:-.02em;margin:6px 0 2px;font-weight:500}.cv-item-meta{font-size:12px;color:var(--dim);white-space:nowrap}.cv-item-sub{font-size:12.5px;color:var(--dim);font-style:italic;margin-bottom:3px}.cv-item-tech{font-size:11.5px;color:var(--dim);letter-spacing:.04em}.cv-list li,.cv-skill{font-size:13px;margin-bottom:4px}.cv-skill{line-height:1.6}.cv-list,.cv-pubs{margin:0;padding-left:20px}.cv-list li,.cv-pubs li{line-height:1.5}.cv-pubs li{font-size:12.5px;margin-bottom:8px}.cv-pub-cited{color:var(--dim);font-size:11px}[dir=rtl] .cv-list,[dir=rtl] .cv-pubs{padding-left:0;padding-right:20px}@media print{.nav-backdrop,.no-print,header>.nav{display:none!important}.cv{max-width:none;padding:0}.cv-head{border-bottom:2px solid #000}.cv-sec h2{color:#000}a{color:#000!important;text-decoration:none}body{background:#fff}}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.entity-card{padding:24px 24px 22px;display:flex;flex-direction:column;min-height:200px}.entity-card .role{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}.entity-card .where{font-family:"Instrument Serif";font-style:italic;color:var(--violet);font-size:15px;margin-bottom:12px}.entity-card p{font-size:13px;margin:0}.entity-card .badge{align-self:flex-start;margin-top:14px;font-size:10px;font-family:"JetBrains Mono";letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:99px;border:1px solid var(--line);color:var(--dim)}.entity-card .badge.primary{color:var(--aqua);border-color:rgba(43,168,196,.4)}.experience{padding-block:60px}.timeline{display:flex;flex-direction:column;gap:16px;padding-left:28px}.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--aqua),var(--violet),transparent)}.timeline,.timeline-item{position:relative}.timeline-marker{position:absolute;left:-28px;top:22px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:2px solid var(--violet);box-shadow:0 0 0 4px rgba(109,91,255,.12)}.timeline-body{padding:20px 24px}.timeline-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.timeline-role{font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0;color:var(--ink)}.cap-card h3,.timeline-range{font-size:11px;text-transform:uppercase}.timeline-range{font-family:"JetBrains Mono",monospace;letter-spacing:.1em;color:var(--dim);white-space:nowrap}.timeline-company{margin-top:4px;font-size:14px;color:var(--ink-2)}.timeline-company a{color:var(--violet);font-weight:500}.timeline-company a:hover{text-decoration:underline}.timeline-loc,.timeline-type{color:var(--dim)}.timeline-desc{margin:12px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}[dir=rtl] .timeline{padding-left:0;padding-right:28px}[dir=rtl] .timeline::before{left:auto;right:7px}[dir=rtl] .timeline-marker{left:auto;right:-28px}[dir=rtl] .timeline-range{letter-spacing:0;text-transform:none;font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.recognition-grid{display:flex;flex-wrap:wrap;gap:10px}.recognition-grid .chip{padding:10px 16px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.7);font-size:13px;color:var(--ink-2)}.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cap-card{padding:22px 22px 18px}.cap-card h3{font-family:"JetBrains Mono";letter-spacing:.16em;color:var(--aqua);margin:0 0 14px}.cap-card .row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft)}.cap-card .row:first-of-type{border-top:none}.cap-card .row .name{font-size:13px;color:var(--ink)}.cap-card .row .depth{font-family:"JetBrains Mono";font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);text-align:right;white-space:nowrap}.research{padding-block:60px}.research-list{padding:6px 0;border-radius:18px;overflow:hidden}.pub{display:grid;grid-template-columns:64px minmax(120px,180px) minmax(0,1fr) 86px;gap:20px;padding:18px 28px;border-top:1px solid var(--line);align-items:start}[dir=rtl] .pub{grid-template-columns:64px minmax(140px,200px) minmax(0,1fr) 86px}.pub:first-child{border-top:none}.pub .yr{font-family:"JetBrains Mono";color:var(--aqua);font-size:14px}.brief-form label,.contact-links a span,.pub .cit small,.pub .ven{color:var(--dim);font-family:"JetBrains Mono";text-transform:uppercase}.pub .ven{font-size:11px;letter-spacing:.18em;padding-top:1px}.contact-card h2,.contact-links a b,.pub .tit{color:var(--ink);font-weight:500}.pub .tit{font-size:16.5px;line-height:1.4;letter-spacing:-.01em}.pub .auth,.pub .note{font-size:12.5px;color:var(--dim);margin-top:4px}.pub .note{color:var(--rose);font-size:13.5px}.contact-card h2 em,.pub .cit,.pub .note{font-family:"Instrument Serif";font-style:italic}.pub .cit{text-align:right;font-size:24px;color:var(--ink)}.contact-links a span,.pub .cit small{letter-spacing:.16em}.pub .cit small{display:block;font-style:normal;font-size:9.5px;margin-top:3px}.contact{padding-block:60px 90px}.contact-card{padding:60px 56px;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;position:relative;overflow:hidden}.contact-card::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 80%at 100%0,rgba(109,91,255,.18),transparent 70%),radial-gradient(50% 80%at 0 100%,rgba(43,168,196,.16),transparent 70%);pointer-events:none}.contact-card h2{font-size:clamp(40px,5.5vw,84px);margin:0;letter-spacing:-.04em;line-height:.95;position:relative;text-wrap:balance}.contact-card h2 em{font-weight:400;background:linear-gradient(135deg,var(--aqua),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}.contact-card p.intro{font-size:16px;color:var(--ink-2);max-width:520px;margin:24px 0 28px;line-height:1.55;position:relative}.contact-right{position:relative;display:flex;flex-direction:column;gap:22px}.contact-links{gap:12px;font-size:14.5px}.contact-links a{display:flex;justify-content:space-between;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.7);transition:all .2s}.contact-links a:hover{border-color:rgba(43,168,196,.5);background:rgba(43,168,196,.06)}.contact-links a span{font-size:11px}.contact-links a b{font-family:"JetBrains Mono";font-size:13.5px}.brief-form,.brief-form .field,.contact-links{display:flex;flex-direction:column}.brief-form{position:relative;gap:14px}.brief-form .field{gap:6px}.brief-form label{font-size:10px;letter-spacing:.14em}.brief-form input,.brief-form textarea{font-family:inherit;font-size:14px;color:var(--ink);padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.8);transition:border-color .2s,background .2s}.brief-form input:focus,.brief-form textarea:focus{outline:0;border-color:rgba(109,91,255,.5);background:#fff}.brief-form textarea{resize:vertical;min-height:96px}.brief-form button{margin-top:4px;padding:14px 22px;border:0;cursor:pointer;border-radius:99px;background:linear-gradient(135deg,var(--aqua),var(--violet));color:#fff;font-weight:600;font-size:14px;font-family:inherit;box-shadow:0 12px 28px rgba(109,91,255,.3)}.brief-form button:hover{filter:brightness(1.05)}.field-error{color:var(--rose);font-size:12px}.form-alert{padding:14px 18px;border-radius:12px;font-size:14px;position:relative}.form-alert.success{background:rgba(43,168,196,.1);border:1px solid rgba(43,168,196,.4);color:var(--ink-2)}.form-alert.error{background:rgba(232,92,138,.1);border:1px solid rgba(232,92,138,.4);color:var(--ink-2)}.captcha-field .cf-turnstile{margin-top:4px}.captcha-field [data-captcha-error]:not(:empty){display:block;margin-top:6px}.footer-social{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:14px}.footer-social-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.7);color:var(--ink-2);transition:all .2s}.footer-social-link:hover,.social-link:hover{color:var(--ink);border-color:rgba(43,168,196,.45)}.footer-social-link:hover{background:rgba(43,168,196,.1);transform:translateY(-1px)}.footer-social-link svg{width:16px;height:16px}.footer-social-link[data-icon=linkedin]:hover{color:#0a66c2}.footer-social-link[data-icon=github]:hover{color:#1f2328}.footer-social-link[data-icon=twitter]:hover,.footer-social-link[data-icon=x]:hover{color:#0f1419}.footer-social-link[data-icon=telegram]:hover{color:#229ed9}.footer-social-link[data-icon=instagram]:hover{color:#c1306b}.footer-social-link[data-icon=youtube]:hover{color:red}footer .foot{padding-top:14px;border-top:1px solid var(--line-soft)}.social-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px}.social-icon,.social-link{display:inline-flex;align-items:center}.social-link{gap:8px;padding:8px 14px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.75);color:var(--ink-2);font-size:13px;line-height:1;transition:all .2s}.social-link:hover{background:rgba(43,168,196,.08)}.social-icon{width:18px;height:18px;justify-content:center;color:currentColor;flex-shrink:0}.credential-thumb img,.social-icon svg{width:100%;height:100%;display:block}.social-label{font-weight:500}.social-link[data-icon=linkedin]:hover{color:#0a66c2}.social-link[data-icon=github]:hover{color:#1f2328}.social-link[data-icon=twitter]:hover,.social-link[data-icon=x]:hover{color:#0f1419}.social-link[data-icon=telegram]:hover{color:#229ed9}.social-link[data-icon=instagram]:hover{color:#c1306b}.social-link[data-icon=youtube]:hover{color:red}.credentials-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.credential-card{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:18px 20px;align-items:start}.credential-thumb{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff;aspect-ratio:4/3}.credential-thumb img{object-fit:cover;transition:transform .25s}.credential-card:not(:has(.credential-thumb)){grid-template-columns:1fr}.credential-body{display:flex;flex-direction:column;gap:6px}.credential-meta{display:flex;flex-wrap:wrap;gap:6px;font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:2px}.credential-issuer{color:var(--aqua)}.credential-title{font-size:18px;letter-spacing:-.015em;margin:0;font-weight:500;line-height:1.3;color:var(--ink)}.credential-desc{font-size:13.5px;line-height:1.55;color:var(--ink-2);margin:4px 0 6px}.credential-num{align-self:flex-start;font-family:"JetBrains Mono";font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:3px 9px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.7);margin-top:2px}.credential-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.credential-action{padding:6px 13px;border-radius:99px;border:1px solid rgba(109,91,255,.35);font-size:12px;font-weight:500;color:var(--violet);background:rgba(109,91,255,.06);transition:all .2s;font-family:"JetBrains Mono";letter-spacing:.06em}.credential-action:hover{background:var(--violet);color:#fff;border-color:var(--violet)}[dir=rtl] .credential-action,[dir=rtl] .credential-meta,[dir=rtl] .credential-num{letter-spacing:0;text-transform:none;font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}[dir=rtl] .credential-title{letter-spacing:normal}.blog-list{padding-top:40px;padding-bottom:60px;position:relative;z-index:1}.blog-title{font-size:clamp(32px,4vw,48px);margin:0 0 28px;letter-spacing:-.03em;font-weight:500;text-wrap:balance}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.blog-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:transform .2s}.blog-card:hover{transform:translateY(-3px)}.blog-cover{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:18px 18px 0 0;display:block}.blog-card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}.blog-meta{display:flex;gap:12px;color:var(--dim);margin-bottom:10px;font-family:"JetBrains Mono";font-size:11px;letter-spacing:.14em;text-transform:uppercase}.blog-card-title,article.resume h1{letter-spacing:-.02em;font-weight:500}.blog-card-title{font-size:22px;margin:0 0 10px;line-height:1.2}.blog-excerpt{font-size:14px;line-height:1.55;color:var(--ink-2);margin:0}.blog-article{padding:0 clamp(20px,4vw,56px) 48px}.blog-article,.blog-article.blog-article{max-width:var(--blog-width,clamp(680px,68vw,820px))}.blog-article-body{font-size:var(--blog-font,clamp(15.5px,0.85rem + 0.28vw,17.5px));line-height:var(--blog-lh,1.65)}.blog-article-body p{font-size:inherit;line-height:inherit}.blog-article-body h2{font-size:clamp(19px,1.05rem + .3vw,23px)}.blog-article-body h3{font-size:clamp(15px,.95rem + .2vw,18px)}@media (min-width:1000px){.blog-article-body .blog-figure,.blog-article-body pre{width:calc(100% + var(--blog-breakout,0px)*2);margin-inline:calc(var(--blog-breakout,0px)*-1)}}.blog-figure.blog-cover-figure{width:calc(100% + 112px);margin:-48px -56px 28px;position:relative;text-align:initial}.blog-cover-figure .blog-img-link{display:block;position:relative;line-height:0}.blog-article-cover{width:100%;margin:0;border-radius:16px 16px 0 0;height:auto;max-height:640px;object-fit:contain;background:#f7f7f8;display:block}.blog-figure{margin:28px 0;text-align:center}.blog-img-link{display:inline-block;position:relative;line-height:0;cursor:zoom-in;max-width:100%}.blog-article-body .blog-figure img,.booklet-hero img{max-width:100%;height:auto;border-radius:12px;display:block}.booklet-hero img{max-height:70vh;width:auto;margin-inline:auto;border-radius:14px;box-shadow:0 24px 48px -28px rgba(26,21,48,.22);background:rgba(255,255,255,.5);border:1px solid var(--line)}.blog-figcaption{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--dim);font-style:italic;letter-spacing:.01em;text-align:center;max-width:90%;margin-inline:auto}[dir=rtl] .blog-figcaption{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.blog-lightbox{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(10,8,20,.92);padding:24px;overflow:auto}.blog-lightbox.open{display:flex}.blog-lightbox-figure{margin:0;max-width:100%;text-align:center}.blog-lightbox-img{max-width:100%;max-height:88vh;width:auto;height:auto;border-radius:8px;cursor:zoom-in;box-shadow:0 20px 60px rgba(0,0,0,.5)}.blog-lightbox-img.natural{max-width:none;max-height:none;cursor:zoom-out}.blog-lightbox-cap{margin-top:12px;color:#e8e6f0;font-size:13px;line-height:1.5;font-style:italic;max-width:760px;margin-inline:auto}.blog-lightbox-close{position:fixed;top:14px;right:18px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer}.blog-lightbox-close:hover{background:rgba(255,255,255,.22)}body.protected .blog-lightbox-img{pointer-events:auto}.booklet-hero{width:100%;margin:14px auto 32px;padding:0;text-align:center;display:block}@media (max-width:700px){.booklet-hero{margin:10px auto 24px}.booklet-hero img{max-height:60vh;border-radius:10px}}.booklet-hero-reveal{display:flex;justify-content:center;margin:14px 0 18px}.booklet-hero-reveal button{padding:10px 22px;border-radius:99px;border:1.5px solid var(--violet);background:0 0;color:var(--violet);font-size:13px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s}.blog-version-link:hover,.booklet-hero-reveal button:hover{background:var(--violet);color:#fff}.blog-article-meta{display:flex;gap:16px;color:var(--dim);margin-bottom:14px;font-family:"JetBrains Mono";font-size:11px;letter-spacing:.14em;text-transform:uppercase}.blog-article-excerpt{font-family:"Instrument Serif";font-style:italic;color:var(--violet);font-size:20px;margin:0 0 24px;line-height:1.45}.blog-level-badge,article.resume a{color:var(--violet)}.blog-versions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 26px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:13px}.blog-versions-label{color:var(--dim);font-family:"JetBrains Mono";font-size:11px;letter-spacing:.1em;text-transform:uppercase}.blog-version-link{display:inline-block;padding:3px 11px;border:1px solid var(--line);border-radius:999px;color:var(--violet);text-decoration:none;transition:background .15s,border-color .15s}.blog-version-link:hover{border-color:var(--violet)}[dir=rtl] .article-byline-date,[dir=rtl] .blog-versions-label{letter-spacing:0;text-transform:none;font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.article-byline{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;margin:0 0 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(26,21,48,.02)}.article-byline-author{display:flex;gap:14px;align-items:center;flex:1 1 auto;min-width:0}.article-byline-avatar{flex-shrink:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.85);border:1px solid var(--line);overflow:hidden}.article-byline-avatar img{width:60%;height:60%;display:block}.article-byline-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.article-byline-name{font-size:15px;color:var(--ink)}.article-byline-aff{font-size:12.5px;color:var(--ink-2);line-height:1.45}.article-byline-date{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:2px}.article-copyright{margin-top:48px;padding:22px 24px;border-top:2px solid var(--line);background:rgba(26,21,48,.02);font-size:13px;color:var(--ink-2);line-height:1.6}.article-copyright-name{font-weight:600;color:var(--ink);margin-bottom:6px}.article-copyright-text{margin-bottom:10px}.article-copyright-cite{font-size:11px;color:var(--dim);padding-top:8px;border-top:1px dashed var(--line)}[dir=rtl] .article-copyright-cite{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}@media (max-width:900px){.blog-grid{grid-template-columns:1fr}.blog-article{padding:0 28px 32px}.blog-figure.blog-cover-figure{width:calc(100% + 56px);margin:-32px -28px 20px}}[dir=rtl] .blog-article-meta,[dir=rtl] .blog-meta{letter-spacing:0}[dir=rtl] .blog-article-excerpt,[dir=rtl] .blog-article-meta,[dir=rtl] .blog-meta,[dir=rtl] .blog-title{text-transform:none;font-family:"Estedad",ui-sans-serif,system-ui,sans-serif;font-style:normal}[dir=rtl] .blog-article-excerpt{letter-spacing:0}.resume-header,article.resume h2{border-bottom:1px solid var(--line)}.resume-header{justify-content:space-between;padding:24px 0;position:relative;z-index:1}.resume-brand,.resume-header,.resume-tools{display:flex;align-items:center}.resume-brand{gap:10px;font-weight:600;color:var(--ink)}.resume-brand img{width:30px;height:30px}.resume-tools{gap:16px}.resume-tools .resume-back{font-size:13px;color:var(--dim)}.resume-tools .resume-back:hover,article.resume{color:var(--ink)}article.resume{max-width:780px;margin:40px auto 0;padding:48px 56px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 48px -28px rgba(26,21,48,.18);line-height:1.55}article.resume h1{font-size:clamp(34px,5vw,52px);margin:0 0 8px}article.resume h2{font-size:20px;margin:32px 0 10px;padding-bottom:6px;font-weight:600}article.resume h3{font-size:15px;margin:18px 0 4px;font-weight:600}article.resume p{margin:0 0 12px;color:var(--ink-2)}article.resume ol,article.resume ul{padding-left:22px;margin:0 0 14px}article.resume li{margin-bottom:5px}article.resume a{text-decoration:underline}article.resume code{background:rgba(26,21,48,.06);padding:1px 5px;border-radius:4px;font-size:.92em;font-family:"JetBrains Mono",monospace}article.resume strong{color:var(--ink);font-weight:600}article.resume blockquote{border-left:3px solid var(--violet);padding-left:14px;color:var(--ink-2);font-style:italic;margin:14px 0}article.resume hr,footer{border-top:1px solid var(--line)}article.resume hr{border:0;margin:24px 0}.resume-empty,.resume-foot{text-align:center;color:var(--dim)}.resume-foot{padding:30px 0 50px;font-size:12px;font-family:"JetBrains Mono"}.resume-empty{padding:80px 0}[dir=rtl] article.resume ol,[dir=rtl] article.resume ul{padding-left:0;padding-right:22px}[dir=rtl] article.resume blockquote{border-left:none;border-right:3px solid var(--violet);padding-left:0;padding-right:14px}@media print{body{background:#fff}.resume-foot,.resume-header,body::before{display:none}article.resume{box-shadow:none;border:0;padding:0;margin:0;max-width:none}}footer{padding:40px 0 50px}.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--dim);font-family:"JetBrains Mono";letter-spacing:.16em;text-transform:uppercase}[dir=rtl] .contact-card h2,[dir=rtl] .contact-card h2 em,[dir=rtl] .display,[dir=rtl] .entity-card .where,[dir=rtl] .hero h1,[dir=rtl] .hero h1 em,[dir=rtl] .hero p.lead em,[dir=rtl] .id-strip .row .v em,[dir=rtl] .metric .k em,[dir=rtl] .proj .sub,[dir=rtl] .pub .cit,[dir=rtl] .pub .note,[dir=rtl] .sec-head h2,[dir=rtl] .sec-head h2 em,[dir=rtl] .serif,[dir=rtl] body{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif;font-style:normal}[dir=rtl] .brief-form label,[dir=rtl] .cap-card .row .depth,[dir=rtl] .cap-card h3,[dir=rtl] .contact-links a span,[dir=rtl] .entity-card .role,[dir=rtl] .foot,[dir=rtl] .id-strip .row .k,[dir=rtl] .lang-switch a,[dir=rtl] .loop-card .hd .nm,[dir=rtl] .loop-card .hd .stage,[dir=rtl] .mono,[dir=rtl] .proj .meta span,[dir=rtl] .proj .num,[dir=rtl] .pub .ven{letter-spacing:0;text-transform:none}[dir=rtl] .id-strip .row{border-left:none;border-right:1px solid var(--line)}[dir=rtl] .id-strip .row:first-child{border-right:none;padding-right:0}[dir=rtl] .metric{text-align:right}[dir=rtl] .proj ul li{padding-left:0;padding-right:18px}[dir=rtl] .proj ul li::before{left:auto;right:0}[dir=rtl] .cap-card .row .depth,[dir=rtl] .pub .cit{text-align:left}[dir=rtl] .hero-image .stamp{left:auto;right:18px}[dir=rtl] .entity-card .badge{align-self:flex-end}.latin,[dir=rtl] .blog-card-title,[dir=rtl] .blog-title,[dir=rtl] .contact-card h2,[dir=rtl] .contact-card h2 em,[dir=rtl] .display,[dir=rtl] .entity-card h3,[dir=rtl] .hero h1,[dir=rtl] .hero h1 em,[dir=rtl] .loop-card h3,[dir=rtl] .metric .k,[dir=rtl] .proj h3,[dir=rtl] .pub .tit,[dir=rtl] .sec-head h2,[dir=rtl] .sec-head h2 em,[dir=rtl] article.resume h1{letter-spacing:normal}[dir=rtl] .hero h1{font-size:clamp(36px,5.4vw,80px);line-height:1.25}[dir=rtl] .contact-card h2,[dir=rtl] .sec-head h2{line-height:1.2}[dir=rtl] .hero p.lead,[dir=rtl] article.resume{line-height:1.85}.latin,[dir=rtl] .latin{font-family:"Familjen Grotesk","Instrument Serif",serif;font-style:italic}[dir=rtl] .latin{font-family:"Familjen Grotesk",sans-serif}@media (max-width:1100px){.hero-grid{grid-template-columns:1fr;gap:32px}}@media (max-width:1000px){.metrics-grid{grid-template-columns:repeat(3,1fr)}.cap-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.container{padding:0 24px}.hero-grid{grid-template-columns:1fr;gap:32px}.id-strip{padding:18px 20px;gap:14px}.id-strip .row,[dir=rtl] .id-strip .row{border-left:none;border-right:none;padding:0}.id-strip,.metrics-grid{grid-template-columns:repeat(2,1fr)}.cap-grid,.cards-3,.credentials-grid,.loop-grid,.projects-grid,.sec-head{grid-template-columns:1fr}.sec-head{gap:12px}.pub,[dir=rtl] .pub{grid-template-columns:56px minmax(0,1fr) 64px;gap:14px;padding:16px 20px}.pub .ven{display:none}.contact-card{grid-template-columns:1fr;padding:36px 28px;gap:28px}.nav-menu-toggle{display:inline-flex}.nav ul.nav-menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:2px;padding:14px 24px 18px;margin:0;background:rgba(250,246,238,.98);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);box-shadow:0 16px 28px -8px rgba(26,21,48,.18);z-index:29;max-height:calc(100vh - 70px);overflow-y:auto}.nav.nav-open ul.nav-menu{display:flex}.nav ul.nav-menu li{display:block;width:100%}.nav ul.nav-menu a{display:block;padding:14px 16px;font-size:15px;border-radius:10px}}@media (max-width:700px){.container{padding:0 24px}.nav{padding:14px 0;gap:8px}.nav .left{gap:10px;min-width:0;flex:1 1 auto}.nav .left b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav .left .mono{display:none}.nav .right{gap:6px;flex-shrink:0}.nav .cta{padding:8px 13px;font-size:12px;box-shadow:none}.lang-switch a{padding:5px 8px;font-size:11px}.hero{padding-block:28px 36px}.hero h1{font-size:clamp(42px,11vw,72px)}.hero p.lead{font-size:16px;margin:22px 0 24px}.hero-pill-row{margin-bottom:22px}.cta-row .ghost,.cta-row .primary{padding:12px 18px;font-size:13px}.id-strip{grid-template-columns:1fr;margin-top:24px;padding:16px 18px;gap:12px}.metric{padding:18px 16px}.metric .k{font-size:36px}.metric .v{font-size:11px;margin-top:6px}.sec-head h2{font-size:clamp(32px,9vw,52px)}.sec-head{margin-bottom:24px}.loop{padding-block:40px}.loop-card{padding:24px 22px;min-height:0}.loop-card h3{font-size:26px}.loop-card p{font-size:13.5px;margin-bottom:18px}.projects{padding-block:40px}.proj{padding:22px 20px;min-height:0}.proj h3{font-size:24px}.entity-card{padding:20px;min-height:0}.experience{padding-block:40px}.timeline-body{padding:16px 18px}.timeline-role{font-size:18px}.credential-card{grid-template-columns:1fr;padding:18px;gap:12px}.credential-thumb{max-width:240px;aspect-ratio:16/11}.research{padding-block:40px}.pub,[dir=rtl] .pub{grid-template-columns:46px minmax(0,1fr);gap:12px;padding:14px 18px}.pub .cit{display:none}.pub .tit{font-size:15.5px}.contact{padding-block:30px 60px}.contact-card{padding:32px 22px;gap:22px}.contact-card h2{font-size:clamp(36px,10vw,60px)}.contact-card p.intro{font-size:15px;margin:18px 0 22px}.contact-links a{padding:11px 14px}.brief-form input,.brief-form textarea{font-size:14px;padding:11px 13px}.resume-header{flex-wrap:wrap;gap:10px;padding:16px 0}.resume-brand{font-size:14px}.resume-brand img{width:26px;height:26px}.resume-tools{gap:10px;font-size:12px;flex-wrap:wrap}article.resume{margin:24px auto 0;padding:28px 22px}.blog-list{padding-top:24px;padding-bottom:40px}.blog-title{font-size:clamp(28px,8vw,40px);margin-bottom:20px}.blog-grid{grid-template-columns:1fr}.blog-card-body{padding:18px 18px 20px}.blog-card-title{font-size:19px}.blog-article{padding:0 22px 28px}.blog-figure.blog-cover-figure{width:calc(100% + 44px);margin:-28px -22px 18px}footer{padding:28px 0 36px}.foot{gap:12px;font-size:11px}}@media (max-width:420px){.container{padding:0 18px}.nav .cta{padding:7px 11px;font-size:11px}.lang-switch{gap:2px}.lang-switch a{padding:4px 6px;font-size:10.5px;letter-spacing:.04em}.nav-menu-toggle{width:32px;height:32px}.nav-menu-toggle span{width:16px}.nav .right{gap:5px}.hero h1{font-size:clamp(38px,12vw,60px)}.pill{font-size:10.5px;padding:5px 10px}.metric .k{font-size:32px}}.blog-preview-banner{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;margin:0 auto 22px;max-width:var(--blog-width,clamp(680px,68vw,820px));padding:12px 16px;border-radius:10px;background:linear-gradient(135deg,rgba(232,89,12,.12),rgba(109,91,255,.1));border:1px solid rgba(232,89,12,.35);color:#7a2e06;font-size:14px}.blog-preview-banner strong{font-weight:600}[dir=rtl] .blog-preview-banner{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.blog-article-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0;margin:1.1em 0}.blog-article-body .katex,.blog-article-body .katex-display{direction:ltr;text-align:initial}[dir=rtl] .blog-article-body .katex-display>.katex{text-align:center}.blog-article-body .bmath:empty{display:none}.blog-article-body .bmath-unavailable{margin:0 0 18px;padding:9px 14px;border-radius:9px;background:rgba(109,91,255,.07);border:1px dashed rgba(109,91,255,.4);color:#4a3fb0;font-size:13.5px}[dir=rtl] .article-extras-title,[dir=rtl] .blog-article-body .bmath-unavailable{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.article-attachments,.article-references{max-width:var(--blog-width,clamp(680px,68vw,820px));margin:34px auto 0}.article-extras-title{font-size:clamp(17px,1rem + .25vw,20px);font-weight:600;letter-spacing:.01em;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(26,21,48,.12)}.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.attach-item{display:block;border:1px solid rgba(26,21,48,.12);border-radius:12px;overflow:hidden;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.attach-item:hover{border-color:rgba(232,89,12,.5);box-shadow:0 6px 22px rgba(26,21,48,.1);transform:translateY(-1px)}.attach-image{margin:0}.attach-image .blog-img-link{display:block}.attach-image img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in}.attach-image figcaption{padding:8px 12px;font-size:13px;line-height:1.5;color:#4a4458}.attach-pdf{display:flex;align-items:center;gap:12px;padding:14px;text-decoration:none;color:inherit}.attach-pdf-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:52px;border-radius:6px;background:#b3261e;color:#fff;font:600 12px/1"JetBrains Mono",ui-monospace,monospace;letter-spacing:.04em}.attach-pdf-meta{display:flex;flex-direction:column;min-width:0}.attach-pdf-name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-pdf-action{font-size:12.5px;color:#e8590c;margin-top:2px}[dir=rtl] .attach-image figcaption,[dir=rtl] .attach-pdf-name,[dir=rtl] .ref-list li{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.ref-list{margin:0;padding-inline-start:1.4em;display:flex;flex-direction:column;gap:8px}.ref-list li{font-size:14.5px;line-height:1.6;color:#3a3450}.ref-list a{word-break:break-word}.note-source a:hover,.ref-list a:hover{color:#e8590c}.blog-head{max-width:var(--blog-width,clamp(680px,68vw,820px));margin:8px auto 26px}.blog-head .blog-title{margin:0 0 8px}.blog-lead{color:#4a4458;font-size:clamp(15px,.9rem + .2vw,17px);line-height:1.6;margin:0}[dir=rtl] .blog-lead{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-width:1100px;margin:0 auto}.note-card{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid rgba(26,21,48,.12);border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.note-card:hover{border-color:rgba(232,89,12,.5);box-shadow:0 8px 26px rgba(26,21,48,.1);transform:translateY(-2px)}.note-card-date{font-size:12px;color:#8a8499}.note-card-title{font-size:clamp(17px,1rem + .25vw,20px);font-weight:600;line-height:1.35;margin:0}.note-card-excerpt{font-size:14px;line-height:1.55;color:#4a4458;margin:0}.note-card-more{margin-top:auto;font-size:13px;color:#e8590c;font-weight:600}[dir=rtl] .note-card-excerpt,[dir=rtl] .note-card-title,[dir=rtl] .note-source{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif}.note-eyebrow{display:inline-block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#e8590c;margin-bottom:6px}.note-source{max-width:var(--blog-width,clamp(680px,68vw,820px));margin:28px auto 0;padding-top:14px;border-top:1px solid rgba(26,21,48,.12);font-size:14px;color:#4a4458}.note-source a,.ref-list a{color:#2b2150;border-bottom:1px solid rgba(232,89,12,.45);text-decoration:none}.search-form{display:flex;gap:10px;margin:8px 0 28px;max-width:680px}.search-input{flex:1;padding:14px 18px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.7);color:var(--ink);font-size:16px;font-family:inherit}.search-input:focus{outline:0;border-color:var(--ink-2)}.search-submit{padding:14px 24px;border-radius:99px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:500;font-size:14px;cursor:pointer;font-family:inherit}.search-facets{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}.search-chip{padding:6px 13px;border-radius:99px;font-size:12.5px;border:1px solid var(--line);background:rgba(255,255,255,.6);color:var(--ink-2);text-decoration:none}.search-chip:hover{color:var(--ink);background:rgba(26,21,48,.04)}.search-chip.is-active{color:var(--ink);background:rgba(26,21,48,.06);border-color:var(--ink-2);font-weight:500}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px;max-width:760px}.search-result{padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.search-result-link{text-decoration:none;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.search-result-type{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line);border-radius:99px;padding:2px 9px;flex-shrink:0}.search-result-title{font-size:19px;font-weight:500;color:var(--ink);line-height:1.3}.search-result-link:hover .search-result-title{text-decoration:underline}.search-result-snippet{font-size:14px;line-height:1.6;color:var(--ink-2);margin:8px 0 0}.search-empty{font-size:16px;margin-top:10px}[dir=rtl] .search-result-type{letter-spacing:0}.nav-search{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:10px 0 12px;border-bottom:1px solid var(--line-soft)}.nav-search-input{width:min(300px,60vw);padding:9px 16px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.7);color:var(--ink);font-family:inherit;font-size:13.5px}.nav-search-input:focus{outline:0;border-color:var(--ink-2)}.nav-search-btn{padding:9px 18px;border-radius:99px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:500;font-size:13px;cursor:pointer;font-family:inherit;flex-shrink:0}.nav-search-btn:hover{opacity:.9}@media (max-width:700px){.nav-search{padding:8px 0 10px}.nav-search-input{width:100%;flex:1}}.blog-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.blog-cat-chip,.blog-category-link{color:var(--dim);text-decoration:none}.blog-cat-chip{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 14px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.5);transition:color .15s,border-color .15s,background .15s}.blog-cat-chip:hover{color:var(--ink);border-color:var(--violet)}.blog-cat-chip.active{color:#fff;background:var(--violet);border-color:var(--violet)}.blog-category-link{transition:color .15s}.blog-category-link:hover{color:var(--violet)}.article-related{margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.related-card{display:block;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.55);text-decoration:none;color:var(--ink);transition:transform .15s ease,border-color .15s ease}.related-card:hover{transform:translateY(-2px);border-color:var(--violet)}.related-card-title{margin:0 0 6px;font-size:15px;font-weight:600;line-height:1.35}.related-card-excerpt{margin:0;font-size:13px;line-height:1.55;color:var(--dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;font-size:12px;color:var(--dim)}.crumbs a{color:var(--dim);text-decoration:none;border-bottom:1px solid var(--line-soft);transition:color .15s ease}.crumbs a:hover{color:var(--ink)}.crumbs-sep{opacity:.45}.crumbs-here{color:var(--ink-2)}[dir=rtl] .crumbs{flex-direction:row-reverse}
/* engagement CTA (EngagementCta view component, §46) */.engage-cta{margin:40px auto 8px;padding:26px 26px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(43,168,196,.07),rgba(109,91,255,.07));max-width:820px}.engage-cta h2{margin:0 0 8px;font-size:22px;font-weight:600;color:var(--ink);letter-spacing:normal}.engage-cta p{margin:0 0 16px;font-size:15px;line-height:1.65;color:var(--ink-2)}.engage-cta .engage-actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.engage-cta a.engage-primary{display:inline-flex;align-items:center;padding:11px 18px;border-radius:99px;background:var(--ink);color:#fff;font-weight:600;font-size:14px;text-decoration:none}.engage-cta a.engage-primary:hover{background:var(--violet)}.engage-cta a.engage-secondary{font-size:14px;font-weight:600;color:var(--violet);border-bottom:1px solid rgba(109,91,255,.35);text-decoration:none}@media (max-width:700px){.engage-cta{padding:20px 18px}}

/* Persian homepage: plain section heads and Persian type instead of the Latin poster look (CLAUDE.md 48). */
[dir=rtl] .mono{font-family:"Estedad",ui-sans-serif,system-ui,sans-serif;letter-spacing:0;text-transform:none;font-size:13px}
[dir=rtl] .sec-head{display:block;margin-bottom:28px}
[dir=rtl] .sec-head h2{font-size:clamp(26px,3vw,40px);font-weight:700;line-height:1.5;letter-spacing:normal;margin:0 0 6px}
[dir=rtl] .sec-head h2 em{font-family:inherit;font-style:normal;font-weight:inherit}
[dir=rtl] .sec-head>.mono{display:block;font-size:16px;line-height:1.9}
[dir=rtl] .hero h1{font-size:clamp(30px,3.7vw,54px);font-weight:700;line-height:1.5}
[dir=rtl] .contact-card h2{font-size:clamp(28px,3.2vw,44px);font-weight:700;line-height:1.5}
[dir=rtl] .cv-strip{margin-top:24px}
@media(max-width:700px){[dir=rtl] .metrics{padding-bottom:40px}}
[dir=rtl] .hero h1{text-wrap:balance}
[dir=rtl] .proj h3,[dir=rtl] .loop-card h3,[dir=rtl] .entity-card h3{font-size:22px;font-weight:600;line-height:1.75;letter-spacing:normal}
