:root { --red:#D34437; --ink:#111111; --cream:#F5EEE4; --gray:#6B6464; --blue:#6E97EA; --yellow:#FFD60A; --centrao:#BDB2A5; }
* { margin:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-snap-type:y proximity; }
body { background:var(--ink); color:var(--cream); font-family:'Inter Tight','Helvetica Neue',Helvetica,Arial,sans-serif; font-weight:900; text-transform:uppercase; }
body.locked { overflow:hidden; }
section { min-height:100vh; padding:clamp(16px,4vw,48px); scroll-snap-align:start; }

/* hero */
#hero { background:var(--red); color:var(--ink); display:grid; place-items:center; position:relative; }
#hero h1 { font-size:clamp(3.5rem,11vw,9rem); line-height:.9; letter-spacing:-0.04em; }
#hero p { margin-top:1.5rem; font-size:clamp(1.5rem,4vw,3rem); line-height:1; letter-spacing:-0.03em; }
#hero p span { color:var(--cream); }
#go { position:absolute; bottom:clamp(16px,4vw,48px); left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.25rem; color:var(--ink); text-decoration:none; font-size:clamp(1.25rem,3vw,2rem); letter-spacing:-0.02em; opacity:0; visibility:hidden; transition:opacity .6s; }
#go.show { opacity:1; visibility:visible; }
#go svg { width:2.5rem; height:2.5rem; animation:bob 1.4s ease-in-out infinite; }
@keyframes bob { 50% { transform:translateY(.5rem); } }

/* militancia */
#militancia { max-width:1200px; margin:0 auto; padding-top:clamp(64px,10vw,120px); }
#militancia h2 { font-size:clamp(2.5rem,7vw,5rem); line-height:.95; letter-spacing:-0.04em; }
#militancia h2 span { color:var(--red); }
.lead { margin:1rem 0 2rem; font-size:clamp(1rem,2vw,1.5rem); letter-spacing:-0.01em; }
#widgets { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.widget { display:flex; flex-direction:column; gap:.75rem; padding:1.25rem; background:var(--cream); color:var(--ink); text-decoration:none; border-radius:2px; transition:background .15s, transform .15s; }
.widget:hover, .widget:focus-visible { background:var(--red); transform:translateY(-4px) rotate(-.6deg); outline:none; }
.widget small { font-size:.75rem; letter-spacing:0.04em; }
.widget h3 { font-size:1.6rem; line-height:1; letter-spacing:-0.02em; }
.widget p { font-weight:600; text-transform:none; line-height:1.35; letter-spacing:0; }
.widget .go { margin-top:auto; letter-spacing:0em; }

/* hemicycle button */
#hemi-btn { position:fixed; top:clamp(12px,2vw,24px); right:clamp(12px,2vw,24px); z-index:10; width:64px; height:44px; padding:6px; background:var(--cream); border:0; border-radius:2px; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.3); transition:background .15s; }
#hemi-btn:hover, #hemi-btn:focus-visible { background:var(--ink); outline:none; }
#hemi-btn:hover svg circle, #hemi-btn:focus-visible svg circle { fill:var(--cream); }
#hemi-btn svg circle { fill:var(--ink); transition:fill .15s; }
#hemi-btn span { position:absolute; width:1px; height:1px; overflow:hidden; }

/* congress view */
#congresso { position:fixed; inset:0; z-index:20; background:var(--red); color:var(--ink); padding:clamp(16px,4vw,48px); overflow:auto; display:none; }
#congresso.open { display:block; }
#congresso h2 { font-size:clamp(2.5rem,7vw,5rem); line-height:.95; letter-spacing:-0.04em; }
#congresso h2 span { color:var(--cream); }
#back { margin-bottom:2rem; padding:.7em 1.2em; background:var(--ink); color:var(--cream); border:0; border-radius:0; font:inherit; font-size:1rem; text-transform:uppercase; cursor:pointer; }
#back:hover { background:var(--cream); color:var(--ink); }
#bills { margin-top:2rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.bill { display:flex; flex-direction:column; gap:.4rem; padding:1.25rem; background:var(--cream); color:var(--ink); border:0; border-radius:2px; font:inherit; text-align:left; text-transform:uppercase; cursor:pointer; transition:background .15s,color .15s,transform .15s; }
.bill:hover, .bill:focus-visible { background:var(--ink); color:var(--cream); transform:translateY(-4px) rotate(-.6deg); outline:none; }
.bill b { font-size:1.6rem; line-height:1; letter-spacing:-0.02em; }
.bill small { font-size:1rem; letter-spacing:0em; }
#detail { margin-top:1rem; }
#detail .formal { margin-top:.5rem; font-size:clamp(1.25rem,3vw,2rem); letter-spacing:-0.02em; color:var(--cream); }
.chambers { margin-top:2rem; display:flex; align-items:flex-end; gap:clamp(12px,3vw,40px); }
.chambers .main { flex:1 1 auto; min-width:0; }
.chambers .side { flex:0 0 clamp(80px,14%,160px); }
.chambers svg { display:block; width:100%; height:auto; }
.chambers .main circle { fill:var(--ink); cursor:pointer; }
.chambers .main circle.g-esquerda { fill:var(--ink); }
.chambers .main circle.g-centrao { fill:var(--centrao); }
.chambers .main circle.g-direita { fill:var(--blue); }
.chambers .main circle.g-sem { fill:var(--cream); }
.chambers .main circle.v-sim, .vd.v-sim { fill:#2FBF71; background:#2FBF71; }
.chambers .main circle.v-nao, .vd.v-nao { fill:#7A0E14; background:#7A0E14; }
.chambers .main circle.v-abstencao, .vd.v-abstencao { fill:#9A9A9A; background:#9A9A9A; }
.chambers .main circle.v-outro, .vd.v-outro { fill:var(--cream); background:var(--cream); }
.chambers .main circle.v-ausente, .vd.v-ausente { fill:rgba(17,17,17,.22); background:rgba(17,17,17,.22); }
.vd { width:.8em; height:.8em; border-radius:50%; display:inline-block; }
.votebar { display:flex; gap:.5rem; margin-bottom:1rem; }
.votebtn { padding:.45em .9em; background:transparent; color:var(--ink); border:2px solid var(--ink); border-radius:0; font:inherit; font-size:.9rem; text-transform:uppercase; cursor:pointer; }
.votebtn.on, .votebtn:hover { background:var(--ink); color:var(--cream); }
.tally { margin-top:.6rem; display:flex; flex-wrap:wrap; gap:.4rem 1rem; font-size:1rem; letter-spacing:0em; }
.arc { fill:none; stroke-width:.22; }
.a-esquerda { stroke:var(--ink); } .a-centrao { stroke:var(--centrao); } .a-direita { stroke:var(--blue); } .a-sem { stroke:var(--cream); }
.arc-label { font-family:inherit; font-weight:900; font-size:.95px; letter-spacing:-.02px; text-transform:uppercase; }
.l-esquerda { fill:var(--ink); } .l-centrao { fill:var(--centrao); } .l-direita { fill:var(--blue); }
.legend { margin-top:.75rem; min-height:2.2rem; display:flex; flex-wrap:wrap; gap:.4rem .9rem; font-size:.9rem; letter-spacing:0em; }
.chip { display:inline-flex; align-items:center; gap:.35rem; }
.chip i { width:.8em; height:.8em; border-radius:50%; display:inline-block; }
.chambers .grey { pointer-events:none; }
.chambers .grey circle { fill:var(--gray); }
.chambers button.side { padding:0; background:none; border:0; cursor:pointer; }
.chambers button.side circle { fill:var(--ink); transition:fill .15s; }
.chambers button.side:hover circle, .chambers button.side:focus-visible circle { fill:var(--cream); }
.chambers button.side:focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.chamber-label { margin-top:.5rem; font-size:1rem; letter-spacing:0em; }

#member { position:fixed; top:clamp(12px,2vw,24px); right:clamp(12px,2vw,24px); z-index:30; width:min(340px,calc(100vw - 24px)); max-height:calc(100vh - 48px); overflow:auto; padding:1.1rem; background:var(--cream); color:var(--ink); border-radius:2px; box-shadow:0 8px 24px rgba(0,0,0,.4); }
#member[hidden] { display:none; }
.m-close { position:absolute; top:.4rem; right:.6rem; background:none; border:0; font:inherit; font-size:1.8rem; line-height:1; cursor:pointer; color:var(--ink); }
.m-head { display:flex; gap:.9rem; align-items:center; margin-bottom:.9rem; padding-right:1.5rem; }
.m-head img { width:72px; height:92px; object-fit:cover; filter:grayscale(1) contrast(1.1); border-radius:2px; background:var(--gray); }
.m-head div { display:flex; flex-direction:column; gap:.15rem; }
.m-head b { font-size:1.4rem; line-height:1; letter-spacing:-0.02em; }
.m-head small { font-size:.8rem; letter-spacing:0.01em; }
.m-group { align-self:flex-start; padding:.1rem .5rem; color:var(--cream); }
.m-group.g-esquerda { background:var(--ink); } .m-group.g-centrao { background:var(--centrao); color:var(--ink); } .m-group.g-direita { background:var(--blue); } .m-group.g-sem { background:var(--ink); }
#member dl { display:grid; grid-template-columns:auto 1fr; gap:.35rem .8rem; font-size:.85rem; }
#member dt { letter-spacing:0.01em; opacity:.6; }
#member dd { font-weight:600; text-transform:none; overflow-wrap:anywhere; }
.m-links { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:.9rem; padding-top:.8rem; border-top:2px solid var(--ink); }
#member .m-links a { display:grid; place-items:center; width:2rem; height:2rem; color:var(--ink); border-radius:50%; transition:background .15s,color .15s; }
#member .m-links a:hover, #member .m-links a:focus-visible { background:var(--ink); color:var(--cream); outline:none; }
.m-links svg { width:1.15rem; height:1.15rem; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } #go svg { animation:none; } .widget, .bill { transition:none; } }

.m-vote { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; padding:.7rem .9rem; color:var(--cream); }
.m-vote b { font-size:1.4rem; letter-spacing:-0.02em; text-transform:uppercase; }
.m-vote small { font-size:.8rem; opacity:.85; }
.m-vote.v-sim { background:#2FBF71; color:var(--ink); }
.m-vote.v-nao { background:#7A0E14; }
.m-vote.v-abstencao { background:#9A9A9A; color:var(--ink); }
.m-vote.v-outro { background:var(--cream); color:var(--ink); border:2px solid var(--ink); }
.m-vote.v-ausente { background:rgba(17,17,17,.22); color:var(--ink); }

.search { position:relative; margin-bottom:1rem; max-width:420px; }
.search input { width:100%; padding:.7em 1em; background:var(--cream); color:var(--ink); border:2px solid var(--ink); border-radius:0; font:inherit; font-size:1rem; text-transform:none; font-weight:600; }
.search input::placeholder { color:var(--gray); text-transform:uppercase; font-weight:900; }
.search input:focus { outline:3px solid var(--ink); outline-offset:2px; }
.results { margin-top:.5rem; display:flex; flex-direction:column; gap:.4rem; }
.result { display:flex; align-items:center; gap:.8rem; padding:.5rem .7rem; background:var(--cream); color:var(--ink); border:0; border-radius:2px; font:inherit; text-align:left; text-transform:uppercase; cursor:pointer; }
.result:hover, .result:focus-visible { background:var(--ink); color:var(--cream); outline:none; }
.result img { width:40px; height:50px; object-fit:cover; filter:grayscale(1); border-radius:2px; }
.result span { display:flex; flex-direction:column; }
.result b { font-size:1.1rem; line-height:1; letter-spacing:-0.01em; }
.result small { font-size:.75rem; }
.none { font-size:.9rem; }
.chambers .main circle.hl { fill:var(--yellow) !important; }

.m-vote { margin-bottom:.4rem; }
.m-vote.dim { opacity:.55; }
.m-mail { margin-top:.6rem; font-size:.9rem; font-weight:600; text-transform:none; overflow-wrap:anywhere; }

#toolbar { margin-top:2rem; }
#toolbar:empty { display:none; }
#toolbar + .chambers { margin-top:1rem; }

.chambers { align-items:flex-start; }
.rail { flex:0 0 clamp(250px,28%,330px); display:flex; flex-direction:column; gap:2rem; }
.rail .side { flex:none; width:55%; align-self:center; }
.timeline { max-height:25rem; overflow-y:auto; padding-right:.4rem; scrollbar-width:thin; scrollbar-color:var(--ink) transparent; }
.timeline ol { list-style:none; margin:0 0 0 .4rem; padding:0 0 0 1.2rem; border-left:3px solid var(--ink); display:flex; flex-direction:column; gap:.3rem; }
.timeline li { position:relative; display:flex; flex-direction:column; gap:.15rem; padding:.7rem .9rem; }
.timeline li::before { content:""; position:absolute; left:calc(-1.2rem - 7.5px); top:1.05rem; width:12px; height:12px; border-radius:50%; background:var(--ink); }
.timeline time, .timeline b { opacity:var(--o,1); }
.timeline time { font-size:.8rem; letter-spacing:0; }
.timeline b { font-size:1.2rem; line-height:1.05; letter-spacing:-0.01em; }
.timeline .tl-0 { background:var(--cream); }
.timeline .tl-0::before { background:var(--yellow); outline:3px solid var(--ink); }
.timeline .tl-0 b { font-size:1.5rem; }
.timeline .tl-1 { --o:.75; } .timeline .tl-2 { --o:.55; } .timeline .tl-3 { --o:.4; } .timeline .tl-old { --o:.3; }
.tl-empty { font-size:.95rem; letter-spacing:0em; }
.chambers .main.novotes circle { opacity:.6; }
.chambers .main circle.sponsor { fill:var(--yellow) !important; opacity:1 !important; }
.chambers .main circle.hl { opacity:1 !important; }

/* mobile: timeline goes under the selected chamber, then the other chamber, smaller */
@media (max-width:700px) {
  .chambers { flex-direction:column; align-items:stretch; gap:1.5rem; }
  .chambers .main { flex:none; width:100%; }
  .rail { flex:none; width:100%; }
  .rail .side { width:45%; }
  .votebar { flex-wrap:wrap; }
  .search { max-width:none; }
}

/* choice buttons (detail view) */
.choice { display:flex; flex-wrap:wrap; gap:12px; margin-top:2rem; }
.choice button { font:inherit; font-size:clamp(1rem,2vw,1.4rem); letter-spacing:-0.01em; text-transform:uppercase; padding:.9em 1.4em; background:var(--ink); color:var(--cream); border:3px solid var(--ink); border-radius:2px; cursor:pointer; transition:background .15s,color .15s; }
.choice button:hover, .choice button:focus-visible { background:var(--cream); color:var(--ink); outline:none; }
.choice button:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
.choice[hidden] { display:none; }
.choice button.active { background:var(--cream); color:var(--ink); }
.chambers[hidden], #toolbar[hidden], #about[hidden], #detail[hidden] { display:none; }

/* about text */
#about { margin:2.5rem auto 0; max-width:42rem; text-align:center; }
#about .about-lead { font-weight:500; text-transform:none; letter-spacing:0; font-size:clamp(1.1rem,2vw,1.4rem); line-height:1.6; }
#hemi-btn svg { display:block; width:100%; height:100%; }

/* mobile hero nav: left = faz acontece, down = militância, right = congresso */
#faz { position:fixed; inset:0; z-index:20; background:var(--red); color:var(--ink); padding:clamp(16px,4vw,48px); overflow:auto; display:none; }
#faz.open { display:block; }
#faz h2 { font-size:clamp(2.5rem,7vw,5rem); line-height:.95; letter-spacing:-0.04em; margin-top:1.5rem; }
#faz h2 span { color:var(--cream); }
#faz #faz-back { font:inherit; text-transform:uppercase; background:none; border:0; color:var(--ink); cursor:pointer; font-size:1.1rem; }
#faz .lead { margin-top:.75rem; font-weight:600; text-transform:none; }
#go-nav { position:absolute; left:0; right:0; bottom:clamp(16px,4vw,48px); padding:0 clamp(16px,4vw,48px); display:flex; justify-content:space-between; align-items:flex-end; opacity:0; visibility:hidden; transition:opacity .6s; pointer-events:none; }
#go-nav.show { opacity:1; visibility:visible; }
#go-nav > * { pointer-events:auto; display:flex; flex-direction:column; align-items:center; gap:.25rem; font:inherit; font-size:.95rem; letter-spacing:-0.01em; text-transform:uppercase; color:var(--ink); background:none; border:0; padding:.25rem; cursor:pointer; line-height:1.05; width:5.5rem; text-align:center; }
#go-nav svg { width:2.25rem; height:2.25rem; }
#go-left svg { animation:nudge-l 1.4s ease-in-out infinite; }
#go-right svg { animation:nudge-r 1.4s ease-in-out infinite; }
#congresso.open { animation:slide-in .3s ease-out; }
#faz.open { animation:slide-in-l .3s ease-out; }

@keyframes nudge-l { 50% { transform:translateX(-6px); } }
@keyframes nudge-r { 50% { transform:translateX(6px); } }
@keyframes slide-in { from { transform:translateX(100%); } to { transform:none; } }
@keyframes slide-in-l { from { transform:translateX(-100%); } to { transform:none; } }
@media (prefers-reduced-motion:reduce) { #go-nav svg, #congresso.open, #faz.open { animation:none; } }
@media (min-width:701px) { #go-nav > * { width:9rem; font-size:1.25rem; } #go-nav svg { width:3rem; height:3rem; } }
#go-nav { bottom:auto; top:50%; transform:translateY(-50%); align-items:center; }

/* clickable timeline */
.timeline .tl-btn { all:unset; box-sizing:border-box; display:flex; flex-direction:column; gap:.15rem; width:100%; cursor:pointer; text-transform:uppercase; font-weight:900; }
.timeline .tl-btn:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
.timeline li:hover { background:rgba(245,238,228,.35); }
.timeline li.tl-0:hover { background:var(--cream); }
.timeline li.open { background:var(--cream); }
.timeline li.open time, .timeline li.open b { opacity:1; }
.timeline .tl-more[hidden] { display:none; }
.timeline .tl-more { margin-top:.6rem; }
.timeline .tl-ex { font-weight:600; text-transform:none; letter-spacing:0; font-size:.95rem; line-height:1.4; }
.timeline .tl-raw { margin-top:.6rem; font-size:.8rem; }
.timeline .tl-raw summary { cursor:pointer; text-transform:uppercase; opacity:.7; }
.timeline .tl-raw p { margin-top:.4rem; font-weight:500; text-transform:none; letter-spacing:0; line-height:1.35; overflow-wrap:anywhere; }

/* timeline scenes */
.hemi-wrap { position:relative; }
.scene { position:absolute; left:50%; top:52%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:.9rem; pointer-events:none; width:min(34%,220px); }
.scene .doc { width:100%; aspect-ratio:3/4; background:var(--cream); color:var(--ink); border:3px solid var(--ink); border-radius:4px; padding:12% 11%; display:flex; flex-direction:column; gap:7%; box-shadow:0 12px 30px rgba(0,0,0,.35); animation:doc-in .8s cubic-bezier(.2,.9,.3,1.2) both; }
.scene .doc b { font-size:clamp(.8rem,1.6vw,1.2rem); letter-spacing:-.02em; }
.scene .doc i { display:block; height:5px; background:var(--ink); opacity:.35; border-radius:2px; }
.scene .doc-tag { background:var(--ink); color:var(--cream); padding:.5em .9em; border-radius:999px; font-size:clamp(.7rem,1.3vw,1rem); letter-spacing:.01em; text-align:center; animation:tag-in .5s .7s ease-out both; }
@keyframes doc-in { from { transform:translateY(-140%) rotate(-8deg) scale(.5); opacity:0; } to { transform:none; opacity:1; } }
@keyframes tag-in { from { transform:translateY(14px); opacity:0; } to { transform:none; opacity:1; } }
.timeline .tl-sub { font-size:.8rem; letter-spacing:0; text-transform:none; font-weight:600; opacity:.8; }
@media (prefers-reduced-motion:reduce) { .scene .doc, .scene .doc-tag { animation:none; } }

/* debate scene */
.chambers .main circle.speaker { fill:var(--yellow) !important; stroke:var(--ink); stroke-width:.25; opacity:1 !important; cursor:pointer;; }
.speaker-card { display:flex; flex-direction:column; align-items:center; gap:.3rem; animation:tag-in .35s ease-out both; }
.speaker-card img { width:clamp(90px,12vw,140px); aspect-ratio:1; object-fit:cover; border-radius:50%; border:4px solid var(--ink); background:var(--cream); box-shadow:0 8px 20px rgba(0,0,0,.35); }
.speaker-card b { font-size:clamp(.85rem,1.4vw,1.1rem); letter-spacing:-.02em; text-align:center; }
.speaker-card small { font-size:.75rem; letter-spacing:0; opacity:.8; }
.speaker-card .bubble { position:relative; order:-1; margin-bottom:14px; width:clamp(200px,26vw,320px); background:var(--cream); color:var(--ink); border:3px solid var(--ink); border-radius:18px; padding:.8em 1em; font-size:clamp(.9rem,1.5vw,1.15rem); font-weight:800; text-transform:none; letter-spacing:0; line-height:1.2; text-align:center; box-shadow:4px 4px 0 var(--ink); }
.speaker-card .bubble::after { content:""; position:absolute; left:50%; bottom:-15px; width:18px; height:18px; background:var(--cream); border-right:3px solid var(--ink); border-bottom:3px solid var(--ink); transform:translateX(-50%) rotate(45deg); }
.scene:has(.speaker-card) { width:auto; }

/* committee scenes */
.com-table { fill:var(--cream); stroke:var(--ink); stroke-width:.2; transform-box:fill-box; transform-origin:center; transition:opacity .9s, transform .9s; }
.com-table.gone { opacity:0; transform:scale(1.6); }
.com-tag { position:absolute; left:0; right:0; margin-inline:auto; width:fit-content; max-width:70%; z-index:2; pointer-events:none; animation:tag-in .5s .5s ease-out both; }
.scene .doc.edited i:nth-of-type(2), .scene .doc.edited i:nth-of-type(5) { background:#D34437; opacity:.9; height:4px; transform:rotate(-2deg); }
.scene .doc.edited i:nth-of-type(3) { background:none; border-top:3px solid #D34437; height:0; opacity:.9; border-radius:50%; transform:rotate(1.5deg); }
.scene .doc.edited::after { content:"✓ ok"; position:absolute; right:-14%; bottom:-10%; font-weight:900; font-size:clamp(1rem,2.4vw,1.8rem); color:#D34437; transform:rotate(-12deg); text-transform:none; }
.scene .doc { position:relative; }

/* play button */
.timeline .tl-controls { position:sticky; top:0; z-index:2; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 .6rem .4rem; }
.timeline .tl-play[hidden] { display:none; }
.timeline .tl-play { font:inherit; font-size:.95rem; letter-spacing:.01em; text-transform:uppercase; padding:.55em 1.1em; background:var(--ink); color:var(--cream); border:3px solid var(--ink); border-radius:999px; cursor:pointer; }
.timeline .tl-play:hover, .timeline .tl-play:focus-visible, .timeline .tl-play.on { background:var(--cream); color:var(--ink); outline:none; }
.chambers .main circle.v-pending { fill:#9A9A9A !important; opacity:.25 !important; }
.chambers .main circle.speaker.picked { stroke-width:.5; animation:pick-pulse .9s ease-out; }
@keyframes pick-pulse { 0% { stroke-width:1.6; } 100% { stroke-width:.5; } }

/* live gate: blurred congress + two big choices */
#congresso > #back { position:relative; z-index:3; }
#live-gate { position:fixed; inset:0; z-index:2; display:grid; place-items:center; padding:1.5rem; background:rgba(211,68,55,.35); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
#live-gate[hidden] { display:none; }
.gate-buttons { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(12px,2.5vw,28px); }
.gate-btn { font:inherit; text-transform:uppercase; letter-spacing:-.01em; font-size:clamp(1.5rem,4.2vw,3.2rem); padding:.8em 1.4em; background:var(--ink); color:var(--cream); border:0; border-radius:4px; cursor:pointer; transition:background .15s; }
.gate-buttons:has(.gate-btn:hover) .gate-btn:not(:hover), .gate-buttons:has(.gate-btn:focus-visible) .gate-btn:not(:focus-visible) { background:var(--gray); }
.gate-btn:focus-visible { outline:3px solid var(--cream); outline-offset:4px; }


.orgs { list-style:none; padding:0; margin:1.5rem 0 0; display:flex; flex-direction:column; gap:14px; }
.orgs li { display:flex; flex-direction:column; gap:.4rem; }
.orgs b { font-size:clamp(1.2rem,3vw,1.8rem); letter-spacing:-.03em; }
.orgs span { font-weight:600; text-transform:none; letter-spacing:0; line-height:1.4; }

/* faz: big left-aligned menu + section views */
#faz-menu[hidden], .faz-sec[hidden] { display:none; }
#faz-menu { display:flex; flex-direction:column; align-items:flex-start; gap:.2rem; margin-top:2rem; }
.faz-item { font:inherit; text-transform:uppercase; text-align:left; background:none; border:0; padding:0; color:var(--ink); cursor:pointer; font-size:clamp(2.2rem,8vw,6rem); line-height:1; letter-spacing:-.05em; transition:color .15s; }
.faz-item:hover, .faz-item:focus-visible { color:var(--cream); outline:none; }
.faz-sec { margin-top:2rem; max-width:48rem; }
.faz-sec h3 { font-size:clamp(2.2rem,7vw,5rem); line-height:.95; letter-spacing:-.05em; text-transform:uppercase; color:var(--ink); }
.faz-sec p { margin-top:1.2rem; font-weight:600; text-transform:none; letter-spacing:0; line-height:1.5; font-size:clamp(1.05rem,2vw,1.35rem); }
