.news-category{color:var(--accent);font-weight:800;text-transform:uppercase}.news-item [data-fr-html] p{display:inline;margin:0}.detail-description>[data-fr-html] p{white-space:normal}.detail-description>[data-fr-html],.statement-text>[data-fr-html]{font-size:calc(20px + var(--reading-adjustment,0px));line-height:1.65}.offset-no-image{display:grid;place-items:center;width:100%;height:100%;min-height:200px;background:var(--paper);font-size:60px}.edition-section .projects-grid{--collapsed-rows:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 14px}.edition-section .project-visual{aspect-ratio:560/760}.edition-section .project h4{font-size:clamp(18px,1.6vw,23px)}.project-subnav,.about-tabs{flex-wrap:wrap}.project-resources li>div{margin-top:8px}.pub-content .pub-notice{font-size:12px;line-height:1.5}.admin-bar .drawing-toolbar{z-index:99990}@media(min-width:1000px){.edition-section .projects-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:700px){.edition-section .projects-grid{--collapsed-rows:3;grid-template-columns:repeat(2,minmax(0,1fr))}}

.filter > span[data-fr-html]{color:inherit;padding-left:0}.filter,.detail-category,.detail-intro-meta dt{text-transform:uppercase}.contact-link > [data-fr-html],.dialog-close > [data-fr-html]{font-size:inherit}#newsList [data-fr-html] p{display:inline;margin:0}


.pub-content .resource-link,.project-availability-link,.pub-type{text-transform:uppercase}.subsection-label{display:inline}.news-track:focus-within{animation-play-state:running}.news-track.paused{animation-play-state:paused}#publications>.reading-controls{margin:0 0 28px}#publications .publication-summary p,#publications .publication-summary li{font-size:calc(15px + var(--reading-adjustment,0px))}

/* Explicit control colours prevent the iOS default blue button text. */
@media(max-width:600px),(pointer:coarse) and (max-height:600px){
  .duck-quack{padding:12px;font-size:min(51vw,45svh);-webkit-text-size-adjust:100%;text-size-adjust:100%}
  .duck-quack-text{display:block;width:max-content;white-space:pre;line-height:.95;letter-spacing:-.06em}
}
/* Crop marks overlap the image by 6px; their axes sit 10px inside, leaving a 4px gap before the intersection. */
.project-visual::before{
  inset:-16px;z-index:5;
  background:
    linear-gradient(var(--ink),var(--ink)) left top 26px / 22px 1px,
    linear-gradient(var(--ink),var(--ink)) right top 26px / 22px 1px,
    linear-gradient(var(--ink),var(--ink)) left bottom 26px / 22px 1px,
    linear-gradient(var(--ink),var(--ink)) right bottom 26px / 22px 1px,
    linear-gradient(var(--ink),var(--ink)) left 26px top / 1px 22px,
    linear-gradient(var(--ink),var(--ink)) right 26px top / 1px 22px,
    linear-gradient(var(--ink),var(--ink)) left 26px bottom / 1px 22px,
    linear-gradient(var(--ink),var(--ink)) right 26px bottom / 1px 22px;
  background-repeat:no-repeat;
}
:is(.gallery-image,.gallery-thumb-image){--crop-length:22px;--crop-inset:10px;--crop-gap:4px}
.gallery-thumb-image{--crop-length:14px;--crop-inset:7px;--crop-gap:3px}
:is(.gallery-image,.gallery-thumb-image) .crop-mark::before{width:var(--crop-length)}
:is(.gallery-image,.gallery-thumb-image) .crop-mark::after{height:var(--crop-length)}
:is(.gallery-image,.gallery-thumb-image) .crop-mark.tl{left:var(--crop-inset);top:var(--crop-inset)}
:is(.gallery-image,.gallery-thumb-image) .crop-mark.tr{right:var(--crop-inset);top:var(--crop-inset)}
:is(.gallery-image,.gallery-thumb-image) .crop-mark.bl{left:var(--crop-inset);bottom:var(--crop-inset)}
:is(.gallery-image,.gallery-thumb-image) .crop-mark.br{right:var(--crop-inset);bottom:var(--crop-inset)}
:is(.gallery-image,.gallery-thumb-image) :is(.crop-mark.tl,.crop-mark.bl)::before{right:var(--crop-gap)}
:is(.gallery-image,.gallery-thumb-image) :is(.crop-mark.tr,.crop-mark.br)::before{left:var(--crop-gap)}
:is(.gallery-image,.gallery-thumb-image) :is(.crop-mark.tl,.crop-mark.tr)::after{bottom:var(--crop-gap)}
:is(.gallery-image,.gallery-thumb-image) :is(.crop-mark.bl,.crop-mark.br)::after{top:var(--crop-gap)}
.gallery-zoom,.gallery-controls button{color:var(--ink);-webkit-appearance:none;appearance:none}
.detail-title[tabindex="-1"]:focus{outline:none}
.offset-symbol{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0}
.news-item::after{content:'';display:inline-block;width:1em;height:1em;vertical-align:-.1em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2v20M2 12h20M5 5l14 14M5 19 19 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2v20M2 12h20M5 5l14 14M5 19 19 5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
.filter{color:var(--ink);-webkit-appearance:none;appearance:none}
.filter:hover,.filter.active{color:var(--paper)}
:root[data-theme="dark"] .filter:hover,:root[data-theme="dark"] .filter.active{color:var(--accent-contrast)}
/* Keep a single ticker on phones, including reduced-motion mode; Pause stays available. */
@media(prefers-reduced-motion:reduce){
  .news-track{display:flex;width:max-content;min-width:200%;animation:newsScroll calc(var(--news-duration,35s) * 2) linear infinite!important}
  .news-group{display:flex;min-width:50%}
  .news-item{display:block;white-space:nowrap;padding-right:48px}
  .news-item::after{margin-left:48px}
  .news-group[aria-hidden]{display:flex}
  .news-pause{display:block}
  .news-track.paused{animation-play-state:paused!important}
}
@media(max-width:600px){
  .news-banner{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  .news-banner .news-item{font-size:11px;line-height:1.4}
  .news-banner .news-item [data-fr-html],.news-banner .news-item p{font-size:inherit;line-height:inherit}
  .drawing-toolbar{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:0;padding:4px;max-width:calc(100vw - 20px)}
  .drawing-toolbar:has(.drawing-actions:not([hidden]))>.drawing-toggle{display:none}
  .drawing-actions{width:270px;max-width:calc(100vw - 38px);max-height:55vh;max-height:55svh;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 10px;padding:4px}
  .drawing-actions>.drawing-tools{grid-column:1 / -1;gap:4px}
  .drawing-tool-selector button{gap:2px;padding:4px}
  .drawing-toolbar .drawing-handle{border-bottom:0}
  .drawing-setting{gap:0;align-content:center;min-width:0}
  .drawing-setting>span{font-size:9px;gap:4px}
  .drawing-setting input{min-height:36px}
}

