/* Ehsan Rajol — Portfolio V3 / Quiet precision */
:root {
  --canvas:#f7f7f5; --ink:#17191c; --muted:#74777e; --line:#dedfdd;
  --blue:#395df2; --dark:#151719; --shell:1440px;
  font-synthesis:none;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{margin:0;background:var(--canvas);color:var(--ink);font:400 16px/1.55 -apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}
button{-webkit-tap-highlight-color:transparent}
::selection{background:#c6d2ff;color:#10152c}
.shell{width:min(var(--shell),calc(100% - clamp(40px,9vw,152px)));margin-inline:auto}
.skip-link{position:fixed;z-index:500;left:24px;top:-85px;background:var(--ink);color:#fff;padding:12px 18px}
.skip-link:focus{top:14px}
.site-header{height:90px;border-bottom:1px solid var(--line);background:rgba(247,247,245,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:sticky;top:0;z-index:100}
.header-inner{height:100%;display:flex;align-items:center;gap:24px}
.identity{font-weight:690;letter-spacing:-.053em;font-size:22px;white-space:nowrap}
.identity span{color:var(--blue)}
.site-nav{display:flex;align-items:center;gap:clamp(18px,2.7vw,44px);margin-left:auto}
.site-nav a{font-size:13px;font-weight:530;transition:opacity .2s}
.site-nav a:hover{opacity:.53}
.site-nav .nav-contact{color:var(--blue)}
.language{display:flex;gap:5px;align-items:center;border-left:1px solid var(--line);padding-left:26px;font-size:11px;white-space:nowrap}
.language span{color:#b1b2b7}
.language button{border:0;padding:8px 4px;background:transparent;color:#909299;font-size:11px;font-weight:650}
.language button[aria-pressed="true"]{color:var(--ink)}
.hero{padding-top:clamp(100px,10vw,175px);padding-bottom:70px;min-height:min(900px,calc(100svh - 90px));display:flex;flex-direction:column}
.hero-eyebrow{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;font-weight:650;letter-spacing:.075em;color:#50545c}
.hero-location{font-size:10px;color:#9a9ca0}
.hero h1{font-size:clamp(67px,8.35vw,147px);font-weight:610;line-height:.985;letter-spacing:-.084em;margin:clamp(52px,6.7vw,112px) 0 0;max-width:100%}
.hero h1 span{display:block}
.hero-light{color:#9a9da2}
.hero-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-top:clamp(40px,5.5vw,82px)}
.hero-foot p{font-size:clamp(18px,1.65vw,25px);line-height:1.42;letter-spacing:-.033em;max-width:580px;margin:0;font-weight:440}
.simple-link{display:inline-flex;gap:50px;align-items:center;justify-content:space-between;font-weight:610;font-size:13px;white-space:nowrap;border-bottom:1px solid #a5a6ab;padding:12px 0;transition:gap .2s,color .2s}
.simple-link span:last-child{font-size:20px;font-weight:450}
.simple-link:hover{gap:62px;color:var(--blue)}
.career-caption{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:auto;padding-top:clamp(75px,11vw,165px);font-size:13px;color:#393c42;font-weight:580;letter-spacing:-.02em}
.career-caption span:first-child{font-size:10px;color:#989a9e;letter-spacing:.1em;font-weight:650;margin-right:22px}
.career-caption .career-x{color:#c1c2c6;font-size:13px;font-weight:400}
.selected-work{padding:clamp(110px,12vw,180px) 0 150px;background:#fff}
.section-top{display:flex;justify-content:space-between;border-top:1px solid #dcdedf;padding-top:21px}
.section-index{font-size:11px;font-weight:690;letter-spacing:.09em;color:#767981}
.section-display{font-size:clamp(58px,7vw,112px);line-height:1;letter-spacing:-.078em;font-weight:590;margin:28px 0 clamp(70px,9vw,142px)}
.case-list{display:flex;flex-direction:column;gap:clamp(90px,12vw,165px)}
.case{min-width:0}
.case-button{width:100%;background:none;border:0;padding:0;text-align:left;display:block}
.case-art{position:relative;overflow:hidden;width:100%;min-height:430px;aspect-ratio:2.06/1}
.case-button:focus-visible{outline-offset:10px}
.case-button .case-art{transition:filter .32s ease}
.case-button:hover .case-art{filter:brightness(.985)}
.case-caption{display:flex;justify-content:space-between;align-items:end;gap:30px;padding-top:30px}
.case-label{font-size:11px;color:#777b81;letter-spacing:.085em;font-weight:650;margin:0 0 12px}
.case-caption h3{font-size:clamp(36px,4vw,66px);letter-spacing:-.065em;font-weight:620;line-height:1.08;margin:0}
.case-description{color:#71767b;font-size:16px;line-height:1.5;margin:13px 0 0}
.case-arrow{display:grid;place-items:center;width:54px;height:54px;border:1px solid #d8dade;border-radius:50%;font-size:23px;transition:background .2s,color .2s,transform .25s;flex-shrink:0}
.case-button:hover .case-arrow{background:var(--ink);border-color:var(--ink);color:white;transform:rotate(45deg)}
/* Original conceptual illustration of industrial application engineering. */
.case-art-bosch{background:#17202b;color:#f6f7fa}
.case-art-bosch::before{content:"";position:absolute;inset:0;opacity:.13;background-image:linear-gradient(#cad6db 1px,transparent 1px),linear-gradient(90deg,#cad6db 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to right,transparent,black)}
.bos-topline,.system-topline{position:absolute;top:37px;left:4.3%;right:4.3%;display:flex;justify-content:space-between;gap:25px;z-index:2;font-size:10px;font-weight:650;letter-spacing:.13em}
.bos-topline{color:#aebcca}
.bos-art-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;gap:4%;padding:6.8% 4.3% 5%}
.bos-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:35%;padding-top:24px}
.bos-kicker{font-size:11px;font-weight:550;letter-spacing:.08em;color:#b7c6d3}
.bos-copy strong{font-size:clamp(72px,9.2vw,164px);line-height:1.03;letter-spacing:-.1em;font-weight:640;margin:22px 0}
.bos-dot{color:#6b9cf3}
.bos-copy>span{font-size:clamp(16px,1.7vw,23px);letter-spacing:-.03em;color:#bcc8d2}
.system-diagram{width:44%;min-width:320px;border:1px solid #7e919f56;background:#f2f7fa0d;box-shadow:0 24px 90px #040a15aa;backdrop-filter:blur(7px);padding:24px}
.diagram-top,.diagram-bottom{display:flex;justify-content:space-between;align-items:center;color:#a8bac8;font:600 9px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.07em}
.diagram-top{padding-bottom:25px;border-bottom:1px solid #8fa2af35}
.pulse-mark{width:7px;height:7px;background:#7dacfa;border-radius:50%;box-shadow:0 0 0 4px #7dacfa20}
.diagram-nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 28px}
.diagram-nodes div{min-width:0;border:1px solid #a0b5c24d;padding:14px 12px 24px;display:flex;flex-direction:column;gap:10px}
.diagram-nodes i{font:400 10px/1 ui-monospace,Menlo,monospace;color:#79a5eb;font-style:normal}
.diagram-nodes b{font-size:clamp(14px,1.5vw,22px);letter-spacing:-.04em;font-weight:570}
.diagram-nodes small{font-size:10px;line-height:1.2;color:#a9bdca}
.diagram-bottom{border-top:1px solid #8fa2af35;padding-top:15px;gap:12px;font-size:8px}
.art-note{position:absolute;right:4.3%;bottom:28px;color:#adbbc7;font-size:9px;letter-spacing:.04em}
/* Original abstract component-library illustration. */
.case-art-system{background:#e9ebe9;color:#1c2227}
.system-topline{color:#747b7f}
.system-canvas{position:absolute;inset:0;display:flex;justify-content:space-around;align-items:center;gap:6%;padding:6% 7%}
.system-aa{font-size:clamp(185px,25vw,380px);font-weight:550;letter-spacing:-.15em;line-height:1;white-space:nowrap;display:flex;align-items:flex-start;flex-direction:column}
.system-aa span{font-size:10px;letter-spacing:.16em;font-weight:650;line-height:1;margin-left:12px}
.system-components{width:min(41%,485px);min-width:280px;background:#fff;box-shadow:0 30px 90px #18223016;padding:25px;border:1px solid #d8dce0;transform:rotate(-2.5deg)}
.component-toolbar{display:flex;justify-content:space-between;font-size:9px;font-weight:670;letter-spacing:.1em;border-bottom:1px solid #eaeced;padding-bottom:22px;color:#70767a}
.component-line{display:flex;align-items:center;gap:20px;padding:30px 0 20px}
.component-circle{width:34px;height:34px;border-radius:50%;background:#3159d9}
.component-rectangle{width:90px;height:32px;border-radius:7px;border:1px solid #a6b0c1}
.component-toggle{width:55px;height:29px;background:#355dde;border-radius:99px;padding:4px;margin-left:auto}
.component-toggle i{display:block;border-radius:50%;background:#fff;width:21px;height:21px;margin-left:auto}
.component-strokes{display:flex;flex-direction:column;gap:10px;margin:15px 0 24px}
.component-strokes i{height:9px;border-radius:3px;background:#e5e8ec;width:88%}
.component-strokes i:nth-child(2){width:62%}
.component-strokes i:nth-child(3){width:78%}
.component-buttons{display:flex;gap:10px;font-size:10px;font-weight:620;white-space:nowrap}
.component-buttons span{padding:13px 14px;background:#3159d9;color:white}
.component-buttons span+span{background:#f3f4f6;color:#38404d}
.component-swatches{display:flex;gap:7px;margin-top:24px;padding-top:20px;border-top:1px solid #eef0f2}
.component-swatches b{height:13px;flex:1;background:#16254d}
.component-swatches b:nth-child(2){background:#3159d9}
.component-swatches b:nth-child(3){background:#8498bf}
.component-swatches b:nth-child(4){background:#c9d2e4}
.component-swatches b:nth-child(5){background:#eef1f8}
.case-art-system .art-note{color:#68737b}
/* Real screenshot from an independently built website. */
.case-art-independent{background:#e9e4dc;padding:clamp(35px,5vw,90px) 10% 0;display:flex;justify-content:center}
.site-preview{width:min(100%,920px);background:#fff;border:1px solid #dedad3;box-shadow:0 18px 50px #18130c1c;align-self:flex-start;overflow:hidden}
.preview-chrome{height:37px;background:#f5f4f2;display:flex;align-items:center;justify-content:space-between;padding:0 17px;color:#8a8580;font-size:11px}
.preview-chrome .preview-dots{display:flex;gap:5px}
.preview-dots i{width:7px;height:7px;background:#c8c5c0;border-radius:50%}
.site-preview img{display:block;width:100%;height:auto;object-fit:cover;object-position:top}
.independent-mark{position:absolute;bottom:24px;right:4%;font-size:10px;color:#938b81;font-weight:650;letter-spacing:.15em}
/* Three areas, without marketing cards. */
.expertise{background:var(--dark);color:#f6f6f3;padding:clamp(110px,10vw,170px) 0 clamp(100px,11vw,170px)}
.expertise .section-top{border-color:#414348}
.expertise .section-index{color:#aaaeb3}
.expertise-title{font-weight:600;letter-spacing:-.085em;font-size:clamp(96px,13vw,215px);line-height:.86;margin:clamp(70px,8.5vw,140px) 0 clamp(85px,10vw,165px)}
.expertise-title .muted{color:#777a82}
.expertise-rows{border-top:1px solid #45474a}
.expertise-row{display:grid;grid-template-columns:55px minmax(230px,1fr) minmax(250px,.8fr);align-items:center;gap:20px;border-bottom:1px solid #45474a;padding:31px 0}
.expertise-number{font-size:11px;color:#8a8d93}
.expertise-row h3{margin:0;font-size:clamp(26px,3.1vw,48px);font-weight:550;line-height:1.1;letter-spacing:-.055em}
.expertise-row p{margin:0;color:#9a9da4;font-size:14px;line-height:1.4;text-align:right}
.contact{background:var(--canvas);padding:clamp(120px,13vw,205px) 0 35px}
.contact .section-top{border-color:var(--line)}
.contact h2{font-size:clamp(70px,10vw,164px);font-weight:580;letter-spacing:-.085em;line-height:.95;max-width:1260px;margin:clamp(80px,9vw,140px) 0 34px}
.contact-description{font-size:clamp(17px,1.75vw,25px);letter-spacing:-.02em;max-width:600px;color:#666b71;margin:0 0 44px;line-height:1.45}
.contact-mail{display:inline-flex;align-items:center;gap:25px;border-bottom:2px solid var(--ink);padding-bottom:12px;font-size:clamp(20px,2.3vw,35px);font-weight:570;letter-spacing:-.045em;transition:color .2s}
.contact-mail:hover{color:var(--blue)}
.contact-mail span{font-size:23px}
.site-footer{border-top:1px solid var(--line);padding:25px 0 15px;margin-top:clamp(160px,15vw,250px);display:flex;align-items:center;justify-content:space-between;gap:20px;color:#7c7f82;font-size:11px}
.site-footer div{display:flex;gap:24px}
.site-footer a:hover{color:var(--ink)}
.preview-note{font-size:9px;letter-spacing:.07em}
/* Deliberately simple case-study reading experience. */
.detail-dialog{max-width:940px;width:calc(100% - 44px);max-height:88dvh;border:0;border-radius:0;padding:0;background:var(--canvas);color:var(--ink);box-shadow:0 35px 120px #0005}
.detail-dialog::backdrop{background:rgba(12,14,17,.76);backdrop-filter:blur(8px)}
.dialog-container{padding:clamp(27px,4vw,65px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;font-weight:650;letter-spacing:.13em;color:var(--muted)}
.dialog-close{width:42px;height:42px;border:1px solid #c9cbd0;border-radius:50%;background:none;font-size:26px;line-height:1;display:grid;place-items:center;transition:background .2s}
.dialog-close:hover{background:#e9e9e6}
#detail-content{padding:60px 0 8px}
.detail-number{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.12em}
#detail-title{font-size:clamp(45px,6.8vw,95px);letter-spacing:-.08em;line-height:.99;font-weight:600;margin:25px 0 28px}
.detail-lead{font-size:clamp(20px,2.4vw,29px);line-height:1.36;letter-spacing:-.035em;max-width:720px}
.detail-columns{margin:65px 0 36px;border-top:1px solid var(--line)}
.detail-row{padding:21px 0;display:grid;grid-template-columns:170px 1fr;gap:20px;border-bottom:1px solid var(--line)}
.detail-row h3{font-size:12px;margin:0;color:#76787c;font-weight:650;letter-spacing:.05em}
.detail-row p{font-size:17px;margin:0;max-width:640px;line-height:1.55}
.detail-tagline{display:flex;gap:10px;flex-wrap:wrap}
.detail-tagline span{border:1px solid #cbd0d0;border-radius:24px;padding:5px 12px;font-size:11px}
.detail-proof{margin-top:45px;background:#ededeb;padding:24px 28px}
.detail-proof p{margin:0;font-size:13px;line-height:1.6;color:#646970}
.detail-source{display:inline-flex;margin-top:15px;gap:20px;font-weight:650;color:var(--blue);font-size:13px}
.detail-cta{margin-top:48px;display:inline-flex;gap:25px;padding-bottom:10px;border-bottom:1px solid currentColor;font-size:18px;font-weight:550}
@media(max-width:1100px){
  .hero h1{font-size:clamp(58px,8.2vw,106px)}
  .bos-copy strong{font-size:clamp(64px,8vw,110px)}
  .system-diagram{width:47%;min-width:280px}
  .diagram-nodes{gap:5px}
  .diagram-nodes div{padding:12px 8px 18px}
  .system-aa{font-size:clamp(150px,23vw,270px)}
}
@media(max-width:760px){
  .site-header{height:72px}
  .identity{font-size:19px}
  .site-nav{gap:19px}
  .language{padding-left:12px}
  .hero{min-height:610px;padding-top:103px;padding-bottom:45px}
  .hero-location{display:none}
  .hero h1{font-size:clamp(43px,9.5vw,75px);letter-spacing:-.075em;line-height:1.03;margin-top:72px}
  .hero-foot{display:block}
  .hero-foot p{max-width:480px;font-size:19px}
  .simple-link{margin-top:20px}
  .career-caption{padding-top:100px}
  .selected-work{padding-top:96px;padding-bottom:105px}
  .section-display{font-size:clamp(54px,8vw,80px);margin:25px 0 70px}
  .case-list{gap:90px}
  .case-art{aspect-ratio:1.45;min-height:0}
  .bos-topline,.system-topline{top:20px;left:5%;right:5%;font-size:8px}
  .bos-meta{display:none}
  .bos-art-content{padding:13% 5% 7%}
  .bos-copy{min-width:35%;padding:0}
  .bos-copy strong{font-size:clamp(52px,8vw,90px);margin:15px 0}
  .bos-kicker{font-size:8px}
  .bos-copy>span{font-size:14px}
  .system-diagram{padding:13px;min-width:0;width:53%}
  .diagram-top{font-size:7px;padding-bottom:12px}
  .diagram-nodes{display:flex;flex-direction:column;margin:11px 0}
  .diagram-nodes div{padding:6px 8px;gap:3px}
  .diagram-nodes i,.diagram-nodes small{display:none}
  .diagram-nodes b{font-size:12px}
  .diagram-bottom{font-size:6px;padding-top:9px}
  .art-note{font-size:7px;bottom:12px;right:5%}
  .system-aa{font-size:clamp(130px,24vw,220px)}
  .system-components{min-width:0;width:48%;padding:15px}
  .component-toolbar{font-size:7px;padding-bottom:12px}
  .component-line{padding:15px 0}
  .component-strokes{margin:5px 0 14px;gap:6px}
  .component-strokes i{height:6px}
  .component-circle{width:20px;height:20px}
  .component-rectangle{width:45px;height:20px}
  .component-toggle{width:29px;height:17px;padding:3px}
  .component-toggle i{width:11px;height:11px}
  .component-buttons span{font-size:8px;padding:7px}
  .component-swatches{margin-top:12px;padding-top:12px}
  .system-canvas{padding:12% 5%}
  .expertise-title{font-size:clamp(105px,15vw,155px)}
  .expertise-row{grid-template-columns:40px 1fr;gap:14px}
  .expertise-row p{grid-column:2;text-align:left}
  .contact h2{font-size:clamp(65px,10vw,105px)}
  .site-footer{flex-wrap:wrap}
  .preview-note{width:100%}
}
@media(max-width:540px){
  .shell{width:calc(100% - 40px)}
  .site-header{height:70px}
  .header-inner{gap:13px}
  .identity{font-size:18px}
  .site-nav{gap:16px}
  .site-nav a{font-size:12px}
  .site-nav .nav-expertise{display:none}
  .language{gap:1px;padding-left:9px}
  .language button{font-size:10px}
  .hero{padding-top:86px;min-height:640px}
  .hero-eyebrow{font-size:9px}
  .hero h1{font-size:clamp(43px,10.8vw,58px);line-height:1.025;margin-top:94px;letter-spacing:-.073em}
  .hero-foot{margin-top:40px}
  .hero-foot p{font-size:18px}
  .career-caption{gap:13px;padding-top:80px}
  .career-caption span:first-child{width:100%;margin-right:0}
  .selected-work{padding-top:82px;padding-bottom:90px}
  .section-display{font-size:clamp(43px,11vw,62px);margin:24px 0 55px}
  .case-list{gap:74px}
  .case-art{aspect-ratio:1.05}
  .bos-topline,.system-topline{font-size:7px;top:15px}
  .bos-art-content{display:block;padding:18% 5%}
  .bos-copy strong{font-size:clamp(62px,17vw,100px);margin:13px 0 6px}
  .bos-copy>span{font-size:14px}
  .system-diagram{position:absolute;left:8%;right:8%;bottom:14%;width:84%;height:auto;padding:14px;min-width:0}
  .diagram-nodes{flex-direction:row;gap:5px}
  .diagram-nodes div{flex:1;text-align:center;padding:8px 2px}
  .diagram-nodes b{font-size:10px}
  .diagram-bottom{font-size:6px}
  .case-art-bosch .art-note{display:none}
  .system-canvas{display:block;padding:18% 7%}
  .system-aa{font-size:clamp(105px,29vw,180px);line-height:1}
  .system-aa span{font-size:7px}
  .system-components{position:absolute;right:5%;bottom:10%;width:65%;max-width:300px;padding:13px}
  .component-line{gap:12px}
  .case-art-system .art-note{bottom:12px;left:5%;right:auto;font-size:6px}
  .case-art-independent{padding:22% 5% 0}
  .site-preview{width:100%}
  .preview-chrome{height:24px;font-size:9px}
  .independent-mark{font-size:7px;bottom:11px}
  .case-caption{padding-top:20px;gap:15px}
  .case-label{font-size:9px;margin-bottom:9px}
  .case-caption h3{font-size:clamp(29px,7vw,39px)}
  .case-description{font-size:13px;margin-top:8px}
  .case-arrow{width:39px;height:39px;font-size:18px}
  .expertise{padding:93px 0 95px}
  .expertise-title{font-size:clamp(88px,22vw,142px);margin:72px 0 85px}
  .expertise-row{padding:24px 0;grid-template-columns:28px 1fr;gap:8px}
  .expertise-row h3{font-size:27px}
  .expertise-row p{font-size:12px}
  .contact{padding-top:102px}
  .contact h2{font-size:clamp(59px,12vw,77px);margin-top:80px;line-height:1.02}
  .contact-description{font-size:17px}
  .contact-mail{font-size:clamp(17px,5.1vw,26px);gap:10px;overflow-wrap:anywhere}
  .site-footer{margin-top:150px;align-items:start}
  .site-footer div{gap:15px}
  .detail-dialog{width:calc(100% - 18px);max-height:94dvh}
  .dialog-container{padding:25px 20px}
  #detail-content{padding-top:45px}
  #detail-title{font-size:clamp(41px,10vw,64px)}
  .detail-row{display:block}
  .detail-row h3{margin-bottom:10px}
  .detail-row p{font-size:15px}
}
@media(max-width:360px){
  .site-nav{gap:11px}
  .identity{font-size:17px}
  .hero h1{font-size:42px}
  .hero-eyebrow{font-size:8px}
  .career-caption{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{
  .site-header{position:static}
  .case-art{min-height:0;aspect-ratio:2.1}
  .detail-dialog{display:none}
}
