: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{background:none!important;border:0!important;padding:0!important}   /* never inherit chip styling — .role/.current/.past are text chips */
.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;isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(#fff,#000);mask-image:radial-gradient(#fff,#000)}   /* 16.2: Safari can fail to clip a transformed ::after inside overflow:hidden — the mask forces it */
.contact{margin-top:22px;display:flex;flex-direction:column;gap:12px}.contact a,.contact .reqbtn{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,.contact .reqbtn: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}
/* self-hosted files keep their own shape (phone video is usually vertical) — capped so a tall clip can't take over */
.video.file{aspect-ratio:auto;border:0;background:none;text-align:center}
.vwrap{position:relative;display:inline-block;max-width:100%;margin:0 auto}
.vwrap video{width:100%;height:100%;display:block;border:1px solid var(--line);border-radius:6px;background:#000;object-fit:contain}
.vcover{position:absolute;inset:0;border:1px solid var(--line);border-radius:6px;cursor:pointer;padding:14% 0 0;
  background:linear-gradient(160deg,#1e1e1e,#0c0c0c);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;overflow:hidden}   /* KNOB: 14% pushes the group up from centre */
.vcover .ph{position:relative;width:44%;max-width:170px;aspect-ratio:1;margin-bottom:14px}
.vcover img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid var(--gold);box-shadow:0 8px 22px rgba(0,0,0,.55);display:block}
.vcover .vcn{font-size:16px;font-weight:600;color:#eee;margin-top:16px}
.vcover .vcs{font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
.vcover .vplay{position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;background:#141414;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;transition:transform .2s,background .2s;box-shadow:0 6px 16px rgba(0,0,0,.6)}
.vcover .vplay::after{content:"";border-left:13px solid var(--gold);border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:4px}
.vcover:hover .vplay{transform:translateX(-50%) scale(1.1);background:#1e1e1e}
#askai{display:flex!important;align-items:center;gap:4px;flex:none;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 62%,#b8942c);color:#161206;border:0;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:8px 11px;border-radius:20px;cursor:pointer;white-space:nowrap;margin-left:6px;box-shadow:0 2px 10px rgba(212,175,55,.28);transition:transform .15s,box-shadow .2s,filter .2s}
#askai::before{content:"\2727";font-size:12px;line-height:1}
#askai:hover{filter:brightness(1.06);box-shadow:0 4px 16px rgba(212,175,55,.42)}#askai:active{transform:translateY(1px)}#askai[disabled]{opacity:.6;cursor:default;box-shadow:none}#askai.busy{background:linear-gradient(180deg,#3a3320,#241f12);color:var(--gold-hi);opacity:1}
.aiwrap{position:relative;max-width:900px;margin:16px auto 0;border:0;border-radius:12px;padding:18px 11px;overflow:hidden;
  background:radial-gradient(125% 95% at 10% -10%,rgba(212,175,55,.22),rgba(212,175,55,.06) 42%,transparent 70%),#1c1a15;
  box-shadow:0 18px 40px rgba(0,0,0,.75),0 0 0 1px rgba(212,175,55,.28)}
.aiwrap::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--gold-hi),var(--gold) 45%,#8a6d3b)}
.aiwrap.thinking::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.10),transparent);transform:translateX(-140%);animation:aiSheen 2.4s ease-in-out infinite;pointer-events:none}
@keyframes aiSheen{0%{transform:translateX(-140%)}60%{transform:translateX(320%)}100%{transform:translateX(320%)}}
.aiwrap[hidden]{display:none}
.aihd{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:600;letter-spacing:2.6px;text-transform:uppercase;color:var(--gold)}
.aihd button{background:none;border:1px solid rgba(212,175,55,.35);border-radius:50%;color:var(--gold);cursor:pointer;font-size:17px;line-height:1;width:34px;height:34px;display:grid;place-items:center;padding:0;transition:background .2s,color .2s,border-color .2s}
.aihd button:hover{background:rgba(212,175,55,.14);color:var(--gold-hi);border-color:var(--gold)}
.aitxt{font-size:16.5px;line-height:1.6;color:#f0ece4;margin-top:11px;white-space:pre-wrap}
.ailbl{margin-top:15px;font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:#a09a90}
.aigrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:9px;align-items:start}   /* 14.10: back to 2-up on phones; photo takes whatever the card allows */   /* 14.8: fixed 2-up on phones — auto-fit collapsed its tracks once a card spanned the row */
@media (min-width:700px){.aigrid{grid-template-columns:repeat(auto-fit,minmax(200px,220px));gap:12px;align-items:stretch;justify-content:center}}   /* 16: auto-fit collapses the empty tracks so a short row actually centres; capped width keeps cards from stretching. The phone-only full-width rule never applies here. */   /* 16: capped tracks leave slack for justify-content, so a short final row centres instead of sitting flush left */
.aicard .card .b{padding-left:8px;padding-right:8px}   /* 14.10: narrower inner padding leaves more room for the photo */   /* desktop matches the main directory grid */   /* 14.3: no row-stretch — each card ends at its own reason line */
@media (max-width:699px){.aigrid>.aicard:last-child:nth-child(odd){grid-column:1/-1}   /* 14.4: no empty cell beside a lone trailing card */}   /* phones only: a lone trailing card fills the row */
.aicard{min-width:0;display:flex;flex-direction:column;border:1px solid #2a2724;border-radius:6px;overflow:hidden;background:#191919}
.aicard .card{display:block!important;flex:0 0 auto;border:0;background:none;padding:0;opacity:1!important;transform:none!important;transition:none!important;animation:none!important}   /* 16.7: answer cards are pinned visible regardless of grid filter/animation state */   /* 14.4: the .b block already pads; extra card padding read as dead space */.aicard .card .imgw{max-width:180px;margin-left:auto;margin-right:auto}   /* 14.10: 180px is the ceiling before a desktop card's edges are touched */
.aicard .card .lpin{display:none}   /* 14.2: badge overlaps the face at this size */
.aiwhy{margin:0;padding:11px 12px;font-size:13.5px;line-height:1.5;color:#cfc9bd;text-align:center;border-top:1px solid #34302a;background:rgba(212,175,55,.07)}
@media (min-width:700px){   /* 16: desktop rows are level — cards stretch, the reason sits on the bottom edge. Declared after the base rules: media queries add no specificity. */
  .aigrid>.aicard{height:100%}
  .aicard .card{flex:1 1 auto}
  .aicard .aiwhy{margin-top:auto}
}
.ailinks{margin-top:12px;display:flex;flex-wrap:wrap;gap:14px}.ailinks a{color:var(--gold);font-size:12.5px;text-decoration:none;border-bottom:1px solid rgba(212,175,55,.4)}
.aifoot{margin-top:13px;font-size:11.5px;color:#8f8a82;border-top:1px solid #34302a;padding-top:10px;line-height:1.55}
.aidots{white-space:nowrap}.aidots i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin:0 2px;animation:aiB 1.25s infinite}
.aidots i:nth-child(2){animation-delay:.1s}.aidots i:nth-child(3){animation-delay:.2s}.aidots i:nth-child(4){animation-delay:.3s}.aidots i:nth-child(5){animation-delay:.4s}
@keyframes aiB{50%{transform:translateY(-5px);opacity:.35}}
.aisep{max-width:900px;margin:20px auto 0;text-align:center;font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:#666}
.share{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;background:none;border:1px solid rgba(212,175,55,.45);color:var(--gold);font:inherit;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:13px 16px;border-radius:4px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.share:hover{border-color:var(--gold);background:rgba(212,175,55,.08);color:var(--gold-hi)}.share .si{font-size:15px;line-height:1}
.share.done{border-color:#4caf50;color:#7fd18a}.share.done .si{color:#7fd18a}
.vcover.gone{display:none}
/* ---- Stage 9: video wall ---- */
/* ---- Stage 17: photo gallery ---- */
/* ---- Stage 19: request a meeting ---- */
.reqbtn{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:14px;font-weight:400;color:var(--txt);background:none;border:1px solid var(--line);border-radius:4px;padding:10px 16px;text-align:center;cursor:pointer}
.rqp{position:fixed;inset:0;background:rgba(8,8,8,.93);display:none;align-items:flex-start;justify-content:center;overflow:auto;z-index:70;padding:16px 12px}
.rqp.on{display:flex}body.rq-open{overflow:hidden}
.rqs{position:relative;width:100%;max-width:900px;background:#1b1a16;border-radius:14px;overflow:hidden;box-shadow:0 26px 70px rgba(0,0,0,.8),0 0 0 1px rgba(212,175,55,.3)}
.rqs::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--gold-hi),var(--gold) 45%,#8a6d3b)}
.rqg{display:grid;grid-template-columns:1fr}@media(min-width:780px){.rqg{grid-template-columns:300px 1fr}}
.rqw{padding:20px 18px;border-bottom:1px solid #2a2724}@media(min-width:780px){.rqw{border-bottom:0;border-right:1px solid #2a2724}}
.rqw .p{width:74px;height:74px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;background:#3a3a3a;display:block;margin-bottom:10px}
.rqw .n{font-size:19px;font-weight:600}.rqw .c{color:var(--org);font-size:13.5px;margin-top:2px}
.rqw .s{display:inline-block;margin-top:9px;font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(212,175,55,.5);padding:4px 9px;border-radius:3px}
.rqw .meta{margin-top:12px;font-size:12.5px;color:#a9a39a;line-height:1.7}.rqw .meta i{font-style:normal;color:var(--gold);margin-right:6px}
.rqsum{display:none}@media(min-width:780px){.rqsum{display:block;margin-top:14px;border-top:1px solid #2a2724;padding-top:13px}}
.rqsum .bio{font-size:12.5px;line-height:1.65;color:#b3ada3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rqth{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}
.rqth img{width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid rgba(212,175,55,.45);border-radius:5px;display:block}
.rqb{padding:18px 20px 20px}
.rqb h3{font-size:18px;font-weight:600}.rqb .sub{font-size:12.5px;color:var(--mut);margin-top:4px;line-height:1.55}
.rqcal{display:grid;grid-template-columns:1fr;gap:18px;margin-top:14px}@media(min-width:780px){.rqcal{grid-template-columns:1fr 210px}}
.rqmh{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rqmh b{font-size:15px}
.rqmh button{width:32px;height:32px;border-radius:50%;border:1px solid #2a2724;background:#141414;color:var(--gold);font-size:15px;cursor:pointer}
.rqdow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:5px}.rqdow span{text-align:center;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#7d786f}
.rqdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rqd{aspect-ratio:1/1;border:0;background:none;color:#ddd;font:inherit;font-size:14px;border-radius:50%;cursor:pointer}
.rqd.off{color:#4a4741;cursor:default}.rqd.free{background:rgba(212,175,55,.09);color:var(--gold-hi);font-weight:600}
.rqd.on{background:var(--gold);color:#141414;font-weight:700}
.rqtz{margin-top:12px;font-size:12px;color:#8b867e}
.rqt{border-left:0;padding-left:0}@media(min-width:780px){.rqt{border-left:1px solid #2a2724;padding-left:16px}}
.rqt h4{font-size:12.5px;color:#cfc9bd;font-weight:600;margin-bottom:9px}
.rqtl{display:grid;gap:6px;max-height:280px;overflow:auto}
.rqslot{border:1px solid #2a2724;border-radius:6px;background:#141414;color:#ddd;font:inherit;font-size:13.5px;padding:9px;cursor:pointer}
.rqslot.on{border-color:var(--gold);background:rgba(212,175,55,.14);color:var(--gold-hi);font-weight:600}
.rqbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;border-top:1px solid #2a2724;padding-top:14px;flex-wrap:wrap}
.rqch{font-size:12.5px;color:#cfc9bd}.rqch b{color:var(--gold)}
.rqnext,.rqsend{background:var(--gold);color:#141414;border:0;font:inherit;font-weight:700;font-size:14px;padding:11px 20px;border-radius:6px;cursor:pointer}
.rqnext[disabled]{opacity:.45;cursor:default}
.rqf{display:grid;gap:9px;margin-top:14px}
.rqf input:not([type=checkbox]),.rqf textarea{width:100%;background:#141414;border:1px solid #2a2724;border-radius:6px;color:#eee;font:inherit;font-size:16px;padding:11px}
.rqf input[type=checkbox]{width:18px;height:18px;flex:none;margin:2px 0 0;accent-color:var(--gold)}
.rqf textarea{min-height:82px;resize:vertical}
.rqr2{display:grid;gap:9px}@media(min-width:520px){.rqr2{grid-template-columns:1fr 1fr}}
.rqchk{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;color:#c9c3b9}
.rqchk input{flex:none;margin-top:2px}.rqchk span{flex:1;min-width:0}
.rqsend{width:100%;padding:13px;font-size:14.5px}
.rqback{background:none;border:0;color:var(--gold);font:inherit;font-size:13px;cursor:pointer;padding:0;margin-bottom:10px}
.rqfine{margin-top:10px;font-size:11.5px;color:#8b867e;line-height:1.6}
.rqx{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(212,175,55,.4);background:rgba(20,20,20,.7);color:var(--gold);font-size:16px;cursor:pointer;z-index:2}
.rqdone{padding:38px 22px;text-align:center}
.rqdone .tick{width:54px;height:54px;border-radius:50%;border:2px solid var(--gold);color:var(--gold);font-size:25px;display:grid;place-items:center;margin:0 auto 14px}
.rqdone h3{font-size:19px}.rqdone p{margin-top:9px;font-size:13.5px;color:#a9a39a;line-height:1.65}
.rqerr{margin-top:10px;font-size:13px;color:#e08b80}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.gal-s{margin-top:40px;opacity:0;transform:translateY(16px)}.fxready .gal-s{transition:opacity .6s ease-out,transform .6s ease-out}.gal-s.on{opacity:1;transform:none}
.gal-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.gal-h h2{font-weight:300;font-size:24px;margin:0}.gal-h h2 span{color:var(--org);font-weight:400}
.gal-c{font-size:12px;letter-spacing:2px;color:var(--mut)}
.gal{columns:2;column-gap:12px}
/* Small galleries use a grid, not columns: CSS columns balance by height and can leave a column
   empty with only 2–3 items. A grid places one item per cell, so the result is deterministic. */
.gal.gal-n1,.gal.gal-n2,.gal.gal-n3{columns:auto;display:grid;gap:12px}
.gal.gal-n1{grid-template-columns:1fr}
.gal.gal-n2,.gal.gal-n3{grid-template-columns:1fr 1fr}
.gal.gal-n1 .gi,.gal.gal-n2 .gi,.gal.gal-n3 .gi{margin:0;align-self:start}
/* 17.4: with JS the tiles are dealt into explicit columns (even counts, no height balancing) */
.gal.gal-js{columns:auto;display:flex;flex-direction:column;gap:12px}
.gal.gal-js .galrow{display:flex;align-items:flex-start;gap:12px}
.gal.gal-js .galcol{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:12px}
.gal.gal-js .gi{margin:0}
.gal.gal-js > .gi{width:62%;margin-inline:auto}   /* 17.5: a lone last tile sits centred rather than stretched */
@media (min-width:700px){.gal.gal-js,.gal.gal-js .galrow,.gal.gal-js .galcol{gap:14px}}
@media (min-width:700px){.gal{columns:3;column-gap:14px}
  .gal.gal-n1{max-width:620px;margin-inline:auto}
  .gal.gal-n3{grid-template-columns:repeat(3,1fr);gap:14px}
  .gal.gal-n2{gap:14px}}
.gi{break-inside:avoid;display:block;width:100%;margin:0 0 13px;padding:0;border:0;background:none;position:relative;border-radius:6px;overflow:hidden;cursor:zoom-in;
  box-shadow:0 0 0 1.5px var(--gold),0 0 0 5px #141414,0 0 0 6px rgba(212,175,55,.3),0 14px 30px rgba(0,0,0,.55);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}
.gi img{width:100%;height:auto;display:block}
.gi .cap{position:absolute;left:0;right:0;bottom:0;padding:22px 11px 9px;font-size:12px;line-height:1.4;color:#f0ece4;text-align:left;background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));opacity:0;transition:opacity .3s}
@media (hover:hover){.gi:hover{transform:translateY(-4px);box-shadow:0 0 0 1.5px var(--gold-hi),0 0 0 5px #141414,0 0 0 6px rgba(212,175,55,.5),0 22px 40px rgba(0,0,0,.65)}.gi:hover .cap{opacity:1}}
@media (hover:none){.gi .cap{opacity:1}}
.glb{position:fixed;inset:0;background:rgba(10,10,10,.95);display:none;align-items:center;justify-content:center;z-index:60}
.glb.on{display:flex}.glb img{max-width:92vw;max-height:82vh;border-radius:6px;box-shadow:0 0 0 1.5px var(--gold),0 0 0 6px #141414,0 0 0 7px rgba(212,175,55,.35),0 30px 80px rgba(0,0,0,.8)}
.glb button{position:absolute;border-radius:50%;border:1px solid rgba(212,175,55,.5);background:rgba(20,20,20,.65);color:var(--gold);cursor:pointer;display:grid;place-items:center}
.glb .gx{top:16px;right:16px;width:40px;height:40px;font-size:19px}.glb .gp,.glb .gn{top:50%;transform:translateY(-50%);width:44px;height:44px;font-size:22px}
.glb .gp{left:14px}.glb .gn{right:14px}
.glb .gc{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:#f0ece4;font-size:14px;padding:0 20px}.glb .gc small{display:block;color:var(--mut);font-size:11px;letter-spacing:2px;margin-top:6px}
body.glb-open{overflow:hidden}
.vwall{position:relative;margin-top:40px;opacity:0;transform:translateY(16px)}.fxready .vwall{transition:opacity .6s ease-out,transform .6s ease-out}.vwall.on{opacity:1;transform:none}
.vw-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.vw-head h2{font-weight:300;font-size:24px;margin:0}.vw-head h2 span{color:var(--org);font-weight:400}.vw-count{font-size:12px;letter-spacing:2px;color:var(--mut)}
.vw-stage{position:relative;height:420px;perspective:1400px;perspective-origin:50% 40%;overflow:hidden;margin:0 -40px;padding:18px 40px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}   /* 16.3: narrow enough that the playing frame's gold edges clear it */

.vf{position:absolute;left:50%;top:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.22,.9,.3,1),opacity .5s,filter .7s,width .7s,height .7s;cursor:pointer;will-change:transform}
.vf-art{position:relative;width:100%;height:100%;border-radius:6px;overflow:hidden;background:#000;box-shadow:0 0 0 1.5px var(--gold),0 0 0 6px #141414,0 0 0 7px rgba(212,175,55,.35),0 30px 60px rgba(0,0,0,.7)}
.vf-art video,.vf-art iframe{width:100%;height:100%;display:block;border:0;background:#000;object-fit:contain}
.vf-cover{position:absolute;inset:0;border:0;background:linear-gradient(180deg,rgba(20,20,20,.35),rgba(20,20,20,.85));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;padding:0}
.vf-ph{height:40%;width:auto;aspect-ratio:1;flex:none;border-radius:50%;overflow:hidden;border:2px solid var(--gold);box-shadow:0 8px 22px rgba(0,0,0,.55)}.vf-ph img{width:100%;height:100%;object-fit:cover;display:block}
.vf-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.vf-cover.yt{background:rgba(20,20,20,.18)}.vf-cover.yt .vf-play{position:relative;z-index:1;background:rgba(20,20,20,.7)}
.vf-play{width:clamp(40px,26%,56px);height:auto;aspect-ratio:1;flex:none;border-radius:50%;border:1.5px solid var(--gold-hi);display:grid;place-items:center;background:rgba(20,20,20,.55);transition:transform .3s}.vf-play::after{content:"";width:0;height:0;border-left:16px solid var(--gold-hi);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.vf:hover .vf-play{transform:scale(1.08)}
.vf-art::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-160%) skewX(-18deg);pointer-events:none}
.vf.c .vf-art::after{animation:vwGlint 7s ease-in-out 1.2s infinite}@keyframes vwGlint{0%{transform:translateX(-160%) skewX(-18deg)}18%{transform:translateX(420%) skewX(-18deg)}100%{transform:translateX(420%) skewX(-18deg)}}
.vf-refl{height:50px;margin-top:6px;border-radius:6px;background:linear-gradient(180deg,rgba(212,175,55,.16),rgba(212,175,55,0));filter:blur(6px);opacity:.55;pointer-events:none}
.vf-plq{margin-top:-38px;text-align:center;opacity:0;transform:translateY(8px);transition:opacity .4s .25s,transform .5s .25s}.vf.c .vf-plq{opacity:1;transform:none}
.vf-plq .t{font-weight:600;font-size:15px;color:#fff}.vf-plq .s{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-top:5px}
.vf.c{z-index:5;opacity:1;filter:none}.vf.l1,.vf.r1{z-index:4;opacity:.72;filter:brightness(.55) blur(.4px)}.vf.l2,.vf.r2{z-index:3;opacity:.38;filter:brightness(.4) blur(1px)}.vf.h{opacity:0;pointer-events:none}
.vf.land .vf-art{animation:vwLand .7s cubic-bezier(.22,.9,.3,1)}@keyframes vwLand{0%{transform:translateY(44px)}100%{transform:none}}
.vw-ctl{display:flex;justify-content:center;align-items:center;gap:26px;margin-top:6px}.vw-ctl button{background:none;border:1px solid rgba(212,175,55,.5);color:var(--gold);width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1}.vw-ctl button:hover{border-color:var(--gold-hi);background:rgba(212,175,55,.08)}
.vw-dots{display:flex;gap:9px}.vw-dots i{width:6px;height:6px;border-radius:50%;background:#3a3a3a;transition:background .3s,transform .3s;cursor:pointer}.vw-dots i.on{background:var(--gold);transform:scale(1.35)}
.vw-stage.playing .vf:not(.c){opacity:0;pointer-events:none}.vw-stage.playing .vf.c{cursor:default}.vw-stage.playing .vf.c .vf-cover,.vw-stage.playing .vf.c .vf-plq,.vw-stage.playing .vf.c .vf-refl{display:none}.vw-stage.playing .vf.c .vf-art::after{animation:none}
.vw-close{display:none;position:absolute;top:0;right:0;color:var(--gold);font-size:12px;letter-spacing:2px;text-transform:uppercase;background:none;border:0;cursor:pointer;z-index:9}.vwall.playing .vw-close{display:block}.vwall.playing .vw-count{display:none}   /* 16.4: Close takes the count's place in the header row */
@media (max-width:700px){.vw-stage{height:400px;perspective:900px;margin:0 -22px;padding:18px 22px 0}.vf.l2,.vf.r2{opacity:0;pointer-events:none}}
@media (prefers-reduced-motion:reduce){.vf{transition:none}.vf.c .vf-art::after{animation:none}.vf.land .vf-art{animation:none}}
/* KNOB: 62vh cap */.video iframe,.video video{width:100%;height:100%;border:0;display:block;object-fit:cover;background:#000}
.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;overflow:hidden;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;min-width:0;background:none;border:0;outline:0;color:var(--txt);font:inherit;font-size:16px;padding:12px 0}   /* 16px: iOS zooms anything smaller on focus, which reads as the page sliding sideways */.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}
.nomatch{display:none;max-width:900px;margin:14px auto 0;padding:12px 14px;border:1px solid rgba(212,175,55,.28);border-radius:8px;background:rgba(212,175,55,.05);color:#cfc9bd;font-size:14px;line-height:1.5;text-align:center}
.nomatch.on{display:block}.nomatch .nm-t{color:#cfc9bd}
.nm-ask{margin-left:6px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 62%,#b8942c);color:#161206;border:0;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:7px 12px;border-radius:20px;cursor:pointer;white-space:nowrap;vertical-align:middle}
.nm-ask:hover{filter:brightness(1.06)}.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}
/* The shine is clipped to the HEADSHOT CIRCLE, not the card box. .cshine is a fixed round
   window with overflow:hidden and only its ::after travels. The old rule translated an
   element that carried its OWN border-radius, so the round shape slid off the photo and the
   gold band swept across the square. Same clip-layer trick as .cap-shine (§22). */
.card .cshine{position:absolute;top:16px;bottom:4px;left:16px;right:16px;border-radius:50%;overflow:hidden;pointer-events:none}
.card .cshine::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 30%,rgba(245,214,123,.5) 50%,transparent 70%);transform:translateX(-120%)}
.card:hover .cshine::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,.spec,.video,.chapter-cta{opacity:0;transform:translateY(16px)}
/* transitions switch on only after the first frame, so nothing fades out of view on load */
.fxready .bio-block,.fxready .spec,.fxready .video,.fxready .chapter-cta{transition:opacity .6s ease-out,transform .6s ease-out}.bio-block.on,.spec.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}
/* leadership */
.pin.leader{width:88px;height:88px}@media(max-width:820px){.pin.leader{width:98px;height:98px}}
.pin.leader.masked{-webkit-mask:url(/images/bnilt-t.png) center/contain no-repeat;mask:url(/images/bnilt-t.png) center/contain no-repeat}
.pin.support{width:78px;height:78px}@media(max-width:820px){.pin.support{width:88px;height:88px}}   /* KNOB: matches the member pin — normalize badge artwork rather than scaling here */
.pin.support.masked{-webkit-mask:url(role-pin.png) center/contain no-repeat;mask:url(role-pin.png) center/contain no-repeat}
.roles{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.roles.compact{margin-top:8px;gap:6px}
.role{display:inline-block;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;padding:5px 11px;border-radius:3px;border:1px solid var(--gold);color:#111;background:linear-gradient(180deg,var(--gold-hi),var(--gold));font-weight:600}
.roles.compact .role{font-size:9.5px;letter-spacing:1.5px;padding:3px 8px}
.role.founding,.role.director{background:none;color:var(--gold)}.role.past{background:none;color:var(--mut);border-color:var(--line);font-weight:400}
.chip.lead{border-color:var(--gold);color:var(--gold)}.chip.lead.on{background:var(--gold);color:#111}
/* Stage 10: attribute (badge) chips */
.attr{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}.attr .lbl{font-size:10px;letter-spacing:2.5px;color:#6a6a6a;text-transform:uppercase;margin-right:4px}
.bchip{display:inline-flex;align-items:center;gap:7px;background:#1a1a1a;border:1px solid #3a3a3a;color:#d8d8d8;font:inherit;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;padding:6px 12px 6px 9px;border-radius:20px;cursor:pointer;transition:border-color .2s,color .2s}
.bchip .e{font-size:14px;line-height:1}.bchip .bi{width:16px;height:16px;object-fit:contain;flex:none;display:block}.bchip:hover{border-color:var(--gold);color:var(--gold-hi)}.bchip.on{border-color:var(--gold);color:var(--gold-hi);box-shadow:inset 0 0 0 1px var(--gold)}.bchip.on::after{content:"×";margin-left:2px;color:var(--gold);font-size:13px}
.card .lpin{position:absolute;right:14px;bottom:8px;width:44px;height:44px;object-fit:contain;border-radius:0;box-shadow:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.6))}  /* badge keeps its own shape — no headshot ring/crop */
/* KNOB: mobile-only — badge doubled and nudged further onto the headshot circle */
@media(max-width:820px){.card .lpin{width:88px;height:88px;right:22px;bottom:16px}}

/* ===== FUN FX (locked 2026-08-31): A orbit · B buttons cascade · C bio headings · D ambient glow · E pin re-glint · F seat ink · G full-page badge landing ===== */
html,body{overflow-x:hidden}   /* sparks/rings fly past the viewport; never create horizontal scroll */
.photo{z-index:0}.photo .orbit{position:absolute;inset:6px;border-radius:50%;pointer-events:none;opacity:0;background:conic-gradient(from 0deg,transparent 0 70%,rgba(245,214,123,0) 78%,rgba(245,214,123,.95) 86%,transparent 92%);-webkit-mask:radial-gradient(circle,transparent 0 calc(50% - 3px),#000 calc(50% - 2px),#000 calc(50% - .5px),transparent 50%);mask:radial-gradient(circle,transparent 0 calc(50% - 3px),#000 calc(50% - 2px),#000 calc(50% - .5px),transparent 50%)}
@keyframes orbit{to{transform:rotate(360deg)}}.anim .photo .orbit{opacity:1;animation:orbit 6s linear 2.2s infinite}          /* KNOB A: 6s lap */
.anim .contact a,.contact .reqbtn{opacity:0;transform:translateX(-14px);animation:aIn .5s ease-out forwards;position:relative;overflow:hidden}
.anim .contact > :nth-child(1){animation-delay:.9s}.anim .contact > :nth-child(2){animation-delay:1.05s}.anim .contact > :nth-child(3){animation-delay:1.2s}.anim .contact > :nth-child(4){animation-delay:1.35s}
.contact a::before,.contact .reqbtn::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left}.anim .contact a::before,.contact .reqbtn::before{animation:aRule .5s ease-out forwards}
.anim .contact > :nth-child(1)::before{animation-delay:1.4s}.anim .contact > :nth-child(2)::before{animation-delay:1.55s}.anim .contact > :nth-child(3)::before{animation-delay:1.7s}.anim .contact > :nth-child(4)::before{animation-delay:1.85s}.contact > :nth-child(5){animation-delay:1.5s}.contact > :nth-child(5)::before{animation-delay:2s}
.bio-block{border-top:0;position:relative}.bio-block::before{content:"";position:absolute;left:0;top:0;right:0;height:1px;background:linear-gradient(90deg,var(--gold),transparent);transform:scaleX(0);transform-origin:left;transition:transform .7s ease-out}
.bio-block.on::before{transform:scaleX(1)}.bio-block h3{transition-delay:.15s}.bio-block p{opacity:0;transform:translateY(6px);transition:opacity .5s ease-out .3s,transform .5s ease-out .3s}.bio-block.on p{opacity:1;transform:none}
.photo .ambient{position:absolute;inset:-12%;border-radius:50%;pointer-events:none;opacity:0;z-index:-1;background:radial-gradient(circle,rgba(212,175,55,.28) 0%,rgba(212,175,55,.08) 45%,transparent 68%);-webkit-filter:blur(14px);filter:blur(14px)}
@keyframes breathe{0%,100%{opacity:.35}50%{opacity:1}}.anim .photo .ambient{animation:breathe 6s ease-in-out 1.5s infinite}   /* KNOB D */
@keyframes ink{0%{background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 0%,transparent 0%);color:var(--gold)}45%{background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 100%,transparent 100%);color:#111}100%{background:none;color:var(--gold)}}
.anim .who .seat{animation:aIn .6s ease-out .6s forwards,ink 1.4s ease-in-out .7s}
/* G: full-page badge landing */
.photo{overflow:visible}
@keyframes pinFlyBig{0%{opacity:0;transform:translate(170px,-240px) scale(2.8) rotate(28deg)}35%{opacity:1}55%{transform:translate(0,0) scale(1.28) rotate(-7deg)}68%{transform:scale(.9) rotate(3deg)}80%{transform:scale(1.08) rotate(-1deg)}90%{transform:scale(.97)}100%{opacity:1;transform:none}}
.anim .pin{animation:pinFlyBig 1.15s cubic-bezier(.3,1.2,.4,1) 2s forwards}                       /* KNOB G: flight */
@keyframes ringBig{0%{opacity:1;transform:translate(50%,50%) scale(.4)}100%{opacity:0;transform:translate(50%,50%) scale(5.2)}}
@keyframes ringHuge{0%{opacity:1;transform:translate(50%,50%) scale(.4)}22%{opacity:.5}50%{opacity:.15}100%{opacity:0;transform:translate(50%,50%) scale(44)}}   /* KNOB: ring reach */
@media (min-width:900px){
  /* 16.2 desktop reach. Two things bite when you scale a ring: the border scales with it, and a linear
     fade leaves it half-opaque while it is already huge. So: thinner border, and the fade is front-loaded. */
  @keyframes ringHuge{0%{opacity:.95;transform:translate(50%,50%) scale(.4)}18%{opacity:.5}45%{opacity:.14}100%{opacity:0;transform:translate(50%,50%) scale(56)}}
  @keyframes ringBig{0%{opacity:1;transform:translate(50%,50%) scale(.4)}30%{opacity:.45}100%{opacity:0;transform:translate(50%,50%) scale(9)}}
  @keyframes shock{0%{opacity:.9;transform:translate(50%,50%) scale(.5)}20%{opacity:.28}100%{opacity:0;transform:translate(50%,50%) scale(90)}}
  .anim .ring.r2{border-width:1px}.anim .ring.r3{border-width:.75px}
}
.anim .ring{animation:ringBig 1.1s ease-out 2.62s forwards;border-width:3px}.anim .ring.r2{animation:ringHuge 1.6s ease-out 2.7s forwards;border-width:2px}
.photo .ring.r3{position:absolute;right:calc(6% + 31px);bottom:calc(6% + 31px);width:20px;height:20px;border:1px solid var(--gold-hi);border-radius:50%;opacity:0;pointer-events:none;transform:translate(50%,50%)}.anim .ring.r3{animation:ringHuge 2.1s ease-out 2.9s forwards}
.photo .shock{position:absolute;right:calc(6% + 39px);bottom:calc(6% + 39px);width:20px;height:20px;border-radius:50%;pointer-events:none;opacity:0;transform:translate(50%,50%) scale(.5);background:radial-gradient(circle,rgba(245,214,123,.55) 0%,rgba(212,175,55,.25) 40%,transparent 70%)}
@keyframes shock{0%{opacity:1;transform:translate(50%,50%) scale(.5)}100%{opacity:0;transform:translate(50%,50%) scale(60)}}.anim .shock{animation:shock 1.3s ease-out 2.62s forwards}   /* KNOB: shockwave reach */
.photo .spark{position:absolute;right:calc(6% + 39px);bottom:calc(6% + 39px);width:6px;height:6px;border-radius:50%;background:var(--gold-hi);opacity:0;pointer-events:none;transform:translate(50%,50%);--dx:0px;--dy:0px}
@keyframes sparkFly{0%{opacity:1;transform:translate(50%,50%) scale(1.2)}100%{opacity:0;transform:translate(calc(50% + var(--dx)),calc(50% + var(--dy))) scale(.2)}}.anim .spark{animation:sparkFly 1.5s cubic-bezier(.2,.8,.4,1) 2.62s forwards}
@keyframes flashBig{0%{opacity:0}25%{opacity:.8}100%{opacity:0}}.anim .flash{animation:flashBig .6s ease-out 2.62s forwards}
@keyframes shudder{0%,100%{transform:translate(0,0)}20%{transform:translate(2px,-1px)}40%{transform:translate(-2px,1px)}60%{transform:translate(1px,1px)}80%{transform:translate(-1px,-1px)}}
.anim .photo img{animation:aIn .7s ease-out .1s forwards,shudder .35s ease-out 2.62s}
.pageflash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 70% 40%,rgba(245,214,123,.35),transparent 60%);opacity:0;z-index:5}
@keyframes pageflash{0%{opacity:0}15%{opacity:1}100%{opacity:0}}.anim-on .pageflash{animation:pageflash .9s ease-out 2.62s forwards}
.anim .pin::after{animation:aShine .8s ease-in-out 3.2s forwards,aGlint 7s ease-in-out 4.5s infinite}   /* E: re-glint */


/* ===== member badges ===== */
.mb{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mb .chip{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#d8d8d8;border:1px solid #333;background:#1a1a1a;padding:6px 11px;border-radius:20px}
.mb .chip img{width:17px;height:17px;object-fit:contain;border-radius:3px}
.mb .chip .e{font-size:14px;line-height:1}
.mb.compact{margin-top:9px;gap:6px}
.mb.compact .chip{font-size:9.5px;padding:4px 8px;letter-spacing:1.2px}
.mb.compact .chip img{width:14px;height:14px}
.mb.compact .chip .e{font-size:12px}
/* ===== Specialties (visible text, honest expander) ===== */
.spec{margin-top:26px;border-top:0;padding-top:18px;position:relative}
.spec::before{content:"";position:absolute;left:0;top:0;right:0;height:1px;background:linear-gradient(90deg,var(--gold),transparent);transform:scaleX(0);transform-origin:left;transition:transform .7s ease-out}
.spec.on::before{transform:scaleX(1)}
.spec .spec-line{opacity:0;transform:translateY(6px);transition:opacity .5s ease-out .3s,transform .5s ease-out .3s}
.spec.on .spec-line{opacity:1;transform:none}
.spec .spec-more{opacity:0;transition:opacity .5s ease-out .45s}
.spec.on .spec-more{opacity:1}
.spec h3{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px}
.spec-line{color:#c2c2c2;font-size:13.5px;line-height:1.75}
.spec-el{color:#6e6e6e}
.spec-more{margin-top:6px}
.spec-more summary{cursor:pointer;font-size:10.5px;color:#6e6e6e;letter-spacing:1px;text-transform:uppercase;list-style:none;padding:4px 0}
.spec-more summary::-webkit-details-marker{display:none}
.spec-more summary::after{content:" ▾";color:var(--gold)}
.spec-more[open] summary::after{content:" ▴"}
.spec-more summary:hover{color:var(--gold)}
.spec-more .spec-line{margin-top:8px}
/* ===== Power Team Captain plaque ===== */
.cap{margin-top:20px;border:1px solid rgba(212,175,55,.45);border-radius:6px;background:linear-gradient(180deg,rgba(212,175,55,.08),rgba(212,175,55,.02));padding:18px;position:relative;overflow:visible}
/* glint lives in its own clipped layer so the burst can leave the plaque */
.cap-shine{position:absolute;inset:0;overflow:hidden;border-radius:6px;pointer-events:none}
.cap-shine::after{content:"";position:absolute;top:0;bottom:0;left:0;width:35%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.35),transparent);transform:translateX(-160%) skewX(-18deg)}
.cap.on .cap-shine::after{animation:aGlint 6s ease-in-out 2.6s infinite}
/* ---- badge landing (option 3) ---- KNOBS: --capx/--capy = impact point, ring scales = reach ---- */
.cap{--capx:72px;--capy:72px}
@media(max-width:820px){.cap{--capx:72px;--capy:72px}}
.cap-ring,.cap-shock{position:absolute;left:var(--capx);top:var(--capy);width:30px;height:30px;border-radius:50%;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.4);z-index:0}
.cap-ring{border:2px solid var(--gold-hi)}
.cap-shock{background:radial-gradient(circle,rgba(245,214,123,.5) 0%,rgba(212,175,55,.22) 40%,transparent 70%)}
@keyframes capRing{0%{opacity:.9;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(22)}}
@keyframes capRingHuge{0%{opacity:.75;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(46)}}
@keyframes capShock{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(30)}}
@keyframes capDrop{0%{opacity:0;transform:translateY(-70px) scale(1.5) rotate(14deg)}55%{opacity:1;transform:translateY(0) scale(1.14) rotate(-4deg)}75%{transform:scale(.95)}100%{opacity:1;transform:none}}
@keyframes capShake{0%,100%{transform:translate(0,0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-2px,1px)}75%{transform:translate(1px,1px)}}
.cap img{position:relative;z-index:2}
.cap.on img{animation:capDrop .8s cubic-bezier(.3,1.4,.4,1) .3s both}
.cap.on .cap-ring.r1{animation:capRing 1.1s ease-out .78s forwards}
.cap.on .cap-ring.r2{animation:capRingHuge 1.6s ease-out .95s forwards;border-width:1.5px}
.cap.on .cap-ring.r3{animation:capRingHuge 2.1s ease-out 1.15s forwards;border-width:1px;border-color:var(--gold)}
.cap.on .cap-shock{animation:capShock 1.2s ease-out .8s forwards}
.cap.on{animation:capShake .3s ease-out .8s}
.cap-top,.cap-rule,.cap-members{position:relative;z-index:1}
.cap-top{display:flex;align-items:center;gap:8px}   /* KNOB: badge ↔ text gap */
.cap img{width:109px;height:109px;flex:0 0 109px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.6))}   /* KNOB: plaque badge size */
.cap-k{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
.cap-team{font-size:20px;font-weight:600;margin-top:2px;line-height:1.25}
.cap-rule{height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:14px 0 10px}
.cap-members{font-size:12.5px;color:#cfcfcf;line-height:1.7}
.cap-members a{color:var(--gold-hi);text-decoration:none;font-weight:500;border-bottom:1px solid rgba(245,214,123,.25)}
.cap-members a:hover{border-bottom-color:var(--gold-hi)}
.pin.captain{width:78px;height:78px}@media(max-width:820px){.pin.captain{width:88px;height:88px}}
.pin.captain.masked{-webkit-mask:url(captain-pin.png) center/contain no-repeat;mask:url(captain-pin.png) center/contain no-repeat}
/* ===== 100 Club medallion (V1) + crown chip (V3) ===== */
.med{position:absolute;left:-14px;bottom:-14px;width:96px;height:96px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6));z-index:4}
.med svg{width:100%;height:100%;overflow:visible}.med .disc{fill:url(#gm)}.med .rim{fill:none;stroke:url(#gr);stroke-width:2.2}
.med .laurel{fill:none;stroke:var(--gold-hi);stroke-width:1.3;stroke-linecap:round}
.med text{font-family:Raleway,Arial,sans-serif;font-weight:700;fill:#1a1206}.med .n100{font-size:26px}.med .club{font-size:8px;letter-spacing:2.5px;fill:#3a2a08}.med .mon{font-size:5.5px;letter-spacing:1px;fill:#3a2a08}
.med .orb{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 76%,rgba(255,255,255,.95) 88%,transparent 94%);-webkit-mask:radial-gradient(circle,transparent 0 calc(50% - 4px),#000 calc(50% - 3px),#000 calc(50% - 1px),transparent 50%);mask:radial-gradient(circle,transparent 0 calc(50% - 4px),#000 calc(50% - 3px),#000 calc(50% - 1px),transparent 50%)}
.med .shine{position:absolute;inset:0;border-radius:50%;overflow:hidden;pointer-events:none}.med .shine::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:45%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.75),transparent);transform:translateX(-160%) skewX(-18deg)}
.med .ring{position:absolute;inset:0;border:2px solid var(--gold-hi);border-radius:50%;opacity:0;pointer-events:none;right:auto;bottom:auto;width:100%;height:100%;transform:none}
.med .sp{position:absolute;left:50%;top:50%;width:5px;height:5px;background:#fff;border-radius:50%;opacity:0;--dx:0px;--dy:0px}
@keyframes medIn{0%{opacity:0;transform:scale(.2) rotate(-40deg)}60%{opacity:1;transform:scale(1.18) rotate(6deg)}80%{transform:scale(.95) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes medOrbit{to{transform:rotate(360deg)}}
@keyframes medRing{0%{opacity:.9;transform:scale(.6)}100%{opacity:0;transform:scale(2.8)}}
@keyframes medSp{0%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.2)}}
@keyframes medPulse{0%,100%{filter:drop-shadow(0 6px 10px rgba(0,0,0,.6)) drop-shadow(0 0 0 rgba(245,214,123,0))}50%{filter:drop-shadow(0 6px 10px rgba(0,0,0,.6)) drop-shadow(0 0 14px rgba(245,214,123,.7))}}
.anim .med{animation:medIn .9s cubic-bezier(.3,1.3,.4,1) 3.1s both,medPulse 5s ease-in-out 4.6s infinite}   /* KNOB: lands after the pin */
.anim .med .orb{animation:medOrbit 5s linear 4s infinite}.anim .med .shine::after{animation:aGlint 6s ease-in-out 4.1s infinite}
.anim .med .ring{animation:medRing .9s ease-out 3.7s forwards}.anim .med .ring.c2{animation-delay:3.85s;border-width:1px}
.anim .med .sp{animation:medSp 1s ease-out 3.75s forwards}
.card .med.mini{position:absolute;left:8px;bottom:0;width:56px;height:56px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.6))}
.card .med.mini .orb{animation:medOrbit 6s linear infinite}
.chipwrap{margin-top:10px}
.c100{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gold);border-radius:3px;padding:6px 12px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);position:relative;overflow:hidden;background:none;text-decoration:none}
.c100 b{font-size:14px;letter-spacing:0;font-weight:700}.c100 .crown{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.c100::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--gold-hi),var(--gold));transform:scaleX(0);transform-origin:left;z-index:-1}
@keyframes cInk{0%{transform:scaleX(0)}40%{transform:scaleX(1)}70%{transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:right}}
@keyframes cInkTxt{0%,10%{color:var(--gold)}40%,70%{color:#1a1206}100%{color:var(--gold)}}
.anim .c100::before{animation:cInk 2s ease-in-out 1.2s}.anim .c100{animation:cInkTxt 2s ease-in-out 1.2s}
.c100 .sh{position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(105deg,transparent,rgba(245,214,123,.6),transparent);transform:translateX(-160%) skewX(-18deg)}.anim .c100 .sh{animation:aGlint 6s ease-in-out 3.4s infinite}
.csub{font-size:10px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;margin-top:6px}
.club-ex p a.sec{border-style:none;border-bottom:1px solid rgba(212,175,55,.4);padding:0;font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase}
/* ===== Power of One page ===== */
.p1{max-width:900px;margin:30px auto 60px;padding:0 24px}.p1 h1{font-weight:300;font-size:34px;letter-spacing:1px;text-align:center}.p1 h1 span{color:var(--orange)}
.p1 .rule{width:60px;height:2px;background:var(--orange);margin:10px auto 26px}
.hero{border:1px solid var(--gold);border-radius:6px;padding:26px 30px;text-align:center;background:linear-gradient(180deg,rgba(212,175,55,.09),rgba(212,175,55,.02));position:relative;overflow:hidden}
.hero .k{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold)}
.hero .big{font-size:64px;font-weight:700;line-height:1;margin:8px 0 4px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 55%,#8a6d3b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .claim{font-size:16px;color:#e6e6e6;max-width:640px;margin:0 auto}.hero .month{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--mut);margin-top:10px}
.hero::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);animation:aGlint 5s ease-in-out 1s infinite}
.faces{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 22px;margin:22px auto 6px;max-width:760px}
.face{text-decoration:none;color:var(--txt);text-align:center;width:118px;opacity:0;transform:translateY(12px);animation:aIn .6s ease-out forwards}
.face:nth-child(1){animation-delay:.5s}.face:nth-child(2){animation-delay:.6s}.face:nth-child(3){animation-delay:.7s}.face:nth-child(4){animation-delay:.8s}.face:nth-child(5){animation-delay:.9s}.face:nth-child(6){animation-delay:1s}.face:nth-child(7){animation-delay:1.1s}.face:nth-child(n+8){animation-delay:1.2s}
.face .fring{display:block;width:70px;height:70px;margin:0 auto;border-radius:50%;padding:3px;background:conic-gradient(from 0deg,var(--gold-hi),var(--gold),#8a6d3b,var(--gold),var(--gold-hi));transition:transform .25s}
.face .fring img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;border:2px solid var(--bg)}
.face:hover .fring{transform:scale(1.08)}.face .fn{display:block;margin-top:7px;font-size:11.5px;font-weight:600;color:#fff;line-height:1.3}
.face .fs{display:block;margin-top:2px;font-size:9.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);line-height:1.35}
.signal{max-width:640px;margin:14px auto 0;font-size:14.5px;color:#ddd;line-height:1.65}
.p1 h2{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin:38px 0 12px}.p1 p{color:#d5d5d5;font-size:15.5px;line-height:1.7}
table.five{width:100%;border-collapse:collapse;margin-top:6px}table.five th,table.five td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}
table.five th{color:var(--mut);font-weight:500;letter-spacing:2px;text-transform:uppercase;font-size:11px}table.five td.pt{color:var(--gold);font-weight:600;text-align:right}table.five td:first-child{color:#fff;font-weight:600}
.p1 .cta{margin-top:40px;text-align:center}.p1 .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}
.p1 .foot{color:var(--mut);font-size:12px;margin-top:22px;line-height:1.6}.p1 .foot a{color:var(--gold);text-decoration:none}

@media(prefers-reduced-motion:reduce){.anim *,.card{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}