:root{color-scheme:light;--paper:#f8f6ef;--surface:#eeeee5;--ink:#252a26;--muted:#62695e;--accent:#bb4e31;--line:#d8dbd0;--sage:#7b8971;--font:Inter,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--font)}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wordmark{font-size:30px;line-height:1.1;letter-spacing:-.075em;font-weight:650;text-decoration:none}.wordmark span{color:var(--accent)}.eyebrow{font:11px/1.6 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.skip{position:absolute;top:-100px;left:20px;z-index:30;padding:12px 18px;background:var(--ink);color:var(--paper)}.skip:focus{top:12px}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{line-height:1.1;letter-spacing:-.05em;font-weight:550}a.button,button.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:3px;padding:12px 20px;font-size:13px;font-weight:500}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}section[id]{scroll-margin-top:85px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Areshk portfolio. Shared identity and responsive layout. */


/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:20;background:rgba(248,246,239,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .bar{max-width:1180px;margin:0 auto;padding:15px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-nav{display:flex;gap:26px;font-size:14px}
.site-nav a{text-decoration:none;color:var(--muted);font-weight:500;padding:4px 0;border-bottom:2px solid transparent}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--ink)}
.site-nav a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--accent)}

main{max-width:1180px;margin:0 auto;padding:0 32px}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:76px 0 88px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.82fr);gap:56px;align-items:center;border-bottom:1px solid var(--line)}
.hero-copy{position:relative;z-index:1}
.hero-copy h1{font-size:clamp(38px,5.2vw,66px);margin:18px 0 22px;letter-spacing:-.055em}
.hero-lede{font-size:19px;line-height:1.6;max-width:44ch;margin:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-meta{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px 20px;font:12px/1.6 var(--mono);color:var(--muted)}

.hero-figure{position:relative;z-index:1;isolation:isolate;min-height:400px}
.hero-field{position:absolute;z-index:0;inset:0;pointer-events:none;mask-image:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,.4) 32%,rgba(0,0,0,.92) 62%,#000 84%)}
.hero-field img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-field canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0}
.hero-field canvas[data-ready]{opacity:1;transition:opacity .5s linear}
.portrait-frame{position:absolute;z-index:1;bottom:0;left:0;aspect-ratio:5/6;width:142px;border:6px solid var(--paper);border-radius:3px;overflow:hidden;background:var(--surface)}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center}

/* ---------- Generic section ---------- */
.section{padding:82px 0;border-bottom:1px solid var(--line)}
.section-head{margin-bottom:38px}
.section-head h2{font-size:clamp(27px,3.4vw,41px);margin:12px 0 0}
.section-head p{color:var(--muted);max-width:62ch;margin:16px 0 0}

/* ---------- Experience ---------- */
.exp-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:34px 38px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px 48px}
.exp-main h3{font-size:24px;margin:10px 0 4px}
.exp-role{font-weight:550;margin:0;color:var(--ink)}
.exp-loc{color:var(--muted);margin:4px 0 16px;font-size:14px}
.exp-main p:last-child{margin-bottom:0}
.exp-aside{border-left:1px solid var(--line);padding-left:44px}
.exp-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:9px}
.exp-list li{position:relative;padding-left:18px;font-size:14.5px;color:var(--ink)}
.exp-list li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:1px;background:var(--sage)}
.chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:18px 0 0;border-top:1px solid var(--line);list-style:none}
.chips li{font:11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:7px 9px;background:var(--paper)}

/* ---------- Work ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.filter{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:500;color:var(--muted)}
.filter:hover{border-color:var(--muted);color:var(--ink)}
.filter[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.filter .count{font:11px/1 var(--mono);opacity:.72}
.filter[aria-pressed="true"] .count{opacity:.9}
.results{margin:0 0 28px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}

.project-grid{position:relative;align-content:start;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper)}
.project[hidden]{display:none}
.project:hover{border-color:var(--sage)}
.project-media{display:block;position:relative;aspect-ratio:16/10;background:var(--surface);border-bottom:1px solid var(--line);overflow:hidden}
.project-media img{width:100%;height:100%;object-fit:cover;object-position:top center}
.media-badge{position:absolute;left:10px;top:10px;z-index:2;font:10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:rgba(37,42,38,.82);color:var(--paper);padding:6px 8px;border-radius:3px}
.project-media .demo-btn{position:absolute;right:12px;bottom:12px;z-index:2;background:var(--paper);color:var(--ink);border-color:var(--line);padding:9px 15px;font-size:12px;box-shadow:0 1px 8px rgba(37,42,38,.18)}

.project-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.project-body h3{font-size:19px;margin:0}
.project-body h3 a{text-decoration:none}
.project-body h3 a:hover{text-decoration:underline}
.project-body p{margin:0;color:var(--muted);font-size:14.5px}
.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.tags li{font:10.5px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--sage);border:1px solid var(--line);border-radius:3px;padding:5px 7px}
.repo-list{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:6px;font-size:13.5px}
.repo-list a{color:var(--ink);text-decoration-color:var(--line)}
.repo-list a:hover{text-decoration-color:var(--accent);color:var(--accent)}
.project-links{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 16px;padding-top:12px;font-size:13.5px}
.project-links a{color:var(--accent);text-decoration:none;font-weight:500}
.project-links a:hover{text-decoration:underline}
.grid-note{margin:28px 0 0;color:var(--muted);font-size:13px;max-width:70ch}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px 56px}
.about-grid p{margin:0 0 16px}
.about-grid h3{font-size:16px;margin:0 0 12px;letter-spacing:-.02em}
.skill-group{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}
.skill-group dt{font:11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sage)}
.skill-group dd{margin:6px 0 0;color:var(--muted);font-size:14.5px}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:var(--paper);padding:64px 32px 40px;margin-top:0}
.site-footer .inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:36px}
.site-footer h2{font-size:clamp(26px,3.2vw,38px);margin:14px 0 12px;color:var(--paper)}
.site-footer .eyebrow{color:#a1a796}
.site-footer p{margin:0;max-width:46ch;color:#d4d8cd}
.site-footer .contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:15px}
.site-footer a{color:var(--paper);text-decoration-color:#7b8971}
.site-footer a:hover{text-decoration-color:var(--accent)}
.site-footer .legal{grid-column:1/-1;border-top:1px solid #3a4038;padding-top:22px;margin-top:14px;font-size:12px;color:#a1a796;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .hero{grid-template-columns:1fr;gap:44px}
  .hero-field{mask-image:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.16) 56%,rgba(0,0,0,.8) 82%,#000 94%)}
  .hero-figure{min-height:330px;max-width:560px;width:100%;margin:0 auto}
  .exp-card{grid-template-columns:1fr;padding:28px 26px}
  .exp-aside{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-grid{grid-template-columns:1fr;gap:8px}
  .site-footer .inner{grid-template-columns:1fr;gap:28px}
}
@media(max-width:620px){
  main{padding:0 20px}
  .site-header .bar{padding:13px 20px;flex-wrap:wrap;row-gap:10px}
  .site-nav{width:100%;justify-content:space-between;gap:10px;font-size:13px}
  .hero{padding:44px 0 60px}
  .hero-lede{font-size:17.5px}
  .section{padding:60px 0}
  .project-grid{grid-template-columns:1fr}
  .site-footer{padding:48px 20px 32px}
}
