/* Connected committee presentation; content stays visible without JavaScript. */
#committee, #advisory { background: radial-gradient(ellipse at 80% 15%, #6657dd12, transparent 45%), #0e1015; }
.tree-root { position: relative; z-index: 1; width: fit-content; margin: 0 auto 56px; display: flex; gap: 18px; align-items: center; padding: 18px 30px; border: 1px solid #666077; border-radius: 60px; background: linear-gradient(135deg,#30303c,#13151c); box-shadow: 0 0 50px #8874ed14, inset 0 1px #ffffff24; }
.tree-root-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #8270ee; color: white; font-size: 28px; }
.tree-root strong { display: block; font-size: 1.25rem; letter-spacing: .04em; }
.tree-root small { color: #bec2cf; font-size: .72rem; }
.hv-directory { position: relative; isolation: isolate; padding-left: 48px; }
.tree-wires { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: -1; }
.tree-wire { fill: none; stroke: #656477; stroke-width: 1.3; }
.tree-pulse { fill: none; stroke: #b6a9ff; stroke-width: 2; stroke-dasharray: 14 86; filter: drop-shadow(0 0 5px #9c84ff); animation: tree-flow 5s linear infinite; }
.hv-group { position: relative; display: block; padding: 0 0 64px; border: 0; }
.hv-group-intro { position: relative; width: fit-content; max-width: 100%; padding: 20px 28px; margin-bottom: 40px; border: 1px solid #4a465c; border-radius: 16px; background: linear-gradient(125deg,#2b2938ee,#14171fee); box-shadow: inset 0 1px #ffffff15; }
.hv-group-index { margin-bottom: 8px; color: #b9aaff; }
.hv-group-intro h3 { font-size: 1.3rem; }
.hv-group-description { max-width: none; margin-top: 10px; }
.hv-members { gap: 36px 28px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.hv-cell, #advisory .member-card { position: relative; border-radius: 20px; border: 1px solid #484553; background: linear-gradient(145deg,#24242ee8,#11141be8); box-shadow: inset 0 1px #ffffff18, 0 14px 35px #0003; transition: border-color .3s, box-shadow .3s; }
.hv-cell:hover, #advisory .member-card:hover { border-color: #ab98ef; box-shadow: 0 0 35px #8b75ef20; }
.hv-cell .hv-portrait-panel { padding: 24px 24px 0; background: radial-gradient(ellipse at 50% 70%,#5c54754a,transparent 70%); }
.hv-cell .hv-pt { background: transparent; aspect-ratio: 1.1; }
.hv-cell .hv-pt:has(.hv-photo) { aspect-ratio: 1.1; }
.hv-cell .hv-copy { position: relative; padding: 20px 24px 26px; min-height: 110px; background: linear-gradient(120deg,#ffffff08,#ffffff02); border-top: 1px solid #ffffff12; }
.hv-cell .hv-name { font-size: 1.2rem; }
.hv-cell .hv-role { color: #7edddf; }
.advisors-grid { position: relative; padding-top: 38px; }
.advisors-grid::before { content: ''; position: absolute; top: 0; left: 10%; right: 10%; height: 1px; background: linear-gradient(90deg,#6657dd55,#c2b5ff,#6657dd55); }
#advisory .member-card { overflow: visible; }
#advisory .member-card::before { content: ''; position: absolute; width: 1px; height: 38px; top: -39px; left: 50%; background: #83799b; }
#advisory .portrait-shell { border-radius: 20px 20px 0 0; background: transparent; }
.tree-enter { animation: tree-arrive .85s cubic-bezier(.2,.7,.2,1) both; }
@keyframes tree-arrive { from { opacity: .25; transform: translateY(38px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes tree-flow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@media(max-width:760px) {
 .tree-root { margin-bottom: 36px; padding: 14px 22px; }
 .hv-directory { padding-left: 22px; }
 .hv-group-intro { padding: 16px 18px; margin-bottom: 30px; }
 .hv-group-intro h3 { font-size: 1.12rem; }
 .hv-members, .hv-group:not(.hv-group-governance) .hv-members { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 12px; }
 .hv-cell .hv-portrait-panel { padding: 12px 8px 0; }
 .hv-cell .hv-pt, .hv-cell .hv-pt:has(.hv-photo) { aspect-ratio: .8; }
 .hv-cell .hv-copy { padding: 15px 12px 18px; }
 .hv-cell .hv-name { font-size: .95rem; }
 .hv-cell .hv-role { font-size: .59rem; }
 .hv-group { padding-bottom: 42px; }
 .advisors-grid { row-gap: 38px; }
}
@media(prefers-reduced-motion:reduce) {
 .tree-pulse, .tree-enter { animation: none; }
 .tree-pulse { display: none; }
 .hv-cell, #advisory .member-card { transition: none; }
}

/* Hierarchy: identity > governance > portfolio > person. */
.tree-root { flex-direction: column; gap: 10px; border-radius: 24px; padding: 22px 34px; }
.tree-root img { display: block; width: 230px; height: auto; }
.hv-directory { padding-inline: 36px; }
.hv-group-intro { margin-inline: auto; text-align: center; }
.hv-group-description { max-width: 440px; }
@media(max-width:760px) {
 .hv-directory { padding-inline: 20px; }
 .tree-root img { width: 195px; }
 .hv-group-intro { padding-inline: 14px; }
}
.hv-group-professional .hv-members { display: flex; justify-content: center; }
.hv-group-professional .hv-cell { width: calc((100% - 56px) / 3); }
@media(max-width:760px) { .hv-group-professional .hv-cell { width: calc((100% - 12px) / 2); } }
/* Reference proportions: prominent officers, compact supporting team. */
.hv-group-governance .hv-members { max-width:1000px; margin-inline:auto; }
.hv-members { display:flex; flex-wrap:wrap; justify-content:center; gap:36px 20px; }
.hv-cell { flex:none; width:calc((100% - 40px)/3); }
.hv-cell .hv-copy { min-height:0; padding:18px 20px 22px; background:transparent; border:0; }
.hv-cell .hv-name { margin-bottom:8px; }
.hv-cell .hv-role { text-transform:none; letter-spacing:0; color:#b4a2ff; font-size:.78rem; margin:0; }
.hv-cell .hv-portrait-panel { padding:0; }
.hv-cell .hv-pt:has(.hv-photo) { aspect-ratio:.92; }
.hv-cell .hv-photo { object-fit:cover!important; object-position:center top!important; }
.hv-cell .hv-portrait-panel { mask-image:linear-gradient(#000 83%,transparent); }
.hv-group-governance .hv-cell .hv-name { font-family:Georgia,serif; font-size:1.4rem; }
.hv-group:not(.hv-group-governance) .hv-members { max-width:800px; margin-inline:auto; }
.hv-group:not(.hv-group-governance) .hv-cell { width:calc((100% - 40px)/3); }
.hv-group:not(.hv-group-governance) .hv-name { font-size:1rem; }
.hv-group:not(.hv-group-governance) .hv-copy { padding:14px 16px 20px; }
.hv-group:not(.hv-group-governance) .hv-pt { aspect-ratio:1.05; }
.hv-group:not(.hv-group-governance) .hv-pt:has(.hv-photo) { aspect-ratio:1.05; }
.advisors-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:28px 22px; padding-top:0; max-width:1080px; margin-inline:auto; }
#advisory .member-card { width:calc((100% - 44px)/3); }
.advisors-grid::before, #advisory .member-card::before { display:none; }
.hv-cell, #advisory .member-card { transition:scale .25s ease,box-shadow .25s ease,border-color .25s ease; transform-origin:center; }
.hv-cell:focus-visible, #advisory .member-card:focus-visible { outline:2px solid #b8a4ff; outline-offset:4px; scale:1.04; z-index:3; box-shadow:0 18px 45px #0009; }
@media(hover:hover) {
 .hv-cell:hover, #advisory .member-card:hover { scale:1.055; z-index:3; border-color:#c3adff; box-shadow:0 18px 45px #0009; }
 .hv-cell:hover .hv-copy, #advisory .member-card:hover .member-copy { background:#a98eff0b; }
}
@media(max-width:760px) {
 .hv-members, .hv-group:not(.hv-group-governance) .hv-members { gap:28px 12px; }
 .hv-cell, .hv-group:not(.hv-group-governance) .hv-cell { width:calc((100% - 12px)/2); }
 .hv-group-governance .hv-cell { width:100%; max-width:320px; }
 .hv-cell .hv-copy { padding:16px; }
 .hv-group:not(.hv-group-governance) .hv-copy { padding:12px 10px 18px; }
 .hv-group:not(.hv-group-governance) .hv-name { font-size:.9rem; }
 .hv-cell .hv-role { font-size:.72rem; }
 #advisory .member-card { width:calc((100% - 14px)/2); }
 .advisors-grid { gap:24px 14px; }
}
@media(max-width:420px) { #advisory .member-card { width:100%; max-width:310px; } }
@media(prefers-reduced-motion:reduce) { .hv-cell,#advisory .member-card { transition:none; } }

/* Keep breathing room above heads without changing the portrait panels. */
.hv-cell .hv-photo { transform: translateY(18px); transform-origin: center top; }
.hv-group-governance .hv-cell .hv-photo { transform: translateY(58px); }
.hv-group-professional .hv-photo,
.hv-group-support .hv-photo,
.hv-group-membership .hv-photo,
.hv-group-events .hv-photo { transform: translateY(30px) scale(1.3); }

/* Org-chart shape: the President heads the leadership group on his own row,
   with the Secretary, Committee Coordinator and Treasurer beneath him. Every
   portfolio below hangs off the Committee Coordinator (wired in hive.js). */
.hv-group-governance .hv-members { row-gap:64px; }
.hv-group-governance .hv-chief { margin-inline:calc((100% - (100% - 40px) / 3) / 2); }
.hv-group-professional .hv-members { display:flex; justify-content:center; }
.hv-group-professional .hv-cell { width:calc((100% - 56px) / 3); }
.hv-group-support .hv-members { max-width:800px; margin-inline:auto; }
@media(max-width:760px) {
 .hv-group-professional .hv-cell { width:calc((100% - 12px) / 2); }
 .hv-group-governance .hv-members { row-gap:44px; column-gap:12px; }
 .hv-group-governance .hv-chief { margin-inline:0; }
 .hv-group-governance .hv-cell:not(.hv-chief, .hv-hub) { width:calc((100% - 12px) / 2); max-width:none; }
 .hv-group-governance .hv-cell:not(.hv-chief, .hv-hub) .hv-name { font-size:1.05rem; }
 .hv-group-governance .hv-hub { order:1; }
}

/* The last branch closes the committee section; its own bottom padding plus the
   section's stacked a double gap above the Advisory divider. Keep one. */
#committee.hv-section { padding-bottom: 0; }
#committee .hv-group:last-of-type { padding-bottom: 40px; }
@media (max-width: 760px) {
 #committee .hv-group:last-of-type { padding-bottom: 28px; }
}

/* LinkedIn profile link on each card: a quiet corner mark that lights up on hover. */
.hv-cell .hv-copy, #advisory .member-copy { position: relative; }
.li-link { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; color: #9aa3b8; background: #ffffff0d; border: 1px solid #ffffff1f; transition: color .2s, background .2s, border-color .2s; }
.li-link:hover { color: #fff; background: #0a66c2; border-color: #0a66c2; }
.li-link:focus-visible { outline: 3px solid var(--brand-teal-ink, #63d3e2); outline-offset: 2px; }
.hv-cell .hv-copy:has(.li-link) { padding-right: 52px; }
#advisory .member-copy:has(.li-link) { padding-bottom: 52px; }
@media (max-width: 760px) {
 .li-link { width: 26px; height: 26px; right: 8px; bottom: 8px; }
 .hv-cell .hv-copy:has(.li-link) { padding-right: 40px; }
}

/* Officer cards share a row: when one name wraps and another does not, pin the
   role line to the bottom of the card so the three titles stay level. */
.hv-group-governance .hv-cell { display: flex; flex-direction: column; }
.hv-group-governance .hv-cell .hv-copy { flex: 1; display: flex; flex-direction: column; }
.hv-group-governance .hv-cell .hv-role { margin-top: auto; }

/* Open position: the crest stands in for a portrait until the role is filled. */
.hv-vacant .hv-pt { display: grid; place-items: center; }
.hv-vacant .hv-vacant-crest { width: 58%; height: auto; opacity: .88; filter: drop-shadow(0 8px 22px #0008); }
.hv-vacant .hv-name { color: var(--ink-2, #c3cad6); font-style: italic; }
.hv-vacant { border-style: dashed; }
