:root{--gold:#d4af37;--gold-hi:#f5d67b;--orange:#f26522;--bg:#141414;--card:#1b1b1b;--line:#2c2c2c;--txt:#e6e6e6;--mut:#9a9a9a}
*{box-sizing:border-box;margin:0;padding:0}body{font-family:Raleway,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt);line-height:1.6}
header.site{background:#0e0e0e;border-bottom:1px solid var(--line);padding:16px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
header.site .brand{font-weight:600;letter-spacing:2px;text-transform:uppercase;font-size:13px;color:var(--txt);text-decoration:none}header.site .brand span{color:var(--gold)}
header.site nav a{color:var(--mut);text-decoration:none;font-size:13px;letter-spacing:1px;margin-left:22px}header.site nav a:hover{color:var(--gold)}
footer.site{border-top:1px solid var(--line);padding:22px;text-align:center;color:var(--mut);font-size:12px;letter-spacing:1px}footer.site a{color:var(--gold);text-decoration:none}
.crumb{max-width:1100px;margin:22px auto 0;padding:0 24px;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mut)}.crumb a{color:var(--gold);text-decoration:none}
.member{max-width:1100px;margin:22px auto 60px;padding:0 24px;display:grid;grid-template-columns:340px 1fr;gap:40px}@media(max-width:820px){.member{grid-template-columns:1fr}}
.photo{position:relative;padding:6px}.photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;display:block}
.halo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform:rotate(-90deg)}.halo circle{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-dasharray:305;stroke-dashoffset:0}
.photo .ph,.card .ph{width:100%;aspect-ratio:1/1;background:#222;display:flex;align-items:center;justify-content:center;color:#555;font-size:34px;border-radius:50%}
.pin{position:absolute;right:6%;bottom:6%;width:78px;height:78px;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:1px;color:var(--gold);overflow:hidden;filter:drop-shadow(0 4px 8px rgba(0,0,0,.6))}
.pin img{width:100%;height:100%;object-fit:contain}
/* shine stays INSIDE the badge art: the badge itself masks the pin, so the sweep is clipped to its opaque pixels */
.pin.masked{-webkit-mask:url(member-pin.png) center/contain no-repeat;mask:url(member-pin.png) center/contain no-repeat;filter:none}@media(max-width:820px){.pin{width:88px;height:88px}}
.who h1{font-weight:400;font-size:34px;letter-spacing:1px}.who .co{color:var(--orange);font-size:17px;font-weight:500;margin-top:2px}
.seat{display:inline-block;margin-top:10px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(212,175,55,.5);padding:5px 12px;border-radius:3px;position:relative;overflow:hidden}
.contact{margin-top:22px;display:flex;flex-direction:column;gap:12px}.contact a{color:var(--txt);text-decoration:none;border:1px solid var(--line);padding:10px 16px;border-radius:4px;font-size:14px;text-align:center}
.contact a.gold{background:var(--gold);color:#111;font-weight:600;border-color:var(--gold)}.contact a:hover{border-color:var(--gold)}.contact a.sec,a.sec{color:var(--mut);font-size:13px;border-style:dashed}
.addr{margin-top:14px;font-size:13px;color:var(--mut);text-align:center}
.bio-block{margin-top:28px;border-top:1px solid var(--line);padding-top:18px}.bio-block h3{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px}.bio-block p{color:#d5d5d5;font-size:15px}
.video{margin-top:34px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#000;aspect-ratio:16/9}.video iframe{width:100%;height:100%;border:0;display:block}
.chapter-cta{margin-top:40px;border:1px solid var(--gold);border-radius:6px;padding:26px 30px;background:linear-gradient(180deg,rgba(212,175,55,.09),rgba(212,175,55,.02));text-align:center;position:relative;overflow:hidden}
.chapter-cta .k{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.chapter-cta p{color:#ddd;font-size:14.5px;max-width:640px;margin:0 auto 16px}
.chapter-cta a{display:inline-block;background:var(--gold);color:#111;padding:11px 22px;border-radius:4px;text-decoration:none;font-weight:600;letter-spacing:1px}
.dir{max-width:1100px;margin:22px auto 60px;padding:0 24px}.dir h1{font-weight:300;font-size:32px;letter-spacing:1px;text-align:center}.dir h1 span{color:var(--orange)}
.dir .rule{width:60px;height:2px;background:var(--orange);margin:10px auto 8px}.dir .lead{text-align:center;color:var(--mut);font-size:14px;max-width:640px;margin:0 auto 34px}
.tools{max-width:900px;margin:0 auto 26px}.search{position:relative;display:flex;align-items:center;background:#1b1b1b;border:1px solid var(--line);border-radius:6px;padding:0 12px;transition:border-color .25s}.search:focus-within{border-color:var(--gold)}
.search .ico{color:var(--gold);font-size:20px;margin-right:8px}.search input{flex:1;background:none;border:0;outline:0;color:var(--txt);font:inherit;font-size:15px;padding:13px 0}.search input::placeholder{color:#666}
.search button{background:none;border:0;color:#777;font-size:14px;cursor:pointer;padding:6px;display:none}.search.has button{display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.chip{background:none;border:1px solid var(--line);color:#bbb;font:inherit;font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;padding:7px 13px;border-radius:20px;cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--gold);color:var(--gold)}.chip.on{background:var(--gold);border-color:var(--gold);color:#111;font-weight:600}
.empty{display:none;text-align:center;color:var(--mut);padding:40px 0}.empty a{color:var(--gold)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--txt);opacity:0;transform:translateY(44px)}
.card.on{opacity:1;transform:none;transition:opacity .25s ease-out calc(var(--i,0)*90ms),transform .7s cubic-bezier(.22,1.1,.36,1) calc(var(--i,0)*90ms),border-color .25s}
.card.on:hover{transform:translateY(-3px);transition-delay:0s;border-color:var(--gold)}.card.hide{display:none}
.card .imgw{padding:16px 16px 4px}.card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-radius:50%;box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--gold)}.card .b{padding:12px 14px 14px}.card .n{font-weight:600;font-size:15px}.card .c{color:var(--orange);font-size:13px;margin-top:2px}.card .s{color:var(--mut);font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-top:8px}
.card .imgw{position:relative;overflow:hidden}.card .imgw::after{content:"";position:absolute;top:16px;bottom:4px;left:16px;right:16px;border-radius:50%;background:linear-gradient(105deg,transparent 30%,rgba(245,214,123,.5) 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}
.card:hover .imgw::after{animation:aShineR .7s ease-in-out forwards}@keyframes aShineR{0%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
/* ===== animations: fire-once, compositor-safe ===== */
@keyframes aIn{to{opacity:1;transform:none}}@keyframes aRule{to{transform:scaleX(1)}}@keyframes aRuleY{to{transform:scaleY(1)}}
@keyframes aRing{0%{opacity:.9;transform:translate(50%,50%) scale(.5)}100%{opacity:0;transform:translate(50%,50%) scale(3.6)}}
@keyframes aFlash{0%{opacity:0}30%{opacity:.55}100%{opacity:0}}
@keyframes aPinFly{0%{opacity:0;transform:translate(90px,-120px) scale(1.9) rotate(8deg)}55%{opacity:1;transform:translate(0,0) scale(1.14) rotate(-3deg)}75%{opacity:1;transform:scale(.96)}100%{opacity:1;transform:none}}
@keyframes aGlint{0%{transform:translateX(-160%) skewX(-18deg)}22%{transform:translateX(420%) skewX(-18deg)}100%{transform:translateX(420%) skewX(-18deg)}}
@keyframes aShine{0%{transform:translateX(-150%) skewX(-18deg)}100%{transform:translateX(300%) skewX(-18deg)}}
.anim .photo img,.anim .photo .ph{opacity:0;transform:scale(.96);animation:aIn .7s ease-out .1s forwards}
/* gold halo draws around the circle (stroke-dashoffset, one-shot, replaces the square frame) */
.anim .halo circle{stroke-dashoffset:305;animation:aHalo 1.1s ease-out .75s forwards}@keyframes aHalo{to{stroke-dashoffset:0}}
.anim .pin{opacity:0;animation:aPinFly .7s cubic-bezier(.34,1.3,.5,1) 2s forwards}.pin::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.75),transparent);transform:translateX(-150%) skewX(-18deg)}
.anim .pin::after{animation:aShine .8s ease-in-out 2.75s forwards}
.ring{position:absolute;right:calc(6% + 31px);bottom:calc(6% + 31px);width:20px;height:20px;border:2px solid var(--gold);border-radius:50%;opacity:0;pointer-events:none;transform:translate(50%,50%)}
.anim .ring{animation:aRing .7s ease-out 2.55s forwards}.anim .ring.r2{animation-duration:.9s;animation-delay:2.7s}
.flash{position:absolute;inset:6px;background:var(--gold-hi);opacity:0;pointer-events:none;border-radius:50%}.anim .flash{animation:aFlash .5s ease-out 2.55s forwards}
.anim .who h1,.anim .who .co,.anim .who .seat,.anim .contact,.anim .addr{opacity:0;transform:translateY(12px);animation:aIn .6s ease-out forwards}
.anim .who h1{animation-delay:.3s}.anim .who .co{animation-delay:.45s}.anim .who .seat{animation-delay:.6s}.anim .contact{animation-delay:.8s}.anim .addr{animation-delay:1s}
.seat::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.6),transparent);transform:translateX(-160%) skewX(-18deg)}.anim .seat::after{animation:aGlint 6s ease-in-out 3.2s infinite}
.bio-block,.video,.chapter-cta{opacity:0;transform:translateY(16px);transition:opacity .6s ease-out,transform .6s ease-out}.bio-block.on,.video.on,.chapter-cta.on{opacity:1;transform:none}
.chapter-cta::after{content:"";position:absolute;top:0;bottom:0;left:0;width:35%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.45),transparent);transform:translateX(-160%) skewX(-18deg)}.chapter-cta.on::after{animation:aGlint 5s ease-in-out 1s infinite}
@media(prefers-reduced-motion:reduce){.anim *,.card{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}