:root{font:16px/1.55 system-ui,sans-serif;--bg:#171815;--panel:#20221d;--ink:#f4f1e8;--dim:#c3c2b6;--line:#464940;--accent:#d7ef68;--pad:clamp(1rem,5vw,5rem);color-scheme:dark;background:var(--bg);color:var(--ink);scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent)}[hidden]{display:none!important}.skip{position:absolute;top:-5rem;left:1rem;z-index:8}.skip:focus{top:1rem;background:var(--accent);color:#171815;padding:.7rem}.top,.shell{padding-inline:var(--pad)}.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 2rem;padding-block:.85rem}.mark{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);text-decoration:none}.mark img{display:block;width:4.25rem;height:auto}.top nav{display:flex;flex-wrap:wrap;gap:.1rem 1.25rem}.top nav a{font-size:.82rem;font-weight:750;text-decoration:none;padding:.4rem 0;display:inline-flex;min-height:36px;align-items:center}.top nav a:hover,.top nav a[aria-current]{text-decoration:underline;text-underline-offset:.28em}.nav-cta{color:var(--accent)}.hero{position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(680px,86svh,950px);overflow:hidden;padding:clamp(1rem,6vw,6rem) var(--pad)}.hero picture,.hero picture img,.hero::after{position:absolute;inset:0;width:100%;height:100%}.hero picture{z-index:-2}.hero picture img{object-fit:cover;object-position:62% 0%}.hero::after{content:"";z-index:-1;background:linear-gradient(90deg,#0d0f0be8,#10110e9c 43%,#12130e15 76%),linear-gradient(0deg,#11120ee8,transparent 58%)}.hero-text{max-width:710px}.eyebrow,.hero-index,.tag{font:750 .72rem/1.5 ui-monospace,SFMono-Regular,monospace;letter-spacing:.115em;text-transform:uppercase}.eyebrow{color:var(--accent)}.signal{display:inline-block;background:var(--accent);width:.58rem;height:.58rem;margin-right:.35rem;border-radius:50%}.hero h1,.gallery-title,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.06em;line-height:.96}.hero h1,.gallery-title{font-size:clamp(3rem,7.4vw,7.25rem);font-weight:900;margin:.2em 0}.hero-copy{max-width:51ch;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.5}.actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:1.3rem 0}.btn{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border:1px solid var(--accent);background:var(--accent);color:#15170e;text-decoration:none;font-weight:800;font-size:.88rem;padding:.65rem 1rem}.btn:hover{filter:brightness(1.12)}.btn.ghost{background:#1a1b16cc;color:var(--ink);border-color:#a6a79c}.under{display:inline-flex;min-height:36px;align-items:center;text-underline-offset:.28em;font-weight:750;font-size:.87rem}.under:hover{color:var(--accent)}.hero-index{position:absolute;right:var(--pad);bottom:1rem;color:var(--dim)}.next{display:grid;gap:1rem;background:var(--accent);color:#191c11;padding-block:clamp(1.5rem,4vw,3.5rem)}.next .eyebrow{color:inherit}.next .under:hover{color:inherit}.next-name{font-weight:850;font-size:clamp(1.3rem,2.8vw,2.6rem);line-height:1.04}.next h2{font-size:clamp(1.8rem,4.5vw,4rem)}.countdown{font:800 clamp(1.3rem,3vw,2.5rem)/1.3 ui-monospace,monospace;margin:.5rem 0}.content{padding-block:clamp(3rem,8vw,7.5rem);border-bottom:1px solid var(--line);scroll-margin-top:1rem}.content h2{font-size:clamp(2.65rem,7vw,6.3rem);margin:.18em 0 .45em}.section-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem}.section-bar h2{margin-bottom:.3em}.recent-list,.photos{display:grid;gap:.85rem}.recent-list article{background:var(--panel);padding:1rem}.recent-list h3,.timeline-row h3{font-size:clamp(1.35rem,2.8vw,2.25rem);margin:.3em 0}.cover{display:block;aspect-ratio:1.65;overflow:hidden;margin-bottom:1rem}.cover img,.photos img{width:100%;height:100%;display:block;object-fit:cover}.photos{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.photos>a{display:block;aspect-ratio:1;overflow:hidden;background:var(--panel)}
.photos button{padding:0;border:0;background:var(--panel);overflow:hidden;aspect-ratio:1}.photos button:hover img{transform:scale(1.035)}.photos img{transition:transform .25s}.empty,.timeline-row{border-top:1px solid var(--line);padding:1rem 0}.timeline-row{display:grid;gap:.6rem}.tag{color:var(--dim)}.about,.enquiry{display:grid;gap:1.4rem}.about p:not(.eyebrow),.enquiry p:not(.eyebrow){color:var(--dim);max-width:54ch;margin:.55rem 0}.about img{display:block;width:100%;max-width:360px}.enquiry form{min-width:0}fieldset{padding:0;border:0;margin:0 0 1rem}legend,label{font-weight:700;font-size:.88rem}.choice{display:flex;flex-wrap:wrap;gap:.5rem}.choice label{border:1px solid var(--line);padding:.65rem .7rem;cursor:pointer}.choice label:has(:checked){border-color:var(--accent)}input[type=radio]{accent-color:var(--accent)}.fields{display:grid;gap:.85rem;margin-bottom:1rem}.fields input,.fields select,textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);background:#20221e;color:var(--ink);padding:.65rem;margin-top:.3rem;border-radius:0}textarea{min-height:95px;resize:vertical}.form-note{font-size:.86rem}.form-note,#form-status{margin-block:.75rem}#draft-text{min-height:180px;margin-bottom:.75rem}footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.5rem;color:var(--dim)}footer>a:not(.mark){font-size:.85rem;text-underline-offset:.3em}.filter,#pause{background:transparent;border:1px solid var(--line);color:var(--ink);padding:.5rem .85rem;margin:.25rem .35rem .25rem 0}.filter[aria-pressed=true]{background:var(--accent);color:#171815}.gallery-title{margin-bottom:.4em}dialog{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;margin:0;border:0;background:#10110f;color:var(--ink);padding:1rem}dialog[open]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem}dialog figure{min-width:0;text-align:center}dialog img{width:100%;max-height:80dvh;object-fit:contain}dialog button{background:var(--panel);color:var(--ink);border:1px solid var(--line);min-width:42px;min-height:42px}#close{position:absolute;right:1rem;top:1rem;z-index:2}.partners{padding-block:1rem;border-bottom:1px solid var(--line)}.partners h2{font-size:1rem;letter-spacing:0}.logo-window{overflow:hidden}#logos{display:flex;width:max-content;animation:marquee 64s linear infinite}#logos.paused{animation-play-state:paused}.logo-group{display:flex;gap:2rem;padding:1rem 2rem 1rem 0}.logo-group img{width:110px;height:44px;object-fit:contain}@keyframes marquee{to{transform:translateX(-50%)}}@media(min-width:760px){.next,.about,.enquiry{grid-template-columns:1fr 1.2fr;align-items:start}.recent-list,.photos{grid-template-columns:repeat(3,minmax(0,1fr))}.recent-list article:only-child{grid-column:span 2}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.full{grid-column:1/-1}.timeline-row{grid-template-columns:1fr 2fr 1.25fr}}@media(max-width:650px){.hero{min-height:720px}.hero picture img{object-position:64% 0%}.hero::after{background:linear-gradient(0deg,#11130efa 0%,#11130ee8 42%,#11130e15 76%)}.hero-text{padding-bottom:1.35rem}.hero-index{display:none}.actions{display:grid}.top nav{gap:0 1rem}.photos button:first-child:last-child{grid-column:span 2}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::after{animation:none!important;transition:none!important}#logos{width:auto}.logo-group{flex-wrap:wrap}.logo-group[aria-hidden],#pause{display:none!important}}

.bio-details { margin: 1rem 0 .5rem; }
.bio-details summary { cursor: pointer; }
.bio-details summary::-webkit-details-marker { display: none; }
.bio-details summary:focus-visible { outline: 2px solid var(--accent); }
.bio-details:not([open]) .bio-close-label,
.bio-details[open] .bio-open-label { display: none; }
.about .bio-details p { margin-top: 1rem; }

.about .about-portrait { width: 100%; max-width: 360px; height: auto; }

.home-frames button { aspect-ratio: 4 / 5; }

/* Homepage partner strip */
.partners .section-bar { gap: .25rem .75rem; }
.partners .section-bar h2 { margin: 0; }
.partners #pause { min-height: 44px; padding: .4rem .65rem; }
.partners #pause:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.logo-group { align-items: center; flex: none; padding-block: .45rem; }
.logo-group img { width: 108px; height: 40px; }
.partner-logo--light { filter: brightness(0) invert(1); }
.partner-logo--tile { background: #f5f4ef; padding: 4px 8px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) {
  .logo-group { flex: 1; gap: .75rem 1rem; padding-inline-end: 0; }
}

.service-cover{margin:2rem 0;max-width:900px}
.service-cover img{display:block;width:100%;height:auto}
