/* The Future of Cash: the current thefutureofcash.com look (its Automatic.css palette) on the platform's blocks.
   White page, navy text, maroon headings (the logo's words), teal for actions, rules and the logo's dots; light teal
   and light blue bands. Teal (#00b4b1) is too light for text on white: text in teal uses --teal-ink. Class names
   follow ACF's templates. Fonts are self-hosted (static/foc/fonts, OFL): Quicksand for headings, Roboto for text. */

@font-face{font-family:"Quicksand";font-weight:300 700;font-style:normal;font-display:swap;src:url("fonts/quicksand-latin-wght-normal.314d6364bbee.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Quicksand";font-weight:300 700;font-style:normal;font-display:swap;src:url("fonts/quicksand-latin-ext-wght-normal.a374664b0668.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Roboto";font-weight:100 900;font-style:normal;font-display:swap;src:url("fonts/roboto-latin-wght-normal.9a01b69183a9.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-weight:100 900;font-style:normal;font-display:swap;src:url("fonts/roboto-latin-ext-wght-normal.0f1d3218bace.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Roboto";font-weight:100 900;font-style:italic;font-display:swap;src:url("fonts/roboto-latin-wght-italic.1c278435b673.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --teal:#00b4b1;          /* primary: buttons, rules, the logo's dots */
  --teal-ink:#00706d;      /* teal for text and links on white (AA) */
  --teal-dark:#00807d;
  --teal-pale:#e6ffff;     /* light teal band */
  --navy:#0a2434;          /* base: text, the footer */
  --navy-2:#144a6b;
  --sky:#eaf4fb;           /* light blue band */
  --sky-line:#bfdff3;
  --maroon:#663333;        /* the logo's words: headings */
  --maroon-dark:#552b2b;
  --olive:#b3ad6e;         /* the logo's curve */
  --bg:#fff;
  --fg:var(--navy);
  --muted:#4a5e6c;
  --line:#d6e3ec;
  --display:"Quicksand","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Roboto","Helvetica Neue",Arial,system-ui,sans-serif;
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.15;color:var(--maroon)}
h1,h2{font-weight:700;letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem)}
h3{font-size:1.12rem;font-weight:700}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:4px}
.eyebrow{font-family:var(--display);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--teal-ink)}
.lede{color:var(--muted);font-size:1.08rem;max-width:62ch}

/* the logo's curve and dots (static/foc/dots.svg) */
.dots-rule{height:clamp(40px,6vw,64px);background:url("dots.bdc50cc68b98.svg") center/contain no-repeat;margin-inline:auto;max-width:1180px}

/* header and menu */
header.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
.brand{display:block;flex:none}
.brand img{display:block;height:52px;width:auto}
.nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav ul a{display:block;padding:8px 12px;border-radius:8px;text-decoration:none;font:600 .95rem var(--display);color:var(--navy)}
.nav ul a:hover{color:var(--maroon);background:var(--teal-pale)}
.nav li{position:relative}
.nav li ul{display:none;position:absolute;top:100%;left:0;min-width:220px;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(10,36,52,.12)}
.nav li:hover>ul,.nav li:focus-within>ul{display:flex}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--navy);border-radius:8px;padding:6px 12px;font-size:1.1rem;cursor:pointer}
@media (max-width:900px){
  .menu-toggle{display:block}
  .brand img{height:42px}
  .nav>ul{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:8px clamp(16px,4vw,40px) 16px}
  .nav>ul.open{display:flex}
  .nav li ul{display:flex;position:static;border:0;box-shadow:none;background:none;padding:0 0 0 12px}
  .nav-cta .btn{padding:9px 16px;font-size:.82rem}
}
@media (max-width:420px){.nav-cta .btn{display:none}}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;font:700 .95rem var(--display);text-decoration:none;letter-spacing:.01em;border:2px solid transparent;transition:transform .15s ease,background .15s ease,color .15s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--teal);color:var(--navy)}
.btn-primary:hover{background:#00ccc9}
.btn-ghost{border-color:currentColor;background:transparent;color:var(--navy)}
.btn-ghost:hover{background:var(--teal-pale)}
.cta{display:flex;gap:12px;flex-wrap:wrap}

/* hero: the photo under a navy shade, the headline with the logo's teal offset shadow; the "last held" card */
.foc-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding-block:clamp(64px,10vw,128px)}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,36,52,.9) 0%,rgba(10,36,52,.72) 50%,rgba(10,36,52,.35) 100%)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.hero-text{display:grid;gap:20px;min-width:0}
.foc-hero .eyebrow{color:#7ff3f1}
.foc-hero h1{font-size:clamp(2.8rem,7.5vw,5.6rem);font-weight:700;line-height:1;color:#fff;text-shadow:.06em .06em 0 var(--teal)}
.foc-hero h1 em{font-style:normal;color:#7ff3f1;text-shadow:none}
.hero-theme{font-size:clamp(1.05rem,2vw,1.3rem);max-width:40ch;color:#e3eef5}
.foc-hero .btn-ghost{color:#fff}
.foc-hero .btn-ghost:hover{background:rgba(255,255,255,.1)}
.last-held{background:rgba(255,255,255,.96);color:var(--navy);border-radius:20px;padding:clamp(22px,3vw,32px);border-top:6px solid var(--teal);box-shadow:0 24px 60px rgba(0,0,0,.25);display:grid;gap:6px}
.last-held .eyebrow{color:var(--teal-ink)}
.last-place{font:700 clamp(1.8rem,3.4vw,2.4rem)/1.1 var(--display);color:var(--maroon)}
.last-place span{color:var(--teal-ink)}
.last-dates{color:var(--muted)}
.figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:14px 0 0;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.figs div{background:#fff;padding:12px 16px}
.figs div:last-child:nth-child(odd){grid-column:1/-1}  /* an odd number of figures: the last one runs across */
.figs dt{font:700 .7rem var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.figs dd{margin:2px 0 0;font:700 1.7rem var(--display);color:var(--navy);font-variant-numeric:tabular-nums}
.pause{position:absolute;right:clamp(16px,3vw,32px);top:16px;z-index:2;font:600 .78rem var(--display);color:#fff;background:rgba(10,36,52,.5);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 14px;cursor:pointer}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-shade{background:rgba(10,36,52,.8)}}

/* a Band of cards (style "band"): titles running across the page */
.ticker{overflow:hidden;background:var(--navy);border-block:1px solid var(--navy-2)}
.ticker-track{display:flex;width:max-content;padding-block:14px}
.ticker-track span{font:700 .85rem var(--display);letter-spacing:.16em;text-transform:uppercase;color:#e3eef5;padding-inline:28px;white-space:nowrap}
.ticker-track span::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-left:56px;vertical-align:middle;transform:translateX(-28px)}
@media (prefers-reduced-motion:no-preference){.ticker-track{animation:tick 40s linear infinite}@keyframes tick{to{transform:translateX(-50%)}}}

section{padding-block:clamp(56px,8vw,96px)}
.sec-head{display:grid;gap:12px;margin-bottom:clamp(28px,4vw,44px)}

/* text section (about): heading beside the text, on the light teal band */
section.text-about{background:var(--teal-pale)}
.about{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(28px,5vw,72px);align-items:start}
.about .sec-head{margin-bottom:0}
.about .body{display:grid;gap:16px;color:var(--navy);min-width:0}
.rich{display:grid;gap:16px}
.rich strong,.rich b{color:var(--navy)}
.rich ul{margin:0;padding-left:1.2em}
.rich a{color:var(--teal-ink)}
.rich h2{font-size:1.5rem}.rich h3{font-size:1.15rem}
.about .plate{border-radius:20px;overflow:hidden;margin-top:12px}
.about .plate img{display:block;width:100%;height:auto}
/* text sections that flow: page or reading width, the photo right or left (small, medium, large) with the text
   wrapping around it, little padding between text sections */
section.text{padding-block:clamp(24px,3vw,40px)}
section.text+section.text{padding-top:0}
.flow::after{content:"";display:block;clear:both}
.flow>.eyebrow{display:block;margin-bottom:8px}
.flow h2{font-size:clamp(1.6rem,2.8vw,2.2rem);margin-bottom:14px}
.flow .rich{display:block;color:var(--navy)}
.flow-narrow{max-width:78ch}  /* the reading width, aligned with the page's other blocks */
.flow .rich>*+*{margin-top:14px}
.flow .rich h2,.flow .rich h3{margin-top:28px}
.flow-photo{float:right;width:min(42%,500px);margin:6px 0 18px 32px}
.flow-photo-left{float:left;margin:6px 32px 18px 0}
.flow-photo-small{width:min(33%,380px)}
.flow-photo-large{width:min(50%,600px)}
.flow-photo img{display:block;width:100%;height:auto;border-radius:16px}
.flow-photo figcaption{font-size:.72rem;color:var(--muted);margin-top:6px}
@media (max-width:700px){.flow-photo{float:none;width:100%;margin:0 0 18px}}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* review, standard and section pages: a title band, the blocks closer together than on the home page */
.page-title{background:linear-gradient(180deg,var(--teal-pale),#fff);padding-block:clamp(40px,6vw,72px) clamp(8px,2vw,16px);position:relative}
.page-title::after{content:"";display:block;width:min(calc(100% - 32px),640px);height:clamp(40px,5vw,56px);margin:clamp(16px,2.5vw,28px) auto 0;background:url("dots.bdc50cc68b98.svg") center/contain no-repeat;pointer-events:none}  /* the logo's dots, centred under the title */
.page-title .wrap{display:grid;gap:10px}
.page-title h1{font-size:clamp(2.2rem,5vw,3.4rem);max-width:20ch}
.page-blocks{padding-bottom:clamp(24px,4vw,48px)}
.page-blocks>section{padding-block:clamp(24px,3vw,40px)}
.page-blocks>section.prog{padding-block:clamp(36px,4.5vw,56px)}
.page-blocks>section.text+section.text{padding-top:0}
.page-blocks .sec-head{gap:8px;margin-bottom:clamp(16px,2vw,24px)}
.page-blocks .sec-head h2{font-size:clamp(1.6rem,2.8vw,2.2rem)}
.page-blocks>.sponsor-band{margin-block:clamp(12px,2vw,24px)}
.other-editions{padding-bottom:48px;display:grid;gap:12px}

/* tags with labels */
.members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:0;max-width:760px;margin-left:auto}
.members li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:500}
.members li span{font:700 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.members li.obs{border-style:dashed;color:var(--muted)}
.members-note{font-size:.86rem;color:var(--muted);margin-top:16px;max-width:760px;margin-left:auto}
section.tags-after-text{padding-top:0}

/* past editions: a timeline along the logo's curve, the dots growing towards the latest edition */
.editions{background:var(--sky)}
.timeline{position:relative;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.timeline::before{content:"";position:absolute;left:0;right:0;top:22px;border-top:2px solid var(--olive)}
.timeline li{position:relative;display:grid;gap:4px;padding-top:62px;align-content:start;--d:22px}
.timeline li:nth-child(2){--d:28px}.timeline li:nth-child(3){--d:34px}.timeline li:nth-child(n+4){--d:40px}
.timeline li::before{content:"";position:absolute;top:calc(23px - var(--d) / 2);left:0;width:var(--d);height:var(--d);border-radius:50%;background:var(--teal);opacity:.55}
.timeline li.now::before{opacity:1;box-shadow:0 0 0 6px rgba(0,180,177,.2)}
.timeline .yr{font:700 1.7rem var(--display);color:var(--maroon);font-variant-numeric:tabular-nums}
.timeline .place{font-weight:600;color:var(--navy)}
.timeline a.place{color:var(--teal-ink);text-underline-offset:3px}
.timeline .meta{font-size:.88rem;color:var(--muted)}
@media (max-width:760px){.timeline{grid-template-columns:1fr}.timeline::before{top:0;bottom:0;left:19px;right:auto;border-top:0;border-left:2px solid var(--olive)}.timeline li{padding-top:4px;padding-left:64px;min-height:48px}.timeline li::before{top:4px;left:calc(20px - var(--d) / 2)}}

/* cards: white cards on teal rules */
.themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.theme{background:#fff;padding:26px;display:grid;gap:10px;align-content:start;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:14px}
.theme .tag{font:700 .72rem var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink)}
.theme p{color:var(--muted);font-size:.96rem}
.theme img{border-radius:10px;display:block}
.theme .btn{justify-self:start}
@media (max-width:900px){.themes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.themes{grid-template-columns:1fr}}

/* cards: steps */
.week{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:14px}
.day{border-top:4px solid var(--teal);padding-top:14px;display:grid;gap:6px;align-content:start;min-width:0}
.day.social{border-color:var(--maroon)}
.day .d{font:700 .78rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.day h3{font-size:1rem}
.day p{font-size:.92rem;color:var(--muted)}
section.cards-cards+section.cards-steps{padding-top:0}
@media (max-width:900px){.week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.week{grid-template-columns:1fr}}

/* cards with buttons: panels, the first on navy */
.join{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.join article{border:1px solid var(--line);border-radius:18px;padding:28px;display:grid;gap:12px;align-content:start;background:#fff}
.join article p{color:var(--muted)}
.join article.feat{background:var(--navy);border-color:var(--navy);color:#fff}
.join article.feat h3{color:#fff}
.join article.feat p{color:#d4e2ea}
.join article.feat .eyebrow{color:#7ff3f1}
.join .btn{justify-self:start;margin-top:6px}
.join article.feat .btn-ghost{color:#fff}
@media (max-width:860px){.join{grid-template-columns:1fr}}

/* photos: a mosaic */
.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);gap:12px}
.photos.few{grid-template-columns:repeat(3,minmax(0,1fr))}
.ph{position:relative;margin:0;border-radius:16px;overflow:hidden;min-height:180px;background:linear-gradient(160deg,var(--navy-2),var(--navy))}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(transparent,rgba(10,36,52,.88));display:grid;gap:2px}
.ph figcaption b{font:700 1.05rem var(--display);color:#fff}
.ph figcaption span{font:700 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:#7ff3f1}
.ph figcaption small{font-size:.68rem;color:#d4e2ea}
.ph .add{position:absolute;top:12px;left:12px;font:700 .68rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:#d4e2ea;border:1px dashed #7ff3f1;border-radius:999px;padding:5px 10px}
.ph.big{grid-column:span 2;grid-row:span 2;min-height:380px}
.ph.wide{grid-column:span 2}
@media (max-width:860px){.photos,.photos.few{grid-template-columns:repeat(2,minmax(0,1fr))}.ph.big{min-height:300px}}
@media (max-width:480px){.photos,.photos.few{grid-template-columns:1fr}.ph.big,.ph.wide{grid-column:auto;grid-row:auto}}

/* attendees, speakers' organisations: pills; government bodies (central banks) in teal */
.orgs{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.orgs li{padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:.9rem;background:#fff}
.orgs li.cb{border-color:var(--teal);background:var(--teal-pale);font-weight:600}
.orgs li small{color:var(--muted);margin-left:4px}
.orgs li a{text-decoration:none;font-weight:600;color:var(--teal-ink)}

/* programme: a tab per day, as on SDF */
.prog{background:var(--sky)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.tab-btn{background:#fff;border:1px solid var(--sky-line);color:var(--navy);padding:10px 18px;border-radius:999px;font:700 .85rem var(--display);cursor:pointer;transition:all .2s}
.tab-btn:hover{border-color:var(--teal)}
.tab-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.day-panel{display:none;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .35s ease}
.day-panel.active{display:block}
.day-panel.shown{opacity:1;transform:none}
.day-title{font:700 1.3rem var(--display);color:var(--maroon);margin-bottom:12px}
.sess{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--sky-line)}
.sess:last-child{border-bottom:1px solid var(--sky-line)}
.sess time{font:700 1rem var(--display);color:var(--navy);font-variant-numeric:tabular-nums}
.sess time span{color:var(--muted);font-weight:500}
.sess>div>h3{font:700 1.05rem var(--display);color:var(--navy);margin-bottom:6px}
.sess-no{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:4px}
.sess-session{background:#fff;border-radius:14px;border:1px solid var(--sky-line);padding:18px 20px;margin-block:10px}
.sess-session+.sess{border-top:0}
.sess-session>div>h3{font-size:1.3rem;color:var(--maroon)}
.sess-break>div>h3,.sess-meal>div>h3,.sess-other>div>h3{font-weight:500;color:var(--muted)}
.sess-social>div>h3,.sess-social time{color:var(--maroon)}
.sess .who{color:var(--muted);font-size:.92rem}
.sess .rich{gap:6px}
.sess details summary{cursor:pointer;color:var(--teal-ink);font-size:.85rem}
.talk{padding:10px 0 4px}
.talk+.talk{border-top:1px dashed var(--sky-line)}
.talk-title{color:var(--navy);font-weight:600}
.talk-time{display:inline-block;min-width:52px;color:var(--teal-ink);font:700 .88rem var(--display);font-variant-numeric:tabular-nums}
.sess .who button,.talk-title button{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:3px}
.talk .who{padding-left:52px}
.slides{margin-left:10px;padding:2px 10px;font:700 .7rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--teal-ink);border:1px solid var(--teal);border-radius:999px;text-decoration:none;white-space:nowrap}
.slides:hover{background:var(--teal);color:var(--navy)}
.sess-ph{border-top-style:dashed}
.sess-ph time,.sess-ph>div>h3{color:var(--muted);font-weight:400}
.prog-foot{margin-top:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.prog-foot p{color:var(--muted);font-size:.92rem}
.prog-foot a:not(.btn){color:var(--teal-ink)}
@media (max-width:640px){.sess{grid-template-columns:1fr;gap:6px}.sess-session{padding:16px}.talk .who{padding-left:0}.talk-time{display:block}}

/* downloads: the presentations, behind their password */
.downloads-panel{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;padding:clamp(22px,3vw,32px);background:var(--teal-pale);border:1px solid #b3fffe;border-left:6px solid var(--teal);border-radius:16px}
.downloads-panel>div{display:grid;gap:8px;min-width:0;max-width:60ch}
.downloads-intro{color:var(--muted)}
.download-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:2px}
.download-list li{display:flex;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line)}
.download-list a{color:var(--navy);font-weight:500}
.download-list span{color:var(--muted);font-size:.85rem;white-space:nowrap}
.downloads-note{margin-top:12px;color:var(--muted);font-size:.9rem}

/* sponsors: logos always in their own colours, on white or light (companies' logos are never recoloured) */
.sponsor-band{background:var(--sky);padding:28px 0 18px;border-block:1px solid var(--sky-line)}
.sponsor-band>p{text-align:center;font:700 .76rem var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.sponsor-band .logo-carousel{--logo-height:56px;--logo-gap:72px;--logo-seconds:1.5s}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:24px clamp(32px,6vw,80px);padding:24px clamp(16px,4vw,40px)}
.logo-row img{height:56px;width:auto;max-width:200px;object-fit:contain}
.sponsor-tier+.sponsor-tier{margin-top:32px}
.sponsor-tier h3{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.stands{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;list-style:none;margin:0;padding:0}
.stands.with-text{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.stands li{display:grid;gap:12px;align-content:start}
.stand-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;min-height:120px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px}
.stand-logos img{max-height:60px;max-width:100%;object-fit:contain}
.stand-logos span{color:var(--navy);font-weight:600;text-align:center}
.stand-text{color:var(--muted);font-size:.9rem}

/* figures, galleries, video */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.stats div{border-top:4px solid var(--teal);padding-top:12px}
.stats .num{display:block;font:700 2.6rem var(--display);color:var(--maroon);font-variant-numeric:tabular-nums}
.stats .lbl{font:700 .78rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.gallery-grid a{display:block;border-radius:10px;overflow:hidden;aspect-ratio:3/2;background:var(--sky)}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.gallery-grid a:hover img{transform:scale(1.04)}
.gallery-more{margin-top:20px}
.lightbox{max-width:none;max-height:none;width:100vw;height:100vh;margin:0;padding:0;border:0;background:rgba(10,36,52,.95);color:#fff}
.lightbox figure{margin:0;height:100%;display:grid;place-items:center;padding:56px 16px}
.lightbox img{max-height:calc(100vh - 140px);max-width:100%;object-fit:contain}
.lightbox figcaption{font-size:.85rem;color:#d4e2ea;margin-top:10px;text-align:center}
.lightbox button{position:absolute;background:rgba(10,36,52,.6);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;width:44px;height:44px;font-size:1.5rem;cursor:pointer}
.lb-close{top:16px;right:16px}.lb-prev{left:16px;top:50%}.lb-next{right:16px;top:50%}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:var(--navy)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* footer (navy), contact form, popups, cookie banner */
.site-form{display:grid;gap:14px}
.site-form h3{font:700 1.5rem var(--display)}
.site-form label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:4px}
.site-form input[type=text],.site-form input[type=email],.site-form textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--navy);font:inherit}
.site-form [role=alert],.site-form .errorlist{color:#a3261b}
footer{background:var(--navy);color:#c9d8e2}
footer .dots-rule{max-width:none;background:#fff url("dots.bdc50cc68b98.svg") center/auto 100% no-repeat;border-bottom:clamp(16px,2vw,24px) solid #fff;box-sizing:content-box}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 2fr;gap:40px;padding-block:56px 48px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-brand .foot-name{font:700 1.6rem/1.2 var(--display);color:#fff;margin-bottom:14px}
.foot-brand p{font-size:14px;line-height:1.7;max-width:280px}
.foot-brand strong{color:#fff}
.foot-col h2,.foot-form h2{font:700 12.5px/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;color:#7ff3f1;margin-bottom:16px}
.foot-col a,.foot-col p{display:block;font-size:14px;margin-bottom:10px;color:#c9d8e2;text-decoration:none}
.foot-col a:hover{color:#fff}
.foot-col a.foot-sub{padding-left:12px;font-size:13px}
.foot-contact{margin-top:32px}
.foot-contact a{overflow-wrap:anywhere}
.foot-form{scroll-margin-top:36px}
.foot-form-intro{font-size:14px;line-height:1.7;margin-bottom:20px}
.foot-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.foot-form-wide{grid-column:1/-1}
.foot-form .site-form-field{display:flex;flex-direction:column;gap:6px;margin:0}
.foot-form .site-form-field label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#c9d8e2;margin:0}
.foot-form input[type=text],.foot-form input[type=email],.foot-form textarea{background:rgba(255,255,255,.06);border:1px solid rgba(127,243,241,.3);color:#fff}
.foot-form textarea{min-height:112px;resize:vertical}
.foot-form input:focus,.foot-form textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal);background:rgba(255,255,255,.1)}
.foot-form-error,.foot-form .site-form-error{color:#ffb4a8;font-size:13.5px}
.site-form label.foot-form-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0 6px;font-size:13.5px;line-height:1.6;font-weight:400;color:#c9d8e2;cursor:pointer}
.foot-form-consent input{flex:none;width:16px;height:16px;margin-top:3px;accent-color:var(--teal)}
.foot-form-send{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:18px}
.foot-form-send .btn{margin-left:auto}
.foot-form .btn:disabled,.pop-form .btn:disabled{opacity:.7;cursor:progress;transform:none}
.foot-form-success{padding:18px 20px;border:1px solid rgba(127,243,241,.35);border-left:3px solid var(--teal);background:rgba(0,180,177,.1);color:#fff}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:22px calc(22px + env(safe-area-inset-bottom,0px));font-size:12.5px}
.foot-bottom a{color:#c9d8e2}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}.foot-form-col{grid-column:1/-1}}
@media (max-width:560px){.foot-grid,.foot-form-grid{grid-template-columns:1fr}}
.foot-form-trap{position:absolute;left:-9999px}
/* popups (register interest, abstract, speaker), as on SDF: centred, a stripe of the site's colours along the top,
   a round close button */
dialog.foc-pop{margin:auto;position:fixed;inset:0;width:min(680px,calc(100vw - 32px));max-height:min(86vh,820px);padding:0;border:none;border-radius:16px;overflow:auto;background:#fff;color:var(--navy);box-shadow:0 30px 80px rgba(10,36,52,.4)}
dialog.foc-pop::backdrop{background:rgba(10,36,52,.7);backdrop-filter:blur(3px)}
dialog.foc-pop[open]{animation:popIn .25s cubic-bezier(.2,.7,.3,1)}
@keyframes popIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){dialog.foc-pop[open]{animation:none}}
.foc-pop .stripe-bar{position:sticky;top:0;z-index:2;height:6px;background:linear-gradient(90deg,var(--maroon) 0 25%,var(--olive) 25% 45%,var(--teal) 45% 80%,var(--navy) 80%)}
.foc-pop-close{position:absolute;top:16px;right:16px;z-index:3;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:22px;line-height:1;cursor:pointer}
.foc-pop-close:hover{border-color:var(--teal);color:var(--teal-ink)}
.foc-pop-body{padding:30px 36px 32px}
.foc-pop-body .eyebrow{display:block;margin-bottom:10px;padding-right:40px}
.foc-pop-body h3{font-size:clamp(22px,3vw,28px);margin:0 40px 8px 0}
.foc-pop-body .rich{color:var(--navy)}
.pop-who{color:var(--muted);font-size:14.5px;margin-bottom:18px}
.pop-person{display:flex;gap:24px;align-items:center;padding-bottom:22px}
.pop-photo{width:112px;height:112px;flex:none;border-radius:50%;object-fit:cover;border:3px solid var(--teal)}
@media (max-width:560px){.foc-pop-body{padding:24px 22px 26px}.pop-person{flex-direction:column;align-items:flex-start}}
/* the register-interest form in the popup (sites/foc/forms/interest.html), laid out as SDF's */
.foc-pop-form{width:min(620px,calc(100vw - 32px))}
.foc-pop-form:focus{outline:none}
.pop-form h3{margin-bottom:18px}
.pop-form-intro{color:var(--muted);margin-bottom:18px}
.pop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
@media (max-width:560px){.pop-form-grid{grid-template-columns:1fr}}
.pop-form .site-form-field{display:flex;flex-direction:column;gap:6px;margin:0}
.pop-form .site-form-field label,.pop-form-areas legend{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}
.pop-form input:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.pop-form-error,.pop-form .site-form-error{color:#a3261b;font-size:13.5px}
.pop-form-areas{margin:20px 0 0;padding:0;border:none}
.pop-form-areas legend{margin-bottom:10px}
.pop-form-areas label{display:inline-flex;align-items:center;gap:8px;margin:0 22px 6px 0;cursor:pointer;color:var(--navy)}
.pop-form-areas input,.pop-form-consent input{width:16px;height:16px;accent-color:var(--teal)}
.site-form label.pop-form-consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;font-size:.88rem;font-weight:400;color:var(--muted)}
.pop-form-consent input{margin-top:3px;flex:none}
.pop-form-send{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:20px}
.pop-form-success{margin-top:8px;padding:18px 20px;border:1px solid var(--line);border-left:3px solid var(--teal);background:var(--teal-pale);color:var(--navy)}
/* the cookie banner (includes/cookie_banner.html): a navy card as the footer, the popups' stripe along its top, the
   logo's teal for Accept; its SDF button names take FOC's buttons */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:40;max-width:560px;margin-inline:auto;background:var(--navy);color:#e3eef5;border-radius:16px;padding:24px 22px 20px;box-shadow:0 18px 50px rgba(10,36,52,.45);overflow:hidden;font-size:.95rem;line-height:1.6}
.cookie-banner[hidden]{display:none}
.cookie-banner::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--maroon) 0 25%,var(--olive) 25% 45%,var(--teal) 45% 80%,#fff 80%)}
.cookie-banner a{color:#7ff3f1;text-underline-offset:3px}
.cookie-banner-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.cookie-banner .btn{padding:10px 22px}
.cookie-banner .btn-gold{background:var(--teal);color:var(--navy)}
.cookie-banner .btn-gold:hover{background:#00ccc9}
.cookie-banner .btn-outline{border-color:rgba(255,255,255,.5);background:transparent;color:#fff}
.cookie-banner .btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}
@media (max-width:420px){.cookie-banner-buttons .btn{flex:1;justify-content:center}}

/* gentle motion: sections rise into view, the logo's dots settle (scroll-driven, so complete whenever in view) */
@media (prefers-reduced-motion:no-preference){
@supports (animation-timeline:view()){
  @keyframes rise-in{from{transform:translateY(40px);opacity:.2}}
  .theme,.join article,.day,.timeline li,.stand-logos,.stats div{animation:rise-in linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
  .dots-rule{animation:dots-in linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
  @keyframes dots-in{from{background-position:calc(50% - 80px) center}}  /* no fade: it would fade the footer's white ground too */
  .hero-text{animation:lift linear both;animation-timeline:view();animation-range:exit 0% exit 90%}
  @keyframes lift{to{transform:translateY(-70px);opacity:0}}
}}

/* the password page (protected presentations, "Download all") and "your download has started"
   (templates/password_required.html, templates/download_started.html, shared by every site): a white card on the
   navy hero ground, the popups' stripe along its top; their SDF button names take FOC's buttons */
.lock-backdrop{position:relative;overflow:hidden;min-height:calc(100vh - 140px);display:flex;align-items:center;justify-content:center;padding:64px 16px;background:linear-gradient(135deg,var(--navy),var(--navy-2))}
.lock-backdrop .fine-lines,.lock-backdrop .guilloche{display:none}
.lock-backdrop::after{content:"";position:absolute;left:50%;bottom:24px;width:min(90vw,900px);height:80px;transform:translateX(-50%);background:url("dots.bdc50cc68b98.svg") center/contain no-repeat;opacity:.5;pointer-events:none}
.lock-card{position:relative;z-index:2;width:min(440px,100%);background:#fff;color:var(--navy);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;animation:popIn .3s cubic-bezier(.2,.7,.3,1)}
.lock-card .stripe-bar{display:block;height:6px;background:linear-gradient(90deg,var(--maroon) 0 25%,var(--olive) 25% 45%,var(--teal) 45% 80%,var(--navy) 80%)}
.lock-card .stripe-bar span{display:none}
.lock-body{padding:32px 34px 30px}
.lock-icon{width:34px;height:34px;color:var(--teal-ink);margin-bottom:14px}
.lock-body .eyebrow{display:block;margin-bottom:8px}
.lock-body h2{font-size:clamp(1.6rem,4vw,2rem);margin-bottom:10px}
.lock-body>p{color:var(--muted);font-size:15px;margin-bottom:22px}
.lock-form label{display:block;font:700 12px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.lock-form input[type=password]{width:100%;padding:13px 14px;font:inherit;font-size:16px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:14px}
.lock-form input[type=password]:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.lock-form input[aria-invalid=true]{border-color:#a3261b}
.lock-error{color:#a3261b;font-size:14px;margin:-6px 0 14px}
.lock-form .btn,.lock-back{width:100%;justify-content:center}
.lock-card .btn-gold{background:var(--teal);color:var(--navy)}
.lock-card .btn-gold:hover{background:#00ccc9}
.lock-card .btn-outline{border-color:var(--line);background:#fff;color:var(--navy);margin-top:16px}
.lock-card .btn-outline:hover{border-color:var(--teal);color:var(--teal-ink)}
.lock-form .btn:disabled{opacity:.7;cursor:progress;transform:none}
.lock-help{margin-top:18px;font-size:13.5px;color:var(--muted);text-align:center}
.lock-help a{color:var(--teal-ink);text-underline-offset:3px}
.download-file{color:var(--navy);font-size:15px;margin-bottom:12px;word-break:break-word}
@media (prefers-reduced-motion:reduce){.lock-card{animation:none}}
