/* Public club pages. Palette and structure follow the SIFLC interest-meeting deck:
   maroon section slides, off-white content slides, charcoal text, gray rules. */
body.public{
  --m:#6F263D; --md:#561D2F; --ch:#333333; --off:#F4F1EE; --gr:#A2AAAD; --mu:#5E5E5E; --rule:#D9D4CF;
  --hd:"Archivo","Arial Narrow",Arial,sans-serif; --bd:"Source Serif 4",Georgia,serif; --mono:"IBM Plex Mono",Consolas,monospace;
  --r:2px;
  background:#fff;color:var(--ch);font-family:var(--bd);font-size:1.125rem;line-height:1.65;
}
body.public h1,body.public h2,body.public h3{font-family:var(--hd);font-stretch:88%;letter-spacing:-.01em;color:var(--m);margin:0;border:0;padding:0}
body.public a{color:var(--m)}
body.public :focus-visible{outline:3px solid #1B4F7A;outline-offset:2px}
/* header: off-white with the deck's thin maroon rule on top */
body.public .top.pub{background:#fff;color:var(--ch);border-top:6px solid var(--m);border-bottom:1px solid var(--rule);padding:.5rem 1.25rem;justify-content:space-between}
body.public .brand{color:var(--ch);font-family:var(--hd);font-stretch:88%;font-weight:800;letter-spacing:.04em}
body.public .brand img{border-radius:0}
body.public .pubnav{display:flex;align-items:center;gap:.15rem;margin-left:auto}
body.public .pubnav a{color:var(--ch);text-decoration:none;padding:.5rem .8rem;font-family:var(--hd);font-size:.95rem;font-weight:600;border-bottom:3px solid transparent}
body.public .pubnav a:hover{border-bottom-color:var(--gr)}
body.public .pubnav a[aria-current=page]{border-bottom-color:var(--m);color:var(--m)}
body.public .pubnav .login-link{margin-left:.8rem;background:var(--m);color:#fff;border:0;border-radius:var(--r);padding:.5rem 1rem}
body.public .pubnav .login-link:hover{background:var(--md);border-bottom-color:transparent}
body.public .nav-btn{display:none;margin-left:auto;background:#fff;border:1px solid var(--ch);color:var(--ch);border-radius:var(--r);padding:.45rem .9rem;font:600 .95rem var(--hd)}
/* shared pieces */
body.public .label{margin:0 0 .5rem;font-family:var(--mono);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
body.public .label.light{color:#EBD9DF}
body.public .wrap{max-width:70rem;margin:0 auto;padding:4.5rem 1.25rem}
body.public .wrap h2,body.public .band h2{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1;margin-bottom:1rem}
body.public .sub{max-width:38rem;margin:0 0 1.5rem}
body.public .band.off{background:var(--off)}
body.public .band.maroon{background:var(--m);color:#fff}
body.public .band.maroon h2{color:#fff}
body.public .btn{display:inline-block;padding:.75rem 1.4rem;font:700 1rem var(--hd);letter-spacing:.02em;text-decoration:none;color:#fff;background:var(--m);border:2px solid var(--m);border-radius:var(--r);cursor:pointer}
body.public .btn:hover{background:var(--md);border-color:var(--md);color:#fff}
body.public .btn.inverse{background:#fff;color:var(--m);border-color:#fff}
body.public .btn.inverse:hover{background:var(--off);border-color:var(--off);color:var(--md)}
body.public .btn.full{width:100%;margin-top:1rem}
body.public .textlink{font-family:var(--hd);font-weight:700;color:var(--m);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:2px}
body.public .textlink:hover{color:var(--md)}
body.public .textlink.light{color:#fff}
body.public .textlink.light:hover{color:var(--off)}
body.public .more{margin-top:1.5rem}
body.public .rk{display:block;height:auto;pointer-events:none;user-select:none}
/* hero: a maroon title slide, photo on the right edge */
body.public .hero{background:var(--m);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:34rem;overflow:hidden}
body.public .hero-text{padding:4.5rem 2.5rem 4.5rem max(1.25rem,calc((100vw - 70rem)/2 + 1.25rem));align-self:center}
body.public .hero h1{color:#fff;font-size:clamp(2.4rem,5.2vw,4.4rem);line-height:1.02;font-weight:800;font-stretch:80%;margin-bottom:1.2rem}
body.public .hero h1 span{font-weight:400}
body.public .hero .label{color:#EBD9DF}
body.public .lede{font-size:1.3rem;line-height:1.5;margin:0 0 1.8rem;max-width:34rem}
body.public .cta-row{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;margin:0}
body.public .hero-art{position:relative;min-height:22rem}
body.public .hero-art .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
body.public .hero-art .seal{position:absolute;top:1.2rem;right:1.2rem;width:5rem;height:5rem}
body.public .hero-rk{position:absolute;left:-3.5rem;bottom:0;height:24rem;width:auto;filter:drop-shadow(0 6px 0 rgba(0,0,0,.18))}
/* gray strip like the deck's footer band */
body.public .strip{background:var(--gr);color:#1c1c1c;display:flex;gap:.5rem 3rem;flex-wrap:wrap;justify-content:center;padding:.8rem 1.25rem}
body.public .strip p{margin:0;font-family:var(--mono);font-size:.88rem;font-weight:600}
/* 01 what we do */
body.public .split{display:grid;grid-template-columns:5fr 7fr;gap:4rem}
body.public .ledger-row{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1.5rem;padding:1.2rem 0;border-top:2px solid var(--m)}
body.public .ledger-row:last-child{border-bottom:1px solid var(--rule)}
body.public .ledger-row h3{font-size:1.6rem;font-weight:800}
body.public .ledger-row p{margin:0}
/* 02 events */
body.public .events-sec{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:3rem;align-items:end}
body.public .events{list-style:none;margin:1.5rem 0 0;padding:0}
body.public .event{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1.5rem;padding:1.3rem 0;border-top:1px solid var(--gr)}
body.public .event h3{font-size:1.3rem;font-weight:700;color:var(--ch);margin-bottom:.1rem}
body.public .event p{margin:.15rem 0}
body.public .event .when{font-family:var(--mono);font-size:.85rem;color:var(--mu)}
body.public .date{background:var(--m);color:#fff;text-align:center;padding:.5rem 0;align-self:start}
body.public .date .m{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
body.public .date .d{display:block;font-family:var(--hd);font-size:2rem;font-weight:800;line-height:1.05}
body.public .date.tba{background:transparent;color:var(--m);border:2px solid var(--m)}
body.public .event.past{display:none}
body.public .ev-art .rk{width:100%;max-width:14rem;margin-left:auto}
/* 03 gap */
body.public .gap{display:grid;grid-template-columns:5fr 6fr;gap:4rem;align-items:center}
body.public .stats{display:grid;gap:2rem}
body.public .stat p{margin:0}
body.public .stat .big{font-family:var(--hd);font-stretch:80%;font-size:clamp(4rem,9vw,6.5rem);font-weight:800;line-height:.95}
body.public .stat .src{font-family:var(--mono);font-size:.8rem;color:#EBD9DF;margin-top:.3rem}
body.public .band.maroon .sub{color:#fff}
/* 04 manual */
body.public .manual-sec{display:grid;grid-template-columns:7fr 5fr;gap:3.5rem;align-items:center}
body.public .man-art{position:relative}
body.public .man-art .photo{width:100%;height:auto;display:block}
body.public .man-rk{position:absolute;right:-1rem;bottom:-1.5rem;height:15rem;width:auto}
/* inner page headers: off-white slide with a maroon rule */
body.public .pagehead{background:var(--off);border-bottom:1px solid var(--rule);overflow:hidden}
body.public .pagehead-in{max-width:70rem;margin:0 auto;padding:3rem 1.25rem 0;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
body.public .pagehead-in>div{padding-bottom:2.6rem}
body.public .pagehead h1{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.04;font-weight:800;margin-bottom:.6rem}
body.public .pagehead .lede{margin:0;font-size:1.2rem;max-width:36rem}
body.public .ph-rk{height:12rem;width:auto;flex:none}
body.public .prose{max-width:46rem;margin-left:max(1.25rem,calc((100vw - 70rem)/2 + 1.25rem));margin-right:auto}
body.public .prose h2{font-size:1.7rem;margin:2.4rem 0 .5rem}
body.public .prose h2:first-child{margin-top:0}
/* e-board: four columns, square tiles */
body.public .people{list-style:none;margin:2rem 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1.5rem}
body.public .people.one{grid-template-columns:repeat(4,minmax(0,1fr))}
body.public .person{border-top:3px solid var(--m);padding-top:1rem}
body.public .person h3{font-size:1.25rem;font-weight:800;color:var(--ch)}
body.public .person .role{margin:.1rem 0 0;color:var(--m);font-family:var(--mono);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
body.public .person .bio{margin:.5rem 0 0;font-size:1rem;color:var(--mu)}
body.public .person .nick{font-weight:400;color:var(--mu)}
body.public .avatar{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;margin-bottom:1rem}
body.public .avatar.init{display:grid;place-items:center;background:var(--m);color:#fff;font-family:var(--hd);font-size:3rem;font-weight:800;letter-spacing:.04em}
body.public .person.tbd h3{color:var(--mu);font-weight:600}
body.public .person.tbd .avatar.init{background:var(--off);color:var(--mu);border:2px dashed var(--gr)}
body.public .advisor-h{font-size:1.5rem;margin-top:3rem}
/* faq */
body.public .faq details{border-top:1px solid var(--gr)}
body.public .faq details:last-child{border-bottom:1px solid var(--gr)}
body.public .faq summary{cursor:pointer;font:700 1.15rem var(--hd);padding:1.05rem 0;list-style:none;display:flex;justify-content:space-between;gap:1.5rem;color:var(--ch)}
body.public .faq summary:hover{color:var(--m)}
body.public .faq summary::-webkit-details-marker{display:none}
body.public .faq summary::after{content:"+";color:var(--m);font-size:1.5rem;line-height:1}
body.public .faq details[open] summary::after{content:"\2212"}
body.public .faq details p{margin:0 0 1.2rem;max-width:40rem}
/* contact */
body.public .contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}
body.public .contact h2{font-size:1.3rem;margin:1.8rem 0 .3rem}
body.public .contact h2:first-child{margin-top:0}
body.public .note{background:var(--m);color:#fff;padding:2rem;align-self:start}
body.public .note h2{color:#fff;margin-top:0!important}
body.public .note .btn{background:#fff;color:var(--m);border-color:#fff}
body.public .note .btn:hover{background:var(--off)}
body.public .social{display:flex;gap:1rem;flex-wrap:wrap;margin:.3rem 0}
body.public .social.stack{flex-direction:column;gap:.35rem}
body.public .social span{color:var(--mu)}
/* gallery */
body.public .grid{list-style:none;margin:0;padding:0;columns:3 16rem;column-gap:1rem}
body.public .grid li{break-inside:avoid;margin:0 0 1rem}
body.public .grid a{display:block}
body.public .grid img{width:100%;height:auto;display:block}
body.public .grid p{margin:.3rem 0 0;font-size:.9rem;color:var(--mu)}
body.public .empty{max-width:34rem;border-top:3px solid var(--m);padding-top:1rem}
body.public .empty h2{font-size:1.6rem;margin-bottom:.5rem}
body.public .lightbox{position:fixed;inset:0;z-index:200;background:rgba(20,10,14,.94);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:1rem}
body.public .lightbox[hidden]{display:none}
body.public .lightbox figure{margin:0;text-align:center;color:#fff}
body.public .lightbox img{max-width:100%;max-height:80vh;margin:0 auto;display:block}
body.public .lightbox button{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.55);padding:.6rem .9rem;border-radius:var(--r);font:600 1rem var(--hd);cursor:pointer}
body.public .lightbox button:hover{background:rgba(255,255,255,.25)}
body.public .lightbox .lb-close{position:absolute;top:1rem;right:1rem}
/* login */
body.public .login-wrap{min-height:72vh;display:flex;gap:1rem;align-items:flex-end;justify-content:center;padding:3rem 1.25rem 0;background:var(--m)}
body.public .login-rk .rk{height:23rem;width:auto}
body.public .login-card{width:min(26rem,100%);background:#fff;padding:2rem;align-self:center;margin-bottom:3rem}
body.public .login-card .seal{display:block;margin:0 auto .5rem;width:6rem;height:6rem}
body.public .login-card h1{font-size:1.9rem;font-weight:800;margin:.3rem 0 .4rem;text-align:center}
body.public .login-card p{margin:.4rem 0}
body.public .login-card form{margin-top:1rem}
body.public .login-card label{display:block;font:700 .95rem var(--hd);margin-bottom:.3rem}
body.public .login-card input[type=password]{width:100%;padding:.75rem .8rem;font:inherit;border:2px solid var(--gr);border-radius:var(--r);background:#fff;color:var(--ch)}
body.public .err{color:#9B1C31;font-weight:700}
body.public .help{font-size:.95rem;color:var(--mu)}
/* footer: gray band echo */
body.public .pfoot{background:var(--ch);color:#E8E4E0;padding:3rem 1.25rem 1.5rem;margin-top:0}
body.public .pfoot a{color:#fff}
body.public .pfoot-in{max-width:70rem;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
body.public .pfoot p{margin:.4rem 0}
body.public .pfoot .ftitle{font-family:var(--mono);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--gr)}
body.public .pfoot .social span{color:var(--gr)}
body.public .pfoot .fnote{max-width:70rem;margin:2.5rem auto 0;font-size:.9rem;color:var(--gr);border-top:1px solid #555;padding-top:1rem}
body.public .pfoot.has-walker{padding-bottom:5.5rem}
/* walking Rookie, driven by scroll position */
body.public .walker{position:fixed;left:0;bottom:0;z-index:40;width:auto;height:5.6rem;pointer-events:none;will-change:transform}
body.public .walker img{display:block;height:100%;width:auto;filter:drop-shadow(0 3px 0 rgba(0,0,0,.2))}
body.public .walker img+img{display:none}
@media (max-width:980px){
body.public .hero{grid-template-columns:1fr}
body.public .hero-text{padding:3rem 1.25rem 2rem}
body.public .hero-art{min-height:17rem}
body.public .hero-rk{left:auto;right:.5rem;height:16rem}
body.public .split,body.public .gap,body.public .manual-sec,body.public .contact{grid-template-columns:1fr;gap:2.5rem}
body.public .events-sec{grid-template-columns:1fr}
body.public .ev-art{display:none}
body.public .people,body.public .people.one{grid-template-columns:repeat(2,minmax(0,1fr))}
body.public .pfoot-in{grid-template-columns:1fr}
body.public .man-rk{right:0;height:11rem}
body.public .login-rk{display:none}
body.public .login-wrap{align-items:center;padding-bottom:3rem}
body.public .login-card{margin-bottom:0}
}
@media (max-width:760px){
body.public .nav-btn{display:block}
body.public .top.pub{flex-wrap:wrap}
body.public .pubnav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;margin:0;padding:.4rem 0}
body.public .pubnav.open{display:flex}
body.public .pubnav a{border-bottom:0;border-left:3px solid transparent;padding:.7rem .6rem}
body.public .pubnav a[aria-current=page]{border-left-color:var(--m)}
body.public .pubnav .login-link{margin:.5rem 0 0;text-align:center}
body.public .wrap{padding:3rem 1.25rem}
body.public .ledger-row{grid-template-columns:1fr;gap:.3rem}
body.public .event{grid-template-columns:4rem minmax(0,1fr);gap:1rem}
body.public .ph-rk{height:8rem}
body.public .pagehead-in>div{padding-bottom:1.8rem}
body.public .walker{height:4.2rem}
body.public .prose{margin-left:0}
}
@media (max-width:420px){
body.public .people,body.public .people.one{grid-template-columns:1fr}
body.public .ph-rk{display:none}
}
@media (prefers-reduced-motion:reduce){
body.public .walker{transition:none}
}
@media print{
body.public .walker,body.public .nav-btn,body.public .lightbox{display:none!important}
body.public .hero{min-height:0}
}
body.public .date.tba .d{font-size:1.25rem;padding:.25rem 0}
@media (max-width:980px){body.public .hero-art .seal{right:auto;left:1rem;width:4rem;height:4rem}}
