:root{
    --ink:#122A3F;--ink-2:#1B3F50;--paper:#F3F1EC;--paper-card:#FBFAF7;
    --brass:#C8923D;--brass-deep:#A06E1C;--text:#1A2530;--muted:#5C6B78;
    --line:#D9D4C9;--ring:#2E7D8A;--maxw:1180px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Libre Franklin",system-ui,sans-serif;color:var(--text);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:"Spectral",Georgia,serif;font-weight:600;line-height:1.14;color:var(--ink)}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep);display:inline-flex;align-items:center;gap:.6rem}
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--brass);display:inline-block}
  .btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;padding:.8rem 1.4rem;border-radius:2px;border:1.5px solid transparent;cursor:pointer;transition:.18s ease}
  .btn-primary{background:var(--brass-deep);color:#fff}.btn-primary:hover{background:#8a5f17}
  .btn-ink{background:var(--ink);color:#fff}.btn-ink:hover{background:#0a1c2c}
  .btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:#fff}
  .btn-light{border-color:rgba(255,255,255,.5);color:#fff}.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff}
  :focus-visible{outline:3px solid var(--ring);outline-offset:2px}

  /* header */
  header{position:sticky;top:0;z-index:50;background:rgba(243,241,236,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;gap:1.5rem;height:72px}
  .brand{display:flex;flex-direction:column;line-height:1.05;margin-right:auto}
  .brand .mark{font-family:"Spectral",serif;font-weight:600;font-size:1.5rem;color:var(--ink)}
  .brand .sub{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
  .menu{display:flex;gap:1.3rem;align-items:center}
  .menu a{font-size:.92rem;font-weight:500;color:var(--ink);position:relative;padding:.3rem 0}
  .menu a:hover{color:var(--brass-deep)}
  .menu a.active{color:var(--brass-deep)}
  .menu a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--brass);transition:width .2s}
  .menu a:hover::after,.menu a.active::after{width:100%}
  .nav .btn{padding:.6rem 1.1rem}
  .burger{display:none;background:none;border:0;font-size:1.5rem;color:var(--ink);cursor:pointer}

  /* page hero */
  .page-hero{background:linear-gradient(160deg,var(--ink),var(--ink-2));color:#fff;padding:56px 0 64px;position:relative;overflow:hidden}
  .page-hero::after{content:"";position:absolute;right:-120px;bottom:-180px;width:480px;height:480px;border:1px solid rgba(200,146,61,.25);border-radius:50%}
  .page-hero .eyebrow{color:var(--brass)}.page-hero .eyebrow::before{background:var(--brass)}
  .page-hero h1{color:#fff;font-size:clamp(2.2rem,4.2vw,3.2rem);margin:.5rem 0 .6rem}
  .page-hero p{color:#CBD5DE;max-width:38rem;font-size:1.08rem}
  .crumb{font-size:.82rem;color:#9FB0BC;margin-bottom:.3rem}
  .crumb a:hover{color:var(--brass)}

  /* featured conference */
  .featured{margin-top:-40px;position:relative;z-index:3}
  .feat-card{background:var(--paper-card);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:grid;grid-template-columns:1.3fr 1fr;box-shadow:0 28px 60px -34px rgba(0,0,0,.4)}
  .feat-card .left{padding:2.2rem}
  .feat-card .tag{display:inline-block;background:var(--brass-deep);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .8rem;border-radius:2px;margin-bottom:1rem}
  .feat-card h2{font-size:1.9rem;margin-bottom:.6rem}
  .feat-card p{color:var(--muted);margin-bottom:1.2rem}
  .feat-meta{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.4rem;font-size:.92rem;color:var(--text)}
  .feat-meta span{display:inline-flex;gap:.5rem;align-items:center}
  .feat-cta{display:flex;gap:.7rem;flex-wrap:wrap}
  .feat-card .right{background:var(--ink);color:#fff;padding:2.2rem;display:flex;flex-direction:column;justify-content:center;gap:1rem}
  .feat-card .right .big{font-family:"Spectral",serif;font-size:3rem;line-height:1;color:var(--brass)}
  .feat-card .right .row{border-top:1px solid rgba(255,255,255,.16);padding-top:.8rem}
  .feat-card .right .row .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#9FB0BC}
  .feat-card .right .row .v{font-size:1.05rem;color:#fff;font-weight:600}

  /* filter + list */
  section{padding:64px 0}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:24px;flex-wrap:wrap}
  .sec-head h2{font-size:clamp(1.6rem,3vw,2.1rem)}
  .filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:8px}
  .chip{border:1px solid var(--line);background:var(--paper-card);color:var(--muted);font-size:.85rem;font-weight:600;padding:.45rem 1rem;border-radius:999px;cursor:pointer;transition:.15s}
  .chip:hover{border-color:var(--brass)}
  .chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}

  .events{display:grid;gap:0;margin-top:8px}
  .event-row{display:grid;grid-template-columns:120px 1fr auto;gap:1.6rem;align-items:center;padding:1.5rem 0;border-top:1px solid var(--line)}
  .event-row:last-child{border-bottom:1px solid var(--line)}
  .event-row .d{font-family:"Spectral",serif;text-align:center;line-height:1}
  .event-row .d .m{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-deep);font-weight:700;font-family:"Libre Franklin",sans-serif}
  .event-row .d .day{font-size:2.5rem;color:var(--ink);font-weight:600}
  .event-row .d .y{font-size:.76rem;color:var(--muted);font-family:"Libre Franklin",sans-serif}
  .event-row .type{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ring);margin-bottom:.35rem}
  .event-row h3{font-size:1.25rem;margin-bottom:.25rem}
  .event-row .info{font-size:.9rem;color:var(--muted)}
  .empty{display:none;color:var(--muted);padding:2rem 0;font-style:italic}

  /* recurring programs */
  .recurring{background:var(--paper-card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
  .rec{background:#fff;border:1px solid var(--line);border-radius:4px;padding:1.5rem 1.4rem;transition:.2s}
  .rec:hover{transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(18,42,63,.35);border-color:var(--brass)}
  .rec .k{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ring);margin-bottom:.5rem}
  .rec h3{font-size:1.15rem;margin-bottom:.35rem}
  .rec p{font-size:.9rem;color:var(--muted)}

  /* host CTA */
  .host{background:var(--ink);color:#fff;text-align:center}
  .host h2{color:#fff;font-size:clamp(1.6rem,3vw,2.1rem)}
  .host p{color:#CBD5DE;max-width:34rem;margin:.7rem auto 1.5rem}
  .host .row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

  /* footer */
  footer{background:#0C2032;color:#A9B6C2;padding:56px 0 28px;font-size:.9rem}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:36px}
  footer h4{font-family:"Libre Franklin",sans-serif;color:#fff;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}
  footer a{display:block;padding:.25rem 0;color:#A9B6C2}footer a:hover{color:var(--brass)}
  .foot-brand .mark{font-family:"Spectral",serif;font-size:1.4rem;color:#fff;margin-bottom:.5rem}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:#7C8B98}

  @media(max-width:900px){
    .feat-card{grid-template-columns:1fr}
    .rec-grid{grid-template-columns:1fr 1fr}
    .menu{display:none}.burger{display:block}.nav .btn.join-desktop{display:none}
  }
  @media(max-width:560px){
    .rec-grid{grid-template-columns:1fr}
    .event-row{grid-template-columns:74px 1fr;row-gap:.5rem}
    .event-row .btn{grid-column:1/-1;justify-self:start}
  }

/* ---- next style block ---- */

:root{
    --ink:#122A3F;--ink-2:#1B3F50;--paper:#F3F1EC;--paper-card:#FBFAF7;
    --brass:#C8923D;--brass-deep:#A06E1C;--text:#1A2530;--muted:#5C6B78;
    --line:#D9D4C9;--ring:#2E7D8A;--maxw:1180px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:"Libre Franklin",system-ui,sans-serif;color:var(--text);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:"Spectral",Georgia,serif;font-weight:600;color:var(--ink);line-height:1.15}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  :focus-visible{outline:3px solid var(--ring);outline-offset:2px}
  .__navbtn_off{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;font-size:.92rem;padding:.6rem 1.1rem;border-radius:2px;border:1.5px solid transparent;cursor:pointer;transition:.18s}
  .__navbtnp_off{color:#fff}

  /* ===== HEADER ===== */
  header{position:sticky;top:0;z-index:100;background:transparent;border-bottom:0;backdrop-filter:none}

  /* utility bar */
  .util{background:var(--ink);color:#C9D2DA;font-size:.8rem}
  .util .wrap{display:flex;align-items:center;height:38px;gap:1.2rem}
  .util a{color:#C9D2DA}.util a:hover{color:var(--brass)}
  .util .left{display:flex;align-items:center;gap:1.2rem;margin-right:auto}
  .util .right{display:flex;align-items:center;gap:1.2rem}
  .util .sep{width:1px;height:16px;background:rgba(255,255,255,.18)}
  .lang b{color:#fff}.lang span{opacity:.5}
  .net{position:relative}
  .net>button{background:none;border:0;color:#C9D2DA;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}
  .net>button:hover{color:var(--brass)}
  .net .caret{font-size:.7rem}
  .net .drop{position:absolute;top:120%;left:0;background:#0C2032;border:1px solid rgba(255,255,255,.12);border-radius:4px;min-width:170px;padding:.4rem;opacity:0;visibility:hidden;transform:translateY(-4px);transition:.16s;box-shadow:0 16px 40px -20px rgba(0,0,0,.6)}
  .net.open .drop{opacity:1;visibility:visible;transform:none}
  .net .drop a{display:block;padding:.45rem .6rem;border-radius:3px;font-size:.84rem}
  .net .drop a:hover{background:rgba(255,255,255,.06);color:#fff}
  .social a{margin-left:.5rem;font-size:.95rem}

  /* main bar */
  .main{background:rgba(243,241,236,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .main .wrap{display:flex;align-items:center;gap:1.2rem;height:74px}
  .brand{display:flex;flex-direction:column;line-height:1.05;margin-right:auto}
  .brand .mark{font-family:"Spectral",serif;font-weight:600;font-size:1.55rem;color:var(--ink)}
  .brand .sub{font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}

  .nav{display:flex;align-items:center;gap:.2rem;height:auto}
  .nav-item{position:relative}
  .nav-item>a,.nav-item>button{font-family:"Libre Franklin",sans-serif;font-size:.94rem;font-weight:500;color:var(--ink);background:none;border:0;cursor:pointer;padding:.55rem .8rem;display:inline-flex;align-items:center;gap:.3rem;border-radius:3px}
  .nav-item>a:hover,.nav-item>button:hover,.nav-item.open>button{color:var(--brass-deep)}
  .nav-item .caret{font-size:.62rem;transition:transform .18s;opacity:.7}
  .nav-item.open .caret{transform:rotate(180deg)}
  .nav-item>*::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.35rem;height:2px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .18s}
  .nav-item:hover>a::after,.nav-item:hover>button::after,.nav-item.open>button::after{transform:scaleX(1)}

  /* dropdown panel */
  .panel{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--line);border-radius:6px;
    box-shadow:0 24px 50px -24px rgba(18,42,63,.45);padding:.5rem;min-width:236px;
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:.17s;z-index:60}
  .nav-item:hover .panel,.nav-item:focus-within .panel,.nav-item.open .panel{opacity:1;visibility:visible;transform:none}
  .panel a{display:block;padding:.6rem .75rem;border-radius:4px;font-size:.9rem;color:var(--text)}
  .panel a:hover{background:var(--paper);color:var(--brass-deep)}
  .panel a small{display:block;font-size:.76rem;color:var(--muted);font-weight:400;margin-top:.1rem}
  .panel a:hover small{color:var(--muted)}
  .panel .head{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);padding:.5rem .75rem .3rem}

  /* mega menu (Programs) */
  .mega{left:50%;transform:translateX(-50%) translateY(-6px);min-width:680px;padding:1.1rem;
    display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:.4rem 1.4rem}
  .nav-item:hover .mega,.nav-item.open .mega,.nav-item:focus-within .mega{transform:translateX(-50%) translateY(0)}
  .mega .col{display:flex;flex-direction:column}
  .mega .promo{background:var(--ink);border-radius:6px;padding:1.1rem;color:#fff;display:flex;flex-direction:column;justify-content:center}
  .mega .promo .tag{font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
  .mega .promo h4{font-family:"Spectral",serif;color:#fff;font-size:1.15rem;margin:.3rem 0 .2rem}
  .mega .promo p{font-size:.82rem;color:#C9D2DA;margin-bottom:.8rem}
  .mega .promo a{color:var(--brass);font-weight:700;font-size:.84rem}

  .actions{display:flex;align-items:center;gap:.6rem;margin-left:.6rem}
  .icon-btn{background:none;border:0;color:var(--ink);cursor:pointer;font-size:1.1rem;padding:.35rem;border-radius:3px;line-height:1}
  .icon-btn:hover{color:var(--brass-deep)}
  .search-box{position:absolute;top:100%;right:24px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:.6rem;box-shadow:0 20px 44px -24px rgba(18,42,63,.4);display:none;z-index:70}
  .search-box.open{display:block}
  .search-box input{width:280px;max-width:60vw;border:1px solid var(--line);border-radius:3px;padding:.6rem .8rem;font-size:.92rem}

  .burger{display:none;background:none;border:0;font-size:1.6rem;color:var(--ink);cursor:pointer;line-height:1}

  /* ===== MOBILE DRAWER ===== */
  .scrim{position:fixed;inset:0;background:rgba(12,32,50,.5);opacity:0;visibility:hidden;transition:.2s;z-index:200}
  .scrim.open{opacity:1;visibility:visible}
  .drawer{position:fixed;top:0;right:0;height:100%;width:min(360px,86vw);background:var(--paper);z-index:210;
    transform:translateX(100%);transition:transform .26s ease;overflow-y:auto;box-shadow:-20px 0 50px -20px rgba(0,0,0,.4)}
  .drawer.open{transform:none}
  .drawer .d-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.2rem;border-bottom:1px solid var(--line)}
  .drawer .d-head .mark{font-family:"Spectral",serif;font-size:1.3rem;color:var(--ink)}
  .drawer .close{background:none;border:0;font-size:1.6rem;color:var(--ink);cursor:pointer;line-height:1}
  .drawer nav{padding:.5rem 0}
  .acc>button{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;
    font:600 1rem/1.2 "Libre Franklin",sans-serif;color:var(--ink);padding:.95rem 1.2rem;cursor:pointer;text-align:left}
  .acc>button .caret{font-size:.7rem;transition:transform .18s;color:var(--muted)}
  .acc.open>button .caret{transform:rotate(180deg)}
  .acc .sub{max-height:0;overflow:hidden;transition:max-height .25s ease;background:var(--paper-card)}
  .acc.open .sub{max-height:420px}
  .acc .sub a{display:block;padding:.6rem 1.2rem .6rem 1.8rem;font-size:.92rem;color:var(--text);border-top:1px solid var(--line)}
  .acc .sub a:hover{color:var(--brass-deep)}
  .drawer .flat{display:block;padding:.95rem 1.2rem;font-weight:600;color:var(--ink);border-top:1px solid var(--line)}
  .drawer .d-cta{padding:1.1rem 1.2rem}
  .drawer .d-cta .btn{width:100%;justify-content:center}
  .drawer .d-util{padding:1rem 1.2rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.8rem 1.2rem}
  .drawer .d-util a{color:var(--muted)}.drawer .d-util a:hover{color:var(--brass-deep)}

  /* ===== demo content ===== */
  .demo-hero{background:linear-gradient(160deg,var(--ink),var(--ink-2));color:#fff;padding:70px 0}
  .demo-hero .eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
  .demo-hero h1{color:#fff;font-size:clamp(2rem,4vw,2.8rem);margin:.5rem 0 .6rem;max-width:24ch}
  .demo-hero p{color:#CBD5DE;max-width:40rem}
  .demo-body{padding:54px 0}
  .demo-body h2{font-size:1.5rem;margin-bottom:.5rem}
  .demo-body p{color:var(--muted);max-width:48rem;margin-bottom:1rem}
  .tip{background:var(--paper-card);border:1px dashed var(--line);border-left:3px solid var(--brass);border-radius:4px;padding:1rem 1.1rem;font-size:.9rem;color:var(--text);max-width:48rem}
  .filler{height:60vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-style:italic;border-top:1px solid var(--line)}

  @media(max-width:980px){
    .nav,.actions .search-wrap,.main .btn{display:none}
    .burger{display:block}
    .util .left .net,.util .right .social{display:none}
  }

/* dynamic events archive grid */
.ev-archive{background:var(--paper);padding:46px 0 78px}
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.6rem}
.ev-card{display:flex;flex-direction:column;background:var(--paper-card);border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:.18s ease}
.ev-card:hover{box-shadow:0 22px 50px -30px rgba(18,42,63,.45);transform:translateY(-2px);border-color:var(--brass)}
.ev-thumb{position:relative;aspect-ratio:16/10;background:linear-gradient(160deg,var(--ink) 0%,var(--ink-2) 100%);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.ev-thumb span{color:rgba(255,255,255,.55);font-family:"Spectral",Georgia,serif;font-size:1.3rem;letter-spacing:.05em}
.ev-thumb .ev-year{position:absolute;top:.6rem;right:.7rem;background:rgba(18,42,63,.78);color:#fff;font-size:.72rem;font-weight:700;padding:.22rem .55rem;border-radius:3px;letter-spacing:.03em}
.ev-info{padding:1.05rem 1.2rem 1.4rem}
.ev-when{font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.4rem}
.ev-info h3{font-family:"Spectral",Georgia,serif;font-size:1.1rem;color:var(--ink);line-height:1.25;font-weight:600}
@media(max-width:900px){.ev-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ev-grid{grid-template-columns:1fr}}


/* upcoming empty state + past divider */
.ev-empty{background:var(--paper-card);border:1px dashed var(--line);border-radius:8px;padding:2.2rem 1.6rem;text-align:center;margin-top:1.4rem}
.ev-empty p{color:var(--muted);margin-bottom:1rem}
.ev-past{border-top:1px solid var(--line)}
