:root {
  --ink: #10232E;
  --ink-2: #1B3A4B;
  --navy: #1B3A4B;
  --navy-2: #244E61;
  --paper: #F3F5F6;
  --paper-2: #E9EEF1;
  --white: #ffffff;
  --line: #D9E0E4;
  --muted: #5B6972;
  --muted-dark: #9AAAB2;
  --engineering: #B5651D;
  --engineering-dark: #9C5417;
  --analytics: #35667A;
  --analytics-dark: #244E61;
  --bridge: #B5651D;
  --green: #79B28C;
  --shadow: 0 28px 80px rgba(7,22,31,.14);
  --shadow-soft: 0 12px 35px rgba(7,22,31,.08);
  --radius: 24px;
  --wrap: 1200px;
  --display: "Space Grotesk", system-ui, sans-serif;
  --sans: "DM Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.wrap { width: min(var(--wrap), calc(100% - 48px)); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:16px; top:-90px; z-index:1000; padding:10px 14px; background:var(--white); color:var(--ink); border-radius:10px; font-weight:700; transition:top .2s; }
.skip-link:focus { top:16px; }
:focus-visible { outline:3px solid var(--bridge); outline-offset:4px; border-radius:5px; }

/* navigation */
.site-nav { position:sticky; top:0; z-index:100; background:rgba(247,243,235,.9); border-bottom:1px solid rgba(217,210,197,.78); backdrop-filter:blur(18px); }
.nav-inner { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:11px; text-decoration:none; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(135deg,var(--engineering) 0 48%,var(--analytics) 52% 100%); color:#fff; font:600 12px var(--mono); box-shadow:0 8px 22px rgba(7,22,31,.16); }
.brand-copy strong { display:block; font:700 14px/1.1 var(--display); letter-spacing:-.02em; }
.brand-copy small { display:block; margin-top:3px; color:var(--muted); font:500 10px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.07em; }
.site-nav nav { display:flex; align-items:center; gap:22px; }
.site-nav nav > a { position:relative; color:#334850; text-decoration:none; font-size:12.5px; font-weight:700; }
.site-nav nav > a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:linear-gradient(90deg,var(--engineering),var(--analytics)); transition:right .2s; }
.site-nav nav > a:hover::after,.site-nav nav > a.is-current::after { right:0; }
.nav-cta { padding:9px 14px; border-radius:999px; background:var(--ink); color:#fff !important; }
.nav-cta::after { display:none; }
.nav-cta:hover { background:var(--analytics-dark); }
.nav-toggle { display:none; width:42px; height:42px; padding:10px; border:1px solid var(--line); background:#fff; border-radius:12px; cursor:pointer; }
.nav-toggle span:not(.sr-only) { display:block; height:2px; margin:4px 0; border-radius:2px; background:var(--ink); }
.language-switcher { display:inline-flex; align-items:center; gap:2px; padding:3px; border:1px solid var(--line); border-radius:999px; background:#fff; }
.site-nav nav .language-switcher a { min-width:45px; height:27px; display:inline-flex; align-items:center; justify-content:center; gap:4px; padding:0 8px; border-radius:999px; text-decoration:none; color:var(--muted); font:600 9px var(--mono); }
.site-nav nav .language-switcher a[aria-current="page"] { color:#fff; background:var(--ink); }
.lang-flag { font-family:system-ui,sans-serif; font-size:12px; }

/* shared */
.section { padding:108px 0; scroll-margin-top:82px; }
.section-kicker { margin:0 0 12px; color:var(--engineering-dark); font:600 10px var(--mono); text-transform:uppercase; letter-spacing:.14em; }
.section-head { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; margin-bottom:42px; }
.section-head h2 { margin:0; max-width:820px; font:700 clamp(38px,5vw,64px)/.98 var(--display); letter-spacing:-.045em; }
.section-head > p { margin:0; color:var(--muted); font-size:17px; }
.section-head .accent-eng { color:var(--engineering-dark); }
.section-head .accent-ana { color:var(--analytics-dark); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:11px 18px; border:1px solid transparent; border-radius:13px; text-decoration:none; font-size:13px; font-weight:800; cursor:pointer; transition:transform .18s, background .18s, border-color .18s, color .18s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--white); color:var(--ink); }
.button-primary:hover { background:#fff9ef; }
.button-dark { background:var(--ink); color:#fff; }
.button-dark:hover { background:var(--analytics-dark); }
.button-outline { border-color:rgba(255,255,255,.24); color:#fff; background:transparent; }
.button-outline:hover { border-color:var(--green); color:var(--green); }
.button-light-outline { border-color:var(--line); background:transparent; color:var(--ink); }
.button-light-outline:hover { border-color:var(--analytics); color:var(--analytics-dark); }

/* hero */
.hero { position:relative; overflow:hidden; background:var(--ink); color:#fff; padding:82px 0 0; }
.hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to bottom,#000 0 72%,transparent 100%); }
.hero::after { content:""; position:absolute; width:720px; height:720px; right:-220px; top:-260px; border-radius:50%; background:radial-gradient(circle,rgba(29,139,130,.24),rgba(198,106,43,.07) 45%,transparent 70%); }
.hero-inner { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr); gap:76px; align-items:center; padding-bottom:74px; }
.availability { width:max-content; max-width:100%; display:inline-flex; align-items:center; gap:9px; margin-bottom:26px; padding:8px 12px; border:1px solid rgba(255,255,255,.15); border-radius:999px; color:#cedcdf; background:rgba(255,255,255,.035); font:500 10px var(--mono); }
.availability i { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(98,210,162,.13); }
.hero .eyebrow { margin:0 0 14px; color:#a8bdc4; font:600 10px var(--mono); text-transform:uppercase; letter-spacing:.16em; }
.hero h1 { margin:0; max-width:760px; font:700 clamp(52px,7.4vw,92px)/.92 var(--display); letter-spacing:-.055em; }
.hero h1 .eng { color:#ef9b5e; }
.hero h1 .ana { color:#65d0c6; }
.hero-lead { max-width:730px; margin:26px 0 0; color:#d3dfe2; font-size:clamp(20px,2.1vw,27px); line-height:1.38; }
.hero-lead strong { color:#fff; }
.hero-proof { max-width:710px; margin:18px 0 0; color:#9fb3ba; font-size:15px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.hero-links { display:flex; flex-wrap:wrap; gap:20px; margin-top:26px; }
.hero-links a { color:#9db1b8; text-decoration:none; font:500 10px var(--mono); }
.hero-links a:hover { color:#fff; }

.flow-panel { position:relative; padding:26px; border:1px solid rgba(255,255,255,.13); border-radius:26px; background:rgba(255,255,255,.045); box-shadow:0 30px 80px rgba(0,0,0,.22); backdrop-filter:blur(10px); }
.flow-panel::before { content:""; position:absolute; inset:10px; border:1px dashed rgba(255,255,255,.07); border-radius:18px; pointer-events:none; }
.flow-top { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:24px; }
.flow-top span { color:#86a2aa; font:500 9px var(--mono); text-transform:uppercase; letter-spacing:.11em; }
.flow-top strong { display:block; margin-top:4px; color:#fff; font-size:13px; }
.flow-badge { padding:6px 9px; border-radius:999px; background:linear-gradient(90deg,rgba(198,106,43,.14),rgba(29,139,130,.14)); color:#d7e6e8 !important; border:1px solid rgba(255,255,255,.1); }
.flow { display:grid; gap:0; }
.flow-node { display:grid; grid-template-columns:38px 1fr auto; gap:12px; align-items:center; padding:13px 14px; border:1px solid rgba(255,255,255,.12); border-radius:13px; background:rgba(255,255,255,.04); }
.flow-node .n { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:rgba(255,255,255,.07); color:#9fb7be; font:600 9px var(--mono); }
.flow-node strong { display:block; color:#fff; font-size:12px; }
.flow-node small { display:block; margin-top:2px; color:#819ba4; font:400 8px var(--mono); }
.flow-node em { font:600 8px var(--mono); font-style:normal; }
.flow-node.is-eng { border-color:rgba(198,106,43,.36); }
.flow-node.is-eng em { color:#f2a36b; }
.flow-node.is-ana { border-color:rgba(29,139,130,.42); }
.flow-node.is-ana em { color:#6fd3ca; }
.flow-node.is-bridge { border-color:rgba(212,162,63,.42); background:rgba(212,162,63,.06); }
.flow-node.is-bridge em { color:#e3be69; }
.flow-connector { width:1px; height:19px; margin:0 auto; background:rgba(255,255,255,.16); }
.flow-tools { display:flex; flex-wrap:wrap; gap:6px; margin-top:20px; }
.flow-tools span { padding:5px 8px; border:1px solid rgba(255,255,255,.1); border-radius:7px; color:#91a8af; font:500 8px var(--mono); }

.metric-band { position:relative; z-index:3; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid rgba(255,255,255,.13); background:rgba(255,255,255,.025); }
.metric-band > div { min-width:0; padding:22px 26px; border-right:1px solid rgba(255,255,255,.1); }
.metric-band > div:first-child { padding-left:max(24px,calc((100vw - var(--wrap))/2)); }
.metric-band > div:last-child { border-right:0; padding-right:max(24px,calc((100vw - var(--wrap))/2)); }
.metric-band strong { display:block; color:#fff; font:700 27px/1 var(--display); letter-spacing:-.03em; }
.metric-band span { display:block; margin-top:6px; color:#819ba4; font:500 9px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.metric-band .eng strong { color:#efa06a; }
.metric-band .ana strong { color:#6bd3ca; }

/* bridge */
.bridge-section { background:var(--paper); }
.role-switch { display:inline-flex; gap:4px; padding:4px; margin-bottom:28px; border:1px solid var(--line); border-radius:999px; background:#fff; }
.role-switch button { border:0; padding:8px 12px; border-radius:999px; background:transparent; color:var(--muted); font:700 10px var(--mono); cursor:pointer; }
.role-switch button[aria-pressed="true"] { color:#fff; background:var(--ink); }
.bridge-grid { position:relative; display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; }
.bridge-card { position:relative; min-height:355px; padding:30px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:var(--shadow-soft); transition:transform .2s, opacity .2s, border-color .2s; }
.bridge-card:hover { transform:translateY(-4px); }
.bridge-card .card-label { display:flex; justify-content:space-between; gap:16px; color:var(--muted); font:600 9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.bridge-card .dot { width:9px; height:9px; border-radius:50%; }
.bridge-card.eng .dot { background:var(--engineering); }
.bridge-card.bridge .dot { background:var(--bridge); }
.bridge-card.ana .dot { background:var(--analytics); }
.bridge-card h3 { margin:55px 0 12px; font:700 29px/1.03 var(--display); letter-spacing:-.03em; }
.bridge-card p { margin:0; color:var(--muted); font-size:14px; }
.bridge-card ul { margin:22px 0 0; padding:0; list-style:none; }
.bridge-card li { padding:9px 0; border-top:1px solid var(--line); color:#32474f; font:500 10px var(--mono); }
.bridge-card .proof { margin-top:22px; padding:12px 13px; border-radius:11px; background:var(--paper); color:var(--ink); font-size:12px; font-weight:700; }
body[data-focus="engineering"] .bridge-card.ana { opacity:.43; }
body[data-focus="analytics"] .bridge-card.eng { opacity:.43; }
body[data-focus="bridge"] .bridge-card.eng,body[data-focus="bridge"] .bridge-card.ana { opacity:.74; }
body[data-focus="engineering"] .bridge-card.eng { border-color:rgba(198,106,43,.55); }
body[data-focus="analytics"] .bridge-card.ana { border-color:rgba(29,139,130,.55); }
body[data-focus="bridge"] .bridge-card.bridge { border-color:rgba(212,162,63,.7); }
.positioning-note { margin:24px 0 0; padding:18px 20px; border-left:4px solid var(--bridge); border-radius:0 13px 13px 0; background:var(--paper-2); color:#40535a; font-size:14px; }
.positioning-note strong { color:var(--ink); }

/* cases */
.cases-section { background:var(--ink); color:#fff; }
.cases-section .section-kicker { color:#e7a06c; }
.cases-section .section-head h2 { color:#fff; }
.cases-section .section-head > p { color:#9fb2b8; }
.case-feature { display:grid; grid-template-columns:1.1fr .9fr; min-height:510px; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:26px; background:rgba(255,255,255,.04); }
.case-feature + .case-feature { margin-top:20px; }
.case-feature.reverse { grid-template-columns:.9fr 1.1fr; }
.case-feature.reverse .case-visual { order:1; }
.case-feature.reverse .case-copy { order:2; }
.case-copy { padding:44px; }
.case-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; color:#8da5ad; font:500 9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.case-meta .tag-eng { color:#eca06d; }
.case-meta .tag-ana { color:#68cec5; }
.case-copy h3 { margin:24px 0 16px; max-width:680px; font:700 clamp(34px,4.4vw,52px)/.98 var(--display); letter-spacing:-.04em; }
.case-copy > p { margin:0; color:#b7c7cc; font-size:16px; }
.case-outcomes { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:30px 0 22px; }
.case-outcomes div { padding:14px; border:1px solid rgba(255,255,255,.1); border-radius:11px; background:rgba(255,255,255,.035); }
.case-outcomes span { display:block; color:#819ba4; font:500 8px var(--mono); text-transform:uppercase; }
.case-outcomes strong { display:block; margin-top:5px; color:#fff; font-size:14px; }
.case-link { display:inline-flex; align-items:center; gap:10px; margin-top:26px; color:#fff; text-decoration:none; font-size:13px; font-weight:800; }
.case-link span { transition:transform .2s; }
.case-link:hover span { transform:translateX(4px); }
.case-visual { position:relative; min-height:420px; padding:32px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#0e2d3a; }
.case-visual::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:38px 38px; }
.pipeline-mini { position:relative; z-index:2; width:min(100%,410px); display:grid; gap:8px; }
.pipeline-mini .row { display:grid; grid-template-columns:1fr 30px 1fr; align-items:center; }
.pipeline-mini .box { padding:14px 12px; border:1px solid rgba(255,255,255,.15); border-radius:11px; background:rgba(255,255,255,.05); color:#dce7e9; text-align:center; font-size:11px; font-weight:700; }
.pipeline-mini .box.eng { border-color:rgba(198,106,43,.45); color:#f3b183; }
.pipeline-mini .box.ana { border-color:rgba(29,139,130,.5); color:#8be0d8; }
.pipeline-mini .arrow { color:#718e98; text-align:center; font:500 18px var(--mono); }
.pipeline-mini .single { width:68%; margin:0 auto; }
.analytics-visual { position:relative; z-index:2; width:min(100%,440px); padding:22px; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(255,255,255,.04); }
.analytics-visual .chart { height:190px; display:flex; align-items:flex-end; gap:10px; padding:18px 12px 0; border-left:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); }
.analytics-visual .bar { flex:1; min-width:10px; border-radius:5px 5px 0 0; background:linear-gradient(to top,var(--analytics-dark),#61d3c9); opacity:.9; }
.analytics-visual .bar:nth-child(2n) { background:linear-gradient(to top,var(--engineering-dark),#e89a61); }
.analytics-visual .forecast { display:grid; grid-template-columns:1fr auto; gap:20px; margin-top:20px; }
.analytics-visual .forecast strong { color:#fff; font:700 25px var(--display); }
.analytics-visual .forecast span { color:#8ca6ae; font:500 8px var(--mono); text-transform:uppercase; }

.project-mosaic { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.project-card { overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:18px; background:rgba(255,255,255,.035); }
.project-card .project-image { aspect-ratio:16/8; padding:12px; background:rgba(255,255,255,.03); border-bottom:1px solid rgba(255,255,255,.1); }
.project-card img { width:100%; height:100%; object-fit:contain; display:block; }
.project-card-body { padding:21px; }
.project-card .project-type { color:#7fd5ce; font:500 8px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.project-card h4 { margin:10px 0 8px; color:#fff; font:700 20px/1.1 var(--display); }
.project-card p { margin:0; color:#9db2b9; font-size:12px; }
.project-card a { display:inline-block; margin-top:14px; color:#fff; text-decoration:none; font-size:11px; font-weight:800; }
.technical-depth { margin-top:16px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.025); }
.technical-depth summary { padding:18px 20px; cursor:pointer; color:#d7e4e7; list-style:none; font-size:13px; }
.technical-depth summary::-webkit-details-marker { display:none; }
.depth-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 16px 16px; }
.depth-grid article { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:13px; border:1px solid rgba(255,255,255,.1); border-radius:12px; background:rgba(255,255,255,.03); }
.depth-grid img { width:120px; height:82px; object-fit:contain; border-radius:8px; background:#fff; }
.depth-grid h4 { margin:0 0 5px; color:#fff; font-size:13px; }
.depth-grid p { margin:0; color:#92aab2; font-size:11px; }
.depth-grid a { color:#74d8ce; text-decoration:none; font-size:10px; font-weight:700; }

/* skill board */
.skills-section { background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.skill-board { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:var(--shadow-soft); }
.skill-row { display:grid; grid-template-columns:220px 1fr; border-top:1px solid var(--line); }
.skill-row:first-child { border-top:0; }
.skill-row .skill-name { padding:23px 25px; background:#faf8f3; }
.skill-row .skill-name span { display:block; color:var(--muted); font:500 8px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.skill-row .skill-name strong { display:block; margin-top:7px; font:700 17px/1.1 var(--display); }
.skill-row .skill-items { display:flex; flex-wrap:wrap; gap:7px; align-content:center; padding:19px 22px; }
.skill-row .skill-items span { padding:6px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; color:#354a52; font:500 10px var(--mono); }
.skill-row.is-learning { background:linear-gradient(90deg,rgba(212,162,63,.06),rgba(29,139,130,.04)); }
.skill-row.is-learning .skill-name strong { color:var(--engineering-dark); }
.learning-note { margin:18px 0 0; color:var(--muted); font-size:12px; }

/* experience */
.experience-section { background:var(--paper); }
.experience-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:start; }
.timeline { position:relative; }
.timeline::before { content:""; position:absolute; left:9px; top:6px; bottom:6px; width:1px; background:var(--line); }
.timeline-item { position:relative; padding:0 0 34px 36px; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-item::before { content:""; position:absolute; left:4px; top:5px; width:10px; height:10px; border:2px solid var(--paper); border-radius:50%; background:#9eaaae; box-shadow:0 0 0 1px var(--line); }
.timeline-item.current::before { background:linear-gradient(135deg,var(--engineering),var(--analytics)); box-shadow:0 0 0 5px rgba(29,139,130,.10); }
.timeline-date { color:var(--muted); font:500 9px var(--mono); }
.timeline-item h3 { margin:6px 0 5px; font:700 22px/1.15 var(--display); }
.timeline-company { margin:0 0 8px; color:var(--engineering-dark); font:600 9px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.timeline-item p { margin:0; color:var(--muted); font-size:13px; }
.timeline-item a { display:inline-block; margin-top:10px; color:var(--analytics-dark); text-decoration:none; font-size:12px; font-weight:800; }
.education-panel { position:sticky; top:100px; padding:28px; border-radius:22px; background:var(--ink); color:#fff; box-shadow:var(--shadow); }
.education-panel .panel-title { margin:0 0 24px; color:#78d7ce; font:600 9px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.edu-item { padding:18px 0; border-top:1px solid rgba(255,255,255,.12); }
.edu-item:first-of-type { border-top:0; padding-top:0; }
.edu-item span { color:#7f9aa3; font:500 8px var(--mono); text-transform:uppercase; }
.edu-item h3 { margin:7px 0 4px; color:#fff; font-size:14px; line-height:1.35; }
.edu-item p { margin:0; color:#a9bbc1; font-size:11px; }
.edu-item.highlight { margin:8px -10px; padding:16px 10px; border:1px solid rgba(212,162,63,.35); border-radius:12px; background:rgba(212,162,63,.07); }

/* cv section */
.cv-section { background:#fff; }
.cv-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cv-card { position:relative; overflow:hidden; min-height:275px; padding:30px; border:1px solid var(--line); border-radius:20px; background:var(--paper); }
.cv-card::after { content:""; position:absolute; width:190px; height:190px; right:-70px; bottom:-70px; border-radius:50%; opacity:.12; }
.cv-card.eng::after { background:var(--engineering); }
.cv-card.ana::after { background:var(--analytics); }
.cv-card span { color:var(--muted); font:600 9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.cv-card h3 { margin:40px 0 10px; font:700 31px/1 var(--display); letter-spacing:-.03em; }
.cv-card p { max-width:520px; margin:0; color:var(--muted); font-size:13px; }
.cv-card .button { margin-top:22px; }

/* profile/contact */
.profile-section { background:var(--navy); color:#fff; }
.profile-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; }
.profile-section h2 { margin:0; font:700 clamp(38px,5vw,58px)/1 var(--display); letter-spacing:-.04em; }
.profile-lead { margin:0; color:#d8e3e5; font:500 24px/1.45 var(--display); }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:34px; }
.principles article { padding-top:16px; border-top:1px solid rgba(255,255,255,.14); }
.principles span { color:#77d8ce; font:500 8px var(--mono); }
.principles h3 { margin:15px 0 6px; font-size:13px; }
.principles p { margin:0; color:#99afb6; font-size:11px; }
.contact-section { background:var(--ink); color:#fff; padding:84px 0 22px; }
.contact-panel { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:end; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.12); }
.contact-panel h2 { max-width:850px; margin:0; font:700 clamp(38px,5vw,62px)/.98 var(--display); letter-spacing:-.045em; }
.contact-panel p { margin:16px 0 0; color:#9db2b9; }
.contact-buttons { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.footer { display:flex; justify-content:space-between; gap:20px; padding-top:20px; color:#708c95; font:500 9px var(--mono); }
.footer p { margin:0; }

/* 404 */
.error-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:var(--ink); color:#fff; text-align:center; }
.error-card { width:min(720px,100%); }
.error-card .brand-mark { margin:0 auto 24px; }
.error-card h1 { margin:0; font:700 clamp(56px,10vw,100px)/.9 var(--display); letter-spacing:-.05em; }
.error-card p { max-width:540px; margin:20px auto 28px; color:#9fb2b8; }
.error-language { width:max-content; margin:0 auto 24px; border-color:rgba(255,255,255,.15); background:rgba(255,255,255,.04); }
.error-language a { min-width:48px; height:28px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; color:#9fb2b8; font:600 9px var(--mono); }
.error-language a[aria-current="page"] { color:#fff; }

@media (max-width:1080px) {
  .hero-inner { grid-template-columns:1fr 420px; gap:42px; }
  .metric-band { grid-template-columns:repeat(3,1fr); }
  .metric-band > div:first-child { padding-left:24px; }
  .metric-band > div:last-child { padding-right:24px; }
  .metric-band > div:nth-child(3) { border-right:0; }
  .metric-band > div:nth-child(n+4) { border-top:1px solid rgba(255,255,255,.1); }
  .case-feature,.case-feature.reverse { grid-template-columns:1fr; }
  .case-feature.reverse .case-visual,.case-feature.reverse .case-copy { order:initial; }
  .project-mosaic { grid-template-columns:1fr 1fr; }
  .project-card:last-child { grid-column:1 / -1; }
}

@media (max-width:860px) {
  .site-nav nav { position:absolute; left:24px; right:24px; top:calc(100% + 8px); display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-soft); }
  .site-nav nav.is-open { display:flex; }
  .site-nav nav > a { padding:10px; }
  .site-nav nav > a::after { display:none; }
  .language-switcher { width:max-content; margin:8px 10px; }
  .nav-toggle { display:block; }
  .hero-inner { grid-template-columns:1fr; }
  .flow-panel { max-width:640px; }
  .section-head { grid-template-columns:1fr; gap:18px; }
  .bridge-grid { grid-template-columns:1fr; }
  body[data-focus] .bridge-card { opacity:1 !important; }
  .bridge-card { min-height:auto; }
  .bridge-card h3 { margin-top:34px; }
  .experience-layout { grid-template-columns:1fr; }
  .education-panel { position:static; }
  .profile-grid { grid-template-columns:1fr; gap:34px; }
  .contact-panel { grid-template-columns:1fr; align-items:start; }
  .contact-buttons { justify-content:flex-start; }
}

@media (max-width:650px) {
  .wrap { width:min(calc(100% - 30px),var(--wrap)); }
  .section { padding:78px 0; }
  .hero { padding-top:54px; }
  .hero h1 { font-size:clamp(48px,15vw,68px); }
  .hero-lead { font-size:19px; }
  .availability { white-space:normal; line-height:1.5; }
  .flow-panel { padding:18px; }
  .flow-node { grid-template-columns:32px 1fr; }
  .flow-node em { grid-column:2; }
  .metric-band { grid-template-columns:1fr 1fr; }
  .metric-band > div { padding:18px 16px !important; border-top:1px solid rgba(255,255,255,.1); }
  .metric-band > div:nth-child(-n+2) { border-top:0; }
  .metric-band > div:nth-child(2n) { border-right:0; }
  .metric-band > div:last-child { grid-column:1 / -1; border-right:0; }
  .case-copy { padding:28px 22px; }
  .case-outcomes { grid-template-columns:1fr; }
  .case-visual { min-height:350px; padding:18px; }
  .project-mosaic { grid-template-columns:1fr; }
  .project-card:last-child { grid-column:auto; }
  .depth-grid { grid-template-columns:1fr; }
  .depth-grid article { grid-template-columns:90px 1fr; }
  .depth-grid img { width:90px; height:70px; }
  .skill-row { grid-template-columns:1fr; }
  .skill-row .skill-name { padding-bottom:10px; }
  .skill-row .skill-items { padding-top:8px; }
  .cv-grid { grid-template-columns:1fr; }
  .principles { grid-template-columns:1fr; }
  .footer { flex-direction:column; gap:4px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
}

@media print {
  .site-nav,.hero-actions,.hero-links,.role-switch,.contact-section,.technical-depth,.cv-section { display:none !important; }
  .hero,.cases-section,.profile-section { background:#fff; color:#000; }
  .hero h1,.cases-section h2,.case-copy h3,.profile-section h2 { color:#000; }
  .section { padding:30px 0; }
}
.identity-mini { display:grid; grid-template-columns:48px 1fr; gap:11px; align-items:center; margin-top:18px; padding-top:17px; border-top:1px solid rgba(255,255,255,.11); }
.identity-mini img { width:48px; height:48px; object-fit:cover; object-position:50% 24%; border-radius:13px; border:1px solid rgba(255,255,255,.14); }
.identity-mini strong { display:block; color:#fff; font-size:11px; }
.identity-mini span { display:block; margin-top:2px; color:#819ba4; font:500 8px var(--mono); }


/* ==========================================================================
   V2 : luminous mineral system / single Analytics Engineer identity
   ========================================================================== */
:root {
  --night: #10232E;
  --slate: #1B3A4B;
  --ink-text: #1F2933;
  --mist: #D9E0E4;
  --copper: #B5651D;
  --copper-text: #9C5417;
  --copper-light: #E2A63A;
  --surface: #FFFFFF;
}
body { color:var(--ink-text); background:var(--paper); }
.site-nav { background:rgba(243,245,246,.94); border-bottom-color:rgba(217,224,228,.92); }
.brand-mark { background:var(--slate); border:1px solid rgba(181,101,29,.45); box-shadow:0 8px 22px rgba(16,35,46,.12); }
.brand-copy strong { color:var(--ink-text); }
.site-nav nav > a { color:#40515A; }
.site-nav nav > a::after { background:var(--copper); }
.nav-cta { background:var(--slate); }
.nav-cta:hover { background:var(--night); }
.language-switcher { background:#fff; }
.site-nav nav .language-switcher a[aria-current="page"] { background:var(--slate); }

.section { padding:88px 0; }
.section-head { gap:58px; margin-bottom:34px; }
.section-head h2 { color:var(--ink-text); font-size:clamp(36px,4.6vw,58px); line-height:1; }
.section-kicker { color:var(--copper-text); }
.section-head .accent-eng,.section-head .accent-ana { color:var(--copper-text); }

.hero { background:var(--night); padding:72px 0; }
.hero::after { right:-240px; top:-300px; background:radial-gradient(circle,rgba(181,101,29,.22),rgba(181,101,29,.06) 42%,transparent 70%); }
.hero-inner-v2 { grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:76px; padding-bottom:0; }
.hero .eyebrow { color:#B7C5CB; }
.hero h1 { max-width:800px; font-size:clamp(52px,7.1vw,88px); }
.hero h1 .accent { color:var(--copper-light); }
.hero-lead { max-width:720px; color:#D6E0E4; }
.hero .button-primary { background:var(--copper); color:#fff; }
.hero .button-primary:hover { background:#9C5417; }
.hero-links a { color:#B1C0C6; }
.availability { color:#D3DEE2; background:rgba(255,255,255,.04); }

.portrait-card { position:relative; padding:14px; border:1px solid rgba(255,255,255,.16); border-radius:26px; background:rgba(255,255,255,.055); box-shadow:0 34px 90px rgba(0,0,0,.23); }
.portrait-shell { overflow:hidden; border-radius:18px; background:#0D1D25; }
.portrait-shell img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 24%; }
.portrait-meta { display:flex; justify-content:space-between; gap:20px; align-items:end; padding:18px 6px 15px; border-bottom:1px solid rgba(255,255,255,.12); }
.portrait-meta strong { display:block; color:#fff; font:700 15px/1.2 var(--display); }
.portrait-meta span { display:block; margin-top:4px; color:var(--copper-light); font:500 9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.portrait-meta small { color:#9FB1B8; font:500 9px var(--mono); text-align:right; }
.flow-compact { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:7px; padding:15px 4px 3px; color:#D7E1E4; font:500 8.5px var(--mono); text-transform:uppercase; letter-spacing:.045em; }
.flow-compact i { color:var(--copper-light); font-style:normal; }

.bridge-section { background:var(--paper); }
.bridge-grid-v2 { grid-template-columns:repeat(3,1fr); }
.bridge-card { min-height:315px; padding:28px; border-color:var(--mist); border-radius:19px; box-shadow:0 12px 32px rgba(16,35,46,.055); }
.bridge-card:hover { transform:translateY(-3px); border-color:#C9D3D8; }
.bridge-card .dot { background:var(--copper) !important; }
.bridge-card h3 { margin:42px 0 11px; font-size:27px; }
.bridge-card li { color:#40515A; border-color:#E2E7EA; }

.cases-section { background:#fff; color:var(--ink-text); border-top:1px solid var(--mist); border-bottom:1px solid var(--mist); }
.cases-section .section-kicker { color:var(--copper-text); }
.cases-section .section-head h2 { color:var(--ink-text); }
.cases-section .section-head > p { color:var(--muted); }
.case-feature { min-height:480px; border-color:var(--mist); background:#F8FAFB; box-shadow:0 12px 34px rgba(16,35,46,.05); }
.case-meta { color:#6E7C84; }
.case-meta .tag-eng,.case-meta .tag-ana { color:var(--copper-text); }
.case-copy h3 { color:var(--ink-text); }
.case-copy > p { color:var(--muted); }
.case-outcomes div { border-color:var(--mist); background:#fff; }
.case-outcomes span { color:#6D7B83; }
.case-outcomes strong { color:var(--slate); }
.case-link { color:var(--copper-text); }
.case-visual { background:var(--night); }
.project-card { border-color:var(--mist); background:#fff; box-shadow:0 8px 24px rgba(16,35,46,.045); }
.project-card .project-image { background:#F3F6F7; border-color:var(--mist); }
.project-card .project-type { color:var(--copper-text); }
.project-card h4 { color:var(--ink-text); }
.project-card p { color:var(--muted); }
.project-card a { color:var(--copper-text); }
.technical-depth { border-color:var(--mist); background:#F7F9FA; }
.technical-depth summary { color:var(--slate); }
.depth-grid article { border-color:var(--mist); background:#fff; }
.depth-grid h4 { color:var(--ink-text); }
.depth-grid p { color:var(--muted); }
.depth-grid a { color:var(--copper-text); }

.skills-section { background:var(--paper); border-color:var(--mist); }
.skill-board { border-color:var(--mist); border-radius:19px; box-shadow:0 12px 32px rgba(16,35,46,.05); }
.skill-row { border-color:var(--mist); }
.skill-row .skill-name { background:#EEF2F4; }
.skill-row .skill-items span { border-color:var(--mist); color:#3E4E57; }
.skill-row.is-learning { background:#F5F7F8; }
.skill-row.is-learning .skill-name { background:#E9EEF1; }
.skill-row.is-learning .skill-name strong { color:var(--copper-text); }

.experience-section { background:#fff; }
.timeline::before { background:var(--mist); }
.timeline-item::before { border-color:#fff; }
.timeline-item.current::before { background:var(--copper); box-shadow:0 0 0 5px rgba(181,101,29,.10); }
.timeline-company { color:var(--copper-text); }
.timeline-item a { color:var(--copper-text); }
.education-panel { background:var(--slate); box-shadow:0 22px 60px rgba(16,35,46,.16); }
.education-panel .panel-title { color:var(--copper-light); }
.edu-item.highlight { border-color:rgba(226,166,58,.36); background:rgba(226,166,58,.08); }

.contact-section { background:var(--night); }
.contact-panel h2 { max-width:900px; }
.contact-panel p { color:#AABBC2; }
.contact-section .section-kicker { color:var(--copper-light) !important; }
.footer { color:#8299A2; }

.error-page { background:var(--night); }

/* case-study surfaces inherit the same mineral palette */
.case-page { background:var(--paper); }
.case-hero,.case-cta { background:var(--night); }
.case-section h2 { color:var(--ink-text); }

@media (max-width:1080px) {
  .hero-inner-v2 { grid-template-columns:1fr 390px; gap:44px; }
}
@media (max-width:860px) {
  .hero-inner-v2 { grid-template-columns:1fr; }
  .portrait-card { max-width:620px; }
  .bridge-grid-v2 { grid-template-columns:1fr; }
}
@media (max-width:650px) {
  .section { padding:70px 0; }
  .hero { padding:52px 0 58px; }
  .hero h1 { font-size:clamp(46px,14vw,64px); }
  .portrait-card { padding:10px; border-radius:20px; }
  .portrait-shell { border-radius:14px; }
  .portrait-meta { align-items:flex-start; flex-direction:column; gap:8px; }
  .portrait-meta small { text-align:left; }
  .flow-compact { justify-content:flex-start; gap:6px; }
  .case-copy { padding:28px 22px; }
}

@media print {
  .hero,.cases-section { background:#fff; color:#000; }
}
/* Active visualization accents stay inside the slate/copper system. */
.pipeline-mini .box.eng { border-color:rgba(181,101,29,.52); color:#E2A63A; }
.pipeline-mini .box.ana { border-color:rgba(53,102,122,.58); color:#D9E0E4; }
.analytics-visual .bar { background:linear-gradient(to top,#244E61,#78949D); }
.analytics-visual .bar:nth-child(2n) { background:linear-gradient(to top,#9C5417,#E2A63A); }
.analytics-visual .forecast strong { color:#F3F5F6; }
/* WCAG AA: use the darker copper wherever white text sits on copper. */
.hero .button-primary { background:var(--copper-text); color:#fff; }
.hero .button-primary:hover { background:#854713; }


/* ==========================================================================\n   Career portfolio V3 : Analytics Engineer + Cybersecurity, CDI / CDD\n   ========================================================================== */
:root{
  --ink:#10232E;--ink-2:#1B3A4B;--navy:#1B3A4B;--navy-2:#244E61;
  --paper:#F3F5F6;--paper-2:#E9EEF1;--white:#FFFFFF;--line:#D9E0E4;
  --muted:#5B6972;--engineering:#B5651D;--engineering-dark:#9C5417;
  --analytics:#35667A;--analytics-dark:#244E61;--bridge:#B5651D;--green:#54866A;
}
body{background:var(--paper);color:#1F2933}
.site-nav{background:rgba(243,245,246,.94);border-bottom:1px solid rgba(217,224,228,.92)}
.brand-mark{background:var(--navy);box-shadow:none}.site-nav nav>a::after{background:var(--engineering)}
.nav-cta{background:var(--navy)}
.hero-career{background:var(--paper);color:#1F2933;padding:72px 0 76px;border-bottom:1px solid var(--line)}
.hero-career::before{background-image:linear-gradient(rgba(27,58,75,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(27,58,75,.045) 1px,transparent 1px);mask-image:linear-gradient(to bottom,#000 0 78%,transparent 100%)}
.hero-career::after{width:620px;height:620px;right:-210px;top:-240px;background:radial-gradient(circle,rgba(181,101,29,.10),transparent 68%)}
.hero-career-inner{grid-template-columns:minmax(0,1.12fr) minmax(360px,.72fr);padding-bottom:0;gap:72px}
.hero-career .availability{color:#41545d;background:#fff;border-color:var(--line);box-shadow:0 7px 25px rgba(16,35,46,.04)}
.hero-career .availability i{background:#54866A;box-shadow:0 0 0 4px rgba(84,134,106,.12)}
.hero-career .eyebrow{color:var(--engineering-dark)}
.hero-career h1{color:#10232E;font-size:clamp(48px,6.6vw,82px);line-height:.96;max-width:860px}
.hero-career h1 .accent{color:var(--engineering-dark)}
.hero-career .hero-lead{color:#354650;max-width:800px;font-size:clamp(20px,2vw,26px)}
.hero-career .hero-lead strong{color:#10232E}.hero-subline{max-width:760px;margin:16px 0 0;color:#62717a;font-size:14px}
.hero-career .hero-links a{color:#596b74}.hero-career .hero-links a:hover{color:var(--engineering-dark)}
.portrait-card-light{overflow:hidden;padding:14px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(16,35,46,.12)}
.portrait-card-light .portrait-shell{overflow:hidden;border-radius:18px;background:#e2e7e9}.portrait-card-light .portrait-shell img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 22%}
.portrait-card-light .portrait-meta{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;padding:18px 6px 14px;border-bottom:1px solid var(--line)}
.portrait-card-light .portrait-meta strong{display:block;font:700 16px/1.2 var(--display);color:#10232E}.portrait-card-light .portrait-meta span{display:block;margin-top:4px;color:var(--engineering-dark);font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.portrait-card-light .portrait-meta small{color:var(--muted);font:500 9px var(--mono);text-align:right}
.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:12px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.trust-strip span{padding:10px 8px;background:#F7F9FA;color:#6b7980;font:500 8px/1.45 var(--mono);text-align:center}.trust-strip b{display:block;color:#263942;font-size:9px}
.expertise-section{background:#fff}.expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.expertise-grid article{min-height:330px;padding:27px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 10px 28px rgba(16,35,46,.04)}.expertise-grid article>span{color:var(--engineering-dark);font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.08em}.expertise-grid h3{margin:48px 0 10px;color:#10232E;font:700 27px/1 var(--display)}.expertise-grid p{margin:0;color:var(--muted);font-size:13px}.expertise-grid ul{margin:20px 0 0;padding:0;list-style:none}.expertise-grid li{padding:8px 0;border-top:1px solid var(--line);color:#42555e;font:500 9px var(--mono)}.expertise-grid .security-pillar{background:#10232E;border-color:#10232E}.expertise-grid .security-pillar>span{color:#E2A63A}.expertise-grid .security-pillar h3{color:#fff}.expertise-grid .security-pillar p{color:#afbec4}.expertise-grid .security-pillar li{color:#d3dce0;border-color:rgba(255,255,255,.13)}
.cases-light{background:var(--paper);color:#1F2933}.cases-light .section-kicker{color:var(--engineering-dark)}.cases-light .section-head h2{color:#10232E}.cases-light .section-head>p{color:var(--muted)}
.case-light{background:#fff;border-color:var(--line);box-shadow:0 14px 38px rgba(16,35,46,.05)}.case-light .case-copy h3{color:#10232E}.case-light .case-copy>p{color:#596a73}.case-light .case-meta{color:#73828a}.case-light .case-meta span:first-child{color:var(--engineering-dark)}.case-light .case-outcomes>div{background:#F5F7F8;border-color:var(--line)}.case-light .case-outcomes span{color:#74828a}.case-light .case-outcomes strong{color:#10232E}.case-light .case-link{color:var(--engineering-dark)}
.dark-panel{display:grid;place-items:center;min-height:420px;padding:34px;background:#10232E}.data-flow{width:min(100%,430px);display:grid;grid-template-columns:1fr;gap:8px}.data-flow span{padding:15px 17px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.04);color:#e9eef0;font:600 11px var(--mono);text-align:center}.data-flow i{height:18px;display:grid;place-items:center;color:#E2A63A;font-style:normal}.architecture-caption{margin-top:18px;color:#8fa4ad;font:500 9px var(--mono);text-transform:uppercase;letter-spacing:.08em}.case-image{width:100%;max-height:340px;object-fit:contain;border-radius:14px;background:#fff;padding:10px}
.security-proof{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;margin-top:46px;padding-top:42px;border-top:1px solid var(--line)}.security-proof-intro h3{margin:0 0 14px;color:#10232E;font:700 34px/1.04 var(--display);letter-spacing:-.03em}.security-proof-intro>p:last-child{color:var(--muted);font-size:14px}.security-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.security-proof-grid article{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.security-proof-grid img{width:100%;aspect-ratio:16/8;object-fit:contain;padding:8px;background:#eef2f4;border-bottom:1px solid var(--line)}.security-proof-grid article div{padding:15px}.security-proof-grid span{color:var(--engineering-dark);font:600 8px var(--mono);text-transform:uppercase;letter-spacing:.08em}.security-proof-grid h4{margin:8px 0 6px;color:#10232E;font-size:14px}.security-proof-grid p{margin:0;color:var(--muted);font-size:11px}.security-proof-grid a{display:inline-block;margin-top:9px;color:var(--engineering-dark);text-decoration:none;font-size:10px;font-weight:700}
.skill-row .skill-name{background:#F7F9FA}.skill-row.is-learning{background:linear-gradient(90deg,rgba(181,101,29,.045),rgba(53,102,122,.035))}
.education-panel{background:#10232E}.contact-kicker{color:#E2A63A!important}.contact-section{background:#10232E}.contact-panel h2{max-width:900px}
@media(max-width:1100px){.expertise-grid{grid-template-columns:1fr 1fr}.security-proof{grid-template-columns:1fr}.hero-career-inner{grid-template-columns:1fr 390px;gap:44px}}
@media(max-width:860px){.hero-career-inner{grid-template-columns:1fr}.portrait-card-light{max-width:620px}.expertise-grid{grid-template-columns:1fr 1fr}.security-proof-grid{grid-template-columns:1fr 1fr}.security-proof-grid article:last-child{grid-column:1/-1}.portrait-card-light .portrait-shell img{aspect-ratio:16/9}}
@media(max-width:650px){.hero-career{padding-top:50px}.hero-career h1{font-size:clamp(43px,13vw,60px)}.portrait-card-light .portrait-meta{align-items:flex-start;flex-direction:column}.portrait-card-light .portrait-meta small{text-align:left}.trust-strip{grid-template-columns:1fr}.expertise-grid{grid-template-columns:1fr}.expertise-grid article{min-height:auto}.expertise-grid h3{margin-top:28px}.security-proof-grid{grid-template-columns:1fr}.security-proof-grid article:last-child{grid-column:auto}.case-light .case-copy{padding:28px 22px}.dark-panel{min-height:330px;padding:22px}}

/* ==========================================================================\n   V4 refinement : readability, project completeness, MyReport visibility\n   ========================================================================== */
.site-nav nav > a{font-size:13.5px}
.brand-copy small{font-size:10.5px}
.section-kicker{font-size:10.5px}
.section-head>p{font-size:17.5px;line-height:1.65}
.hero-subline{font-size:15px;line-height:1.65}
.hero-career .hero-links{gap:10px;margin-top:24px}
.hero-career .hero-links a{display:inline-flex;align-items:center;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#31464f;font:600 11.5px var(--mono);box-shadow:0 5px 18px rgba(16,35,46,.035)}
.hero-career .hero-links a:hover{border-color:#C6A98E;color:var(--engineering-dark);transform:translateY(-1px)}
.expertise-grid p{font-size:14px;line-height:1.6}
.expertise-grid li{font-size:10.5px}

.tool-highlight{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 2px;padding:11px 13px;border:1px solid #D4DDE1;border-left:3px solid var(--engineering);border-radius:10px;background:#F7F9FA}
.tool-highlight strong{color:#10232E;font:700 12px var(--display)}
.tool-highlight span{color:#5B6972;font:500 9.5px var(--mono)}

.all-projects{margin-top:54px;padding-top:46px;border-top:1px solid var(--line)}
.subsection-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:22px}
.subsection-head h3{max-width:720px;margin:0;color:#10232E;font:700 clamp(28px,3.8vw,42px)/1.03 var(--display);letter-spacing:-.035em}
.subsection-link{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--engineering-dark);text-decoration:none;font-size:12px;font-weight:800}
.subsection-link:hover{border-color:#C8D2D7;box-shadow:0 7px 22px rgba(16,35,46,.06)}
.project-mosaic-five{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.project-mosaic-five .project-card:nth-child(4),.project-mosaic-five .project-card:nth-child(5){grid-column:auto}
.project-card{display:flex;flex-direction:column;min-height:100%;border-color:var(--line);background:#fff}
.project-card .project-image{aspect-ratio:16/8.5;background:#EEF2F4;border-color:var(--line)}
.project-card-body{display:flex;flex-direction:column;flex:1;padding:21px}
.project-card .project-type{font-size:9px;line-height:1.45}
.project-card h4{font-size:21px;line-height:1.12}
.project-card p{font-size:13px;line-height:1.58}
.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}
.project-tags span{padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:#F7F9FA;color:#4D5E66;font:500 8.5px var(--mono)}
.project-links{display:flex;gap:13px;flex-wrap:wrap;margin-top:auto!important;padding-top:12px}
.project-card .project-links a{margin-top:0;font-size:11px}
.project-publishing-note{max-width:900px;margin:18px 0 0;color:var(--muted);font-size:12.5px}
.project-publishing-note a{color:var(--engineering-dark);font-weight:800;text-decoration:none}

.skill-row .skill-name span{font-size:9px}
.skill-row .skill-name strong{font-size:18px}
.skill-row .skill-items span{font-size:10.5px;padding:7px 9px}
.skill-row .skill-items .skill-featured{border-color:#D7B797;background:#FFF9F2;color:#8A4814}
.myreport-skill-row .skill-name{background:#FFF8F0}
.myreport-skill-row .skill-name span,.myreport-skill-row .skill-name strong{color:#8A4814}
.myreport-skill-row .skill-items{background:#FFFCF8}

.timeline-date{font-size:10px}.timeline-company{font-size:10px}.timeline-item p{font-size:14px;line-height:1.6}.timeline-item a{font-size:12.5px}
.education-panel .panel-title{font-size:10px}.edu-item span{font-size:9px}.edu-item h3{font-size:15px}.edu-item p{font-size:12.5px;line-height:1.5}
.footer{font-size:10.5px}

@media(max-width:1080px){.project-mosaic-five{grid-template-columns:1fr 1fr}.project-mosaic-five .project-card:last-child{grid-column:1/-1}}
@media(max-width:650px){
  .site-nav nav > a{font-size:14px}
  .subsection-head{align-items:flex-start;flex-direction:column}
  .project-mosaic-five{grid-template-columns:1fr}
  .project-mosaic-five .project-card:last-child{grid-column:auto}
  .hero-career .hero-links a{font-size:11px}
}


/* ==========================================================================\n   V5 refinement : HortiTrace before/after architecture + stronger case CTA\n   ========================================================================== */
.architecture-compare-home{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:16px}
.architecture-compare{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.architecture-state{padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(255,255,255,.035)}
.architecture-state.after{border-color:rgba(226,166,58,.42);background:rgba(226,166,58,.055)}
.architecture-state-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}
.architecture-state-head span{flex:0 0 auto;padding:4px 6px;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#a8bac0;font:700 9.5px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.architecture-state.after .architecture-state-head span{border-color:rgba(226,166,58,.42);color:#F2C878}
.architecture-state-head strong{max-width:155px;color:#edf3f5;font:700 13.5px/1.25 var(--display);text-align:right}
.architecture-stack{display:grid;justify-items:stretch;gap:4px}
.architecture-stack i{height:12px;display:grid;place-items:center;color:#E2A63A;font-style:normal;font-size:11px}
.architecture-step{padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.04);color:#e9eef0;font:600 11.5px/1.35 var(--mono);text-align:center}
.architecture-step small{display:block;margin-top:3px;color:#8ea3ab;font:500 9.5px/1.4 var(--mono)}
.architecture-step.featured{border-color:rgba(226,166,58,.48);color:#F2C878}
.architecture-state-metric{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);color:#9db0b6;font:600 9.5px/1.5 var(--mono);text-align:center}
.architecture-compare-home .architecture-caption{position:relative;z-index:1;margin:0;text-align:center}
.case-light .case-link{padding:10px 13px;border:1px solid #D8B28F;border-radius:10px;background:#FFF9F2;box-shadow:0 5px 16px rgba(16,35,46,.03)}
.case-light .case-link:hover{border-color:#B5651D;background:#FFF4E8}
@media(max-width:650px){.architecture-compare{grid-template-columns:1fr}.architecture-state-head strong{max-width:none}.architecture-compare-home{min-height:auto!important}.architecture-state{padding:14px}}


/* ==========================================================================\n   Academic evidence : public summary, private transcripts\n   ========================================================================== */
.edu-item.academic-highlight{margin:0 -10px 8px;padding:18px 10px;border:1px solid rgba(101,208,198,.24);border-radius:12px;background:rgba(101,208,198,.045)}
.edu-item.academic-highlight:first-of-type{padding-top:18px}
.academic-proof{margin-top:8px!important;color:#d6e5e8!important;font-weight:650;font-size:11.5px!important}
.academic-link{display:inline-block;margin-top:9px;color:#E2A63A;text-decoration:none;font-size:11.5px;font-weight:800}
.academic-link:hover{color:#fff}
.academic-hero{position:relative;overflow:hidden;padding:62px 0 58px;background:var(--ink);color:#fff}
.academic-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,#000,transparent 100%)}
.academic-hero .wrap{position:relative;z-index:1}
.academic-back{display:inline-block;margin-bottom:32px;color:#9fb3ba;text-decoration:none;font:600 10px var(--mono)}
.academic-back:hover{color:#fff}
.academic-hero .section-kicker{color:#E2A63A}
.academic-hero h1{max-width:900px;margin:0;font:700 clamp(48px,7vw,78px)/.95 var(--display);letter-spacing:-.05em}
.academic-lead{max-width:820px;margin:22px 0 0;color:#c7d5d9;font-size:20px;line-height:1.55}
.academic-lead strong{color:#fff}
.academic-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:42px;border:1px solid rgba(255,255,255,.11);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.11)}
.academic-summary article{padding:22px;background:#132C39}
.academic-summary span{display:block;color:#7f9ca5;font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.1em}
.academic-summary strong{display:block;margin-top:10px;color:#fff;font:700 31px/1 var(--display)}
.academic-summary strong small{font-size:13px;color:#8da7af;font-family:var(--mono)}
.academic-summary em{display:inline-block;margin-top:11px;color:#F0C87A;font:700 10px var(--mono);font-style:normal}
.academic-content{padding:86px 0 110px;background:var(--paper)}
.academic-wrap{max-width:1040px}
.academic-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:end;margin-bottom:48px}
.academic-intro h2{margin:0;max-width:700px;font:700 clamp(36px,5vw,56px)/1 var(--display);letter-spacing:-.04em}
.academic-intro>p{margin:0;color:var(--muted);font-size:15.5px}
.academic-semester{margin-top:28px;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(16,35,46,.035)}
.academic-semester-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;background:#F8FAFB;border-bottom:1px solid var(--line)}
.academic-semester-head span{color:var(--muted);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.1em}
.academic-semester-head h2{margin:7px 0 0;font:700 28px/1 var(--display)}
.academic-semester-head h2 small{margin-left:2px;color:var(--muted);font:500 11px var(--mono)}
.rank-pill{flex:0 0 auto;padding:8px 11px;border-radius:999px;background:rgba(181,101,29,.09);color:var(--engineering-dark);font:800 10px var(--mono)}
.academic-table-wrap{overflow-x:auto}
.academic-table{width:100%;border-collapse:collapse;font-size:13px}
.academic-table th,.academic-table td{padding:11px 18px;border-top:1px solid #EDF1F3;text-align:left}
.academic-table thead th{border-top:0;background:#fff;color:var(--muted);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.academic-table th:last-child,.academic-table td:last-child{width:120px;text-align:right;font-family:var(--mono);font-weight:700}
.academic-table .ue-row th,.academic-table .ue-row td{background:#F3F6F7;color:var(--ink);font-weight:800}
.module-indent{display:inline-block;padding-left:18px;color:#45575f}
.transcript-note{margin-top:34px;padding:24px 26px;border-left:4px solid var(--engineering);border-radius:0 14px 14px 0;background:#FFF8F0}
.transcript-note span{display:block;color:var(--engineering-dark);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.1em}
.transcript-note strong{display:block;margin-top:7px;font-size:17px}
.transcript-note p{margin:7px 0 0;color:var(--muted);font-size:13px}
@media(max-width:780px){.academic-summary{grid-template-columns:1fr 1fr}.academic-intro{grid-template-columns:1fr;gap:16px}.academic-content{padding-top:64px}.academic-semester-head{padding:18px}.academic-table th,.academic-table td{padding:10px 13px}.academic-proof{font-size:11px!important}}
@media(max-width:480px){.academic-hero{padding-top:42px}.academic-lead{font-size:17px}.academic-semester-head{align-items:flex-start;flex-direction:column}.academic-table{font-size:12px}.academic-table th:last-child,.academic-table td:last-child{width:90px}.module-indent{padding-left:8px}}

/* Academic performance summary : reviewed v2 */
.academic-proof{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:center;margin-top:11px!important;padding:12px 13px;border:1px solid rgba(226,166,58,.30);border-radius:11px;background:linear-gradient(135deg,rgba(226,166,58,.12),rgba(101,208,198,.055));}
.academic-average{grid-row:1/3;color:#F3C86F;font:800 24px/1 var(--display);letter-spacing:-.03em}.academic-average-label{color:#fff;font:750 10.5px var(--mono)}.academic-credit-summary{color:#bcd0d5;font:600 10px/1.35 var(--mono)}
.academic-overview{display:grid;grid-template-columns:1.2fr .8fr;gap:1px;margin-top:42px;border:1px solid rgba(255,255,255,.12);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.12);box-shadow:0 24px 60px rgba(0,0,0,.16)}
.academic-overview article{padding:28px 30px;background:#132C39}.academic-overview-primary{background:linear-gradient(135deg,#173644,#102A36)!important}.academic-overview span{display:block;color:#8fa8b0;font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.1em}.academic-overview strong{display:block;margin-top:10px;color:#F3C86F;font:800 48px/.95 var(--display);letter-spacing:-.04em}.academic-overview strong small{margin-left:3px;color:#a9bec4;font:600 14px var(--mono);letter-spacing:0}.academic-overview em{display:block;margin-top:12px;color:#fff;font:700 11px var(--mono);font-style:normal}
@media(max-width:780px){.academic-overview{grid-template-columns:1fr}.academic-proof{grid-template-columns:1fr}.academic-average{grid-row:auto}.academic-overview strong{font-size:42px}}


/* ========================================================================
   V3 QA pass (Oct. 2026): secondary-text readability and keyboard navigation
   Changes limited to typography and accessibility; brand palette unchanged.
   ======================================================================== */
:where(a, button):focus-visible {
  outline:3px solid #B5651D;
  outline-offset:3px;
}
.site-nav :where(a, button):focus-visible,
.dark-panel :where(a, button):focus-visible,
.academic-hero :where(a, button):focus-visible,
.contact-section :where(a, button):focus-visible {
  outline-color:#E2A63A;
}
/* Preserve monospace labels but make them legible without zoom. */
.portrait-card-light .portrait-meta span,
.portrait-card-light .portrait-meta small,
.trust-strip span, .trust-strip b,
.expertise-grid article>span, .expertise-grid li,
.project-card .project-type, .project-tags span,
.skill-row .skill-name span, .skill-row .skill-items span,
.timeline-date, .timeline-company,
.education-panel .panel-title, .edu-item span,
.tool-highlight span,
.architecture-state-head span, .architecture-step small,
.architecture-state-metric, .architecture-caption,
.security-proof-grid span, .security-proof-grid a,
.academic-back, .academic-summary span, .academic-summary em,
.academic-semester-head span, .academic-semester-head h2 small,
.academic-table thead th, .rank-pill, .transcript-note span,
.academic-average-label, .academic-credit-summary,
.academic-overview span, .academic-overview em {
  font-size:12px;
  line-height:1.5;
}
.expertise-grid li { overflow-wrap:anywhere; }
.trust-strip span { padding:11px 8px; }
.project-tags span { padding:6px 8px; }
.skill-row .skill-items span { line-height:1.45; }
.academic-proof .academic-credit-summary { line-height:1.5; }
/* Smaller viewports: prevent oversized labels from squeezing the narrow cards. */
@media (max-width:650px) {
  .architecture-state-head { flex-wrap:wrap; }
  .architecture-state-head strong { text-align:left; }
  .hero-career .hero-links a { font-size:12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:0.01ms!important; animation-iteration-count:1!important; transition-duration:0.01ms!important; }
}


/* V4 : a quiet editorial voice, never at the expense of technical clarity. */
.hero-personal-line{max-width:680px;margin:19px 0 0;padding:10px 0 10px 17px;border-left:2px solid var(--engineering);color:#49616C;font-size:14px;line-height:1.6}
.hero-personal-line-mark{padding-right:7px;color:var(--engineering-dark);font:700 18px var(--mono)}
.story-hook{margin:0 0 10px;color:var(--engineering-dark);font:650 13px/1.6 var(--mono);letter-spacing:-.015em}
.work-ethos{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(265px,.75fr);gap:32px;align-items:center;margin-top:38px;padding:29px 32px;border:1px solid #D5E1E5;border-top:3px solid var(--engineering);border-radius:15px;background:#F8FAFB;box-shadow:0 8px 24px rgba(16,35,46,.04)}
.work-ethos-label{color:var(--engineering-dark);font:700 11px/1.5 var(--mono);letter-spacing:.08em}
.work-ethos h3{max-width:670px;margin:9px 0;font:700 clamp(22px,2.45vw,31px)/1.14 var(--display);letter-spacing:-.025em}
.work-ethos p{max-width:750px;margin:0;color:#415760;font-size:15px;line-height:1.65}
.work-ethos-pillars{display:grid;gap:8px}
.work-ethos-pillars span{position:relative;padding:9px 12px 9px 24px;border-radius:9px;background:#EAF0F2;color:#1B3A4B;font-size:13px;font-weight:650}
.work-ethos-pillars span::before{position:absolute;left:10px;top:8px;content:'·';color:#9C5417;font-size:23px;line-height:1}
.contact-human{margin-top:14px!important;color:#F5D9AE!important;font-weight:600}
@media(max-width:790px){.work-ethos{grid-template-columns:1fr;gap:20px;padding:25px 24px}}
@media(max-width:480px){.work-ethos{margin-top:28px;padding:20px 17px}.work-ethos h3{font-size:22px}.work-ethos-pillars span{font-size:12px}.hero-personal-line{font-size:13px}.story-hook{font-size:12px}}
/* Keep the editorial hooks visibly copper-colored above their case titles. */
.case-copy > .story-hook{margin:0 0 8px;color:#9C5417;font:650 13px/1.6 var(--mono)}
.case-copy > .story-hook + h3{margin-top:3px}

/* ========================================================================
   V4.1: hero portrait alignment and transparent academic-average labeling
   ======================================================================== */
/* Respect the image ratio instead of the fixed HTML height attribute. */
.hero-career .portrait-card-light .portrait-shell img { height: auto; }
/* On desktop, the photo starts beside the intro instead of being vertically centred. */
@media (min-width: 861px) {
  .hero-career .portrait-card-light { align-self: start; margin-top: 28px; }
}
/* Visible alongside the academic summary; labels the self-calculated mean. */
.academic-overview-note {
  margin: 12px 0 0;
  max-width: 900px;
  color: #C7D8DE;
  font-size: 12.5px;
  line-height: 1.55;
}
/* Keep single-column hero items within the mobile viewport. */
@media (max-width: 860px) {
  .hero-career-inner { grid-template-columns: minmax(0, 1fr); }
  .hero-career-inner > * { min-width: 0; }
  .hero-career h1 { overflow-wrap: anywhere; }
}


/* V4.2 : verified ECTS grades (teaching units only) and two-metric summary. */
.academic-overview {
  grid-template-columns: 1.2fr .8fr;
}
.academic-overview-credits strong { color:#fff; }
.academic-overview em { line-height:1.5; }
.academic-table { table-layout:fixed; }
.academic-table th:first-child, .academic-table td:first-child { width:auto; overflow-wrap:anywhere; }
.academic-table th:nth-child(2), .academic-table td:nth-child(2) {
  width:116px; text-align:right; font-family:var(--mono); font-weight:700;
}
.academic-table th:nth-child(3), .academic-table td:nth-child(3) {
  width:116px; text-align:center; font-family:var(--mono); font-weight:700;
}
.academic-table td.ects-grade-empty { background:#fff; }
.ects-grade {
  display:inline-flex; justify-content:center; align-items:center;
  min-width:34px; min-height:30px; padding:3px 9px;
  border:1px solid transparent; border-radius:7px;
  font:800 13px/1.2 var(--mono);
}
.ects-grade-a { background:#E6F1EE; border-color:#BED8D0; color:#1C5B4A; }
.ects-grade-b { background:#F5EBDF; border-color:#E4CBB0; color:#74431F; }
@media(max-width:880px) {
  .academic-overview { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
  .academic-overview { grid-template-columns:1fr; }
  .academic-overview article { padding:22px; }
  .academic-table th,.academic-table td { padding:9px 8px; }
  .academic-table th:nth-child(2),.academic-table td:nth-child(2) { width:72px; }
  .academic-table th:nth-child(3),.academic-table td:nth-child(3) { width:75px; }
  .academic-table thead th { font-size:10px; letter-spacing:.015em; }
  .academic-table { font-size:12px; }
  .module-indent { padding-left:8px; }
}

/* V4.4 : BI academic internship case: balanced six-card project overview */
.project-mosaic-six{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.project-mosaic-six .project-card{min-width:0}
.bi-project-card .project-image img{object-fit:contain;min-width:0}
@media(max-width:1080px){.project-mosaic-six{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.project-mosaic-six{grid-template-columns:minmax(0,1fr)}}

/* V4.6 QA: mobile navigation stays usable when JavaScript is unavailable.
   When scripting is active, the existing accessible toggle controls the panel. */
@media (max-width:860px) {
  .site-nav .nav-inner { flex-wrap:wrap; }
  .site-nav nav {
    position:static;
    display:flex;
    width:100%;
    flex-wrap:wrap;
    border:0;
    padding:6px 0 12px;
    box-shadow:none;
    background:transparent;
  }
  .site-nav .nav-toggle { display:none; }
  .has-js .site-nav .nav-inner { flex-wrap:nowrap; }
  .has-js .site-nav nav {
    position:absolute;
    left:24px;
    right:24px;
    top:calc(100% + 8px);
    display:none;
    width:auto;
    flex-wrap:nowrap;
    padding:12px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:var(--shadow-soft);
  }
  .has-js .site-nav nav.is-open { display:flex; }
  .has-js .site-nav .nav-toggle { display:block; }
}

/* V4.8 : Complementary career paths: quiet second-level note in the Contact area. */
.contact-panel p.contact-secondary-paths {
  max-width: 760px;
  margin-top: 10px;
  color: #AABBC2;
  font-size: 14px;
  line-height: 1.65;
}

/* V4.9 : academic proof in portrait card, ordered semester rankings, and Beyond the CV. */
.profile-academic{margin:10px 0 0;padding:11px 0 0;border-top:1px solid var(--line);display:grid;gap:3px}
.profile-academic-degree{color:var(--ink);font-size:12px;font-weight:700}
.profile-academic a{width:max-content;max-width:100%;color:var(--engineering-dark);font:600 10px/1.5 var(--mono);text-decoration:none}
.profile-academic a:hover{text-decoration:underline;text-underline-offset:3px}
.beyond-entry{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:22px 0 0!important}
.beyond-entry a{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:1px solid #E9C58F;border-radius:999px;background:linear-gradient(135deg,#F5D9AE,#E6B66F);color:#10232E;font-weight:850;text-decoration:none;box-shadow:0 10px 24px rgba(0,0,0,.2),0 0 0 1px rgba(255,255,255,.06);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.beyond-entry a:hover{transform:translateY(-2px);filter:brightness(1.03);box-shadow:0 14px 30px rgba(0,0,0,.24),0 0 0 3px rgba(245,217,174,.12);text-decoration:none}
.beyond-entry a:focus-visible{outline:3px solid #fff;outline-offset:3px}
.beyond-entry span{color:#C0CFD4;font-size:13px;line-height:1.45}
.academic-overview{grid-template-columns:1fr .78fr 1.2fr}
.academic-overview-ranking{background:linear-gradient(145deg,#173443,#10232E)!important;color:#fff}
.academic-rank-sequence{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 8px}
.academic-rank-sequence span{padding:6px 8px;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#C9D8DD;font:600 10px var(--mono)}
.academic-rank-sequence strong{display:inline!important;color:#F5D9AE!important;font-size:12px!important}
.academic-overview-ranking em{color:#9FB4BC!important}

.beyond-hero{padding:72px 0 68px;background:var(--ink);color:#fff;overflow:hidden;position:relative}
.beyond-hero::after{content:"";position:absolute;width:620px;height:620px;right:-180px;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(181,101,29,.2),rgba(53,102,122,.12) 48%,transparent 70%)}
.beyond-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.72fr);gap:72px;align-items:center}
.beyond-hero h1{margin:12px 0 18px;max-width:760px;font:700 clamp(44px,6.6vw,82px)/.96 var(--display);letter-spacing:-.05em}
.beyond-lead{max-width:720px;margin:0;color:#CAD7DB;font-size:19px;line-height:1.55}
.beyond-hero .academic-back{color:#AABCC2}
.beyond-hero-photo{margin:0;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:rgba(255,255,255,.045);box-shadow:0 30px 80px rgba(0,0,0,.22)}
.beyond-hero-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 25%;border-radius:17px}
.beyond-hero-photo figcaption,.beyond-media figcaption{padding:9px 5px 2px;color:#8EA5AD;font:500 9px var(--mono)}
.beyond-stories{padding-top:36px;padding-bottom:72px}
.beyond-story{padding:72px 0;border-bottom:1px solid var(--line)}
.beyond-story-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);gap:66px;align-items:center}
.beyond-story-split.reverse{grid-template-columns:minmax(300px,.72fr) minmax(0,1.05fr)}
.beyond-story-split.reverse .beyond-copy{grid-column:2}.beyond-story-split.reverse .beyond-media{grid-column:1;grid-row:1}
.beyond-number{display:inline-flex;margin-bottom:14px;color:#8AA0A8;font:700 10px var(--mono)}
.beyond-copy h2{margin:0 0 17px;max-width:760px;font:700 clamp(32px,4.5vw,52px)/1.02 var(--display);letter-spacing:-.04em}
.beyond-copy p{max-width:760px;margin:0 0 14px;color:#44565E;font-size:16px;line-height:1.75}
.beyond-copy .beyond-takeaway{margin-top:22px;padding:15px 17px;border-left:3px solid var(--engineering);background:#fff;color:var(--ink);font-weight:650}
.beyond-copy-narrow{max-width:850px}
.beyond-media{margin:0;padding:8px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)}
.beyond-media img{display:block;width:100%;max-height:560px;object-fit:cover;border-radius:14px}
.beyond-media.logo-media img{aspect-ratio:1/1;object-fit:contain;background:#1F4E9E}
.football-gallery{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:14px;margin-top:30px;align-items:start}
.football-gallery .beyond-media img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.football-award-portrait img{background:#F5F7F8}
.football-action-wide img{background:#F5F7F8}
.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.evidence-card{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;text-decoration:none;box-shadow:var(--shadow-soft)}
.evidence-card:hover{border-color:#C8A77E;transform:translateY(-2px)}
.evidence-card img{width:112px;height:82px;object-fit:cover;object-position:top;border-radius:10px;background:#F7F7F7}
.evidence-card strong{display:block;font-size:14px}.evidence-card small{display:block;margin-top:3px;color:var(--engineering-dark);font:600 9px var(--mono)}
.beyond-close{padding:74px 0 86px;background:#E8EEF0}
.beyond-close h2{margin:0;max-width:820px;font:700 clamp(36px,5vw,62px)/1 var(--display);letter-spacing:-.045em}
.beyond-close p:not(.section-kicker){max-width:780px;margin:20px 0 28px;color:#4C6068;font-size:17px}
@media(max-width:980px){.academic-overview{grid-template-columns:1fr 1fr}.academic-overview-ranking{grid-column:1/-1}.beyond-hero-grid,.beyond-story-split,.beyond-story-split.reverse{grid-template-columns:1fr;gap:32px}.beyond-story-split.reverse .beyond-copy,.beyond-story-split.reverse .beyond-media{grid-column:auto;grid-row:auto}.beyond-hero-photo{max-width:520px}.beyond-story{padding:54px 0}}
@media(max-width:620px){.academic-overview{grid-template-columns:1fr}.academic-overview-ranking{grid-column:auto}.beyond-hero{padding-top:48px}.beyond-hero-grid{gap:28px}.beyond-hero h1{font-size:43px}.beyond-lead{font-size:16px}.beyond-story{padding:44px 0}.football-gallery,.evidence-grid{grid-template-columns:1fr}.evidence-card{grid-template-columns:92px 1fr}.evidence-card img{width:92px;height:72px}.beyond-copy p{font-size:15px}.profile-academic-degree{font-size:11px}}

/* V4.9.2 : final Beyond the CV editorial refinements */
.beyond-hero-photo img{object-position:center 42%}
.football-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.football-gallery .beyond-media{display:flex;flex-direction:column;height:100%}
.football-gallery .beyond-media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#F5F7F8}
.football-gallery .beyond-media figcaption{margin-top:auto}
@media(max-width:620px){.football-gallery{grid-template-columns:1fr}.football-gallery .beyond-media img{aspect-ratio:4/3}}

/* V5.0 : nine-card project panorama */
.project-mosaic-nine{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.project-mosaic-nine .project-card{min-width:0}
@media(max-width:1080px){.project-mosaic-nine{grid-template-columns:repeat(2,minmax(0,1fr))}.project-mosaic-nine .project-card:last-child{grid-column:auto}}
@media(max-width:650px){.project-mosaic-nine{grid-template-columns:minmax(0,1fr)}}

/* V5.5 skills hierarchy */
.skill-row-secondary{opacity:.92;background:rgba(255,255,255,.45)}
.skill-row-secondary .skill-name span{font-size:.78rem}


/* V6.0: make the personal page easier to discover and visually distinct */
.button-beyond{border-color:#C9963A;background:#F6E3B8;color:#3B271E}
.button-beyond:hover{border-color:#A97426;background:#EFD597;color:#2B1C16}
body.beyond-page{--ink:#3A1737;--ink-2:#5A2744;--paper:#FFF8EF;--paper-2:#F7EBDD;--line:#E5D1C3;--muted:#655650;--engineering:#B65B46;--engineering-dark:#8E4334;--analytics:#8B5A54;--analytics-dark:#6A403C;--bridge:#D3A24C;background:#FFF8EF}
.beyond-page .site-nav{background:rgba(255,248,239,.94);border-bottom-color:#E5D1C3}
.beyond-page .beyond-hero{background:linear-gradient(135deg,#3A1737 0%,#6C2E4C 48%,#B65B46 100%)}
.beyond-page .beyond-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(223,178,85,.12) 1.2px,transparent 1.3px);background-size:30px 30px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}
.beyond-page .beyond-hero::after{background:radial-gradient(circle,rgba(211,162,76,.24),rgba(182,91,70,.18) 48%,transparent 72%)}
.beyond-page .beyond-hero-grid{position:relative;z-index:2}
.beyond-page .beyond-stories{position:relative}
.beyond-page .beyond-story{border-bottom-color:#D9CDBD}
.beyond-page .beyond-story:nth-child(even){margin:18px 0;padding-left:30px;padding-right:30px;border:1px solid #E5D4C7;border-radius:26px;background:#FFFDF7;box-shadow:0 18px 45px rgba(87,48,43,.06)}
.beyond-page .beyond-number{color:#A04E3E}
.beyond-page .beyond-copy .beyond-takeaway{border-left-color:#B65B46;background:#FFF8EF}
.beyond-page .beyond-media{border-color:#E1D1C4;background:#FFFDF8}
.beyond-page .beyond-close{background:#F0E0D2}
@media(max-width:620px){.beyond-page .beyond-story:nth-child(even){padding-left:18px;padding-right:18px}}

/* Keep the Bangladesh graduation portrait fully visible, especially on mobile. */
.beyond-media.graduation-media img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;background:#FFF8EF}
@media(max-width:620px){.beyond-media.graduation-media{padding:6px}.beyond-media.graduation-media img{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}}

/* ========================================================================
   V7 UX/UI redesign: professional white/blue product aesthetic
   Inspired by the clarity of professional networks and enterprise data SaaS.
   ======================================================================== */
.home-v7{
  --v7-blue:#1F4E9E;
  --v7-blue-dark:#163A75;
  --v7-blue-soft:#E8F3FF;
  --v7-cyber:#2F4F73;
  --v7-cyber-soft:#EEF3F8;
  --v7-bridge:#3566B8;
  --v7-ink:#1F2328;
  --v7-muted:#5E6B78;
  --v7-bg:#F3F6F8;
  --v7-card:#FFFFFF;
  --v7-line:#DCE3E8;
  --v7-line-strong:#C9D2D9;
  --v7-success:#18794E;
  background:#fff;
  color:var(--v7-ink);
}
.home-v7 .wrap{width:min(1180px,calc(100% - 48px))}
.home-v7 .site-nav{background:rgba(255,255,255,.94);border-bottom:1px solid var(--v7-line);box-shadow:0 1px 0 rgba(31,35,40,.02);backdrop-filter:blur(16px)}
.home-v7 .nav-inner{min-height:72px}
.home-v7 .brand-mark{width:40px;height:40px;border-radius:10px;background:var(--v7-blue);box-shadow:0 7px 18px rgba(31,78,158,.16)}
.home-v7 .brand-copy strong{color:var(--v7-ink);font-size:13px}
.home-v7 .brand-copy small{color:#66727D;font-size:10px}
.home-v7 .site-nav nav{gap:20px}
.home-v7 .site-nav nav>a{color:#45515C;font-size:13px;font-weight:650}
.home-v7 .site-nav nav>a::after{background:var(--v7-blue)}
.home-v7 .site-nav nav>a:hover{color:var(--v7-blue-dark)}
.home-v7 .site-nav nav .language-switcher{border:1px solid var(--v7-line);background:#F7F9FA}
.home-v7 .site-nav nav .language-switcher a{color:#5C6873}
.home-v7 .site-nav nav .language-switcher a[aria-current="page"]{background:#fff;color:var(--v7-blue-dark);box-shadow:0 1px 5px rgba(31,35,40,.08)}
.home-v7 .nav-cta{background:var(--v7-blue)!important;color:#fff!important;border-radius:999px;padding:10px 17px!important;box-shadow:0 6px 18px rgba(31,78,158,.16)}
.home-v7 .nav-cta:hover{background:var(--v7-blue-dark)!important;color:#fff!important}
.home-v7 .nav-cta::after{display:none}
.home-v7 :where(a,button):focus-visible{outline-color:var(--v7-blue)}

/* Hero */
.v7-hero{padding:72px 0 0;background:linear-gradient(180deg,#FFFFFF 0%,#FBFCFD 74%,#F3F6F8 100%);border-bottom:1px solid var(--v7-line);overflow:hidden}
.v7-hero-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.72fr);gap:76px;align-items:center;padding-bottom:56px}
.v7-hero-copy{min-width:0}
.v7-status{display:inline-flex;align-items:center;gap:9px;padding:7px 11px;border:1px solid #DCE8E1;border-radius:999px;background:#F8FCF9;color:#3D5A4B;font:650 11px var(--mono)}
.v7-status>span{width:8px;height:8px;border-radius:50%;background:#2E9E67;box-shadow:0 0 0 4px rgba(46,158,103,.12)}
.v7-overline{margin:28px 0 8px;color:var(--v7-blue);font:750 11px var(--mono);letter-spacing:.13em}
.v7-hero h1{margin:0;max-width:800px;color:var(--v7-ink);font:700 clamp(48px,6.7vw,82px)/.96 var(--display);letter-spacing:-.052em}
.v7-hero h1 span{display:block;color:var(--v7-blue-dark)}
.v7-role{margin:16px 0 0;color:#2E3943;font:700 clamp(23px,2.3vw,31px)/1.1 var(--display)}
.v7-hero h2{max-width:760px;margin:24px 0 0;color:var(--v7-blue);font:650 clamp(25px,2.8vw,39px)/1.12 var(--display);letter-spacing:-.035em}
.v7-intro{max-width:760px;margin:20px 0 0;color:#4F5C67;font-size:17px;line-height:1.72}
.v7-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:11px;margin-top:30px}
.v7-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 18px;border:1px solid transparent;border-radius:10px;text-decoration:none;font-size:13px;font-weight:750;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
.v7-btn:hover{transform:translateY(-1px)}
.v7-btn-primary{background:var(--v7-blue);color:#fff;box-shadow:0 8px 22px rgba(31,78,158,.17)}
.v7-btn-primary:hover{background:var(--v7-blue-dark);color:#fff;box-shadow:0 10px 28px rgba(31,78,158,.22)}
.v7-btn-secondary{border-color:var(--v7-line-strong);background:#fff;color:#27323C;box-shadow:0 4px 14px rgba(31,35,40,.035)}
.v7-btn-secondary:hover{border-color:#AAB8C3;color:var(--v7-blue-dark);background:#FBFCFD}
.v7-text-link{padding:10px 4px;color:#51616D;text-decoration:none;font-size:12.5px;font-weight:700}
.v7-text-link:hover{color:var(--v7-blue)}
.v7-social-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:25px}
.v7-social-links a{color:#5E6C78;text-decoration:none;font:650 11px var(--mono)}
.v7-social-links a:hover{color:var(--v7-blue)}

/* Profile card */
.v7-profile-card{overflow:hidden;border:1px solid var(--v7-line);border-radius:20px;background:#fff;box-shadow:0 20px 58px rgba(31,35,40,.10)}
.v7-profile-photo{position:relative;overflow:hidden;background:#E8EDF1}
.v7-profile-photo::after{content:"";position:absolute;inset:auto 0 0;height:36%;background:linear-gradient(transparent,rgba(4,24,42,.08));pointer-events:none}
.v7-profile-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 22%}
.v7-profile-content{padding:21px}
.v7-profile-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.v7-profile-head strong{display:block;color:var(--v7-ink);font:700 21px/1.05 var(--display)}
.v7-profile-head div>span{display:block;margin-top:5px;color:var(--v7-blue);font-size:12px;font-weight:700}
.v7-open-pill{flex:none;padding:6px 8px;border-radius:999px;background:#EDF8F2;color:#18794E;font:700 9px var(--mono)}
.v7-profile-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.v7-profile-tags span,.v7-badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:999px;font:750 9.5px var(--mono);letter-spacing:.02em}
.v7-profile-tags .is-data,.v7-badge.is-data{background:var(--v7-blue-soft);color:var(--v7-blue-dark)}
.v7-profile-tags .is-cyber,.v7-badge.is-cyber{background:var(--v7-cyber-soft);color:#28435F}
.v7-badge.is-bridge{background:#EEF1FB;color:#425AA8}
.v7-profile-meta{display:grid;gap:0;margin:18px 0 0}
.v7-profile-meta div{padding:11px 0;border-top:1px solid var(--v7-line)}
.v7-profile-meta dt{color:#66747F;font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.07em}
.v7-profile-meta dd{margin:4px 0 0;color:#3F4B55;font-size:12.5px;line-height:1.45}
.v7-profile-link{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding-top:13px;border-top:1px solid var(--v7-line);color:var(--v7-blue);text-decoration:none;font-size:12px;font-weight:750}
.v7-profile-link:hover{color:var(--v7-blue-dark)}

/* Proof strip */
.v7-proofbar{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--v7-line);border-bottom:0;border-radius:16px 16px 0 0;box-shadow:0 -4px 28px rgba(31,35,40,.035)}
.v7-proofbar>div{padding:22px 24px;border-right:1px solid var(--v7-line)}
.v7-proofbar>div:last-child{border-right:0}
.v7-proofbar strong{display:block;color:var(--v7-ink);font:700 22px/1.05 var(--display);letter-spacing:-.02em}
.v7-proofbar span{display:block;margin-top:6px;color:#687681;font-size:11.5px}

/* Shared sections */
.v7-section{padding:92px 0}
.v7-section-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:70px;align-items:end;margin-bottom:42px}
.v7-kicker{margin:0 0 10px;color:var(--v7-blue);font:750 10px var(--mono);text-transform:uppercase;letter-spacing:.12em}
.v7-section-head h2{max-width:820px;margin:0;color:var(--v7-ink);font:700 clamp(36px,4.5vw,58px)/1 var(--display);letter-spacing:-.045em}
.v7-section-head h2 span{color:var(--v7-blue)}
.v7-section-head>p{margin:0;color:#5D6A75;font-size:15px;line-height:1.7}

/* Data x Cyber bridge */
.v7-bridge{background:#fff}
.v7-bridge-grid{display:grid;grid-template-columns:1fr 220px 1fr;gap:18px;align-items:stretch}
.v7-domain-card,.v7-shared-card{border:1px solid var(--v7-line);border-radius:18px;background:#fff;box-shadow:0 9px 28px rgba(31,35,40,.035)}
.v7-domain-card{padding:30px}
.v7-domain-data{border-top:4px solid var(--v7-blue)}
.v7-domain-cyber{border-top:4px solid var(--v7-cyber)}
.v7-domain-label{color:var(--v7-blue);font:750 10px var(--mono);letter-spacing:.09em}
.v7-domain-cyber .v7-domain-label{color:var(--v7-cyber)}
.v7-domain-card h3{margin:34px 0 10px;font:700 27px/1.05 var(--display);letter-spacing:-.03em}
.v7-domain-card p{margin:0;color:var(--v7-muted);font-size:14px;line-height:1.65}
.v7-shared-card{display:flex;flex-direction:column;justify-content:center;padding:26px;background:linear-gradient(180deg,#F8FBFF,#F5F7FA);text-align:center}
.v7-shared-card span{margin-bottom:18px;color:#778590;font:750 9px var(--mono);letter-spacing:.09em}
.v7-shared-card strong{padding:11px 0;border-top:1px solid var(--v7-line);color:#304153;font:700 15px var(--display)}
.v7-shared-card strong:last-child{border-bottom:1px solid var(--v7-line)}

/* Chips */
.v7-chip-row{display:flex;flex-wrap:wrap;gap:6px}
.v7-domain-card .v7-chip-row{margin-top:22px}
.v7-chip-row span{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border:1px solid #E1E7EB;border-radius:7px;background:#F7F9FA;color:#52616C;font:650 9px var(--mono);line-height:1.25}

/* Work */
.v7-work{background:var(--v7-bg);border-top:1px solid var(--v7-line);border-bottom:1px solid var(--v7-line)}
.v7-featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.v7-featured-card{display:flex;flex-direction:column;min-height:100%;padding:26px;border:1px solid var(--v7-line);border-radius:18px;background:#fff;box-shadow:0 9px 26px rgba(31,35,40,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.v7-featured-card:hover{transform:translateY(-3px);border-color:#C7D4DD;box-shadow:0 18px 38px rgba(31,35,40,.075)}
.v7-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.v7-year{color:#66747F;font:650 10px var(--mono)}
.v7-featured-card h3{margin:21px 0 8px;color:var(--v7-ink);font:700 31px/1 var(--display);letter-spacing:-.035em}
.v7-featured-card>p{margin:0 0 19px;color:#586570;font-size:14px;line-height:1.62}
.v7-card-media{margin:0 0 19px;overflow:hidden;border:1px solid var(--v7-line);border-radius:12px;background:#EFF3F6}
.v7-card-media img{display:block;width:100%;height:250px;object-fit:contain;background:#EEF2F5}
.v7-horti-visual{display:grid;place-items:center;min-height:250px;margin-bottom:19px;border:1px solid var(--v7-line);border-radius:12px;background:linear-gradient(180deg,#F8FBFF,#F1F6FA)}
.v7-horti-visual>div{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:28px}
.v7-horti-visual span{padding:13px 14px;border:1px solid #BDD2E4;border-radius:9px;background:#fff;color:#27455D;font:700 10px var(--mono);box-shadow:0 5px 14px rgba(31,78,158,.05)}
.v7-horti-visual i{color:var(--v7-blue);font-style:normal;font-size:18px;font-weight:700}
.v7-card-metrics{display:grid;grid-template-columns:repeat(2,1fr);margin-top:auto;border-top:1px solid var(--v7-line);border-bottom:1px solid var(--v7-line)}
.v7-card-metrics div{padding:16px 10px 16px 0}
.v7-card-metrics div+div{padding-left:17px;border-left:1px solid var(--v7-line)}
.v7-card-metrics strong{display:block;color:var(--v7-blue-dark);font:700 22px/1.05 var(--display);letter-spacing:-.025em}
.v7-card-metrics span{display:block;margin-top:5px;color:#65727C;font-size:10.5px}
.v7-card-footer{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;padding-top:18px}
.v7-card-footer>a{flex:none;color:var(--v7-blue);text-decoration:none;font-size:12px;font-weight:750}
.v7-card-footer>a:hover{color:var(--v7-blue-dark)}

/* Project browser */
.v7-project-browser{margin-top:66px;padding-top:52px;border-top:1px solid var(--v7-line)}
.v7-project-toolbar{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:22px}
.v7-project-toolbar h3{margin:0;color:var(--v7-ink);font:700 31px/1.05 var(--display);letter-spacing:-.03em}
.v7-filter-group{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.v7-filter-group button{min-height:38px;padding:0 13px;border:1px solid var(--v7-line);border-radius:999px;background:#fff;color:#56636F;font-size:11px;font-weight:700;cursor:pointer}
.v7-filter-group button:hover{border-color:#B7C5CF;color:var(--v7-blue-dark)}
.v7-filter-group button.is-active{border-color:var(--v7-blue);background:var(--v7-blue);color:#fff;box-shadow:0 5px 14px rgba(31,78,158,.14)}
.v7-secondary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.v7-project-card{overflow:hidden;border:1px solid var(--v7-line);border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(31,35,40,.035);transition:transform .18s ease,opacity .18s ease}
.v7-project-card:hover{transform:translateY(-2px)}
.v7-project-card[hidden]{display:none!important}
.v7-project-card figure{margin:0;overflow:hidden;border-bottom:1px solid var(--v7-line);background:#EFF3F6;aspect-ratio:16/8}
.v7-project-card figure img{display:block;width:100%;height:100%;object-fit:contain;padding:8px;background:#F2F5F7}
.v7-project-card>div{padding:18px}
.v7-project-card h4{margin:13px 0 8px;color:var(--v7-ink);font:700 20px/1.08 var(--display)}
.v7-project-card p{margin:0 0 15px;color:#64717C;font-size:12px;line-height:1.55}
.v7-project-card a{display:inline-block;margin-top:16px;color:var(--v7-blue);text-decoration:none;font-size:11px;font-weight:750}
.v7-project-card a:hover{color:var(--v7-blue-dark)}

/* Capability map */
.v7-capabilities{background:#fff}
.v7-capability-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.v7-capability-grid article{min-width:0;padding:25px;border:1px solid var(--v7-line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(31,35,40,.035)}
.v7-capability-grid article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--v7-blue-soft);color:var(--v7-blue-dark);font:750 10px var(--mono)}
.v7-capability-grid article.is-cyber-card>span{background:var(--v7-cyber-soft);color:var(--v7-cyber)}
.v7-capability-grid h3{margin:32px 0 6px;color:var(--v7-ink);font:700 22px/1.05 var(--display);letter-spacing:-.025em}
.v7-capability-grid p{margin:0 0 18px;color:#6B7883;font-size:12px}
.v7-capability-grid .v7-chip-row{align-content:flex-start}
.v7-learning{display:flex;align-items:center;gap:18px;margin-top:14px;padding:17px 20px;border:1px dashed #C8D4DD;border-radius:13px;background:#F8FAFB}
.v7-learning strong{flex:none;color:#33424E;font-size:12px}

/* Existing experience section, visually integrated into V7 */
.home-v7 .experience-section{padding:92px 0;background:#F8FAFB;border-top:1px solid var(--v7-line)}
.home-v7 .experience-section .section-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:70px;align-items:end;margin-bottom:44px}
.home-v7 .experience-section .section-kicker{color:var(--v7-blue);font-size:10px}
.home-v7 .experience-section .section-head h2{color:var(--v7-ink);font-size:clamp(36px,4.4vw,56px)}
.home-v7 .experience-section .section-head>p{color:#5E6B76;font-size:15px}
.home-v7 .timeline::before{background:#C9D8E5}
.home-v7 .timeline-item::before{background:#A5B4C0;border-color:#F8FAFB}
.home-v7 .timeline-item.current::before{background:var(--v7-blue);box-shadow:0 0 0 5px rgba(31,78,158,.11)}
.home-v7 .timeline-date{color:#65727C}
.home-v7 .timeline-item h3{color:var(--v7-ink)}
.home-v7 .timeline-company{color:var(--v7-blue-dark)}
.home-v7 .timeline-item p{color:#61707B}
.home-v7 .timeline-item a{color:var(--v7-blue)}
.home-v7 .education-panel{background:#fff;color:var(--v7-ink);border:1px solid var(--v7-line);box-shadow:0 14px 36px rgba(31,35,40,.06)}
.home-v7 .education-panel .panel-title{color:var(--v7-blue)}
.home-v7 .edu-item{border-top-color:var(--v7-line)}
.home-v7 .edu-item span{color:#65727C}
.home-v7 .edu-item h3{color:var(--v7-ink)}
.home-v7 .edu-item p{color:#687580}
.home-v7 .edu-item.highlight{border-color:#C9DBEB;background:#F7FBFF}
.home-v7 .academic-proof{border-color:#C9DBEB;background:#F4F9FE}
.home-v7 .academic-average{color:var(--v7-blue-dark)}
.home-v7 .academic-average-label{color:#2C3A45}
.home-v7 .academic-credit-summary{color:#65727C}
.home-v7 .academic-link{color:var(--v7-blue)!important}
.home-v7 .work-ethos{border-color:#D6E2EA;border-top-color:var(--v7-blue);background:#fff;box-shadow:0 8px 24px rgba(31,35,40,.035)}
.home-v7 .work-ethos-label{color:var(--v7-blue)}
.home-v7 .work-ethos h3{color:var(--v7-ink)}
.home-v7 .work-ethos p{color:#5D6A74}
.home-v7 .work-ethos-pillars span{background:#EDF4FA;color:#24445E}
.home-v7 .work-ethos-pillars span::before{color:var(--v7-blue)}

/* Beyond teaser */
.v7-beyond-teaser{padding:78px 0;background:#fff;border-top:1px solid var(--v7-line)}
.v7-beyond-grid{display:grid;grid-template-columns:330px 1fr;gap:56px;align-items:center}
.v7-beyond-grid figure{margin:0;overflow:hidden;border:1px solid var(--v7-line);border-radius:18px;background:#EEF2F5;box-shadow:0 12px 28px rgba(31,35,40,.05)}
.v7-beyond-grid img{display:block;width:100%;height:290px;object-fit:cover;object-position:center 42%}
.v7-beyond-grid h2{max-width:760px;margin:0;color:var(--v7-ink);font:700 clamp(32px,4vw,50px)/1.02 var(--display);letter-spacing:-.04em}
.v7-beyond-grid p:not(.v7-kicker){max-width:750px;margin:17px 0 24px;color:#5E6B76;font-size:15px;line-height:1.7}

/* Contact */
.home-v7 .contact-section{padding:80px 0 22px;background:var(--v7-blue-dark)}
.home-v7 .contact-panel{border-bottom-color:rgba(255,255,255,.16)}
.home-v7 .contact-kicker{color:#BFDFFF!important}
.home-v7 .contact-panel h2{color:#fff}
.home-v7 .contact-panel p{color:#C7D9E8}
.home-v7 .contact-secondary-paths{color:#ABC5D9!important}
.home-v7 .contact-human{color:#E6F2FC!important}
.home-v7 .contact-section .button-primary{background:#fff;color:var(--v7-blue-dark)}
.home-v7 .contact-section .button-primary:hover{background:#EFF6FC;color:var(--v7-blue-dark)}
.home-v7 .contact-section .button-outline{border-color:rgba(255,255,255,.32);color:#fff}
.home-v7 .contact-section .button-outline:hover{background:rgba(255,255,255,.08)}
.home-v7 .footer{color:#9FC0D8}

@media(max-width:1100px){
  .v7-hero-grid{grid-template-columns:minmax(0,1fr) 360px;gap:42px}
  .v7-bridge-grid{grid-template-columns:1fr 185px 1fr}
  .v7-capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .home-v7 .wrap{width:min(100% - 32px,1180px)}
  .home-v7 .has-js .site-nav nav{background:#fff;border:1px solid var(--v7-line);box-shadow:0 18px 45px rgba(31,35,40,.10)}
  .v7-hero{padding-top:52px}
  .v7-hero-grid{grid-template-columns:1fr;gap:36px}
  .v7-profile-card{max-width:620px}
  .v7-proofbar{grid-template-columns:repeat(2,1fr)}
  .v7-proofbar>div:nth-child(2){border-right:0}
  .v7-proofbar>div:nth-child(-n+2){border-bottom:1px solid var(--v7-line)}
  .v7-section-head,.home-v7 .experience-section .section-head{grid-template-columns:1fr;gap:18px}
  .v7-bridge-grid{grid-template-columns:1fr}
  .v7-shared-card{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0;overflow:hidden;background:var(--v7-line)}
  .v7-shared-card span{grid-column:1/-1;margin:0;padding:14px;background:#F6F9FC}
  .v7-shared-card strong{padding:14px 8px;border:0;background:#fff;font-size:13px}
  .v7-featured-grid{grid-template-columns:1fr}
  .v7-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v7-project-toolbar{align-items:flex-start;flex-direction:column}
  .v7-filter-group{justify-content:flex-start}
  .v7-beyond-grid{grid-template-columns:1fr;gap:28px}
  .v7-beyond-grid figure{max-width:520px}
}
@media(max-width:620px){
  .home-v7 .wrap{width:min(100% - 24px,1180px)}
  .v7-hero h1{font-size:clamp(43px,14vw,60px)}
  .v7-hero h1 span{overflow-wrap:anywhere}
  .v7-role{font-size:23px}
  .v7-hero h2{font-size:27px}
  .v7-intro{font-size:15.5px}
  .v7-hero-actions{align-items:stretch;flex-direction:column}
  .v7-btn{width:100%}
  .v7-text-link{text-align:center}
  .v7-proofbar{grid-template-columns:1fr;border-radius:14px 14px 0 0}
  .v7-proofbar>div{border-right:0!important;border-bottom:1px solid var(--v7-line)!important}
  .v7-proofbar>div:last-child{border-bottom:0!important}
  .v7-section{padding:70px 0}
  .v7-section-head h2{font-size:37px}
  .v7-domain-card{padding:23px}
  .v7-shared-card{grid-template-columns:repeat(2,1fr)}
  .v7-shared-card span{grid-column:1/-1}
  .v7-featured-card{padding:20px}
  .v7-featured-card h3{font-size:27px}
  .v7-card-media img,.v7-horti-visual{height:auto;min-height:205px}
  .v7-card-footer{align-items:flex-start;flex-direction:column}
  .v7-card-metrics strong{font-size:19px}
  .v7-project-toolbar{margin-bottom:18px}
  .v7-filter-group{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scrollbar-width:none}
  .v7-filter-group::-webkit-scrollbar{display:none}
  .v7-filter-group button{flex:none}
  .v7-secondary-grid{grid-template-columns:1fr}
  .v7-capability-grid{grid-template-columns:1fr}
  .v7-learning{align-items:flex-start;flex-direction:column}
  .v7-beyond-grid img{height:auto;max-height:none;object-fit:contain;background:#F3F6F8}
  .home-v7 .contact-panel{grid-template-columns:1fr;align-items:start}
  .home-v7 .contact-buttons{justify-content:flex-start}
}

/* V7 supporting pages: academic results and 404 */
.academic-v7{--v7-blue:#1F4E9E;--v7-blue-dark:#163A75;--v7-line:#DCE3E8;--v7-ink:#1F2328;background:#fff;color:var(--v7-ink)}
.academic-v7 .site-nav{background:rgba(255,255,255,.95);border-bottom-color:var(--v7-line)}
.academic-v7 .brand-mark{background:var(--v7-blue);box-shadow:0 7px 18px rgba(31,78,158,.16)}
.academic-v7 .site-nav nav>a{color:#46535E}.academic-v7 .site-nav nav>a::after{background:var(--v7-blue)}
.academic-v7 .nav-cta{background:var(--v7-blue)}
.academic-v7 .academic-hero{padding:66px 0 58px;background:linear-gradient(180deg,#fff,#F5F8FA);color:var(--v7-ink);border-bottom:1px solid var(--v7-line)}
.academic-v7 .academic-hero::before,.academic-v7 .academic-hero::after{display:none}
.academic-v7 .academic-back{color:#687783}.academic-v7 .academic-back:hover{color:var(--v7-blue)}
.academic-v7 .academic-hero .section-kicker{color:var(--v7-blue)!important}
.academic-v7 .academic-hero h1{color:var(--v7-ink)}
.academic-v7 .academic-lead{color:#53616C}
.academic-v7 .academic-overview{border-color:var(--v7-line);background:var(--v7-line);box-shadow:0 12px 34px rgba(31,35,40,.05)}
.academic-v7 .academic-overview article,.academic-v7 .academic-overview-primary{background:#fff!important}
.academic-v7 .academic-overview span{color:#65727C}.academic-v7 .academic-overview strong{color:var(--v7-blue-dark)}
.academic-v7 .academic-overview strong small{color:#65727C}.academic-v7 .academic-overview em{color:#43515C}
.academic-v7 .academic-rank-sequence span{background:#EDF5FC!important;border-color:#D4E5F4!important;color:#32495D!important}
.academic-v7 .academic-rank-sequence strong{color:var(--v7-blue-dark)!important}
.academic-v7 .academic-overview-note{color:#5E6C77}
.academic-v7 .academic-content{background:#fff}
.academic-v7 .academic-semester{border-color:var(--v7-line);box-shadow:0 7px 22px rgba(31,35,40,.035)}
.academic-v7 .academic-semester-head{background:#F7FAFC}
.academic-v7 .academic-semester-head span{color:var(--v7-blue)}
.academic-v7 .academic-semester-head h2{color:var(--v7-ink)}
.academic-v7 .academic-proof{border-color:#C9DBEB;background:#F4F9FE}
.academic-v7 .academic-average{color:var(--v7-blue-dark)}
.academic-v7 .academic-average-label{color:#2C3A45}.academic-v7 .academic-credit-summary{color:#65727C}
.academic-v7 .academic-table thead{background:#F3F7FA}.academic-v7 .academic-table th{color:#4D5B66}.academic-v7 .academic-table td{border-top-color:var(--v7-line)}

.error-v7{--v7-blue:#1F4E9E;--v7-blue-dark:#163A75;--v7-line:#DCE3E8;background:#F3F6F8}
.error-v7 .error-page{background:linear-gradient(180deg,#fff,#F3F6F8)}
.error-v7 .error-card{border:1px solid var(--v7-line);background:#fff;box-shadow:0 18px 55px rgba(31,35,40,.08)}
.error-v7 .brand-mark{background:var(--v7-blue)}
.error-v7 .section-kicker{color:var(--v7-blue)!important}
.error-v7 .button-primary{background:var(--v7-blue);border-color:var(--v7-blue);color:#fff}
.error-v7 .button-primary:hover{background:var(--v7-blue-dark);border-color:var(--v7-blue-dark)}

/* ========================================================================
   V7.1 LinkedIn-inspired product refinement
   Professional profile hierarchy + modular white surfaces on neutral canvas.
   ======================================================================== */
body.site-v71{
  --v71-canvas:#EEF2F6;
  --v71-surface:#FFFFFF;
  --v71-blue:#1F4E9E;
  --v71-blue-dark:#163A75;
  --v71-cyber:#25496A;
  --v71-line:#D8E0E6;
  --v71-shadow:0 4px 18px rgba(31,35,40,.045);
  --v71-shadow-hover:0 12px 32px rgba(31,35,40,.085);
}
body.site-v71 :where(a,button,input):focus-visible{outline:3px solid rgba(31,78,158,.34);outline-offset:3px}

/* Back to top, shared by every page using main.js */
.back-to-top{
  position:fixed;right:22px;bottom:22px;z-index:80;
  display:grid;place-items:center;width:46px;height:46px;
  padding:0;border:1px solid #C9D6DF;border-radius:50%;
  background:#fff;color:var(--v71-blue-dark,#163A75);
  box-shadow:0 9px 25px rgba(20,43,65,.16);
  font:800 22px/1 var(--sans);cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background .2s ease,color .2s ease;
}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--v71-blue,#1F4E9E);color:#fff;border-color:var(--v71-blue,#1F4E9E)}
.back-to-top span{transform:translateY(-1px)}

/* Navigation: compact, product-like, still unmistakably personal. */
.site-v71 .site-nav{box-shadow:0 1px 0 rgba(31,35,40,.035)}
.site-v71 .nav-inner{min-height:66px}
.site-v71 .brand-mark{border-radius:8px}
.site-v71 .brand-copy small{letter-spacing:.05em}
.site-v71 .nav-cta{min-height:38px;display:inline-flex;align-items:center}

/* Homepage canvas and top profile module */
.home-v71{background:var(--v71-canvas)}
.home-v71 .v7-hero{padding:30px 0 18px;background:var(--v71-canvas);border-bottom:0;overflow:visible}
.home-v71 .v7-hero-grid{
  position:relative;grid-template-columns:minmax(0,1.3fr) minmax(325px,.7fr);gap:42px;
  align-items:center;padding:38px;
  border:1px solid var(--v71-line);border-radius:18px;background:#fff;
  box-shadow:var(--v71-shadow);
}
.home-v71 .v7-hero-grid::after{
  content:"";position:absolute;right:0;top:0;width:34%;height:100%;pointer-events:none;border-radius:0 18px 18px 0;
  background:linear-gradient(135deg,transparent 0 48%,rgba(31,78,158,.025) 48% 100%);
}
.home-v71 .v7-hero-copy,.home-v71 .v7-profile-card{position:relative;z-index:1}
.home-v71 .v7-status{padding:6px 10px;font-size:10px}
.home-v71 .v7-overline{margin-top:22px}
.home-v71 .v7-hero h1{font-size:clamp(43px,5.6vw,68px);max-width:720px}
.home-v71 .v7-hero h2{font-size:clamp(24px,2.35vw,34px);max-width:690px;margin-top:21px}
.home-v71 .v7-intro{max-width:690px;font-size:16px;line-height:1.68}
.home-v71 .v7-hero-actions{margin-top:25px}
.home-v71 .v7-social-links{margin-top:20px}

/* LinkedIn-like profile card: cover + overlapping portrait, but original brand. */
.home-v71 .v7-profile-card{
  position:relative;overflow:hidden;border-radius:16px;box-shadow:0 8px 28px rgba(31,35,40,.09);
  padding-top:1px;background:#fff;
}
.home-v71 .v7-profile-card::before{
  content:"";position:absolute;inset:0 0 auto;height:116px;
  background:
    linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px),
    linear-gradient(110deg,#1F4E9E 0 50%,#234A6B 50% 100%);
  background-size:26px 26px,26px 26px,100% 100%;
}
.home-v71 .v7-profile-photo{
  width:112px;height:112px;margin:62px 0 0 20px;border:4px solid #fff;border-radius:50%;
  box-shadow:0 4px 16px rgba(31,35,40,.13);background:#E8EDF1;
}
.home-v71 .v7-profile-photo::after{display:none}
.home-v71 .v7-profile-photo img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 17%}
.home-v71 .v7-profile-content{padding:11px 20px 20px}
.home-v71 .v7-profile-head strong{max-width:230px;font-size:18px;line-height:1.12}
.home-v71 .v7-profile-head div>span{font-size:11.5px}
.home-v71 .v7-open-pill{padding:6px 9px;font-size:8.5px}
.home-v71 .v7-profile-tags{margin-top:15px}
.home-v71 .v7-profile-meta{margin-top:14px}
.home-v71 .v7-profile-meta div{padding:9px 0}
.home-v71 .v7-profile-meta dd{font-size:11.5px}
.home-v71 .v7-profile-link{padding-top:11px;font-size:11.5px}

/* Profile proof strip becomes a standalone card instead of a hero footer. */
.home-v71 .v7-proofbar{
  margin-top:16px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;
  box-shadow:var(--v71-shadow);
}
.home-v71 .v7-proofbar>div{padding:19px 22px}
.home-v71 .v7-proofbar strong{font-size:20px}

/* LinkedIn-inspired stacked white modules. */
.home-v71 .v7-section,
.home-v71 .experience-section,
.home-v71 .v7-beyond-teaser{
  padding:18px 0 0!important;background:var(--v71-canvas)!important;border:0!important;
}
.home-v71 .v7-section>.wrap,
.home-v71 .experience-section>.wrap,
.home-v71 .v7-beyond-teaser>.wrap{
  padding:30px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;
  box-shadow:var(--v71-shadow);
}
.home-v71 .v7-section-head,
.home-v71 .experience-section .section-head{gap:42px;margin-bottom:28px}
.home-v71 .v7-section-head h2,
.home-v71 .experience-section .section-head h2{font-size:clamp(30px,3.4vw,43px);line-height:1.04}
.home-v71 .v7-section-head>p,
.home-v71 .experience-section .section-head>p{font-size:13.5px;line-height:1.6}

/* Expertise module */
.home-v71 .v7-bridge-grid{grid-template-columns:1fr 180px 1fr;gap:12px}
.home-v71 .v7-domain-card,.home-v71 .v7-shared-card{box-shadow:none;border-radius:13px}
.home-v71 .v7-domain-card{padding:23px}
.home-v71 .v7-domain-card h3{margin:24px 0 8px;font-size:22px}
.home-v71 .v7-domain-card p{font-size:12.5px}
.home-v71 .v7-shared-card{padding:19px;background:#F6F9FC}
.home-v71 .v7-shared-card strong{font-size:13px;padding:9px 0}

/* Featured project cards: four compact, evidence-first cards like a professional activity grid. */
.home-v71 .v7-featured-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.home-v71 .v7-featured-card{padding:16px;border-radius:13px;box-shadow:none}
.home-v71 .v7-featured-card:hover{transform:translateY(-2px);box-shadow:var(--v71-shadow-hover)}
.home-v71 .v7-card-top{align-items:flex-start}
.home-v71 .v7-badge{font-size:8.5px;min-height:23px}
.home-v71 .v7-year{font-size:8.5px}
.home-v71 .v7-featured-card h3{margin:15px 0 7px;font-size:22px}
.home-v71 .v7-featured-card>p{min-height:58px;margin-bottom:13px;font-size:11.7px;line-height:1.52}
.home-v71 .v7-card-media{margin-bottom:13px;border-radius:9px}
.home-v71 .v7-card-media img{height:155px;padding:4px}
.home-v71 .v7-horti-visual{min-height:155px;margin-bottom:13px;border-radius:9px}
.home-v71 .v7-horti-visual>div{gap:5px;padding:14px}
.home-v71 .v7-horti-visual span{padding:8px 7px;font-size:7.5px}
.home-v71 .v7-horti-visual i{font-size:13px}
.home-v71 .v7-card-metrics div{padding:12px 7px 12px 0}
.home-v71 .v7-card-metrics div+div{padding-left:10px}
.home-v71 .v7-card-metrics strong{font-size:18px}
.home-v71 .v7-card-metrics span{font-size:9px}
.home-v71 .v7-card-footer{gap:10px;padding-top:13px;align-items:flex-start;flex-direction:column}
.home-v71 .v7-card-footer>a{font-size:10.5px}
.home-v71 .v7-card-footer .v7-chip-row span{font-size:7.8px;min-height:22px;padding:3px 6px}

/* Search + filters, adapted from the supplied professional-feed inspiration. */
.home-v71 .v7-project-browser{margin-top:38px;padding-top:30px}
.home-v71 .v7-project-toolbar{
  display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:16px;align-items:end;margin-bottom:18px;
}
.v71-project-tools{display:flex;align-items:center;gap:10px}
.v71-project-search{position:relative;display:block;width:min(250px,100%)}
.v71-project-search input{
  width:100%;height:39px;padding:0 36px 0 13px;border:1px solid var(--v71-line);border-radius:999px;
  background:#F7F9FA;color:#24313B;font:600 11px var(--sans);outline:0;
}
.v71-project-search input::placeholder{color:#7C8993}
.v71-project-search input:focus{border-color:#90BCE2;background:#fff;box-shadow:0 0 0 3px rgba(31,78,158,.09)}
.v71-search-icon{position:absolute;right:13px;top:50%;transform:translateY(-52%);color:#6A7B87;font-size:17px;pointer-events:none}
.v71-project-count{white-space:nowrap;color:#74828C;font:650 9px var(--mono)}
.home-v71 .v7-filter-group{flex-wrap:nowrap}
.home-v71 .v7-filter-group button{min-height:36px;padding:0 11px;font-size:10px}
.home-v71 .v7-secondary-grid{gap:12px}
.home-v71 .v7-project-card{border-radius:12px;box-shadow:none}
.home-v71 .v7-project-card:hover{box-shadow:var(--v71-shadow-hover)}
.home-v71 .v7-project-card>div{padding:15px}
.home-v71 .v7-project-card h4{font-size:17px}
.home-v71 .v7-project-card p{font-size:11px}
.home-v71 .v7-project-card a{font-size:10.5px}
.home-v71 .v7-project-card.is-search-hidden{display:none!important}

/* Capability and experience modules become flatter and more product-like. */
.home-v71 .v7-capability-grid{gap:10px}
.home-v71 .v7-capability-grid article{padding:20px;border-radius:12px;box-shadow:none}
.home-v71 .v7-capability-grid h3{margin:23px 0 5px;font-size:19px}
.home-v71 .v7-capability-grid p{font-size:11px}
.home-v71 .v7-learning{border-style:solid;background:#F7F9FA}
.home-v71 .experience-layout{gap:38px}
.home-v71 .education-panel{position:static;border-radius:13px;box-shadow:none}
.home-v71 .work-ethos{border-radius:13px;box-shadow:none}
.home-v71 .v7-beyond-grid{grid-template-columns:270px 1fr;gap:36px}
.home-v71 .v7-beyond-grid figure{border-radius:13px;box-shadow:none}
.home-v71 .v7-beyond-grid img{height:220px}
.home-v71 .v7-beyond-grid h2{font-size:clamp(28px,3.1vw,40px)}
.home-v71 .v7-beyond-grid p:not(.v7-kicker){font-size:13.5px}
.home-v71 .contact-section{margin-top:18px}

/* Supporting pages inherit the neutral professional canvas. */
.site-v71.academic-v7{background:var(--v71-canvas)}
.site-v71.academic-v7 .academic-hero{padding:28px 0 16px;background:var(--v71-canvas);border:0}
.site-v71.academic-v7 .academic-hero>.wrap{padding:32px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;box-shadow:var(--v71-shadow)}
.site-v71.academic-v7 .academic-content{background:var(--v71-canvas);padding-top:2px}
.site-v71.academic-v7 .academic-semester{border-radius:13px;box-shadow:none}

/* Beyond the CV keeps its editorial palette, while cards/navigation stay in the same product family. */
.site-v71.beyond-page .site-nav{box-shadow:0 1px 0 rgba(31,35,40,.035)}
.site-v71.beyond-page .beyond-story{border-radius:14px}
.site-v71.beyond-page .beyond-media{border-radius:14px}

@media(max-width:1180px){
  .home-v71 .v7-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-v71 .v7-featured-card>p{min-height:0}
  .home-v71 .v7-card-media img,.home-v71 .v7-horti-visual{height:auto;min-height:210px}
  .home-v71 .v7-project-toolbar{grid-template-columns:1fr auto}
  .home-v71 .v7-project-toolbar>div:first-child{grid-column:1/-1}
}
@media(max-width:860px){
  .home-v71 .v7-hero{padding-top:18px}
  .home-v71 .v7-hero-grid{grid-template-columns:1fr;padding:24px;gap:26px}
  .home-v71 .v7-profile-card{max-width:none}
  .home-v71 .v7-bridge-grid{grid-template-columns:1fr}
  .home-v71 .v7-section>.wrap,.home-v71 .experience-section>.wrap,.home-v71 .v7-beyond-teaser>.wrap{padding:24px}
  .home-v71 .v7-project-toolbar{grid-template-columns:1fr}
  .home-v71 .v7-project-toolbar>div:first-child{grid-column:auto}
  .home-v71 .v7-filter-group{justify-content:flex-start;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .home-v71 .v7-filter-group::-webkit-scrollbar{display:none}
  .v71-project-tools{justify-content:space-between}
}
@media(max-width:620px){
  .back-to-top{right:14px;bottom:14px;width:44px;height:44px}
  .home-v71 .v7-hero-grid{padding:0;overflow:hidden;gap:0}
  .home-v71 .v7-profile-card{order:-1;border:0;border-bottom:1px solid var(--v71-line);border-radius:0;box-shadow:none}
  .home-v71 .v7-profile-card::before{height:92px}
  .home-v71 .v7-profile-photo{width:98px;height:98px;margin:48px 0 0 16px}
  .home-v71 .v7-profile-content{padding:10px 16px 17px}
  .home-v71 .v7-profile-head strong{max-width:245px;font-size:18px}
  .home-v71 .v7-profile-head{align-items:center}
  .home-v71 .v7-profile-tags{margin-top:12px}
  .home-v71 .v7-profile-meta{grid-template-columns:1fr 1fr;gap:0 12px}
  .home-v71 .v7-profile-meta div{border-top:1px solid var(--v71-line)}
  .home-v71 .v7-hero-copy{padding:20px 16px 24px}
  
  .home-v71 .v7-hero-copy .v7-overline,
  .home-v71 .v7-hero-copy h1,
  .home-v71 .v7-hero-copy .v7-role{display:none}
  .home-v71 .v7-hero h2{margin-top:0;font-size:25px;line-height:1.12}
  .home-v71 .v7-intro{font-size:14.5px;line-height:1.62}
  .home-v71 .v7-hero-actions{margin-top:21px}
  .home-v71 .v7-social-links{justify-content:center;margin-top:18px}
  .home-v71 .v7-proofbar{grid-template-columns:repeat(2,1fr);margin-top:12px;border-radius:14px}
  .home-v71 .v7-proofbar>div{padding:15px 14px;border-right:1px solid var(--v71-line)!important;border-bottom:1px solid var(--v71-line)!important}
  .home-v71 .v7-proofbar>div:nth-child(2n){border-right:0!important}
  .home-v71 .v7-proofbar>div:nth-last-child(-n+2){border-bottom:0!important}
  .home-v71 .v7-proofbar strong{font-size:18px}
  .home-v71 .v7-proofbar span{font-size:10px}
  .home-v71 .v7-section,.home-v71 .experience-section,.home-v71 .v7-beyond-teaser{padding-top:12px!important}
  .home-v71 .v7-section>.wrap,.home-v71 .experience-section>.wrap,.home-v71 .v7-beyond-teaser>.wrap{padding:20px 16px;border-radius:14px}
  .home-v71 .v7-section-head,.home-v71 .experience-section .section-head{margin-bottom:20px}
  .home-v71 .v7-section-head h2,.home-v71 .experience-section .section-head h2{font-size:30px}
  .home-v71 .v7-featured-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px;scrollbar-width:none}
  .home-v71 .v7-featured-grid::-webkit-scrollbar{display:none}
  .home-v71 .v7-featured-card{flex:0 0 86%;scroll-snap-align:start}
  .home-v71 .v7-card-media img,.home-v71 .v7-horti-visual{min-height:175px}
  .home-v71 .v7-project-browser{margin-top:28px;padding-top:24px}
  .v71-project-tools{align-items:flex-start;flex-direction:column;width:100%}
  .v71-project-search{width:100%}
  .home-v71 .v7-secondary-grid{grid-template-columns:1fr}
  .home-v71 .v7-beyond-grid{grid-template-columns:1fr;gap:20px}
  .home-v71 .v7-beyond-grid figure{max-width:none}
  .home-v71 .v7-beyond-grid img{height:auto;max-height:none;object-fit:contain}
}
@media(prefers-reduced-motion:reduce){
  .back-to-top,.v7-featured-card,.v7-project-card{transition:none!important}
}

/* V7.1 visual polish after rendered review */
.site-v71 .site-nav nav>a{white-space:nowrap}
.home-v71 .v7-profile-card{
  background:
    linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px) 0 0/26px 26px no-repeat,
    linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px) 0 0/26px 26px no-repeat,
    linear-gradient(110deg,#1F4E9E 0 50%,#234A6B 50% 100%) 0 0/100% 116px no-repeat,
    #fff;
}
.home-v71 .v7-profile-card::before{display:none}
.home-v71 .v7-profile-photo img{transform:scale(1.42);transform-origin:50% 16%;object-position:50% 14%}
.v71-project-search{width:220px;min-width:220px}
@media(max-width:860px){.v71-project-search{width:240px;min-width:0}}
@media(max-width:620px){
  .home-v71 .v7-profile-card{
    background:
      linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px) 0 0/24px 24px no-repeat,
      linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px) 0 0/24px 24px no-repeat,
      linear-gradient(110deg,#1F4E9E 0 50%,#234A6B 50% 100%) 0 0/100% 92px no-repeat,
      #fff;
  }
  .v71-project-search{width:100%}
}

/* Explicit profile cover: reliable across browsers and print/render engines. */
.home-v71 .v7-profile-card{background:#fff}
.v71-profile-cover{
  display:grid;grid-template-columns:1fr 1fr;align-items:end;height:116px;padding:0 16px 12px;
  background:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(110deg,#1F4E9E 0 50%,#234A6B 50% 100%);
  background-size:26px 26px,26px 26px,100% 100%;
}
.v71-profile-cover span{color:rgba(255,255,255,.88);font:750 8.5px var(--mono);letter-spacing:.14em}
.v71-profile-cover span:last-child{text-align:right}
.home-v71 .v7-profile-photo{margin:-48px 0 0 20px}
@media(max-width:620px){
  .v71-profile-cover{height:92px;padding:0 14px 10px;background-size:24px 24px,24px 24px,100% 100%}
  .home-v71 .v7-profile-photo{margin:-43px 0 0 16px}
}
.v71-profile-cover{background:linear-gradient(110deg,#1F4E9E 0 50%,#234A6B 50% 100%)}
.home-v71 .v7-profile-photo img{transform:none;object-position:center;object-fit:cover}
.v71-profile-cover{background:#1F4E9E;background-image:linear-gradient(110deg,#1F4E9E 0%,#1F4E9E 50%,#234A6B 50%,#234A6B 100%)}


/* V7.2 refinement pass: stronger visual attraction, clearer Data/Cyber cover, and tighter page consistency */
.home-v71 .v7-hero-grid::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:18px;background:radial-gradient(circle at 14% 16%,rgba(31,78,158,.07),transparent 28%),radial-gradient(circle at 84% 88%,rgba(181,101,29,.07),transparent 24%)}
.home-v71 .v7-section>.wrap,.home-v71 .experience-section>.wrap,.home-v71 .v7-beyond-teaser>.wrap,.site-v71.academic-v7 .academic-hero>.wrap{position:relative;overflow:hidden}
.home-v71 .v7-section>.wrap::before,.home-v71 .experience-section>.wrap::before,.home-v71 .v7-beyond-teaser>.wrap::before,.site-v71.academic-v7 .academic-hero>.wrap::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#1F4E9E 0%,#4D87C7 42%,#B5651D 100%)}
.home-v71 .v7-featured-card{background:linear-gradient(180deg,#FFFFFF 0%,#FBFCFE 100%);border-color:#D7E0E8;box-shadow:0 8px 26px rgba(31,35,40,.055)}
.home-v71 .v7-featured-card:hover{border-color:#C2D3E4;box-shadow:0 16px 36px rgba(31,35,40,.085)}
.home-v71 .v7-featured-card h3{font-size:21px;line-height:1.02}
.home-v71 .v7-card-media{overflow:hidden;border:1px solid #E2EAF1;background:linear-gradient(180deg,#F9FBFD,#EFF4F8)}
.home-v71 .v7-card-media img{height:168px;padding:0;object-fit:cover;background:transparent}
.home-v71 .v7-card-media-illustration img{object-position:center}
.home-v71 .v7-card-metrics{border-top:1px solid #E3EBF2;border-bottom:1px solid #E3EBF2}
.home-v71 .v7-card-footer .v7-chip-row{gap:6px}
.home-v71 .v7-card-footer .v7-chip-row span{background:#F5F8FB}
.v71-profile-cover{position:relative;display:flex;justify-content:space-between;align-items:flex-start;height:120px;padding:16px 18px 0;overflow:hidden;background:linear-gradient(116deg,#1F4E9E 0%,#1F4E9E 44%,#234A6B 44%,#234A6B 100%)}
.v71-profile-cover::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:26px 26px,26px 26px;opacity:.8}
.v71-profile-cover::after{content:"";position:absolute;left:50%;top:18px;transform:translateX(-50%);width:120px;height:54px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.v71-profile-cover span{position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;color:#fff}
.v71-profile-cover span:last-child{text-align:right;align-items:flex-end}
.v71-profile-cover strong{font:700 16px/1 var(--display);letter-spacing:.09em}
.v71-profile-cover small{font:600 8px/1.2 var(--mono);letter-spacing:.16em;color:rgba(255,255,255,.82)}
.home-v71 .v7-profile-photo{margin:-42px 0 0 20px;border-width:5px;box-shadow:0 8px 22px rgba(31,35,40,.16)}
.home-v71 .v7-profile-head strong{font-size:19px}
.home-v71 .v7-open-pill{background:#E9F4EC;color:#2E6B4E}
.home-v71 .v7-profile-tags span{background:#F4F7FB}
.site-v71 .language-switcher a{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.site-v71 .language-switcher .lang-flag{font-size:12px;line-height:1}
.site-v71.beyond-page{background:var(--v71-canvas)!important;color:var(--v7-ink)}
.site-v71.beyond-page .site-nav{background:rgba(255,255,255,.94);border-bottom-color:var(--v71-line)}
.site-v71.beyond-page .beyond-hero{padding:28px 0 16px;background:var(--v71-canvas)!important;color:var(--v7-ink)}
.site-v71.beyond-page .beyond-hero::before,.site-v71.beyond-page .beyond-hero::after{display:none}
.site-v71.beyond-page .beyond-hero-grid{position:relative;padding:34px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;box-shadow:var(--v71-shadow);overflow:hidden;gap:40px}
.site-v71.beyond-page .beyond-hero-grid::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,#1F4E9E 0%,#6C2E4C 54%,#B65B46 100%)}
.site-v71.beyond-page .beyond-hero h1{color:var(--v7-ink);font-size:clamp(38px,5.4vw,68px);line-height:.98}
.site-v71.beyond-page .beyond-lead,.site-v71.beyond-page .beyond-hero .academic-back{color:#566672}
.site-v71.beyond-page .beyond-hero-photo{padding:10px;border:1px solid #E1E8EF;border-radius:18px;background:#F8FBFD;box-shadow:none}
.site-v71.beyond-page .beyond-hero-photo figcaption,.site-v71.beyond-page .beyond-media figcaption{color:#6B7C86}
.site-v71.beyond-page .beyond-stories{display:grid;gap:16px;padding-top:18px}
.site-v71.beyond-page .beyond-story,.site-v71.beyond-page .beyond-story:nth-child(even){margin:0;padding:34px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;box-shadow:var(--v71-shadow);border-bottom:1px solid var(--v71-line)}
.site-v71.beyond-page .beyond-story:nth-child(1){border-top:4px solid #1F4E9E}
.site-v71.beyond-page .beyond-story:nth-child(2){border-top:4px solid #6C2E4C}
.site-v71.beyond-page .beyond-story:nth-child(3){border-top:4px solid #B65B46}
.site-v71.beyond-page .beyond-story:nth-child(4){border-top:4px solid #D3A24C}
.site-v71.beyond-page .beyond-number{color:#1F4E9E}
.site-v71.beyond-page .beyond-media,.site-v71.beyond-page .evidence-card{border-color:#E1E8EF;background:#F9FBFD;box-shadow:none}
.site-v71.beyond-page .beyond-close{padding:18px 0 26px;background:var(--v71-canvas)!important}
.site-v71.beyond-page .beyond-close .wrap{padding:30px;border:1px solid var(--v71-line);border-radius:16px;background:#fff;box-shadow:var(--v71-shadow);position:relative;overflow:hidden}
.site-v71.beyond-page .beyond-close .wrap::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#1F4E9E 0%,#6C2E4C 54%,#B65B46 100%)}
.site-v71.beyond-page .button.button-dark{background:#1F4E9E;border-color:#1F4E9E;color:#fff}
.site-v71.beyond-page .button.button-dark:hover{background:#163A75;border-color:#163A75}
@media(max-width:980px){.site-v71.beyond-page .beyond-hero-grid,.site-v71.beyond-page .beyond-story-split,.site-v71.beyond-page .beyond-story-split.reverse{grid-template-columns:1fr}}
@media(max-width:620px){.home-v71 .v7-card-media img{height:176px}.v71-profile-cover{height:98px;padding:13px 14px 0}.v71-profile-cover::before{background-size:24px 24px,24px 24px}.v71-profile-cover::after{top:16px;width:94px;height:46px}.v71-profile-cover strong{font-size:13px}.v71-profile-cover small{font-size:7px}.home-v71 .v7-profile-photo{margin:-38px 0 0 16px}.site-v71.beyond-page .beyond-hero-grid,.site-v71.beyond-page .beyond-story,.site-v71.beyond-page .beyond-story:nth-child(even),.site-v71.beyond-page .beyond-close .wrap{padding:20px 18px;border-radius:14px}}


/* V7.2.1: no synthetic graphics: semantic HTML/CSS schematic + unaltered real screenshots */
.home-v71 .v72-architecture,
.home-v71 .v72-bigdata-evidence {height:168px;margin:0 0 13px;border:1px solid #DCE6EF;border-radius:10px;background:linear-gradient(125deg,#F8FBFD,#EDF4FA);overflow:hidden}
.v72-schematic-header{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:12px 12px 8px;color:#1B4567}
.v72-schematic-header span,.v72-proof-label{font:700 9px var(--mono);letter-spacing:.08em}
.v72-schematic-header small{font:500 7px var(--mono);color:#587385;text-align:right}
.v72-arch-steps{display:flex;align-items:stretch;gap:6px;padding:3px 9px 2px}
.v72-arch-node{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;gap:6px;min-height:100px;padding:9px 5px;background:#fff;border:1px solid #C5D7E6;border-radius:8px;box-shadow:0 4px 12px rgba(32,75,108,.045);text-align:center}
.v72-arch-node i{display:flex;align-self:center;justify-content:center;align-items:center;width:23px;height:23px;border-radius:8px;background:#EDF5FB;font:700 9px var(--mono);font-style:normal;color:#1F4E9E}
.v72-arch-node strong{font-size:10px;line-height:1.1;overflow-wrap:anywhere;color:#193F5D}
.v72-arch-node small{font:500 8px var(--mono);color:#6B7C89}
.v72-arch-1{border-color:#95C2DF}.v72-arch-1 i{background:#E2F2FF}
.v72-arch-2{border-color:#86BBAF}.v72-arch-2 i{background:#E6F3EF;color:#28745C}
.v72-arch-3{border-color:#DEB690}.v72-arch-3 i{background:#FFF0DE;color:#A05E22}
.v72-architecture figcaption,.v72-bigdata-evidence figcaption{padding:5px 10px;color:#637786;font:500 7px var(--mono);text-align:center}
.v72-bigdata-evidence{background:linear-gradient(135deg,#F6F9FC,#EBF4FC)}
.v72-proof-label{padding:10px 12px 8px;color:#1B4567}
.v72-proof-panels{display:grid;grid-template-columns:.9fr 1.1fr;gap:8px;padding:0 10px}
.v72-proof-panel{height:115px;min-width:0;position:relative;overflow:hidden;border-radius:8px;border:1px solid #BED2E2;background:#fff}
.v72-proof-panel img{width:100%;height:100%;display:block;object-fit:cover;object-position:left top;padding:0!important;background:transparent}
.v72-proof-panel:nth-child(2) img{object-position:left top}
.v72-proof-panel strong{position:absolute;bottom:0;left:0;right:0;background:rgba(20,48,75,.91);padding:4px 6px;color:#fff;font:600 9px var(--mono)}
/* Avoid artificially cropping actual content in the unmodified evidence files themselves */
.home-v71 .v7-featured-card .v72-proof-panel img{height:100%}
.home-v71 .v7-hero-grid{box-shadow:0 12px 44px rgba(31,35,40,.075)}
.home-v71 .v7-section>.wrap,.home-v71 .experience-section>.wrap,.home-v71 .v7-beyond-teaser>.wrap{box-shadow:0 8px 28px rgba(31,35,40,.045)}
.site-v71.beyond-page .beyond-hero-grid{background:linear-gradient(120deg,#FFFFFF 0%,#FCF7FA 65%,#FFF9F5 100%)}
.site-v71.beyond-page .beyond-hero .section-kicker{color:#824265}
.site-v71.beyond-page .beyond-hero-photo img{object-fit:cover}
.site-v71.beyond-page .graduation-media img{object-fit:contain}
@media(max-width:1180px){.home-v71 .v72-architecture,.home-v71 .v72-bigdata-evidence{height:192px}.v72-arch-node{min-height:120px}.v72-proof-panel{height:135px}}
@media(max-width:620px){.home-v71 .v72-architecture,.home-v71 .v72-bigdata-evidence{height:180px}.v72-schematic-header small{display:none}.v72-arch-node{min-height:120px}.v72-proof-panel{height:126px}.v72-arch-node strong{font-size:10px}.v72-arch-node small{font-size:7px}}

/* V7.2.2 : common header identity on Beyond CV FR/EN */
.site-v71.beyond-page .site-nav .brand-mark {background:#1F4E9E!important;color:#fff!important;box-shadow:0 7px 18px rgba(31,78,158,.16)}
.site-v71.beyond-page .site-nav .brand-copy strong{color:#1F2328}
.site-v71.beyond-page .site-nav .brand-copy small{color:#66727D}
.site-v71.beyond-page .site-nav nav>a{color:#46535E}
.site-v71.beyond-page .site-nav nav>a:not(.nav-cta)::after{background:#1F4E9E}
.site-v71.beyond-page .site-nav nav .language-switcher{border:1px solid #D8E0E6;background:#F7F9FA}
.site-v71.beyond-page .site-nav nav .language-switcher a{color:#5C6873;background:transparent}
.site-v71.beyond-page .site-nav nav .language-switcher a[aria-current="page"]{color:#163A75;background:#fff;box-shadow:0 1px 5px rgba(31,35,40,.08)}
.site-v71.beyond-page .site-nav nav .language-switcher .lang-flag{filter:none;opacity:1;font-size:12px}
.site-v71.beyond-page .site-nav nav>a.nav-cta{background:#1F4E9E!important;color:#fff!important;border-radius:999px!important;padding:10px 17px!important;box-shadow:0 6px 18px rgba(31,78,158,.16)}
.site-v71.beyond-page .site-nav nav>a.nav-cta:hover{background:#163A75!important}
.site-v71.beyond-page .site-nav nav>a.nav-cta::after{display:none!important}

/* V7.2.2 : project-cover zoom and architecture comparison (semantic CSS / source evidence only) */
.home-v71 .v7-featured-card figure,.home-v71 .v7-project-card figure{position:relative}
.home-v71 .v722-horti-comparison{height:180px;overflow:hidden;margin:0 0 13px;border:1px solid #C9D8E7;border-radius:10px;background:#F4F8FC}
.v722-arch-top{padding:8px 12px;border-bottom:1px solid #E0E9F1;background:#ECF4FB;color:#284F72;font:700 8px/1.2 var(--mono);letter-spacing:.09em}
.v722-arch-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px 4px}
.v722-arch-before,.v722-arch-after{padding:5px;border:1px solid #D7E1EA;border-radius:8px;background:#fff;min-width:0;text-align:center}
.v722-arch-before{border-top:3px solid #C27B5F}.v722-arch-after{border-top:3px solid #177E78}
.v722-arch-before>span:first-child,.v722-arch-after>span:first-child{display:block;margin:0 0 5px;font:800 8px/1.1 var(--mono);letter-spacing:.09em;color:#AC5634}
.v722-arch-after>span:first-child{color:#126861}
.v722-arch-step{font:600 7.5px/1.25 var(--sans);color:#354A5D;overflow-wrap:anywhere}
.v722-arch-arrow{display:block;color:#8B9EAC;font:700 8px/1.1 var(--mono)}
.v722-horti-comparison figcaption{padding:2px 10px;color:#52697D;text-align:center;font:500 7px/1.25 var(--mono)}
.home-v71 .v72-bigdata-evidence{height:180px}
.home-v71 .v72-bigdata-evidence .v72-proof-panels{padding-top:11px}
.v722-zoom-panel{position:relative}
.v722-zoom-trigger{position:absolute;z-index:3;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;cursor:zoom-in}
.v722-zoom-trigger::after{content:'⤢';position:absolute;right:8px;top:8px;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(8,36,63,.85);color:#fff;font:700 17px/1 var(--sans);box-shadow:0 2px 10px rgba(0,0,0,.18);opacity:.85;transition:transform .16s ease,opacity .16s ease}
.v722-zoom-trigger:hover::after,.v722-zoom-trigger:focus-visible::after{opacity:1;transform:scale(1.08)}
.v722-zoom-trigger:focus-visible{outline:3px solid #1F4E9E;outline-offset:-4px;border-radius:8px}
.home-v71 .v72-bigdata-evidence .v722-zoom-trigger::after{right:4px;top:4px;width:23px;height:23px;font-size:14px}
.v722-modal[hidden]{display:none!important}
.v722-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3vw,40px);background:rgba(9,24,38,.90);backdrop-filter:blur(8px)}
.v722-modal-panel{position:relative;width:min(1140px,100%);max-height:94dvh;padding:22px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:#fff;overflow:auto;box-shadow:0 30px 110px rgba(0,0,0,.38)}
.v722-modal-close{position:sticky;z-index:5;top:0;float:right;border:0;width:40px;height:40px;border-radius:999px;background:#102C45;color:#fff;font:700 24px/1 var(--sans);cursor:pointer}
.v722-modal-close:focus-visible{outline:3px solid #1F4E9E;outline-offset:3px}
.v722-modal-title{margin:3px 52px 12px 0;font:700 clamp(18px,2.5vw,26px)/1.2 var(--display);color:#173653}
.v722-modal-image{display:block;max-width:100%;max-height:72dvh;width:auto;height:auto;object-fit:contain;margin:auto;border-radius:8px}
.v722-modal-body{clear:both}
.v722-modal-architecture{margin:0;max-height:none!important;height:auto!important;overflow:visible!important}
.v722-modal-architecture .v722-arch-top{padding:18px;font-size:14px}
.v722-modal-architecture .v722-arch-cols{gap:20px;padding:20px}
.v722-modal-architecture .v722-arch-before,.v722-modal-architecture .v722-arch-after{padding:24px}
.v722-modal-architecture .v722-arch-before>span:first-child,.v722-modal-architecture .v722-arch-after>span:first-child{font-size:14px}
.v722-modal-architecture .v722-arch-step{font-size:clamp(12px,1.6vw,17px);padding:8px}
.v722-modal-architecture .v722-arch-arrow{font-size:17px}
.v722-modal-architecture figcaption{font-size:12px;padding:12px}
@media(max-width:620px){.home-v71 .v722-horti-comparison{height:190px}.v722-arch-step{font-size:7.5px}.v722-modal-panel{padding:12px}.v722-modal-architecture .v722-arch-cols{gap:8px;padding:8px}.v722-modal-architecture .v722-arch-before,.v722-modal-architecture .v722-arch-after{padding:10px}.v722-modal-architecture .v722-arch-step{font-size:11px;padding:4px}.v722-modal-architecture .v722-arch-before>span:first-child,.v722-modal-architecture .v722-arch-after>span:first-child{font-size:12px}}
@media(prefers-reduced-motion:reduce){.v722-zoom-trigger::after{transition:none}}

/* V7.2.2 : align the mobile navigation toggle with the main navigation palette */
.site-v71.beyond-page .site-nav .nav-toggle{border-color:#D8E0E6;background:#fff}
.site-v71.beyond-page .site-nav .nav-toggle span:not(.sr-only){background:#234A6B}

/* V7.2.3: user-supplied original HortiTrace architecture illustrations, no decorative poster captions. */
.home-v71 .v723-horti-cover{position:relative;margin-bottom:13px;border:1px solid #d5e2f1;border-radius:10px;overflow:hidden;background:#f9fbff}
.home-v71 .v723-horti-cover img{display:block;width:100%;height:168px;object-fit:contain;padding:0;background:white}
.home-v71 .v72-bigdata-evidence figure{position:relative}
.v722-modal-panel{padding-top:40px}
@media(max-width:620px){.home-v71 .v723-horti-cover img{height:176px}}

/* V7.2.3 QA: native diagrams can be panned inside the fullscreen viewer on small screens. */
.v722-modal-body:has(.v723-modal-diagram){max-width:100%;max-height:80dvh;overflow:auto}
.v722-modal-image.v723-modal-diagram{max-height:none}
@media(max-width:620px){.v722-modal-image.v723-modal-diagram{max-width:none;width:auto;min-width:740px;max-height:none;height:auto}.v722-modal-body:has(.v723-modal-diagram){height:auto;max-height:76dvh}}


/* V7.2.5 - typography and readability review (all original project visuals preserved) */
@media (min-width:861px){
  .home-v71 .v7-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .home-v71 .v7-featured-card{padding:24px;border-radius:16px}
  .home-v71 .v7-featured-card h3{font-size:25px;line-height:1.13}
  .home-v71 .v7-featured-card>p{font-size:14px;line-height:1.62;min-height:0;margin-bottom:16px}
  .home-v71 .v7-card-media img,.home-v71 .v723-horti-cover img{height:245px;object-fit:contain}
  .home-v71 .v7-featured-card .v72-bigdata-evidence{height:245px}
  .home-v71 .v72-bigdata-evidence .v72-proof-panels{height:100%;align-items:center;padding-bottom:12px}
  .home-v71 .v72-proof-panel{height:194px}
  .home-v71 .v7-card-metrics strong{font-size:22px}
  .home-v71 .v7-card-metrics span{font-size:11px}
  .home-v71 .v7-card-footer>a{font-size:13px}
  .home-v71 .v7-card-footer .v7-chip-row span{font-size:10px;padding:5px 8px;min-height:29px}
}
.home-v71 .v7-featured-card .v7-badge{font-size:10px;line-height:1.3;min-height:29px;padding:6px 9px;letter-spacing:.02em}
.home-v71 .v7-project-card h4{font-size:20px;line-height:1.2}
.home-v71 .v7-project-card p{font-size:13.5px;line-height:1.6;color:#51616E}
.home-v71 .v7-project-card a{font-size:13px}
.home-v71 .v7-project-card .v7-chip-row span{font-size:10px;min-height:28px}
.home-v71 .v7-capability-grid p{font-size:13px;line-height:1.55}
.home-v71 .v7-capability-grid .v7-chip-row span{font-size:10px}
.home-v71 .v7-year{font-size:10px}
.home-v71 .v7-profile-tags span{font-size:10px;line-height:1.4}
.home-v71 .v7-profile-meta dd{font-size:12px}
.home-v71 .v7-profile-content{overflow-wrap:normal}
.v71-profile-cover small{font-size:8px;max-width:160px;line-height:1.4;letter-spacing:.06em}
.site-v71 :is(a,button,input):focus-visible{outline:3px solid #1F4E9E;outline-offset:3px}
.site-v71 .nav-cta:focus-visible,.site-v71 .button-primary:focus-visible{outline-color:#F4B85D;outline-offset:3px}
.site-v71 .language-switcher a{min-width:44px;min-height:34px}
@media (max-width:860px) and (min-width:621px){
  .home-v71 .v7-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-v71 .v7-featured-card>p{font-size:13px;min-height:0}
}
@media (max-width:620px){
  .home-v71 .v7-featured-card h3{font-size:24px}
  .home-v71 .v7-featured-card>p{font-size:13.5px;line-height:1.55}
  .home-v71 .v7-featured-card .v7-chip-row span{font-size:9px;min-height:27px}
  .home-v71 .v7-profile-tags span{font-size:9px}
  .v71-profile-cover small{font-size:7.5px;max-width:136px;letter-spacing:.02em}
  .home-v71 .v7-project-card p{font-size:13.5px}
  .home-v71 .v7-capability-grid p{font-size:13px}
}
@media(prefers-reduced-motion: reduce){
  .site-v71 :is(a,button,article){scroll-behavior:auto;transition:none!important}
}

/* V7.2.7: scope after the role title */
.v7-role-scope{display:block;margin-top:6px;font-size:.62em;font-weight:500;color:var(--muted,#5B6972);letter-spacing:0}


/* V7.3.1 editorial/UI refinements (27 October 2026) */
.home-v71 .v7-role-scope {letter-spacing:normal;word-spacing:normal}
.home-v71 .v7-bridge .v7-section-head>p {max-width:540px;line-height:1.66;letter-spacing:0;font-size:14px}
.home-v71 .v7-work-head>p {max-width:480px;line-height:1.65}
.home-v71 .v7-project-toolbar {grid-template-columns:minmax(190px,1fr) auto auto;align-items:center;gap:14px}
.home-v71 .v731-project-counter {justify-self:end;align-self:center}
.home-v71 .v731-project-counter .v71-project-count {font-size:11px;letter-spacing:0;display:inline-flex;padding:8px 11px;background:#F2F6FA;border:1px solid #D5E0E8;border-radius:999px;color:#405666}
.home-v71 .education-panel .edu-item.highlight>span:first-child {display:inline-block;padding:5px 8px;border-radius:6px;background:#E6F0FA;color:#004182;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:none}
.case-page.theme-bi .v731-compact-evidence {background:#F5F8FC;grid-column:1/-1}
.case-page.theme-bi .v731-compact-evidence .v731-evidence-image-wrap {display:flex;align-items:center;justify-content:center;padding:18px 16px;background:linear-gradient(155deg,#F1F5FA,#F9FBFD)}
.case-page.theme-bi .v731-compact-evidence .v731-evidence-image-wrap img {display:block;width:100%!important;max-width:1000px;max-height:none!important;height:auto!important;max-inline-size:none;box-shadow:0 6px 24px rgba(16,48,76,.12);border-radius:7px;border:1px solid #D6E1ED;background:#fff}
@media(max-width:1000px) {.home-v71 .v7-project-toolbar {grid-template-columns:1fr auto;gap:12px}.home-v71 .v7-project-toolbar>.v7-filter-group{grid-column:1/-1}}
@media(max-width:680px) {.home-v71 .v7-project-toolbar {grid-template-columns:1fr}.home-v71 .v731-project-counter {justify-self:start}.home-v71 .v7-project-toolbar>.v7-filter-group{grid-column:auto}.home-v71 .v7-bridge .v7-section-head>p {font-size:13.5px;line-height:1.62}.case-page.theme-bi .v731-compact-evidence .v731-evidence-image-wrap{padding:10px}}


/* V7.3.3 QA: accessible detail zoom for original Alshadows report captures. */
.case-page.theme-bi .project-gallery figure.figure {position:relative}
.case-page.theme-bi .project-gallery .v733-case-zoom{position:absolute;top:15px;right:15px;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid #b5c8df;border-radius:9px;background:rgba(255,255,255,.97);box-shadow:0 3px 12px rgba(20,45,75,.12);color:#0b4b91;font:700 12px/1.2 var(--sans);cursor:pointer}
.case-page.theme-bi .project-gallery .v733-case-zoom:hover,.case-page.theme-bi .project-gallery .v733-case-zoom:focus-visible{border-color:#0A66C2;outline:2px solid #0A66C2;outline-offset:2px}
@media(max-width:600px){.case-page.theme-bi .project-gallery .v733-case-zoom{top:10px;right:10px;min-height:36px}}
