@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.ttf)format("truetype");font-style:normal;font-weight:100 900;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#090b10;--surface:#141821;--surface-elevated:#1a1f29;--surface-hover:#202632;--header:#090b10db;--text:#f7f8fa;--soft:#d6dae1;--muted:#aeb6c2;--faint:#788290;--line:#ffffff1b;--line-strong:#ffffff36;--accent:#8ee6c0;--accent-soft:#8ee6c01c;--accent-text:#07110c;--container:1120px;--gutter:44px;--scroll-progress:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f6f4;--surface:#fff;--surface-elevated:#f1f3f0;--surface-hover:#e9ece8;--header:#f5f6f4e6;--text:#111419;--soft:#30353c;--muted:#5f6670;--faint:#858c95;--line:#1114191b;--line-strong:#11141933;--accent:#17684e;--accent-soft:#17684e17;--accent-text:#fff}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--faint) var(--background);min-width:320px;scroll-padding-top:92px}body{background:radial-gradient(circle at 87% 3%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 29%), var(--background);min-width:320px;color:var(--text);margin:0;font-size:16px;line-height:1.65;transition:background-color .22s,color .22s;overflow-x:hidden}body.menu-open{overflow:hidden}html[dir=rtl] body{font-family:Vazirmatn,Tahoma,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent;color:inherit}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--accent-text)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:4px}.container{width:min(calc(100% - var(--gutter)), var(--container));margin-inline:auto}.scroll-progress{z-index:1000;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0;overflow:hidden}.scroll-progress:after{content:"";background:var(--accent);width:100%;height:100%;transform:scaleX(var(--scroll-progress));transform-origin:0;will-change:transform;display:block}html[dir=rtl] .scroll-progress:after{transform-origin:100%}.skip-link{top:12px;z-index:1100;background:var(--accent);color:var(--accent-text);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:800;text-decoration:none;position:fixed;inset-inline-start:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:100;border-bottom:1px solid var(--line);background:var(--header);-webkit-backdrop-filter:blur(20px)saturate(1.15);height:76px;position:fixed;top:0;left:0;right:0}.header-inner{align-items:center;gap:30px;height:100%;display:flex;position:relative}.brand{flex-shrink:0;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--line-strong);background:var(--surface);width:40px;height:40px;color:var(--accent);border-radius:12px;place-items:center;font-size:12px;font-weight:900;transition:transform .22s,border-color .22s,background-color .22s;display:grid}.brand:hover .brand-mark{border-color:var(--accent);background:var(--surface-elevated);transform:rotate(-5deg)translateY(-1px)}.brand-copy{flex-direction:column;line-height:1.15;display:flex}.brand-copy strong{font-size:14px}.brand-copy small{color:var(--muted);margin-top:5px;font-size:10px;font-weight:600}.navigation{align-items:center;gap:28px;margin-inline:auto;display:flex}.navigation a{color:var(--muted);padding:12px 0;font-size:12px;font-weight:750;text-decoration:none;transition:color .18s;position:relative}.navigation a:after{content:"";background:var(--accent);transform-origin:100%;border-radius:999px;height:1px;transition:transform .22s;position:absolute;bottom:6px;left:0;right:0;transform:scaleX(0)}.navigation a:hover,.navigation a.is-active{color:var(--text)}.navigation a:hover:after,.navigation a.is-active:after{transform-origin:0;transform:scaleX(1)}html[dir=rtl] .navigation a:after{transform-origin:0}html[dir=rtl] .navigation a:hover:after,html[dir=rtl] .navigation a.is-active:after{transform-origin:100%}.header-controls{align-items:center;gap:8px;display:flex}.control-button,.menu-button{border:1px solid var(--line);background:var(--surface);min-width:42px;height:42px;color:var(--muted);cursor:pointer;border-radius:12px;place-items:center;padding:0 11px;font-size:11px;font-weight:850;transition:color .18s,border-color .18s,background-color .18s,transform .18s;display:grid}.control-button:hover,.menu-button:hover{border-color:var(--line-strong);background:var(--surface-hover);color:var(--text);transform:translateY(-2px)}.theme-symbol{border-radius:50%;width:16px;height:16px;display:block;position:relative}:root[data-theme=dark] .theme-symbol{box-shadow:-5px -3px 0 -3px var(--surface);border:2px solid}:root[data-theme=light] .theme-symbol{background:currentColor;box-shadow:0 -7px 0 -6px,0 7px 0 -6px,7px 0 0 -6px,-7px 0 0 -6px}.menu-button{padding:0;display:none;position:relative}.menu-button span{background:currentColor;border-radius:99px;width:17px;height:1.5px;transition:transform .19s;position:absolute}.menu-button span:first-child{transform:translateY(-3px)}.menu-button span:last-child{transform:translateY(3px)}.menu-button[aria-expanded=true] span:first-child{transform:rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:rotate(-45deg)}.hero{grid-template-columns:minmax(0,1.15fr) minmax(330px,.72fr);align-items:center;gap:clamp(70px,11vw,145px);min-height:100svh;padding-top:140px;padding-bottom:90px;display:grid}.hero-title{max-width:730px}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 16px;font-size:11px;font-weight:850}html[dir=rtl] .eyebrow{letter-spacing:0}.hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(66px,8.4vw,116px);line-height:.9}html[dir=rtl] .hero h1{letter-spacing:-.035em;font-size:clamp(59px,7.8vw,105px);line-height:1.05}.hero h2{color:var(--soft);letter-spacing:-.035em;margin:21px 0 0;font-size:clamp(23px,2.5vw,32px);font-weight:500}html[dir=rtl] .hero h2{letter-spacing:0}.hero-details{border-top:1px solid var(--line-strong);padding-top:34px}.hero-statement{max-width:500px;color:var(--muted);margin:0;font-size:clamp(18px,1.65vw,21px);line-height:1.8}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:31px;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:13px;min-height:51px;padding:0 20px;font-size:13px;font-weight:820;text-decoration:none;transition:transform .2s,background-color .2s,border-color .2s,box-shadow .2s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-3px)}.button-primary{background:var(--accent);color:var(--accent-text);box-shadow:0 14px 34px color-mix(in srgb, var(--accent) 17%, transparent)}.button-secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.button-secondary:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-hover)}.button i,.floating-resume i{font-style:normal}.is-disabled{cursor:not-allowed;opacity:.48}.hero-meta{color:var(--faint);flex-wrap:wrap;gap:10px 22px;margin-top:25px;font-size:12px;font-weight:650;display:flex}.hero-meta span:first-child{align-items:center;gap:9px;display:inline-flex}.hero-meta i{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 11%, transparent);border-radius:50%}.section{border-top:1px solid var(--line);padding-top:112px;padding-bottom:112px}.section-heading{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:46px;display:flex}.section-heading h2,.contact-copy h2{letter-spacing:-.058em;margin:0;font-size:clamp(43px,5.2vw,68px);line-height:1}html[dir=rtl] .section-heading h2,html[dir=rtl] .contact-copy h2{letter-spacing:-.025em;line-height:1.2}.section-heading>span{color:var(--faint);font-size:11px;font-weight:800}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);isolation:isolate;border-radius:21px;min-height:355px;text-decoration:none;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .22s,box-shadow .3s;position:relative;overflow:hidden}.project-featured{grid-column:1/-1;min-height:490px}.project-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line-strong));transform:translateY(-7px);box-shadow:0 30px 85px #00000047}.project-card>img{z-index:-2;object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1),filter .4s;position:absolute;inset:0}.project-card:hover>img{filter:saturate(1.08)contrast(1.03);transform:scale(1.045)}.project-overlay{z-index:-1;background:linear-gradient(#0506080a 10%,#05060847 52%,#050608f5 100%);position:absolute;inset:0}.project-content{color:#fff;justify-content:space-between;align-items:flex-end;gap:22px;transition:transform .35s;display:flex;position:absolute;bottom:26px;left:28px;right:28px}.project-card:hover .project-content{transform:translateY(-4px)}.project-content p{color:#9ce9c8;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:850}html[dir=rtl] .project-content p{letter-spacing:0}.project-content h3{letter-spacing:-.052em;margin:0;font-size:clamp(32px,3.8vw,49px);line-height:1}html[dir=rtl] .project-content h3{letter-spacing:-.02em;line-height:1.25}.project-content>i{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070a75;border:1px solid #ffffff45;border-radius:50%;flex-shrink:0;place-items:center;width:47px;height:47px;font-size:16px;font-style:normal;transition:transform .3s,background-color .3s;display:grid}.project-card:hover .project-content>i{background:#ffffff1f;transform:translate(3px,-3px)rotate(7deg)}html[dir=rtl] .project-card:hover .project-content>i{transform:translate(-3px,-3px)rotate(-7deg)}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(175px,.52fr) minmax(0,1.48fr) auto;align-items:center;gap:38px;min-height:112px;padding:0 10px;transition:background-color .22s,padding .26s;display:grid}.experience-item:hover{background:var(--accent-soft);padding-inline:20px}.experience-item>span{color:var(--faint);font-size:11px;font-weight:800}.experience-item h3{color:var(--text);margin:0;font-size:20px}.experience-item p{color:var(--muted);margin:5px 0 0;font-size:13px}.experience-item>i{background:var(--line-strong);border-radius:50%;width:7px;height:7px;transition:transform .22s,background-color .22s}.experience-item:hover>i{background:var(--accent);transform:scale(1.45)}.education-card{border:1px solid var(--line);background:var(--surface);border-radius:21px;grid-template-columns:minmax(175px,.52fr) minmax(0,1.48fr) auto;align-items:center;gap:38px;margin-top:42px;padding:29px 31px;transition:transform .24s,border-color .24s,background-color .24s;display:grid}.education-card:hover{border-color:var(--line-strong);background:var(--surface-elevated);transform:translateY(-4px)}.education-card>span{color:var(--faint);font-size:11px;font-weight:800}.education-card h3{margin:0;font-size:21px}.education-card p{color:var(--muted);margin:5px 0 0;font-size:13px}.education-card strong{color:var(--muted);font-size:12px}.skills{flex-wrap:wrap;gap:10px;display:flex}.skills span{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:11px 16px;font-size:12px;font-weight:720;transition:color .2s,border-color .2s,background-color .2s,transform .2s}.skills span:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line-strong));background:var(--accent-soft);color:var(--text);transform:translateY(-3px)}.contact-section{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:clamp(60px,9vw,118px);padding-top:112px;padding-bottom:112px;display:grid}.contact-copy>p:last-child{max-width:540px;color:var(--muted);margin:24px 0 0;font-size:16px}.contact-links{border-top:1px solid var(--line)}.contact-links a{border-bottom:1px solid var(--line);grid-template-columns:.68fr 1fr auto;align-items:center;gap:18px;min-height:72px;padding-inline:4px;text-decoration:none;transition:padding .23s,background-color .23s;display:grid}.contact-links a:hover{background:var(--accent-soft);padding-inline:14px}.contact-links span{color:var(--faint);font-size:10px;font-weight:850}.contact-links strong{color:var(--soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:760;transition:color .18s;overflow:hidden}.contact-links a:hover strong{color:var(--accent)}.contact-links i{color:var(--muted);font-size:15px;font-style:normal;transition:transform .22s}.contact-links a:hover i{transform:translate(3px,-3px)}html[dir=rtl] .contact-links a:hover i{transform:translate(-3px,-3px)}.phone-number{text-align:left;font-variant-numeric:tabular-nums;letter-spacing:.015em;direction:ltr;unicode-bidi:isolate;justify-self:start;display:inline-block}html[dir=rtl] .phone-number{text-align:left;direction:ltr;unicode-bidi:isolate;justify-self:start}.floating-resume{z-index:90;border:1px solid var(--line-strong);background:var(--accent);min-height:49px;color:var(--accent-text);writing-mode:vertical-rl;cursor:pointer;box-shadow:0 18px 48px color-mix(in srgb, var(--accent) 16%, transparent);border-right:0;border-radius:15px 0 0 15px;align-items:center;gap:11px;padding:15px 11px;font-size:10px;font-weight:850;text-decoration:none;display:inline-flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}html[dir=rtl] .floating-resume{border-right:1px solid var(--line-strong);border-left:0;border-radius:0 15px 15px 0;left:0;right:auto}footer{padding:35px 0 calc(35px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.footer-inner{grid-template-columns:1fr auto auto;align-items:center;gap:38px;display:grid}.footer-inner strong{font-size:12px}.footer-inner>span{color:var(--muted);font-size:11px}.footer-inner a{border:1px solid var(--line);width:38px;height:38px;color:var(--muted);border-radius:50%;place-items:center;font-size:14px;text-decoration:none;display:grid}[data-reveal]{opacity:0;filter:blur(7px);transition:opacity .76s cubic-bezier(.16,1,.3,1),filter .76s cubic-bezier(.16,1,.3,1),transform .76s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);transform:translateY(34px)}[data-reveal=left]{transform:translate(-36px)}[data-reveal=right],html[dir=rtl] [data-reveal=left]{transform:translate(36px)}html[dir=rtl] [data-reveal=right]{transform:translate(-36px)}[data-reveal=card]{transform:translateY(42px)scale(.985)}[data-reveal=skill]{transform:translateY(18px)scale(.96)}[data-reveal].is-visible{opacity:1;filter:blur();transform:translate(0,0)scale(1)}@media (width<=900px){:root{--gutter:36px}.menu-button{display:grid}.navigation{border:1px solid var(--line);background:var(--surface);opacity:0;visibility:hidden;border-radius:17px;gap:4px;margin:0;padding:9px;transition:opacity .19s,visibility .19s,transform .19s;display:grid;position:absolute;top:calc(100% + 10px);left:0;right:0;transform:translateY(-10px);box-shadow:0 28px 75px #0000004d}.navigation.is-open{opacity:1;visibility:visible;transform:translateY(0)}.navigation a{border-radius:11px;align-items:center;min-height:49px;padding:0 14px;font-size:13px;display:flex}.navigation a:after{display:none}.navigation a:hover,.navigation a.is-active{background:var(--surface-hover)}.header-controls{margin-inline-start:auto}.hero{grid-template-columns:1fr;gap:55px;min-height:auto;padding-top:135px}.hero-details{max-width:680px}.contact-section{grid-template-columns:1fr}}@media (width<=640px){:root{--gutter:28px}html{scroll-padding-top:78px}.site-header{height:68px}.brand-copy small{display:none}.hero{gap:42px;padding-top:112px;padding-bottom:72px}.hero h1,html[dir=rtl] .hero h1{font-size:clamp(51px,15vw,74px)}.hero h2{font-size:21px}.hero-details{padding-top:27px}.hero-statement{font-size:16px}.hero-actions{grid-template-columns:1fr;display:grid}.button{width:100%;min-height:52px}.section,.contact-section{padding-top:86px;padding-bottom:86px}.section-heading>span{display:none}.section-heading h2,.contact-copy h2{font-size:clamp(39px,11.5vw,54px)}.projects{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-card,.project-featured{min-height:345px}.experience-item{grid-template-columns:1fr auto;gap:10px 18px;min-height:auto;padding:25px 5px}.experience-item>span,.experience-item>div{grid-column:1}.experience-item>i{grid-area:1/2/3}.education-card{grid-template-columns:1fr;gap:15px;padding:24px}.floating-resume,html[dir=rtl] .floating-resume{top:auto;right:auto;bottom:calc(16px + env(safe-area-inset-bottom));border:1px solid var(--line-strong);writing-mode:horizontal-tb;white-space:nowrap;border-radius:999px;min-height:47px;padding:0 19px;font-size:11px;left:50%;transform:translate(-50%)}.footer-inner{grid-template-columns:1fr auto}.footer-inner>span{grid-area:2/1/auto/-1}[data-reveal=left],[data-reveal=right],html[dir=rtl] [data-reveal=left],html[dir=rtl] [data-reveal=right]{transform:translateY(30px)}}@media (width<=400px){:root{--gutter:22px}.brand-copy{display:none}.project-card,.project-featured{min-height:310px}.contact-links a{grid-template-columns:1fr auto;gap:5px 14px;padding:13px 4px}.contact-links span,.contact-links strong{grid-column:1}.contact-links i{grid-area:1/2/3}}@media (hover:none){.project-card:hover,.button:hover:not(:disabled),.skills span:hover,.education-card:hover,.control-button:hover,.project-card:hover>img{transform:none}.experience-item:hover{padding-inline:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;filter:none;transform:none}}body.dialog-open{overflow:hidden}html[dir=rtl] body{font-weight:500}html[dir=rtl] .hero-statement,html[dir=rtl] .project-summary,html[dir=rtl] .project-dialog-description,html[dir=rtl] .project-dialog-contribution p,html[dir=rtl] .contact-copy>p:last-child{font-weight:550}html[dir=rtl] .project-title>strong,html[dir=rtl] .project-dialog-header h2,html[dir=rtl] .experience-item h3,html[dir=rtl] .education-card h3{font-weight:800}html[dir=rtl] .button,html[dir=rtl] .navigation a,html[dir=rtl] .resume-options a,html[dir=rtl] .skills span{font-weight:700}.project-card{cursor:default}.project-card:last-child{grid-column:1/-1;min-height:405px}.project-card-trigger{z-index:2;width:100%;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.project-card-trigger:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 72%, transparent);outline-offset:-6px;border-radius:21px}.project-visual{z-index:-2;background:radial-gradient(circle at 78% 18%,#8ee6c038,#0000 28%),linear-gradient(135deg,#111720 0%,#18232d 46%,#0a0d12 100%);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.project-visual:before,.project-visual:after{content:"";border:1px solid #ffffff14;border-radius:50%;position:absolute}.project-visual:before{width:390px;height:390px;top:-185px;right:-115px}.project-visual:after{width:250px;height:250px;bottom:-145px;left:-65px}.project-visual>span{color:#ffffff13;letter-spacing:-.09em;font-size:clamp(115px,20vw,220px);font-weight:900;transition:transform .8s cubic-bezier(.16,1,.3,1),color .4s;transform:translateY(-7%)}.project-card:hover .project-visual>span,.project-card:focus-within .project-visual>span{color:#8ee6c01f;transform:translateY(-7%)scale(1.035)}.project-visual-medical-database{background:radial-gradient(circle at 76% 22%,#75b1ff38,#0000 30%),linear-gradient(135deg,#101721,#172336 50%,#090c12)}.project-visual-innovation-center{background:radial-gradient(circle at 78% 18%,#e7af6c38,#0000 29%),linear-gradient(135deg,#19150f,#282016 50%,#0d0b08)}.project-visual-agriculture-ai{background:radial-gradient(circle at 78% 18%,#8ee6c042,#0000 31%),linear-gradient(135deg,#0c1713,#142820 50%,#080d0b)}.project-content{z-index:3;pointer-events:none;grid-template-columns:minmax(0,1fr);gap:14px;padding-inline-end:67px;display:grid}.project-title{display:block}.project-title>span{color:#9ce9c8;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:850;display:block}html[dir=rtl] .project-title>span{letter-spacing:0}.project-title>strong{letter-spacing:-.052em;font-size:clamp(30px,3.5vw,48px);line-height:1.05;display:block}html[dir=rtl] .project-title>strong{letter-spacing:-.02em;line-height:1.32}.project-preview{opacity:0;gap:12px;max-width:720px;max-height:0;transition:max-height .36s cubic-bezier(.16,1,.3,1),opacity .26s,transform .36s cubic-bezier(.16,1,.3,1);display:grid;overflow:hidden;transform:translateY(12px)}.project-card:hover .project-preview,.project-card:focus-within .project-preview{opacity:1;max-height:150px;transform:translateY(0)}.project-summary{color:#ffffffd6;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:690px;font-size:13px;line-height:1.75;display:-webkit-box;overflow:hidden}.project-technologies{flex-wrap:wrap;gap:6px;display:flex}.project-technologies>span{color:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07090c70;border:1px solid #ffffff2b;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:750}.project-external{inset-inline-end:25px;z-index:5;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070a85;border:1px solid #ffffff45;border-radius:50%;place-items:center;width:47px;height:47px;font-size:16px;text-decoration:none;transition:transform .3s,background-color .3s,border-color .3s;display:grid;position:absolute;bottom:25px}.project-external:hover,.project-external:focus-visible{background:#ffffff24;border-color:#ffffff7a;transform:translate(3px,-3px)rotate(7deg)}html[dir=rtl] .project-external:hover,html[dir=rtl] .project-external:focus-visible{transform:translate(-3px,-3px)rotate(-7deg)}.project-dialog-backdrop{z-index:1200;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#040609b8;place-items:center;padding:24px;animation:.22s both project-backdrop-in;display:grid;position:fixed;inset:0}.project-dialog{border:1px solid var(--line-strong);background:var(--surface);border-radius:24px;width:min(100%,650px);max-height:min(82svh,720px);animation:.38s cubic-bezier(.16,1,.3,1) both project-dialog-in;overflow:auto;box-shadow:0 42px 130px #0000007a}.project-dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:28px;padding:30px 30px 25px;display:flex}.project-dialog-header p{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:850}html[dir=rtl] .project-dialog-header p{letter-spacing:0}.project-dialog-header h2{letter-spacing:-.055em;margin:0;font-size:clamp(34px,5.5vw,55px);line-height:1}html[dir=rtl] .project-dialog-header h2{letter-spacing:-.02em;line-height:1.28}.project-dialog-close{border:1px solid var(--line);background:var(--surface-elevated);width:42px;height:42px;color:var(--muted);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-size:22px;line-height:1;display:grid}.project-dialog-body{gap:27px;padding:27px 30px 30px;display:grid}.project-dialog-description{color:var(--soft);margin:0;font-size:15px;line-height:1.85}.project-dialog-contribution,.project-dialog-stack{gap:10px;display:grid}.project-dialog-contribution>span,.project-dialog-stack>span{color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:850}html[dir=rtl] .project-dialog-contribution>span,html[dir=rtl] .project-dialog-stack>span{letter-spacing:0}.project-dialog-contribution p{color:var(--muted);margin:0;font-size:14px;line-height:1.85}.project-dialog-stack>div{flex-wrap:wrap;gap:7px;display:flex}.project-dialog-stack>div>span{border:1px solid var(--line);background:var(--surface-elevated);color:var(--muted);border-radius:999px;padding:7px 11px;font-size:10px;font-weight:750}.project-dialog-footer{border:0;padding:0 30px 30px}.project-dialog-footer a{background:var(--accent);min-height:50px;color:var(--accent-text);border-radius:14px;align-items:center;gap:12px;padding:0 18px;font-size:12px;font-weight:850;text-decoration:none;display:inline-flex}.resume-menu{z-index:110;display:inline-flex;position:relative}.resume-trigger{z-index:2;position:relative}.resume-options{align-items:stretch;display:flex}.resume-options a{min-height:43px;color:inherit;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 13px;font-size:10px;font-weight:800;text-decoration:none;display:inline-flex}.resume-options i{font-style:normal}.resume-menu-inline .resume-options{top:calc(100% - 1px);z-index:1;border:1px solid var(--line-strong);background:var(--surface);opacity:0;visibility:hidden;pointer-events:none;transform-origin:100% 0;border-radius:13px 0 13px 13px;gap:4px;padding:5px;transition:opacity .18s,visibility .18s,transform .25s cubic-bezier(.16,1,.3,1);position:absolute;inset-inline-end:0;transform:translateY(-7px)scale(.97);box-shadow:0 24px 65px #00000052}html[dir=rtl] .resume-menu-inline .resume-options{transform-origin:0 0;border-radius:0 13px 13px}.resume-menu-inline .resume-options a{color:var(--muted);border-radius:9px}.resume-menu-inline .resume-options a:hover,.resume-menu-inline .resume-options a:focus-visible{background:var(--surface-hover);color:var(--text)}.resume-menu-inline.is-open .resume-options,.resume-menu-inline:hover .resume-options,.resume-menu-inline:focus-within .resume-options{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.resume-menu-floating{z-index:95;border:1px solid var(--line-strong);background:var(--accent);color:var(--accent-text);box-shadow:0 18px 48px color-mix(in srgb, var(--accent) 16%, transparent);border-right:0;border-radius:15px 0 0 15px;flex-direction:row-reverse;align-items:stretch;transition:box-shadow .22s,transform .22s;display:flex;position:fixed;top:50%;right:0;overflow:hidden;transform:translateY(-50%)}html[dir=rtl] .resume-menu-floating{border-right:1px solid var(--line-strong);border-left:0;border-radius:0 15px 15px 0;flex-direction:row;left:0;right:auto}.resume-menu-floating:hover{box-shadow:0 24px 65px color-mix(in srgb, var(--accent) 24%, transparent)}.resume-menu-floating .floating-resume,html[dir=rtl] .resume-menu-floating .floating-resume{min-width:108px;min-height:52px;color:inherit;box-shadow:none;writing-mode:horizontal-tb;white-space:nowrap;background:0 0;border:0;border-radius:0;gap:10px;padding:0 15px;font-size:10px;position:relative;inset:auto;transform:none}.resume-menu-floating .resume-options{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition:max-width .42s cubic-bezier(.16,1,.3,1),opacity .18s,visibility .18s;position:static;overflow:hidden}.resume-menu-floating .resume-options a{min-height:52px;color:var(--accent-text);opacity:.76;transition:opacity .18s,background-color .18s;position:relative}.resume-menu-floating .resume-options a:before{content:"";top:12px;bottom:12px;background:color-mix(in srgb, var(--accent-text) 18%, transparent);width:1px;position:absolute;inset-inline-start:0}.resume-menu-floating .resume-options a:hover,.resume-menu-floating .resume-options a:focus-visible{background:color-mix(in srgb, var(--accent-text) 8%, transparent);opacity:1}.resume-menu-floating.is-open .resume-options,.resume-menu-floating:hover .resume-options,.resume-menu-floating:focus-within .resume-options{opacity:1;visibility:visible;pointer-events:auto;max-width:245px}.resume-direction-icon{transition:transform .24s}.resume-menu-floating:hover .resume-direction-icon,.resume-menu-floating:focus-within .resume-direction-icon,.resume-menu-floating.is-open .resume-direction-icon{transform:translate(3px)}html[dir=rtl] .resume-menu-floating:hover .resume-direction-icon,html[dir=rtl] .resume-menu-floating:focus-within .resume-direction-icon,html[dir=rtl] .resume-menu-floating.is-open .resume-direction-icon{transform:translate(-3px)}@keyframes project-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes project-dialog-in{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes project-sheet-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.project-card,.project-featured,.project-card:last-child{grid-column:auto;min-height:375px}.project-content{gap:11px;padding-inline-end:58px;bottom:21px;left:21px;right:21px}.project-title>strong{font-size:clamp(27px,9vw,38px)}.project-preview{opacity:1;max-height:150px;transform:none}.project-summary{-webkit-line-clamp:2;font-size:11px;line-height:1.72}.project-technologies>span{padding:4px 7px;font-size:8px}.project-external{inset-inline-end:19px;width:42px;height:42px;bottom:19px}.project-dialog-backdrop{align-items:end;padding:0}.project-dialog{border-bottom:0;border-left:0;border-right:0;border-radius:24px 24px 0 0;width:100%;max-height:88svh;animation-name:project-sheet-in}.project-dialog:before{content:"";background:var(--line-strong);border-radius:999px;width:42px;height:4px;margin:10px auto 0;display:block}.project-dialog-header{padding:21px 22px 20px}.project-dialog-header h2{font-size:36px}.project-dialog-body{gap:22px;padding:22px}.project-dialog-description{font-size:14px}.project-dialog-footer{padding:0 22px calc(22px + env(safe-area-inset-bottom))}.project-dialog-footer a{justify-content:center;width:100%}.resume-menu-inline,.resume-menu-inline .resume-trigger{width:100%}.resume-menu-inline .resume-options{border-radius:0 0 13px 13px;justify-content:stretch;left:0;right:0}html[dir=rtl] .resume-menu-inline .resume-options{border-radius:0 0 13px 13px}.resume-menu-inline .resume-options a{flex:1}.resume-menu-floating,html[dir=rtl] .resume-menu-floating{top:auto;right:auto;bottom:calc(16px + env(safe-area-inset-bottom));border:0;border-radius:999px;flex-direction:column-reverse;left:50%;overflow:visible;transform:translate(-50%)}.resume-menu-floating .floating-resume,html[dir=rtl] .resume-menu-floating .floating-resume{border:1px solid var(--line-strong);background:var(--accent);border-radius:999px;min-width:132px;min-height:47px;padding:0 18px}.resume-menu-floating .resume-options{border:1px solid var(--line-strong);background:var(--accent);opacity:0;visibility:hidden;border-radius:14px;width:max-content;max-width:none;padding:5px;transition:opacity .18s,visibility .18s,transform .26s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;bottom:calc(100% + 8px);right:50%;overflow:visible;transform:translate(50%)translateY(8px)scale(.97)}.resume-menu-floating.is-open .resume-options,.resume-menu-floating:focus-within .resume-options{opacity:1;visibility:visible;pointer-events:auto;transform:translate(50%)translateY(0)scale(1)}.resume-menu-floating .resume-options a{min-height:42px}.resume-menu-floating .resume-options a:before{top:9px;bottom:9px}}@media (hover:none){.project-card:hover .project-content,.project-external:hover{transform:none}.resume-menu-floating:hover .resume-options{opacity:0;visibility:hidden;pointer-events:none}.resume-menu-floating.is-open .resume-options,.resume-menu-floating:focus-within .resume-options{opacity:1;visibility:visible;pointer-events:auto}}@media (prefers-reduced-motion:reduce){.project-dialog-backdrop,.project-dialog{animation:none}.project-preview,.resume-options,.resume-direction-icon,.project-visual>span{transition:none}}.contact-links a{grid-template-columns:38px minmax(72px,.52fr) minmax(0,1fr) auto;gap:16px}.contact-channel-icon{border:1px solid var(--line);background:var(--surface-elevated);width:34px;height:34px;color:var(--muted);border-radius:11px;place-items:center;transition:color .2s,border-color .2s,background-color .2s,transform .22s;display:grid}.contact-channel-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;overflow:visible}.contact-links a:hover .contact-channel-icon,.contact-links a:focus-visible .contact-channel-icon{border-color:color-mix(in srgb, var(--accent) 44%, var(--line-strong));background:var(--accent-soft);color:var(--accent);transform:translateY(-2px)}.contact-channel-label{color:var(--faint);font-size:10px;font-weight:850}.contact-links strong{min-width:0}.contact-email{text-align:left;font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.contact-link-arrow{align-self:center}html[dir=rtl] .contact-links strong{text-align:left;justify-self:start}html[dir=rtl] .contact-channel-label{font-weight:750}@media (width<=640px){.contact-links a{grid-template-rows:auto auto;grid-template-columns:38px minmax(0,1fr) auto;gap:4px 13px;min-height:78px;padding-block:12px}.contact-channel-icon{grid-area:1/1/3;align-self:center}.contact-channel-label{grid-area:1/2}.contact-links strong{grid-area:2/2;justify-self:start;max-width:100%}.contact-link-arrow{grid-area:1/3/3;align-self:center}.contact-email{font-size:11px}}@media (width<=400px){.contact-links a{grid-template-columns:35px minmax(0,1fr) auto;gap:4px 11px;padding:12px 3px}.contact-channel-icon{border-radius:10px;width:32px;height:32px}.contact-channel-icon svg{width:15px;height:15px}.contact-email{font-size:10px}}
