/* ============================================================
   BARGIEL.AI — /profile page
   Built 1:1 on bargiel.AI Brand System v2 (canonical/design/tokens.json).
   Light + dark, automatic. One indigo accent; cyan as a signature dot only.
   ============================================================ */

/* Tokens, reset, a11y utilities, .wrap, .eyebrow, headings, .lead, .num,
   buttons, footer meta-row, reveal and dark-mode tokens now live in
   brand-base.css (shared with the home page). This file holds only the
   /profile-specific rules. */

/* .sec-index core is in brand-base.css; /profile uses a slightly larger gap below. */
.sec-index{margin-bottom:clamp(22px,2.8vw,34px)}

/* headings, .h1/.h2/.h3, .lead, .num and the button family are in brand-base.css */


/* ============================================================
   HEADER — base .site-head / .brand / .head-row / .head-cta live in
   brand-base.css. /profile adds only the wave-to-top (transparent over the
   hero) variant + the ghost CTA's on-dark colour.
   ============================================================ */
/* wave-to-top: transparent header runs over the hero wave, glass on scroll */
body[data-wavetop="full"] .site-head{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body[data-wavetop="full"] .site-head.scrolled{background:rgba(244,245,251,0.82);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}
/* over a dark section: dark plate + white wordmark */
.site-head.over-dark,
body[data-wavetop="full"] .site-head.scrolled.over-dark{background:rgba(7,10,20,0.86);border-bottom-color:rgba(255,255,255,0.08);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}
.site-head.over-dark .head-cta .btn-ghost{color:var(--tx-dk);border-color:var(--line-dk)}
body[data-wavetop="full"] .hero{margin-top:calc(-1 * (68px + env(safe-area-inset-top)));padding-top:calc(68px + env(safe-area-inset-top) + clamp(18px,3vw,40px))}
@media(min-width:720px){
  body[data-wavetop="full"] .hero{margin-top:calc(-1 * (76px + env(safe-area-inset-top)));padding-top:calc(76px + env(safe-area-inset-top) + clamp(18px,3vw,48px))}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding-top:clamp(34px,6vw,72px);padding-bottom:clamp(20px,3vw,40px);overflow:hidden}
.hero-wave{
  position:absolute;top:-22%;right:-14%;width:min(78vw,760px);aspect-ratio:1;
  opacity:.95;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20600%20600%22%20width%3D%22600%22%20height%3D%22600%22%20role%3D%22img%22%20aria-label%3D%22bargiel.AI%20wave%20motif%22%3E%0A%20%20%3Cpath%20d%3D%22M%20-37.5%20429.0%20C%20-91.5%20237.0%2C%20-1.5%2027.0%2C%20184.5%20-15.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.041%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%20-27.2%20435.0%20C%20-81.2%20243.0%2C%208.8%2033.0%2C%20194.8%20-9.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.072%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%20-16.8%20441.0%20C%20-70.8%20249.0%2C%2019.2%2039.0%2C%20205.2%20-3.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.115%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%20-6.4%20447.0%20C%20-60.4%20255.0%2C%2029.6%2045.0%2C%20215.6%203.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.168%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%204.0%20453.0%20C%20-50.0%20261.0%2C%2040.0%2051.0%2C%20226.0%209.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.223%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2014.4%20459.0%20C%20-39.6%20267.0%2C%2050.4%2057.0%2C%20236.4%2015.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.270%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2024.8%20465.0%20C%20-29.2%20273.0%2C%2060.8%2063.0%2C%20246.8%2021.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.296%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2035.2%20471.0%20C%20-18.8%20279.0%2C%2071.2%2069.0%2C%20257.2%2027.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.296%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2045.6%20477.0%20C%20-8.4%20285.0%2C%2081.6%2075.0%2C%20267.6%2033.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.270%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2056.0%20483.0%20C%202.0%20291.0%2C%2092.0%2081.0%2C%20278.0%2039.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.223%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2066.4%20489.0%20C%2012.4%20297.0%2C%20102.4%2087.0%2C%20288.4%2045.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.168%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2076.8%20495.0%20C%2022.8%20303.0%2C%20112.8%2093.0%2C%20298.8%2051.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.115%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2087.2%20501.0%20C%2033.2%20309.0%2C%20123.2%2099.0%2C%20309.2%2057.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.072%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M%2097.5%20507.0%20C%2043.5%20315.0%2C%20133.5%20105.0%2C%20319.5%2063.0%22%20stroke%3D%22%234F46E5%22%20stroke-opacity%3D%220.041%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E") center/contain no-repeat;
}
@media(prefers-reduced-motion:no-preference){
  .hero-wave{animation:drift 22s linear infinite}
}
.hero-wave{position:absolute;inset:0;width:auto;height:auto;aspect-ratio:auto;background:none;opacity:1}
@keyframes drift{
  0%{transform:translateX(0)}
  50%{transform:translateX(-24px)}
  100%{transform:translateX(0)}
}

.hero-inner{position:relative;z-index:1;max-width:760px}
.hero-text{min-width:0}
.hero-eyebrow{margin-bottom:20px}
.hero .h1{margin:0;display:flex;align-items:baseline;gap:0.18em;flex-wrap:wrap}
.sig-dot{width:0.46em;height:0.46em;border-radius:50%;background:var(--acc);display:inline-block;align-self:flex-end;margin-bottom:0.22em;flex-shrink:0}
.hero-title-line{
  font-family:var(--fm);font-size:clamp(13px,1.5vw,15px);font-weight:500;letter-spacing:0.04em;
  color:var(--tx-soft);margin-top:22px;line-height:1.5;text-wrap:balance;
}
.hero-quote{margin-top:22px}
.hero-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:26px;
  font-family:var(--fm);font-size:12.5px;letter-spacing:0.02em;color:var(--mu);
}
.hero-meta a{display:inline-flex;align-items:center;gap:7px;min-height:24px;transition:color .18s ease}
.hero-meta a:hover{color:var(--accent)}
.hero-meta .loc{display:inline-flex;align-items:center;gap:7px}
.hero-meta .ic{width:14px;height:14px;flex-shrink:0;color:var(--mu);opacity:.85}
.hero-ctas{margin-top:34px}

/* ---- hero portrait figure ---- */
.hero-figure{position:relative;margin:44px 0 0;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.hero-figure-wave{
  position:absolute;z-index:0;inset:-26px -26px auto auto;width:78%;aspect-ratio:1;
  top:-26px;right:-22px;border-radius:20px;
  background:linear-gradient(135deg,#2E4BD9 0%,#7C3AED 100%);opacity:.16;filter:blur(2px);
  pointer-events:none;
}
/* mobile: the portrait stacks full-width, so the gradient square reads as a
   stray block behind it — hide it until the 2-column desktop hero kicks in */
@media(max-width:879px){.hero-figure-wave{display:none}}
.portrait{
  position:relative;z-index:1;width:100%;max-width:420px;aspect-ratio:1;border-radius:18px;overflow:hidden;
  border:1px solid var(--line-2);background:var(--paper3);
  box-shadow:0 36px 80px -44px rgba(11,17,51,0.55);
}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}
.portrait-dot{
  position:absolute;left:18px;bottom:18px;z-index:2;width:13px;height:13px;border-radius:50%;
  background:var(--acc);box-shadow:0 0 0 4px var(--paper2),0 0 0 5px var(--line);
}
.portrait-cap{margin-top:16px;max-width:420px}
.portrait-cap .pc-line{
  font-family:var(--fm);font-size:11.5px;letter-spacing:0.04em;color:var(--mu);
  display:inline-flex;align-items:center;gap:9px;line-height:1.4;
}
.portrait-cap .pc-dot{width:7px;height:7px;border-radius:50%;background:#22C55E;flex-shrink:0;box-shadow:0 0 0 3px rgba(34,197,94,0.15)}
@media(min-width:880px){
  .hero{padding-bottom:clamp(32px,4vw,56px)}
  .hero-inner{max-width:var(--maxw);display:grid;grid-template-columns:1fr 0.78fr;gap:clamp(40px,5vw,80px);align-items:center}
  .hero-text{max-width:640px}
  .hero-figure{margin:0;align-items:center}
  .portrait{max-width:440px}
  .portrait-cap{align-self:stretch;max-width:440px;margin-inline:auto}
}

/* ============ HERO WAVE TREATMENTS (body[data-hero]) — split layout kept ============ */
/* hero wave — ribbon band reaching the top edge of the page (wave-to-top) */
.hero-wave{
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 56%,transparent 86%);
          mask-image:linear-gradient(180deg,#000 0%,#000 56%,transparent 86%);
}

/* ============================================================
   TRUST STRIP — environments / logo wall
   ============================================================ */
.trust{padding-top:clamp(30px,5vw,56px);position:relative}
.trust-head{
  font-family:var(--fm);font-size:11.5px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--mu);margin-bottom:20px;display:flex;align-items:center;gap:10px;
}
.trust-head .tick{width:18px;height:1px;background:var(--accent);flex-shrink:0}
.logo-wall{
  list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;
}
.lw{
  background:var(--paper2);padding:18px 20px;display:flex;flex-direction:column;gap:5px;
  transition:background .2s ease;
}
.lw:hover{background:var(--paper3)}
.lw-name{
  font-family:var(--fd);font-weight:700;font-size:1.18rem;letter-spacing:-0.01em;color:var(--tx-soft);
  line-height:1;transition:color .2s ease;
}
.lw:hover .lw-name{color:var(--ink)}
.lw-tag{font-family:var(--fm);font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--mu)}
@media(min-width:620px){.logo-wall{grid-template-columns:repeat(3,1fr)}}
@media(min-width:920px){.logo-wall{grid-template-columns:repeat(6,1fr)}.lw{padding:22px 18px}}

/* ============================================================
   SWITCHER
   ============================================================ */
.switcher-sec{padding-top:clamp(30px,5vw,52px)}
.switcher-head{
  font-family:var(--fm);font-size:11.5px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--mu);margin-bottom:14px;display:flex;align-items:center;gap:10px;
}
.switcher-head .tick{width:18px;height:1px;background:var(--accent)}
.switcher{
  display:inline-flex;background:var(--paper3);border:1px solid var(--line);border-radius:8px;
  padding:5px;gap:5px;width:100%;max-width:560px;
}
.seg{
  flex:1;appearance:none;background:transparent;border:1px solid transparent;border-radius:6px;
  font-family:var(--fm);font-size:12.5px;font-weight:500;letter-spacing:0.03em;
  color:var(--mu);padding:13px 14px;cursor:pointer;line-height:1.25;text-align:center;
  transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
  min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;
}
.seg:hover{color:var(--tx)}
.seg[aria-selected="true"]{
  background:var(--grad);color:#fff;border-color:transparent;
  box-shadow:0 12px 26px -14px rgba(79,70,229,0.7);
}
.seg .star{color:var(--accent);font-size:0.9em}
.seg[aria-selected="true"] .star{color:#fff}

/* ============================================================
   SUMMARY
   ============================================================ */
.summary-sec{padding-top:clamp(40px,6vw,70px)}
/* 01 Profile and 02 Core skills are one “about” pairing — collapse the doubled
   section gap above Core skills (summary keeps its own bottom padding). */
.summary-sec + .section{padding-top:0}
.summary-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,3.4vw,44px)}
.summary-body .lead{max-width:62ch;color:var(--tx);font-weight:400}
.context{margin-top:18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;max-width:62ch}
.context-stat{font-size:0.98rem;line-height:1.5;color:var(--tx-soft)}
.context-src{font-family:var(--fm);font-size:11.5px;letter-spacing:0.03em;color:var(--accent);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:color .18s ease}
.context-src:hover{color:var(--pri-d,#3D35C9)}
.context-src .arr{transition:transform .2s ease}
.context-src:hover .arr{transform:translate(2px,-2px)}
/* shared insert component (AI note + MBA note); 3 designs via body[data-note] */
.ai-note{max-width:60ch;margin-top:28px}
.ins-body{font-size:1rem;line-height:1.6;color:var(--tx-soft);text-wrap:pretty}
.ins-label{font-family:var(--fm);font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--mu)}
.ins-icon{display:none;color:var(--pri)}
.ins-icon svg{width:20px;height:20px;display:block}

/* AI / MBA insert — inline badge (text-forward, no box) */
.ins{display:block}
.ins-icon{display:none}
.ins-label{
  display:inline;font-size:10.5px;letter-spacing:0.13em;color:var(--pri);
  border:1px solid rgba(79,70,229,0.28);background:rgba(79,70,229,0.07);border-radius:100px;padding:3px 10px;
  white-space:nowrap;margin-right:4px;
}
.ins-body{display:inline;font-size:1rem}

@media(min-width:920px){
  .summary-grid{grid-template-columns:0.34fr 0.66fr;gap:clamp(40px,5vw,72px);align-items:start}
}

/* ============================================================

/* ============================================================
   BANNER TAGLINE (consistent with home)
   ============================================================ */
.banner{padding-top:clamp(40px,6vw,72px)}
.banner-inner{
  background:var(--ink);border-radius:16px;
  padding:clamp(32px,5vw,56px) clamp(26px,4vw,48px);
  display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;
}
.banner-inner p{
  margin:0;font-family:var(--fd);font-weight:700;
  font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.05;letter-spacing:-0.015em;
  color:#fff;text-wrap:balance;flex:1;min-width:260px;
}
.banner-inner .b-mono{font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.72);white-space:nowrap}

/* ============================================================
   CORE SKILLS — Name aside
   ============================================================ */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  font-family:var(--fb);font-size:0.92rem;line-height:1.3;color:var(--tx-soft);
  background:var(--paper3);border:1px solid var(--line);border-radius:6px;padding:8px 13px;
}
.skills-aside{display:flex;flex-direction:column}
.sk-arow{display:flex;flex-direction:column;gap:13px;padding:20px 0;border-top:1px solid var(--line)}
.sk-arow:first-child{border-top:none;padding-top:0}
.sk-aname{font-family:var(--fd);font-weight:700;font-size:clamp(1.05rem,1.6vw,1.22rem);letter-spacing:-0.01em;color:var(--ink);line-height:1.15}
@media(min-width:760px){
  .sk-arow{display:grid;grid-template-columns:230px 1fr;gap:30px;align-items:start}
  .sk-aname{position:sticky;top:90px}
}

/* ---- skills · Prose (label + readable comma list) ---- */
.skills-prose{display:flex;flex-direction:column}
.sk-prose{padding:22px 0;border-top:1px solid var(--line)}
.sk-prose:first-child{border-top:none;padding-top:0}
.sk-plabel{display:block;font-family:var(--fm);font-size:11.5px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.sk-pitems{margin:0;font-size:1.08rem;line-height:1.75;color:var(--tx);max-width:72ch;text-wrap:pretty}

/* ---- skills · Two-column (name left, prose items right) ---- */
.skills-twocol{display:flex;flex-direction:column}
.sk-tc{display:grid;grid-template-columns:1fr;gap:9px;padding:24px 0;border-top:1px solid var(--line)}
.sk-tc:first-child{border-top:none;padding-top:0}
.sk-tcname{font-family:var(--fd);font-weight:700;font-size:clamp(1.1rem,1.7vw,1.34rem);letter-spacing:-0.01em;color:var(--ink);line-height:1.15}
.sk-tcitems{margin:0;font-size:1.05rem;line-height:1.75;color:var(--tx-soft);text-wrap:pretty}
@media(min-width:760px){.sk-tc{grid-template-columns:250px 1fr;gap:36px;align-items:baseline}}

/* ---- skills · Soft chips (airier, borderless, larger) ---- */
.skills-softchips{display:grid;grid-template-columns:1fr;gap:16px}
.sk-scard{background:var(--paper2);border:1px solid var(--line);border-radius:14px;padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.sk-slabel{font-family:var(--fm);font-size:11.5px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent)}
.sk-schips{display:flex;flex-wrap:wrap;gap:10px}
.sk-soft{font-size:1rem;line-height:1.4;color:var(--tx);background:var(--paper3);border-radius:8px;padding:10px 16px}
@media(min-width:760px){.skills-softchips{grid-template-columns:1fr 1fr}}

/* ============================================================
   EXPERIENCE
   ============================================================ */
.exp-list{display:flex;flex-direction:column;gap:16px}
.exp{
  background:var(--paper2);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  display:grid;grid-template-columns:1fr;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.exp:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 24px 50px -34px rgba(11,17,51,0.4)}
.exp-rail{
  padding:clamp(24px,3vw,32px) clamp(24px,3vw,32px) 0;
  display:flex;flex-direction:column;gap:6px;
}
.exp-period{font-family:var(--fm);font-size:12px;font-weight:500;letter-spacing:0.04em;color:var(--accent)}
.exp-loc{font-family:var(--fm);font-size:11.5px;letter-spacing:0.04em;color:var(--mu);display:inline-flex;align-items:center;gap:6px}
.exp-body{padding:clamp(16px,2vw,20px) clamp(24px,3vw,32px) clamp(24px,3vw,32px)}
.exp-company{font-family:var(--fd);font-weight:700;font-size:clamp(1.18rem,1.9vw,1.42rem);color:var(--ink);line-height:1.16;letter-spacing:-0.01em}
.exp-roles{margin-top:8px;display:flex;flex-direction:column;gap:3px}
.exp-role{
  font-family:var(--fm);font-size:12.5px;letter-spacing:0.02em;color:var(--tx-soft);line-height:1.45;
  display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;
}
.exp-role .rp{color:var(--mu)}
.exp ul{list-style:none;margin:18px 0 0;display:flex;flex-direction:column;gap:11px}
.exp ul li{position:relative;padding-left:24px;font-size:1rem;line-height:1.55;color:var(--tx-soft);text-wrap:pretty}
.exp ul li::before{content:"";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:2px;background:var(--accent);opacity:.9}
@media(min-width:760px){
  .exp{grid-template-columns:200px 1fr}
  .exp-rail{padding:clamp(26px,3vw,34px) 8px clamp(26px,3vw,34px) clamp(26px,3vw,34px)}
  .exp-body{padding:clamp(26px,3vw,34px) clamp(26px,3vw,34px) clamp(26px,3vw,34px) 8px}
}

/* ============================================================
   FACTS — education / certifications / languages
   ============================================================ */
.facts-grid{display:grid;grid-template-columns:1fr;gap:16px}
.fact{background:var(--paper2);border:1px solid var(--line);border-radius:14px;padding:clamp(24px,3vw,32px)}
.fact-label{
  font-family:var(--fm);font-size:12px;font-weight:500;letter-spacing:0.13em;text-transform:uppercase;
  color:var(--mu);display:flex;align-items:center;gap:9px;margin-bottom:20px;
}
.fact-label .dot{width:6px;height:6px;border-radius:2px;background:var(--accent);flex-shrink:0}
.fact-item{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.fact-item:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}
.fact-title{font-family:var(--fd);font-weight:600;font-size:1.04rem;color:var(--ink);line-height:1.25}
.fact-org{font-size:0.96rem;color:var(--tx-soft);margin-top:5px;line-height:1.45;text-wrap:pretty}
.fact-when{font-family:var(--fm);font-size:11.5px;letter-spacing:0.03em;color:var(--mu);margin-top:7px}
.fact-plain{font-size:1rem;color:var(--tx-soft);line-height:1.6;text-wrap:pretty}
@media(min-width:820px){.facts-grid{grid-template-columns:repeat(3,1fr)}}

/* ============================================================
   DOWNLOAD ZONE
   ============================================================ */
.download{background:var(--ink-deep);color:var(--tx-dk);position:relative;overflow:hidden}
.dl-wave{
  position:absolute;inset:0;z-index:0;pointer-events:none;display:none;
  background:url("../assets/wave-field-ink.svg") right center / cover no-repeat;
  opacity:.5;
}
.download .wrap{position:relative;z-index:1}
.download .sec-index{color:var(--mu-dk)}
.download .sec-index b{color:var(--acc)}
.download .sec-index .ln{background:var(--line-dk)}
.dl-intro{max-width:60ch;margin-bottom:clamp(40px,6vw,68px)}
.dl-intro .h2{color:#fff}
.dl-lead{margin-top:16px;color:var(--mu-dk);font-size:1.05rem;line-height:1.6;text-wrap:pretty}
.dl-cards{display:grid;grid-template-columns:1fr;gap:16px}
.dl-card{
  position:relative;background:rgba(255,255,255,0.03);border:1px solid var(--line-dk);border-radius:14px;
  padding:clamp(24px,3vw,30px);display:flex;flex-direction:column;gap:14px;
  transition:border-color .2s ease,transform .2s ease,background .2s ease;
}
.dl-card:hover{border-color:rgba(255,255,255,0.28);transform:translateY(-2px);background:rgba(255,255,255,0.05)}
.dl-card.is-rec{border-color:rgba(124,140,255,0.5);background:rgba(79,70,229,0.10)}
.dl-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dl-card-label{font-family:var(--fd);font-weight:700;font-size:1.16rem;letter-spacing:-0.01em;color:#fff;line-height:1.1}
.dl-badge{
  font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;
  color:#C7CEFF;background:rgba(124,140,255,0.16);border:1px solid rgba(124,140,255,0.3);
  border-radius:100px;padding:5px 11px;white-space:nowrap;
}
.dl-card-title{font-family:var(--fm);font-size:11.5px;letter-spacing:0.03em;color:#A5B4FC;line-height:1.5}
.dl-card-blurb{font-size:0.98rem;line-height:1.55;color:var(--mu-dk);text-wrap:pretty;flex:1}
.dl-card-btns{display:flex;gap:10px;margin-top:4px}
.dl-card-btns .btn{flex:1;flex-direction:column;align-items:flex-start;gap:7px;padding:15px 18px}
.dl-card-btns .btn-pri{background:var(--pri);border-color:var(--pri)}
.dl-card-btns .btn-pri:hover{background:#6366F1;border-color:#6366F1}
.dl-card-btns .btn-ghost{color:var(--tx-dk);border-color:var(--line-dk)}
.dl-card-btns .btn-ghost:hover{border-color:rgba(255,255,255,0.6)}
.dl-btn-meta{font-size:10.5px;color:rgba(237,240,253,0.6);letter-spacing:0.04em;font-weight:400}
.download .btn-pri{background:var(--pri);border-color:var(--pri)}
.download .btn-pri:hover{background:#6366F1;border-color:#6366F1}
.download .btn-ghost{color:var(--tx-dk);border-color:var(--line-dk)}
.download .btn-ghost:hover{border-color:rgba(255,255,255,0.6)}
@media(min-width:760px){
  .dl-cards{grid-template-columns:repeat(2,1fr)}
}

/* download · rows */
.dl-rows{display:flex;flex-direction:column}
.dl-row{display:grid;grid-template-columns:1fr;gap:16px;padding:24px 0;border-top:1px solid var(--line-dk);align-items:center}
.dl-row:first-child{border-top:none;padding-top:0}
.dl-row-main{display:flex;flex-direction:column;gap:9px}
@media(min-width:760px){.dl-row{grid-template-columns:1fr 320px;gap:36px}}
/* download · rows — clear separation between the two versions via the column
   gap only (no divider line between Manager and Director). */
.dl-rowsplain{display:flex;flex-direction:column;gap:clamp(40px,7vw,56px)}
.dl-rowsplain .dl-row{border-top:none;padding:0}

/* download · spotlight (featured + alt) */
.dl-spotlight{display:flex;flex-direction:column;gap:16px}
.dl-hero{background:rgba(79,70,229,0.12);border:1px solid rgba(124,140,255,0.5);border-radius:16px;padding:clamp(24px,3vw,32px);display:flex;flex-direction:column;gap:14px}
.dl-alts{display:flex;flex-direction:column;gap:12px}
.dl-alt{background:rgba(255,255,255,0.03);border:1px solid var(--line-dk);border-radius:12px;padding:18px 20px;display:grid;grid-template-columns:1fr;gap:14px;align-items:center}
.dl-alt-main{display:flex;flex-direction:column;gap:6px}
.dl-alt .dl-card-label{font-family:var(--fd);font-weight:700;font-size:1.08rem;color:#fff;letter-spacing:-0.01em;line-height:1.1}
@media(min-width:680px){.dl-alt{grid-template-columns:1fr 300px;gap:28px}}

/* ============================================================
   HIRING CTA
   ============================================================ */
.hire{background:var(--ink-deep);color:var(--tx-dk);position:relative}
.hire-wrap{display:flex;flex-direction:column;gap:22px;border-top:1px solid var(--line-dk);padding-top:clamp(44px,6vw,72px)}
body[data-hireline="off"] .hire-wrap{border-top:none;padding-top:clamp(56px,9vw,112px)}
.hire-copy{max-width:54ch}
.hire .h2{color:#fff}
.hire-lead{margin-top:14px;color:var(--mu-dk);font-size:1.05rem;line-height:1.6;text-wrap:pretty}
.hire-direct{margin-top:16px;font-family:var(--fm);font-size:12.5px;letter-spacing:0.02em;color:var(--mu-dk);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.hire-direct a{color:var(--tx-dk);transition:color .18s ease}
.hire-direct a:hover{color:#A5B4FC}
.hire-direct .sep{color:var(--line-dk)}
.hire .btn-pri{background:var(--pri);border-color:var(--pri)}
.hire .btn-pri:hover{background:#6366F1;border-color:#6366F1}
.hire-btn{align-self:flex-start}
@media(min-width:820px){
  .hire-wrap{flex-direction:row;align-items:center;justify-content:space-between;gap:44px}
  .hire-btn{align-self:auto;flex-shrink:0}
}
body[data-ctawide="on"] .hire-btn{width:100%;justify-content:center}
@media(min-width:820px){
  body[data-ctawide="on"] .hire-btn{width:320px;align-self:center}
}

/* ============================================================
   FOOTER
   ============================================================ */
/* footer: brand-base.css provides the shared meta-row styling.
   Profile adds a top divider (no CTA band sits above it here). */
.foot{padding-block:clamp(56px,8vw,90px) 36px}
.foot-meta{border-top:1px solid var(--line-dk);padding-top:clamp(30px,4vw,44px)}

/* ============================================================
   STICKY MOBILE CTA — same behaviour + height as the home page
   ============================================================ */
.mobile-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom));
  background:rgba(244,245,251,0.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  transform:translateY(120%);transition:transform .3s cubic-bezier(.4,0,.2,1),background .25s ease,border-color .25s ease;
}
.mobile-cta.show{transform:translateY(0)}
.mobile-cta .btn{width:100%}
@media(min-width:720px){.mobile-cta{display:none}}

/* section shell */
.section{padding-block:clamp(44px,6vw,72px)}
.section.first{padding-top:0}
.section-head{margin-bottom:clamp(28px,4vw,44px);max-width:760px}

/* ============================================================
   SELECTED PROJECTS
   ============================================================ */
.proj-grid{display:grid;grid-template-columns:1fr;gap:16px}
.proj{
  background:var(--paper2);border:1px solid var(--line);border-radius:14px;
  padding:clamp(24px,3vw,32px);display:flex;flex-direction:column;gap:16px;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.proj:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 24px 50px -34px rgba(11,17,51,0.4)}
.proj-top{display:flex;flex-direction:column;gap:7px}
.proj-name{font-family:var(--fd);font-weight:700;font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-0.01em;color:var(--ink);line-height:1.05}
.proj-client{font-family:var(--fm);font-size:11.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--accent)}
.proj-desc{font-size:1rem;line-height:1.6;color:var(--tx-soft);text-wrap:pretty;flex:1}
/* ---- outcome: shared ---- */
.proj-result{margin-top:2px}
.oc-tab{
  font-family:var(--fm);font-size:9.5px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--mu);display:block;
}

/* ---- outcome A · spotlight (default) — one hero figure + supporting line ---- */
.oc-spotlight{border-top:1px solid var(--line);padding-top:20px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.ocs-hero{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.ocs-stat{
  font-family:var(--fd);font-weight:700;font-size:clamp(2.6rem,5vw,3.3rem);line-height:1;letter-spacing:-0.03em;
  color:var(--pri);font-variant-numeric:tabular-nums;
}
.ocs-lab{font-family:var(--fb);font-size:0.98rem;line-height:1.3;color:var(--tx-soft);max-width:26ch}
.ocs-more{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding-top:12px;border-top:1px solid var(--line);width:100%}
.ocs-chip{font-family:var(--fm);font-size:11px;letter-spacing:0.02em;color:var(--mu);line-height:1.5}
.ocs-chip b{font-family:var(--fd);font-weight:700;font-size:0.98rem;color:var(--ink);letter-spacing:-0.01em;margin-right:3px}
/* side-by-side cards must share one layout: subgrid makes each card span the
   same row tracks as its horizontal neighbour, so name / description / outcome
   line up across the row. */
@media(min-width:760px){
  .proj-grid{grid-template-columns:repeat(2,1fr)}
  .proj{display:grid;grid-template-rows:subgrid;grid-row:span 3}
}

/* ============================================================
   RECOMMENDATIONS
   ============================================================ */
/* Recommendations — card visuals live in brand-base.css (shared with the
   home Testimonials grid). This block owns only the grid layout. */
.rec-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:780px){
  .rec-grid{grid-template-columns:repeat(2,1fr)}
  .rec{display:grid;grid-template-rows:subgrid;grid-row:span 2}
}

/* ============================================================
   HOW I WORK — Band columns (inline icons)
   ============================================================ */
.hw-kicker{font-family:var(--fm);font-size:12px;font-weight:500;letter-spacing:0.13em;text-transform:uppercase;color:var(--mu);display:flex;align-items:center;gap:9px;margin-bottom:18px}
.hw-kicker .dot{width:6px;height:6px;border-radius:2px;background:var(--accent);flex-shrink:0}
.value-name{font-family:var(--fd);font-weight:700;font-size:1.06rem;letter-spacing:-0.01em;color:var(--ink);line-height:1.12}
.value-desc{font-size:0.95rem;line-height:1.55;color:var(--tx-soft);text-wrap:pretty}
.hw-lead{font-weight:600;color:var(--ink)}
.vi-tile{width:46px;height:46px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(150deg,rgba(79,70,229,0.12),rgba(124,58,237,0.10));border:1px solid rgba(79,70,229,0.22);color:var(--pri);flex-shrink:0}
.vi-tile svg{width:23px;height:23px}

/* working lead-cards grid (2x2) */
.hw-wgrid{display:grid;grid-template-columns:1fr;gap:18px 32px;margin-bottom:36px}
.hw-wcard{font-size:1.02rem;line-height:1.55;color:var(--tx-soft);border-left:2px solid var(--line);padding-left:18px;text-wrap:pretty}
.hw-wcard .hw-lead{display:block;margin-bottom:4px}
@media(min-width:680px){.hw-wgrid{grid-template-columns:1fr 1fr}}

/* band columns */
.hw-bandcols-top{margin-bottom:34px}
.hw-colpanel{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.hw-colcell{background:var(--paper2);padding:20px 18px;display:grid;grid-template-columns:auto 1fr;column-gap:11px;row-gap:9px;align-items:center}
.hw-colcell .value-desc{font-size:0.9rem}
.hw-colcell .vi-tile{grid-column:1;grid-row:1;width:38px;height:38px;border-radius:10px}
.hw-colcell .vi-tile svg{width:20px;height:20px}
.hw-colcell .value-name{grid-column:2;grid-row:1}
.hw-colcell .value-desc{grid-column:1 / 3;grid-row:2}
@media(min-width:560px){.hw-colpanel{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.hw-colpanel{grid-template-columns:repeat(5,1fr)}}
/* below the 5-up desktop grid, 5 values don't tile evenly: the 2-col layout (560–979px)
   leaves an empty trailing cell — a "missing box". Span the last value across both columns
   so the grid is flush with no empty cell and all five values are kept. 1-col (<560px) is
   already full-width; desktop (>=980px, 5 columns) is one flush row. */
@media(min-width:560px) and (max-width:979.98px){.hw-colpanel .hw-colcell:last-child{grid-column:1 / -1}}

/* education note positioning (design via body[data-note]) */
.edu-note{margin-top:clamp(22px,3vw,30px);max-width:74ch}

/* ============================================================
   REVEAL + reduced motion
   (base covers reveal + the generic reduced-motion rules; profile
   adds its own page-specific targets)
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  .hero-wave{animation:none!important}
  .exp:hover{transform:none!important}
}

/* ============================================================
   DARK MODE — auto
   ============================================================ */
@media(prefers-color-scheme:dark){
  /* shared tokens + heading/num colours live in brand-base.css. The header
     bg and wordmark invert MUST be re-declared here: this file's light
     .site-head rule loads after base, so the dark override has to follow it
     in source order to win. */
  /* header dark glass + wordmark invert are in brand-base.css. The wave-to-top
     variant stays here: it must follow /profile's light wavetop rules above to
     win in dark mode. */
  body[data-wavetop="full"] .site-head{background:transparent}
  body[data-wavetop="full"] .site-head.scrolled{background:rgba(7,10,20,0.82)}
  /* card titles + inline metric numbers use var(--ink) (a dark navy that
     stays dark in dark mode) — lift them to light ink on dark surfaces */
  .exp-company,.proj-name,.value-name,.sk-aname,.sk-tcname,.fact-title,
  .lw:hover .lw-name,.rec-name,.hw-lead{color:#F4F6FF}
  .ocs-chip b{color:#EAEDFB}
  /* indigo accent text sits on a dark card in dark mode — lift to the brighter
     key-number indigo so it clears WCAG AA (the flat #4F46E5 is ~2.9:1 on dark) */
  .proj-client,.ocs-stat,.ins-label{color:#A5B4FC}
  .exp-period{color:#A5B4FC}
  .exp ul li::before,.fact-label .dot{opacity:1}
  .download{background:#04060C}
  .foot{background:#04060C}
  .hire{background:#04060C}
  .chip{background:#0B1028}
  .mobile-cta{background:rgba(7,10,20,0.92);border-top-color:var(--line)}
}
