@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap";:root{--font-family-base: system-ui, avenir, helvetica, arial, sans-serif;--font-family-montserrat: "Montserrat", system-ui, avenir, helvetica, arial, sans-serif;--font-family-arabic: system-ui, "BArabics", "Amiri", "Cairo", arial, sans-serif;--line-height: 1.5;--font-weight: 400;--fs-h1: clamp(2.1rem, 5vw, 4.7rem);--fs-name-height: clamp(2.7rem, 1vw, 3.2rem);--fs-h2: clamp(1.7rem, 4vw, 2.4rem);--fs-h3: clamp(1.3rem, 2vw, 1.9rem);--fs-body: clamp(1rem, 1.2vw, 1.5rem);--fs-small: clamp(.8rem, 1vw, 1.2rem);--page-bg: #fff;--text: #111;--text-secondary: #444;--title: #0b6fb8;--blue: #0b6fb8;--border: #e6e6e6;--green-glow: #34D399;--card-bg: #fff;--card-shadow: rgb(0 0 0 / 6%);--bar-bg: #e5e7eb;--bar-fill: linear-gradient(90deg, #0ea5e9, #60a5fa);--scrollbar-track: #f1f1f1;--scrollbar-thumb: #0b6fb8;--cat-formation: #0ea5e9;--cat-stage: #f59e0b;--cat-travail: #22c55e;--cat-autre: #a78bfa;--formation-color: #2e86de;--stage-color: #f9ca24;--travail-color: #27ae60;--autre-color: #dc6bff;--radius: 8px;--navbar-height: 36px;--page-padding-x: clamp(7px, 1vw, 24px);--page-padding-y: clamp(4px, 1vw, 24px);--wrapper-padding-top: 16px;--degree-thumb: clamp(2.7rem, 5vw, 4.7rem);--thumb-h: clamp(55px, 10vw, var(--degree-thumb, 250px));--name-banner-height: clamp(1.9rem, 5vw, 2.7rem);--name-banner-color: #000;--corner-qr-size: 167px;--corner-qr-margin: clamp(2px, 2vw, 36px);--corner-qr-margin-top: var(--corner-qr-margin);--corner-qr-half: calc(var(--corner-qr-margin) / 2);--corner-qr-margin-left: var(--corner-qr-half);--corner-qr-margin-right: var(--corner-qr-half);--favicon-size: clamp(95px, 15vw, 820px);--tg-size: 80px;--tg-scale: 1;--tg-flip: scaleX(1);--tg-icon-offset: 8px;--grid-size: 42px;--grid-line: rgba(17,17,17,.07);--grid-line: color-mix(in hsl, var(--text), transparent 87%);--glow-primary: drop-shadow(0 0 16px color-mix(in hsl, var(--blue), transparent 78%));--glow-secondary: 0 0 8px color-mix(in hsl, var(--blue), transparent 90%);--glow-fallback: drop-shadow(0 0 16px rgba(11,111,184,.18));--glow-fallback-secondary: 0 0 8px rgba(11,111,184,.09);--transition-fast: .12s ease;--transition-base: .16s ease;--transition-slow: .2s ease;--transition-hover: .18s ease;--scale-up: scale(1.02);--scale-down: scale(.98);--scale-logo: scale(1.04);--scale-logo-active: scale(.98);--pad-xs: clamp(4px, 1.2vw, 8px);--pad-sm: clamp(6px, 1.5vw, 12px);--pad-md: clamp(12px, 2.2vw, 20px);--pad-lg: clamp(16px, 3vw, 32px);--pad-xxs: clamp(1px, .6vw, 4px);--sub-gap: clamp(8px, 2vw, 24px);--logo-timeline-max-w: clamp(60px, 14vw, 80px);--logo-timeline-max-h: clamp(34px, 2.5vw, 42px);--card-timeline-min-h: clamp(35px, 2.5vw, 45px);--card-timeline-max-w: clamp(350px, 52vw, 600px)}.dark{--page-bg: #121212;--text: #f3f4f6;--text-secondary: #bdbdbd;--title: #60a5fa;--blue: #60a5fa;--border: #2b2b2b;--green-glow: #34D399;--card-bg: #1e1e1f;--card-shadow: rgb(0 0 0 / 60%);--bar-bg: #2a2a2a;--bar-fill: linear-gradient(90deg, #3b82f6, #60a5fa);--scrollbar-track: #1e1e1e;--scrollbar-thumb: #3b82f6;--cat-formation: #38bdf8;--cat-stage: #fbbf24;--cat-travail: #4ade80;--cat-autre: #c4b5fd;--name-banner-color: #fff;--grid-line: rgb(255 255 255 / 7%);--grid-line: color-mix(in hsl, var(--text), transparent 87%);--glow-primary-dark: drop-shadow(0 0 16px color-mix(in hsl, var(--blue), transparent 78%));--glow-secondary-dark: 0 0 8px color-mix(in hsl, var(--blue), transparent 90%)}html,body,#app{margin:0;height:100%;width:100%;color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,:not([lang=ar],[dir=rtl]){font-family:var(--font-family-montserrat)}[lang=ar],[dir=rtl]{font-family:var(--font-family-arabic)}html{background-color:var(--page-bg)}body,#app{background:transparent}#app{position:relative;z-index:1}html:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;filter:blur(2px);background:linear-gradient(90deg,var(--grid-line) 1px,transparent 1px var(--grid-size)) 0 0 / var(--grid-size) var(--grid-size),linear-gradient(var(--grid-line) 1px,transparent 1px var(--grid-size)) 0 0 / var(--grid-size) var(--grid-size);-webkit-mask-image:linear-gradient(135deg,#000 0% 45%,#0009 55%,#0003,#0000 75%);mask-image:linear-gradient(135deg,#000 0% 45%,#0009 55%,#0003,#0000 75%)}h2,.h2,h3,.h3{margin:0;color:var(--title)}h2,.h2{font-size:var(--fs-h2)}h3,.h3{font-size:var(--fs-h3);color:var(--text)}p,li,span,div,small{font-size:var(--fs-body);color:var(--text)}small{font-size:var(--fs-small);color:var(--text-secondary)}.group-title{color:var(--title);font-size:var(--fs-h3);margin-bottom:var(--pad-md)}.page-layout{width:100%;height:100%;display:grid;gap:var(--sub-gap);overflow:hidden;position:relative;background-color:var(--page-bg);color:var(--text);padding-inline:var(--page-padding-x);padding-block:var(--page-padding-y);box-sizing:border-box}.page-layout:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;filter:blur(1px);--line: rgba(17,17,17,.06);--line: color-mix(in hsl, var(--text), transparent 94%);background:linear-gradient(90deg,var(--line) 1px,transparent 1px var(--grid-size)) 0 0 / var(--grid-size) var(--grid-size),linear-gradient(var(--line) 1px,transparent 1px var(--grid-size)) 0 0 / var(--grid-size) var(--grid-size)}.two-cols{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.two-rows{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.grid-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.pages{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}.page{height:100vh;scroll-snap-align:start;display:flex;gap:var(--sub-gap);flex-direction:column;align-items:stretch;will-change:transform;padding:calc(var(--navbar-height) + var(--name-banner-height) + var(--fs-small)) var(--page-padding-x) var(--page-padding-y)}.section{height:calc(100vh - var(--navbar-height));display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:var(--fs-h2);background:var(--page-bg);border-bottom:1px solid var(--border);scroll-snap-align:start;color:var(--text);padding-top:var(--navbar-height)}.wrapper{width:100%;height:100%;display:flex;flex-direction:column;padding:0 var(--page-padding-x);gap:var(--sub-gap);box-sizing:border-box}.sub-section{padding:var(--pad-xs);box-sizing:border-box;overflow:visible;border-radius:var(--radius);margin:0;position:relative;z-index:1;will-change:transform;transition:filter var(--transition-base),box-shadow var(--transition-base);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);background:var(--card-bg);color:var(--text);border:1px solid var(--border)}.sub-section .sub-inner{width:100%;height:100%;overflow-y:auto;box-sizing:border-box;padding:var(--pad-sm);background:transparent;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}html.has-scrolled .sub-section:hover,html.has-scrolled .sub-section:focus-within{filter:var(--glow-primary);box-shadow:var(--glow-secondary);z-index:2998}@supports not (color: color-mix(in hsl,red,blue)){html.has-scrolled .sub-section:hover,html.has-scrolled .sub-section:focus-within{filter:var(--glow-fallback);box-shadow:var(--glow-fallback-secondary)}}.sub-section:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity var(--transition-base);border-radius:inherit;z-index:2999;box-shadow:0 0 12px 4px #0b6fb80f;box-shadow:0 0 18px 6px color-mix(in hsl,var(--blue),transparent 82%)}html.has-scrolled .sub-section:hover:after,html.has-scrolled .sub-section:focus-within:after{opacity:1}.slot-content{display:flex;width:100%;height:100%;box-sizing:border-box}.slot-content.tl{align-items:flex-start;justify-content:flex-start;padding:var(--pad-sm)}.slot-content.tr{align-items:flex-start;justify-content:flex-end;padding:var(--pad-sm)}.slot-content.bl{align-items:flex-end;justify-content:flex-start;padding:var(--pad-sm)}.slot-content.br{align-items:flex-end;justify-content:flex-end;padding:var(--pad-sm)}.card{background:var(--card-bg);box-shadow:0 6px 16px var(--card-shadow);border-radius:var(--radius);border:1px solid var(--border);padding:1rem;transition:background .3s,color .3s}.line-card{padding:var(--pad-md) var(--pad-md);border-left:4px solid var(--blue);display:flex;flex-direction:column;transition:transform var(--transition-base),box-shadow var(--transition-base),filter var(--transition-fast)}.line-card:hover,.line-card:focus-visible{transform:translateZ(0) var(--scale-up);box-shadow:0 8px 22px var(--card-shadow)}.line-card:active{transform:translateZ(0) var(--scale-down)}.contact-form.card.line-card:hover,.contact-form.card.line-card:focus-visible{transform:none!important;box-shadow:none!important}.card .info{display:flex;flex-direction:column}.card .name{font-weight:600;color:var(--text)}.small-card{display:flex;flex-direction:column;align-items:center;gap:var(--pad-xxs);padding:clamp(4px,1.6vw,12px);width:100%;max-width:clamp(90px,12vw,140px);height:auto;box-sizing:border-box;overflow:hidden;cursor:pointer;transform:translateY(0);transition:transform var(--transition-base),box-shadow var(--transition-base)}.small-card.visible{transform:translateY(0);opacity:1}.navbar{position:fixed;top:0;left:0;right:0;height:var(--navbar-height);min-height:var(--navbar-height);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--pad-md);padding:0 var(--pad-md);background:var(--page-bg);border-bottom:1px solid var(--border);z-index:3000}.nav-left{display:flex;align-items:center;gap:var(--pad-sm)}.nav-left>button,.nav-left .burger{margin:0;padding:0;line-height:1}.nav-links{display:flex;gap:var(--pad-sm);list-style:none;margin:0;padding:0;align-items:center;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-links li{cursor:pointer;padding:var(--pad-xs) var(--pad-xs);border-radius:var(--radius);color:var(--text);font-weight:500;white-space:nowrap;transition:color var(--transition-base),background var(--transition-base),transform var(--transition-fast)}.nav-links li:hover{color:var(--blue);transform:translateY(-2px)}.nav-links li.active{color:var(--blue);font-weight:700;box-shadow:inset 0 -2px 0 0 var(--blue)}.nav-arrows-container{display:flex;align-items:center;min-width:0}.nav-arrow{background:transparent;border:none;color:var(--text);font-size:var(--fs-body);width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--transition-base),background var(--transition-base);z-index:1;outline:none}.nav-arrow:active{color:var(--blue);background:#0b6fb814}.lang-switcher{display:flex;gap:var(--pad-sm);align-items:center}.lang-switcher img{width:28px;height:20px;border-radius:var(--radius);border:1px solid var(--border);opacity:.55;cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast)}.lang-switcher img.active{opacity:1;transform:var(--scale-up);border:2px solid var(--blue)}.theme-toggle{background:none;border:none;font-size:var(--fs-h3);cursor:pointer;padding:var(--pad-xs);border-radius:var(--radius);color:var(--text);display:flex;align-items:center;height:var(--navbar-height)}.theme-toggle:hover{filter:brightness(1.05)}.burger{display:none;background:none;border:none;min-width:var(--navbar-height);height:var(--navbar-height);padding:0 var(--pad-xs);align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius);color:var(--text)}.burger-box{display:inline-block;width:22px;height:16px;position:relative}.burger-inner,.burger-inner:before,.burger-inner:after{display:block;background:var(--text);height:2px;border-radius:2px;transition:transform var(--transition-slow),opacity var(--transition-slow);position:absolute;left:0;right:0}.burger-inner{top:50%;transform:translateY(-50%)}.burger-inner:before{content:"";top:-6px}.burger-inner:after{content:"";top:6px}.burger-inner.open{transform:rotate(45deg)}.burger-inner.open:before{transform:rotate(-90deg) translate(-6px);top:0}.burger-inner.open:after{opacity:0}.timeline-viewport{position:relative;width:100%;height:calc(100vh - var(--navbar-height));overflow:hidden;background:linear-gradient(90deg,var(--bar-fill));border-bottom:none}.timeline{position:relative;padding-left:68px;padding-right:var(--pad-md);flex:1;display:flex;flex-direction:column;justify-content:center}.timeline:before{content:"";position:absolute;left:34px;top:8px;bottom:8px;width:4px;background:linear-gradient(180deg,var(--blue),rgb(96 165 250 / 55%));border-radius:var(--radius)}.timeline-item{position:relative;margin-bottom:28px;display:flex;align-items:flex-start;gap:var(--pad-lg);opacity:0;transform:translateY(18px) scale(.99);transition:all .52s cubic-bezier(.2,.9,.2,1)}.timeline-item.is-visible{opacity:1;transform:translateY(0) scale(1)}.dot{position:absolute;left:0;width:68px;height:68px;border-radius:50%;background:var(--card-bg);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px var(--card-shadow);border:2px solid var(--border);flex-shrink:0}.meta{display:flex;gap:var(--pad-md);align-items:baseline;flex-wrap:wrap}.year{font-weight:700;color:var(--blue);font-size:var(--fs-body)}.institution{font-size:var(--fs-body);color:var(--text-secondary)}.degree{margin-bottom:6px;font-size:var(--fs-body);font-weight:700;color:var(--text);line-height:1.25}.category{margin-bottom:56px;flex:1;display:flex;flex-direction:column;justify-content:center}.category:last-child{margin-bottom:0}.category-header{display:flex;justify-content:space-between;margin-bottom:var(--pad-xxs);margin-bottom:20px}.category-header h3{font-size:var(--fs-h3);color:var(--text)}.category-header .years{font-size:var(--fs-body);color:var(--text-secondary)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--pad-lg);flex:1;min-height:0}.dates{font-size:var(--fs-small);font-weight:600;color:var(--blue);margin-bottom:4px}.company{font-weight:600;font-size:var(--fs-body);margin-bottom:var(--pad-xxs);color:var(--text)}.role{font-size:var(--fs-body);font-weight:500;margin-bottom:6px;color:var(--text-secondary)}.details{font-size:var(--fs-small);color:var(--text-secondary);margin:0;padding-left:var(--pad-md);flex:1}.timeline-overlay{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-start;gap:2.2vh;padding:10vh 6vw 4vh;opacity:.74}.timeline-overlay .overlay-logo{display:inline-flex;align-items:center;padding-left:0}.timeline-overlay .overlay-logo img{font-size:clamp(.5rem,1.1vw,1rem);font-weight:600;letter-spacing:.02em;color:var(--text)}.timeline-overlay .overlay-level{font-size:clamp(1rem,1vw,1.1rem);font-weight:500;color:var(--text-secondary)}.timeline-overlay .overlay-logo{display:inline-flex;align-items:center;padding-left:var(--pad-xs)}.timeline-overlay .overlay-logo img{display:block;max-height:var(--logo-timeline-max-h);max-width:var(--logo-timeline-max-w);width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 0 1px rgba(11,111,184,1)) drop-shadow(0 0 12px rgba(11,111,184,.42));transition:transform var(--transition-hover),filter var(--transition-hover),opacity var(--transition-base)}.overlay-item:hover .overlay-logo img,.overlay-logo:hover img{transform:translateZ(0) var(--scale-logo);filter:drop-shadow(0 0 1.5px rgba(11,111,184,1)) drop-shadow(0 0 20px rgba(11,111,184,.65)) brightness(1.06) contrast(1.04)}.overlay-item:active .overlay-logo img,.overlay-logo:active img{transform:translateZ(0) var(--scale-logo-active)}.overlay-item{position:relative;display:flex;flex-direction:row;align-items:center;gap:clamp(6px,1.2vw,16px);min-height:var(--card-timeline-min-h);max-width:var(--card-timeline-max-w);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 16px var(--card-shadow);overflow:hidden;font-size:var(--fs-body);color:var(--text);padding:clamp(.25rem,1vw,.9rem);border-left:4px solid var(--blue);transition:transform var(--transition-base),box-shadow var(--transition-base),filter var(--transition-fast)}.overlay-item:hover,.overlay-item:focus-visible{transform:translateZ(0) var(--scale-up);box-shadow:0 8px 22px var(--card-shadow)}.overlay-item:active{transform:translateZ(0) var(--scale-down)}[dir=rtl] .overlay-item{border-left:none;border-right:4px solid var(--blue)}.section,.page-layout,.page,.wrapper{box-sizing:border-box;max-width:100vw;overflow-x:hidden}.overlay-type,.overlay-info,.overlay-level{padding-left:clamp(6px,1vw,12px);padding-right:var(--pad-xs);text-shadow:0 0 8px rgb(0 0 0 / 18%)}.overlay-type{font-weight:700;font-size:clamp(.7rem,1.1vw,1.2rem)!important;margin-bottom:var(--pad-xxs);letter-spacing:.01em}.overlay-level{font-size:clamp(.6rem,1.1vw,1.1rem)!important;color:#ffe;margin-top:var(--pad-xxs)}.overlay-info{font-size:clamp(.8rem,1.1vw,1.3rem)!important;margin-bottom:var(--pad-xxs)}.milestone{position:absolute;bottom:28px;transform:translate(-50%);display:flex;align-items:center;gap:var(--pad-sm);pointer-events:none}.milestone .dot{display:none!important;width:0;height:0;border:0}.milestone .label{font-size:var(--fs-small);color:var(--text);text-shadow:0 1px 2px rgb(0 0 0 / 35%)}.degree-thumb{border-radius:var(--radius);overflow:visible;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.degree-thumb img{display:block;max-height:var(--thumb-h);max-width:calc(2 * var(--thumb-h));width:auto;height:auto;object-fit:contain;object-position:center;filter:drop-shadow(0 0 1px rgba(11,111,184,1)) drop-shadow(0 0 14px rgba(11,111,184,.4))}.company-logo-link:hover .degree-thumb img,.degree-thumb:hover img{transform:translateZ(0) var(--scale-logo);filter:drop-shadow(0 0 1.5px rgba(11,111,184,1)) drop-shadow(0 0 22px rgba(11,111,184,.7)) brightness(1.02) contrast(1.02)}.company-logo-link:active .degree-thumb img,.degree-thumb:active img{transform:translateZ(0) var(--scale-logo-active)}.company-logo-link{cursor:pointer;display:inline-block}.company-link{cursor:pointer}.logo{width:80px;height:80px;margin:var(--pad-xs) auto;flex-shrink:0;filter:drop-shadow(0 0 1px rgba(11,111,184,1)) drop-shadow(0 0 14px rgba(11,111,184,.36));opacity:1;stroke-dashoffset:2000px;stroke-dasharray:2000px;animation:animateLogo 10s linear forwards}@keyframes animateLogo{to{stroke-dashoffset:0}}.logo :deep(svg){width:100%;height:100%;filter:url(#glow);opacity:1}.small-card.visible .logo{opacity:1}.small-card:hover .logo :deep(svg){filter:url(#glow-green);transform:var(--scale-up)}.small-card:hover .logo{opacity:1;transform:var(--scale-up);filter:drop-shadow(0 0 2px var(--green-glow))}.small-card:active .logo{transform:var(--scale-down)}.small-card:not(.is-clicked):hover .logo :deep(svg){filter:url(#glow-green)}.info{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--pad-xxs)}.skills-page .small-card .info{width:100%!important;box-sizing:border-box;align-items:center}.name{font-size:var(--fs-small);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.level{font-size:var(--fs-small);color:var(--text-secondary)}.skills-page .small-card .logo{width:clamp(45px,8vw,80px);height:clamp(45px,8vw,80px)}.skills-page .small-card .name{font-size:clamp(.75rem,1.5vw,.95rem)}.skills-page .small-card .level{font-size:clamp(.65rem,1.2vw,.85rem)}.skills-page .small-card .bar{background:var(--bar-bg);border-radius:var(--radius);overflow:hidden;height:7px!important;margin:clamp(6px,1.2vw,12px) 0;width:clamp(48px,60%,140px);flex-shrink:0}.skills-page .small-card .fill{height:100%;background:var(--bar-fill);border-radius:inherit}#glow{--glow-color: var(--blue)}#glow{--blur-radius: 4px;--opacity: .5}.card.corner{position:relative;padding-inline-end:calc(var(--corner-qr-size) + var(--corner-qr-margin-right) + var(--pad-sm));min-height:calc(var(--corner-qr-size) + var(--corner-qr-margin-top) + 4em)}.card.corner .corner-qr{position:absolute;right:var(--corner-qr-margin-right);bottom:var(--corner-qr-margin-top);width:var(--corner-qr-size);height:var(--corner-qr-size);border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 18px var(--card-shadow);transform-origin:center bottom;transition:transform .18s cubic-bezier(.2,.9,.2,1),box-shadow .16s ease,filter .12s ease;cursor:pointer}.card.corner .corner-qr img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .16s ease,filter .12s ease}.card.corner .corner-qr:hover,.card.corner .corner-qr:focus{transform:scale(1.08);box-shadow:0 12px 30px #0000001f}.card.corner .corner-qr:active{transform:scale(.98)}.card.corner .corner-qr:focus{outline:2px solid rgb(11 111 184 / 12%)}.card.corner .corner-qr-block{position:absolute;width:var(--corner-qr-size);text-align:center;box-sizing:border-box}.card.corner .corner-qr-block .corner-qr{position:static;width:100%;height:var(--corner-qr-size)}.corner .qr-caption{margin-top:8px;text-align:center}.corner .qr-caption .qr-name{font-weight:700;color:var(--text)}.corner .qr-caption .qr-short{font-size:var(--fs-small);color:var(--text-secondary)}.links-wrapper{position:relative}.links-wrapper .favicon-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2999}.links-wrapper .favicon-center img{width:var(--favicon-size);height:auto;display:block;margin:0 auto}.links-wrapper .clickable-favicon{pointer-events:auto;cursor:pointer;will-change:transform;outline:none;position:relative;z-index:3000;transition:transform .16s ease,filter .12s ease}.links-wrapper .clickable-favicon:hover{transform:translateZ(0) scale(1.05);filter:brightness(1.02) drop-shadow(0 0 8px rgb(11 111 184 / 8%));filter:brightness(1.02) drop-shadow(0 0 16px color-mix(in hsl,var(--blue),transparent 78%))}.links-wrapper .clickable-favicon:active{transform:translateZ(0) scale(.98)}.links-wrapper .clickable-favicon:focus-visible{filter:drop-shadow(0 0 8px rgb(11 111 184 / 8%));filter:drop-shadow(0 0 16px color-mix(in hsl,var(--blue),transparent 78%))}.yearstream{position:absolute;left:0;right:0;bottom:0;width:100%;height:42px;display:flex;align-items:center;justify-content:center}.ys-card-stream{position:absolute;width:100%;height:120px;display:flex;align-items:center;overflow:visible}.ys-card-line{position:relative;height:100px;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;will-change:transform;direction:ltr}.ys-card-line.dragging{cursor:grabbing}.ys-card-wrapper{position:absolute;width:160px;height:100px}.ys-card{position:absolute;top:0;left:0;width:160px;height:100px;border-radius:10px;overflow:hidden}.ys-card-normal{background:transparent;box-shadow:0 10px 28px #00000061;z-index:2;position:relative;overflow:hidden}.ys-card-gradient{position:absolute;inset:0;display:none}.ys-card-year{position:absolute;inset:0;display:flex;align-items:center;font-size:32px;font-weight:900;color:var(--text);text-shadow:0 2px 8px rgb(0 0 0 / 25%)}.ys-year-text{display:inline-block}.ys-year-text.rtl-text{direction:rtl;unicode-bidi:plaintext;text-align:right}.ys-card-ascii{background:transparent;z-index:1;position:absolute;top:0;left:0;width:160px;height:100px;border-radius:10px;overflow:hidden}.ys-ascii-content{position:absolute;top:0;left:0;width:100%;height:100%;color:#1119;color:color-mix(in hsl,var(--text),transparent 40%);font-family:Courier New,monospace;overflow:hidden;white-space:pre;animation:ys-glitch .1s infinite linear alternate-reverse;margin:0;padding:0;text-align:left;vertical-align:top;box-sizing:border-box}@keyframes ys-glitch{0%{opacity:1}15%{opacity:.9}16%{opacity:1}49%{opacity:.8}50%{opacity:1}99%{opacity:.9}to{opacity:1}}.ys-card-normal{clip-path:inset(0 0 0 var(--clip-right, 0%))}.ys-card-ascii{clip-path:inset(0 calc(100% - var(--clip-left, 0%)) 0 0)}.ys-scan-effect{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgb(0 255 255 / 40%),transparent);animation:ys-scan .6s ease-out;pointer-events:none;z-index:5}@keyframes ys-scan{0%{transform:translate(-100%);opacity:0}50%{opacity:1}to{transform:translate(100%);opacity:0}}.ys-particles{position:absolute;top:50%;left:0;transform:translateY(-50%);width:100%;height:120px;z-index:0;pointer-events:none}.ys-scanner{position:absolute;top:50%;left:0;transform:translateY(-50%);width:100%;height:50px;z-index:15;pointer-events:none}.popup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:5000}.popup-content{background:var(--card-bg);border-radius:var(--radius);padding:var(--pad-md);position:relative;width:520px;max-width:90%;box-shadow:0 6px 20px var(--card-shadow);animation:fadeIn .3s ease;color:var(--text);border:1px solid var(--border)}.popup-content.popup-large{width:900px;max-width:95%}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.close-btn{position:absolute;top:8px;right:16px;background:var(--card-bg);color:var(--text);border:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);font-size:var(--fs-body);line-height:1;cursor:pointer;box-shadow:0 4px 10px var(--card-shadow);transition:transform var(--transition-fast)}.close-btn:hover{transform:scale(1.08)}.close-btn:active{transform:scale(.9)}.popup-body{font-size:var(--fs-body);color:var(--text-secondary)}.popup-link{display:inline-block;margin-top:var(--pad-sm);color:var(--blue);font-weight:600;text-decoration:none}.popup-link:hover{text-decoration:underline}.popup-image{max-width:100%}.zoom-wrapper{position:relative;display:inline-block;max-width:100%;overflow:hidden}.pan-wrapper{display:block;touch-action:none;cursor:grab}.pan-wrapper.dragging{cursor:grabbing}.zoom-wrapper .popup-image{transition:transform .32s cubic-bezier(.2,.8,.2,1);transform-origin:center center;display:block;margin:0 auto;max-width:100%;max-height:80vh}.zoom-control{display:flex;align-items:center;gap:var(--pad-xs)}.zoom-control input[type=range]{width:220px}.zoom-value{font-weight:600;padding-left:var(--pad-xs)}.zoom-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text);opacity:.7;margin-right:var(--pad-xs)}.zoom-icon svg{display:block}.diploma-name{font-weight:700;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.popup-spinner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000;pointer-events:none;font-weight:700;color:var(--text)}.contact-form label{display:block;margin:1.5rem 0;font-weight:700;color:var(--text)}.contact-form input,.contact-form textarea{width:100%;padding:.6rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text);box-sizing:border-box;font-size:var(--fs-body)}.contact-form textarea{min-height:250px;resize:vertical}.contact-form .actions{margin-top:1.8rem;display:flex;justify-content:flex-end;gap:var(--pad-md)}.contact-form .actions button{padding:.5rem 1rem}.contact-form p.ok{color:var(--green-glow)}.contact-form p.error{color:#dc143c}.clip-btn{background:transparent;border:none!important;padding:var(--pad-xs);cursor:pointer;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;box-shadow:none;transition:transform .16s cubic-bezier(.2,.9,.2,1),filter .12s ease,opacity .12s ease;transform-origin:center center}.clip-btn:focus{outline:none}.clip-btn:hover{transform:scale(1.12);filter:brightness(.98)}.clip-btn:active{transform:scale(1.06)}.clip-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:grayscale(.2)}.clip-icon{width:24px;height:24px;display:block;color:var(--blue)}.contact-form .attachments-list{margin:1rem 0 .6rem;display:flex;flex-direction:column;gap:var(--pad-xs)}.contact-form .attachment-item{display:flex;align-items:center;justify-content:flex-start;gap:var(--pad-sm);padding:0;border:none;background:transparent}.contact-form .attachment-name{color:var(--text);font-size:var(--fs-body);word-break:break-all}.contact-form .attachment-size{color:var(--text-secondary);font-size:var(--fs-small)}.contact-form .attachment-remove{background:transparent;border:none;color:#dc143c;font-size:18px;line-height:1;cursor:pointer;padding:0 var(--pad-xs);margin-left:auto}.contact-form .attachment-remove:hover{filter:brightness(1.05)}.contact-form .attachment-remove:active{transform:scale(.96)}.contact-form .attachment-warning{margin-top:4px;color:#dc143c;font-size:var(--fs-small)}button{border-radius:var(--radius);border:1px solid transparent;padding:.6em 1.2em;font-size:var(--fs-body);font-weight:500;background-color:var(--blue);color:#fff;cursor:pointer;transition:.25s}button:hover{filter:brightness(1.05)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.card[role=button]{cursor:pointer}.tg-send{width:var(--tg-size);height:var(--tg-size);padding:0;border:none!important;background:transparent;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;transition:transform .16s cubic-bezier(.2,.9,.2,1),filter .12s ease,opacity .12s ease;transform-origin:center center;transform:var(--tg-flip) scale(var(--tg-scale))}.tg-send:focus{outline:none}.tg-send:hover{--tg-scale: 1.12;filter:brightness(.98)}.tg-send:active{--tg-scale: 1.06}.tg-send:disabled{opacity:.45;cursor:not-allowed;--tg-scale: 1;filter:grayscale(.2)}.tg-send .tg-icon{display:block;color:var(--blue);width:34px;height:34px;transform:translate(var(--tg-icon-offset))}.contact-form[dir=rtl] .tg-send{--tg-flip: scaleX(-1);--tg-icon-offset: -8px}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,500px));width:100%}.preview-link{display:block;width:100%;aspect-ratio:16/11;border-radius:var(--radius);margin:var(--pad-sm) 0;overflow:hidden;position:relative}.preview-link:hover{transform:scale(1.05);box-shadow:0 8px 20px var(--card-shadow)}.preview-link:active{transform:scale(.95)}.iframe-container{width:100%;height:100%;overflow:hidden;position:relative}.project-iframe{width:400%;height:400%;border:none;pointer-events:none;transform:scale(.25);transform-origin:top left}.reveal{opacity:1;transform:translateY(18px) scale(.99);transition:all .52s cubic-bezier(.2,.9,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0) scale(1)}.name-banner{position:fixed;top:calc(var(--navbar-height) + var(--fs-small));left:0;right:0;height:var(--name-banner-height);pointer-events:none;z-index:2500}.name-banner .svg-holder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.name-banner .fade-out{opacity:0;transition:opacity .6s ease}.name-banner svg{width:100%;height:100%;display:block;color:var(--text)}.cv-tooltip{position:fixed;background:#000000d9;color:#fff;padding:var(--pad-xs) var(--pad-xs);border-radius:var(--radius);font-size:13px;pointer-events:none;z-index:10000;white-space:nowrap;transform:translate(0)}.clickable-favicon{cursor:pointer}.diplomas-page .degree-thumb{min-width:clamp(55px,10vw,55px)!important;width:clamp(55px,10vw,var(--degree-thumb, 250px))!important;height:auto!important}.diplomas-page .degree-thumb img{width:100%!important;object-fit:contain}.diplomas-page .timeline-item,.diplomas-page .degree-thumb,.diplomas-page .line-card{position:relative;z-index:3000}.diplomas-page .timeline{padding-left:0}.diplomas-page .timeline:before{display:none}.skills-page .skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(90px,12vw,180px),1fr));gap:clamp(8px,2vw,24px)}.skills-page .small-card{width:100%!important;max-width:clamp(90px,12vw,140px)!important;padding:clamp(4px,1.6vw,12px)!important}.skills-page .small-card .logo{width:clamp(45px,8vw,80px)!important;height:clamp(45px,8vw,80px)!important}.skills-page .small-card .name{font-size:clamp(.75rem,1.5vw,.95rem)!important}.skills-page .small-card .bar{width:clamp(50px,80%,200px)!important;height:7px!important;display:block}.skills-page .small-card .fill{transition:width .36s cubic-bezier(.2,.9,.2,1)}.links-wrapper .card.line-card.corner{width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));min-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));max-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));min-height:calc(var(--corner-qr-size) + var(--corner-qr-margin-top) + 6em);box-sizing:border-box}.links-wrapper .corner-qr,.links-wrapper .corner-qr img{border-radius:var(--radius)}.links-wrapper .corner-qr-block{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.sub-section{min-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right))}@media(min-device-pixel-ratio:2),(min-resolution:192dpi){.logo{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media(min-width:1025px){.links-wrapper .card.line-card.corner{width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));min-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));max-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));box-sizing:border-box}}@media(max-width:1024px){:root{--corner-qr-size: clamp(120px, 10vw, 220px);--corner-qr-margin: clamp(14px, 1.5vw, 24px)}.links-wrapper .line-card h3,.links-wrapper .line-card small{display:none}.links-wrapper .page-layout.grid-2x2,.soft-skills-page .page-layout.grid-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.dot{width:60px;height:60px}.project-iframe{transform:scale(.25);transform-origin:top left}}@media(max-width:768px){:root{--corner-qr-size: clamp(90px, 8vw, 160px);--corner-qr-margin: clamp(8px, 1vw, 14px)}button{font-size:var(--fs-body)}.links-wrapper{--corner-qr-margin: clamp(2px, 1vw, 6px);--corner-qr-margin-top: clamp(1px, .8vw, 4px);--corner-qr-margin-left: clamp(1px, .8vw, 3px);--corner-qr-margin-right: clamp(1px, .8vw, 3px)}.links-wrapper .page-layout.grid-2x2,.soft-skills-page .page-layout.grid-2x2{grid-template-columns:1fr 1fr!important;grid-template-rows:1fr 1fr!important}.soft-skills-page .card{max-height:none!important;overflow:visible!important;-webkit-line-clamp:unset;line-clamp:unset;-webkit-box-orient:unset;display:block}.soft-skills-page .card .name,.soft-skills-page .card .short{display:block;margin:0 0 .3rem}.links-wrapper .slot-content,.links-wrapper .card,.links-wrapper .card.corner,.links-wrapper .card.line-card.corner{min-width:0!important;width:100%!important;box-sizing:border-box}.links-wrapper .wrapper,.links-wrapper .slot-content{padding:var(--pad-xs)!important}.links-wrapper .page-layout{grid-template-columns:1fr 1fr}.links-wrapper .page-layout.grid-2x2{grid-template-rows:1fr 1fr}.soft-skills-page .page-layout{grid-template-columns:1fr 1fr}.soft-skills-page .page-layout.grid-2x2{grid-template-rows:1fr 1fr}.links-wrapper .wrapper{padding:var(--pad-md) var(--pad-sm)}.page-layout{grid-template-columns:1fr;grid-auto-rows:auto;align-items:stretch;row-gap:var(--sub-gap)}.page-layout.grid-2x2{grid-template-rows:unset}.sub-section,.sub-section .sub-inner{height:100%}.grid{grid-template-columns:1fr;gap:var(--pad-md)}.projects-grid{grid-template-columns:1fr}.timeline{padding-left:50px}.timeline:before{left:25px}.nav-arrows-container .nav-arrow{display:none}.nav-left{gap:var(--pad-xxs)}.theme-toggle,.burger{height:var(--navbar-height);display:flex;align-items:center}.nav-links{position:absolute;top:var(--navbar-height);left:0;right:0;background:var(--page-bg);display:flex;flex-direction:column;gap:0;max-height:0;overflow:hidden;transition:max-height .22s ease,box-shadow .18s ease;border-bottom:1px solid var(--border);z-index:3100}.nav-links.open{max-height:60vh;overflow:auto}.dot{width:50px;height:50px}.small-card{width:110px}.logo{width:80px;height:80px}.skills-page .small-card .bar{width:clamp(48px,50%,160px)}.popup-content{width:90%;padding:var(--pad-md)}.category-header{flex-direction:column;align-items:flex-start;gap:var(--pad-xs)}.preview-link:hover .iframe-container{border:1px solid var(--border)}.links-wrapper .card{min-height:calc((var(--corner-qr-size) * 2.3) + var(--pad-md))!important}}@media(max-width:640px){.card.corner{padding-inline-end:calc(var(--corner-qr-size) + var(--corner-qr-margin-right) + var(--corner-qr-margin-left) + var(--pad-xs));min-height:calc(var(--corner-qr-size) + var(--corner-qr-margin-top) + 3.5em)}.card.corner .corner-qr{width:var(--corner-qr-size);height:var(--corner-qr-size);border-radius:var(--radius)}}@media(max-width:600px){.links-wrapper{max-width:100vw;overflow-x:hidden;padding:0 2vw;--corner-qr-margin: clamp(4px, 2.5vw, 8px);--corner-qr-margin-top: clamp(2px, 1vw, 6px);--corner-qr-margin-left: clamp(2px, 1vw, 4px);--corner-qr-margin-right: clamp(2px, 1vw, 4px)}.links-wrapper .page-layout,.links-wrapper .page-layout.grid-2x2{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-auto-rows:1fr;height:100%}.links-wrapper .slot-content{min-width:0;width:100%;box-sizing:border-box;padding:var(--pad-xs) 0}.links-wrapper .card.corner{width:auto;max-width:calc(var(--corner-qr-size) + var(--corner-qr-margin-left) + var(--corner-qr-margin-right));margin:0;padding-top:var(--pad-xs);padding-bottom:var(--pad-xs);box-sizing:border-box}.links-wrapper .qr-caption{margin-top:8px;text-align:center}.links-wrapper .qr-name{color:var(--text);margin-bottom:var(--pad-xxs)}.links-wrapper .qr-short{color:var(--text-secondary)}.links-wrapper .corner-qr{min-width:64px;min-height:64px;width:80px;height:80px}.links-wrapper .card.line-card.corner{overflow:visible;padding-bottom:var(--pad-md);padding-top:var(--pad-md)}}@media(max-width:540px){.popup-content{width:92%;padding:var(--pad-sm)}.popup-content .contact-form.card{margin:0;width:100%;padding:var(--pad-sm)}.soft-skills-page .page-layout.grid-2x2,.soft-skills-page .page-layout{grid-template-columns:1fr!important;grid-template-rows:repeat(4,auto)!important;grid-auto-rows:auto!important;row-gap:var(--sub-gap)!important;height:auto}.skills-page .page-layout.grid-2x2{grid-template-columns:1fr!important;grid-template-rows:repeat(4,auto)!important;height:auto}}@media(max-height:500px)and (orientation:landscape){.section{height:auto;min-height:calc(100vh - var(--navbar-height));padding:var(--pad-md) 0}.sub-section{max-height:80vh}.navbar{position:relative}.pages{height:calc(100vh - var(--navbar-height))}}@media(max-width:480px){:root{--corner-qr-margin: clamp(2px, .5vw, 8px)}.section{padding:var(--pad-sm)}.navbar{padding:0 var(--pad-sm);gap:var(--pad-sm)}.nav-links{gap:var(--pad-sm)}.lang-switcher img{width:24px;height:18px}.small-card{width:100px}.logo{width:70px;height:70px}.timeline{padding-left:40px}.timeline:before{left:20px}.dot{width:40px;height:40px}.iframe-container{direction:ltr}.project-iframe{transform:scale(.25);transform-origin:top left}.links-wrapper .card.line-card.corner{min-width:calc(var(--corner-qr-size) + 16px);min-height:calc(var(--corner-qr-size) + 16px + 6em)}.sub-section{min-width:calc(var(--corner-qr-size) + 16px)}button,.contact-form .actions button,.card[role=button],.tg-send{font-size:var(--fs-body);padding:.6rem 1rem}.section,.page-layout,.page,.wrapper,.sub-section{box-sizing:border-box;max-width:100vw;overflow-x:hidden}.timeline-overlay .overlay-type,.timeline-overlay .overlay-info,.timeline-overlay .overlay-level,.links-wrapper .line-card small,.links-wrapper .line-card h3{font-size:clamp(.7rem,3.8vw,var(--fs-body));line-height:1.05}}@media(max-width:320px){.links-wrapper .card.line-card.corner{min-width:calc(var(--corner-qr-size) + 16px);min-height:calc(var(--corner-qr-size) + 16px + 6em)}.sub-section{min-width:calc(var(--corner-qr-size) + 16px)}}[dir=rtl] body{direction:rtl;text-align:right}[dir=rtl] .navbar{direction:ltr}[dir=rtl] .nav-links{direction:rtl;justify-content:center}[dir=rtl] .theme-toggle{order:0;direction:ltr}[dir=rtl] .lang-switcher{order:1;direction:ltr}[dir=rtl] .timeline{padding-left:var(--pad-md);padding-right:68px}[dir=rtl] .timeline:before{left:auto;right:34px}[dir=rtl] .dot{left:auto;right:0}[dir=rtl] .line-card{border-left:none;border-right:4px solid var(--blue)}[dir=rtl] .details{padding-left:0;padding-right:var(--pad-md)}[dir=rtl] .wrapper .title{text-align:right}[dir=rtl] .meta,[dir=rtl] .category-header,[dir=rtl] .timeline-container{direction:rtl}[dir=rtl] .milestone{transform:translate(50%)}[dir=rtl] .close-btn{right:auto;left:16px}[dir=rtl] .iframe-container{direction:ltr}[dir=rtl] .project-iframe{transform-origin:top left}.page-layout,.sub-section,.section,.pages,.page{overflow-x:hidden;max-width:100%}.soft-skills-page .card{height:auto!important;min-height:0!important;box-sizing:border-box;padding:var(--pad-sm) var(--pad-sm);white-space:normal;overflow-wrap:anywhere;word-break:break-word;overflow:visible!important;display:block}.soft-skills-page .card.corner{padding-inline-end:var(--pad-sm);background-position:center}.soft-skills-page .card{width:14rem!important;max-width:100%;line-height:1.25!important;height:calc((1.25em * 2) + (var(--pad-sm) * 2))!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2!important;overflow:hidden!important;text-overflow:ellipsis;white-space:normal!important;box-sizing:border-box!important;padding:var(--pad-sm)!important}.soft-skills-page .card{--soft-card-min: 14rem;--soft-card-max: 20rem;width:clamp(var(--soft-card-min),20vw + 1rem,var(--soft-card-max))!important;max-width:100%!important;line-height:1.5!important;height:calc((2em * 2) + (var(--pad-sm) * 2))!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2!important;overflow:hidden!important;text-overflow:ellipsis;white-space:normal!important;box-sizing:border-box!important;padding:var(--pad-xs) var(--pad-sm) calc(var(--pad-sm) + .5rem) var(--pad-sm)!important;vertical-align:top!important}.soft-skills-page .card.corner{padding-inline-end:var(--pad-sm)!important}.soft-skills-page .grid{display:flex;flex-wrap:wrap;gap:var(--sub-gap)!important;align-items:flex-start}.soft-skills-page .skill-item{margin:0!important;width:auto!important;box-sizing:border-box}
