
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
/* Grid/flex children default to min-width:auto and refuse to shrink below their
   content, which is the usual cause of mobile horizontal overflow. */
main *,footer *,header *{min-width:0}
h1,h2,h3,h4,p,li,blockquote,figcaption,dd,dt,summary{overflow-wrap:break-word}
.skip{position:absolute;left:-9999px;top:0;z-index:100;padding:.75rem 1.25rem;background:#000;color:#fff;text-decoration:none}
.skip:focus{left:0}
:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
details>summary::-webkit-details-marker{display:none}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

:root{--warm:#FAF7F2;--aubergine:#4B2C4D;--rose:#C57575;--moss:#677356;--ink:#302936;
 --rosetext:#b44e4e;
 --quiet:#6b6370;--rule:#ded6d0}
body{background:var(--warm);color:var(--ink);
 font:400 17px/1.7 "Instrument Sans",system-ui,sans-serif}
h1,h2,h3,h4{margin:0}
h1,.cv-qh{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.012em}
h2,h3,h4{font-family:"Instrument Sans",system-ui,sans-serif;font-weight:700;
 letter-spacing:-.012em}
.cv-w{max-width:1240px;margin:0 auto;padding:0 28px}

/* ---- simple header ---- */
.cv-hd{border-bottom:1px solid var(--rule)}
.cv-hd-in{max-width:1240px;margin:0 auto;padding:12px 28px;display:flex;
 gap:8px 26px;align-items:center;flex-wrap:wrap}
.cv-hd-id{margin:0;font-family:Fraunces,Georgia,serif;font-weight:600;
 font-size:17px}
.cv-hn{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:0 24px;
 flex-wrap:wrap;align-items:center}
.cv-hn a{display:inline-block;padding:10px 0;text-decoration:none;font-size:15px;
 font-weight:600}
.cv-hn a:hover{color:var(--rosetext)}
/* .cv-hn a already sets padding:10px 0; match its specificity or the
   horizontal padding on the button is silently dropped. */
.cv-hn .cv-hn-a{display:inline-block;padding:10px 18px;
 background:var(--aubergine);color:#fff;text-decoration:none;font-weight:700;
 font-size:14.5px}
.cv-hn .cv-hn-a:hover{background:var(--moss);color:#fff}

/* ---- opening: identity upper-left, then the bracketed composition ---- */
.cv-op{padding:50px 0 60px}
.cv-id{max-width:1240px;margin:0 auto;padding:0 28px 40px}
.cv-k{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--rosetext)}
h1{font-size:clamp(34px,4.4vw,70px);line-height:1.04;max-width:16ch}
.cv-id-d{margin:16px 0 0;font-size:18.5px;color:#4b4450;max-width:52ch}
.cv-acts{margin:24px 0 0;display:flex;gap:11px;flex-wrap:wrap}
.cv-a{display:inline-block;padding:13px 22px;font-weight:700;font-size:15px;
 text-decoration:none;background:var(--aubergine);color:#fff}
.cv-a--o{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.cv-a:hover{background:var(--moss);color:#fff;box-shadow:none}
/* two oversized square brackets, drawn as borders, containing the composition */
.cv-brackets{max-width:1240px;margin:0 auto;padding:0 28px;position:relative}
.cv-brackets-in{position:relative;padding:44px 74px}
.cv-brackets-in::before,.cv-brackets-in::after{content:"";position:absolute;
 top:0;bottom:0;width:46px;border:10px solid var(--aubergine)}
.cv-brackets-in::before{left:0;border-right:0}
.cv-brackets-in::after{right:0;border-left:0;border-color:var(--rose)}
.cv-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;
 align-items:start}
.cv-panel{margin:0}
.cv-panel img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.cv-panel figcaption{margin-top:9px;font-size:12.5px;color:var(--quiet)}
.cv-qs{list-style:none;margin:0;padding:0}
.cv-qs li{padding:16px 0;border-top:1px solid var(--rule)}
.cv-qs li:first-child{border-top:0;padding-top:0}
.cv-qh{display:block;font-size:clamp(20px,2.1vw,27px);line-height:1.22}
.cv-qs a{display:inline-block;margin-top:9px;font-size:14.5px;font-weight:700;
 color:var(--moss);text-decoration:none;border-bottom:2px solid var(--moss);
 padding-bottom:2px}
.cv-qs a:hover{color:var(--aubergine);border-color:var(--aubergine)}

/* ---- sections ---- */
.cv-s{padding:66px 0}
.cv-s--white{background:#fff}
.cv-s--deep{background:var(--aubergine);color:#e0d4e1}
.cv-s--deep h2,.cv-s--deep h3,.cv-s--deep h4{color:#fff}
h2{font-size:clamp(26px,3vw,42px);line-height:1.08;margin:0 0 16px}
.cv-lead{font-size:18.5px;max-width:68ch;margin:0 0 30px;color:#4b4450}
.cv-s--deep .cv-lead{color:#c2b0c4}
.cv-more{margin:30px 0 0;font-weight:700}
.cv-more a{color:var(--rosetext)}
.cv-s--deep .cv-more a{color:#f0c3c3}

/* ---- the three questions, opened out ---- */
.cv-ans{border-top:2px solid var(--aubergine);padding:6px 0 18px}
.cv-ans summary{padding:16px 0;font-family:Fraunces,Georgia,serif;
 font-weight:600;font-size:clamp(21px,2.2vw,30px);line-height:1.2}
.cv-ans-b{margin:0 0 16px;max-width:72ch;color:#4b4450}
.cv-ex{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.cv-ex li{padding:14px 0;border-top:1px solid var(--rule)}
.cv-ex h4{font-size:17px;line-height:1.32}
.cv-when{margin:4px 0 0;font-size:13.5px;color:var(--quiet)}
.attr{margin:4px 0 0;font-size:14px;color:#4b4450}

/* ---- five-day detail ---- */
.cv-day{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;
 padding:28px 0;border-top:1px solid var(--rule)}
.cv-day h3{font-size:22px;line-height:1.16}
.cv-day-d{margin:5px 0 0;font-size:14.5px;font-weight:700;color:var(--rosetext)}
.cv-day-b{margin:10px 0 0;font-size:15.5px;color:#4b4450}
.cv-rows{list-style:none;margin:0;padding:0}
.cv-rows li{padding:12px 0;border-top:1px solid var(--rule)}
.cv-rows li:first-child{border-top:0;padding-top:0}
.cv-rows h4{font-size:16.5px;line-height:1.32}

/* ---- speakers ---- */
.cv-people{display:grid;gap:0}
.cv-person{display:grid;grid-template-columns:84px minmax(0,1fr) minmax(0,1.2fr);
 gap:24px;padding:24px 0;border-top:1px solid #6b4a6d;align-items:start}
.cv-person:last-child{border-bottom:1px solid #6b4a6d}
.cv-person img{width:84px;height:84px;object-fit:cover}
.cv-person h3{font-size:21px;line-height:1.18}
.cv-person-r{margin:5px 0 0;font-size:14.5px;color:#c2b0c4}
.cv-person-s{margin:0;font-size:17px;font-weight:700}
.cv-person-w{margin:5px 0 0;font-size:13.5px;color:#c2b0c4}
.cv-person .attr{color:#c2b0c4}

/* ---- participation / networking / venue ---- */
.cv-modes{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.cv-modes li{border-left:5px solid var(--moss);padding:2px 0 2px 20px}
.cv-modes h3{font-size:20px;margin:0 0 8px}
.cv-modes p{margin:0;color:#4b4450}
.cv-broad{margin:0 0 28px}
.cv-broad img{width:100%;height:auto;aspect-ratio:5/2;object-fit:cover}
.cv-broad figcaption{margin-top:10px;font-size:13px;color:var(--quiet)}
.cv-venue{margin:0 0 34px;display:grid;
 grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:0 30px;max-width:880px}
.cv-venue dt{font-size:13.5px;color:var(--quiet);padding:11px 0;
 border-top:1px solid var(--rule)}
.cv-venue dd{margin:0;padding:11px 0;border-top:1px solid var(--rule);font-weight:600}
.cv-gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.cv-gal figure{margin:0}
.cv-gal img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.cv-gal figcaption{margin-top:9px;font-size:12.5px;color:var(--quiet)}

/* ---- faq ---- */
.cv-q{border-top:1px solid var(--rule);padding:4px 0}
.cv-q summary{font-weight:700;font-size:18px;padding:13px 0}
.cv-q p{margin:0 0 16px;max-width:70ch;color:#4b4450}
.cv-org{margin:32px 0 0;font-size:14.5px;color:var(--quiet);max-width:80ch}
.cv-org a{color:var(--rosetext);font-weight:700}

/* ---- footer ---- */
.ft{background:var(--ink);color:#cec7d0}
.ft-in{max-width:1240px;margin:0 auto;padding:52px 28px;display:grid;gap:12px}
.ft-org strong{color:#fff}
.ft-links{list-style:none;display:flex;flex-wrap:wrap;gap:18px;padding:0;margin:8px 0}
.ft-links a{color:#f0c3c3;font-weight:700;font-size:14.5px}
.ft-note,.ft-id,.ft-contact{font-size:13.5px;color:#aea6b2;margin:0;max-width:78ch}
.ft-contact a{color:#fff}
.ft-c{font-size:13px;color:#9c94a0;margin:10px 0 0}

@media (max-width:1000px){
  .cv-inner{grid-template-columns:minmax(0,1fr);gap:28px}
  .cv-ex{grid-template-columns:minmax(0,1fr)}
  .cv-day{grid-template-columns:minmax(0,1fr);gap:16px}
  .cv-person{grid-template-columns:84px minmax(0,1fr);gap:20px}
  .cv-person-x{grid-column:2}
  .cv-modes{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  /* one bracket becomes a coloured left edge, the other a bottom edge */
  .cv-brackets-in{padding:0 0 26px 22px}
  .cv-brackets-in::before{width:10px;border:0;border-left:10px solid var(--aubergine)}
  .cv-brackets-in::after{right:0;left:0;top:auto;bottom:0;width:auto;height:10px;
   border:0;border-bottom:10px solid var(--rose)}
  .cv-panel img{aspect-ratio:3/2}
  .cv-acts{width:100%}
  .cv-a{flex:1;text-align:center}
  .cv-person{grid-template-columns:minmax(0,1fr);gap:14px}
  .cv-person-x{grid-column:1}
  .cv-gal{grid-template-columns:minmax(0,1fr)}
  .cv-broad img{aspect-ratio:3/2}
  .cv-venue{grid-template-columns:minmax(0,1fr);gap:0}
  .cv-venue dt{padding-bottom:0}
  .cv-venue dd{padding-top:2px;border-top:0}
  .cv-s{padding:50px 0}
}
