:root{--ink:#1d1420;--ink-body:#4a3f4d;--ink-muted:#6f6472;--cream:#faf6f0;--cream-sunk:#f2ebe1;--paper:#ffffff;--plum:#3a1f3d;--plum-deep:#180f1c;--coral:#e2624a;--coral-ink:#b8442f;--coral-wash:#fbeae5;--sage:#6f8f6a;--sage-ink:#4e6b4a;--sage-wash:#e9efe6;--line:rgba(29,20,32,0.13);--line-strong:rgba(29,20,32,0.28);--line-dark:rgba(250,246,240,0.16);--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans:"Avenir Next",Avenir,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--shell:1240px;--gutter:clamp(20px,5vw,56px);--section:clamp(64px,8vw,118px);--radius:14px;--radius-lg:26px;--shadow:0 22px 60px rgba(29,20,32,0.11);--shadow-lift:0 30px 74px rgba(29,20,32,0.17)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink-body);font-family:var(--sans);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;color:var(--ink);font-family:var(--serif);font-weight:600;line-height:1.06;letter-spacing:-.018em;overflow-wrap:break-word;text-wrap:balance}p{margin:0}a{color:inherit;text-decoration:none}canvas,img,svg{display:block;max-width:100%}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:3px}.skip-link{position:fixed;z-index:300;top:12px;left:12px;padding:12px 18px;border-radius:999px;background:var(--ink);color:var(--cream);font-size:.82rem;font-weight:700;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(var(--shell),calc(100% - var(--gutter) * 2));margin-inline:auto}.section{padding-block:var(--section)}.section-dark{background:var(--plum);color:rgba(250,246,240,.82)}.section-dark h1,.section-dark h2,.section-dark h3{color:var(--cream)}.section-sunk{background:var(--cream-sunk)}.kicker{display:flex;align-items:center;gap:11px;margin:0 0 18px;color:var(--coral-ink);font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.kicker:before{width:26px;height:1px;flex:none;background:var(--coral);content:""}.section-dark .kicker{color:var(--coral)}.section-dark .kicker:before{background:var(--coral)}.section-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,76px);align-items:end;margin-bottom:clamp(36px,5vw,62px)}.section-head h2{font-size:clamp(2.1rem,4.2vw,3.4rem)}.section-head>div:last-child>p{color:var(--ink-muted);font-size:1rem;line-height:1.72}.section-dark .section-head>div:last-child>p{color:rgba(250,246,240,.72)}.rule{height:1px;border:0;margin:0;background:var(--line)}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border:1px solid transparent;border-radius:999px;font-size:.86rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);color:var(--cream)}.btn-primary:hover{background:var(--coral-ink)}.btn-ghost{border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink);background:var(--paper)}.btn-light{background:var(--cream);color:var(--ink)}.btn-light:hover{background:var(--coral);color:var(--cream)}.arrow-link{display:inline-flex;align-items:center;gap:9px;color:var(--coral-ink);font-size:.83rem;font-weight:700}.arrow-link>span{transition:transform .2s ease}.arrow-link:hover>span{transform:translateX(4px)}.section-dark .arrow-link{color:var(--coral)}.site-header{position:sticky;z-index:100;top:0;border-bottom:1px solid var(--line);background:rgba(250,246,240,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-inner{display:flex;width:min(var(--shell),calc(100% - var(--gutter) * 2));min-height:76px;margin-inline:auto;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:inline-flex;align-items:center;gap:13px}.wordmark-mark{display:grid;width:42px;height:42px;flex:none;place-items:center;border-radius:50%;background:var(--ink);color:var(--cream);font-family:var(--serif);font-size:.95rem;letter-spacing:-.06em}.wordmark-text{display:flex;flex-direction:column;gap:1px}.wordmark-text strong{color:var(--ink);font-family:var(--serif);font-size:1.04rem;font-weight:600}.wordmark-text small{color:var(--ink-muted);font-family:var(--mono);font-size:.61rem;letter-spacing:.11em;text-transform:uppercase}.nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px)}.nav>a:not(.nav-cta){position:relative;padding:6px 0;color:var(--ink);font-size:.85rem;font-weight:650}.nav>a:not(.nav-cta):after{position:absolute;right:0;bottom:0;left:0;height:2px;border-radius:2px;background:var(--coral);content:"";transform:scaleX(0);transform-origin:right;transition:transform .22s ease}.nav>a:not(.nav-cta):hover:after,.nav>a:not(.nav-cta)[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.nav-cta{padding:10px 18px;border-radius:999px;background:var(--ink);color:var(--cream);font-size:.8rem;font-weight:700;transition:background .2s ease}.nav-cta:hover{background:var(--coral-ink)}.menu{position:relative;display:none}.menu summary{padding:10px 16px;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;font-size:.8rem;font-weight:700;list-style:none}.menu summary::-webkit-details-marker{display:none}.menu nav{position:absolute;top:52px;right:0;display:grid;width:min(280px,calc(100vw - 32px));padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow)}.menu nav a{padding:12px 14px;border-radius:9px;color:var(--ink);font-size:.9rem;font-weight:650}.menu nav a:hover{background:var(--cream-sunk)}.hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:clamp(36px,6vw,88px);align-items:center;padding-block:clamp(48px,7vw,96px) clamp(56px,7vw,100px)}.hero h1{font-size:clamp(2.5rem,5.2vw,4.4rem);letter-spacing:-.03em}.hero h1 em{color:var(--coral-ink);font-style:italic}.hero-lede{max-width:46ch;margin-top:26px;font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.68}.hero-actions{gap:12px;margin-top:34px}.hero-actions,.hero-facts{display:flex;flex-wrap:wrap}.hero-facts{gap:10px 30px;margin-top:38px;padding-top:24px;border-top:1px solid var(--line)}.hero-fact{display:flex;flex-direction:column;gap:3px}.hero-fact dt{color:var(--ink-muted);font-family:var(--mono);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase}.hero-fact dd{margin:0;color:var(--ink);font-size:.88rem;font-weight:650}.plate-frame{position:relative;width:100%;max-width:386px;margin-left:auto}.plate-ring{position:absolute;top:-26px;right:-26px;bottom:34px;left:-26px;border:1px solid var(--line-strong);opacity:.5}.plate,.plate-ring{border-radius:999px 999px var(--radius-lg) var(--radius-lg)}.plate{position:relative;overflow:hidden;aspect-ratio:.79;background:var(--plum-deep);box-shadow:var(--shadow)}.plate img{width:100%;height:100%;object-fit:cover;object-position:50% 26%}.plate:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(24,15,28,.62));content:"";pointer-events:none}.plate-monogram{position:absolute;z-index:1;bottom:14px;left:24px;color:rgba(250,246,240,.82);font-family:var(--serif);font-size:clamp(2.6rem,5vw,3.8rem);letter-spacing:-.09em;line-height:1}.plate-caption{position:absolute;right:-18px;bottom:-20px;display:flex;flex-direction:column;gap:3px;padding:16px 22px;border-left:3px solid var(--coral);border-radius:3px var(--radius) var(--radius) 3px;background:var(--paper);box-shadow:var(--shadow)}.plate-caption strong{color:var(--ink);font-family:var(--serif);font-size:1.06rem;font-weight:600}.plate-caption span{color:var(--ink-muted);font-family:var(--mono);font-size:.63rem;letter-spacing:.11em;text-transform:uppercase}.metrics{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metrics>*{padding:30px 26px;border-left:1px solid var(--line)}.metrics>:first-child{padding-left:0;border-left:0}.metrics-note p:first-child{color:var(--ink);font-size:.9rem;font-weight:650}.metrics-note p:last-child{margin-top:6px;color:var(--ink-muted);font-size:.79rem}.metric strong{display:block;color:var(--ink);font-family:var(--serif);font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:600;line-height:1}.metric span{display:block;margin-top:9px;color:var(--ink-muted);font-family:var(--mono);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase}.programme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.programme-card{display:flex;min-height:340px;flex-direction:column;padding:32px 30px;background:var(--cream);transition:background .22s ease}.programme-card:hover{background:var(--paper)}.programme-card>.index{color:var(--coral-ink);font-family:var(--mono);font-size:.72rem;letter-spacing:.14em}.programme-card h3{margin-top:20px;font-size:1.42rem;line-height:1.16}.programme-card>p{margin-top:14px;color:var(--ink-body);font-size:.91rem;line-height:1.66}.programme-card .arrow-link{margin-top:auto;padding-top:24px}.viz{overflow:hidden;border-radius:var(--radius-lg);background:var(--plum-deep);color:rgba(250,246,240,.78)}.viz-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:start;padding:30px 32px 24px;border-bottom:1px solid var(--line-dark)}.viz-head h3{margin-top:12px;color:var(--cream);font-size:1.5rem}.viz-head p{max-width:58ch;margin-top:12px;font-size:.9rem;line-height:1.66}.viz-modes{display:flex;flex-wrap:wrap;gap:8px}.viz-modes button{padding:9px 16px;border:1px solid var(--line-dark);border-radius:999px;background:transparent;color:rgba(250,246,240,.76);cursor:pointer;font-size:.78rem;font-weight:650;transition:background .2s ease,color .2s ease,border-color .2s ease}.viz-modes button:hover{border-color:var(--cream);color:var(--cream)}.viz-modes button[aria-pressed=true]{border-color:var(--coral);background:var(--coral);color:var(--cream)}.viz-canvas{position:relative;padding:26px 32px}.viz-canvas canvas{width:100%;height:clamp(300px,40vw,460px);border-radius:var(--radius)}.viz-foot{gap:16px 26px;align-items:center;justify-content:space-between;padding:0 32px 28px}.viz-foot,.viz-legend{display:flex;flex-wrap:wrap}.viz-legend{gap:8px 20px;font-family:var(--mono);font-size:.68rem;letter-spacing:.05em}.viz-legend span{display:inline-flex;align-items:center;gap:8px}.viz-legend i{width:9px;height:9px;border-radius:50%;background:currentColor}.viz-controls{display:flex;gap:8px;align-items:center}.viz-controls button{padding:8px 15px;border:1px solid var(--line-dark);border-radius:999px;background:transparent;color:rgba(250,246,240,.86);cursor:pointer;font-size:.75rem;font-weight:650}.viz-controls button:hover{border-color:var(--cream);color:var(--cream)}.viz-status{color:rgba(250,246,240,.5);font-family:var(--mono);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase}.pub,.pub-list{display:grid}.pub{grid-template-columns:62px minmax(0,1fr) auto;gap:26px;align-items:start;padding:30px 0;border-top:1px solid var(--line)}.pub:last-child{border-bottom:1px solid var(--line)}.pub-year{color:var(--ink-muted);font-family:var(--mono);font-size:.78rem;letter-spacing:.06em}.pub h3{font-size:clamp(1.06rem,1.9vw,1.36rem);line-height:1.26}.pub-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:11px;color:var(--ink-muted);font-size:.79rem}.pub-meta em{color:var(--ink-body);font-style:italic}.pub-authors{margin-top:9px;color:var(--ink-muted);font-size:.79rem;line-height:1.6}.pub-authors b{color:var(--ink);font-weight:700}.pub>div>p.pub-summary{max-width:66ch;margin-top:13px;font-size:.89rem;line-height:1.66}.pub-note{display:inline-flex;align-items:center;gap:8px;margin-top:13px;padding:6px 13px;border-radius:999px;background:var(--sage-wash);color:var(--sage-ink);font-size:.75rem;font-weight:650}.pub-side{min-width:132px;gap:12px;text-align:right}.pub-cites,.pub-side{display:flex;flex-direction:column;align-items:flex-end}.pub-cites{gap:2px}.pub-cites strong{color:var(--ink);font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1}.pub-cites span{color:var(--ink-muted);font-family:var(--mono);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase}.pub-links{display:flex;flex-direction:column;gap:7px;align-items:flex-end}.pub-links a{font-size:.78rem;font-weight:650}.pub-links a:first-child{color:var(--coral-ink)}.pub-links a:first-child:hover{text-decoration:underline}.pub-links a.pdf{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink)}.pub-links a.pdf:hover{border-color:var(--ink);background:var(--paper)}.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.featured{display:flex;min-height:320px;flex-direction:column;padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);transition:transform .22s ease,box-shadow .22s ease}.featured:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}.featured-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:var(--ink-muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase}.featured h3{margin-top:16px;font-size:1.16rem;line-height:1.26}.featured p{margin-top:12px;font-size:.86rem;line-height:1.62}.featured .arrow-link{margin-top:auto;padding-top:22px}.figure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:20px}.figure-card{display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:zoom-in;text-align:left;transition:transform .2s ease,box-shadow .2s ease}.figure-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.figure-thumb{position:relative;aspect-ratio:1.5;background:var(--cream-sunk)}.figure-thumb img{width:100%;height:100%;object-fit:contain;padding:12px}.figure-body{padding:16px 18px 18px;border-top:1px solid var(--line)}.figure-body strong{display:block;color:var(--ink);font-size:.87rem;font-weight:650;line-height:1.4}.figure-body small{display:block;margin-top:7px;color:var(--ink-muted);font-family:var(--mono);font-size:.65rem;letter-spacing:.05em}.figure-dialog{width:min(1060px,92vw);max-height:90vh;padding:0;border:0;border-radius:var(--radius-lg);background:var(--paper)}.figure-dialog::backdrop{background:rgba(24,15,28,.72)}.figure-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;border-bottom:1px solid var(--line)}.figure-dialog-bar strong{color:var(--ink);font-size:.9rem}.figure-dialog-bar button{padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;cursor:pointer;font-size:.78rem;font-weight:650}.figure-dialog img{width:100%;max-height:62vh;object-fit:contain;padding:22px;background:var(--cream-sunk)}.figure-dialog-foot{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:16px 20px;border-top:1px solid var(--line);color:var(--ink-muted);font-size:.78rem}.figure-dialog-foot a{color:var(--coral-ink);font-weight:650}.figure-dialog-foot a:hover{text-decoration:underline}.programme-detail{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(28px,5vw,74px);padding-block:clamp(46px,6vw,78px);border-top:1px solid var(--line)}.programme-detail-aside{position:sticky;top:108px;align-self:start}.programme-detail-aside .index{color:var(--coral-ink);font-family:var(--mono);font-size:.74rem;letter-spacing:.14em}.programme-detail-aside h2{margin-top:16px;font-size:clamp(1.8rem,3.2vw,2.6rem)}.programme-detail-aside>p{margin-top:16px;color:var(--ink-muted);font-size:.93rem;line-height:1.68}.method-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px;padding:0;list-style:none}.method-tags li{padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-body);font-family:var(--mono);font-size:.68rem;letter-spacing:.03em}.qa{display:grid;gap:26px}.qa>div{padding-bottom:24px;border-bottom:1px solid var(--line)}.qa>div:last-of-type{border-bottom:0;padding-bottom:0}.qa h3{color:var(--coral-ink);font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.qa p{margin-top:12px;font-size:.97rem;line-height:1.74}.qa-pubs{display:grid;gap:10px;margin-top:8px}.qa-pubs a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:border-color .2s ease,transform .2s ease}.qa-pubs a:hover{border-color:var(--ink);transform:translateX(3px)}.qa-pubs .y{color:var(--ink-muted);font-family:var(--mono);font-size:.73rem}.qa-pubs .t{color:var(--ink);font-size:.87rem;font-weight:650;line-height:1.42}.qa-pubs .c{color:var(--coral-ink);font-size:.8rem}.timeline{display:grid;gap:0}.entry{display:grid;grid-template-columns:128px 54px minmax(0,1fr);gap:24px;align-items:start;padding:26px 0;border-top:1px solid var(--line)}.entry:last-child{border-bottom:1px solid var(--line)}.entry-dates{color:var(--ink-muted);font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;padding-top:4px}.entry-logo{display:grid;width:54px;height:54px;place-items:center;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.entry-logo img{width:100%;height:100%;object-fit:contain}.entry h3{font-size:1.14rem;line-height:1.3}.entry-place{margin-top:5px;color:var(--ink-body);font-size:.87rem;font-weight:650}.entry-org{margin-top:2px;color:var(--ink-muted);font-size:.81rem}.entry-detail{max-width:62ch;margin-top:11px;font-size:.88rem;line-height:1.66}.entry-note{display:inline-block;margin-top:11px;padding:5px 12px;border-radius:999px;background:var(--coral-wash);color:var(--coral-ink);font-size:.73rem;font-weight:650}.awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--radius-lg);overflow:hidden}.award{padding:28px 26px;background:var(--plum)}.award span{color:var(--coral);font-family:var(--mono);font-size:.7rem;letter-spacing:.13em}.award h3{margin-top:14px;font-size:1.18rem}.award p{margin-top:9px;font-size:.84rem;line-height:1.6}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px}.profile-card{display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:transform .2s ease,border-color .2s ease}.profile-card:hover{border-color:var(--ink);transform:translateY(-3px)}.profile-logo{display:grid;width:38px;height:38px;place-items:center}.profile-logo img{width:100%;height:100%;object-fit:contain}.profile-card strong{color:var(--ink);font-size:.92rem;font-weight:700}.profile-card code{color:var(--ink-body);font-family:var(--mono);font-size:.73rem;word-break:break-word}.profile-card small{color:var(--ink-muted);font-size:.77rem;line-height:1.5}.profile-card .arrow-link{margin-top:auto;padding-top:8px;font-size:.77rem}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(32px,6vw,82px);align-items:start}.contact-email{display:inline-flex;align-items:center;gap:14px;padding-bottom:10px;border-bottom:2px solid var(--coral);color:var(--ink);font-family:var(--serif);font-size:clamp(1.3rem,3vw,2.15rem);word-break:break-word}.contact-email:hover{color:var(--coral-ink)}.contact-note{margin-top:18px;color:var(--ink-muted);font-size:.83rem}.cv-card{display:flex;align-items:center;gap:16px;margin-top:28px;padding:16px 22px 16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:border-color .2s ease,transform .2s ease}.cv-card:hover{border-color:var(--coral);transform:translateY(-2px)}.cv-card i{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:50%;background:var(--coral-wash);color:var(--coral-ink);font-style:normal;font-size:1rem}.cv-card strong{display:block;color:var(--ink);font-size:.9rem;font-weight:700}.cv-card small{display:block;margin-top:3px;color:var(--ink-muted);font-size:.75rem}.enquiry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--radius-lg);overflow:hidden}.enquiry{display:flex;min-height:250px;flex-direction:column;padding:30px 28px;background:var(--plum)}.enquiry span{color:var(--coral);font-family:var(--mono);font-size:.7rem;letter-spacing:.13em}.enquiry h3{margin-top:16px;font-size:1.26rem}.enquiry p{margin-top:12px;font-size:.87rem;line-height:1.64}.enquiry .arrow-link{margin-top:auto;padding-top:22px}.site-footer{padding-block:clamp(48px,6vw,76px) 34px;border-top:1px solid var(--line);background:var(--cream-sunk)}.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,64px)}.footer-grid h2{color:var(--ink-muted);font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.footer-brand p{max-width:40ch;margin-top:14px;color:var(--ink-muted);font-size:.85rem;line-height:1.66}.footer-links{display:grid;gap:9px;margin-top:16px}.footer-links a{color:var(--ink-body);font-size:.85rem}.footer-links a:hover{color:var(--coral-ink)}.footer-base{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;margin-top:clamp(36px,5vw,56px);padding-top:22px;border-top:1px solid var(--line);color:var(--ink-muted);font-size:.76rem}.page-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,5vw,74px);align-items:end;padding-block:clamp(46px,6vw,84px) clamp(34px,4vw,54px)}.page-head h1{font-size:clamp(2.3rem,4.8vw,3.9rem);letter-spacing:-.028em}.page-head-aside p{color:var(--ink-muted);font-size:.97rem;line-height:1.72}.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding:0;list-style:none}.jump a{display:inline-block;padding:8px 15px;border:1px solid var(--line-strong);border-radius:999px;font-size:.79rem;font-weight:650}.jump a:hover{border-color:var(--ink);background:var(--paper)}[data-reveal]{opacity:1;transform:none}.motion-ready [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .62s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0s),transform .62s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0s)}.motion-ready [data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media (max-width:1080px){.hero{grid-template-columns:1fr;gap:54px}.plate-frame{margin-inline:auto}.plate-ring{top:-16px;right:10px;bottom:26px;left:10px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metrics-note{grid-column:1/-1;padding-left:0;border-left:0;border-bottom:1px solid var(--line)}.programme-grid{grid-template-columns:1fr}.programme-card{min-height:0}.featured-grid,.programme-detail{grid-template-columns:1fr}.programme-detail-aside{position:static}.enquiry-grid{grid-template-columns:1fr}.enquiry{min-height:0}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media (max-width:860px){.nav{display:none}.menu{display:block}.section-head{gap:18px}.page-head,.section-head{grid-template-columns:1fr;align-items:start}.page-head{gap:24px}.viz-head{grid-template-columns:1fr}.pub{grid-template-columns:54px minmax(0,1fr)}.pub-side{grid-column:2;min-width:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:20px;text-align:left}.pub-cites{flex-direction:row;align-items:baseline;gap:7px}.pub-links{flex-direction:row;align-items:center;gap:14px}.entry{grid-template-columns:54px minmax(0,1fr);gap:18px}.entry-dates{grid-column:1/-1;padding-top:0}}@media (max-width:560px){.wordmark-text small{display:none}.wordmark-mark{width:38px;height:38px}.metrics{grid-template-columns:1fr 1fr}.metrics>*{padding:22px 18px}.metrics>:nth-child(2n){border-left:1px solid var(--line)}.metrics>:nth-child(odd){border-left:0;padding-left:0}.plate-caption{right:0;left:0}.viz-canvas,.viz-foot,.viz-head{padding-inline:20px}.figure-grid,.footer-grid{grid-template-columns:1fr}}