:root{--bg: #f7f1e8;--bg-deep: #efe6d9;--ink: #241f1b;--ink-soft: #6a5f55;--ink-faint: #9b8f81;--line: #e2d5c3;--line-soft: rgb(120 95 70 / .13);--accent: #a8761c;--accent-ink: #855a10;--accent-soft: #f4e3c0;--sage: #6d7450;--gold: #c99a3f;--glass: rgb(255 253 250 / .55);--glass-strong: rgb(255 253 250 / .78);--glass-line: rgb(255 255 255 / .65);--glass-edge: rgb(120 95 70 / .1);--blur: 22px;--sheen: linear-gradient(140deg, rgb(255 255 255 / .55), rgb(255 255 255 / 0) 46%);--font-display: "Newsreader", Georgia, "Times New Roman", serif;--font-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-ar-display: "Noto Naskh Arabic", "Segoe UI", serif;--font-ar-body: "Noto Naskh Arabic", "Segoe UI", system-ui, sans-serif;--radius-sm: 10px;--radius: 18px;--radius-lg: 28px;--shadow-sm: 0 1px 2px rgb(70 50 30 / .06);--shadow: 0 1px 1px rgb(70 50 30 / .04), 0 10px 24px -14px rgb(70 50 30 / .24), 0 30px 60px -40px rgb(70 50 30 / .35);--shadow-lg: 0 2px 4px rgb(60 40 20 / .05), 0 30px 70px -30px rgb(60 40 20 / .32);--ease: cubic-bezier(.22, 1, .36, 1);--gutter: clamp(20px, 5vw, 40px)}[data-theme=dark]{--bg: #15110e;--bg-deep: #0f0c0a;--ink: #f3ece2;--ink-soft: #ab9f90;--ink-faint: #7e7365;--line: #362d25;--line-soft: rgb(255 235 215 / .08);--accent: #e3b65f;--accent-ink: #f2cf8e;--accent-soft: #34280f;--sage: #a6ad86;--gold: #d9ab55;--glass: rgb(38 31 26 / .55);--glass-strong: rgb(44 36 30 / .8);--glass-line: rgb(255 240 225 / .12);--glass-edge: rgb(255 240 225 / .06);--sheen: linear-gradient(140deg, rgb(255 240 225 / .14), rgb(255 255 255 / 0) 46%);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow: 0 1px 1px rgb(0 0 0 / .3), 0 10px 24px -14px rgb(0 0 0 / .6), 0 30px 60px -40px rgb(0 0 0 / .8);--shadow-lg: 0 2px 4px rgb(0 0 0 / .4), 0 30px 70px -30px rgb(0 0 0 / .9)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-block-start:92px;background:var(--bg)}body{position:relative;min-height:100svh;color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;isolation:isolate}body:before{content:"";position:fixed;inset:-20vmax;z-index:-2;background:radial-gradient(38vmax 38vmax at 18% 8%,color-mix(in oklab,var(--accent) 26%,transparent),transparent 62%),radial-gradient(34vmax 34vmax at 84% 12%,color-mix(in oklab,var(--gold) 24%,transparent),transparent 60%),radial-gradient(44vmax 40vmax at 72% 82%,color-mix(in oklab,var(--sage) 24%,transparent),transparent 64%),radial-gradient(40vmax 40vmax at 8% 88%,color-mix(in oklab,var(--accent) 16%,transparent),transparent 60%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);filter:saturate(1.05);opacity:.55;pointer-events:none}[data-theme=dark] body:before{opacity:.42}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}[data-theme=dark] body:after{mix-blend-mode:screen;opacity:.035}:lang(ar) body,html[dir=rtl] body{font-family:var(--font-ar-body);line-height:1.85}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}::selection{background:color-mix(in oklab,var(--accent) 30%,transparent);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.05;letter-spacing:-.025em;text-wrap:balance}html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3{font-family:var(--font-ar-display);letter-spacing:0;line-height:1.45}.wrap{width:100%;max-width:1060px;margin-inline:auto;padding-inline:var(--gutter)}main{counter-reset:sec}.section{position:relative;padding-block:clamp(56px,8vw,92px);counter-increment:sec}.section+.section:before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:1px;background:linear-gradient(90deg,transparent,var(--line) 22%,var(--line) 78%,transparent)}.section-label{display:flex;align-items:center;gap:14px;font-size:.72rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--accent-ink);margin-block-end:clamp(26px,3.6vw,38px)}.section-label:before{content:counter(sec,decimal-leading-zero);font-family:var(--font-display);font-style:italic;font-size:1rem;letter-spacing:0;color:var(--ink-faint);padding-inline-end:2px}.section-label:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent 92%)}html[dir=rtl] .section-label{letter-spacing:0;font-size:.88rem}html[dir=rtl] .section-label:before{font-family:var(--font-ar-display);font-style:normal}html[dir=rtl] .section-label:after{background:linear-gradient(270deg,var(--line),transparent 92%)}.glass,.skill-card,.edu,.job,.contact-card,.share-card,.lang-list{position:relative;background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow);backdrop-filter:blur(var(--blur)) saturate(1.5);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.5)}.glass:before,.skill-card:before,.job:before,.contact-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--sheen);pointer-events:none;opacity:.9}.skill-card:after,.job:after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(150deg,var(--glass-line),transparent 30%,transparent 70%,var(--glass-edge));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.site-header{position:sticky;inset-block-start:0;z-index:40;background:color-mix(in srgb,var(--bg) 55%,transparent);border-block-end:1px solid transparent;transition:background .45s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease);backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6)}.site-header[data-stuck=true]{background:color-mix(in srgb,var(--bg) 72%,transparent);border-block-end-color:var(--line-soft);box-shadow:0 12px 30px -26px #3c281499}.header-inner{display:flex;align-items:center;gap:20px;min-height:68px;padding-block:12px}.brand{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:11px;align-items:center;min-width:0}.brand-mark{grid-row:1 / span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;font-family:var(--font-display);font-size:.95rem;letter-spacing:.02em;color:var(--accent-ink);background:linear-gradient(150deg,var(--accent-soft),color-mix(in oklab,var(--accent-soft) 40%,var(--bg)));border:1px solid var(--glass-line);box-shadow:inset 0 1px #ffffff80}[data-theme=dark] .brand-mark{color:var(--accent)}.brand-name{font-size:.9rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;white-space:nowrap}.brand-role{font-size:.72rem;color:var(--ink-faint);line-height:1.2;white-space:nowrap}.header-nav{display:flex;gap:26px;margin-inline-start:auto;font-size:.82rem;color:var(--ink-soft)}.header-nav a{position:relative;padding-block:6px;transition:color .25s var(--ease)}.header-nav a:after{content:"";position:absolute;inset-inline:0;inset-block-end:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:inline-start;transition:transform .35s var(--ease)}.header-nav a:hover{color:var(--ink)}.header-nav a:hover:after{transform:scaleX(1)}.header-tools{display:flex;align-items:center;gap:8px;margin-inline-start:auto}.header-nav+.header-tools{margin-inline-start:8px}.lang-switch{display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.lang-switch a{padding:4px 9px;border-radius:999px;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);transition:color .25s var(--ease),background .25s var(--ease)}.lang-switch a:hover{color:var(--ink)}.lang-switch a[aria-current=true]{color:var(--ink);background:var(--glass-strong);box-shadow:var(--shadow-sm)}html[dir=rtl] .lang-switch a{letter-spacing:0}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--ink-soft);border:1px solid transparent;transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}.icon-btn:hover{color:var(--ink);background:var(--glass);border-color:var(--glass-line);transform:translateY(-1px)}.icon-btn svg{width:19px;height:19px}.theme-sun{display:none}[data-theme=dark] .theme-sun{display:block}[data-theme=dark] .theme-moon{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 14px;border-radius:999px;font-size:.8rem;font-weight:500;letter-spacing:.005em;white-space:nowrap;cursor:pointer;background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow-sm),inset 0 1px #ffffff59;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow),inset 0 1px #ffffff73}.btn:active{transform:translateY(0)}.btn svg{width:15px;height:15px;flex:none}.btn-primary{color:#2c1e05;background:linear-gradient(160deg,#e6c073,#d3a049 52%,#bf8a2c);border-color:#fff0cdbf;box-shadow:0 1px 1px #78500a2e,0 10px 22px -12px #c896329e,inset 0 1px #ffffff8c}.btn-primary:hover{background:linear-gradient(160deg,#efcb81,#dbaa55 52%,#c8932f);box-shadow:0 1px 1px #78500a2e,0 16px 30px -14px #c89632b3,inset 0 1px #fff9}[data-theme=dark] .btn-primary{color:#241804;background:linear-gradient(160deg,#e9c47c,#d5a44e 55%,#c08c30)}.btn-ghost{background:transparent;border-color:var(--line);box-shadow:none;color:var(--ink-soft)}.btn-ghost:hover{color:var(--ink);background:var(--glass);border-color:var(--glass-line)}.hero{padding-block:clamp(40px,7vw,76px) 0}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr)}.hero-head{display:flex;align-items:center;justify-content:space-between;gap:clamp(14px,3vw,36px);margin-block-end:16px}.hero-head h1{margin-block-end:0;min-width:0}.hero-eyebrow{display:inline-flex;align-items:center;gap:9px;padding:5px 13px 5px 10px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-block-end:22px}.hero-eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px color-mix(in oklab,var(--sage) 22%,transparent)}html[dir=rtl] .hero-eyebrow{letter-spacing:0;font-size:.8rem}.hero h1{font-size:clamp(3rem,8.4vw,5.6rem);line-height:.94;letter-spacing:-.04em;margin-block-end:16px}.hero-role{font-family:var(--font-display);font-style:italic;font-size:clamp(1.2rem,2.6vw,1.6rem);color:var(--accent);margin-block-end:18px}html[dir=rtl] .hero-role{font-family:var(--font-ar-display);font-style:normal}.hero-tagline{max-width:44ch;font-size:1.02rem;color:var(--ink-soft);text-wrap:pretty;margin-block-end:30px}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:8px}.portrait{position:relative;width:clamp(112px,15vw,176px);aspect-ratio:1;padding:7px;border-radius:24%;flex:none;background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow),inset 0 1px #ffffff80;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);margin-block-start:0;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}.portrait:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),inset 0 1px #fff9}.portrait img,.portrait svg{width:100%;height:100%;border-radius:20%;object-fit:cover}.portrait-placeholder{background:linear-gradient(160deg,var(--accent-soft),color-mix(in oklab,var(--gold) 30%,var(--bg)))}.tangier{position:relative;margin-block-start:clamp(34px,5vw,54px);border-radius:var(--radius-lg) var(--radius-lg) 6px 6px;overflow:hidden;border:1px solid var(--glass-line);box-shadow:var(--shadow-lg)}.tangier svg{width:100%;height:auto;display:block}.tangier-caption{position:absolute;inset-block-end:0;inset-inline-start:0;padding:8px 16px;font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#fdf6ee;background:#281c1452;border-start-end-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}html[dir=rtl] .tangier-caption{letter-spacing:0;font-size:.8rem}.timeline{display:grid;gap:clamp(16px,2vw,22px)}.job{border-radius:var(--radius-lg);padding:clamp(22px,3.4vw,38px);overflow:hidden}.job-period{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin-block-end:12px}html[dir=rtl] .job-period{letter-spacing:0;font-size:.82rem}.job-role{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-block-end:4px}.job-org{font-size:.95rem;color:var(--ink-soft);margin-block-end:24px;padding-block-end:22px;border-block-end:1px solid var(--line-soft)}.job-points{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 32px;font-size:.94rem;color:var(--ink-soft)}.job-points li{position:relative;padding-inline-start:20px;text-wrap:pretty}.job-points li:before{content:"";position:absolute;inset-inline-start:0;inset-block-start:.72em;width:8px;height:1px;background:var(--accent);opacity:.65}.edu-list{display:grid;gap:12px}.edu{display:grid;grid-template-columns:130px 1fr;align-items:baseline;gap:18px;padding:18px 22px;border-radius:var(--radius)}.edu-period{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}html[dir=rtl] .edu-period{letter-spacing:0;font-size:.82rem}.edu-title{font-size:1rem;font-weight:500;text-wrap:pretty}.skill-grid{display:grid;gap:clamp(14px,2vw,22px)}.skill-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(12px,1.8vw,18px);align-items:stretch}.skill-row:nth-child(2n){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.skill-row:nth-child(2n) .skill-card{order:2}.skill-row:nth-child(2n) .skill-media{order:1}.skill-media{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--glass-line);box-shadow:var(--shadow);background:var(--bg-deep);min-height:190px}.skill-media img,.skill-media svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}.skill-row:hover .skill-media img,.skill-row:hover .skill-media svg{transform:scale(1.035)}.skill-card{border-radius:var(--radius);padding:22px 22px 20px;overflow:hidden;background:var(--glass-strong);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}.skill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.skill-title{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-block-end:14px}html[dir=rtl] .skill-title{letter-spacing:0;font-size:.85rem}.skill-items{list-style:none;padding:0;font-size:.9rem;color:var(--ink-soft)}.skill-items li{padding-block:6px;border-block-end:1px dotted var(--line-soft);display:flex;gap:9px;align-items:center}.skill-items li:last-child{border-block-end:0}.ic{width:16px;height:16px;flex:none;opacity:.92}.skill-items li span{min-width:0;overflow-wrap:anywhere}.lang-list{border-radius:var(--radius-lg);padding:clamp(6px,1.2vw,10px) clamp(18px,3vw,26px);display:grid}.lang-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:clamp(12px,3vw,28px);padding-block:16px}.lang-row+.lang-row{border-block-start:1px solid var(--line-soft)}.lang-name{font-family:var(--font-display);font-size:1.18rem;letter-spacing:-.01em}html[dir=rtl] .lang-name{font-family:var(--font-ar-display)}.lang-level{font-size:.85rem;color:var(--ink-faint);text-align:end}.dots{display:flex;gap:5px}.dot{width:7px;height:7px;border-radius:50%;background:var(--line)}.dot.on{background:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{padding:7px 15px;border-radius:999px;font-size:.84rem;color:var(--ink-soft);background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow-sm),inset 0 1px #ffffff4d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);margin-inline-end:9px}.chip:hover{translate:0 -2px;color:var(--ink);border-color:color-mix(in oklab,var(--accent) 35%,transparent)}.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%)}.marquee-track{display:flex;width:max-content;animation:marquee 46s linear infinite}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}html[dir=rtl] .marquee-track{animation-direction:reverse}.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}.contact-card{border-radius:var(--radius-lg);padding:clamp(26px,4vw,46px);overflow:hidden;text-align:center}.contact-phone{display:block;text-align:center;margin-block-start:30px;font-family:var(--font-display);font-size:clamp(1.9rem,5.2vw,3.1rem);letter-spacing:-.03em;line-height:1.1;margin-block-end:0;transition:color .3s var(--ease)}.phone-block{display:grid;justify-items:center;align-content:center;gap:12px;min-height:100px;margin-block-end:24px}.action-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px;padding:6px;width:fit-content;max-width:100%;margin-inline:auto;border-radius:999px;background:var(--glass-strong);border:1px solid var(--glass-line);box-shadow:var(--shadow);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5)}.action{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;font-size:.83rem;font-weight:500;color:var(--ink-soft);white-space:nowrap;transition:background .25s var(--ease),color .25s var(--ease)}.action svg{width:16px;height:16px;flex:none}.action:hover{color:var(--ink);background:color-mix(in oklab,var(--ink) 6%,transparent)}.action-primary{color:#2c1e05;background:linear-gradient(160deg,#e6c073,#d3a049 52%,#bf8a2c);box-shadow:0 8px 18px -12px #c89632bf,inset 0 1px #ffffff80}.action-primary:hover{color:#241804;background:linear-gradient(160deg,#efcb81,#dbaa55 52%,#c8932f)}[data-theme=dark] .action-primary{color:#241804}.action-sep{width:1px;height:18px;flex:none;background:var(--line);opacity:.85}.contact-phone:hover{color:var(--accent)}html[dir=rtl] .contact-phone{font-family:var(--font-ar-body);letter-spacing:0;font-size:clamp(1.6rem,4.4vw,2.5rem)}.contact-actions{justify-content:center}.site-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:34px 44px;margin-block-start:20px;font-size:.78rem;color:var(--ink-faint);border-block-start:1px solid var(--line-soft)}.share-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:#1e140c59;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}.share-overlay[data-open=true]{opacity:1;pointer-events:auto}.share-card{width:min(430px,100%);max-height:calc(100svh - 40px);overflow-y:auto;padding:26px;border-radius:var(--radius-lg);background:var(--glass-strong);transform:translateY(14px) scale(.985);transition:transform .45s var(--ease)}.share-overlay[data-open=true] .share-card{transform:none}.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.share-title{font-size:1.35rem}.share-hint{margin-block:6px 20px;font-size:.85rem;color:var(--ink-soft)}.qr-box{display:grid;place-items:center;padding:16px;margin-block-end:18px;background:#fff;border-radius:var(--radius);border:1px solid var(--line)}.qr-box svg{width:min(200px,56vw);height:auto}.link-field{display:flex;gap:8px;margin-block-end:16px}.link-field input{flex:1;min-width:0;padding:10px 13px;font:inherit;font-size:.82rem;color:var(--ink-soft);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--radius-sm);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.copy-btn{padding:10px 16px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;border:1px solid var(--glass-line);background:var(--glass);transition:background .25s var(--ease),color .25s var(--ease)}.copy-btn:hover{background:var(--glass-strong)}.copy-btn[data-done=true]{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 40%,transparent)}.share-actions{display:flex;flex-wrap:wrap;gap:8px}.share-actions .btn{font-size:.8rem;padding:9px 14px}.reveal{opacity:0;transform:translateY(22px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);transition-delay:calc(var(--i, 0) * 70ms)}.reveal.is-in{opacity:1;transform:none;filter:none}.cover{position:relative;width:calc(100% + 2 * var(--gutter));margin-inline:calc(-1 * var(--gutter))}@media(min-width:1141px){.cover{width:100vw;margin-inline:calc(50% - 50vw)}}.tangier-cover{margin-block-start:0;height:clamp(190px,34vh,420px);border:0;border-radius:0;box-shadow:none}.tangier-cover svg{width:100%;height:100%}.cover:after{content:"";position:absolute;inset-inline:0;inset-block-end:0;height:46%;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none}.cover .tangier-caption{z-index:2;inset-block-end:clamp(14px,3vw,26px);inset-inline-start:max(var(--gutter),calc(50vw - 530px))}.job,.skill-card,.edu,.work-item{display:block;color:inherit}.job,.skill-card{padding-block-end:46px}.card-go{position:absolute;inset-block-end:16px;inset-inline-end:18px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--ink-soft);background:var(--glass-strong);border:1px solid var(--glass-line);opacity:0;transform:translateY(5px);transition:opacity .4s var(--ease),transform .4s var(--ease),color .4s var(--ease);pointer-events:none}.card-go svg{width:15px;height:15px}.job:hover .card-go,.job:focus-visible .card-go,.skill-card:hover .card-go,.skill-card:focus-visible .card-go{opacity:1;transform:none;color:var(--accent)}html[dir=rtl] .card-go svg,html[dir=rtl] .work-arrow svg{transform:scaleX(-1)}.edu{transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}.edu:hover{transform:translateY(-2px);border-color:color-mix(in oklab,var(--accent) 30%,transparent);box-shadow:var(--shadow-lg)}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,18px)}.work-item{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow);backdrop-filter:blur(var(--blur)) saturate(1.5);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}.work-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.work-item:first-child{grid-column:1 / -1}.work-media{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-deep)}.work-item:first-child .work-media{aspect-ratio:16 / 7}.work-media img,.work-media .work-placeholder{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.work-item:hover .work-media img,.work-item:hover .work-media .work-placeholder{transform:scale(1.035)}.work-arrow{position:absolute;inset-block-start:12px;inset-inline-end:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--ink);background:#ffffffd1;border:1px solid rgb(255 255 255 / .6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transform:translateY(-5px);transition:opacity .4s var(--ease),transform .4s var(--ease)}.work-arrow svg{width:15px;height:15px}.work-item:hover .work-arrow,.work-item:focus-visible .work-arrow{opacity:1;transform:none}.work-body{padding:15px 18px 18px}.work-body h3{font-size:1.12rem;margin-block-end:5px}.work-body p{font-size:.86rem;color:var(--ink-soft);text-wrap:pretty}.image-slot{position:relative;width:100%;height:100%;aspect-ratio:var(--slot-ratio, auto);overflow:hidden}.image-slot img,.image-slot svg{width:100%;height:100%;object-fit:cover;display:block}.scroll-progress{position:fixed;inset-block-start:0;inset-inline:0;height:2px;z-index:60;pointer-events:none}.scroll-progress span{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--accent);transition:transform .12s linear}html[dir=rtl] .scroll-progress span{transform-origin:100% 50%}@media(max-width:900px){.header-nav{display:none}.header-tools{margin-inline-start:auto}}@media(max-width:780px){.hero-grid{grid-template-columns:minmax(0,1fr)}.portrait{width:clamp(88px,24vw,118px)}.hero-head{gap:14px}.edu{grid-template-columns:1fr;gap:4px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.work-item:first-child{grid-column:1 / -1}.work-body{padding:9px 11px 11px}.work-body h3{font-size:.82rem}.work-body p{font-size:.68rem;line-height:1.4}.skill-row{grid-template-columns:minmax(0,1fr) 96px;gap:11px;align-items:start}.skill-row:nth-child(2n){grid-template-columns:96px minmax(0,1fr)}.skill-row:nth-child(2n) .skill-card{order:2}.skill-row:nth-child(2n) .skill-media{order:1}.skill-media{width:96px;aspect-ratio:1;min-height:0;border-radius:18px;align-self:start}.skill-card{padding:15px 15px 34px;border-radius:16px}.skill-title{font-size:.66rem;letter-spacing:.12em;margin-block-end:8px}.skill-items{font-size:.84rem;line-height:1.5}.skill-items li{padding-block:5px;gap:8px}.ic{width:14px;height:14px}.card-go{inset-block-end:10px;inset-inline-end:10px;width:24px;height:24px}.section{padding-block:clamp(42px,7vw,64px)}.job{padding:20px 18px}.job-points{font-size:.9rem}.lang-row{grid-template-columns:1fr auto}.dots{grid-column:1 / -1}}@media(max-width:460px){.brand-name,.brand-role{display:none}}@media(max-width:520px){.action-bar{width:100%;border-radius:24px;gap:4px;padding:7px}.action{flex:1 1 44%;justify-content:center;padding:11px 8px;font-size:.78rem}.action-sep{display:none}.skill-row{grid-template-columns:minmax(0,1fr) 84px}.skill-row:nth-child(2n){grid-template-columns:84px minmax(0,1fr)}.skill-media{width:84px}.skill-card{padding:14px 13px 32px}.skill-title{font-size:.64rem;letter-spacing:.1em}.skill-items{font-size:.82rem}.skill-items li{padding-block:4px}.header-inner{gap:10px;min-height:60px}.header-tools{gap:2px}.lang-switch{padding:2px}.lang-switch a{padding:4px 7px;font-size:.64rem}.icon-btn{width:40px;height:40px}.link-field input{font-size:16px}html{scroll-padding-block-start:72px}.btn{min-height:38px}.chips{gap:7px}.chip{padding:6px 12px;font-size:.8rem}.hero h1{font-size:clamp(2.6rem,12vw,3.6rem)}.hero-tagline{font-size:.96rem}.portrait{max-width:190px}.contact-card{padding:22px 16px}.contact-phone{font-size:clamp(1.5rem,7.5vw,2rem)}.site-footer{padding-block:26px 34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;filter:none;transition:none}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:380px){.portrait{width:72px;padding:4px}.hero h1{font-size:clamp(2.1rem,10.5vw,2.5rem)}.hero-head{gap:10px}}@media print{@page{margin:12mm}body{background:#fff;color:#000;font-size:10.5pt;line-height:1.5}body:before,body:after{display:none}.site-header,.site-footer,.hero-actions,.contact-actions,.tangier,.share-overlay,.chip:hover,.action-bar{display:none!important}.wrap{max-width:none;padding:0}.hero{padding-block:0 10pt}.hero-grid{grid-template-columns:1fr;gap:0}.portrait{width:26mm;max-width:none;transform:none;padding:1mm;border-radius:4mm;box-shadow:none;border:0;background:none}.portrait img,.portrait svg{border-radius:3mm}.hero h1{font-size:26pt}.hero-role{font-size:12pt;color:#000}.hero-tagline{color:#333;margin-block-end:10pt}.section{padding-block:9pt}.section-label{color:#000;margin-block-end:7pt}.section-label:before{color:#666}.section+.section:before{background:#ccc}.job,.edu,.skill-card,.lang-list,.contact-card,.chip{background:#fff!important;border:1px solid #d8d8d8!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;break-inside:avoid}.job:before,.job:after,.skill-card:before,.skill-card:after,.contact-card:before{display:none}.job{padding:10pt 12pt}.job-points{font-size:9.5pt;gap:2pt 14pt}.job-points li:before{background:#000}.job-org{margin-block-end:8pt;padding-block-end:6pt}.skill-grid{gap:6pt}.scroll-progress,.skill-media{display:none}.skill-row{grid-template-columns:1fr}.skill-card{padding:8pt 10pt}.lang-list{padding:2pt 12pt}.lang-row{padding-block:5pt}.dot{background:#ddd}.dot.on{background:#000}.chip{padding:2pt 8pt;font-size:8.5pt}.cover{display:none}.work-placeholder,.work-arrow,.card-go{display:none!important}.gallery{grid-template-columns:repeat(3,1fr);gap:7pt}.work-body{padding:6pt 8pt}.contact-card{padding:12pt;text-align:start}.phone-block{min-height:0;margin-block-end:6pt;justify-items:start}[data-phone-show]{display:none!important}.contact-phone[hidden]{display:block!important}.contact-phone{font-size:16pt;margin-block-end:4pt}.reveal{opacity:1!important;transform:none!important;filter:none!important}a{text-decoration:none}}
