/* Photos: smaller frames and face-aware crops */
.hero-portrait{width:min(100%,460px);padding-right:8px}
.portrait-frame{height:505px}
.portrait-frame{background:radial-gradient(ellipse 76% 66% at 47% 37%,rgba(255,255,255,.99) 0%,rgba(255,255,255,.93) 38%,rgba(231,237,244,.62) 74%,rgba(220,229,240,.34) 100%),radial-gradient(ellipse at 50% 50%,#edf2f7,#dfe7f1);box-shadow:inset 0 0 40px rgba(255,255,255,.9),0 0 34px rgba(255,255,255,.48)}
.portrait-frame:before{display:none}
.portrait-frame img{object-position:center center;mix-blend-mode:normal;filter:drop-shadow(0 0 18px rgba(255,255,255,.72));-webkit-mask-image:radial-gradient(ellipse 84% 90% at 50% 48%,#000 65%,rgba(0,0,0,.96) 78%,rgba(0,0,0,.6) 91%,transparent 100%);mask-image:radial-gradient(ellipse 84% 90% at 50% 48%,#000 65%,rgba(0,0,0,.96) 78%,rgba(0,0,0,.6) 91%,transparent 100%);transform:scale(.82)}
.portrait-caption{left:-30px}
.moment-image{height:200px}
#moments .moment-card:nth-child(1) .moment-image img,
#moments .moment-card:nth-child(2) .moment-image img,
#moments .moment-card:nth-child(4) .moment-image img,
#moments .moment-card:nth-child(6) .moment-image img,
#moments .moment-card:nth-child(7) .moment-image img{object-position:center 8%}
@media(max-width:1000px){.hero-portrait{width:min(100%,370px)}.portrait-frame{height:430px}.moment-image{height:180px}}
@media(max-width:720px){.hero-portrait{width:min(84%,350px);padding:0 0 36px 12px}.portrait-frame{height:min(100vw,390px)}.portrait-caption{left:-12px}.moment-image{height:auto;aspect-ratio:16/10}}

/* Executive assessment: market signal and commercial value bridge */
.market-signal{background:#fff;border:1px solid #d9d6cc;padding:25px 28px;margin:0 0 30px;box-shadow:0 14px 30px rgba(16,27,41,.045)}
.market-signal-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;border-bottom:1px solid #e4e1d9;padding-bottom:14px;margin-bottom:18px}
.market-signal-heading>span{font-size:.65rem;font-weight:800;letter-spacing:.16em;color:#96703b;white-space:nowrap}
.market-signal-heading p{font-family:var(--display);font-size:1.08rem;font-weight:600;letter-spacing:-.025em;margin:0;color:var(--ink)}
.signal-track{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1.15fr);align-items:stretch;gap:10px}
.signal-node{display:flex;align-items:center;gap:13px;min-width:0;padding:17px 16px;background:#f5f4ef;border:1px solid #e2dfd5}
.signal-node .signal-glyph{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center;font-size:1.55rem;font-weight:700;background:#e4e9e6;color:#375d4e}
.signal-label{display:block;font-size:.59rem;letter-spacing:.11em;color:#697177;font-weight:800;margin-bottom:5px}
.signal-node strong{display:block;font-family:var(--display);font-size:.94rem;line-height:1.25;color:var(--ink)}
.signal-node small{display:block;font-size:.68rem;line-height:1.4;color:#68737a;margin-top:5px}
.signal-volume .signal-glyph{background:#faebdd;color:#a56827}
.signal-goal{background:var(--ink);border-color:var(--ink);color:#fff}.signal-goal .signal-glyph{background:#d7ad63;color:var(--ink)}.signal-goal .signal-label{color:var(--gold-light)}.signal-goal strong{color:#fff}.signal-goal small{color:#c2ccd5}
.signal-connector{display:grid;place-items:center;color:#a27b40;font-size:1.35rem;font-weight:700}.signal-not-equal{font-size:1.45rem;color:#777d7d}
.signal-footnote{margin:14px 0 0;font-size:.69rem;color:#777c7e}
.assessment-thesis{display:block;margin:29px 0 26px;background:var(--ink);color:#fff;padding:22px 26px}
.assessment-thesis>span{display:block;margin-bottom:14px}
.funding-flow{display:flex;align-items:center;justify-content:space-between;gap:11px;flex-wrap:wrap}
.funding-flow b{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);font-size:.76rem;color:#f6f1e6}
.funding-flow i{font-style:normal;color:var(--gold);font-weight:800}
.funding-flow strong{font-family:var(--display);font-size:.9rem;line-height:1.35;color:var(--gold-light)}
.funding-flow strong small{font-size:.71rem;font-weight:500;color:#c7d0d8}
.impact-agenda{gap:12px;background:transparent;border:0;counter-reset:levers}
.impact-agenda article{position:relative;padding:22px 22px 23px;background:#fff;border:1px solid #dad7cd;min-height:195px;box-shadow:0 10px 22px rgba(16,27,41,.04)}
.impact-agenda article:before{counter-increment:levers;content:"0" counter(levers);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e9dfc9;color:#745627;font-family:var(--display);font-size:.7rem;font-weight:800;margin-bottom:14px}
.impact-agenda article:not(:last-child):after{content:"→";position:absolute;z-index:1;right:-17px;top:26px;color:#a27b40;font-size:1.35rem;font-weight:700}
.impact-agenda article>span{font-size:.61rem;color:#96703b}
.impact-agenda h4{margin-top:7px}

/* SWOT: explicit internal/external and advantage/risk matrix */
.swot-matrix{display:grid;gap:11px}
.swot-column-head,.swot-row{display:grid;grid-template-columns:142px 1fr 1fr;gap:11px}
.swot-column-head{align-items:end;padding:0 4px 2px}
.swot-column-head>span:not(:first-child){font-size:.62rem;letter-spacing:.14em;font-weight:800;color:#70787c;padding-left:17px}
.swot-column-head .swot-positive-head{color:#51715d!important}.swot-column-head .swot-challenge-head{color:#9b604b!important}
.swot-row-label{display:flex;flex-direction:column;justify-content:center;padding:14px 13px;border-left:2px solid #c7a96f;background:#ebe8df}
.swot-row-label strong{font-size:.65rem;letter-spacing:.13em;color:#5c5f5c}.swot-row-label span{font-size:.69rem;line-height:1.45;color:#747978;margin-top:7px}
.swot-card{position:relative;overflow:hidden;padding:22px 21px 17px;min-height:224px;border:0;border-top:4px solid #7b9c85;background:#eaf2ec;box-shadow:0 8px 19px rgba(16,27,41,.045)}
.swot-card:after{position:absolute;right:12px;top:-22px;font-family:var(--display);font-size:7rem;line-height:1;font-weight:800;opacity:.075;pointer-events:none}
.swot-strength:after{content:"S"}.swot-weakness:after{content:"W"}.swot-opportunity:after{content:"O"}.swot-threat:after{content:"T"}
.swot-weakness{background:#f7eee8;border-top-color:#bf8967}.swot-opportunity{background:#edf1f8;border-top-color:#718db3}.swot-threat{background:#f6eaea;border-top-color:#b66f70}
.swot-label{display:inline-block;position:relative;z-index:1;padding:5px 8px;background:rgba(255,255,255,.73);border-radius:2px;font-size:.65rem}
.swot-strength .swot-label{color:#456c50}.swot-weakness .swot-label{color:#986043}.swot-opportunity .swot-label{color:#506d99}.swot-threat .swot-label{color:#9b5559}
.swot-card ul{position:relative;z-index:1;margin:15px 0 0}.swot-card li{font-size:.78rem;line-height:1.55;margin-bottom:8px}
@media(max-width:980px){.signal-track{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);grid-template-rows:auto 28px auto}.signal-track>.signal-node:first-child{grid-area:1/1}.signal-track>.signal-not-equal{grid-area:1/2}.signal-track>.signal-volume{grid-area:1/3}.signal-track>.signal-connector:last-of-type{grid-area:2/2;transform:rotate(90deg)}.signal-track>.signal-goal{grid-area:3/1/4/4}.swot-column-head,.swot-row{grid-template-columns:110px 1fr 1fr}}
@media(max-width:720px){.market-signal{padding:20px 17px}.market-signal-heading{display:block}.market-signal-heading p{margin-top:8px;font-size:1rem}.signal-track{display:flex;flex-direction:column;gap:9px}.signal-connector{display:none}.signal-node{padding:14px 13px}.assessment-thesis{padding:20px 18px}.funding-flow{justify-content:flex-start}.funding-flow i{padding:0 3px}.funding-flow strong{flex-basis:100%;padding-top:5px}.impact-agenda{gap:9px}.impact-agenda article{min-height:unset}.impact-agenda article:not(:last-child):after{content:"↓";right:18px;top:auto;bottom:-18px}.swot-column-head{display:none}.swot-row{grid-template-columns:1fr;gap:9px}.swot-row-label{flex-direction:row;justify-content:flex-start;align-items:baseline;gap:10px;padding:9px 12px}.swot-row-label span{margin:0}.swot-card{min-height:unset;padding:19px 18px 13px}.swot-card:after{font-size:5rem;top:-12px}}

.contact-downloads{border-top:1px solid rgba(255,255,255,.2);padding-top:18px;margin-top:8px}.contact-downloads>.contact-label{margin:0 0 8px}.contact-downloads>a{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:42px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.82rem;color:#e5e9ed}.contact-downloads>a span:last-child{color:var(--gold);font-size:1.1rem}.contact-downloads>a:hover{color:var(--gold-light)}.cv-page{max-width:880px;margin:100px auto;padding:48px 7%;background:#fff;color:#101b29;line-height:1.8}.cv-page h1{font-size:clamp(2.6rem,7vw,5rem);line-height:1.05;letter-spacing:-.06em}.cv-page h2{font-size:1.35rem;margin:32px 0 10px}.cv-page .cv-lead{font-size:1.15rem;color:#596574}.cv-page .text-link{color:#101b29;margin-left:20px}@media(max-width:720px){.cv-page{margin:80px 16px;padding:30px 24px}.contact-downloads>a{font-size:.78rem}}
