/* Hero study: a personal introduction and a small, tactile canvas. */
.hero-personal { background:#f8f8f5; padding:78px 0 0; overflow:hidden; }
.hero-canvas { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:30px 65px; align-items:center; }
.hero-canvas > * { min-width:0; }
.hero-intro { position:relative; z-index:2; padding-block:22px 35px; }
.hero-greeting { display:flex; align-items:center; gap:11px; font-size:.91rem; color:#454c56; margin-bottom:29px; }
.greeting-line { width:25px; height:2px; background:#252d38; }
.hero-personal h1 { max-width:none; font-size:clamp(44px,4.65vw,65px); line-height:1.08; font-weight:500; letter-spacing:-.06em; }
.work-highlight { position:relative; white-space:nowrap; color:#203b57; }
.work-highlight::after { content:""; position:absolute; left:0; right:0; bottom:3px; height:9px; background:#b6c5a555; z-index:-1; transform:rotate(-1deg); }
.hero-personal .hero-description { max-width:46ch; color:#59616a; font-size:1.02rem; line-height:1.75; margin-top:26px; }
.hero-now { max-width:45ch; font-size:.94rem; line-height:1.75; color:#646b73; margin-top:17px; }
.hero-now a { border-bottom:1px solid #94a486; color:#26362a; font-weight:500; }
.hero-now strong { font-weight:500; color:#353d46; }
.hero-personal .hero-actions { margin-top:29px; gap:26px; }
.hero-work-button { color:#f8f8f5; background:#252d34; border:1px solid #252d34; border-radius:5px; padding:12px 21px; min-height:47px; box-shadow:0 2px 1px #141d3112; font-size:.82rem; }
.hero-work-button:hover { background:#3e4944; border-color:#3e4944; }
.hero-connect { font-size:.84rem; border-bottom:1px solid #b7bdba; padding-block:7px; color:#414a48; }
.hero-connect:hover { border-color:#26362a; }
.hero-practice { margin-top:38px; max-width:440px; }
.practice-options { display:flex; gap:5px; align-items:center; }
.practice-options button { border:1px solid transparent; padding:6px 10px; border-radius:4px; font-size:.72rem; background:none; color:#646c75; transition:background .2s,color .2s,border-color .2s; }
.practice-options button:first-child { margin-left:-10px; }
.practice-options button[aria-pressed=true] { background:#e9ede5; color:#334332; border-color:#d8dfd2; }
.practice-options button:hover { background:#edf0e9; }
.hero-practice p { font-size:.76rem; color:#616b66; margin-top:12px; max-width:43ch; min-height:40px; line-height:1.65; }

.hero-footnote { grid-column:1/-1; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px 25px; border-top:1px solid #dfe2da; padding-block:22px; margin-top:40px; color:#6b746b; font-size:.72rem; }

/* Inspora study: graphic surfaces, restrained framing, purposeful motion. */
.hero-personal { background:#fafafa; padding-top:58px; }
.hero-canvas { gap:25px 58px; }
.hero-intro { padding-block:8px 18px; }
.hero-greeting { margin-bottom:28px; }
.hero-personal h1 { font-size:clamp(44px,4.35vw,62px); letter-spacing:-.06em; }
.work-highlight { color:#263b78; }
.work-highlight::after { height:6px; background:#c4cef052; }
.hero-now a { color:#2e4279;border-color:#b5bfdc; }
.hero-work-button { background:#242629; border-color:#242629; border-radius:4px; box-shadow:none; }
.practice-options button[aria-pressed=true] { background:#e8ebf4; color:#35446b; border-color:#d3daec; }
.practice-options button:hover { background:#eef0f7; }
.hero-practice p { color:#5e687b; }
.hero-gallery { display:flex; flex-direction:column; min-height:0; padding:0; width:100%; max-width:100%; isolation:auto; }
.hero-gallery .natural-portrait { position:relative; width:100%; max-width:none; margin:0; padding:0; transform:none; border:0; border-radius:5px; overflow:hidden; box-shadow:none; transition:none; z-index:auto; }
.hero-gallery .natural-portrait:hover { transform:none;box-shadow:none; }
.hero-gallery .natural-portrait img { width:100%; height:auto; aspect-ratio:2.05; object-fit:cover; object-position:50% 12%; }
.hero-gallery .natural-portrait::after { content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#111319b3);pointer-events:none; }
.hero-gallery .natural-portrait figcaption { position:absolute;bottom:0;left:0;right:0;z-index:1;display:flex;justify-content:space-between;padding:17px 20px;color:#e9e9ed;font-size:.7rem; }
.hero-gallery .natural-portrait figcaption span:first-child { color:#fff;font-family:var(--sans);font-style:normal;font-size:.85rem; }
.poster-pair { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px; }
.focus-poster { display:flex;flex-direction:column;position:relative;text-align:left;min-width:0;min-height:300px;padding:22px 20px 18px;border:1px solid transparent;border-radius:3px;overflow:visible;background:#141518;color:#fff;isolation:isolate;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease); }
.focus-poster:hover { transform:translateY(-6px);box-shadow:0 18px 25px -18px #12172d70; }
.focus-poster:active { transform:translateY(-2px); }
.poster-product { background:linear-gradient(155deg,#171c4c 0%,#292c80 43%,#4b58d4 100%); }
.poster-operations { background:linear-gradient(140deg,#17181c,#25262c); }
.poster-header { display:flex;align-items:center;gap:6px;position:relative;z-index:2;font-size:.83rem;font-weight:500;letter-spacing:-.03em; }
.poster-header small { margin-left:auto;opacity:.5;font-size:.52rem;font-weight:400;letter-spacing:.03em; }
.poster-monogram { font-size:1.2rem;font-weight:600;line-height:1;margin-right:2px; }
.operations-mark { display:flex;align-items:center;gap:2px;width:16px;height:14px; }.operations-mark i { width:3px;height:13px;transform:skewY(-35deg);background:#fff; }.operations-mark i:nth-child(2) { height:8px; }.operations-mark i:last-child { height:4px; }
.strand-field { position:absolute;top:15px;left:0;width:100%;height:235px;z-index:0;overflow:hidden;mask-image:linear-gradient(#000 35%,transparent 100%);opacity:.6;transition:opacity .5s,transform .8s var(--ease); }
.strand-base { stroke:#b8bfff;stroke-width:.65;opacity:.24; }
.strand-motion { stroke:#e3e5ff;stroke-width:1;stroke-dasharray:18 390;animation:strand-run 8s linear infinite;animation-delay:calc(var(--strand)*-115ms);opacity:.6; }
.poster-operations .strand-base { stroke:#d2d4dd;opacity:.18; }.poster-operations .strand-motion { stroke:#f2f2f7;opacity:.4; }
.focus-poster:hover .strand-field,.focus-poster.is-active .strand-field { opacity:1;transform:translateY(-4px); }
.focus-poster:hover .strand-motion { animation-duration:5s; }
.poster-copy { display:flex;flex-direction:column;position:relative;z-index:2;margin-top:auto;padding-top:112px;gap:9px;pointer-events:none; }
.poster-copy strong { font-size:clamp(20px,1.9vw,27px);font-weight:400;letter-spacing:-.035em;line-height:1.15; }
.poster-copy > span { font-size:.69rem;color:#e0e1fa;line-height:1.55;max-width:24ch; }
.poster-operations .poster-copy > span { color:#bfc0ca; }
.poster-footer { display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2;font-size:.53rem;color:#e3e5ff;margin-top:20px;gap:5px; }
.poster-operations .poster-footer { color:#bfc0ca; }
.poster-footer i { width:5px;height:5px;border:1px solid currentColor;border-radius:50%; }.is-active .poster-footer i { background:currentColor;box-shadow:0 0 0 3px #ffffff15; }
.selection-corner { position:absolute;width:8px;height:8px;border-color:#636f9e;border-style:solid;opacity:0;transition:opacity .25s;pointer-events:none; }
.c-tl { top:-5px;left:-5px;border-width:1px 0 0 1px; }.c-tr { top:-5px;right:-5px;border-width:1px 1px 0 0; }.c-bl { bottom:-5px;left:-5px;border-width:0 0 1px 1px; }.c-br { bottom:-5px;right:-5px;border-width:0 1px 1px 0; }
.focus-poster:hover .selection-corner,.focus-poster.is-active .selection-corner { opacity:1; }
.gallery-caption { display:flex;justify-content:space-between;gap:10px;margin-top:17px;font-size:.62rem;color:#7a7e88; }
.hero-footnote { border-color:#e0e2e8;color:#737984;margin-top:37px; }
@keyframes strand-run { to { stroke-dashoffset:-408; } }
@media(max-width:1050px) { .hero-canvas { gap:20px 37px; }.hero-personal h1 { font-size:48px; }.focus-poster { padding:18px 16px;min-height:285px; }.poster-copy strong { font-size:22px; }.poster-header { font-size:.73rem; }.poster-copy > span { font-size:.65rem; }.poster-footer { font-size:.49rem; } }
@media(max-width:800px) { .hero-canvas { grid-template-columns:minmax(0,1fr); }.hero-personal { padding-top:35px; }.hero-personal h1 { font-size:clamp(43px,7.6vw,62px); }.hero-gallery { width:100%;max-width:550px;justify-self:center;margin-top:12px; }.focus-poster { min-height:315px;padding:24px 22px; }.poster-copy strong { font-size:27px; }.poster-copy > span { font-size:.75rem; }.poster-footer { font-size:.6rem; }.hero-gallery .natural-portrait img { aspect-ratio:1.75; } }
@media(max-width:480px) { .hero-personal { padding-top:22px; }.hero-personal h1 { font-size:clamp(34px,8.9vw,43px); }.hero-gallery { padding:0;min-height:0;margin-top:10px; }.hero-gallery .natural-portrait { max-width:none;width:100%; }.hero-gallery .natural-portrait img { aspect-ratio:1.4;object-position:50% 15%; }.hero-gallery .natural-portrait figcaption { padding:15px 16px; }.hero-gallery .natural-portrait figcaption span:first-child { font-size:.78rem; }.hero-gallery .natural-portrait figcaption > span:last-child { font-size:.65rem; }.poster-pair { gap:12px;margin-top:12px; }.focus-poster { padding:17px 13px 15px;min-height:265px; }.poster-header { font-size:.66rem;gap:4px; }.poster-header small { font-size:.45rem; }.poster-monogram { font-size:1rem; }.poster-copy { padding-top:95px;gap:8px; }.poster-copy strong { font-size:21px; }.poster-copy > span { font-size:.61rem;line-height:1.5; }.poster-footer { margin-top:17px;font-size:.43rem; }.strand-field { height:205px; }.gallery-caption { font-size:.57rem;margin-top:14px; }.hero-footnote { margin-top:25px; } }
@media(max-width:360px) { .focus-poster { padding:15px 10px;min-height:253px; }.poster-copy strong { font-size:19px; }.poster-header { font-size:.58rem; }.operations-mark { width:13px; }.poster-copy > span { font-size:.57rem; }.poster-footer { font-size:.4rem; } }
/* Intro + portrait: two distinct editorial panels, aligned to the approved posters. */
.hero-personal { padding-top:36px; }
.hero-canvas { align-items:stretch; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:24px 24px; }
.hero-intro { padding:34px 36px 28px; background:#f0f1f3; border:1px solid #e6e8eb; border-radius:4px; display:flex; flex-direction:column; }
.intro-topline { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.hero-greeting { display:block; margin:0; font-size:.7rem; color:#5c6572; letter-spacing:.015em; }
.intro-index { color:#737c8a; font-size:.52rem; letter-spacing:.04em; white-space:nowrap; }
.hero-personal h1 { font-size:clamp(46px,5vw,70px); font-weight:500; line-height:1.04; letter-spacing:-.065em; margin-top:50px; }
.work-highlight { color:#525e74; white-space:nowrap; }
.work-highlight::after { display:none; }
.hero-personal .hero-description { max-width:40ch; font-size:1rem; color:#555f6e; line-height:1.75; margin-top:25px; }
.hero-now { max-width:none; margin-top:29px; display:grid; gap:15px; }
.hero-now .current-role { display:flex; align-items:center; gap:11px; border:0; padding:0; color:inherit; }
.role-mark { display:grid; place-items:center; flex:0 0 31px; width:31px; height:33px; background:#252b35; color:#f8f8f9; font-size:1.16rem; font-weight:500; border-radius:5px; }
.role-mark-industrial { background:#e0e4ed; color:#626e88; font-size:.56rem; letter-spacing:.03em; }
.current-role > span:last-child { display:flex;flex-direction:column;gap:2px; }
.current-role small { color:#6b7481; font-size:.62rem; }
.hero-now .current-role strong { color:#333e4d; font-size:.77rem; font-weight:500; line-height:1.4; }
a.current-role:hover strong { color:#384d89; }
.hero-personal .hero-actions { margin-top:28px; gap:21px; }
.hero-work-button { padding:12px 19px; min-height:44px; font-size:.77rem; }
.hero-connect { font-size:.77rem; }
.hero-practice { max-width:none; border-top:1px solid #d9dee5; margin-top:auto; padding-top:20px; }
.hero-actions + .hero-practice { margin-top:30px; }
.practice-options { display:inline-flex; padding:3px; gap:2px; border-radius:6px; background:#e5e8ed; }
.practice-options button { font-size:.65rem; border-radius:4px; padding:6px 11px; color:#667182; }
.practice-options button:first-child { margin-left:0; }
.practice-options button[aria-pressed=true] { background:#fff; border-color:#d8dce3; color:#303b50; box-shadow:0 1px 2px #15223b09; }
.practice-options button:hover { background:#f5f6f8; }
.hero-practice p { font-size:.72rem; max-width:44ch; min-height:39px; line-height:1.65; margin-top:12px; color:#657084; }
.hero-gallery { align-self:start; }
.hero-gallery .natural-portrait { display:grid; grid-template-columns:.38fr .62fr; background:#e9e7e2; border-radius:3px; border:1px solid #e2e0d9; }
.hero-gallery .natural-portrait::after { display:none; }
.hero-gallery .natural-portrait img { grid-column:2; grid-row:1; width:100%; height:100%; min-height:0; aspect-ratio:1; object-fit:cover; object-position:50% 50%; transition:filter .5s; }
.hero-gallery .natural-portrait figcaption { position:relative; grid-column:1; grid-row:1; inset:auto; display:flex; flex-direction:column; justify-content:flex-start; align-items:start; padding:24px 21px; gap:0; color:#333a3c; }
.hero-gallery .natural-portrait figcaption .portrait-card-label { font-size:.58rem; font-family:var(--sans); font-style:normal; color:#737872; line-height:1.5; }
.hero-gallery .natural-portrait figcaption .portrait-card-name { font-family:var(--sans); font-style:normal; font-size:clamp(25px,2.65vw,37px); font-weight:500; color:#333a37; letter-spacing:-.055em; line-height:1.04; margin-top:22px; }
.hero-gallery .natural-portrait figcaption .portrait-card-location { display:flex; flex-direction:column; color:#626a62; font-size:.7rem; line-height:1.4; margin-top:auto; padding-top:18px; }
.portrait-card-location small { display:block; font-size:.53rem; color:#7b8278; margin-bottom:5px; }
.portrait-card-index { font-size:.43rem; letter-spacing:.09em; color:#7e857b; margin-top:14px; }
.hero-footnote { margin-top:12px; padding-block:20px; }
@media(max-width:1200px) { .hero-intro { padding:30px 28px 25px; }.hero-personal h1 { font-size:60px; }.hero-gallery .natural-portrait figcaption { padding:21px 17px; }.hero-gallery .natural-portrait figcaption .portrait-card-name { font-size:31px; }.hero-gallery .natural-portrait figcaption .portrait-card-location { font-size:.65rem; } }
@media(max-width:1050px) { .hero-canvas { gap:20px; }.hero-intro { padding:27px 24px 24px; }.hero-personal h1 { font-size:52px;margin-top:42px; }.hero-greeting { font-size:.6rem; }.intro-index { font-size:.46rem; }.hero-personal .hero-description { font-size:.9rem; }.hero-now .current-role strong { font-size:.68rem; }.current-role small { font-size:.56rem; }.hero-gallery .natural-portrait { grid-template-columns:.39fr .61fr; }.hero-gallery .natural-portrait figcaption { padding:17px 14px; }.hero-gallery .natural-portrait figcaption .portrait-card-name { font-size:27px;margin-top:16px; }.hero-gallery .natural-portrait figcaption .portrait-card-label { font-size:.48rem; }.hero-gallery .natural-portrait figcaption .portrait-card-location { font-size:.6rem;padding-top:15px; }.portrait-card-index { font-size:.39rem;margin-top:11px; }.hero-practice p { font-size:.66rem; } }
@media(max-width:800px) { .hero-personal { padding-top:24px; }.hero-canvas { grid-template-columns:minmax(0,1fr);gap:18px; }.hero-intro { padding:30px; }.hero-personal h1 { font-size:clamp(51px,8.7vw,68px);margin-top:35px; }.hero-greeting { font-size:.7rem; }.intro-index { font-size:.52rem; }.hero-personal .hero-description { font-size:1rem;max-width:47ch; }.hero-now { grid-template-columns:1fr 1fr;gap:18px; }.hero-now .current-role strong { font-size:.73rem; }.current-role small { font-size:.6rem; }.hero-practice p { font-size:.74rem;min-height:25px; }.hero-gallery { margin-top:0;max-width:none; }.hero-gallery .natural-portrait { grid-template-columns:.4fr .6fr; }.hero-gallery .natural-portrait img { aspect-ratio:1.2; }.hero-gallery .natural-portrait figcaption { padding:27px; }.hero-gallery .natural-portrait figcaption .portrait-card-name { font-size:42px; }.hero-gallery .natural-portrait figcaption .portrait-card-label { font-size:.66rem; }.hero-gallery .natural-portrait figcaption .portrait-card-location { font-size:.82rem; }.portrait-card-location small { font-size:.6rem; }.portrait-card-index { font-size:.52rem; } }
@media(max-width:480px) { .hero-personal { padding-top:15px; }.hero-intro { padding:25px 22px 22px; }.intro-topline { gap:10px; }.hero-greeting { font-size:.58rem; }.intro-index { font-size:.44rem; }.hero-personal h1 { font-size:clamp(34px,10.2vw,43px);margin-top:32px; }.hero-personal .hero-description { font-size:.9rem;line-height:1.7;margin-top:22px; }.hero-now { grid-template-columns:1fr;margin-top:24px;gap:14px; }.hero-now .current-role strong { font-size:.72rem; }.current-role small { font-size:.58rem; }.hero-personal .hero-actions { gap:20px;margin-top:25px; }.hero-work-button { font-size:.72rem;padding:11px 15px; }.hero-connect { font-size:.73rem; }.hero-actions + .hero-practice { margin-top:25px; }.hero-practice { padding-top:17px; }.hero-practice p { font-size:.67rem;min-height:40px; }.practice-options button { font-size:.62rem;padding:6px 10px; }.hero-gallery .natural-portrait { grid-template-columns:.4fr .6fr; }.hero-gallery .natural-portrait img { aspect-ratio:.88; }.hero-gallery .natural-portrait figcaption { padding:19px 15px; }.hero-gallery .natural-portrait figcaption .portrait-card-label { font-size:.5rem; }.hero-gallery .natural-portrait figcaption .portrait-card-name { font-size:30px;margin-top:18px; }.hero-gallery .natural-portrait figcaption .portrait-card-location { font-size:.65rem; }.portrait-card-location small { font-size:.51rem; }.portrait-card-index { font-size:.42rem;margin-top:11px; }.hero-footnote { margin-top:7px; } }
@media(max-width:360px) { .hero-intro { padding-inline:17px; }.hero-personal h1 { font-size:33px; }.hero-greeting { font-size:.52rem; }.intro-index { font-size:.4rem; }.hero-gallery .natural-portrait figcaption { padding:17px 12px; }.hero-gallery .natural-portrait figcaption .portrait-card-name { font-size:26px; } }
.hero-gallery .natural-portrait figcaption .portrait-card-label:first-child { color:#60665f; font-family:var(--sans);font-style:normal;font-size:.62rem; }
.hero-gallery .natural-portrait figcaption .portrait-card-index:last-child { color:#60685e;font-size:.47rem; }
.portrait-card-location small { color:#62695e; }
@media(max-width:480px) { .hero-gallery .natural-portrait figcaption .portrait-card-label:first-child { font-size:.58rem; }.hero-gallery .natural-portrait figcaption .portrait-card-index:last-child { font-size:.44rem; } }
@media(prefers-reduced-motion:reduce) { .strand-motion { animation:none; }.focus-poster,.strand-field,.selection-corner { transition:none; }.focus-poster:hover { transform:none; } }

/* The introduction belongs to a person, not a services category. */
.hero-intro { justify-content:center; padding-block:54px; }
.hero-personal h1 { margin-top:0; font-size:clamp(54px,5.6vw,80px); letter-spacing:-.065em; }
.hero-personal .hero-description { font-size:1.05rem; max-width:38ch; line-height:1.75; margin-top:27px; }
.hero-now { margin-top:34px; }
.site-header .brand { font-weight:500; font-size:1rem; }
.poster-monogram img { width:24px;height:24px;border-radius:5px; }
@media(max-width:1050px) { .hero-personal h1 { font-size:60px; }.hero-personal .hero-description { font-size:.94rem; } }
@media(max-width:800px) { .hero-intro { padding-block:44px; }.hero-personal h1 { font-size:68px; }.hero-personal .hero-description { max-width:48ch; } }
@media(max-width:480px) { .hero-intro { padding-block:36px; }.hero-personal h1 { font-size:clamp(43px,13vw,56px); }.hero-personal .hero-description { font-size:.94rem; margin-top:22px; }.hero-now { margin-top:27px; } }
