*{box-sizing:border-box}html{min-height:100%;background:#131518}body{margin:0;min-height:100vh;color:#f7f7f7;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 50% -8%,rgba(242,140,40,.16),transparent 36%),linear-gradient(rgba(19,21,24,.93),rgba(19,21,24,.99)),url('/assets/forge-texture.svg');background-size:auto,auto,620px}button,a{font:inherit}.shell{width:min(900px,100%);margin:0 auto;padding:30px 16px 48px}.hero{text-align:center;padding:8px 10px 24px}.logo{display:block;width:104px;height:104px;object-fit:contain;margin:0 auto 14px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.35))}.eyebrow,.section-label{margin:0 0 7px;color:#f28c28;font-size:.76rem;font-weight:850;letter-spacing:.15em}.hero h1{margin:0;font-size:clamp(2.1rem,8vw,3.35rem);line-height:1.02;letter-spacing:-.04em}.intro{max-width:650px;margin:14px auto 0;color:#c5c9cf;font-size:1rem;line-height:1.55}.panel{background:rgba(37,40,45,.94);border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.08)}.toolbar h2{margin:0;font-size:1.24rem}.refresh,.secondary-button{border:1px solid rgba(255,255,255,.16);background:#30343a;color:#fff;border-radius:11px;padding:9px 12px;font-size:.86rem;font-weight:750;cursor:pointer}.refresh:disabled,.secondary-button:disabled{opacity:.55;cursor:default}.filter-bar{display:flex;gap:8px;overflow-x:auto;padding:15px 1px 3px;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{white-space:nowrap;border:1px solid rgba(255,255,255,.12);background:#202328;color:#c8ccd2;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:800;cursor:pointer}.filter-chip.is-active{background:#f28c28;border-color:#f28c28;color:#17191d}.status{display:flex;justify-content:center;align-items:center;gap:10px;color:#c9ccd1;padding:34px 8px}.spinner{width:19px;height:19px;border:2px solid rgba(255,255,255,.18);border-top-color:#f28c28;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cache-notice{margin:15px 0 0;padding:10px 12px;border:1px solid rgba(242,140,40,.28);border-radius:10px;background:rgba(242,140,40,.08);color:#d6d8dc;font-size:.82rem;line-height:1.4}.event-list{padding-top:16px}.month-group+.month-group{margin-top:24px}.month-heading{display:flex;align-items:center;gap:10px;margin:0 0 10px;color:#aeb3ba;font-size:.77rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.month-heading:after{content:"";height:1px;flex:1;background:rgba(255,255,255,.08)}.event-grid{display:grid;gap:11px}.event-card{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr);gap:14px;background:#1b1e22;border:1px solid rgba(255,255,255,.085);border-radius:17px;padding:15px;overflow:hidden}.event-card.is-next{border-color:rgba(242,140,40,.4);box-shadow:inset 3px 0 0 #f28c28}.date-tile{width:62px;height:67px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:13px;background:#262a30;border:1px solid rgba(255,255,255,.09)}.date-tile strong{font-size:1.55rem;line-height:1}.date-tile span{margin-top:4px;color:#f28c28;font-size:.72rem;font-weight:900;letter-spacing:.11em}.event-main{min-width:0}.event-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.code{display:inline-flex;align-items:center;justify-content:center;min-width:43px;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:900;letter-spacing:.08em;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#f5f5f5}.code.ber{background:rgba(64,131,255,.13);border-color:rgba(64,131,255,.36);color:#9fc1ff}.code.swb{background:rgba(242,140,40,.14);border-color:rgba(242,140,40,.4);color:#ffb665}.code.mer{background:rgba(63,169,112,.13);border-color:rgba(63,169,112,.36);color:#86d9aa}.code.mbb{background:rgba(139,46,70,.2);border-color:rgba(181,76,103,.4);color:#efa1b5}.code.evt{background:rgba(255,208,87,.12);border-color:rgba(255,208,87,.34);color:#ffe28b}.next-badge{color:#f28c28;font-size:.69rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.event-card h3{margin:8px 0 5px;font-size:1.08rem;line-height:1.25}.meta{display:flex;gap:8px;align-items:flex-start;margin:5px 0;color:#b9bec5;font-size:.88rem;line-height:1.42}.meta svg{width:16px;height:16px;min-width:16px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.description{margin:10px 0 0;color:#d2d5d9;font-size:.88rem;line-height:1.48;white-space:pre-line}.directions{display:inline-flex;align-items:center;gap:6px;margin-top:11px;color:#ffad5b;text-decoration:none;font-size:.82rem;font-weight:850}.directions:hover{text-decoration:underline}.empty{text-align:center;padding:31px 12px 18px}.empty h3{margin:0 0 8px;font-size:1.08rem}.empty p{margin:0;color:#bfc2c8;line-height:1.5}.error h3{color:#ffd1d1}.secondary-button{margin-top:16px}.page-footer{max-width:650px;margin:18px auto 0;text-align:center;color:#8e939a;font-size:.8rem;line-height:1.45}[hidden]{display:none!important}@media(min-width:680px){.shell{padding-top:44px}.panel{padding:23px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{grid-template-columns:58px minmax(0,1fr);padding:16px}.date-tile{width:58px}.event-card.is-next{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

/* v0.2.0 — member identification / verification */
.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.my-fgm{border:1px solid rgba(242,140,40,.45);background:rgba(242,140,40,.11);color:#ffb665;border-radius:11px;padding:9px 12px;font-size:.86rem;font-weight:850;cursor:pointer}.my-fgm:hover{background:rgba(242,140,40,.18)}.my-fgm.is-verified{background:#f28c28;border-color:#f28c28;color:#17191d}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:rgba(5,7,9,.76);backdrop-filter:blur(5px)}.member-modal{position:relative;width:min(540px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;background:#202328;border:1px solid rgba(255,255,255,.11);border-radius:22px;padding:28px 22px 24px;box-shadow:0 30px 90px rgba(0,0,0,.56)}.modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:#d9dde2;font-size:25px;line-height:1;cursor:pointer}.member-state{padding-top:4px}.member-kicker{margin:0 42px 8px 0;color:#f28c28;font-size:.72rem;font-weight:900;letter-spacing:.14em}.member-state h2{margin:0 38px 12px 0;font-size:1.7rem;letter-spacing:-.025em}.member-copy{margin:0;color:#c7cbd1;font-size:.95rem;line-height:1.58}.member-form{display:grid;gap:10px;margin-top:22px}.member-form label{color:#f3f4f6;font-size:.82rem;font-weight:800}.member-form input{width:100%;border:1px solid rgba(255,255,255,.15);background:#15181c;color:#fff;border-radius:11px;padding:13px 14px;font-size:16px;outline:none}.member-form input:focus{border-color:#f28c28;box-shadow:0 0 0 3px rgba(242,140,40,.12)}.member-form input:disabled{opacity:.62}.member-form #memberCode{text-align:center;font-size:1.55rem;font-weight:850;letter-spacing:.22em}.member-primary{margin-top:5px;border:0;border-radius:11px;background:#f28c28;color:#17191d;padding:13px 15px;font-weight:900;cursor:pointer}.member-primary:disabled,.member-secondary:disabled,.text-button:disabled{opacity:.55;cursor:default}.member-help,.member-session-note{margin:14px 0 0;color:#959ba3;font-size:.79rem;line-height:1.5}.member-message,.member-error{margin-top:16px;padding:10px 12px;border-radius:10px;font-size:.82rem;line-height:1.45}.member-message{border:1px solid rgba(242,140,40,.3);background:rgba(242,140,40,.08);color:#d9dde2}.member-error{border:1px solid rgba(255,113,113,.3);background:rgba(255,113,113,.08);color:#ffd0d0}.member-code-actions{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;margin-top:12px}.text-button{border:0;background:transparent;color:#ffad5b;padding:7px 0;font-size:.8rem;font-weight:800;cursor:pointer}.verified-state{text-align:center}.verified-mark{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin:0 auto 13px;border-radius:50%;background:#f28c28;color:#17191d;font-size:30px;font-weight:950}.verified-state .member-kicker,.verified-state h2{margin-right:0}.member-future-note{margin:20px 0;padding:13px 14px;text-align:left;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#181b1f;color:#bfc4ca;font-size:.82rem;line-height:1.5}.member-secondary{border:1px solid rgba(255,255,255,.15);background:#30343a;color:#fff;border-radius:11px;padding:11px 14px;font-size:.84rem;font-weight:800;cursor:pointer}@media(min-width:580px){.modal-backdrop{align-items:center}.member-modal{padding:32px 30px 28px}}@media(max-width:520px){.toolbar{align-items:flex-start}.toolbar-actions{max-width:150px}.toolbar-actions button{padding:8px 10px;font-size:.8rem}.member-modal{border-radius:20px}.member-code-actions{display:grid;justify-content:stretch}.text-button{text-align:left}}


/* v0.3.0 — verified member RSVP */
.rsvp-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding:12px 12px 12px 14px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#15181c}.rsvp-summary{min-width:0;display:flex;flex-direction:column;gap:2px}.rsvp-overline{color:#f28c28;font-size:.64rem;font-weight:900;letter-spacing:.12em}.rsvp-summary strong{font-size:.86rem;line-height:1.25}.rsvp-summary small{color:#8f959d;font-size:.72rem;line-height:1.35}.rsvp-current--going{color:#8ee0b1}.rsvp-current--maybe{color:#ffe08a}.rsvp-current--no{color:#ffb0b0}.rsvp-current--none{color:#d7dbe0}.rsvp-action{flex:0 0 auto;border:0;border-radius:10px;background:#f28c28;color:#17191d;padding:10px 12px;font-size:.78rem;font-weight:900;cursor:pointer}.rsvp-action--secondary{border:1px solid rgba(242,140,40,.38);background:rgba(242,140,40,.1);color:#ffb665}.rsvp-action:disabled{opacity:.55;cursor:default}.rsvp-modal{max-width:520px}.rsvp-state h2{margin-bottom:7px}.rsvp-current-box{margin-top:18px;padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#171a1e;color:#cbd0d6;font-size:.83rem}.rsvp-current-box strong{color:#fff}.rsvp-choices{display:grid;gap:10px;margin-top:18px}.rsvp-choice{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;text-align:left;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:#181b1f;color:#fff;padding:13px;cursor:pointer}.rsvp-choice:hover{border-color:rgba(242,140,40,.45)}.rsvp-choice:disabled{opacity:.6;cursor:default}.rsvp-choice.is-selected{border-color:#f28c28;background:rgba(242,140,40,.08);box-shadow:inset 3px 0 0 #f28c28}.rsvp-choice-mark{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#30343a;font-weight:950;font-size:1rem}.rsvp-choice--going .rsvp-choice-mark{color:#8ee0b1}.rsvp-choice--maybe .rsvp-choice-mark{color:#ffe08a}.rsvp-choice--no .rsvp-choice-mark{color:#ffb0b0}.rsvp-choice strong{display:block;font-size:.92rem}.rsvp-choice small{display:block;margin-top:3px;color:#969ca4;font-size:.74rem;line-height:1.35}.rsvp-selected-text{color:#f28c28;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}@media(max-width:520px){.rsvp-panel{align-items:flex-start;flex-direction:column}.rsvp-action{width:100%}.rsvp-choice{grid-template-columns:36px minmax(0,1fr)}.rsvp-selected-text{grid-column:2}}

/* v0.4.0 — My FGM member profile */
.member-action-stack{display:grid;gap:9px;margin-top:18px}.member-action-stack .member-primary,.member-action-stack .member-secondary{width:100%;margin-top:0}.profile-state{text-align:left}.profile-form{margin-top:18px}.profile-form select{width:100%;border:1px solid rgba(255,255,255,.15);background:#15181c;color:#fff;border-radius:11px;padding:13px 14px;font-size:16px;outline:none}.profile-form select:focus{border-color:#f28c28;box-shadow:0 0 0 3px rgba(242,140,40,.12)}.profile-form select:disabled{opacity:.62}.profile-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-name-grid>div{display:grid;gap:10px}.profile-email-box{margin-top:2px;padding:13px 14px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#181b1f;display:grid;gap:5px}.profile-email-box span{color:#9da3ab;font-size:.75rem;font-weight:800}.profile-email-box strong{font-size:.91rem;overflow-wrap:anywhere}.profile-email-box .text-button{justify-self:start;padding:4px 0 0}.member-back-button{width:100%;margin-top:10px}@media(max-width:520px){.profile-name-grid{grid-template-columns:1fr}}
