/* Duncan Robertson — shared styles. Generated from per-page inline+block CSS. */

*,*::before,*::after {
  box-sizing:border-box;margin:0;padding:0;
}

html {
  font-size: 17px; scroll-behavior: smooth;
}

body {
  --bg: #EFE7DC;
  --header: #E8E0D0;
  --text: #1E1614;
  --soft: rgba(30,22,20,1);
  --sub: #3D2E28;
  --rule: rgba(30,22,20,0.1);
  --rulemid: rgba(30,22,20,0.18);
  --footer: #1E1614;
  --olv: #5A6A48;
  --frame: rgba(196,96,58,0.6);
  --frameinner: rgba(196,96,58,0.25);
  --pgrad: linear-gradient(150deg, #EFE7DC 0%, #D4A478 45%, #C07848 100%);
  --pring1: rgba(196,96,58,0.28);
  --pring2: rgba(196,96,58,0.13);
  --ringA: rgba(196,96,58,0.28);
  --ringB: rgba(196,96,58,0.1);
  --surface: #FAF6F0;
  --card: #1E1614;
  --cardhov: #2d201c;
  --cardtext: #EFE7DC;
  --cardsoft: rgba(239,231,220,1);
  --sab: #E3D8CA;
  --pcard: #EFE7DC;
  --cream: #FAF6F0;
  --birch: #E3D8CA;
  --field: #FAF6F0;
  --panel: #E3D8CA;
  margin: 0; background: var(--bg); color: var(--text); font-family: 'Raleway', sans-serif; font-weight: 300; line-height: 1.7; -webkit-font-smoothing: antialiased; transition: background 0.4s ease, color 0.4s ease;
}

body.dj-dark {
  --bg: #1E1614;
  --header: #13100A;
  --text: #EFE7DC;
  --soft: rgba(239,231,220,1);
  --sub: rgba(201,168,76,0.9);
  --rule: rgba(239,231,220,0.1);
  --rulemid: rgba(239,231,220,0.22);
  --footer: #13100A;
  --olv: #7A8A64;
  --pgrad: linear-gradient(150deg, #3D2E28 0%, #D4A478 45%, #C07848 100%);
  --pring1: rgba(201,168,76,0.45);
  --pring2: rgba(201,168,76,0.2);
  --ringA: rgba(196,96,58,0.45);
  --ringB: rgba(196,96,58,0.14);
  --surface: #241C18;
  --card: #2A211D;
  --cardhov: #362B25;
  --exp-title: #FFFFFF;
  --sab: #2A211D;
  --pcard: #2A211D;
  --field: #2A211D;
  --birch: rgba(239,231,220,0.25);
  --panel: #241C18;
}

body.dj-cs {
  font-weight: 400;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; } to { opacity: 1; }
}

@keyframes arrowSlideRight {
  0% { transform: translateY(-50%) translateX(-87.5px); opacity: 0; animation-timing-function: linear; } 21% { transform: translateY(-50%) translateX(-87.5px); opacity: 1; animation-timing-function: ease-out; } 35% { transform: translateY(-50%) translateX(0); opacity: 1; } 53% { transform: translateY(-50%) translateX(0); opacity: 1; animation-timing-function: ease-in; } 73% { transform: translateY(-50%) translateX(0); opacity: 0; } 100% { transform: translateY(-50%) translateX(0); opacity: 0; }
}

@keyframes mapDraw {
  to { stroke-dashoffset: 0; }
}

@keyframes mapAppear {
  from { opacity: 0; } to { opacity: 1; }
}

@keyframes mapFadeOut {
  from { opacity: 1; } to { opacity: 0.5; }
}

.cta-arrow::after {
  content:'';position:absolute;right:-7.5px;top:50%;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7.5px solid #C4603A;animation:arrowSlideRight 5.5s linear 2.5s infinite backwards;
}

.hm-grid {
  display: grid; grid-template-columns: 174px 1fr; min-height: calc(100vh - 60px);
}

.hm-rail {
  display: flex; flex-direction: column; align-items: center; justify-content: space-between; border-right: 1px solid rgba(196,96,58,0.3); padding: 34px 0;
}

.hm-topstrip {
  display: none;
}

.hm-hero {
  display: grid; grid-template-columns: 1.12fr 0.88fr; gap: clamp(32px, 5vw, 68px); align-items: center; padding: clamp(44px, 7vh, 96px) clamp(28px, 5vw, 72px); min-height: 100%; box-sizing: border-box;
}

.hm-portrait-col {
  display: flex; justify-content: center;
}

.hm-foot {
  max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(239,231,220,0.1);
}

/* pill light/dark toggle */ .dj-toggle {
  position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:54px;height:26px;padding:0 7px;border-radius:999px;border:1px solid var(--rulemid);background:var(--text);cursor:pointer;flex:0 0 auto;transition:border-color .2s,background .4s ease;
}

.dj-toggle:hover {
  border-color:#C4603A;
}

.dj-toggle .dj-sun,.dj-toggle .dj-moon {
  color:var(--bg);position:relative;z-index:1;
}

.dj-knob {
  position:absolute;top:50%;left:3px;width:18px;height:18px;border-radius:50%;background:#C4603A;transform:translateY(-50%);transition:left .25s ease;z-index:2;box-shadow:0 1px 3px rgba(0,0,0,.35);
}

body.dj-dark .dj-knob {
  left:33px;
}

.pg-nav {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; row-gap: 4px; padding: 14px 16px;
}

.pg-2col {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 80px); align-items: start; margin-bottom: 40px;
}

.pg-casegrid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--rulemid);
}

.pg-foot {
  max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(239,231,220,0.1);
}

.rv-grid {
  display: grid; grid-template-columns: 174px 1fr;
}

.rv-rail {
  position: sticky; top: 0; align-self: start; height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: space-between; border-right: 1px solid rgba(196,96,58,0.3); padding: 34px 0; background: var(--header); transition: background 0.35s ease; box-sizing: border-box;
}

.rv-col {
  min-width: 0;
}

.rv-col-contact {
  display: flex; flex-direction: column; min-height: 100vh;
}

.rv-topstrip {
  display: none;
}

.rv-header {
  display: flex; align-items: center; justify-content: center; padding: 15px 24px; border-bottom: 1px solid var(--rulemid); background: var(--header); position: sticky; top: 0; z-index: 90; transition: background 0.35s ease;
}

.exp-title-color {
  
}

.pg-portgrid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px;
}

.pfc {
  text-decoration: none; cursor: pointer; display: block;
}

.pfc .pfc-img {
  aspect-ratio: 4/3; position: relative; overflow: hidden; margin-bottom: 18px; transition: box-shadow 0.3s;
}

.pfc:hover .pfc-img {
  box-shadow: 0 0 0 2px #C4603A;
}

.pfc .pfc-inner {
  position: absolute; inset: 0; transition: transform 0.5s ease;
}

.pfc:hover .pfc-inner {
  transform: scale(1.04);
}

.pfc .pfc-photo {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); opacity: 0.5; transition: filter 0.4s ease, opacity 0.4s ease;
}

.pfc:hover .pfc-photo {
  filter: grayscale(0%); opacity: 1;
}

.pfc .pfc-title {
  transition: color 0.2s;
}

.pfc:hover .pfc-title {
  color: #C4603A !important;
}

.cv-enthead {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}

.cv-subhead {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 16px;
}

.tc-row {
  display: flex; flex-direction: row; align-items: center; gap: 48px; padding: 44px 48px; background: rgba(255,255,255,0.1);
}

.tc-row.tc-rev {
  flex-direction: row-reverse;
}

body.dj-dark img[alt="HashiCorp"] {
  filter:drop-shadow(0 0 2.5px rgba(255,255,255,0.5));
}

.people-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px;
}

.facts-row {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 12px; padding: 16px 0 8px;
}

.facts-picto {
  display: grid; grid-template-rows: 1fr auto 1fr; align-items: center; justify-items: center; gap: 14px; flex: 1 1 130px; min-width: 100px; max-width: 210px;
}

.map-quote-br {
  display: inline;
}

.seg-1 {
  stroke-dasharray: 500; stroke-dashoffset: 500; animation: mapDraw 1.4s ease-in-out 0.5s forwards, mapFadeOut 0.8s ease-in 1.7s forwards;
}

.seg-2 {
  stroke-dasharray: 800; stroke-dashoffset: 800; animation: mapDraw 1.8s ease-in-out 2.0s forwards, mapFadeOut 0.8s ease-in 3.6s forwards;
}

.seg-3 {
  stroke-dasharray: 270; stroke-dashoffset: 270; animation: mapDraw 0.6s ease-in-out 3.9s forwards, mapFadeOut 0.8s ease-in 4.4s forwards;
}

.seg-4 {
  stroke-dasharray: 550; stroke-dashoffset: 550; animation: mapDraw 1.5s ease-in-out 4.7s forwards;
}

.seg-5 {
  stroke-dasharray: 620; stroke-dashoffset: 620; animation: mapDraw 1.5s ease-in-out 6.3s forwards;
}

.city-austin {
  opacity: 0; animation: mapAppear 0.3s ease 0.1s forwards, mapFadeOut 0.8s ease-in 1.7s forwards;
}

.city-brooklyn {
  opacity: 0; animation: mapAppear 0.3s ease 1.7s forwards, mapFadeOut 0.8s ease-in 3.6s forwards;
}

.city-sf {
  opacity: 0; animation: mapAppear 0.3s ease 3.6s forwards, mapFadeOut 0.8s ease-in 4.4s forwards;
}

.city-denver {
  opacity: 0; animation: mapAppear 0.3s ease 4.4s forwards;
}

.city-vietnam {
  opacity: 0; animation: mapAppear 0.3s ease 5.9s forwards;
}

.map-title {
  opacity: 0; animation: mapAppear 1.4s ease 1.7s forwards;
}

.map-caption {
  opacity: 0; animation: mapAppear 1.6s ease 4.7s forwards;
}

.co-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: start;
}

.ct-field {
  width: 100%; padding: 13px 16px; background: var(--field); border: 1px solid transparent; border-bottom: 2px solid var(--birch); font-family: 'Raleway', sans-serif; font-size: 0.9rem; font-weight: 300; color: var(--text); outline: none; transition: border-bottom-color 0.2s; -webkit-appearance: none; box-sizing: border-box;
}

.ct-field::placeholder {
  color: rgba(128,128,128,0.5);
}

.ct-field:focus {
  border-bottom-color: #C4603A;
}

.cs-section-inner {
  max-width: 900px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 80px);
}

.cs-stats-row {
  display: flex; align-items: stretch; border: 1px solid var(--rulemid); margin: 44px 0 0;
}

.cs-stat {
  flex: 1; padding: 34px 32px 38px; position: relative;
}

.cs-stat + .cs-stat {
  border-left: 1px solid var(--rulemid);
}

@media (max-width: 1024px) {
  .pg-2col { grid-template-columns: 1fr; gap: 44px; }
  .pg-portgrid { grid-template-columns: repeat(2, 1fr); }
  .co-grid { grid-template-columns: 1fr; gap: 56px; }
}

@media (max-width: 900px) {
  .hm-grid { grid-template-columns: 1fr; min-height: calc(100vh - 44px); }
  .hm-rail { display: none; }
  .hm-topstrip { display: flex; }
  .hm-hero { grid-template-columns: 1fr; gap: 40px; text-align: center; padding-top: 36px; }
  .hm-portrait-col { order: -1; }
  .hm-greet, .hm-bio, .hm-eyebrow { text-align: center !important; }
  .hm-bio { margin-left: auto; margin-right: auto; }
  .hm-ctas { justify-content: center !important; }
  .rv-grid { grid-template-columns: 1fr; }
  .rv-rail { display: none; }
  .rv-topstrip { display: flex; align-items: center; justify-content: space-between; height: 55px; box-sizing: border-box; padding: 0 18px; border-bottom: 1px solid rgba(196,96,58,0.3); background: var(--header); position: sticky; top: 0; z-index: 100; }
  .rv-header { display: none; }
}

@media (max-width: 860px) {
  .pg-casegrid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .hm-foot { grid-template-columns: 1fr 1fr; gap: 32px; }
  .pg-foot { grid-template-columns: 1fr 1fr; gap: 32px; }
  .cs-foot { grid-template-columns: 1fr 1fr; gap: 32px; }
  .pg-hsub { font-size: 0.82rem !important; letter-spacing: 0.2em !important; }
  .pg-portgrid { grid-template-columns: 1fr; }
  .cv-enthead { flex-direction: column; align-items: stretch; gap: 3px; }
  .cv-enthead .cv-role { text-align: left !important; }
  .tc-row, .tc-row.tc-rev { flex-direction: column; text-align: center; padding: 32px 24px; gap: 28px; }
  .tc-photo { width: 120px !important; height: 120px !important; }
  .people-grid { grid-template-columns: 1fr; max-width: 320px; margin-left: auto; margin-right: auto; }
}

@media (max-width: 680px) {
  .cs-stats-row { flex-direction: column; }
  .cs-stat + .cs-stat { border-left: none; border-top: 1px solid var(--rulemid); }
}

@media (max-width: 480px) {
  .hm-ring-outer { display: none; }
}


/* ---- extracted inline styles (emitted last so they win ties, as inline did) ---- */

.dj-x1 { padding: clamp(14px, 2.6vw, 26px); min-height: 100vh; box-sizing: border-box; }

.dj-x2 { border: 1.5px solid var(--frame); padding: 6px; position: relative; box-sizing: border-box; }

.dj-x3 { position: absolute; top: -9px; left: -7px; font-size: 0.75rem; color: #C4603A; background: var(--bg); line-height: 1; padding: 2px; transition: background 0.4s ease; }

.dj-x4 { position: absolute; top: -9px; right: -7px; font-size: 0.75rem; color: #C4603A; background: var(--bg); line-height: 1; padding: 2px; transition: background 0.4s ease; }

.dj-x5 { position: absolute; bottom: -9px; left: -7px; font-size: 0.75rem; color: #C4603A; background: var(--bg); line-height: 1; padding: 2px; transition: background 0.4s ease; }

.dj-x6 { position: absolute; bottom: -9px; right: -7px; font-size: 0.75rem; color: #C4603A; background: var(--bg); line-height: 1; padding: 2px; transition: background 0.4s ease; }

.dj-x7 { border: 0.5px solid var(--frameinner); box-sizing: border-box; overflow: hidden; }

.dj-x8 { font-family: 'Poiret One', sans-serif; font-size: 1.6rem; letter-spacing: 0.14em; color: var(--text); text-decoration: none; }

.dj-x9 { display: flex; flex-direction: column; align-items: center; gap: 18px; }

.dj-x10 { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; color: #C4603A; }

.dj-x11 { font-size: 0.55rem; color: rgba(196,96,58,0.66); }

.dj-x12 { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; color: var(--text); transition: color 0.2s; }

.dj-x12:hover { color: #C4603A; }

.dj-x13 { display: flex; flex-direction: column; align-items: center; gap: 20px; }

.dj-x14 { display: flex; flex-direction: column; min-width: 0; }

.dj-x15 { align-items: center; justify-content: space-between; padding: 12px 18px; border-bottom: 1px solid rgba(196,96,58,0.3); gap: 12px; }

.dj-x16 { background: none; border: none; cursor: pointer; padding: 6px 0; display: flex; flex-direction: column; gap: 5px; flex: 0 0 auto; }

.dj-x17 { display: block; width: 22px; height: 1.5px; background: var(--text); }

.dj-x18 { flex: 1; min-width: 0; text-align: center; font-family: 'Poiret One', sans-serif; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.dj-x19 { font-family: 'Poiret One', sans-serif; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.4em; text-transform: uppercase; color: var(--sub); margin: 0 0 22px; text-align: left; }

.dj-x20 { font-family: 'Poiret One', sans-serif; font-weight: 700; margin: 0 0 26px; color: var(--text); text-align: left; line-height: 1.15; animation: fadeUp 0.7s ease both; }

.dj-x21 { display: block; text-transform: uppercase; font-size: clamp(0.95rem, 2vw, 1.25rem); letter-spacing: 0.3em; text-shadow: 0.2px 0 0 currentColor, -0.2px 0 0 currentColor; margin-bottom: 10px; }

.dj-x22 { display: block; font-variant: small-caps; color: #C4603A; font-size: clamp(3rem, 8.5vw, 5.4rem); letter-spacing: 0.1em; text-shadow: 0.3px 0 0 #C4603A, -0.3px 0 0 #C4603A; }

.dj-x23 { display: flex; align-items: center; gap: 16px; max-width: 200px; margin: 0 auto 26px 0; }

.dj-x24 { display: block; flex: 1; height: 1px; background: var(--rulemid); }

.dj-x25 { font-style: normal; font-size: 0.75rem; color: #C4603A; }

.dj-x26 { font-size: clamp(0.95rem, 1.4vw, 1.05rem); font-weight: 400; line-height: 1.9; color: var(--soft); text-align: left; max-width: 560px; margin: 0 0 18px; animation: fadeUp 0.8s 0.1s ease both; }

.dj-x27 { font-size: clamp(0.95rem, 1.4vw, 1.05rem); font-weight: 400; line-height: 1.9; color: var(--soft); text-align: left; max-width: 560px; margin: 0 0 38px; animation: fadeUp 0.8s 0.15s ease both; }

.dj-x28 { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; justify-content: flex-start; animation: fadeUp 0.9s 0.25s ease both; }

.dj-x29 { font-family: 'Poiret One', sans-serif; font-size: 1rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bg); background: #C4603A; text-decoration: none; padding: 14px 28px; transition: background 0.25s; }

.dj-x29:hover { background: #A44E2E; }

.dj-x30 { position: relative; display: block; width: 60px; height: 1px; background: var(--rulemid); }

.dj-x31 { font-family: 'Poiret One', sans-serif; font-size: 1rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #C4603A; text-decoration: none; padding: 14px 28px; border: 1px solid #C4603A; transition: color 0.25s, background 0.25s; }

.dj-x31:hover { background: rgba(196,96,58,0.1); color: #A44E2E; }

.dj-x32 { position: relative; display: flex; align-items: center; justify-content: center; animation: fadeIn 1s 0.2s ease both; }

.dj-x33 { position: absolute; width: clamp(300px, 34vw, 440px); height: clamp(300px, 34vw, 440px); border-radius: 50%; border: 1px solid var(--ringA); }

.dj-x34 { position: absolute; width: clamp(380px, 44vw, 560px); height: clamp(380px, 44vw, 560px); border-radius: 50%; border: 1px solid var(--ringB); }

.dj-x35 { width: clamp(180px, 24vw, 250px); height: clamp(180px, 24vw, 250px); border-radius: 50%; position: relative; display: flex; align-items: center; justify-content: center; background: var(--pgrad); box-shadow: 0 6px 40px rgba(196,96,58,0.25); }

.dj-x36 { position: absolute; inset: -14px; border-radius: 50%; border: 1.5px solid var(--pring1); }

.dj-x37 { position: absolute; inset: -28px; border-radius: 50%; border: 1px solid var(--pring2); }

.dj-x38 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.6rem, 5vw, 3.5rem); color: #1E1614; letter-spacing: 0.06em; line-height: 1; }

.dj-x39 { display:none; }

.dj-x40 { position: fixed; inset: 0; z-index: 300; background: var(--bg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; animation: fadeIn 0.25s ease both; }

.dj-x41 { position: absolute; top: 18px; right: 22px; background: none; border: none; cursor: pointer; font-family: 'Poiret One', sans-serif; font-size: 2rem; color: var(--text); line-height: 1; }

.dj-x42 { font-family: 'Poiret One', sans-serif; font-size: clamp(1.7rem, 7vw, 2.4rem); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; color: #C4603A; }

.dj-x43 { font-size: 0.7rem; color: #C4603A; }

.dj-x44 { font-family: 'Poiret One', sans-serif; font-size: clamp(1.7rem, 7vw, 2.4rem); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; color: var(--text); }

.dj-x45 { background: var(--footer); padding: 60px clamp(24px, 6vw, 80px) 0; color: rgba(239,231,220,1); transition: background 0.4s ease; }

.dj-x46 { text-align: center; }

.dj-x47 { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.3em; text-transform: uppercase; color: #C4603A; margin: 0 0 20px; }

.dj-x48 { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }

.dj-x49 { font-size: 0.84rem; font-weight: 600; color: rgba(239,231,220,0.85); text-decoration: none; transition: color 0.2s; }

.dj-x49:hover { color: #C4603A; }

.dj-x50 { font-size: 0.84rem; font-weight: 600; color: rgba(239,231,220,0.85); text-decoration: none; }

.dj-x51 { font-size: 0.84rem; font-weight: 400; color: rgba(239,231,220,1); line-height: 1.9; margin: 0; }

.dj-x52 { display: flex; justify-content: center; gap: 24px; }

.dj-x53 { color: rgba(239,231,220,0.85); transition: color 0.2s; }

.dj-x53:hover { color: #C4603A; }

.dj-x54 { max-width: 1200px; margin: 0 auto; padding: 24px 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: center; }

.dj-x55 { font-size: 0.75rem; font-weight: 400; letter-spacing: 0.08em; color: rgba(239,231,220,0.85); margin: 0; }

.dj-x56 { color: #00AFBE; text-decoration: none; font-weight: 700; }

.dj-x57 { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; color: var(--text); transition: color 0.2s; }

.dj-x58 { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; color: #C4603A; transition: color 0.2s; }

.dj-x59 { display: flex; align-items: center; gap: 14px; }

.dj-x60 { display: block; width: 46px; height: 1px; background: var(--rulemid); }

.dj-x61 { font-size: 0.6rem; color: #C4603A; line-height: 1; }

.dj-x62 { font-family: 'Poiret One', sans-serif; font-size: 0.92rem; font-weight: 700; letter-spacing: 0.38em; text-transform: uppercase; color: var(--sub); margin: 0; }

.dj-x63 { background: none; border: none; cursor: pointer; padding: 6px 0; display: flex; flex-direction: column; gap: 5px; }

.dj-x64 { display: block; width: 22px; height: 1.5px; background: var(--text); }

.dj-x65 { flex: 1; min-width: 0; text-align: center; font-family: 'Poiret One', sans-serif; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }

.dj-x66 { padding: 0 0 100px; }

.dj-x67 { max-width: 1200px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 80px); }

.dj-x68 { text-align: center; padding: 80px 0 30px; }

.dj-x69 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: 0.06em; color: var(--text); line-height: 1.05; margin: 0; animation: fadeUp 0.7s ease both; }

.dj-x70 { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 32px auto; max-width: 160px; }

.dj-x71 { font-size: 1.05rem; font-weight: 400; line-height: 1.9; color: var(--text); margin: 0 0 16px; }

.dj-x72 { font-size: 1.05rem; font-weight: 400; line-height: 1.9; color: var(--text); margin: 0; }

.dj-x73 { display: block; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.34em; text-transform: uppercase; color: var(--olv); margin-bottom: 28px; }

.dj-x74 { list-style: none; margin: 0; padding: 0; }

.dj-x75 { display: flex; align-items: baseline; gap: 16px; padding: 16px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }

.dj-x76 { font-size: 0.38rem; color: #C4603A; flex-shrink: 0; padding-top: 6px; }

.dj-x77 { font-family: 'Poiret One', sans-serif; font-size: 1.3rem; letter-spacing: 0.03em; color: var(--exp-title, var(--text)); display: block; margin-bottom: 4px; }

.dj-x78 { font-size: 0.9rem; font-weight: 400; color: var(--soft); line-height: 1.6; }

.dj-x79 { display: flex; align-items: baseline; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--rule); }

.dj-x80 { display: block; text-decoration: none; color: inherit; background: var(--card); padding: 48px 40px; position: relative; cursor: pointer; transition: background 0.3s; border-top: 4px solid transparent; }

.dj-x80:hover { background: var(--cardhov); border-top-color: #C4603A; }

.dj-x81 { font-family: 'Poiret One', sans-serif; font-size: 4rem; letter-spacing: 0.05em; color: var(--cardtext); line-height: 1; margin-bottom: 20px; }

.dj-x82 { font-size: 0.58rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: #7A8A64; margin-bottom: 14px; }

.dj-x83 { font-family: 'Poiret One', sans-serif; font-size: 1.4rem; letter-spacing: 0.04em; color: var(--cardtext); line-height: 1.2; margin-bottom: 18px; }

.dj-x84 { font-size: 0.92rem; font-weight: 400; color: var(--cardsoft); line-height: 1.78; margin-bottom: 22px; }

.dj-x85 { height: 1px; background: rgba(239,231,220,0.08); margin-bottom: 18px; }

.dj-x86 { font-size: 0.58rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: #7A8A64; margin-bottom: 8px; }

.dj-x87 { font-size: 0.92rem; font-weight: 400; color: var(--cardsoft); line-height: 1.72; }

.dj-x88 { background: var(--card); padding: 48px 40px; opacity: 0.4; border-top: 4px solid transparent; }

.dj-x89 { background: var(--footer); padding: 60px clamp(24px, 6vw, 80px) 0; color: rgba(239,231,220,1); transition: background 0.35s ease; }

.dj-x90 { position: fixed; inset: 0; z-index: 300; background: var(--bg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }

.dj-x91 { background: linear-gradient(140deg, #C4603A, #7A3A22); }

.dj-x92 { font-size: 0.58rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: #C4603A; margin-bottom: 5px; }

.dj-x93 { font-family: 'Poiret One', sans-serif; font-size: 1.2rem; letter-spacing: 0.04em; color: var(--text); margin-bottom: 3px; }

.dj-x94 { font-size: 0.9rem; font-weight: 400; color: var(--soft); }

.dj-x95 { cursor: default; }

.dj-x96 { background: linear-gradient(140deg, #1E1614, #3D2E28); }

.dj-x97 { background: linear-gradient(140deg, #7A8A64, #1E1614); }

.dj-x98 { background: linear-gradient(140deg, #EFE7DC, #C4603A); }

.dj-x99 { background: linear-gradient(140deg, #5A6A48, #344030); }

.dj-x100 { background: linear-gradient(140deg, #A44E2E, #5A6A48); }

.dj-x101 { background: var(--footer); padding: 60px clamp(24px, 6vw, 80px) 0; color: rgba(239,231,220,1); transition: background 0.35s ease; border-top: 1px solid rgba(239,231,220,0.1); }

.dj-x102 { padding: 40px clamp(20px, 5vw, 80px) 100px; }

.dj-x103 { max-width: 760px; margin: 0 auto; }

.dj-x104 { width: 100%; height: 225px; border: 1px solid var(--rulemid); margin-bottom: 36px; overflow: hidden; }

.dj-x105 { width: 100%; height: 100%; object-fit: cover; object-position: center calc(50% + 10px); display: block; }

.dj-x106 { font-family: 'Poiret One', sans-serif; font-size: clamp(2rem, 8vw, 3rem); letter-spacing: 0.06em; color: var(--text); line-height: 1.1; margin: 0 0 12px; }

.dj-x107 { font-size: 0.85rem; font-weight: 500; letter-spacing: 0.25em; text-transform: uppercase; color: #C4603A; margin: 0 0 40px; text-align: right; }

.dj-x108 { display: flex; align-items: center; gap: 12px; margin: 0 0 30px; }

.dj-x109 { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; color: #C4603A; flex-shrink: 0; }

.dj-x110 { flex: 1; height: 1px; background: #C4603A; }

.dj-x111 { font-size: 0.88rem; font-weight: 450; line-height: 1.78; padding: 5px 0 5px 18px; position: relative; }

.dj-x112 { position: absolute; left: 0; color: #C4603A; }

.dj-x113 { display: flex; align-items: center; gap: 12px; margin: 67px 0 30px; }

.dj-x114 { text-align: center; line-height: 2.2; font-size: 0.88rem; font-weight: 450; }

.dj-x115 { white-space: nowrap; }

.dj-x116 { color: #C4603A; font-weight: 500; }

.dj-x117 { margin-bottom: 44px; }

.dj-x118 { font-size: 1.1rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 3px; }

.dj-x119 { height: 1.4em; width: auto; }

.dj-x120 { font-size: 1rem; font-weight: 650; font-style: italic; margin: 0; letter-spacing: 0.02em; text-align: right; flex-shrink: 0; }

.dj-x121 { border-top: 1px solid var(--rulemid); margin: 8px 0 10px; }

.dj-x122 { font-size: 0.82rem; font-weight: 450; }

.dj-x123 { font-size: 0.82rem; font-weight: 450; text-align: right; }

.dj-x124 { font-size: 0.88rem; font-weight: 450; line-height: 1.78; margin: 0 0 20px; }

.dj-x125 { font-size: 0.92rem; font-weight: 600; margin: 0 0 6px; }

.dj-x126 { list-style: none; margin: 0 0 28px; padding: 0; }

.dj-x127 { font-size: 0.88rem; font-weight: 450; line-height: 1.78; padding: 5px 0 5px 18px; position: relative; text-wrap: pretty; }

.dj-x128 { background: var(--sab); border-left: 1.5px solid #C4603A; padding: 24px 28px; margin-bottom: 44px; }

.dj-x129 { font-size: 1.1rem; font-weight: 700; margin: 0 0 6px; }

.dj-x130 { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; font-size: 0.88rem; font-weight: 400; letter-spacing: 0.02em; margin-bottom: 14px; }

.dj-x131 { font-size: 0.88rem; font-weight: 400; font-style: italic; line-height: 1.78; margin: 0 0 12px; }

.dj-x132 { font-size: 1.1rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }

.dj-x133 { height: 1.1em; width: auto; }

.dj-x134 { display: inline-flex; align-items: center; gap: 3px; }

.dj-x135 { height: 0.72em; width: auto; }

.dj-x136 { font-size: 1.1rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 7px; }

.dj-x137 { font-size: 0.92rem; font-weight: 600; margin: 0 0 2px; }

.dj-x138 { font-size: 0.82rem; font-weight: 450; margin: 0 0 10px; }

.dj-x139 { font-size: 1.1rem; font-weight: 700; margin: 0; }

.dj-x140 { font-size: 1.1rem; font-weight: 700; margin: 0 0 4px; }

.dj-x141 { font-size: 0.88rem; font-weight: 450; line-height: 1.78; margin: 0 0 16px; }

.dj-x142 { display: flex; flex-wrap: wrap; gap: 12px; }

.dj-x143 { width: 90px; height: 90px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(30,22,20,0.65)); transition: transform 0.25s ease; }

.dj-x144 { background: #C4603A; padding: 0 0 80px; }

.dj-x145 { text-align: center; padding: 40px 0 30px; }

.dj-x146 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: 0.06em; color: #1E1614; line-height: 1.05; margin: 0; }

.dj-x147 { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 32px auto 16px; max-width: 160px; }

.dj-x148 { display: block; flex: 1; height: 1px; background: rgba(30,22,20,0.75); }

.dj-x149 { font-style: normal; font-size: 0.75rem; color: rgba(30,22,20,0.75); }

.dj-x150 { display: flex; flex-direction: column; gap: 32px; max-width: 1200px; margin: 0 auto; padding: 0 clamp(24px, 5vw, 80px); }

.dj-x151 { flex: 1; min-width: 0; }

.dj-x152 { display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.65); margin-bottom: 14px; }

.dj-x153 { font-size: 0.95rem; font-weight: 400; font-style: italic; line-height: 1.84; color: #fff; margin: 0 0 24px; }

.dj-x154 { font-size: 0.78rem; font-weight: 400; color: rgba(255,255,255,0.7); margin: 0; letter-spacing: 0.02em; }

.dj-x155 { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; }

.dj-x156 { width: 180px; height: 180px; border-radius: 50%; overflow: hidden; border: 3px solid rgba(255,255,255,0.25); }

.dj-x157 { width: 100%; height: 100%; object-fit: cover; display: block; }

.dj-x158 { padding: 0 0 80px; }

.dj-x159 { max-width: 1000px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 80px); }

.dj-x160 { text-align: center; padding: 72px 0 20px; }

.dj-x161 { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 32px auto 4px; max-width: 160px; }

.dj-x162 { max-width: 780px; margin: 0 auto; }

.dj-x163 { font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 400; line-height: 1.7; color: var(--text); margin: 0 0 16px; }

.dj-x164 { font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 400; line-height: 1.7; color: var(--text); margin: 0; text-align: right; }

.dj-x165 { position: relative; aspect-ratio: 3/4; background: var(--pcard); border: 1px solid var(--rulemid); margin-bottom: 14px; overflow: hidden; }

.dj-x166 { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.dj-x167 { font-family: 'Poiret One', sans-serif; font-size: 0.95rem; font-weight: bold; letter-spacing: 0.32em; text-transform: uppercase; color: var(--soft); text-align: left; margin: 0; text-shadow: 0.2px 0 0 currentColor, -0.2px 0 0 currentColor; }

.dj-x168 { font-family: 'Poiret One', sans-serif; font-size: 0.95rem; font-weight: bold; letter-spacing: 0.32em; text-transform: uppercase; color: var(--soft); text-align: center; margin: 0; text-shadow: 0.2px 0 0 currentColor, -0.2px 0 0 currentColor; }

.dj-x169 { font-family: 'Poiret One', sans-serif; font-size: 0.95rem; font-weight: bold; letter-spacing: 0.32em; text-transform: uppercase; color: var(--soft); text-align: right; margin: 0; text-shadow: 0.2px 0 0 currentColor, -0.2px 0 0 currentColor; }

.dj-x170 { background: #13100A; padding: 0 0 64px; }

.dj-x171 { text-align: center; padding: 60px 0 0; }

.dj-x172 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: 0.06em; color: rgba(201,168,76,0.72); line-height: 1.05; margin: 0; }

.dj-x173 { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 30px auto 25px; max-width: 160px; }

.dj-x174 { display: block; flex: 1; height: 1px; background: rgba(201,168,76,0.3); }

.dj-x175 { font-style: normal; font-size: 0.75rem; color: rgba(201,168,76,0.5); }

.dj-x176 { max-width: 680px; margin: 0 auto 44px; text-align: center; }

.dj-x177 { font-family: 'Raleway', sans-serif; font-size: 1rem; font-weight: 400; font-style: italic; line-height: 1.88; color: rgba(239,231,220,0.95); margin: 0 0 16px; }

.dj-x178 { font-family: 'Raleway', sans-serif; font-size: 0.65rem; font-weight: 400; font-style: normal; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(201,168,76,0.75); display: block; }

.dj-x179 { max-width: 680px; margin: 0 auto 52px; text-align: center; }

.dj-x180 { font-size: 1rem; font-weight: 400; font-style: italic; line-height: 1.88; color: rgba(239,231,220,1); margin: 0 0 16px; }

.dj-x181 { font-size: 0.65rem; font-weight: 400; font-style: normal; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(201,168,76,0.75); display: block; }

.dj-x182 { border: 1.5px solid rgba(201,168,76,0.65); padding: 6px; }

.dj-x183 { border: 0.5px solid rgba(201,168,76,0.22); overflow: hidden; }

.dj-x184 { display: block; width: 100%; height: auto; }

.dj-x185 { padding: 0 0 90px; }

.dj-x186 { max-width: 1100px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 80px); }

.dj-x187 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: 0.06em; color: var(--text); line-height: 1.05; margin: 0; }

.dj-x188 { font-family: 'Raleway', sans-serif; font-size: 0.6rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--soft); text-align: center; line-height: 1.35; }

.dj-x189 { font-size: 2.6rem; line-height: 1; }

.dj-x190 { flex: 1; padding: 0 0 100px; }

.dj-x191 { text-align: center; padding: 80px 0 24px; }

.dj-x192 { font-size: 1.05rem; font-weight: 400; line-height: 1.88; color: var(--text); margin: 0 0 32px; }

.dj-x193 { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; }

.dj-x194 { display: flex; align-items: center; gap: 18px; margin-bottom: 40px; }

.dj-x195 { color: var(--text); transition: color 0.2s; }

.dj-x195:hover { color: #C4603A; }

.dj-x196 { font-size: 0.9rem; color: var(--text); margin: 0; }

.dj-x197 { margin-bottom: 20px; }

.dj-x198 { display: block; font-size: 0.58rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--text); margin-bottom: 8px; }

.dj-x199 { resize: vertical; min-height: 130px; }

.dj-x200 { width: 100%; padding: 15px; background: #C4603A; color: #FAF6F0; border: none; font-family: 'Raleway', sans-serif; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; cursor: pointer; transition: background 0.25s; }

.dj-x200:hover { background: #A44E2E; }

.dj-x201 { margin-top: 16px; padding: 14px; background: rgba(90,106,72,0.14); border-left: 3px solid #5A6A48; font-size: 0.84rem; color: var(--text); }

.dj-x202 { padding: clamp(56px, 8vh, 80px) 0 0; }

.dj-x203 { max-width: 1000px; }

.dj-x204 { font-family: 'Raleway', sans-serif; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.42em; text-transform: uppercase; color: #C4603A; display: block; margin-bottom: 26px; animation: fadeUp 0.6s ease both; }

.dj-x205 { font-family: 'Poiret One', sans-serif; font-size: clamp(2rem, 4.2vw, 3.6rem); letter-spacing: 0.03em; color: var(--text); line-height: 1.14; margin: 0 0 40px; max-width: 900px; animation: fadeUp 0.7s 0.05s ease both; }

.dj-x206 { font-size: 0.72em; color: var(--sub); }

.dj-x207 { height: 1px; background: linear-gradient(to right, #C4603A 0%, rgba(196,96,58,0.15) 100%); }

.dj-x208 { padding: clamp(48px, 6vh, 64px) 0; }

.dj-x209 { display: flex; align-items: center; gap: 14px; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.44em; text-transform: uppercase; color: #C4603A; margin-bottom: 26px; }

.dj-x210 { display: block; width: 32px; height: 1px; background: #C4603A; opacity: 0.55; }

.dj-x211 { font-size: 1.05rem; line-height: 1.9; color: var(--soft); }

.dj-x212 { margin: 0 0 22px; }

.dj-x213 { margin: 0; }

.dj-x214 { padding: clamp(48px, 6vh, 64px) 0; background: var(--panel); transition: background 0.35s ease; }

.dj-x215 { font-family: 'Poiret One', sans-serif; font-size: clamp(2.4rem, 4.5vw, 3.6rem); letter-spacing: 0.03em; color: #C4603A; line-height: 1; display: block; margin-bottom: 10px; }

.dj-x216 { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--olv); display: block; line-height: 1.6; }

.dj-x217 { margin: 36px 0 0; padding: 26px 30px; border-left: 3px solid #C4603A; background: rgba(196,96,58,0.06); }

.dj-x218 { font-size: 1rem; font-weight: 400; font-style: italic; line-height: 1.84; color: var(--soft); margin: 0; }

.dj-x219 { padding: 60px 0 84px; text-align: center; }

.dj-x220 { height: 1px; background: var(--rulemid); max-width: 120px; margin: 0 auto 44px; }

.dj-x221 { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; text-decoration: none; color: #C4603A; display: inline-flex; align-items: center; gap: 12px; transition: color 0.2s; }

.dj-x221:hover { color: #A44E2E; }

.dj-x222 { display: inline-block; }

.dj-x223 { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(239,231,220,0.1); }

.dj-x224 { font-size: 0.84rem; font-weight: 300; color: rgba(239,231,220,1); line-height: 1.9; margin: 0; }

.dj-x225 { font-size: 0.75rem; font-weight: 300; letter-spacing: 0.08em; color: rgba(239,231,220,0.85); margin: 0; }

.dj-x226 { font-size: 1rem; font-weight: 400; font-style: italic; line-height: 1.84; color: var(--soft); margin: 0 0 14px; }

/* ══ Design-review spot-fixes (appended last so they win the cascade) ══ */

/* Nav hover on Insights/Portfolio/Résumé — was missing; mirrors .dj-x12:hover */
.dj-x57:hover { color: #C4603A; }

/* Header underline matches the left rail's vertical divider colour */
.rv-header { border-bottom-color: rgba(196,96,58,0.3); }

/* "Areas of Expertise" eyebrow (Insights + Portfolio) in accent orange */
.dj-x73 { color: #C4603A; }

/* Case-study eyebrows (category tags + Outcome) in accent orange */
.dj-x82, .dj-x86 { color: #C4603A; }

/* Mark Twain quote — forced two-line break on desktop (dj-qbr); full width so line 1 stays whole */
.dj-x176 { max-width: none; }

/* Contact — right-justify only the social icons + "Available" text (desktop).
   Labels (Connect/Location) stay put — not moved. */
.dj-x194 { justify-content: flex-end; }
.dj-x196 { text-align: right; }

@media (max-width: 900px) {
  .dj-qbr { display: none; }
  .dj-x194 { gap: 32px; }
  .dj-x198 { font-size: 0.72rem; }
}

/* Random Facts — all 7 pictographs on a single row across the desktop width */
@media (min-width: 901px) {
  .dj-x186:has(.facts-row) { max-width: 1500px; }
  .facts-row { flex-wrap: nowrap; gap: 24px 18px; }
  .facts-picto { min-width: 0; max-width: none; }
  .dj-x188 { white-space: nowrap; }
}

/* Footer — hide the Navigation column on ALL viewports (rail nav on desktop,
   hamburger menu on mobile make it redundant); center the lone copyright line */
.pg-foot > .dj-x46:first-child,
.hm-foot > .dj-x46:first-child,
.cs-foot > .dj-x46:first-child { display: none; }
.dj-x54 { justify-content: center; }
/* Footer Connect icons stacked vertically on mobile */
@media (max-width: 900px) {
  .dj-x52 { flex-direction: column; align-items: center; gap: 8px; }
}

/* Inner-page rail — box the DJR into a top cell tied to the SAME height as the header,
   so their bottom rules line up by construction (Home uses hm-rail, unaffected). Desktop. */
@media (min-width: 901px) {
  .rv-header,
  .rv-rail > .dj-x8 { height: 54px; box-sizing: border-box; }
  .rv-rail { padding-top: 0; }
  .rv-rail > .dj-x8 {
    display: flex; align-items: center; justify-content: center;
    width: 100%;
    border-bottom: 1px solid rgba(196,96,58,0.3);
  }
}

/* ══ Landing hero — MOBILE-ONLY variants (desktop hero untouched) ══ */
/* Desktop: hide the mobile-only text variants. */
.hm-eb-stagger, .hm-greet-stack { display: none; }

@media (max-width: 900px) {
  /* Sticky landing top strip so nav stays reachable on scroll (matches inner pages) */
  .hm-topstrip { position: sticky; top: 0; z-index: 100; background: var(--header); }

  /* Slightly smaller light/dark toggle on mobile */
  .dj-toggle { width: 44px; height: 22px; padding: 0 6px; }
  .dj-knob { width: 14px; height: 14px; left: 3px; }
  body.dj-dark .dj-knob { left: 27px; }

  /* Tagline below the portrait: one column, three rows — left / center / right */
  .hm-eb-line { display: none; }
  .hm-eb-stagger { display: block; width: 100%; font-size: 1.15rem; }
  .hm-eb-stagger > span { display: block; }
  .hm-eb-stagger > span:nth-child(1) { text-align: left; }
  .hm-eb-stagger > span:nth-child(2) { text-align: center; }
  .hm-eb-stagger > span:nth-child(3) { text-align: right; }

  /* Greeting intro on two lines: "Hello there." / "My Name Is" (Duncan. stays below) */
  .hm-greet-line { display: none; }
  .hm-greet-stack { display: block; line-height: 1.9; }

  /* Center the diamond divider */
  .dj-x23 { margin-left: auto; margin-right: auto; }
}

/* Insights heading — two lines, centered, MOBILE only ("Strategy" / "with Results") */
.ins-h1-br { display: none; }
@media (max-width: 900px) {
  .ins-h1-br { display: block; }
  .dj-x69:has(.ins-h1-br) { text-align: center; }
}

/* Portfolio heading — two lines, MOBILE only ("Design" / "with Purpose") */
.port-h1-br { display: none; }
@media (max-width: 900px) {
  .port-h1-br { display: block; }
}

/* Resume — MOBILE only: title disciplines on their own line + tighter tracking,
   and "Senior" abbreviated to "Sr." */
.rz-title-br { display: none; }
.rz-senior-abbr { display: none; }
@media (max-width: 900px) {
  .rz-title-br { display: inline; }
  .dj-x107 { letter-spacing: 0.14em; }
  .rz-senior-full { display: none; }
  .rz-senior-abbr { display: inline; }
}

/* Random Facts — forced two-line labels, MOBILE only (desktop stays single-line) */
.fact-br { display: none; }
/* Mark Twain quote — MOBILE break after "narrow-mindedness. . ." (desktop uses dj-qbr) */
.dj-qbr-m { display: none; }

/* Meet Me — MOBILE only */
@media (max-width: 900px) {
  .fact-br { display: inline; }
  .dj-qbr-m { display: inline; }

  /* Photo-box titles on top of the image (desktop keeps them below) */
  .people-grid > div { display: flex; flex-direction: column-reverse; gap: 12px; }

  /* Random Facts as a strict 2-column grid so the lone 7th item (BoardGame)
     sits in the LEFT column like Half Dome, instead of centering in its own row */
  .facts-row { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
}

/* ============================================================
   Portfolio device filmstrip — MacBook + iPhone carousel.
   Markup lives in portfolio.html, behaviour in site.js (guarded).
   Devices rendered by vendored devices.min.css. Colours are mapped
   to the site's shared tokens via scoped --fs-* vars so nothing
   leaks to the global palette. Accent stays #C4603A in BOTH modes
   to match the rest of the site (handoff proposed a lighter dark
   accent; overridden for consistency).
   ============================================================ */
/* Portfolio intro uses the shared "Areas of Expertise" list (.dj-x73–.dj-x79), same as Insights. */
.pg-desc-sm { display: none; } /* expertise descriptions: full text on desktop, short (.pg-desc-sm) on mobile */

.filmstrip {
  --fs-ink: var(--text);
  --fs-inksoft: var(--sub);
  --fs-accent: #C4603A;
  --fs-olive: var(--olv);
  --fs-hairline: var(--rulemid);
  max-width: 880px;
  margin: 0 auto;
  padding: 44px 44px 38px;
}
body.dj-dark .filmstrip {
  --fs-inksoft: rgba(239,231,220,0.8);
}

.fs-stage { position: relative; padding: 0; }
.fs-devices { position: relative; width: fit-content; margin: 0 auto; padding-bottom: 14px; } /* shrink-wraps the laptop so margin:auto centers the LAPTOP over the caption; phone hangs off the right via absolute positioning */
.fs-laptop { zoom: 0.984; filter: drop-shadow(0 18px 24px rgba(0,0,0,0.45)); }
.fs-phone-wrap { position: absolute; right: -84px; top: 50%; transform: translateY(-50%); }
.fs-phone { zoom: 0.27; filter: drop-shadow(0 18px 24px rgba(0,0,0,0.55)); }
.fs-screen-img { width: 100%; height: 100%; background-size: cover; background-position: top center; }
.fs-phone .device-screen { overflow: hidden; border-radius: 49px; }

.fs-arrow { position: absolute; top: 42%; width: 44px; height: 44px; border: 1px solid var(--fs-ink); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--fs-ink); font-size: 1.3rem; cursor: pointer; user-select: none; background: transparent; transition: all 0.25s; }
.fs-arrow:hover { background: var(--fs-accent); border-color: var(--fs-accent); color: #FAF6F0; }
.fs-arrow.prev { left: 0; }
.fs-arrow.next { right: 0; }

.fs-caption { text-align: center; margin-top: 36px; position: relative; }
.fs-caption .fs-arrow { top: 50%; transform: translateY(-50%); }
.fs-meta { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 7px; }
.fs-cat { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--fs-accent); }
.fs-wip { font-size: 0.54rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fs-olive); border: 1px dashed var(--fs-olive); padding: 2px 8px; }
.fs-title { font-family: 'Poiret One', sans-serif; font-size: 1.9rem; letter-spacing: 0.04em; font-weight: 400; margin-bottom: 6px; color: var(--fs-ink); }
.fs-sub { font-size: 0.88rem; font-weight: 300; color: var(--fs-inksoft); margin-bottom: 10px; }
.fs-brief { font-size: 0.82rem; font-weight: 300; line-height: 1.6; max-width: 600px; margin: 0 auto; color: var(--fs-ink); }
.fs-brief-p, .fs-brief-o { display: block; } /* problem / outcome on their own lines (break before the arrow) */
.fs-brief-o { margin-top: 0.8em; } /* blank line above the "→ outcome" */

.fs-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; }
.fs-counter { font-family: 'Poiret One', sans-serif; font-size: 1rem; letter-spacing: 0.14em; color: var(--fs-inksoft); }
.fs-dots { display: flex; gap: 10px; }
.fs-dot { cursor: pointer; font-size: 0.62rem; color: var(--fs-hairline); transition: color 0.25s; user-select: none; }
.fs-dot.active { color: var(--fs-accent); }

.fs-mobile-nav { display: none; }

/* Filmstrip breakpoint aligned to the site's 900px rail→top-strip flip
   so the desktop-scaled devices never render in the narrow full-width band */
@media (max-width: 900px) {
  .dj-x68 { padding: 32px 0 0; }              /* trim gap above title; drop bottom pad so the divider's top/bottom spacing is equal */
  .dj-x70 { margin: 24px auto; }              /* tighten space around the line/diamond/line */
  .pg-expertise .dj-x73 { margin-bottom: 0; } /* drop the padding below "Areas of Expertise" (portfolio only) */
  .pg-expertise .dj-x75 { border-top: none; } /* lose the rule directly after "Areas of Expertise" */

  /* Cut the text/phone side padding in half: escape half of dj-x67's 6vw padding (it's shared, so don't edit it globally) and add a small own pad */
  .filmstrip { padding: 28px 9px; margin-left: calc(clamp(24px, 6vw, 80px) / -2); margin-right: calc(clamp(24px, 6vw, 80px) / -2); }
  .fs-stage { padding: 0; display: flex; justify-content: center; } /* flex-center the laptop reliably (zoom breaks fit-content + margin:auto centering) */
  .fs-meta { margin-bottom: 14px; } /* double the gap between the eyebrow (now above the laptop) and the laptop */
  [data-screen-label="Portfolio"] .dj-x66 { padding-bottom: 50px; } /* halve the space below the carousel arrows down to the footer (portfolio only) */
  .fs-devices { padding-right: 0; padding-bottom: 12px; transform: none; } /* phone moves out of the stack, laptop centers */
  .fs-laptop { zoom: 0.44; }
  .fs-phone { zoom: 0.16; }
  /* Phone drops out of the laptop overlap and joins the brief as TEXT | PHONE; JS reparents it ≤900px */
  .fs-phone-wrap { position: static; transform: none; top: auto; right: auto; flex: 0 0 auto; }
  .fs-brief-row { display: flex; align-items: flex-start; gap: 18px; margin-top: 28px; } /* phone top aligns to the body-text top line; margin restores the larger gap under the subtitle */
  .fs-brief { max-width: none; margin: 0; flex: 1; text-align: left; }
  .fs-brief-o { margin-top: 0.8em; } /* blank line before the "→ outcome" — mobile only */
  .fs-arrow.prev, .fs-arrow.next { display: none; }
  .pg-desc-lg { display: none; }
  .pg-desc-sm { display: inline; }
  .fs-mobile-nav { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 40px; } /* more breathing room above the arrows/counter */
  .fs-mobile-nav .fs-arrow { position: static; display: flex; width: 40px; height: 40px; font-size: 1.2rem; }
  .fs-title { font-size: 1.5rem; }
  .fs-caption { margin-top: 18px; }
  .fs-footer { display: none; } /* dots removed on mobile — the arrows + counter row covers navigation */
}
