/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:"Karla";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/karla-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Karla";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/karla-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Karla";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/karla-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fraunces-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fraunces-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/fraunces-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/source-sans-3-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/source-sans-3-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/source-serif-4-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/source-serif-4-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/source-serif-4-cyrillic-400-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}

:root{
  --serif:"Fraunces","Source Serif 4",Georgia,serif;
  --sans:"Karla","Source Sans 3",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --ink:#101b2d;
  --ink-2:#182842;
  --gold:#e3a929;
  --gold-soft:#f0c565;
  --paper:#faf7f0;
  --charcoal:#262420;
  --muted:#68625a;
  --line:#e4ddcd;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:1.06rem;
  color:var(--charcoal);
  background:var(--paper);
  line-height:1.65;
}
h1,h2,h3{
  font-family:var(--serif);
  margin:0;
  line-height:1.15;
  color:var(--ink);
}
a{ color:inherit; }
img{ max-width:100%; height:auto; display:block; }

/* ---------- Header (navy) ---------- */
header.site{
  background:var(--ink);
  padding:18px 6vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 30px;
}
.brand img{ height:36px; width:auto; filter:invert(1) brightness(1.6); }
header.site nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 28px;
}
header.site nav a{
  color:var(--gold-soft);
  text-decoration:none;
  font-size:1.02rem;
  font-weight:500;
  padding-bottom:3px;
  border-bottom:2px solid transparent;
}
header.site nav a:hover{ color:#fff; }
header.site nav a.current{
  color:#fff;
  border-bottom-color:var(--gold);
}

/* ---------- Hero ---------- */
.hero{
  padding:48px 6vw 50px;
  text-align:center;
}
.quote{
  margin:0 auto 34px;
  max-width:640px;
}
.quote p{
  margin:0;
  font-family:var(--serif);
  font-style:italic;
  font-size:1.35rem;
  color:var(--gold);
  line-height:1.4;
}
.quote cite{
  display:block;
  margin-top:8px;
  font-style:normal;
  font-size:1rem;
  color:var(--muted);
}
.hero-frame{
  display:block;
  max-width:920px;
  margin:0 auto;
  border-radius:6px;
  overflow:hidden;
  box-shadow:12px 12px 0 var(--gold);
}
.hero-frame picture{ display:block; }
.hero-frame img{ width:100%; height:auto; }
a.hero-frame{ transition:transform .15s ease, box-shadow .15s ease; }
a.hero-frame:hover{ transform:translate(-2px,-2px); box-shadow:15px 15px 0 var(--gold); }
a.hero-frame:focus-visible{ outline:3px solid var(--ink); outline-offset:4px; }

.cta-row{
  margin-top:46px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:15px 36px;
  border-radius:3px;
  text-decoration:none;
  font-weight:600;
  font-size:1.05rem;
  letter-spacing:.02em;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary{
  background:var(--gold);
  color:var(--ink);
  box-shadow:0 10px 24px -10px rgba(227,169,41,.55);
}
.btn-primary:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -10px rgba(227,169,41,.65); }

/* ---------- Generic sections ---------- */
.section{
  max-width:1080px;
  margin:0 auto;
  padding:30px 6vw 70px;
}
.section-title{
  text-align:center;
  font-size:2.1rem;
  font-weight:600;
  margin-bottom:40px;
}

/* ---------- Get involved (home) ---------- */
.ways{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px;
  text-align:center;
}
.way h3{ font-size:1.55rem; font-weight:600; margin-bottom:12px; }
.way p{
  margin:0 0 14px;
  font-size:1.12rem;
  line-height:1.6;
  color:var(--charcoal);
}
.way a{
  color:var(--ink);
  font-weight:600;
  font-size:1rem;
  text-decoration:none;
  border-bottom:2px solid var(--gold);
  padding-bottom:1px;
}
.way a:hover{ background:var(--gold-soft); }

/* ---------- Partners (home) ---------- */
.partners{
  border-top:1px solid var(--line);
  max-width:1080px;
  margin:0 auto;
  padding:60px 6vw 80px;
}
.partner-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:26px 30px;
  align-items:center;
  justify-items:center;
}
.partner-row img{
  width:100%;
  max-width:230px;
  height:auto;
}

/* ---------- Event details ---------- */
.details{
  max-width:1080px;
  margin:0 auto;
  padding:20px 6vw 60px;
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:52px;
}
.details h1,
.details h2{
  font-size:2.1rem;
  font-weight:600;
  margin-bottom:18px;
}
.eyebrow{
  color:var(--gold);
  font-family:var(--serif);
  font-style:italic;
  font-size:1.15rem;
  margin-bottom:6px;
  display:block;
}
.details p{
  max-width:64ch;
  margin:0;
  font-size:1.1rem;
  color:var(--charcoal);
}
.details p + p{ margin-top:16px; }

.info-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:28px 26px;
  align-self:start;
}
.info-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.info-row:last-of-type{ border-bottom:none; }
.info-row .label{
  font-size:1rem;
  color:var(--muted);
  white-space:nowrap;
}
.info-row .value{
  text-align:right;
  font-weight:600;
  color:var(--ink);
}
.info-row .value small{
  display:block;
  font-weight:400;
  color:var(--muted);
  font-size:.96rem;
  margin-top:2px;
  line-height:1.5;
}
.info-row .value small.note{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.info-row .value small.note em{
  font-family:var(--serif);
  font-style:italic;
  color:var(--gold);
  font-size:1rem;
}

.countdown{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--line);
  text-align:center;
}
.countdown .cd-label{
  font-family:var(--serif);
  font-style:italic;
  color:var(--muted);
  font-size:1.05rem;
  margin-bottom:10px;
  display:block;
}
.cd-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.cd-grid div{
  background:var(--ink);
  color:var(--paper);
  border-radius:6px;
  padding:10px 4px;
}
.cd-grid strong{
  display:block;
  font-family:var(--serif);
  font-size:1.4rem;
  color:var(--gold-soft);
}
.cd-grid span{
  font-size:.8rem;
  letter-spacing:.06em;
  color:var(--paper);
  opacity:.8;
}

/* ---------- Schedule ---------- */
.schedule{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 30px;
}
.sched-row{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:10px 24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.sched-row:last-child{ border-bottom:none; }
.sched-time{
  font-family:var(--serif);
  font-weight:600;
  color:var(--gold);
  font-size:1.15rem;
}
.sched-title{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.3rem;
  color:var(--ink);
}
.sched-title.soft{ font-weight:400; font-style:italic; color:var(--muted); }
.sched-items{
  list-style:none;
  margin:10px 0 0;
  padding:0;
}
.sched-items li{
  padding:4px 0;
  font-size:1.08rem;
}
.sched-items .who{ color:var(--muted); }
.sched-items ul{
  list-style:none;
  margin:8px 0 6px;
  padding:2px 0 2px 18px;
  border-left:2px solid var(--gold-soft);
}
.sched-items ul li{ font-size:1.05rem; }

/* ---------- Participants ---------- */
.people{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:40px 44px;
}
.person{
  width:200px;
  text-align:center;
}
.avatar{
  width:150px;
  height:150px;
  margin:0 auto 16px;
  border-radius:50%;
  overflow:hidden;
  border:3px solid var(--gold);
  background:#efe9da;
}
.avatar img{ width:100%; height:100%; object-fit:cover; }
.person h3{ font-size:1.25rem; font-weight:600; margin-bottom:4px; }
.person p{ margin:0; font-size:1rem; color:var(--muted); line-height:1.45; }

/* ---------- Simple page (How to Serve / Resources / Contact) ---------- */
.page-head{
  text-align:center;
  padding:64px 6vw 10px;
}
.page-head h1{ font-size:2.5rem; font-weight:600; }
.page-body{
  max-width:1080px;
  margin:0 auto;
  padding:40px 6vw 100px;
  min-height:260px;
}
.placeholder{
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  font-size:1.35rem;
  color:var(--muted);
  max-width:620px;
  margin:20px auto 0;
}
.contacts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.contact-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:30px 24px;
  text-align:center;
}
.contact-card h3{ font-size:1.4rem; font-weight:600; margin-bottom:4px; }
.contact-card .role{ color:var(--gold); font-family:var(--serif); font-style:italic; font-size:1.1rem; margin-bottom:16px; }
.contact-card a{
  color:var(--ink);
  font-weight:600;
  font-size:1.05rem;
  text-decoration:none;
  border-bottom:2px solid var(--gold);
  overflow-wrap:anywhere;
}
.contact-card a:hover{ background:var(--gold-soft); }

/* ---------- Footer (navy) ---------- */
footer{
  background:var(--ink);
  color:var(--paper);
  padding:44px 6vw 28px;
  text-align:center;
}
footer h3{ color:var(--gold-soft); font-size:1.25rem; margin-bottom:16px; }
.social{
  display:flex;
  justify-content:center;
  gap:22px;
}
.social a{
  color:#cfd3da;
  display:inline-flex;
  transition:color .15s ease, transform .15s ease;
}
.social a:hover{ color:var(--gold-soft); transform:translateY(-2px); }
.social svg{ width:34px; height:34px; }
.footer-bottom{
  max-width:1080px;
  margin:30px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.9rem;
  color:#a3a9b8;
}

@media (max-width:900px){
  .ways{ grid-template-columns:1fr 1fr; }
  .contacts{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  .details{ grid-template-columns:1fr; }
  .sched-row{ grid-template-columns:1fr; gap:4px; }
  a.hero-frame, .hero-frame{ box-shadow:8px 8px 0 var(--gold); }
}
@media (max-width:520px){
  .ways{ grid-template-columns:1fr; }
}

/* ---------- Language switch ---------- */
.lang{
  display:inline-flex;
  border:1px solid rgba(240,197,101,.55);
  border-radius:4px;
  overflow:hidden;
  align-self:center;
  margin-left:6px;
}
header.site nav .lang a{
  padding:3px 11px;
  font-size:.92rem;
  font-weight:600;
  border-bottom:none;
  color:var(--gold-soft);
}
header.site nav .lang a:hover{ color:#fff; }
header.site nav .lang a.on{
  background:var(--gold);
  color:var(--ink);
}

/* ---------- Cost note (own full-width line) ---------- */
.info-row.cost{ flex-wrap:wrap; }
/* keep the price block beside the label, right-aligned, in every language */
.info-row.cost .value{ flex:1 1 0; min-width:0; text-align:right; }
.cost-note{
  flex-basis:100%;
  text-align:right;
  margin-top:6px;
  padding-top:10px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.96rem;
  line-height:1.5;
}
.cost-note em{
  font-family:var(--serif);
  font-style:italic;
  color:var(--gold);
  font-size:1rem;
}
/* keep the English proceeds line on a single line (Russian text is longer and may wrap) */
@media (min-width:421px){
  html[lang="en"] .cost-note em{ white-space:nowrap; }
}
/* stack details + info card before the card gets too narrow for that line */
@media (max-width:980px){
  .details{ grid-template-columns:1fr; }
  .info-card{ max-width:520px; }
}

/* ---------- Footer logo ---------- */
.footer-logo{
  height:84px;
  width:auto;
  margin:0 auto 20px;
}

/* ---------- Cost tiers: right-aligned, one line each ---------- */
.cost-tiers{
  flex-basis:100%;
  text-align:right;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.5;
  white-space:nowrap;
}

/* ---------- Featured partners + remaining partners ---------- */
.featured{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px;
  max-width:860px;
  margin:0 auto 64px;
}
.featured-item{ text-align:center; }
.logo-box{
  display:flex;
  align-items:center;
  justify-content:center;
  height:130px;
  transition:transform .15s ease;
}
.logo-box:hover{ transform:translateY(-2px); }
.logo-box:focus-visible{ outline:3px solid var(--ink); outline-offset:4px; }
.logo-box img{ max-height:120px; max-width:100%; width:auto; height:auto; }
.featured-item p{
  margin:16px auto 0;
  max-width:34ch;
  font-size:1.12rem;
  line-height:1.55;
}
.partner-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:34px 30px;
}
.partner-grid img{
  width:calc((100% - 60px) / 3);
  max-width:260px;
  height:auto;
}
@media (max-width:700px){
  .featured{ grid-template-columns:1fr; gap:48px; }
  .partner-grid img{ width:calc((100% - 30px) / 2); }
}

/* ---------- Registration form (posts to the Google Form) ---------- */
[hidden]{ display:none !important; }
button.btn{ border:0; cursor:pointer; font-family:inherit; }
button.btn:disabled{ opacity:.65; cursor:wait; transform:none; }

.reg-card{
  max-width:720px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:34px 34px 28px;
}
.reg-note{
  margin:0 0 22px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
  font-size:1.06rem;
  color:var(--charcoal);
}
.reg-req{ margin:0 0 20px; font-size:.96rem; color:var(--muted); font-style:italic; }
.reg-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
.field{ border:0; padding:0; margin:0 0 22px; min-width:0; }
.field label, .field legend{
  display:block;
  padding:0;
  margin-bottom:8px;
  font-weight:600;
  font-size:1.02rem;
  color:var(--ink);
}
.field input[type="text"], .field input[type="tel"], .field input[type="email"]{
  width:100%;
  font:inherit;
  font-size:1.05rem;
  color:var(--charcoal);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:12px 14px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(227,169,41,.28);
}
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{ position:relative; }
.chip input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.chip span{
  display:inline-block;
  padding:10px 20px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--paper);
  font-size:1.02rem;
  color:var(--charcoal);
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.chip:hover span{ border-color:var(--gold); }
.chip input:checked + span{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.chip input:focus-visible + span{ outline:3px solid var(--gold); outline-offset:2px; }
.reg-actions{ margin-top:6px; text-align:center; }
.reg-done{ text-align:center; padding:26px 0 14px; }
.reg-done h3{ font-size:1.7rem; font-weight:600; margin-bottom:10px; }
.reg-done p{ margin:0 0 18px; font-size:1.1rem; }
.link-btn{
  background:none; border:0; padding:0; cursor:pointer;
  font:inherit; font-weight:600; color:var(--ink);
  border-bottom:2px solid var(--gold);
}
.link-btn:hover{ background:var(--gold-soft); }
.reg-frame{ position:absolute; width:0; height:0; border:0; visibility:hidden; }
.reg-fallback{ margin:24px 0 0; text-align:center; font-size:.96rem; color:var(--muted); }
.reg-fallback a{ color:var(--ink); }
@media (max-width:620px){
  .reg-card{ padding:26px 20px 22px; }
  .reg-row{ grid-template-columns:1fr; }
}

/* ---------- Utilities ---------- */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------- Mobile menu ---------- */
.nav-toggle{
  display:none;
  align-items:center;
  gap:10px;
  background:none;
  border:1px solid rgba(240,197,101,.55);
  border-radius:4px;
  color:var(--gold-soft);
  font:inherit;
  font-weight:600;
  font-size:.98rem;
  padding:8px 14px;
  cursor:pointer;
}
.nav-toggle:hover{ color:#fff; border-color:var(--gold-soft); }
.nav-toggle:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }
.nav-toggle .bars,
.nav-toggle .bars::before,
.nav-toggle .bars::after{
  display:block;
  width:18px; height:2px;
  background:currentColor;
  border-radius:1px;
  content:"";
  position:relative;
}
.nav-toggle .bars::before{ position:absolute; top:-6px; left:0; }
.nav-toggle .bars::after{ position:absolute; top:6px; left:0; }

@media (max-width:900px){
  .js .nav-toggle{ display:inline-flex; }
  .js header.site nav{
    display:none;
    flex-basis:100%;
    flex-direction:column;
    gap:0;
    margin-top:4px;
    border-top:1px solid rgba(255,255,255,.14);
  }
  .js header.site nav.open{ display:flex; }
  .js header.site nav a{
    padding:13px 2px;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:1.08rem;
  }
  .js header.site nav a.current{ border-bottom-color:var(--gold); }
  .js header.site nav .lang{ margin:16px 0 6px; align-self:flex-start; }
  .js header.site nav .lang a{ padding:6px 16px; border-bottom:none; font-size:1rem; }
}

/* ---------- "More to be announced" participant placeholder ---------- */
.person.more .avatar{
  position:relative;
  border:3px dashed var(--gold);
  background:transparent;
}
.person.more .avatar::before,
.person.more .avatar::after{
  content:"";
  position:absolute;
  top:50%; left:50%;
  background:var(--gold-soft);
  border-radius:2px;
  transform:translate(-50%,-50%);
}
.person.more .avatar::before{ width:38px; height:4px; }
.person.more .avatar::after{ width:4px; height:38px; }
.person.more h3{ font-size:1.12rem; line-height:1.3; }
