:root{
  --violet:#3A2A6E; --violet-mid:#6A5AA6; --teal:#17A9AC;
  --ink:#151515; --grey:#6E7178; --cloud:#F4F5F8; --line:#E4E6EC; --white:#fff;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--white);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:Montserrat,sans-serif;line-height:1.15;letter-spacing:.01em}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:#fff;color:var(--violet);padding:10px 14px;border:2px solid var(--teal)}.skip-link:focus{top:16px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.sec{padding:88px 0}
.sec-sm{padding:56px 0}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:92px}
.brand{display:flex;align-items:center;gap:11px}
.brand svg{height:34px;width:auto;display:block}
.brand .bt{font-family:Montserrat;font-weight:800;font-size:15px;letter-spacing:.06em;line-height:1}
.brand .bs{font-family:Montserrat;font-weight:700;font-size:11px;letter-spacing:.22em;color:var(--teal);line-height:1;margin-top:3px}
nav{display:flex;gap:30px}
nav a{font-size:14.5px;font-weight:500;color:var(--grey);padding:6px 0;border-bottom:2px solid transparent;transition:.2s;cursor:pointer}
nav a:hover,nav a.on{color:var(--violet);border-color:var(--teal)}
.burger{display:none;background:none;border:0;font-size:22px;color:var(--violet);cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0;transition:.2s}

/* ---------- hero ---------- */
.hero{position:relative;background:linear-gradient(135deg,#3A2A6E 0%,#5B4B94 55%,#6A5AA6 100%);color:#fff;overflow:hidden;padding:104px 0 96px}
.hero-sig{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.hero .wrap{position:relative;z-index:2;max-width:1180px}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#B9AEE0;margin-bottom:26px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--teal)}
.hero h1{font-size:clamp(34px,5vw,60px);font-weight:800;max-width:16ch;text-transform:uppercase;letter-spacing:.005em}
.hero h1 em{font-style:normal;color:#4FD8DB}
.hero p{margin-top:24px;max-width:52ch;font-size:18px;color:#DCD6F0}
.hero-cta{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;padding:14px 28px;border-radius:3px;font-weight:600;font-size:15px;transition:.2s;cursor:pointer;border:1.5px solid transparent}
.btn-t{background:var(--teal);color:#fff}
.btn-t:hover{background:#12908f}
.btn-g{border-color:rgba(255,255,255,.45);color:#fff}
.btn-g:hover{background:rgba(255,255,255,.12)}

/* ---------- stats ---------- */
.stats{background:var(--cloud);border-bottom:1px solid var(--line)}
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.stat{padding:34px 18px;text-align:center;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:26%;height:48%;width:1px;background:var(--line)}
.stat b{display:block;font-family:Montserrat;font-weight:800;font-size:clamp(30px,3.6vw,46px);color:var(--teal);line-height:1}
.stat span{display:block;margin-top:10px;font-size:13px;color:var(--grey);line-height:1.4}

/* ---------- section heads ---------- */
.sh{margin-bottom:44px;max-width:60ch}
.sh .kicker{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:14px;display:flex;align-items:center;gap:9px}
.sh .kicker::before{content:"";width:22px;height:2px;background:var(--teal)}
.sh h2{font-size:clamp(25px,3.2vw,36px);font-weight:700;color:var(--violet)}
.sh p{margin-top:14px;color:var(--grey);font-size:16.5px}

/* ---------- flagship events ---------- */
.flag{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.fclogo{width:118px;height:118px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:#fff;padding:8px;margin-bottom:16px}
.fclogo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.fcard{border:1px solid var(--line);border-radius:4px;padding:36px;position:relative;overflow:hidden;transition:.24s;background:#fff;display:flex;flex-direction:column}
.fcard::after{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--teal);transform:scaleY(0);transform-origin:top;transition:.28s}
.fcard:hover{box-shadow:0 14px 40px rgba(58,42,110,.13);transform:translateY(-3px)}
.fcard:hover::after{transform:scaleY(1)}
.ftag{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:2px;align-self:flex-start;margin-bottom:20px}
.tag-off{background:#EDE9F7;color:var(--violet)}
.tag-on{background:#DFF4F4;color:#0F7C7E}
.fcard h3{font-size:25px;font-weight:700;color:var(--violet)}
.fcard .fdesc{margin-top:12px;color:var(--grey);font-size:15.5px;flex:1}
.fmeta{margin-top:22px;display:flex;gap:26px;padding-top:20px;border-top:1px solid var(--line)}
.fmeta div b{display:block;font-family:Montserrat;font-weight:700;font-size:19px;color:var(--ink)}
.fmeta div span{font-size:12.5px;color:var(--grey)}
.flink{margin-top:22px;font-weight:600;color:var(--teal);font-size:15px;display:inline-flex;align-items:center;gap:7px}
.flink:hover{gap:12px}

/* ---------- small events ---------- */
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.ev .evlogo{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:#fff;padding:7px;margin-bottom:13px}
.ev .evlogo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.ev .evlink{display:inline-block;margin-top:11px;font-size:13.5px;font-weight:600;color:var(--teal)}
.ev{border:1px solid var(--line);border-radius:4px;padding:22px;transition:.2s;background:#fff}
.ev:hover{border-color:var(--violet-mid);background:var(--cloud)}
.ev .assoc{font-size:11.5px;font-weight:600;letter-spacing:.1em;color:var(--violet-mid);text-transform:uppercase}
.ev h4{margin-top:9px;font-size:16.5px;font-weight:600;line-height:1.35}
.ev .when{margin-top:9px;font-size:13px;color:var(--grey)}

/* ---------- partners ---------- */
.partners{background:var(--cloud)}
.plogos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plogo{background:#fff;border:1px solid var(--line);border-radius:4px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:.2s;padding:14px;text-align:center}
.plogo:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 8px 22px rgba(58,42,110,.09)}
.plogo b{font-family:Montserrat;font-weight:800;font-size:17px;color:var(--violet);letter-spacing:.04em}
.plogo span{font-size:10.5px;color:var(--grey);line-height:1.25}

/* ---------- center block ---------- */

/* ---------- rds banner ---------- */
.rds{background:linear-gradient(135deg,#3A2A6E 0%,#6A5AA6 100%);color:#fff;position:relative;overflow:hidden;display:block}
.rds-sig{position:absolute;inset:0;opacity:.4}
.rds .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;padding-top:64px;padding-bottom:64px}
.rds .eyebrow{color:#BDB2E6;margin-bottom:18px}
.rds h2{font-family:Montserrat;font-size:clamp(28px,4vw,42px);font-weight:800;letter-spacing:.05em}
.rds .sub{margin-top:14px;font-size:17px;color:#DCD6F0;max-width:40ch}
.rds .btn{margin-top:28px}

/* ---------- services ---------- */
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.sv{background:#fff;padding:32px 26px;transition:.2s}
.sv:hover{background:var(--cloud)}
.sv svg{margin-bottom:16px}
.sv h4{font-size:17px;font-weight:600;color:var(--violet)}
.sv p{margin-top:9px;font-size:14.5px;color:var(--grey)}

/* ---------- footer ---------- */
footer{background:var(--violet);color:#CFC7E8;padding:56px 0 30px;font-size:14px}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
footer h5{font-family:Montserrat;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:16px}
footer a:hover{color:var(--teal)}
footer ul{list-style:none}
footer li{margin-bottom:9px}
.req{font-size:13px;line-height:1.75}
.f-rds{margin-top:38px;border:1px solid rgba(255,255,255,.2);border-radius:3px;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:.2s}
.f-rds:hover{background:rgba(255,255,255,.08);border-color:var(--teal)}
.f-rds b{font-family:Montserrat;color:#fff;letter-spacing:.09em;font-size:15px}
.f-bot{margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:#A99FD0}

/* ---------- inner pages ---------- */
.page{display:none}
.page.on{display:block}
.pghero{background:var(--cloud);border-bottom:1px solid var(--line);padding:52px 0}
.pghero .crumb{font-size:12.5px;color:var(--grey);margin-bottom:12px}
.pghero h1{font-size:clamp(27px,4vw,40px);font-weight:700;color:var(--violet)}
.two{display:grid;grid-template-columns:1.25fr .75fr;gap:44px}
.prose p{margin-bottom:16px;color:#333}
.prose h3{margin:30px 0 12px;font-size:20px;color:var(--violet)}
.callout{background:var(--cloud);border-left:3px solid var(--teal);padding:22px 24px;border-radius:0 4px 4px 0;font-size:15px}
.req-card{border:1px solid var(--line);border-radius:4px;padding:26px;font-size:14px}
.req-card h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:16px}
.req-card dl{display:grid;grid-template-columns:auto 1fr;gap:9px 16px}
.req-card dt{color:var(--grey)}
.req-card dd{font-weight:500}
.tl{list-style:none;position:relative;padding-left:34px;margin-top:10px}
.tl::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--teal),var(--violet-mid))}
.tl li{position:relative;padding-bottom:26px}
.tl li::before{content:"";position:absolute;left:-32px;top:6px;width:12px;height:12px;background:#fff;border:2.5px solid var(--teal);transform:rotate(45deg)}
.tl b{font-family:Montserrat;color:var(--violet);font-size:16px}
.tl p{color:var(--grey);font-size:14.5px;margin-top:3px}
.filt{display:flex;gap:9px;margin-bottom:26px;flex-wrap:wrap}
.event-search{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;margin-bottom:16px}.event-search label{font-size:12px;font-weight:600;color:var(--violet)}.event-search input,.event-search select{display:block;width:100%;margin-top:5px;padding:10px 11px;border:1px solid var(--line);border-radius:3px;background:#fff;font:400 14px Inter;color:var(--ink)}
.filt button{padding:8px 18px;border:1px solid var(--line);background:#fff;border-radius:3px;font:500 14px Inter;color:var(--grey);cursor:pointer;transition:.18s}
.filt button.on,.filt button:hover{border-color:var(--teal);color:var(--violet);background:var(--cloud)}
.filter-empty{display:none;padding:24px;border:1px dashed var(--line);color:var(--grey);text-align:center;border-radius:4px}
.filter-empty.show{display:block}
.is-filtered-out{display:none!important}
.jrow{display:grid;grid-template-columns:160px 1fr;gap:26px;border:1px solid var(--line);border-radius:4px;padding:24px;margin-bottom:16px;align-items:center}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}
.cc{border:1px solid var(--line);border-radius:4px;padding:24px}
.cc h4{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:11px}
.cc a{font-weight:500;color:var(--violet)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}
.tm{border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.tm .photo{aspect-ratio:4/3;background:#EEF0F4;display:flex;align-items:center;justify-content:center;color:#9AA2B1;font-size:12px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.tm .photo img{width:100%;height:100%;object-fit:cover;display:block}
.tm .photo.initials{background:linear-gradient(135deg,var(--cloud),#e8e3f5);font:700 30px Montserrat;color:var(--violet-mid)}
.tm .body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.tm .role{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:9px;min-height:2.6em}
.tm .nm{font-weight:600;font-size:17px;color:var(--violet);margin-bottom:12px}
.tm .contacts{margin-top:auto;display:flex;flex-direction:column;gap:5px;font-size:14.5px}
.tm .contacts a{font-weight:500;color:var(--violet)}
.mapbox{height:280px;background:var(--cloud);border:1px solid var(--line);border-radius:4px;overflow:hidden}.mapbox iframe{width:100%;height:100%;border:0}
.cal{display:flex;flex-direction:column;gap:0;margin-top:8px}
.cal-row{display:grid;grid-template-columns:132px 88px 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--line);align-items:start}
.cal-logo{width:88px;height:88px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:#fff;padding:8px}
.cal-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.cal-row:last-child{border-bottom:1px solid var(--line)}
.cal-date{font-family:Montserrat;font-weight:600;color:var(--teal);font-size:15px;line-height:1.4}
.cal-body h4{font-size:16.5px;font-weight:600;line-height:1.35;color:var(--violet)}
.cal-body .meta{margin-top:7px;font-size:13.5px;color:var(--grey);line-height:1.5}
.cal-body .org{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--violet-mid);margin-bottom:7px}
.calendar-button{margin-top:10px;padding:7px 11px;border:1px solid var(--teal);border-radius:3px;background:#fff;color:var(--violet);font:600 12px Inter;cursor:pointer}.calendar-button:hover{background:var(--cloud)}
.roadmap{width:100%;border-collapse:collapse;margin-top:10px;font-size:14.5px}
.roadmap th{text-align:left;font-family:Montserrat;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);padding:0 14px 12px 0;border-bottom:2px solid var(--line)}
.roadmap td{padding:14px 14px 14px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--grey)}
.roadmap td:first-child{font-family:Montserrat;font-weight:600;color:var(--violet);white-space:nowrap}
.roadmap td b{color:var(--violet);font-weight:600;display:block;font-size:13px;letter-spacing:.04em}
.mk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0 34px}
.mk-stat{border:1px solid var(--line);border-radius:4px;padding:20px}
.mk-stat b{display:block;font-family:Montserrat;font-size:26px;font-weight:700;color:var(--violet);line-height:1.1}
.mk-stat span{display:block;margin-top:8px;font-size:13px;color:var(--grey);line-height:1.45}
.mk-fmt{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.mk-card{border:1px solid var(--line);border-radius:4px;padding:24px}
.mk-card h4{font-size:16.5px;font-weight:600;color:var(--violet);margin-bottom:9px}
.mk-card p{font-size:14px;color:var(--grey);line-height:1.55}
.mk-card .fig{font-family:Montserrat;font-weight:600;color:var(--teal);font-size:13px;margin-top:12px;display:block}
.pkg{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}
.pkg th{text-align:left;font-family:Montserrat;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);padding:0 12px 12px 0;border-bottom:2px solid var(--line);vertical-align:bottom}
.pkg td{padding:12px 12px 12px 0;border-bottom:1px solid var(--line);color:var(--grey);vertical-align:top}
.pkg td:first-child{color:var(--violet)}
.pkg td.num,.pkg th.num{text-align:center;padding-right:0}
.pkg tr.price td{font-family:Montserrat;font-weight:600;color:var(--violet);font-size:15px;border-bottom:none;padding-top:16px}
.note{background:#FFF8E6;border:1px dashed #E0C878;border-radius:4px;padding:14px 18px;font-size:13.5px;color:#7A6220;margin:0 0 28px}
.legal-prose{max-width:850px}.legal-prose a{color:var(--teal);text-decoration:underline}
.contact-form .field{width:100%;padding:11px;border:1px solid var(--line);border-radius:3px;margin-bottom:10px;font:400 15px Inter;background:#fff;color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.form-label{display:block;font-size:12.5px;font-weight:600;color:var(--violet)}
.form-label.full{grid-column:1/-1}
.form-label .field{display:block;margin-top:5px}
.field-hint{font-weight:400;color:var(--grey);margin-left:5px}
.file-field{padding:8px;background:var(--cloud)}
.consent a{text-decoration:underline;color:var(--violet)}
.contact-form .field:focus{outline:2px solid color-mix(in srgb,var(--teal) 35%,transparent);border-color:var(--teal)}
.contact-form textarea.field{min-height:110px;resize:vertical}
.contact-form .consent{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--grey);margin-bottom:14px}
.form-status{display:none;margin-top:12px;padding:10px 12px;border-radius:3px;font-size:13.5px}
.form-status.show{display:block}.form-status.ok{color:#126c55;background:#e7f7f1}.form-status.error{color:#8a2b2b;background:#fdecec}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* ---------- divider (signature) ---------- */
/* ---------- photos ---------- */
.hero-photo{pointer-events:none;position:absolute;right:0;top:0;width:44%;height:100%;object-fit:cover;opacity:.28;mask-image:linear-gradient(to right,transparent,#000 45%);-webkit-mask-image:linear-gradient(to right,transparent,#000 45%)}
@media (prefers-reduced-motion:reduce){.hero-photo{display:none}}
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.gal img{width:100%;height:190px;object-fit:cover;border-radius:3px;display:block;transition:.3s;filter:saturate(.94)}
.gal img:hover{filter:saturate(1.08);transform:scale(1.015)}
.gal .tall{grid-row:span 2;height:390px}
.photo-strip{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px;margin-top:34px}
.photo-strip img{width:100%;height:230px;object-fit:cover;border-radius:3px;display:block}
.fig{margin-top:26px}
.fig img{width:100%;height:300px;object-fit:cover;border-radius:4px;display:block}
.fig figcaption{margin-top:9px;font-size:13px;color:var(--grey);font-style:italic}
.covers-real{display:flex;gap:18px;justify-content:center;align-items:flex-end}
.covers-real img{width:150px;border-radius:2px;box-shadow:0 18px 40px rgba(0,0,0,.34);display:block}
.covers-real img:nth-child(1){transform:rotate(-5deg) translateX(14px)}
.covers-real img:nth-child(2){transform:translateY(-14px);z-index:3;width:168px}
.covers-real img:nth-child(3){transform:rotate(5deg) translateX(-14px)}
.jcover{width:100%;border-radius:3px;display:block;box-shadow:0 10px 26px rgba(58,42,110,.2)}

.divider{height:34px;width:100%;display:block}

@media(max-width:960px){
  nav{display:none;position:absolute;left:0;right:0;top:72px;padding:12px 24px 20px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(58,42,110,.1);flex-direction:column;gap:4px} nav.open{display:flex} .burger{display:block}
  .hd{height:72px} .logo-hdr{height:42px!important}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .stat+.stat::before{display:none}
  .flag,.rds .wrap,.two{grid-template-columns:1fr}
  .ev-grid,.sv-grid,.contact-grid,.team-grid{grid-template-columns:1fr}
  .mk-stats{grid-template-columns:repeat(2,1fr)}
  .mk-fmt{grid-template-columns:1fr}
  .pkg{font-size:12.5px}
  .cal-row{grid-template-columns:1fr;gap:10px}
  .cal-logo{width:72px;height:72px}
  .roadmap{font-size:13px}
  .plogos{grid-template-columns:repeat(2,1fr)}
  .gal{grid-template-columns:repeat(2,1fr)} .gal img{height:130px} .gal .tall{grid-row:span 1;height:130px}
  .photo-strip{grid-template-columns:1fr} .photo-strip img{height:180px}
  .hero-photo{display:none}
  .covers-real img{width:96px} .covers-real img:nth-child(2){width:108px}
  .f-top{grid-template-columns:1fr 1fr}
  .jrow{grid-template-columns:1fr}
  .event-search,.form-grid{grid-template-columns:1fr}.form-label.full{grid-column:auto}
  .sec{padding:56px 0}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sig-path{stroke-dasharray:2400;stroke-dashoffset:2400;animation:draw 1.6s ease-out .2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
