/* =====================================================================
   EDITORIAL LAYER — Deemah Alsharif
   Loaded after styles.css on every page. Extends the existing tokens;
   does not replace them. Prefix: ed-
   ===================================================================== */

:root{
  --serif:"Fraunces","Times New Roman",Georgia,serif;
  --rule:#ddd8cd;
  --ed-gutter:clamp(20px,4.6vw,64px);
  --ed-maxw:1400px;
}

body{font-size:16.5px;}
.ed-wrap{max-width:var(--ed-maxw); margin:0 auto; padding:0 var(--ed-gutter);}
.ed-rule{height:1px; background:var(--rule); border:0; margin:0;}

/* section label: 01 / Selected Work */
.ed-label{display:flex; align-items:baseline; gap:14px; margin:0 0 clamp(26px,3.4vw,46px);
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:600; color:var(--muted);}
.ed-label b{font-weight:600; color:var(--accent); font-variant-numeric:tabular-nums;}
.ed-label span{flex:1; height:1px; background:var(--rule);}

/* ---------- NAV ---------- */
.nav{border-bottom:1px solid var(--rule); background:var(--paper);}
.nav__inner{max-width:var(--ed-maxw); padding:0 var(--ed-gutter); height:76px;}
.brand{font-family:var(--serif); font-weight:400; font-size:21px; letter-spacing:-.01em;}
.brand small{font-family:var(--font-body); letter-spacing:.2em; font-weight:500; color:var(--muted);}
.nav__links{gap:30px;}
.nav__links a{font-size:12px; letter-spacing:.14em;}

/* ---------- PAGE MASTHEAD (Work / About / Contact) ---------- */
.ed-mast{padding:clamp(40px,6.5vw,96px) 0 clamp(26px,3.4vw,48px);}
.ed-mast__k{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); font-weight:600; margin:0 0 clamp(16px,2vw,26px);}
.ed-mast__h{font-family:var(--serif); font-weight:300; font-size:clamp(2.9rem,10.5vw,8.4rem);
  line-height:.9; letter-spacing:-.025em; margin:0;}
.ed-mast__d{margin:clamp(22px,2.6vw,34px) 0 0; max-width:58ch; color:var(--muted);
  font-size:clamp(1rem,1.2vw,1.12rem); line-height:1.66;}

/* ---------- HOME HERO ---------- */
.ed-hero{padding:clamp(34px,6vw,86px) 0 clamp(40px,6vw,90px);}
.ed-hero__name{font-family:var(--serif); font-weight:300; font-size:clamp(3rem,12.2vw,10.2rem);
  line-height:.86; letter-spacing:-.03em; margin:0;}
.ed-hero__name em{font-style:italic; font-weight:300;}
.ed-hero__bar{display:flex; align-items:baseline; justify-content:space-between; gap:18px;
  flex-wrap:wrap; margin-top:clamp(16px,1.8vw,26px);
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; font-weight:600;}
.ed-hero__bar .k{color:var(--accent);}
.ed-hero__bar .m{color:var(--muted); letter-spacing:.14em;}
.ed-hero__grid{display:grid; grid-template-columns:repeat(12,1fr); gap:0 clamp(20px,3vw,48px);
  margin-top:clamp(44px,6.5vw,104px);}
.ed-hero__lead{grid-column:5 / 13; font-family:var(--serif); font-weight:300;
  font-size:clamp(1.55rem,3.3vw,2.9rem); line-height:1.14; letter-spacing:-.015em; margin:0; text-wrap:balance;}
.ed-hero__body{grid-column:5 / 12; max-width:58ch; margin:clamp(20px,2.2vw,30px) 0 0;
  color:var(--muted); line-height:1.68;}

/* ---------- PROJECT ROWS ---------- */
.ed-proj{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(18px,2.4vw,44px);
  align-items:end; padding:clamp(40px,6vw,86px) 0;}
.ed-proj + .ed-proj{border-top:1px solid var(--rule);}
.ed-proj__media{grid-column:1 / 9; overflow:hidden; background:var(--card); display:block;}
.ed-proj__meta{grid-column:9 / 13; padding-bottom:4px;}
.ed-proj--flip .ed-proj__media{grid-column:5 / 13; order:2;}
.ed-proj--flip .ed-proj__meta{grid-column:1 / 5; order:1;}
.ed-proj--tall{align-items:start;}
.ed-proj--tall .ed-proj__meta{padding-top:4px; padding-bottom:0;}
.ed-proj__media img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .55s cubic-bezier(.2,.7,.2,1), filter .45s ease;}
.ed-proj--std  .ed-proj__media{aspect-ratio:3/2; max-height:640px;}
.ed-proj--tall .ed-proj__media{aspect-ratio:5/6; max-height:720px;}
.ed-proj--wide .ed-proj__media{aspect-ratio:16/9; max-height:560px;}
.ed-proj__n{font-size:11px; letter-spacing:.2em; color:var(--muted); font-variant-numeric:tabular-nums;}
.ed-proj__t{font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,2.7vw,2.5rem);
  line-height:1.05; letter-spacing:-.02em; margin:12px 0 0;}
.ed-proj__d{margin:16px 0 0; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); font-weight:600; line-height:1.9;}
.ed-proj__s{margin:14px 0 0; color:var(--muted); font-size:.95rem; line-height:1.62; max-width:44ch;}
.ed-proj__go{display:inline-flex; gap:9px; margin-top:20px; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; font-weight:600;}
.ed-proj__go i{font-style:normal; opacity:0; transition:transform .3s ease, opacity .3s ease;}
@media (hover:hover){
  .ed-proj:hover .ed-proj__media img{transform:scale(1.03);}
  .ed-proj:hover .ed-proj__go i{opacity:1; transform:translateX(5px);}
}
.ed-proj a:focus-visible{outline:2px solid var(--accent); outline-offset:4px;}

/* ---------- PHOTOGRAPHY STRIP (inside Work) ---------- */
.ed-photo{padding:clamp(48px,7vw,104px) 0; border-top:1px solid var(--rule);}
.ed-photo__grid{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(10px,1.4vw,20px); margin-top:clamp(24px,3vw,40px);}
.ed-photo__grid a{display:block; overflow:hidden; background:var(--card);}
.ed-photo__grid img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover){ .ed-photo__grid a:hover img{transform:scale(1.04);} }
.ed-photo__grid a:nth-child(1){grid-column:span 6; aspect-ratio:3/2;}
.ed-photo__grid a:nth-child(2){grid-column:span 3; aspect-ratio:3/4;}
.ed-photo__grid a:nth-child(3){grid-column:span 3; aspect-ratio:3/4;}
.ed-photo__grid a:nth-child(4){grid-column:span 4; aspect-ratio:1/1;}
.ed-photo__grid a:nth-child(5){grid-column:span 8; aspect-ratio:2/1;}
.ed-photo__more{display:inline-block; margin-top:clamp(22px,2.6vw,34px); font-size:11.5px;
  letter-spacing:.18em; text-transform:uppercase; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:5px;}
.ed-photo__more:hover{color:var(--accent); border-color:var(--accent);}

/* ---------- EDITORIAL BREAK ---------- */
.ed-break{padding:clamp(52px,8vw,118px) 0;}
.ed-break__grid{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(22px,3vw,48px);}
.ed-break__lead{grid-column:1 / 8; font-family:var(--serif); font-weight:300;
  font-size:clamp(1.4rem,2.7vw,2.3rem); line-height:1.24; letter-spacing:-.015em; margin:0; text-wrap:balance;}
.ed-break__side{grid-column:9 / 13; margin:0; color:var(--muted); font-size:.98rem; line-height:1.7;}
.ed-link{display:inline-block; margin-top:24px; font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:5px;}
.ed-link:hover{color:var(--accent); border-color:var(--accent);}
.ed-viewall{display:flex; justify-content:flex-end; padding:clamp(28px,4vw,52px) 0 clamp(44px,6vw,86px);}

/* ---------- CTA ---------- */
.ed-cta{background:var(--ink); color:var(--paper); padding:clamp(62px,10vw,150px) 0;}
.ed-cta__h{font-family:var(--serif); font-weight:300; font-size:clamp(2.4rem,9vw,7.2rem);
  line-height:.94; letter-spacing:-.03em; margin:0;}
.ed-cta__h em{font-style:italic;}
.ed-cta__row{display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  flex-wrap:wrap; margin-top:clamp(28px,3.6vw,52px);}
.ed-cta__p{margin:0; color:#b6b0a5; max-width:40ch;}
.ed-cta__l{font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
  color:var(--paper); border-bottom:1px solid var(--paper); padding-bottom:6px;}
.ed-cta__l:hover{opacity:.7;}

/* ---------- ABOUT ---------- */
.ed-about{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(24px,3.4vw,56px); padding-bottom:clamp(40px,6vw,80px);}
.ed-about__portrait{grid-column:1 / 5;}
.ed-about__portrait img{width:100%; aspect-ratio:4/5; object-fit:cover; display:block; background:var(--card);}
.ed-about__text{grid-column:6 / 13;}
.ed-about__text p{margin:0 0 1.15em; line-height:1.72; font-size:1.02rem;}
.ed-about__text p:first-child{font-family:var(--serif); font-weight:300; font-size:clamp(1.3rem,2.2vw,1.85rem);
  line-height:1.3; letter-spacing:-.012em; color:var(--ink); margin-bottom:1.1em;}
.ed-about__facts{grid-column:9 / 13; margin:0; display:flex; flex-direction:column;}
.ed-about__fact{border-top:1px solid var(--rule); padding:clamp(14px,1.8vw,20px) 0;}
.ed-about__fact dt{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:10px;}
.ed-about__fact dd{margin:0; line-height:1.6;}
.ed-cv{border-top:1px solid var(--rule); padding:clamp(34px,4.6vw,64px) 0;
  display:flex; align-items:flex-end; justify-content:space-between; gap:22px; flex-wrap:wrap;}
.ed-cv h3{font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,3vw,2.4rem); margin:0; letter-spacing:-.02em;}
.ed-cv__links{display:flex; gap:26px; flex-wrap:wrap;}

/* logos sit in a narrow column on About — allow wrapping */
.ed-about__fact .logo-row{flex-wrap:wrap; gap:12px 16px;}
.ed-about__fact .logo-row .logo{height:30px; max-width:90px;}

/* ---------- CONTACT ---------- */
.ed-contact{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(26px,3.6vw,60px); padding-bottom:clamp(50px,7vw,100px);}
.ed-contact__side{grid-column:1 / 5;}
.ed-contact__form{grid-column:6 / 12;}
.ed-contact .form label{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.ed-contact .form input, .ed-contact .form textarea{border:0; border-bottom:1px solid var(--rule);
  background:transparent; border-radius:0; padding:12px 0; font-size:1rem;}
.ed-contact .form input:focus, .ed-contact .form textarea:focus{outline:0; border-bottom-color:var(--accent);}
.ed-contact .btn{background:var(--ink); border-radius:0;}

/* ---------- FOOTER ---------- */
.ed-foot{border-top:1px solid var(--rule); padding:clamp(28px,3.6vw,46px) 0;}
.ed-foot__row{display:flex; align-items:center; justify-content:space-between; gap:14px 30px; flex-wrap:wrap;}
.ed-foot__n{font-family:var(--serif); font-size:16px;}
.ed-foot__nav{display:flex; flex-wrap:wrap; gap:10px 22px; list-style:none; margin:0; padding:0;}
.ed-foot__nav a{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.ed-foot__nav a:hover{color:var(--ink);}
.ed-foot__c{font-size:11.5px; letter-spacing:.12em; color:var(--muted);}

/* ---------- TABLET ---------- */
@media (max-width:1000px){
  .ed-hero__lead, .ed-hero__body{grid-column:1 / 13;}
  .ed-proj__media, .ed-proj--flip .ed-proj__media{grid-column:1 / 13; order:1;}
  .ed-proj__meta, .ed-proj--flip .ed-proj__meta{grid-column:1 / 13; order:2; padding:0;}
  .ed-proj{align-items:start; gap:20px;}
  .ed-break__lead, .ed-break__side{grid-column:1 / 13;}
  .ed-about__portrait{grid-column:1 / 6;}
  .ed-about__text{grid-column:1 / 13;}
  .ed-facts__col{grid-column:span 6;}
  .ed-contact__side, .ed-contact__form{grid-column:1 / 13;}
  .ed-photo__grid a:nth-child(n){grid-column:span 6; aspect-ratio:3/2;}
}

/* ---------- MOBILE ---------- */
@media (max-width:640px){
  .ed-hero{padding-top:22px;}
  .ed-hero__name{font-size:clamp(2.6rem,14vw,4.2rem); line-height:.92;}
  .ed-hero__grid{margin-top:40px;}
  .ed-hero__lead{font-size:1.42rem; line-height:1.22;}
  .ed-mast__h{font-size:clamp(2.6rem,14vw,4rem);}
  .ed-proj{padding:34px 0;}
  .ed-proj--tall .ed-proj__media{aspect-ratio:3/4;}
  .ed-proj--wide .ed-proj__media{aspect-ratio:3/2;}
  .ed-proj__go i{opacity:1;}
  .ed-viewall{justify-content:flex-start;}
  .ed-cta__h{font-size:clamp(2.2rem,12vw,3.4rem);}
  .ed-about__portrait{grid-column:1 / 13;}
  .ed-facts__col{grid-column:span 12;}
  .ed-photo__grid a:nth-child(n){grid-column:span 12; aspect-ratio:3/2;}
  .ed-foot__row{flex-direction:column; align-items:flex-start; gap:16px;}
}

/* =====================================================================
   V2 — FULL-BLEED, IMAGE-LED LAYOUT SYSTEM
   Overrides the containment above. Modules: feature / pair / trio /
   photo interruption. Text measure stays readable; images go wide.
   ===================================================================== */
:root{ --ed-gutter:clamp(18px,3.2vw,56px); }
.ed-full{width:100%; padding:0 var(--ed-gutter);}
.ed-bleed{width:100%; padding:0;}
.ed-measure{max-width:72ch;}

/* Hero: bigger, wider, stronger scale contrast */
.ed-hero{padding:clamp(40px,7vw,110px) 0 clamp(46px,7vw,110px);}
.ed-hero .ed-wrap{max-width:none; padding:0 var(--ed-gutter);}
.ed-hero__name{font-size:clamp(3.2rem,15vw,15rem); line-height:.82; letter-spacing:-.04em;}
.ed-hero__grid{grid-template-columns:repeat(12,1fr);}
.ed-hero__lead{grid-column:6 / 13; font-size:clamp(1.7rem,4vw,3.6rem); line-height:1.08;}
.ed-hero__body{grid-column:6 / 12; max-width:60ch;}

/* Page mastheads scale up too */
.ed-mast .ed-wrap{max-width:none;}
.ed-mast__h{font-size:clamp(3rem,13vw,12rem); line-height:.84;}

/* ---------- FEATURE (full-bleed hero project) ---------- */
.edf{display:block; position:relative; margin:0 0 clamp(40px,6vw,96px);}
.edf__img{width:100%; height:clamp(420px,72vh,900px); object-fit:cover; display:block; background:var(--card);
  transition:transform .7s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover){ .edf:hover .edf__img{transform:scale(1.02);} }
.edf__bar{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:clamp(16px,2vw,26px) var(--ed-gutter) 0;}
.edf__t{font-family:var(--serif); font-weight:300; font-size:clamp(2rem,6.4vw,5.6rem); line-height:.96;
  letter-spacing:-.03em; margin:0;}
.edf__m{display:flex; gap:26px; flex-wrap:wrap; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  font-weight:600; color:var(--muted); padding-bottom:10px;}
.edf__m .c{color:var(--accent);}

/* ---------- PAIR (asymmetric two-column) ---------- */
.edp{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(18px,2.6vw,48px);
  padding:0 var(--ed-gutter); margin:0 0 clamp(48px,7vw,110px); align-items:start;}
.edp__a{grid-column:1 / 7;}
.edp__b{grid-column:8 / 13; margin-top:clamp(50px,9vw,170px);}
.edp__a .edm__img{aspect-ratio:4/5;}
.edp__b .edm__img{aspect-ratio:3/2;}

/* ---------- TRIO (offset three-up, one breaks the grid) ---------- */
.edt{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(18px,2.6vw,48px);
  padding:0 var(--ed-gutter); margin:0 0 clamp(40px,6vw,96px); align-items:start;}
.edt__1{grid-column:1 / 6;}
.edt__2{grid-column:7 / 13; margin-top:clamp(40px,7vw,130px);}
.edt__3{grid-column:3 / 11; margin-top:clamp(24px,4vw,64px);}
.edt__1 .edm__img{aspect-ratio:3/4;}
.edt__2 .edm__img{aspect-ratio:3/2;}
.edt__3 .edm__img{aspect-ratio:16/9;}

/* shared module card (no box, image + 3 lines of metadata) */
.edm{display:block;}
.edm__img{width:100%; object-fit:cover; display:block; background:var(--card);
  transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.edm__wrap{overflow:hidden;}
@media (hover:hover){ .edm:hover .edm__img{transform:scale(1.03);} }
.edm__t{font-family:var(--serif); font-weight:300; font-size:clamp(1.4rem,2.8vw,2.6rem); line-height:1.03;
  letter-spacing:-.025em; margin:clamp(14px,1.6vw,22px) 0 0;}
.edm__m{display:flex; gap:20px; flex-wrap:wrap; margin:10px 0 0; font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; font-weight:600; color:var(--muted);}
.edm__m .c{color:var(--accent);}

/* ---------- PHOTOGRAPHY INTERRUPTION (full-bleed) ---------- */
.edph{margin:clamp(40px,7vw,110px) 0; padding:clamp(40px,6vw,90px) 0; background:var(--paper-2);}
.edph__head{display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:0 var(--ed-gutter) clamp(22px,3vw,40px);}
.edph__k{font-family:var(--serif); font-weight:300; font-size:clamp(1.8rem,5vw,4rem); margin:0; letter-spacing:-.025em;}
.edph__strip{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,1vw,16px); padding:0 var(--ed-gutter);}
.edph__strip a{display:block; overflow:hidden; background:var(--card);}
.edph__strip img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover){ .edph__strip a:hover img{transform:scale(1.05);} }
.edph__strip a:nth-child(1){aspect-ratio:3/4; margin-top:clamp(20px,3vw,50px);}
.edph__strip a:nth-child(2){aspect-ratio:1/1;}
.edph__strip a:nth-child(3){aspect-ratio:3/4; margin-top:clamp(20px,3vw,50px);}
.edph__strip a:nth-child(4){aspect-ratio:1/1;}

/* ---------- TYPOGRAPHIC STATEMENT ---------- */
.eds{padding:clamp(56px,10vw,150px) var(--ed-gutter); }
.eds__q{font-family:var(--serif); font-weight:300; font-size:clamp(2rem,6.5vw,5.4rem); line-height:1.02;
  letter-spacing:-.03em; margin:0; max-width:18ch;}
.eds__q em{font-style:italic;}

/* wider CTA + break + label to match */
.ed-cta .ed-wrap, .ed-break .ed-wrap, .ed-foot .ed-wrap{max-width:none; padding:0 var(--ed-gutter);}
.ed-cta__h{font-size:clamp(2.6rem,11vw,10rem);}
.ed-break__lead{font-size:clamp(1.5rem,3.4vw,3rem);}

/* ---------- PRACTICE ---------- */
.edpr{padding:0 var(--ed-gutter);}
.edpr__row{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(16px,2.4vw,44px);
  border-top:1px solid var(--rule); padding:clamp(28px,4vw,56px) 0;}
.edpr__row:last-of-type{border-bottom:1px solid var(--rule);}
.edpr__n{grid-column:1 / 2; font-size:11px; letter-spacing:.18em; color:var(--accent); font-weight:600;
  font-variant-numeric:tabular-nums; padding-top:10px;}
.edpr__t{grid-column:2 / 7; font-family:var(--serif); font-weight:300; font-size:clamp(1.6rem,4vw,3.4rem);
  line-height:1; letter-spacing:-.03em; margin:0;}
.edpr__d{grid-column:8 / 13; margin:0; color:var(--muted); line-height:1.7; font-size:1rem; padding-top:8px;}
.edpr__ways{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(16px,2.4vw,44px);
  padding:clamp(40px,6vw,90px) 0 0;}
.edpr__ways h3{grid-column:1 / 5; font-family:var(--serif); font-weight:300; font-size:clamp(1.4rem,3vw,2.4rem);
  margin:0; letter-spacing:-.025em;}
.edpr__ways ul{grid-column:6 / 13; margin:0; padding:0; list-style:none;}
.edpr__ways li{border-top:1px solid var(--rule); padding:16px 0; display:flex; gap:16px; align-items:baseline;}
.edpr__ways li b{font-weight:600; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); min-width:26px;}

/* ---------- CONTACT project-type selector ---------- */
.ed-contact .form select{width:100%; border:0; border-bottom:1px solid var(--rule); background:transparent;
  border-radius:0; padding:12px 0; font-size:1rem; font-family:inherit; color:var(--ink);
  appearance:none; -webkit-appearance:none; margin-bottom:8px;}
.ed-contact .form select:focus{outline:0; border-bottom-color:var(--accent);}

/* ---------- RESPONSIVE (v2) ---------- */
@media (max-width:1000px){
  .ed-hero__lead, .ed-hero__body{grid-column:1 / 13;}
  .edp__a, .edp__b, .edt__1, .edt__2, .edt__3{grid-column:1 / 13; margin-top:0;}
  .edp, .edt{gap:clamp(30px,5vw,50px);}
  .edph__strip{grid-template-columns:repeat(2,1fr);}
  .edph__strip a:nth-child(n){margin-top:0;}
  .edpr__n{grid-column:1 / 13; padding-top:0;}
  .edpr__t{grid-column:1 / 13; margin-top:8px;}
  .edpr__d{grid-column:1 / 13; padding-top:12px;}
  .edpr__ways h3, .edpr__ways ul{grid-column:1 / 13;}
  .edpr__ways ul{margin-top:20px;}
}
@media (max-width:640px){
  .edf__img{height:clamp(320px,56vh,520px);}
  .edf__t{font-size:clamp(1.8rem,9vw,2.6rem);}
  .eds__q{font-size:clamp(1.9rem,9.5vw,2.8rem); max-width:none;}
  .edph__strip{grid-template-columns:1fr;}
  .edph__strip a:nth-child(n){aspect-ratio:3/2;}
}

/* ---------- HOMEPAGE PRACTICE PREVIEW ---------- */
.edpv{padding:clamp(52px,8vw,120px) var(--ed-gutter); border-top:1px solid var(--rule);}
.edpv__top{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(18px,2.6vw,44px); align-items:end;
  margin-bottom:clamp(28px,4vw,56px);}
.edpv__h{grid-column:1 / 8; font-family:var(--serif); font-weight:300; font-size:clamp(1.9rem,5.4vw,4.6rem);
  line-height:1; letter-spacing:-.03em; margin:0;}
.edpv__h em{font-style:italic;}
.edpv__d{grid-column:8 / 13; margin:0; color:var(--muted); line-height:1.66; font-size:1rem;}
.edpv__list{display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(26px,4vw,72px);}
.edpv__i{display:flex; gap:clamp(14px,1.6vw,24px); align-items:baseline; border-top:1px solid var(--rule);
  padding:clamp(14px,1.8vw,22px) 0;}
.edpv__i b{font-weight:600; font-size:10.5px; letter-spacing:.18em; color:var(--accent);
  font-variant-numeric:tabular-nums; min-width:24px;}
.edpv__i span{font-family:var(--serif); font-weight:300; font-size:clamp(1.05rem,1.9vw,1.6rem);
  letter-spacing:-.015em; line-height:1.2;}
.edpv__foot{display:flex; justify-content:flex-end; margin-top:clamp(24px,3vw,44px);}
@media (max-width:1000px){
  .edpv__h, .edpv__d{grid-column:1 / 13;}
  .edpv__d{margin-top:16px;}
  .edpv__list{grid-template-columns:1fr;}
  .edpv__foot{justify-content:flex-start;}
}

/* ---------- HOME: four curated features ---------- */
.edf__bar{align-items:flex-end;}
.edf__lead{display:flex; align-items:baseline; gap:clamp(12px,1.6vw,26px);}
.edf__n, .edm__n{font-size:10.5px; letter-spacing:.2em; color:var(--accent); font-weight:600;
  font-variant-numeric:tabular-nums; display:block;}
.edm__n{margin:clamp(14px,1.6vw,20px) 0 6px;}
.edm__t{margin-top:0;}

/* 02 tall + 03 wide, asymmetric */
.edx{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(18px,2.6vw,48px);
  padding:0 var(--ed-gutter); margin:0 0 clamp(44px,6vw,100px); align-items:start;}
.edx__tall{grid-column:1 / 7;}
.edx__wide{grid-column:8 / 13; margin-top:clamp(60px,10vw,190px);}
.edm--tall .edm__img{aspect-ratio:4/5;}
.edm--wide .edm__img{aspect-ratio:3/2;}

/* 04 breaks the grid — inset, wide */
.edy{display:grid; grid-template-columns:repeat(12,1fr); padding:0 var(--ed-gutter);
  margin:0 0 clamp(20px,3vw,44px);}
.edy > .edm{grid-column:3 / 12;}
.edm--break .edm__img{aspect-ratio:16/9;}

/* prominent View All Work */
.edva{padding:clamp(34px,5vw,70px) var(--ed-gutter) clamp(52px,8vw,110px); border-bottom:1px solid var(--rule);}
.edva a{display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap;
  font-family:var(--serif); font-weight:300; font-size:clamp(1.8rem,5.6vw,4.6rem);
  letter-spacing:-.03em; line-height:1;}
.edva a small{font-family:var(--font-body); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  font-weight:600; color:var(--muted);}
.edva a:hover{color:var(--accent);}
@media (max-width:1000px){
  .edx__tall, .edx__wide{grid-column:1 / 13; margin-top:0;}
  .edx{gap:clamp(30px,5vw,50px);}
  .edy > .edm{grid-column:1 / 13;}
}
@media (max-width:640px){ .edm--break .edm__img{aspect-ratio:3/2;} }

/* =====================================================================
   V3 — SCALE CORRECTION
   The v2 display sizes were tuned on a large monitor and read as
   oversized everywhere else. This dials the whole type scale and the
   vertical rhythm back to an editorial, readable size.
   ===================================================================== */

/* --- hero --- */
.ed-hero{padding:clamp(24px,3.4vw,56px) 0 clamp(30px,3.6vw,60px);}
.ed-hero__name{font-size:clamp(2.4rem,8.4vw,7rem); line-height:.88; letter-spacing:-.035em;}
.ed-hero__bar{margin-top:clamp(12px,1.2vw,18px); font-size:10.5px;}
.ed-hero__grid{margin-top:clamp(24px,3vw,46px);}
.ed-hero__lead{grid-column:6 / 13; font-size:clamp(1.3rem,2.3vw,2rem); line-height:1.16;}
.ed-hero__body{grid-column:6 / 12; margin-top:clamp(14px,1.4vw,20px); font-size:.95rem; line-height:1.62;}

/* --- page mastheads --- */
.ed-mast{padding:clamp(26px,3.4vw,52px) 0 clamp(18px,2.2vw,32px);}
.ed-mast__h{font-size:clamp(2.1rem,6.4vw,5rem); line-height:.92;}
.ed-mast__k{font-size:10.5px; margin-bottom:clamp(12px,1.4vw,18px);}
.ed-mast__d{margin-top:clamp(16px,1.8vw,24px); font-size:.98rem; max-width:54ch;}

/* --- featured lead image --- */
.edf{margin-bottom:clamp(26px,3.2vw,52px);}
.edf__img{height:clamp(280px,48vh,560px);}
.edf__bar{padding-top:clamp(12px,1.4vw,18px);}
.edf__t{font-size:clamp(1.45rem,3.2vw,2.7rem); line-height:1.0;}
.edf__m{font-size:10.5px; gap:20px; padding-bottom:6px;}

/* --- modules --- */
.edm__t{font-size:clamp(1.1rem,1.8vw,1.7rem); margin-top:0;}
.edm__n{margin:clamp(10px,1.1vw,14px) 0 5px;}
.edm__m{font-size:10px; gap:16px; margin-top:7px;}
.edx{margin-bottom:clamp(28px,3.4vw,56px);}
.edx__wide{margin-top:clamp(28px,4vw,74px);}
.edp__b{margin-top:clamp(28px,4vw,70px);}
.edy{margin-bottom:clamp(14px,1.8vw,28px);}

/* --- view all --- */
.edva{padding:clamp(22px,2.6vw,38px) var(--ed-gutter) clamp(30px,4vw,56px);}
.edva a{font-size:clamp(1.25rem,2.8vw,2.3rem);}

/* --- practice preview + practice page --- */
.edpv{padding:clamp(34px,4.6vw,68px) var(--ed-gutter);}
.edpv__h{font-size:clamp(1.4rem,2.9vw,2.4rem);}
.edpv__d{font-size:.95rem;}
.edpv__i{padding:clamp(11px,1.2vw,16px) 0;}
.edpv__i span{font-size:clamp(.98rem,1.4vw,1.25rem);}
.edpr__row{padding:clamp(18px,2.2vw,32px) 0;}
.edpr__t{font-size:clamp(1.25rem,2.4vw,2rem);}
.edpr__d{font-size:.95rem; line-height:1.65; padding-top:5px;}
.edpr__n{padding-top:7px; font-size:10.5px;}
.edpr__ways{padding-top:clamp(26px,3.4vw,52px);}
.edpr__ways h3{font-size:clamp(1.2rem,2vw,1.7rem);}
.edpr__ways li{padding:13px 0;}

/* --- statement + break + cta --- */
.eds{padding:clamp(34px,4.6vw,72px) var(--ed-gutter);}
.eds__q{font-size:clamp(1.5rem,3.4vw,2.8rem); max-width:22ch;}
.ed-break{padding:clamp(34px,4.6vw,72px) 0;}
.ed-break__lead{font-size:clamp(1.2rem,2.1vw,1.8rem); line-height:1.26;}
.ed-break__side{font-size:.94rem;}
.ed-cta{padding:clamp(38px,5.2vw,82px) 0;}
.ed-cta__h{font-size:clamp(1.9rem,5vw,4rem);}
.ed-cta__row{margin-top:clamp(20px,2.4vw,34px);}
.ed-cta__p{font-size:.95rem;}

/* --- project rows (Work) --- */
.ed-proj{padding:clamp(26px,3.4vw,52px) 0;}
.ed-proj--std  .ed-proj__media{max-height:460px;}
.ed-proj--tall .ed-proj__media{max-height:520px;}
.ed-proj--wide .ed-proj__media{max-height:400px;}
.ed-proj__t{font-size:clamp(1.2rem,2vw,1.8rem); margin-top:9px;}
.ed-proj__d{margin-top:11px; font-size:10.5px; line-height:1.8;}
.ed-proj__s{font-size:.9rem; margin-top:10px;}

/* --- project detail page --- */
.p-title{font-size:clamp(1.9rem,5vw,3.8rem) !important; line-height:1 !important;}

/* --- about / photo strip / footer --- */
.ed-about{gap:clamp(20px,2.6vw,42px); padding-bottom:clamp(28px,3.6vw,56px);}
.ed-about__text p{font-size:.97rem; line-height:1.68;}
.ed-about__text p:first-child{font-size:clamp(1.15rem,1.8vw,1.5rem);}
.ed-facts{padding:clamp(24px,3.2vw,46px) 0;}
.ed-cv{padding:clamp(24px,3.2vw,46px) 0;}
.ed-cv h3{font-size:clamp(1.2rem,2.2vw,1.8rem);}
.ed-photo{padding:clamp(32px,4.4vw,68px) 0;}
.edph__k{font-size:clamp(1.4rem,3vw,2.4rem);}

@media (max-width:640px){
  .ed-hero__name{font-size:clamp(2.1rem,11vw,3.2rem);}
  .ed-mast__h{font-size:clamp(2rem,10vw,3rem);}
  .ed-hero__lead{font-size:1.25rem;}
  .edf__img{height:clamp(240px,42vh,380px);}
  .edf__t{font-size:1.5rem;}
  .ed-cta__h{font-size:clamp(1.8rem,9vw,2.6rem);}
  .eds__q{font-size:clamp(1.5rem,7.5vw,2.2rem); max-width:none;}
}

/* --- lead feature caption: stack it left instead of flinging the
       metadata to the opposite edge; matches modules 02/03/04 --- */
.edf__bar{display:block; padding:clamp(12px,1.4vw,18px) var(--ed-gutter) 0;}
.edf__lead{display:flex; align-items:baseline; gap:clamp(10px,1.2vw,18px);}
.edf__n{padding-top:2px;}
.edf__m{display:flex; gap:18px; flex-wrap:wrap; margin-top:8px; padding-bottom:0;}

/* --- homepage: four equal modules in a calm 2x2 grid --- */
#home-modules{display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(20px,2.6vw,44px) clamp(20px,2.6vw,44px);
  padding:0 var(--ed-gutter); margin-bottom:clamp(24px,3vw,44px);}
.edx, .edy{display:contents;}
.edx__tall, .edx__wide, .edy > .edm{grid-column:auto; margin-top:0;}
.edf{margin:0;}
.edf__img{height:auto; width:100%; aspect-ratio:4/3;}
.edf__bar{display:block; padding:clamp(10px,1.2vw,16px) 0 0;}
.edf__lead{display:block;}
.edf__n{display:block; margin-bottom:5px;}
.edf__t{font-size:clamp(1.1rem,1.8vw,1.7rem); line-height:1.05;}
.edf__m{margin-top:7px; gap:16px; font-size:10px;}
.edm--tall .edm__img, .edm--wide .edm__img, .edm--break .edm__img{aspect-ratio:4/3;}
.edm__n{margin-top:clamp(10px,1.2vw,16px);}
@media (max-width:760px){
  #home-modules{grid-template-columns:1fr; gap:clamp(24px,5vw,36px);}
  .edf__img, .edm--tall .edm__img, .edm--wide .edm__img, .edm--break .edm__img{aspect-ratio:3/2;}
}

/* --- homepage hero: the name is already in the nav and the footer.
       Keep the H1 for search engines / screen readers, but let the
       positioning line be what the visitor actually reads first.
       The "Strategist / Independent practice" bar is removed: the nav
       already carries the title. --- */
.ed-hero__name{position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;}
.ed-hero__bar{display:none;}
.ed-hero{padding:clamp(34px,5vw,84px) 0 clamp(26px,3.2vw,52px);}
.ed-hero__grid{margin-top:0;}
.ed-hero__lead{grid-column:1 / 9; font-size:clamp(1.55rem,3.1vw,2.9rem); line-height:1.12;}
.ed-hero__body{grid-column:1 / 7; margin-top:clamp(16px,1.6vw,24px);}
@media (max-width:1000px){
  .ed-hero__lead, .ed-hero__body{grid-column:1 / 13;}
}

/* --- project pages: pull the headings into the editorial type system
       (they were still set in the old bold sans) --- */
.p-title{font-family:var(--serif); font-weight:300; letter-spacing:-.03em;}
.pnext strong{font-family:var(--serif); font-weight:300; letter-spacing:-.02em;
  font-size:clamp(1.15rem,2vw,1.75rem); line-height:1.1;}
.p-cat{font-size:11px; letter-spacing:.2em; color:var(--accent); font-weight:600;}
.p-meta dt{font-size:10.5px; letter-spacing:.2em; color:var(--muted); font-weight:600;}
.p-skills h3{font-size:10.5px; letter-spacing:.2em; color:var(--muted); font-weight:600;}

/* --- About: the portrait is a small aside, not a hero --- */
.ed-about__portrait{grid-column:1 / 2; grid-row:1; align-self:start;}
.ed-about__portrait img{width:100%; max-width:112px; aspect-ratio:1/1; object-fit:cover;}
.ed-about__text{grid-column:3 / 9; grid-row:1;}
.ed-about__facts{grid-row:1; align-self:start;}
@media (max-width:1000px){
  .ed-about__portrait{grid-column:1 / 13; grid-row:auto;}
  .ed-about__text{grid-column:1 / 13; grid-row:auto;}
  .ed-about__facts{grid-column:1 / 13 !important; grid-row:auto;}
}

/* --- no italics anywhere: the display face reads as roman only --- */
em, i, .ed-hero__name em, .ed-mast__h em, .ed-cta__h em, .edpv__h em,
.eds__q em, .ed-break__lead em, .edva a em, .edm__t em, .edf__t em,
.p-title em, .ed-about__text em{font-style:normal !important;}

/* =====================================================================
   HOME HERO — COLLAGE
   A wordmark centered among a handful of personal images. Simple grid
   placement, no rotation/overlap tricks — just uneven vertical rhythm.
   ===================================================================== */
.hc{padding:clamp(20px,3vw,40px) 0 clamp(30px,4.4vw,60px);}
.hc__wrap{max-width:var(--ed-maxw); margin:0 auto; padding:0 var(--ed-gutter);
  display:grid; grid-template-columns:repeat(12,1fr);
  column-gap:clamp(12px,1.8vw,26px); row-gap:clamp(20px,3vw,38px); align-items:center;}
.hc__img{width:100%; height:100%; object-fit:cover; display:block; background:var(--card);}

.hc__img--a{grid-column:1 / 4; grid-row:1; aspect-ratio:3/4; align-self:end;}
.hc__word{grid-column:4 / 10; grid-row:1; margin:0; text-align:center; align-self:center;
  font-family:var(--serif); font-weight:300; line-height:.86; letter-spacing:-.03em;
  font-size:clamp(2.4rem,6.6vw,6rem);}
.hc__word span{display:block; color:var(--accent); font-size:.62em;}
.hc__img--b{grid-column:10 / 13; grid-row:1; aspect-ratio:4/5; align-self:start;}

.hc__img--c{grid-column:1 / 4; grid-row:2; aspect-ratio:1/1;}
.hc__img--d{grid-column:4 / 7; grid-row:2; aspect-ratio:3/2; align-self:start; margin-top:clamp(16px,2.6vw,34px);}
.hc__img--e{grid-column:7 / 10; grid-row:2; aspect-ratio:3/4;}
.hc__img--f{grid-column:10 / 13; grid-row:2; aspect-ratio:3/2;}

/* Same composition at every size — all six images, same relative
   layout — the 12-col grid just scales the tiles down; nothing is
   hidden or restructured on smaller screens. */
@media (max-width:640px){
  .hc__wrap{column-gap:8px; row-gap:10px;}
  .hc__word{font-size:clamp(1.3rem,7.6vw,1.9rem);}
}

/* --- Work: a clean square grid instead of alternating full-width rows --- */
#work-rows{display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(22px,2.6vw,44px) clamp(18px,2.2vw,36px);}
#work-rows .ed-proj{display:block; padding:0; border:0;}
#work-rows .ed-proj + .ed-proj{border-top:0;}
#work-rows .ed-proj__media{display:block; width:100%; aspect-ratio:1/1;
  max-height:none; order:0; overflow:hidden;}
#work-rows .ed-proj__media img{width:100%; height:100%; object-fit:cover;}
#work-rows .ed-proj__meta{padding:clamp(10px,1.2vw,15px) 0 0; order:0;}
#work-rows .ed-proj__n{font-size:10px;}
#work-rows .ed-proj__t{font-size:clamp(1.02rem,1.4vw,1.3rem); line-height:1.1; margin-top:6px;}
#work-rows .ed-proj__d{margin-top:7px; font-size:10px; line-height:1.55;}
#work-rows .ed-proj__s, #work-rows .ed-proj__go{display:none;}
@media (max-width:1100px){ #work-rows{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:620px){ #work-rows{grid-template-columns:1fr;} }

/* =====================================================================
   PROJECT DETAIL — LIVE SITE EMBED
   A browser-chrome mockup around the site screenshot: a slow auto-pan
   through the page, paused on hover with a "visit" CTA. No iframe —
   works regardless of the target site's framing policy.
   ===================================================================== */
.site-embed__cta-above{display:none;}
@media (hover:none){
  .site-embed__cta-above{display:inline-flex; align-items:center; gap:8px; margin:0 0 12px;
    font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--ink);
    border-bottom:1px solid var(--ink); padding-bottom:4px;}
  .site-embed__cta-above i{font-style:normal;}
}
.site-embed__frame{display:block; border-radius:12px; overflow:hidden;
  border:1px solid var(--line); background:var(--card);
  box-shadow:0 1px 2px rgba(19,17,14,.04);
  transition:box-shadow .4s ease, transform .4s ease;}
@media (hover:hover){
  .site-embed__frame:hover{transform:translateY(-3px); box-shadow:0 28px 64px -24px rgba(19,17,14,.32);}
}
.site-embed__bar{display:flex; align-items:center; gap:14px; padding:11px 16px;
  background:var(--paper-2); border-bottom:1px solid var(--line);}
.site-embed__dots{display:flex; gap:6px; flex:none;}
.site-embed__dots i{width:9px; height:9px; border-radius:50%; display:block;}
.site-embed__dots i:nth-child(1){background:#dd8f83;}
.site-embed__dots i:nth-child(2){background:#e3bd78;}
.site-embed__dots i:nth-child(3){background:var(--accent);}
.site-embed__url{flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
  margin:0 auto; padding:6px 18px; max-width:60%; background:var(--paper);
  border:1px solid var(--line); border-radius:999px;
  font-size:11.5px; letter-spacing:.02em; color:var(--muted);}
.site-embed__url svg{flex:none; opacity:.75;}
.site-embed__live{flex:none; display:flex; align-items:center; gap:6px;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--muted);}
.site-embed__live i{width:6px; height:6px; border-radius:50%; background:var(--accent); position:relative;}
.site-embed__live i::after{content:""; position:absolute; inset:-4px; border-radius:50%;
  border:1px solid var(--accent); animation:siteEmbedPulse 2.2s ease-out infinite;}
.site-embed__view{display:block; position:relative; overflow:hidden; aspect-ratio:21/9; background:var(--card);}
.site-embed__img{position:absolute; top:0; left:0; width:100%; height:auto; display:block;
  animation:siteEmbedPan 17s ease-in-out infinite alternate;}
@media (hover:hover){ .site-embed__frame:hover .site-embed__img{animation-play-state:paused;} }
.site-embed__cta{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:10px;
  background:linear-gradient(180deg, rgba(19,17,14,.18), rgba(19,17,14,.5));
  color:#fff; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  opacity:0; transition:opacity .4s ease;}
.site-embed__cta i{font-style:normal; transition:transform .4s ease;}
@media (hover:hover){
  .site-embed__frame:hover .site-embed__cta{opacity:1;}
  .site-embed__frame:hover .site-embed__cta i{transform:translateX(6px);}
}
@keyframes siteEmbedPan{ 0%{transform:translateY(0);} 100%{transform:translateY(-30%);} }
@keyframes siteEmbedPulse{ 0%{opacity:.9; transform:scale(.4);} 100%{opacity:0; transform:scale(1.6);} }
@media (prefers-reduced-motion:reduce){
  .site-embed__img{animation:none;}
  .site-embed__live i::after{animation:none; display:none;}
}
@media (max-width:640px){
  .site-embed__bar{padding:9px 12px; gap:10px;}
  .site-embed__url{max-width:52%; font-size:10.5px; padding:5px 12px;}
  .site-embed__live span{display:none;}
}

/* =====================================================================
   PROJECT DETAIL — IMAGE CATALOG
   For media rows with captions (product/merch shots): uniform cards
   with a shared background and border so a set of unevenly-cropped
   renders reads as one deliberate catalog instead of a photo dump.
   ===================================================================== */
.media__catalog{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.2vw,28px);}
.media__tile{margin:0;}
.media__tile-img{display:block; position:relative; aspect-ratio:4/3; overflow:hidden;
  background:var(--card); border:1px solid var(--line); border-radius:10px;}
.media__tile-img img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
@media (hover:hover){ .media__tile:hover .media__tile-img img{transform:scale(1.045);} }
.media__tile figcaption{margin-top:10px; font-size:12px; letter-spacing:.02em; color:var(--muted);}
@media (max-width:900px){ .media__catalog{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .media__catalog{grid-template-columns:1fr; max-width:360px; margin:0 auto;} }

/* =====================================================================
   RESUME / CV — written out as text, two-column: facts sidebar +
   experience/projects as the main column.
   ===================================================================== */
.cv{padding:clamp(20px,3vw,40px) 0 clamp(60px,8vw,110px);}
.cv__grid{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(28px,4vw,56px);}
.cv__col{grid-column:1 / 5;}
.cv__col--main{grid-column:5 / 13;}
.cv__block{margin-bottom:clamp(34px,4.4vw,52px);}
.cv__block:last-child{margin-bottom:0;}
.cv__h{font-family:var(--serif); font-weight:300; font-size:clamp(1.1rem,1.8vw,1.5rem);
  letter-spacing:-.01em; margin:0 0 clamp(14px,1.8vw,20px); padding-bottom:10px; border-bottom:1px solid var(--rule);}
.cv__item-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.cv__item-head strong{font-weight:600; font-size:.98rem;}
.cv__item-head span{font-size:11px; letter-spacing:.08em; color:var(--muted); white-space:nowrap;}
.cv__item-sub{margin:4px 0 0; font-size:.9rem; color:var(--muted); line-height:1.5;}
.cv__list{margin:0; padding:0; list-style:none;}
.cv__list li{position:relative; padding-left:16px; margin-bottom:10px; font-size:.9rem; line-height:1.55;}
.cv__list li::before{content:"\2014"; position:absolute; left:0; color:var(--accent);}
.cv__skill{margin-bottom:14px; font-size:.9rem; line-height:1.6;}
.cv__skill:last-child{margin-bottom:0;}
.cv__skill b{display:block; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:4px;}
.cv__skill span{color:var(--muted);}
.cv__course{margin:0; font-size:.88rem; line-height:1.7; color:var(--muted);}

.cv__job{padding:clamp(18px,2.4vw,26px) 0; border-top:1px solid var(--rule);}
.cv__job:first-of-type{border-top:0; padding-top:0;}
.cv__job-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.cv__job-head div{font-size:1rem; line-height:1.4;}
.cv__job-head strong{font-weight:600;}
.cv__date{font-size:11px; letter-spacing:.06em; color:var(--muted); white-space:nowrap;}
.cv__job ul{margin:10px 0 0; padding:0; list-style:none;}
.cv__job li{position:relative; padding-left:16px; margin-bottom:8px; font-size:.94rem; line-height:1.58;}
.cv__job li::before{content:"\2014"; position:absolute; left:0; color:var(--accent);}
.cv__ref{display:inline-block; margin-top:10px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  border-bottom:1px solid var(--ink); padding-bottom:3px;}
.cv__ref:hover{color:var(--accent); border-color:var(--accent);}

@media (max-width:1000px){
  .cv__col, .cv__col--main{grid-column:1 / 13;}
}
