.mini-profile-photo{grid-column:1/-1;width:100%;height:300px;object-fit:cover;object-position:50% 25%;margin-bottom:25px}
.people-section-title{font-size:clamp(2rem,3.4vw,3rem);margin-bottom:38px}
.team-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.team-card{position:relative;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;min-width:0;scroll-margin-top:24px}
.team-card-photo{aspect-ratio:4/3;position:relative;display:flex;align-items:center;justify-content:center;background:#e7ede5;border-bottom:1px solid var(--line);overflow:hidden;flex-shrink:0}
.team-card-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.team-card-photo img{filter:grayscale(1)}
.team-card:has(.profile-details[open]) .team-card-photo img{filter:grayscale(0)}
.team-card-photo .profile-full{display:none}
.team-card:has(.profile-details[open]) .team-card-photo .profile-thumbnail{display:none}
.team-card:has(.profile-details[open]) .team-card-photo .profile-full{display:block}
.team-card:has(.profile-details[open]) .team-card-photo.profile-photo-pending .profile-thumbnail{display:block}
.team-card:has(.profile-details[open]) .team-card-photo.profile-photo-pending .profile-full{display:none}
.empty-photo-label{font-size:.875rem;color:#5b6c59;border:1px dashed #9bab96;padding:12px 27px}
.profile-initials{font-size:clamp(3.5rem,6vw,6rem);font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--green)}
.template-label{position:absolute;left:16px;top:16px;background:#f8faf6;color:#486243;border:1px solid #cfdbca;padding:4px 10px;font-size:.75rem;letter-spacing:.03em}
.team-card-heading{padding:23px 22px 15px;flex:1}
.team-card h3{font-size:1.5rem}
.team-card .profile-role{font-size:.875rem;line-height:1.5;min-height:3em;margin-top:10px}
.empty-field{color:#65715f}
.team-card .profile-details{border:0;border-top:1px solid var(--line);margin:0 22px}
.team-card .profile-details summary{font-size:.875rem;font-weight:500;line-height:1.5;padding:14px 0;gap:12px;min-height:64px;align-items:center}
.team-card .profile-details summary .profile-toggle-text{font-size:inherit;color:inherit}
.team-card .profile-details summary .profile-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border:1px solid var(--green);border-radius:50%;background:var(--pale);color:var(--green);font-size:1.5rem;font-weight:500;line-height:1;transition:transform .35s cubic-bezier(.22,1,.36,1),background-color .18s,color .18s}
.team-card .profile-details[open] summary .profile-toggle-icon,.team-card .profile-details summary:is(:hover,:focus-visible) .profile-toggle-icon{background:var(--green);color:white}
.profile-expanded-content{padding:0 0 26px;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:36px;color:var(--muted)}
.profile-expanded-content .profile-intro{margin-top:0}
.profile-story h4{font-size:1rem;line-height:1.5;color:var(--ink);margin:28px 0 14px}
.profile-story p+p{margin-top:18px}
.profile-facts{margin:0;min-width:0;font-size:.94rem}
.profile-facts>div{border-top:1px solid var(--line);padding-top:16px;margin-bottom:20px}
.profile-facts>div:first-child{border-top:0;padding-top:0}
.profile-facts>div:last-child{margin-bottom:0}
.profile-facts dt{font-size:.94rem;font-weight:700;color:var(--ink)}
.profile-facts dd{margin:10px 0 0}
.profile-facts .clean-list{margin:0}
.profile-facts .clean-list li{padding-top:0;padding-bottom:12px;border:0}
.profile-facts .clean-list li:before{top:11px}
.team-card:has(.profile-details[open]){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2.5fr);align-items:start;border-top:3px solid var(--green)}
.team-card:has(.profile-details[open]) .team-card-photo{grid-column:1;grid-row:1/3;width:100%;aspect-ratio:4/5;border-bottom:0}
.team-card:has(.profile-details[open]) .team-card-photo img{object-position:center 30%}
#simo-vainio:has(.profile-details[open]) .team-card-photo img{object-position:center top}
.team-card:has(.profile-details[open]) .team-card-heading{grid-column:2;padding:28px 82px 14px 32px}
.team-card:has(.profile-details[open]) h3{font-size:2.4rem}
.team-card:has(.profile-details[open]) .profile-role{min-height:0;font-size:1rem}
.team-card:has(.profile-details[open]) .profile-details{grid-column:2;margin:0 32px;border-top:0}
/* The open control occupies the card corner, leaving no redundant summary row. */
.team-card .profile-details[open] summary{position:absolute;top:14px;right:14px;z-index:2;width:44px;height:44px;min-height:44px;padding:0;gap:0;justify-content:center;border-radius:50%;background:white;box-shadow:0 0 0 3px white}
.team-card .profile-details[open] summary .profile-toggle-text{display:none}
.team-card .profile-details[open] summary .profile-toggle-icon{width:44px;height:44px}
.team-card{view-transition-class:profile-card}
.team-card-photo{view-transition-class:profile-photo}
.team-card-heading,.team-card .profile-details{view-transition-class:profile-copy}
.team-card .profile-details summary{view-transition-class:profile-control}
/* Move the card, portrait and copy independently so the text and face never stretch. */
html.profile-transition{overflow-anchor:none}
html.profile-transition::view-transition{pointer-events:none}
html.profile-transition::view-transition-group(*){animation-duration:.46s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
html.profile-transition::view-transition-old(root){display:none}
html.profile-transition::view-transition-new(root){animation:none}
html.profile-transition::view-transition-image-pair(.profile-photo),html.profile-transition::view-transition-image-pair(.profile-copy){height:100%;overflow:clip}
html.profile-transition::view-transition-old(.profile-photo),html.profile-transition::view-transition-new(.profile-photo){height:100%;object-fit:cover;object-position:center top;animation-duration:.46s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
html.profile-transition::view-transition-old(.profile-copy),html.profile-transition::view-transition-new(.profile-copy){height:100%;object-fit:none;object-position:left top}
html.profile-transition::view-transition-old(.profile-copy){animation:profile-copy-out .16s ease-out both}
html.profile-transition::view-transition-new(.profile-copy){animation:profile-copy-in .3s .1s ease-out both}
@keyframes profile-copy-out{to{opacity:0}}
@keyframes profile-copy-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.profile-transition::view-transition-group(*),html.profile-transition::view-transition-old(*),html.profile-transition::view-transition-new(*){animation:none!important}}
@media(max-width:1150px){.team-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-expanded-content{grid-template-columns:1fr;gap:28px}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px}.team-card:has(.profile-details[open]){grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
@media(max-width:700px){.team-card-grid{grid-template-columns:1fr;gap:24px}.team-card-heading{padding:22px 24px 15px}.team-card .profile-details{margin-inline:24px}.team-card:has(.profile-details[open]){display:flex}.team-card:has(.profile-details[open]) .team-card-photo{aspect-ratio:1;max-height:400px}.team-card:has(.profile-details[open]) .team-card-heading{padding:24px 24px 14px}.team-card:has(.profile-details[open]) h3{font-size:2rem}.team-card:has(.profile-details[open]) .profile-details{margin-inline:24px}.profile-facts{display:block}.mini-profile-photo{height:280px}}
