
*,*::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{--snow:#F8F9F7;--night:#19304F;--teal:#2D6D69;--orange:#DD7442;--mist:#DCE5E7;
 --quiet:#59646c;--rule:#ccd7da;
 --otext:#a1481d;--onight:#e08255}
body{background:var(--snow);color:var(--night);
 font:400 17px/1.7 Lato,system-ui,sans-serif}
h1,h2,h3,h4{font-family:"League Spartan",system-ui,sans-serif;font-weight:700;
 margin:0;letter-spacing:-.016em}
.pk-w{max-width:1280px;margin:0 auto;padding:0 30px}

/* ---- crisp four-link header ---- */
.pk-hd{border-bottom:2px solid var(--night)}
.pk-hd-in{max-width:1280px;margin:0 auto;padding:12px 30px;display:flex;
 gap:8px 28px;align-items:center;flex-wrap:wrap}
.pk-hd-id{margin:0;font-family:"League Spartan",system-ui,sans-serif;
 font-weight:800;font-size:16.5px}
.pk-hn{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:0 26px;
 flex-wrap:wrap}
.pk-hn a{display:inline-block;padding:10px 0;text-decoration:none;font-size:15px;
 font-weight:700}
.pk-hn a:hover{color:var(--otext)}

/* ---- the peak: composition only, behind no title text ---- */
.pk-op{position:relative;padding:0 0 0}
/* the field starts at 40% so the title and actions sit entirely in the white
   area beside it; inside its own box the peak still rises from the lower left. */
.pk-shape{position:absolute;left:40%;right:0;top:0;height:620px;
 background:var(--night);clip-path:polygon(0% 100%,52% 0%,100% 100%)}
.pk-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;
 padding:56px 30px 0;min-height:620px;display:flex;flex-direction:column}
.pk-text{max-width:520px}
.pk-k{margin:0 0 14px;font-size:14px;font-weight:700;color:var(--otext)}
h1{font-size:clamp(38px,4.6vw,70px);line-height:.99}
.pk-sub{margin:18px 0 0;font-size:19px;max-width:40ch;color:#3b4a58}
.pk-acts{margin:26px 0 0;display:flex;gap:12px;flex-wrap:wrap}
.pk-a{display:inline-block;padding:14px 24px;font-weight:800;font-size:15px;
 text-decoration:none;background:var(--orange);color:#22150c;
 font-family:"League Spartan",system-ui,sans-serif}
.pk-a--o{background:transparent;color:var(--night);
 box-shadow:inset 0 0 0 2px var(--night)}
.pk-a:hover{background:var(--teal);color:#fff;box-shadow:none}
/* date and venue run along the base of the colour field */
/* sized and inset to sit wholly inside the field at this height, so no word
   of it ever falls off the colour onto the snow behind. */
.pk-base{margin:auto 9% 168px auto;width:40%;padding:0;text-align:center;
 background:var(--night);color:#fff;font-size:16px;font-weight:700;
 line-height:1.55}
/* the photograph intersects the base only, never the peak */
.pk-strip{position:relative;z-index:2;margin:-140px 0 0}
.pk-strip img{width:100%;height:auto;aspect-ratio:1280/280;object-fit:cover;
 object-position:50% 42%}
.pk-strip figcaption{max-width:1280px;margin:0 auto;padding:11px 30px;
 font-size:12.5px;color:var(--quiet)}

/* ---- sections ---- */
.pk-s{padding:68px 0}
.pk-s--mist{background:var(--mist)}
.pk-s--night{background:var(--night);color:#c6d3de}
.pk-s--night h2,.pk-s--night h3,.pk-s--night h4{color:#fff}
h2{font-size:clamp(27px,3.1vw,44px);line-height:1.04;margin:0 0 16px}
.pk-lead{font-size:18.5px;max-width:68ch;margin:0 0 30px;color:#3b4a58}
.pk-s--night .pk-lead{color:#a3b5c5}
.pk-more{margin:30px 0 0;font-weight:700}
.pk-more a{color:var(--otext)}
.pk-s--night .pk-more a{color:var(--onight)}

.pk-purpose{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.pk-purpose li{border-top:5px solid var(--teal);padding:16px 0 0}
.pk-purpose h3{font-size:21px;margin:0 0 8px}
.pk-purpose p{margin:0;color:#3b4a58}

/* ---- five routes ---- */
.pk-route{padding:30px 0;border-top:2px solid var(--night)}
.pk-route:last-child{border-bottom:2px solid var(--night)}
.pk-route-h{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:baseline}
.pk-route h3{font-size:clamp(22px,2.4vw,32px);line-height:1.1}
.pk-route-d{margin:0;font-size:14.5px;font-weight:700;color:var(--teal)}
.pk-route-c{margin:0;font-size:13.5px;color:var(--quiet)}
.pk-route-b{margin:12px 0 0;max-width:76ch;color:#3b4a58}
.pk-rows{list-style:none;margin:18px 0 0;padding:0;display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pk-rows li{border-top:1px solid var(--rule);padding:12px 0 0}
.pk-rows h4{font-size:16.5px;line-height:1.32}
.pk-when{margin:4px 0 0;font-size:13px;color:var(--quiet)}
.attr{margin:4px 0 0;font-size:13.5px;color:#3b4a58}

/* ---- experts: alternating text / image, never stacked by height ---- */
.pk-people{display:grid;gap:0}
.pk-person{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);
 gap:30px;padding:28px 0;border-top:1px solid #35506e;align-items:center}
.pk-person:last-child{border-bottom:1px solid #35506e}
.pk-person--flip{grid-template-columns:minmax(0,1fr) minmax(0,200px)}
.pk-person--flip .pk-person-p{grid-column:2;grid-row:1}
.pk-person--flip .pk-person-b{grid-column:1;grid-row:1}
.pk-person-p{margin:0}
.pk-person-p img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.pk-person h3{font-size:23px;line-height:1.16}
.pk-person-r{margin:6px 0 0;font-size:15px;color:#a3b5c5}
.pk-person-s{margin:12px 0 0;font-size:17px;font-weight:700;
 font-family:"League Spartan",system-ui,sans-serif}
.pk-person-w{margin:4px 0 0;font-size:13.5px;color:#a3b5c5}
.pk-person .attr{color:#a3b5c5}

/* ---- attendance / gallery / venue / partnership ---- */
.pk-modes{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.pk-modes li{padding:24px;border:2px solid var(--night)}
.pk-modes li+li{border-left:0}
.pk-modes h3{font-size:20px;margin:0 0 8px}
.pk-modes p{margin:0;color:#3b4a58}
.pk-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pk-gal figure{margin:0}
.pk-gal img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.pk-gal figcaption{margin-top:9px;font-size:12.5px;color:var(--quiet)}
.pk-venue{margin:0;display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);
 gap:0 30px;max-width:900px}
.pk-venue dt{font-size:13.5px;color:var(--quiet);padding:11px 0;
 border-top:1px solid var(--rule)}
.pk-venue dd{margin:0;padding:11px 0;border-top:1px solid var(--rule);font-weight:700}
.pk-part{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:36px;
 align-items:start}
.pk-part-card{background:var(--snow);padding:24px;border-left:8px solid var(--teal)}
.pk-part-card h3{font-size:19px;margin:0 0 10px}
.pk-part-card p{margin:0 0 8px;font-size:15px}
.pk-part-card a{color:var(--teal);font-weight:700}

/* ---- faq / legal ---- */
.pk-q{border-top:1px solid var(--rule);padding:4px 0}
.pk-q summary{font-family:"League Spartan",system-ui,sans-serif;font-weight:700;
 font-size:19px;padding:13px 0}
.pk-q p{margin:0 0 16px;max-width:70ch;color:#3b4a58}
.pk-legal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;
 margin:34px 0 0}
.pk-legal h3{font-size:18px;margin:0 0 10px}
.pk-legal p{margin:0 0 10px;font-size:15px;color:#3b4a58}
.pk-legal a{color:var(--otext);font-weight:700}

/* ---- footer ---- */
.ft{background:var(--night);color:#c2d0dc}
.ft-in{max-width:1280px;margin:0 auto;padding:52px 30px;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:var(--onight);font-weight:700;font-size:14.5px}
.ft-note,.ft-id,.ft-contact{font-size:13.5px;color:#a2b3c1;margin:0;max-width:78ch}
.ft-contact a{color:#fff}
.ft-c{font-size:13px;color:#91a3b2;margin:10px 0 0}

@media (max-width:1040px){
  .pk-purpose{grid-template-columns:minmax(0,1fr)}
  .pk-rows{grid-template-columns:minmax(0,1fr)}
  .pk-person,.pk-person--flip{grid-template-columns:minmax(0,1fr);gap:20px}
  .pk-person--flip .pk-person-p,.pk-person--flip .pk-person-b{
   grid-column:1;grid-row:auto}
  .pk-person-p{max-width:200px}
  .pk-part{grid-template-columns:minmax(0,1fr)}
  .pk-gal{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  /* the triangle flattens into a large angled colour corner with no text on
     it; facts, actions and the photograph follow underneath. */
  .pk-shape{left:0;height:200px;clip-path:polygon(0% 0%,100% 0%,100% 100%)}
  .pk-inner{min-height:0;padding:228px 30px 0;display:block}
  .pk-text{max-width:none}
  .pk-base{margin:26px 0 0;padding:0;width:auto;text-align:left;
   background:transparent;color:var(--night);font-size:16px}
  .pk-base br{display:none}
  .pk-strip{margin:24px 0 0}
  .pk-strip img{aspect-ratio:3/2}
  .pk-acts{width:100%}
  .pk-a{flex:1;text-align:center}
  .pk-modes{grid-template-columns:minmax(0,1fr)}
  .pk-modes li+li{border-left:2px solid var(--night);border-top:0}
  .pk-gal{grid-template-columns:minmax(0,1fr)}
  .pk-legal{grid-template-columns:minmax(0,1fr)}
  .pk-venue{grid-template-columns:minmax(0,1fr);gap:0}
  .pk-venue dt{padding-bottom:0}
  .pk-venue dd{padding-top:2px;border-top:0}
  .pk-s{padding:50px 0}
}
@media (prefers-reduced-motion:no-preference){
  .pk-shape{animation:pk-reveal .8s ease-out 1 backwards}
  @keyframes pk-reveal{from{opacity:0;transform:translateY(18px)}}
}
