/* conf.llc — paper is the default edition; html[data-dark] is moon.
   Never routed on prefers-color-scheme: the reader's choice, or paper.
   Every ink/ground pair below was computed to >=4.5:1 before it was written. */

:root{
  --bg:#fbfaf7; --panel:#f2f0ea; --line:#e3e0d7; --line2:#cdc9be;
  --ink:#14171c; --ink2:#4c545f; --ink3:#5f6874;
  --acc:#1d4ed8; --onacc:#ffffff; --accsoft:#e7edfd;
  --ok:#166534; --warn:#854d0e; --rust:#9a3412;
  --disp:"Bricolage Grotesque",ui-sans-serif,system-ui,"Segoe UI",Helvetica,Arial,sans-serif;
  --body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --wrap:min(1180px, 100% - 2.5rem);
  --shadow:0 1px 0 #ebe7dd, 0 8px 20px -16px rgba(20,23,28,.5);
}
html[data-dark]{
  --bg:#0f1216; --panel:#161b21; --line:#242b34; --line2:#333c48;
  --ink:#eef1f5; --ink2:#a8b2bf; --ink3:#8b96a4;
  --acc:#7dabff; --onacc:#0f1216; --accsoft:#17233a;
  --ok:#5dd79b; --warn:#e8c468; --rust:#f0a868;
  --shadow:0 1px 0 #1b2129, 0 8px 20px -16px rgba(0,0,0,.85);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--body);
  font-synthesis-weight:none;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--acc);text-underline-offset:.18em;text-decoration-thickness:from-font}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2.5px solid var(--acc);outline-offset:2px;border-radius:3px}
h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:1.14;letter-spacing:-.02em;margin:0;text-wrap:balance}
.sep{color:var(--ink3);padding:0 .12em}

.skip{position:absolute;left:-9999px;top:0;background:var(--acc);color:var(--onacc);
  padding:.6rem 1rem;z-index:60;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* ---- masthead ------------------------------------------------------- */
.mast{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  width:var(--wrap);margin:0 auto;padding:1.05rem 0 .9rem;border-bottom:2px solid var(--ink)}
.wordmark{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;
  font-family:var(--disp);font-weight:800;font-size:1.2rem;letter-spacing:-.03em}
.wordmark .mk{width:24px;height:24px;flex:none;stroke:var(--acc);fill:none}
.wordmark i{font-style:normal;color:var(--acc)}
.mastnav{display:flex;gap:1rem;margin-left:auto;flex-wrap:wrap}
.mastnav a{color:var(--ink2);text-decoration:none;font-size:.9rem;font-weight:600;
  padding:.2rem 0;border-bottom:2px solid transparent}
.mastnav a:hover{color:var(--ink);border-bottom-color:var(--acc)}

.pill{display:inline-flex;border:1px solid var(--line2);border-radius:999px;background:var(--panel);padding:2px;gap:2px}
.pill button{font:inherit;font-size:13px;line-height:1;cursor:pointer;border:0;border-radius:999px;
  background:transparent;color:var(--ink3);width:28px;height:24px;display:grid;place-items:center;padding:0}
.pill button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.pill button:hover{color:var(--ink)}
.nojs .pill{display:none}

/* ---- shell ---------------------------------------------------------- */
.app{width:var(--wrap);margin:0 auto;padding:2.1rem 0 3rem}
.view>h2{font-size:1.3rem;margin:2.9rem 0 .3rem}
.view>h2+.cards,.view>h2+.rg,.view>h2+.chips{margin-top:.9rem}
.view>h2+.filters{margin-top:.7rem}
.lede{font-size:1.08rem;color:var(--ink2);margin:.7rem 0 0;max-width:66ch}
.lede b{color:var(--ink)}
.pnote{font-size:.94rem;color:var(--ink3);margin:.85rem 0 0;max-width:70ch}
.pnote b{color:var(--ink2)}
.more{margin:.95rem 0 0;font-size:.94rem}
.more a{font-weight:600}
.hero{padding:.6rem 0 .2rem}
.hero h1{font-size:clamp(2.1rem,6.2vw,3.5rem);line-height:1;max-width:15ch;letter-spacing:-.035em}

.crumbs{margin:0 0 1.15rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;font-size:.84rem;color:var(--ink3)}
.crumbs li+li::before{content:"/";padding-right:.4rem;color:var(--line2)}
.crumbs a{color:var(--ink3)}

/* ---- figures -------------------------------------------------------- */
.kpis{display:grid;gap:.7rem;margin:1.9rem 0 0;
  grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.85rem .95rem}
.kpi span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.kpi b{display:block;font-family:var(--disp);font-weight:800;font-size:2rem;line-height:1.1;margin:.16rem 0 0;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.kpi i{display:block;font-style:normal;font-size:.8rem;color:var(--ink3)}

/* ---- conference cards: a printed programme, date on its own rail ----- */
.cards{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.7rem;
  grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acc);
  border-radius:0 10px 10px 0;padding:.85rem 1rem .95rem;display:flex;flex-direction:column;gap:.4rem;
  box-shadow:var(--shadow)}
.card[hidden]{display:none}
.card.cur{border-left-color:var(--rust)}
.cwhen{margin:0;font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.02em;
  color:var(--ink2);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:.5rem}
.soon{font-family:var(--body);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--onacc);background:var(--acc);border-radius:999px;padding:.14rem .45rem}
.card h3{font-size:1.02rem;line-height:1.32;font-weight:700;letter-spacing:-.008em;font-family:var(--body);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--acc);text-decoration:underline}
.cwhere{margin:0;font-size:.86rem;color:var(--ink2)}
.cline{margin:auto 0 0;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding-top:.35rem}

.tag{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:lowercase;text-decoration:none;
  color:var(--ink3);border:1px solid var(--line2);border-radius:999px;padding:.2rem .5rem;background:transparent}
a.tag:hover{color:var(--acc);border-color:var(--acc)}
.tag.on{color:var(--ok);border-color:var(--ok);text-transform:lowercase}
.tag.cfp{color:var(--rust);border-color:var(--rust)}
.prov{margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* ---- registers ------------------------------------------------------- */
.rg{list-style:none;margin:0;padding:0}
.rg.cols{display:grid;gap:0 1.6rem;grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr))}
.rg li a{display:flex;align-items:baseline;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--line);
  color:var(--ink);text-decoration:none}
.rg li a:hover .rgn{color:var(--acc);text-decoration:underline}
.rgn{flex:1 1 auto;min-width:0}
.rgc{font-family:var(--mono);font-size:.84rem;color:var(--ink3);font-variant-numeric:tabular-nums}

.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0}
.chip{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;border:1px solid var(--line2);
  border-radius:999px;padding:.34rem .75rem;color:var(--ink);background:var(--panel);font-size:.88rem;font-weight:600}
.chip span{font-family:var(--mono);font-size:.78rem;color:var(--ink3);font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--acc);color:var(--acc)}
.chip:hover span{color:var(--acc)}

.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 0}
.tg{font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid var(--line2);
  border-radius:999px;padding:.34rem .8rem;background:var(--panel);color:var(--ink2)}
.tg:hover{color:var(--ink);border-color:var(--ink3)}
.tg.is-on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.nojs .filters{display:none}

/* ---- prose ----------------------------------------------------------- */
.prose{max-width:72ch}
.prose p{color:var(--ink2);margin:.85rem 0 0}
.prose h2{font-size:1.26rem;margin:2.4rem 0 0}
.prose i{color:var(--ink)}
.prose b{color:var(--ink)}
.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel);border:1px solid var(--line);
  border-radius:5px;padding:.08em .34em;word-break:break-word}
.prose .kpis{max-width:none}

.empty{background:var(--panel);border:1px dashed var(--line2);border-radius:10px;padding:1.6rem 1.4rem;
  margin:1.9rem 0 0;text-align:center}
.empty h1,.empty h2{font-size:1.4rem}
.empty p{color:var(--ink2);max-width:56ch;margin:.6rem auto 0}
.actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem}
.actions a{text-decoration:none;font-weight:600;font-size:.92rem;border:1px solid var(--line2);
  border-radius:999px;padding:.42rem .95rem;color:var(--ink)}
.actions a.pri{background:var(--acc);border-color:var(--acc);color:var(--onacc)}

/* ---- footer ---------------------------------------------------------- */
.foot{width:var(--wrap);margin:0 auto;padding:1.7rem 0 3.2rem;border-top:2px solid var(--ink);
  font-size:.85rem;color:var(--ink3)}
.foot p{margin:.75rem 0 0;max-width:80ch}
.foot p:first-child{margin-top:0}
.foot a{color:var(--ink2)}
.fmeta{font-variant-numeric:tabular-nums}

@media (max-width:640px){
  :root{--wrap:min(1180px, 100% - 1.6rem)}
  .mastnav{width:100%;margin-left:0;order:3;gap:.85rem}
  .pill{margin-left:auto}
  .app{padding-top:1.5rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* the audit ledger on the method page */
.ledger{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.4rem}
.ledger li{display:flex;gap:.7rem;align-items:baseline;padding:.55rem .8rem;background:var(--panel);
  border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:0 8px 8px 0;
  color:var(--ink2);font-size:.94rem}
.ledger li b{flex:none;min-width:2.4ch;text-align:right;font-family:var(--disp);font-weight:800;
  font-size:1.1rem;color:var(--ink);font-variant-numeric:tabular-nums}
.ledger li:nth-child(1){border-left-color:var(--ok)}
.ledger li:nth-child(2){border-left-color:var(--warn)}
.ledger li:nth-child(3),.ledger li:nth-child(4){border-left-color:var(--rust)}
