
:root{box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px); background:#ececea}
body{margin:0; background:var(--bg,#ececea)}
.fbms.fbms-preview{--hero-top:110px; --hero-min:100svh}

.fbms-preview .page[hidden]{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .fbms-auto{--bg:#121212; --surface:#1c1c1c; --ink:#f1f1ef; --muted:#b4b4b0; --line:#343434; --maroon-2:#c2343e; --receipt:#1f1f1f}
  :root:not([data-theme="light"]){background:#121212}
}
:root[data-theme="dark"] .fbms-auto{--bg:#121212; --surface:#1c1c1c; --ink:#f1f1ef; --muted:#b4b4b0; --line:#343434; --maroon-2:#c2343e; --receipt:#1f1f1f}
:root[data-theme="dark"]{background:#121212}
:root[data-theme="light"] .fbms-auto{color-scheme:light}
.fbms.fbms-preview .page-hero{--hero-top:64px}
.fbms{--maroon:#5a0a10; --maroon-2:#8c1c24; --steel:#767676; --black:#000;
  --bg:#ececea; --surface:#ffffff; --ink:#141414; --muted:#4f4f4f; --line:#cfcfcc;
  --on-maroon:#fff; --receipt:#fbfbf8;
  --display:"Big Shoulders Display", "Arial Narrow", Impact, sans-serif;
  --body:"Barlow", "Segoe UI", Helvetica, Arial, sans-serif;
  --hero-top:3rem; --hero-min:88svh;
  box-sizing:border-box;}
.fbms, .fbms *, .fbms *::before, .fbms *::after{box-sizing:inherit}
.fbms{background:var(--bg); color:var(--ink); font:400 1.0625rem/1.6 var(--body); overflow-x:hidden; -webkit-font-smoothing:antialiased}
.fbms h1, .fbms h2, .fbms h3, .fbms p{text-transform:none; letter-spacing:normal}
.fbms img{max-width:100%; display:block}
.fbms a{color:inherit}
.fbms :focus-visible{outline:3px solid var(--maroon-2); outline-offset:3px}
.fbms .wrap{width:min(1120px, 100% - 2.5rem); margin-inline:auto}
.fbms h1, .fbms h2, .fbms h3{font-family:var(--display); line-height:.95; margin:0; letter-spacing:.005em}
.fbms h2{font-size:clamp(2.4rem, 6vw, 4.2rem); font-weight:900}
.fbms h3{font-size:1.6rem; font-weight:800}
.fbms p{margin:0 0 1rem; max-width:62ch}
.fbms section{padding:clamp(4rem, 9vw, 7.5rem) 0; position:relative}
.fbms .lede{font-size:1.2rem; color:var(--muted)}
.fbms h2 + .lede{margin-top:1.1rem}
.fbms .nav{position:fixed; top:0; left:0; right:0; z-index:50; padding-top:env(safe-area-inset-top,0px);
  background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px);
  border-bottom:1px solid transparent; transition:border-color .3s, transform .4s}
.fbms .nav.scrolled{border-color:var(--line)}
.fbms .nav .wrap{display:flex; align-items:center; justify-content:space-between; height:64px}
.fbms .brand{display:flex; align-items:center; gap:.6rem; text-decoration:none; font:800 1.35rem var(--display)}
.fbms .brand img{width:42px; height:42px}
.fbms .nav ul{list-style:none; display:flex; gap:1.6rem; margin:0; padding:0}
.fbms .nav ul a{text-decoration:none; font-weight:600; position:relative}
.fbms .nav ul a::after{content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--maroon-2);
  transform:scaleX(0); transform-origin:left; transition:transform .25s}
.fbms .nav ul a:hover::after{transform:scaleX(1)}
.fbms .btn{display:inline-flex; align-items:center; gap:.5rem; font:700 1rem var(--body); text-decoration:none; cursor:pointer;
  padding:.85rem 1.4rem; border-radius:4px; border:2px solid var(--maroon); background:var(--maroon); color:var(--on-maroon);
  transition:transform .15s, background .2s}
.fbms .btn:hover{background:var(--maroon-2); border-color:var(--maroon-2)}
.fbms .btn:active{transform:translateY(2px)}
.fbms .btn.ghost{background:transparent; color:var(--ink); border-color:var(--ink)}
.fbms .btn.ghost:hover{background:var(--ink); color:var(--bg)}
.fbms .nav .btn{padding:.55rem 1rem}
.fbms .menu-btn{display:none; background:none; border:0; color:var(--ink); font:700 1rem var(--body); cursor:pointer}
.fbms .hero{min-height:var(--hero-min); display:grid; align-items:center; padding:var(--hero-top) 0 110px; overflow:hidden; position:relative}
.fbms .hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center}
.fbms .hero h1 .h1link{text-decoration:none; color:inherit}
.fbms .hero h1{font-size:clamp(2.8rem, 6vw, 5.4rem); font-weight:900; text-transform:none}
.fbms .hero h1 .line{display:block; overflow:hidden}
.fbms .hero h1 .line span{display:block; transform:translateY(105%); animation:fbms-rise .9s cubic-bezier(.2,.8,.2,1) forwards}
.fbms .hero h1 .line:nth-child(2) span{animation-delay:.12s}
.fbms .hero h1 .line:nth-child(3) span{animation-delay:.24s; color:var(--maroon-2)}
.fbms .hero .lede{margin-top:1.5rem; opacity:0; animation:fbms-fade .8s .6s forwards}
.fbms .hero .ctas{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; opacity:0; animation:fbms-fade .8s .8s forwards}
.fbms .stamp{position:relative; justify-self:center; width:min(420px, 80vw)}
.fbms .stamp img{animation:fbms-stamp 1s .35s cubic-bezier(.3,1.5,.5,1) both; filter:drop-shadow(0 18px 30px rgba(0,0,0,.25))}
.fbms .stamp::before{content:""; position:absolute; inset:-6%; border:2px dashed var(--steel); border-radius:50%;
  animation:fbms-spin 40s linear infinite, fbms-fade 1s 1s both}
.fbms .hero-strip{position:absolute; left:0; right:0; bottom:0; background:var(--black); color:#fff; overflow:hidden;
  font:800 1.3rem var(--display); letter-spacing:.04em; padding:.7rem 0; white-space:nowrap}
.fbms .hero-strip .track{display:inline-flex; gap:2.5rem; animation:fbms-marquee 28s linear infinite; padding-left:2.5rem}
.fbms .hero-strip i{color:var(--maroon-2); font-style:normal}
@keyframes fbms-rise{to{transform:none}}
@keyframes fbms-fade{from{opacity:0}to{opacity:1}}
@keyframes fbms-stamp{from{opacity:0; transform:scale(1.6) rotate(-18deg)} to{opacity:1; transform:none}}
@keyframes fbms-spin{to{transform:rotate(360deg)}}
@keyframes fbms-marquee{to{transform:translateX(-50%)}}
.fbms .rv{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1)}
.fbms .rv.left{transform:translateX(-40px)}
.fbms .rv.right{transform:translateX(40px)}
.fbms .rv.pop{transform:scale(.85)}
.fbms .in .rv, .fbms .rv.in{opacity:1; transform:none}
.fbms .about .wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:start}
.fbms .about h2 .ul{background:linear-gradient(var(--maroon-2),var(--maroon-2)) no-repeat 0 92%/0% 8px; transition:background-size 1s .3s}
.fbms .about.in h2 .ul{background-size:100% 8px}
.fbms .pillars{display:grid; gap:0; margin-top:1.5rem; border-top:2px solid var(--ink)}
.fbms .pillars div{display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line)}
.fbms .pillars b{font:800 1.4rem var(--display); color:var(--maroon-2)}
.fbms .feeders{background:var(--maroon); color:#fff}
.fbms .feeders .lede{color:#e6cfd1}
.fbms .feed-map{display:grid; grid-template-columns:1fr auto; align-items:center; gap:2rem; margin-top:3rem}
.fbms .schools{display:grid; gap:.6rem}
.fbms .schools li{list-style:none; display:flex; align-items:center; gap:1rem; font:700 clamp(1.3rem,3vw,2rem) var(--display)}
.fbms .schools li::after{content:""; flex:1; height:2px; background:rgba(255,255,255,.45); transform:scaleX(0); transform-origin:left;
  transition:transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.fbms .feeders.in .schools li::after{transform:scaleX(1)}
.fbms .schools{padding:0; margin:0}
.fbms .dest{display:grid; place-items:center; width:clamp(130px,20vw,200px); aspect-ratio:1; border-radius:50%; background:#fff; color:var(--maroon);
  font:900 clamp(1.8rem,4vw,2.6rem) var(--display); text-align:center; line-height:.9}
.fbms .feeders.in .dest{animation:fbms-pulse 2.4s 1.2s ease-in-out infinite}
@keyframes fbms-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}50%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}
.fbms .impact .wrap{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center}
.fbms .receipt{background:var(--receipt); color:var(--ink); padding:2rem 2rem 2.6rem; font-family:var(--body);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.45); position:relative;
  clip-path:inset(0 0 100% 0); transition:clip-path 1.6s steps(24,end)}
.fbms .impact.in .receipt{clip-path:inset(0 0 0 0)}
.fbms .receipt::after{content:""; position:absolute; left:0; right:0; bottom:-12px; height:12px;
  background:linear-gradient(-45deg, transparent 8px, var(--receipt) 0) 0 0/16px 12px, linear-gradient(45deg, transparent 8px, var(--receipt) 0) 0 0/16px 12px}
.fbms .receipt header{text-align:center; border-bottom:2px dashed var(--line); padding-bottom:1rem; margin-bottom:1rem}
.fbms .receipt header strong{font:900 1.8rem var(--display); display:block}
.fbms .receipt header small{color:var(--muted)}
.fbms .row{display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; border-bottom:1px dotted var(--line); font-size:1rem}
.fbms .row span:last-child{font:800 1.35rem var(--display); color:var(--maroon-2); white-space:nowrap; font-variant-numeric:tabular-nums}
.fbms .row.total{border:0; border-top:2px solid var(--ink); margin-top:.6rem; padding-top:.9rem; font-weight:700}
.fbms .row.total span:last-child{font-size:2rem}
.fbms .receipt footer{text-align:center; margin-top:1.2rem; color:var(--muted); font-size:.95rem}
.fbms .impact .wrap.gallery{display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; margin-top:clamp(3rem,6vw,5rem); align-items:stretch}
.fbms .shot{margin:0; position:relative; overflow:hidden; background:var(--black); border-radius:4px;
  clip-path:inset(0 100% 0 0); transition:clip-path 1.1s cubic-bezier(.7,0,.2,1) var(--d,0s)}
.fbms .gallery.in .shot{clip-path:inset(0 0 0 0)}
.fbms .shot img{width:100%; height:100%; object-fit:cover; aspect-ratio:var(--ar,4/3); transform:scale(1.18); transition:transform 1.6s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.fbms .gallery.in .shot img{transform:scale(1)}
.fbms .shot:hover img{transform:scale(1.04); transition-delay:0s; transition-duration:.6s}
.fbms .shot figcaption{position:absolute; left:0; right:0; bottom:0; padding:2.2rem 1rem .9rem; color:#fff; font-weight:600; font-size:.98rem; line-height:1.35;
  background:linear-gradient(transparent, rgba(0,0,0,.82))}
.fbms .shot figcaption b{display:block; font:800 1.25rem var(--display); color:#fff}
.fbms .s7{grid-column:span 7}
.fbms .s5{grid-column:span 5}
@media (max-width:900px){
.fbms .impact .wrap.gallery{grid-template-columns:1fr}
.fbms .s7, .fbms .s5{grid-column:auto}
 }
@media (prefers-reduced-motion:reduce){
.fbms .shot{clip-path:none}
.fbms .shot img{transform:none}
 }
.fbms .hours{background:var(--surface)}
.fbms .hours .wrap{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center}
.fbms .chips{display:flex; flex-wrap:wrap; gap:.7rem}
.fbms .chips span{padding:.6rem 1rem; border:2px solid var(--ink); border-radius:999px; font-weight:600}
.fbms .chips span:nth-child(odd){background:var(--ink); color:var(--bg)}
.fbms .big-num{font:900 clamp(4rem,12vw,8rem) var(--display); color:var(--maroon-2); line-height:.85}
.fbms .help-grid{display:grid; grid-template-columns:repeat(4,1fr); margin-top:3rem; border-top:3px solid var(--ink)}
.fbms .help-grid article{padding:1.8rem 1.4rem 1.8rem 0; border-right:1px solid var(--line)}
.fbms .help-grid article:not(:first-child){padding-left:1.4rem}
.fbms .help-grid article:last-child{border-right:0}
.fbms .help-grid svg{width:44px; height:44px; stroke:var(--maroon-2); fill:none; stroke-width:2; margin-bottom:1rem}
.fbms .help-grid svg path, .fbms .help-grid svg rect, .fbms .help-grid svg circle{stroke-dasharray:120; stroke-dashoffset:120; transition:stroke-dashoffset 1.4s ease .3s}
.fbms .help.in .help-grid svg *{stroke-dashoffset:0}
.fbms .help-grid p{color:var(--muted); font-size:1rem; margin-top:.6rem}
.fbms .events{background:var(--black); color:#fff}
.fbms .events .lede{color:#bdbdbd}
.fbms .timeline{position:relative; margin-top:3rem; padding-left:2rem}
.fbms .timeline::before{content:""; position:absolute; left:6px; top:0; bottom:0; width:3px; background:var(--maroon-2);
  transform:scaleY(0); transform-origin:top; transition:transform 1.6s ease}
.fbms .events.in .timeline::before{transform:scaleY(1)}
.fbms .ev{position:relative; display:grid; grid-template-columns:9rem 1fr; gap:1.5rem; padding:1.3rem 0; border-bottom:1px solid #2c2c2c}
.fbms .ev::before{content:""; position:absolute; left:calc(-2rem + 1px); top:1.75rem; width:13px; height:13px; border-radius:50%; background:#fff; border:3px solid var(--maroon-2)}
.fbms .ev time{font:800 1.5rem/1 var(--display)}
.fbms .ev time small{display:block; font:500 .9rem var(--body); color:#bdbdbd; margin-top:.35rem}
.fbms .ev h3{font-size:1.5rem}
.fbms .ev p{color:#c9c9c9; margin:.3rem 0 0; font-size:1rem}
.fbms .ev .tag{display:inline-block; margin-top:.5rem; font-size:.85rem; font-weight:600; padding:.15rem .6rem; background:var(--maroon); border-radius:3px}
.fbms .cals{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:3rem}
.fbms .cal{display:block; text-decoration:none; color:#fff; border:2px solid #333; border-radius:4px; padding:1.6rem; transition:border-color .25s, background .25s, opacity .8s, transform .8s cubic-bezier(.2,.8,.2,1)}
.fbms .cal:hover{border-color:var(--maroon-2); background:#141414}
.fbms .cal svg{width:40px; height:40px; stroke:var(--maroon-2); fill:none; stroke-width:2; margin-bottom:.9rem}
.fbms .cal h3{font-size:1.8rem}
.fbms .cal p{color:#c9c9c9; margin:.5rem 0 1rem; font-size:1rem}
.fbms .cal-go{font-weight:700; border-bottom:2px solid var(--maroon-2); padding-bottom:2px}
@media (max-width:700px){
.fbms .cals{grid-template-columns:1fr}
}
.fbms .events .btn.ghost{color:#fff; border-color:#fff}
.fbms .events .btn.ghost:hover{background:#fff; color:#000}
.fbms .join{text-align:center; overflow:hidden}
.fbms .join h2{font-size:clamp(3rem,9vw,6.5rem)}
.fbms .join p{margin-inline:auto}
.fbms .join .btn{font-size:1.15rem; padding:1.05rem 1.8rem; margin-top:.5rem}
.fbms .qr-row{display:flex; justify-content:center; align-items:center; gap:3rem; margin-top:2.5rem; text-align:left; position:relative}
.fbms .qr{margin:0; background:#fff; padding:14px 14px 0; border-radius:14px; border:4px solid #000; box-shadow:0 20px 40px -20px rgba(0,0,0,.4); text-align:center}
.fbms .qr img{width:220px; height:220px; image-rendering:pixelated}
.fbms .qr figcaption{margin:10px -14px 0; background:#000; color:#fff; font:700 1rem var(--body); padding:.55rem; border-radius:0 0 8px 8px}
.fbms .join.in .qr{animation:fbms-qrglow 2.8s 1.2s ease-in-out infinite}
@keyframes fbms-qrglow{0%,100%{box-shadow:0 20px 40px -20px rgba(0,0,0,.4), 0 0 0 0 rgba(140,28,36,.45)}50%{box-shadow:0 20px 40px -20px rgba(0,0,0,.4), 0 0 0 16px rgba(140,28,36,0)}}
.fbms .qr-text{max-width:340px}
.fbms .qr-text h3{font-size:2rem; margin-bottom:.5rem}
.fbms .qr-text p{color:var(--muted)}
@media (max-width:700px){
.fbms .qr-row{flex-direction:column; gap:1.5rem; text-align:center}
}
.fbms .join.in .btn.wa{animation:fbms-nudge 3s 1s ease-in-out infinite}
@keyframes fbms-nudge{0%,90%,100%{transform:none}93%{transform:rotate(-3deg)}96%{transform:rotate(3deg)}}
.fbms .join .ghost-logo{position:absolute; width:520px; right:-160px; top:50%; opacity:.06; transform:translateY(-50%) rotate(-12deg); pointer-events:none; transition:transform 1.4s}
.fbms .join.in .ghost-logo{transform:translateY(-50%) rotate(0)}
.fbms .contact{background:var(--surface)}
.fbms .contact .wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem}
.fbms form{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.fbms label{display:grid; gap:.35rem; font-weight:600; font-size:.95rem}
.fbms label.full{grid-column:1/-1}
.fbms input, .fbms textarea, .fbms select{font:inherit; color:var(--ink); background:var(--bg); border:2px solid var(--line); border-radius:4px; padding:.75rem .9rem; transition:border-color .2s}
.fbms input:focus, .fbms textarea:focus, .fbms select:focus{border-color:var(--maroon-2); outline:none}
.fbms textarea{min-height:140px; resize:vertical}
.fbms .form-note{grid-column:1/-1; font-size:.95rem; color:var(--muted); min-height:1.5em}
.fbms footer.site{background:var(--maroon); color:#fff; padding:3rem 0}
.fbms footer.site .wrap{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1.5rem}
.fbms footer.site img{width:64px}
.fbms footer.site .brand{color:#fff}
.fbms footer.site small{color:#e6cfd1}
@media (max-width:900px){
.fbms .hero .wrap, .fbms .about .wrap, .fbms .impact .wrap, .fbms .hours .wrap, .fbms .contact .wrap{grid-template-columns:1fr; gap:2.5rem}
.fbms .stamp{order:-1; width:min(260px,62vw)}
.fbms .help-grid{grid-template-columns:1fr 1fr}
.fbms .help-grid article{padding:1.5rem 1rem !important; border-bottom:1px solid var(--line)}
.fbms .feed-map{grid-template-columns:1fr}
.fbms .dest{justify-self:start}
.fbms .nav ul{position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--line);
    max-height:0; overflow:hidden; transition:max-height .35s}
.fbms .nav ul.open{max-height:320px}
.fbms .nav ul li a{display:block; padding:.9rem 1.25rem}
.fbms .menu-btn{display:block}
.fbms .nav .btn{display:none}

}
@media (max-width:560px){
.fbms .help-grid{grid-template-columns:1fr}
.fbms .ev{grid-template-columns:1fr; gap:.4rem}
.fbms form{grid-template-columns:1fr}
.fbms .pillars div{grid-template-columns:1fr; gap:.2rem}

}
@media (prefers-reduced-motion:reduce){
.fbms, .fbms *, .fbms *::before, .fbms *::after{animation:none !important; transition:none !important}
.fbms .rv, .fbms .hero h1 .line span, .fbms .hero .lede, .fbms .hero .ctas{opacity:1 !important; transform:none !important}
.fbms .receipt{clip-path:none}
.fbms .timeline::before, .fbms .schools li::after{transform:none}
.fbms .about h2 .ul{background-size:100% 8px}
.fbms .help-grid svg *{stroke-dashoffset:0}

}
.fbms .btn-row{display:flex; flex-wrap:wrap; gap:.8rem}
.fbms .impact .wrap.btn-row{display:flex}
.fbms .contact-lines{line-height:2}
.fbms .btn.light{background:#fff; color:var(--maroon); border-color:#fff}
.fbms .btn.light:hover{background:#f1e3e4; border-color:#f1e3e4}
.fbms .btn.ghost.light{background:transparent; color:#fff; border-color:#fff}
.fbms .btn.ghost.light:hover{background:#fff; color:var(--maroon)}
.fbms .narrow{max-width:760px}
.fbms .page{display:block}
.fbms .page-hero{position:relative; overflow:hidden; background:var(--maroon); color:#fff; padding:calc(var(--hero-top) + 2.5rem) 0 clamp(3rem,7vw,5rem)}
.fbms .page-hero .eyebrow{font:700 .95rem var(--body); text-transform:uppercase; letter-spacing:.14em; color:#e6cfd1; margin-bottom:.8rem; opacity:0; animation:fbms-fade .6s .1s forwards}
.fbms .page-hero h1{font-size:clamp(3.2rem,9vw,6.5rem); font-weight:900}
.fbms .page-hero h1 .line{display:block; overflow:hidden}
.fbms .page-hero h1 .line span{display:block; transform:translateY(105%); animation:fbms-rise .9s .15s cubic-bezier(.2,.8,.2,1) forwards}
.fbms .page-hero .lede{color:#f0dfe0; margin-top:1.2rem; max-width:56ch; opacity:0; animation:fbms-fade .8s .5s forwards}
.fbms .page-hero .ph-logo{position:absolute; right:-70px; bottom:-90px; width:min(380px,55vw); opacity:.12; animation:fbms-roll 1.4s .2s cubic-bezier(.2,.8,.2,1) both; pointer-events:none}
.fbms .page-hero::after{content:""; position:absolute; left:0; bottom:0; height:6px; width:100%; background:#000; transform:scaleX(0); transform-origin:left; animation:fbms-grow 1s .4s forwards}
@keyframes fbms-roll{from{transform:translateX(120px) rotate(60deg); opacity:0} to{transform:none; opacity:.12}}
@keyframes fbms-grow{to{transform:scaleX(1)}}
.fbms .big-quote{font:800 clamp(1.7rem,3.6vw,2.5rem)/1.15 var(--display); color:var(--maroon-2); max-width:none; border-left:6px solid var(--maroon-2); padding-left:1.2rem; margin-bottom:2rem}
.fbms .history-tl{background:var(--surface)}
.fbms .mile{list-style:none; margin:3rem 0 0; padding:0; position:relative}
.fbms .mile::before{content:""; position:absolute; left:8.4rem; top:.4rem; bottom:.4rem; width:3px; background:var(--maroon-2); transform:scaleY(0); transform-origin:top; transition:transform 1.8s ease}
.fbms .history-tl.in .mile::before{transform:scaleY(1)}
.fbms .mile li{display:grid; grid-template-columns:7.4rem 1fr; gap:3rem; padding:1.2rem 0; position:relative}
.fbms .mile li::before{content:""; position:absolute; left:calc(8.4rem - 6px); top:1.7rem; width:15px; height:15px; border-radius:50%; background:var(--surface); border:3px solid var(--maroon-2)}
.fbms .mile li.now::before{background:var(--maroon-2)}
.fbms .mile .yr{font:900 1.5rem/1.1 var(--display); text-align:right; padding-top:.2rem}
.fbms .mile p{color:var(--muted); margin-top:.4rem}
.fbms .val-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.5rem}
.fbms .val-grid article{background:var(--surface); padding:1.8rem; border-top:5px solid var(--maroon-2); transition:transform .3s, opacity .8s}
.fbms .val-grid article:hover{transform:translateY(-6px)}
.fbms .val-grid b{font:900 3rem var(--display); color:var(--steel); display:block; line-height:1; margin-bottom:.6rem}
.fbms .val-grid p{color:var(--muted); margin-top:.5rem}
.fbms .cta-band{background:var(--black); color:#fff; text-align:center}
.fbms .cta-band h2{margin-bottom:1.6rem}
.fbms .cta-band .btn-row{justify-content:center}
.fbms .cal-page{padding-top:clamp(3rem,7vw,5rem)}
.fbms .cals.light .cal{color:var(--ink); border-color:var(--line); background:var(--surface)}
.fbms .cals.light .cal:hover{border-color:var(--maroon-2); background:var(--surface)}
.fbms .cals.light .cal p{color:var(--muted)}
.fbms .proj.alt{background:var(--surface)}
.fbms .proj-head{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:2.2rem}
.fbms .status{font:700 .85rem var(--body); letter-spacing:.1em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px; border:2px solid currentColor}
.fbms .status.done{color:var(--maroon-2)}
.fbms .status.next{background:var(--maroon); color:#fff; border-color:var(--maroon)}
.fbms .status.ongoing{color:var(--steel)}
.fbms .proj-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem}
.fbms .pcard{background:var(--surface); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s, opacity .8s}
.fbms .pcard:hover{transform:translateY(-5px); box-shadow:0 20px 40px -24px rgba(0,0,0,.4)}
.fbms .pcard img{width:100%; aspect-ratio:16/9; object-fit:cover}
.fbms .pcard > div:last-child{padding:1.5rem}
.fbms .pcard p{color:var(--muted); margin-top:.4rem}
.fbms .pcard-icon{aspect-ratio:16/9; display:grid; place-items:center; background:var(--maroon)}
.fbms .pcard-icon svg{width:88px; height:88px; fill:none; stroke:#fff; stroke-width:2; stroke-dasharray:160; stroke-dashoffset:160; transition:stroke-dashoffset 1.6s .3s ease}
.fbms .pcard.in .pcard-icon svg, .fbms .in .pcard .pcard-icon svg{stroke-dashoffset:0}
.fbms .pstats{display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1rem; padding-top:1rem; border-top:1px dashed var(--line)}
.fbms .pstats span{font-size:.92rem; color:var(--muted)}
.fbms .pstats b{display:block; font:900 2rem/1 var(--display); color:var(--maroon-2)}
.fbms .next-card{border:3px solid var(--ink); padding:clamp(1.5rem,4vw,2.5rem); border-radius:4px; position:relative; overflow:hidden}
.fbms .next-card::before{content:""; position:absolute; inset:0 auto 0 0; width:8px; background:repeating-linear-gradient(45deg,var(--maroon-2) 0 10px,#000 10px 20px)}
.fbms .dates{list-style:none; padding:0; margin:1rem 0 1.6rem; display:flex; flex-wrap:wrap; gap:1rem}
.fbms .dates li{background:var(--bg); padding:.8rem 1.1rem; border-radius:4px}
.fbms .dates b{display:block; font:800 1.4rem var(--display)}
.fbms .ongoing{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem}
.fbms .ongoing img{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:4px; margin-bottom:1rem}
.fbms .ongoing p{color:var(--muted); margin-top:.4rem}
.fbms .suggest{text-align:center; background:var(--surface)}
.fbms .suggest .wrap{display:grid; justify-items:center}
.fbms .suggest p{margin-inline:auto}
.fbms .suggest .btn{margin-top:.5rem}
.fbms .filters{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2rem}
.fbms .filters button{font:600 1rem var(--body); padding:.55rem 1.1rem; border-radius:999px; border:2px solid var(--ink); background:transparent; color:var(--ink); cursor:pointer; transition:background .2s, color .2s}
.fbms .filters button.on, .fbms .filters button:hover{background:var(--ink); color:var(--bg)}
.fbms .masonry{columns:2 320px; column-gap:1rem}
.fbms .gitem{break-inside:avoid; margin:0 0 1rem; opacity:0; transform:translateY(30px) scale(.97); transition:opacity .7s, transform .7s cubic-bezier(.2,.8,.2,1)}
.fbms .gitem.show{opacity:1; transform:none}
.fbms .gitem.hide{display:none}
.fbms .gopen{display:block; width:100%; padding:0; border:0; cursor:zoom-in; overflow:hidden; border-radius:4px; background:#000}
.fbms .gopen img{width:100%; transition:transform .6s, opacity .3s}
.fbms .gopen:hover img{transform:scale(1.05); opacity:.9}
.fbms .gitem figcaption{font-size:.95rem; color:var(--muted); padding:.5rem .1rem 0}
.fbms .gal-note{margin-top:2rem; color:var(--muted)}
.fbms .lightbox{position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.92); display:flex; align-items:center; justify-content:center; padding:4rem 1rem calc(2rem + env(safe-area-inset-bottom,0px)); animation:fbms-fade .25s}
.fbms .lightbox[hidden]{display:none}
.fbms .lightbox figure{margin:0; max-width:min(1000px,100%); text-align:center; color:#ddd}
.fbms .lightbox img{max-height:75vh; width:auto; margin:0 auto; border-radius:4px; animation:fbms-zoom .35s cubic-bezier(.2,.8,.2,1)}
.fbms .lightbox figcaption{margin-top:.8rem}
.fbms .lightbox button{position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font-size:1.8rem; line-height:1; cursor:pointer}
.fbms .lightbox button:hover{background:var(--maroon-2)}
.fbms .lb-close{top:calc(1rem + env(safe-area-inset-top,0px)); right:1rem}
.fbms .lb-prev{left:1rem; top:50%}
.fbms .lb-next{right:1rem; top:50%}
@keyframes fbms-zoom{from{transform:scale(.9); opacity:0}}
.fbms .lgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.4rem}
.fbms .lcard{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:2rem; text-align:center; transition:transform .3s, box-shadow .3s, opacity .8s}
.fbms .lcard:hover{transform:translateY(-6px); box-shadow:0 22px 44px -26px rgba(0,0,0,.45)}
.fbms .lcard .avatar{width:120px; height:120px; margin:0 auto 1.2rem; border-radius:50%; background:var(--bg); padding:10px; border:3px solid var(--maroon-2)}
.fbms .lcard .avatar img{width:100%}
.fbms .in .lcard .avatar, .fbms .lcard.in .avatar{animation:fbms-spinin 1s cubic-bezier(.2,.8,.2,1)}
@keyframes fbms-spinin{from{transform:rotate(-120deg) scale(.6)}}
.fbms .lcard .role{font:700 .85rem var(--body); letter-spacing:.12em; text-transform:uppercase; color:var(--maroon-2); margin:0 auto .3rem}
.fbms .lcard p{margin-inline:auto; color:var(--muted); margin-top:.6rem}
.fbms .lcard a{font-weight:600}
.fbms .contact-page .wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem}
.fbms .cline{display:flex; gap:1rem; align-items:center; margin-bottom:1.4rem}
.fbms .cline svg{width:44px; height:44px; flex:none; fill:none; stroke:var(--maroon-2); stroke-width:2.2}
.fbms .cline small{display:block; color:var(--muted); font-size:.85rem; text-transform:uppercase; letter-spacing:.1em}
.fbms .cline a{font:800 1.4rem var(--display); text-decoration:none; word-break:break-word}
.fbms .cline a:hover{color:var(--maroon-2)}
.fbms .qr.small{display:inline-block; margin:1rem 0}
.fbms .qr.small img{width:160px; height:160px}
@media (max-width:900px){
.fbms .proj-grid, .fbms .ongoing, .fbms .val-grid, .fbms .contact-page .wrap{grid-template-columns:1fr}
.fbms .contact-page .wrap{gap:2.5rem}

}
@media (max-width:560px){
.fbms .mile::before{left:6px}
.fbms .mile li{grid-template-columns:1fr; gap:.3rem; padding-left:2rem}
.fbms .mile li::before{left:0}
.fbms .mile .yr{text-align:left}

}
@media (prefers-reduced-motion:reduce){
.fbms .page-hero h1 .line span, .fbms .page-hero .lede, .fbms .page-hero .eyebrow, .fbms .gitem{opacity:1 !important; transform:none !important}
.fbms .page-hero::after, .fbms .mile::before{transform:none}
.fbms .pcard-icon svg{stroke-dashoffset:0}

}
.fbms .school-groups{display:grid; gap:2rem 2.5rem; grid-template-columns:1fr 1fr; align-items:start}
@media (max-width:760px){
.fbms .school-groups{grid-template-columns:1fr}
}
.fbms .school-group h3{font:800 1.05rem var(--body); text-transform:uppercase; letter-spacing:.12em; color:#fff; margin-bottom:.7rem}
.fbms .school-group h3 span{display:block; font-weight:500; letter-spacing:.02em; text-transform:none; color:#e6cfd1; font-size:.95rem; margin-top:.2rem}
.fbms .share-qr .wrap{display:grid; grid-template-columns:auto 1fr; gap:3rem; align-items:center}
.fbms .site-qr{margin:0; width:220px; background:#fff; padding:8px; border-radius:6px; box-shadow:0 20px 40px -22px rgba(0,0,0,.45); transition:transform .4s}
.fbms .site-qr:hover{transform:rotate(-2deg) scale(1.03)}
.fbms .site-qr img{width:100%; height:auto}
.fbms .share-qr .lede{margin:1rem 0 1.4rem}
@media (max-width:700px){
.fbms .share-qr .wrap{grid-template-columns:1fr; justify-items:center; text-align:center}
.fbms .share-qr .lede{margin-inline:auto}
 }


.fbms .nav .wrap{gap:1rem}
.fbms .nav ul{gap:1.1rem}
.fbms .nav ul a{font-size:.95rem; white-space:nowrap}
.fbms .nav ul a.cur::after{transform:scaleX(1)}
@media (max-width:1100px){
  .fbms .nav ul{position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--line); max-height:0; overflow:hidden; transition:max-height .35s}
  .fbms .nav ul.open{max-height:480px}
  .fbms .nav ul li a{display:block; padding:.9rem 1.25rem}
  .fbms .menu-btn{display:block}
  .fbms .nav .btn{display:none}
}
