/* Third biography: a left-anchored composition and continuous organic panel. */
.bio-section { --bio-paper:#ece1d5; --bio-sage:#8d947d; --bio-ink:#23372b; --bio-accent:#a9523d; position:relative; overflow:hidden; background:var(--bio-sage); }
.bio-frame { position:relative; isolation:isolate; display:grid; grid-template-columns:43% 57%; align-items:center; min-height:760px; width:min(100%,1680px); margin:0 auto 0 0; padding:65px 7% 80px 0; }
.bio-panel { position:absolute; z-index:-2; inset:0 0 0 auto; width:68%; height:100%; fill:var(--bio-paper); stroke:none; }
.bio-panel-shadow { fill:#737d6c; }
.bio-portrait { position:absolute; z-index:-1; left:2%; top:3%; width:39%; height:94%; fill:none; stroke:none; overflow:visible; }
.bio-placeholder-frame { fill:var(--bio-sage); stroke:#d9c6b3; stroke-width:2; }
.bio-botanical-art { pointer-events:none; }
.bio-content { grid-column:2; min-width:0; max-width:68ch; padding-left:28px; color:var(--bio-ink); }
.bio-title { margin:0; color:var(--bio-ink); font:400 clamp(64px,6vw,96px)/.84 var(--font-display); letter-spacing:-.035em; }
.bio-title span { display:block; }
.bio-title span:first-child { font-size:.68em; line-height:1; }
.bio-title em { color:var(--bio-accent); font-size:1.08em; font-weight:500; }
.bio-rule { width:72px; height:2px; margin:28px 0 26px; background:var(--bio-accent); opacity:.8; }
.bio-copy { display:grid; gap:17px; font-size:clamp(15px,1.02vw,16.5px); line-height:1.68; text-wrap:pretty; }
.bio-copy p { margin:0; }
.bio-copy p:first-child { font-size:1.14em; line-height:1.55; color:#17271e; }
.bio-copy strong { font-weight:600; }
.bio-more-button { display:inline-flex; min-width:245px; min-height:54px; align-items:center; justify-content:center; gap:28px; margin-top:28px; padding:14px 30px; color:var(--bio-ink); background:#e4d7c8; border:0; border-radius:999px; font-size:13px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; cursor:pointer; transition:background-color 180ms ease, transform 180ms ease; }
.bio-more-button svg { width:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.bio-more-button:hover { background:#d9c8b6; transform:translateY(-1px); }
.bio-more-button:focus-visible { outline:2px solid var(--bio-ink); outline-offset:4px; }
.bio-contacts { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:24px; font-size:13px; font-style:normal; }
.bio-contacts a { display:inline-flex; min-height:44px; align-items:center; gap:8px; color:inherit; border-bottom:1px solid currentColor; text-decoration:none; }
.bio-contacts svg { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; }
.bio-contacts a:hover { text-decoration:underline; text-underline-offset:4px; }
.bio-contacts a:focus-visible { outline:2px solid var(--bio-ink); outline-offset:5px; }
.bio-content ::selection { background:var(--bio-ink); color:var(--bio-paper); }
.bio-dialog { --bio-paper:#ece1d5; --bio-ink:#23372b; --bio-accent:#a9523d; width:min(680px,calc(100% - 32px)); max-height:calc(100svh - 48px); padding:clamp(36px,6vw,64px); color:var(--bio-ink); background:var(--bio-paper); border:0; border-radius:24px; box-shadow:0 24px 80px rgb(26 42 33 / .36); }
.bio-dialog::backdrop { background:rgb(24 36 29 / .68); backdrop-filter:blur(4px); }
.bio-dialog-close { position:absolute; top:18px; right:18px; display:grid; width:42px; height:42px; place-items:center; padding:0; color:var(--bio-ink); background:#f4ebe1; border:1px solid rgb(35 55 43 / .35); border-radius:50%; cursor:pointer; }
.bio-dialog-close svg { display:block; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.bio-dialog-close:focus-visible { outline:2px solid var(--bio-ink); outline-offset:3px; }
.bio-dialog-eyebrow { margin:0 0 10px; color:#9e4935; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.bio-dialog h2 { margin:0 48px 28px 0; font:500 clamp(44px,7vw,68px)/.95 var(--font-display); }
.bio-dialog-copy { display:grid; gap:18px; font-size:15px; line-height:1.75; text-wrap:pretty; }
.bio-dialog-copy p { margin:0; }
.bio-certifications { margin-top:36px; padding-top:28px; border-top:1px solid rgb(35 55 43 / .22); }
.bio-certifications h3 { margin:0 0 8px; font:500 clamp(32px,5vw,40px)/1.1 var(--font-display); }
.bio-certifications-intro { margin:0 0 26px; font-size:14px; line-height:1.6; }
.bio-certificate { margin:0; }
.bio-certificate + .bio-certificate { margin-top:30px; }
.bio-certificate h4 { margin:0 0 6px; font-size:16px; font-weight:600; line-height:1.4; }
.bio-certificate figcaption p { margin:0 0 14px; font-size:13px; line-height:1.7; }
.bio-certificate-open { display:block; width:100%; padding:0; border:0; background:transparent; border-radius:4px; cursor:zoom-in; }
.bio-certificate img { display:block; width:100%; height:auto; border:1px solid rgb(35 55 43 / .18); background:#fff; }
.bio-certificate-open:focus-visible, .bio-certificate-back:focus-visible { outline:2px solid var(--bio-ink); outline-offset:5px; }
.bio-dialog.is-viewing-certificate { width:min(1100px,calc(100% - 32px)); padding:72px 24px 24px; }
.bio-certificate-viewer[hidden], .bio-dialog-story[hidden] { display:none; }
.bio-certificate-back { display:inline-flex; align-items:center; min-height:44px; margin:0 0 16px; padding:8px 16px; border:1px solid rgb(35 55 43 / .35); border-radius:999px; color:var(--bio-ink); background:transparent; font:inherit; cursor:pointer; }
.bio-certificate-back:hover { background:#e4d7c8; }
.bio-certificate-viewer h2 { margin:0 0 24px; font-size:clamp(28px,5vw,42px); line-height:1.1; }
.bio-certificate-full { display:block; width:100%; height:auto; background:#fff; }
@media (min-width:901px) and (max-width:1180px) {
  .bio-frame { grid-template-columns:40% 60%; padding:60px 5% 75px 0; }
  .bio-panel { width:72%; }
  .bio-portrait { left:0; width:38%; }
  .bio-content { padding-left:20px; }
}
@media (max-width:900px) {
  .bio-frame { display:flex; flex-direction:column; width:100%; min-height:0; padding:0; }
  .bio-portrait { position:relative; z-index:1; top:auto; left:auto; width:min(85%,440px); height:auto; margin:20px auto -20px 3%; }
  .bio-panel { display:none; }
  .bio-content { position:relative; width:100%; max-width:none; padding:64px max(26px,7vw) 70px; background:var(--bio-paper); border-radius:48% 52% 0 0 / 38px 32px 0 0; }
  .bio-title { font-size:68px; }
  .bio-copy { max-width:68ch; font-size:16px; line-height:1.7; }
}
@media (max-width:480px) {
  .bio-content { padding:54px 25px 60px; }
  .bio-title { font-size:60px; }
  .bio-more-button { width:100%; min-width:0; }
  .bio-contacts { flex-direction:column; align-items:flex-start; font-size:12px; }
  .bio-dialog { padding:52px 25px 32px; border-radius:18px; }
}

/* Revised greeting typography (copy reference 5). */
.bio-title span:first-child { font-family: var(--font-hand); font-weight: 500; letter-spacing: 0; }

/* The fixed photograph keeps the original portrait outline. */
.bio-portrait { aspect-ratio:780 / 1088; }
.bio-portrait-art { display:block; width:100%; height:100%; overflow:visible; }
