/* Hussain Youssef – Zahntechniker. Porcelain, ink and a teal from his logo. Fonts are self-hosted (no requests to Google). */

@font-face{font-family:"Fraunces";font-weight:400;font-display:swap;src:url(../fonts/fraunces-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-weight:600;font-display:swap;src:url(../fonts/fraunces-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/fraunces-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Plex Arabic";font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:"Plex Arabic";font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:"Plex Arabic";font-weight:600;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:"Plex Arabic";font-weight:700;font-display:swap;src:url(../fonts/ibm-plex-sans-arabic-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}

:root{
  --bg:#F7F4EE; --surface:#FFFFFF; --ink:#1C232C; --muted:#59626D; --line:#E3DDD2; --soft:#EFEAE0;
  --teal:#00808A; --teal-hi:#13A19B; --teal-soft:#E1F0EF; --night:#141A21;
  --s1:#F4EFE4; --s2:#EEE4D0; --s3:#E7D8BC; --s4:#DECBA8; --s5:#D3BC94;
  --display:"Fraunces","Plex Arabic",Georgia,serif; --sans:"Inter","Plex Arabic",system-ui,sans-serif;
  --on-ink:#FFFFFF; --on-teal:#FFFFFF;
  --r:18px; --r-sm:10px; --wrap:1180px; --ease:cubic-bezier(.2,.7,.2,1);
}
:root[lang="ar"]{--display:"Plex Arabic",Georgia,serif; --sans:"Plex Arabic","Inter",system-ui,sans-serif}

/* dark mode: follows the device, or the visitor's choice (saved only after a click) */
:root{color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#12171D; --surface:#1A2028; --ink:#ECE7DE; --muted:#A4ADB7; --line:#2B333D; --soft:#232B34;
  --teal:#3CB8B0; --teal-hi:#5FD0C8; --teal-soft:#16302F; --night:#0B0F13; --on-ink:#12171D; --on-teal:#0B0F13;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#12171D; --surface:#1A2028; --ink:#ECE7DE; --muted:#A4ADB7; --line:#2B333D; --soft:#232B34;
  --teal:#3CB8B0; --teal-hi:#5FD0C8; --teal-soft:#16302F; --night:#0B0F13; --on-ink:#12171D; --on-teal:#0B0F13;
}
.themebtn{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:var(--soft);color:var(--ink);cursor:pointer}
.themebtn .ic{width:19px;height:19px}
.themebtn .i-sun{display:none}
:root[data-theme="dark"] .themebtn .i-sun{display:block}:root[data-theme="dark"] .themebtn .i-moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .themebtn .i-sun{display:block}:root:not([data-theme="light"]) .themebtn .i-moon{display:none}}
@media (max-width:420px){.themebtn{width:36px;height:36px}}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
:root[lang="ar"] body{font-size:18px;line-height:1.85}
img,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.12;font-weight:400}
h2{font:400 clamp(34px,4.6vw,54px)/1.05 var(--display);letter-spacing:-.01em}
:root[lang="ar"] h2{font-weight:600;letter-spacing:0;line-height:1.3}
h3{font:600 18px/1.35 var(--sans)}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.ic{width:20px;height:20px;flex:none}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}
.skip{position:absolute;inset-inline-start:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--on-ink);text-decoration:none}
.skip:focus{top:12px}
::selection{background:var(--teal);color:var(--on-teal)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;font:600 16px/1 var(--sans);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease)}
.btn:hover{transform:translateY(-1px)}
.btn--solid{background:var(--ink);color:var(--on-ink)}
.btn--solid:hover{background:var(--teal);color:var(--on-teal)}
.btn--line{border-color:var(--ink);color:var(--ink)}
.btn--line:hover{background:var(--ink);color:var(--on-ink)}
.btn .ic{width:18px;height:18px}
:root[dir="rtl"] .btn .ic:last-child:not(:first-child){transform:scaleX(-1)}

/* header */
.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.top.is-scrolled{border-color:var(--line)}
.top__bar{display:flex;align-items:center;gap:28px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-inline-end:auto}
.brand__mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#00808A;color:#fff}
.brand__mark .ic{width:22px;height:22px;fill:#fff;stroke:none}
.brand__text{display:grid;line-height:1.15}
.brand__text b{font:400 21px/1.1 "Fraunces",Georgia,serif;letter-spacing:-.01em}
.brand__text small{font-size:13px;color:var(--muted)}
.nav{display:flex;gap:26px}
.nav a{text-decoration:none;font-weight:500;font-size:15px;color:var(--muted);padding:6px 0;border-bottom:1.5px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover,.nav a[aria-current="true"]{color:var(--ink);border-color:var(--teal)}
.langs{display:flex;gap:2px;padding:3px;border-radius:999px;background:var(--soft)}
.langs a{min-width:38px;padding:6px 10px;border-radius:999px;text-align:center;text-decoration:none;font:600 12.5px/1.2 var(--sans);color:var(--muted)}
.langs a[lang="ar"]{font-family:"Plex Arabic",sans-serif;font-size:14px;line-height:1}
.langs a[aria-current="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(28,35,44,.12)}
.menubtn{display:none;width:44px;height:44px;border:0;border-radius:12px;background:var(--soft);color:var(--ink);cursor:pointer;place-items:center}
@media (max-width:860px){
  .top__bar{gap:12px;min-height:64px}
  .menubtn{display:grid}
  .nav{position:absolute;inset-inline:0;top:100%;flex-direction:column;gap:0;padding:8px 20px 18px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -24px rgba(28,35,44,.4)}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px;color:var(--ink)}
  .top:not(.is-open) .nav{display:none}
  .brand__text small{display:none}
}
@media (max-width:420px){.brand__text b{font-size:18px}.langs a{min-width:32px;padding:6px 7px}}

/* hero */
.hero{padding:clamp(40px,7vw,96px) 0 clamp(56px,8vw,110px)}
.hero__grid{display:grid;gap:48px;align-items:center}
@media (min-width:900px){.hero__grid{grid-template-columns:1.15fr .85fr;gap:72px}}
.kicker{display:inline-flex;align-items:center;gap:10px;font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.kicker::before{content:"";width:28px;height:1.5px;background:currentColor}
:root[lang="ar"] .kicker{letter-spacing:0;font-size:15px}
.hero h1{margin-top:22px;display:grid;gap:14px}
.hero__name{font:400 clamp(48px,7.6vw,96px)/.95 "Fraunces",Georgia,serif;letter-spacing:-.025em}
.hero__claim{font:400 italic clamp(22px,2.6vw,31px)/1.3 var(--display);color:var(--muted)}
:root[lang="ar"] .hero__claim{font-style:normal;font-weight:500}
:root[lang="ar"] .hero__name{text-align:right}
.hero__lead{margin-top:24px;max-width:54ch;font-size:clamp(17px,1.5vw,19px);color:var(--muted)}
.hero__cta{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}
.hero__photo{position:relative;margin:0;justify-self:center;width:min(100%,390px)}
.hero__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:220px 220px var(--r) var(--r);box-shadow:0 40px 70px -40px rgba(28,35,44,.55)}
.shades{position:absolute;inset-inline-start:-22px;bottom:34px;display:flex;flex-direction:column;gap:6px;padding:10px 8px;border-radius:14px;background:var(--surface);box-shadow:0 14px 34px -16px rgba(28,35,44,.45)}
.shades i{display:block;width:22px;height:30px;border-radius:7px 7px 11px 11px;background:var(--s1);border:1px solid rgba(28,35,44,.08)}
.shades i:nth-child(2){background:var(--s2)}.shades i:nth-child(3){background:var(--s3)}.shades i:nth-child(4){background:var(--s4)}.shades i:nth-child(5){background:var(--s5)}
@media (max-width:520px){.shades{inset-inline-start:-6px}.hero__photo{width:82%}}

/* sections */
.sec{padding:clamp(64px,9vw,120px) 0}
.sec__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:24px;margin-bottom:40px}
.sec__lead{margin-top:14px;max-width:52ch;color:var(--muted)}

/* work grid */
.work{background:var(--surface);border-block:1px solid var(--line)}
.filters{display:flex;gap:6px;padding:4px;border-radius:999px;background:var(--soft)}
.filters button{border:0;background:none;padding:10px 18px;border-radius:999px;font:600 14.5px/1 var(--sans);color:var(--muted);cursor:pointer}
.filters button small{font-weight:500;opacity:.7;margin-inline-start:2px}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px}
.tile{position:relative;margin:0}
.tile a{position:relative;display:block;overflow:hidden;border-radius:var(--r-sm);background:var(--night);aspect-ratio:4/3}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),opacity .3s}
.tile a:hover img,.tile a:hover video{transform:scale(1.045)}
.tile a::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.tile__play{position:absolute;inset:0;margin:auto;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);color:#1C232C;box-shadow:0 10px 26px -8px rgba(0,0,0,.5);transition:transform .25s var(--ease)}
.tile__play .ic{width:22px;height:22px;margin-inline-start:3px}
:root[dir="rtl"] .tile__play .ic{margin-inline-start:0;margin-inline-end:3px}
.tile a:hover .tile__play{transform:scale(1.08)}
.tile__cap{margin-top:8px;font-size:14px;color:var(--muted)}
@media (min-width:900px){.grid>.tile:first-child{grid-column:span 2;grid-row:span 2}.grid>.tile:first-child a{height:100%;aspect-ratio:auto}}
.grid.is-filtered>.tile:first-child{grid-column:auto;grid-row:auto}
.grid.is-filtered>.tile:first-child a{aspect-ratio:4/3;height:auto}

/* lightbox */
.lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(12,16,21,.96);color:#fff;overflow:hidden}
.lb::backdrop{background:rgba(12,16,21,.9)}
.lb[open]{display:grid;grid-template-rows:1fr auto;animation:lbIn .25s var(--ease)}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb__stage{display:grid;place-items:center;padding:64px 72px 8px;min-height:0}
.lb__stage img,.lb__stage video{max-width:min(100%,calc(100vw - 150px));max-height:calc(100dvh - 140px);width:auto;height:auto;object-fit:contain;border-radius:8px;background:#000}
@media (max-width:640px){.lb__stage img,.lb__stage video{max-width:100%;max-height:calc(100dvh - 190px)}}
.lb__cap{text-align:center;padding:10px 20px 4px;font-size:15px;color:rgba(255,255,255,.85);min-height:1em}
.lb__count{position:absolute;top:22px;inset-inline-start:24px;font:500 14px/1 var(--sans);color:rgba(255,255,255,.7)}
.lb__count{padding-bottom:0}
.lb__btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:background .2s}
.lb__btn:hover{background:rgba(255,255,255,.24)}
.lb__x{top:12px;inset-inline-end:14px}
.lb__prev,.lb__next{top:50%;margin-top:-24px}
.lb__prev{inset-inline-start:14px}.lb__next{inset-inline-end:14px}
:root[dir="rtl"] .lb__prev .ic,:root[dir="rtl"] .lb__next .ic{transform:scaleX(-1)}
.lb > .lb__count{margin:0}
@media (max-width:640px){.lb__stage{padding:64px 10px 8px}.lb__prev,.lb__next{top:auto;bottom:14px;margin:0}.lb{grid-template-rows:1fr auto 76px}}

/* before / after */
.basec{background:var(--bg)}
.ba__list{display:grid;gap:40px}
.ba{margin:0}
.ba__frame{position:relative;overflow:hidden;border-radius:var(--r);background:var(--night);max-width:980px;margin-inline:auto;user-select:none;touch-action:pan-y}
.ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba__after{clip-path:inset(0 0 0 var(--pos))}
.ba__line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;pointer-events:none}
.ba__knob{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#fff;color:#1C232C;box-shadow:0 8px 24px -6px rgba(0,0,0,.5)}
.ba__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.ba__range:focus-visible+*{outline:none}
.ba__frame:has(.ba__range:focus-visible) .ba__knob{outline:3px solid var(--teal-hi);outline-offset:3px}
.ba__tag{position:absolute;top:16px;padding:6px 12px;border-radius:999px;background:rgba(20,26,33,.72);color:#fff;font:600 13px/1 var(--sans);letter-spacing:.04em;pointer-events:none}
.ba__tag--b{left:16px}.ba__tag--a{right:16px;background:var(--teal)}
.ba figcaption{margin-top:12px;text-align:center;color:var(--muted)}

/* about */
.about{background:var(--surface);border-block:1px solid var(--line)}
.about__grid{display:grid;gap:44px;align-items:center}
@media (min-width:860px){.about__grid{grid-template-columns:.8fr 1.2fr;gap:80px}}
.about__photo{margin:0;max-width:420px}
.about__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r)}
.about__text p{margin-top:22px;font-size:clamp(18px,1.7vw,21px);line-height:1.7;max-width:56ch}
.facts{margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:420px){.facts{grid-template-columns:1fr}}
.facts li{padding:16px 18px;border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--line);font-weight:600;border-inline-start:3px solid var(--teal)}

/* experience + skills */
.exp__grid{display:grid;gap:64px}
@media (min-width:960px){.exp__grid{grid-template-columns:1.25fr .75fr;gap:80px}}
.jobs{margin-top:36px;position:relative}
.job{position:relative;display:grid;gap:6px 28px;padding:0 0 34px;padding-inline-start:30px}
.job::before{content:"";position:absolute;inset-inline-start:0;top:9px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--teal)}
.job::after{content:"";position:absolute;inset-inline-start:5px;top:24px;bottom:4px;width:1px;background:var(--line)}
.job:first-child::before{background:var(--teal)}
.job:last-child::after{display:none}
@media (min-width:640px){.job{grid-template-columns:150px 1fr}}
.job__when{font:500 14px/1.6 var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
.job h3{font:400 23px/1.25 var(--display)}
:root[lang="ar"] .job h3{font-weight:600;font-size:21px}
.job__where{margin-top:4px;color:var(--muted)}
.job__where b{color:var(--ink);font-weight:600}
.job__pts{margin-top:10px;display:grid;gap:4px}
.job__pts li{position:relative;padding-inline-start:18px;font-size:16px}
.job__pts li::before{content:"";position:absolute;inset-inline-start:2px;top:.75em;width:6px;height:1.5px;background:var(--teal)}
.edu__t{margin-top:40px;font-size:clamp(28px,3vw,38px)}
.job--edu::before{border-radius:3px}
.skills{align-self:start;padding:34px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.skills h2{font-size:clamp(28px,3vw,36px)}
.skills__g{margin-top:26px}
.skills__g h3{font:600 12.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}
:root[lang="ar"] .skills__g h3{letter-spacing:0;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:7px 13px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:14.5px;line-height:1.3}
.langlist{display:grid;gap:8px}
.langlist li{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px dashed var(--line)}
.langlist span{color:var(--muted);font-size:15px}

/* contact */
.contact{background:var(--night);color:#fff}
.contact .sec__lead{color:rgba(255,255,255,.72)}
.contact__grid{display:grid;gap:44px;align-items:start}
@media (min-width:860px){.contact__grid{grid-template-columns:1fr 1fr;gap:80px}}
.contact__vcf{margin-top:30px;border-color:rgba(255,255,255,.5);color:#fff}
.contact__vcf:hover{background:#fff;color:#1C232C}
.contact__list{display:grid;gap:10px}
.contact__list a{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--r-sm);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);text-decoration:none;transition:background .2s,border-color .2s}
.contact__list a:hover{background:rgba(255,255,255,.1);border-color:var(--teal-hi)}
.contact__list .ic{width:24px;height:24px;color:var(--teal-hi)}
.contact__list span{display:grid;line-height:1.35;min-width:0}
.contact__list small{font-size:13px;color:rgba(255,255,255,.6)}
.contact__list b{font-weight:600;font-size:17px;overflow-wrap:anywhere}
:root[dir="rtl"] .contact__list b[dir="ltr"]{text-align:right}

/* footer */
.foot{background:var(--night);color:rgba(255,255,255,.62);border-top:1px solid rgba(255,255,255,.08);font-size:14px}
.foot__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding:26px 0}
.foot nav{display:flex;gap:20px}
.foot a{text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}

/* legal */
.legal__wrap{max-width:760px;padding:56px 0 90px}
.legal h1{font:400 clamp(36px,5vw,52px)/1.1 var(--display)}
.legal__note{margin-top:18px;padding:14px 18px;border-radius:var(--r-sm);background:var(--teal-soft);font-size:15px}
.legal__body{margin-top:28px}
.legal__body h2{font:600 21px/1.3 var(--sans);margin:34px 0 10px}
.legal__body p{margin-bottom:12px}
.legal mark{background:#FFE7A3;color:#1C232C;padding:0 3px;border-radius:3px}
.textlink{color:var(--teal);font-weight:600}

/* language suggestion */
.langhint{position:fixed;z-index:60;inset-inline:16px;bottom:16px;display:flex;justify-content:center;pointer-events:none}
.langhint__item{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 18px;border-radius:14px;background:var(--night);color:#fff;font-size:15px;border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);pointer-events:auto}
.langhint__item a{color:var(--teal-hi);font-weight:700}
.langhint__x{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.langhint__x .ic{width:16px;height:16px}

/* gentle reveal on scroll (only when JS runs and motion is welcome) */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .js .rv.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
