.editor-page {
  padding-block: clamp(18px,2vw,40px) clamp(54px,7vw,118px);
  --editor-space: clamp(46px,6.6vw,122px);
  --editor-gap: clamp(24px,4.25vw,90px);
}
.editor-page, .editor-page * { min-width: 0; }
.editor-crumb { font-size: clamp(12px,.89vw,16px); line-height: 1.5; color: var(--muted); }
.editor-crumb a, .editor-crumb [aria-current] { overflow-wrap: anywhere; }
.editor-crumb a:hover { color: var(--fg); }
.editor-page h1, .editor-page h2, .editor-page h3 { color: var(--fg); margin: 0; font-weight: var(--heading-weight); text-wrap: balance; overflow-wrap: anywhere; }
.editor-page h1 { font-size: clamp(42px,5.15vw,124px); font-weight: var(--display-weight); line-height: 1.06; letter-spacing: var(--display-tracking); }
.editor-page h2 { font-size: clamp(30px,3.25vw,70px); line-height: 1.1; letter-spacing: var(--heading-tracking); }
.editor-page h3 { font-size: clamp(21px,1.65vw,34px); line-height: 1.19; letter-spacing: -.025em; }
.editor-lead { color: var(--muted); font-size: clamp(17px,1.42vw,29px); line-height: 1.48; max-width: 37em; white-space: pre-line; overflow-wrap: anywhere; }
.editor-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px clamp(16px,1.8vw,40px); }
.editor-page .button { min-height: clamp(46px,3.4vw,64px); font-size: clamp(14px,1.03vw,21px); }
.editor-link { display: inline-flex; align-items: center; min-height: 44px; gap: 10px; font-size: clamp(14px,1vw,21px); font-weight: 560; color: inherit; }
.editor-link svg, .directory-arrow svg { flex: none; }
.editor-link:hover { text-decoration: underline; text-underline-offset: .27em; }
.editor-page :where(a,button,input,textarea,select,summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.editor-page :where(section,div,details)[id] { scroll-margin-top: 26px; }
.editor-page figure, .exhibit-material { margin: 0; }
.index-lead { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.67fr); gap: var(--editor-gap); align-items: end; margin-block: clamp(38px,5.2vw,105px) clamp(31px,4.4vw,90px); }
.index-lead h1 { max-width: 12em; }
.index-lead .editor-lead { max-width: 31em; }
.editor-custom-cover { margin-bottom: var(--editor-gap) !important; }
.editor-custom-cover img { display: block; width: 100%; max-height: min(50vw,750px); object-fit: contain; background: var(--panel); }
.service-directory { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: clamp(30px,4.4vw,85px) clamp(16px,1.65vw,37px); }
.directory-entry { grid-column: span 2; display: block; }
.directory-entry:nth-child(-n+2) { grid-column: span 3; }
.directory-image { overflow: hidden; aspect-ratio: 1.48; background: var(--panel); }
.directory-image img, .direction-art img, .study-image img, .contact-start img, .brief-glass img { width: 100%; height: 100%; display: block; object-fit: cover; }
.directory-entry:nth-child(-n+2) .directory-image { aspect-ratio: 4 / 3; }
.directory-label { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 10px 18px; padding-top: clamp(15px,1.6vw,31px); }
.directory-label h2 { font-size: clamp(26px,2.4vw,54px); }
.directory-label p { grid-column: 1; font-size: clamp(14px,1.05vw,20px); color: var(--muted); line-height: 1.48; max-width: 35em; }
.directory-arrow { width: clamp(34px,2.9vw,51px); aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; }
.direction-lead, .approach-lead { margin-block: clamp(25px,3.5vw,70px) var(--editor-space); display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: var(--editor-gap); align-items: center; }
.direction-copy { container-type: inline-size; padding-block: 8px; }
.direction-copy h1 { font-size: clamp(38px,10.85cqi,142px); }
.direction-copy .editor-lead, .approach-lead .editor-lead, .pricing-lead .editor-lead, .brief-cover .editor-lead { margin-top: clamp(16px,1.7vw,35px); }
.direction-copy .editor-actions, .approach-lead .editor-link { margin-top: clamp(20px,2.3vw,45px); }
.direction-offer { margin-top: clamp(16px,1.6vw,33px); display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding-top: 12px; border-top: 1px solid var(--line); font-size: clamp(14px,1.05vw,22px); }
.direction-offer span { color: var(--muted); }
.direction-offer strong { font-size: 1.15em; font-weight: 570; }
.direction-offer:hover strong { color: var(--accent); }
.direction-art { overflow: hidden; background: var(--panel); aspect-ratio: 4 / 3; }
.editor-page .service-hero {
  --fg: #f5f8fc;
  --muted: #c3ccda;
  --line: #455064;
  --accent: #b5edec;
  --ink: #10222a;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: clamp(8px,1vw,22px);
  color: var(--fg);
  background: #060c16;
  grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr);
  gap: 0;
}
.editor-design .service-hero { --accent: #f2c9b8; }
.editor-web .service-hero { --accent: #c8cbff; }
.editor-hosting .service-hero { --accent: #bddcff; }
.editor-security .service-hero { --accent: #e1d1ab; }
.service-hero .direction-copy { z-index: 1; padding: clamp(27px,4.5vw,100px) 0 clamp(27px,4.5vw,100px) clamp(22px,3.6vw,80px); }
.service-hero .direction-copy h1 { font-size: clamp(30px,10.5cqi,134px); }
.service-hero .editor-lead { max-width: 31em; }
.service-hero .direction-art { align-self: stretch; position: relative; aspect-ratio: 4 / 3; background: transparent; }
.service-hero .direction-art img { position: absolute; inset: 0; object-fit: cover; mask-image: linear-gradient(to right,transparent,#000 19%); }
@media (prefers-reduced-motion:no-preference) {
  .service-hero .direction-art img { animation: service-settle 2.4s cubic-bezier(.16,.72,.24,1) both; }
  @keyframes service-settle { from { transform: scale(1.055); } to { transform: scale(1); } }
}
@media (max-width:850px) {
  .editor-page .service-hero { grid-template-columns: minmax(0,1fr); gap: 0; }
  .service-hero .direction-copy { padding: clamp(22px,5vw,42px) clamp(20px,5vw,40px) 0; }
  .service-hero .direction-copy h1 { font-size: clamp(30px,10.4cqi,67px); }
  .editor-page .service-hero .direction-art { aspect-ratio: 4 / 3; min-height: 0; margin-top: 7px; }
  .service-hero .direction-art img { mask-image: linear-gradient(to bottom,transparent,#000 6%); }
}
.scope-section, .editor-prices, .editor-terms, .editor-process, .project-record, .editor-conditions { margin-top: var(--editor-space); }
.scope-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(22px,3vw,61px); margin-top: clamp(23px,3vw,57px); }
.scope-columns article, .editor-conditions article { border-top: 1px solid var(--line); padding-top: clamp(17px,1.6vw,34px); }
.scope-columns p, .editor-conditions p, .project-record p, .editor-terms p, .study-copy>p:not(.study-format) { margin-top: 12px; max-width: 44em; font-size: clamp(15px,1.2vw,25px); color: var(--muted); line-height: 1.52; }
.editor-prices, .editor-process, .project-record, .editor-terms { display: grid; grid-template-columns: minmax(0,.68fr) minmax(0,1.32fr); column-gap: var(--editor-gap); align-items: start; }
.editor-prices header .editor-link { margin-top: 14px; }
.editor-terms p { margin-top: 0; white-space: pre-wrap; }
.approach-lead figure { overflow: hidden; background: #080b13; aspect-ratio: 1.49; display: grid; place-items: center; }
.approach-lead figure img { width: 100%; height: 100%; object-fit: contain; display: block; }
.approach-lead h1, .pricing-lead h1 { max-width: 11em; }
.editor-process .steps { margin: 0; }
.editor-process .steps li { grid-template-columns: clamp(35px,3.3vw,60px) minmax(0,1fr); align-items: start; border-top: 1px solid var(--line); padding-block: clamp(16px,1.75vw,36px); }
.editor-process .steps p { font-size: clamp(15px,1.15vw,24px); }
.project-record { border-top: 1px solid var(--line); padding-top: clamp(22px,3.1vw,62px); }
.project-record p { margin: 0 0 22px; }
.pricing-lead { margin-block: clamp(30px,4vw,86px) var(--editor-space); display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.75fr); align-items: center; gap: var(--editor-gap); }
.pricing-lead .editor-actions { margin-top: clamp(20px,2.4vw,45px); }
.pricing-project { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 13px 18px; align-items: center; }
.pricing-project-art { grid-column: 1 / -1; aspect-ratio: 2.05; overflow: hidden; background: var(--panel); }
.pricing-project-art img { width: 100%; height: 100%; display: block; object-fit: cover; }
.pricing-project h2 { font-size: clamp(20px,1.7vw,36px); }
.pricing-project strong { display: block; font-size: clamp(17px,1.14vw,25px); font-weight: 530; margin-top: 5px; }
.catalog-layout { display: grid; grid-template-columns: minmax(190px,.55fr) minmax(0,1.45fr); align-items: start; gap: var(--editor-gap); }
.catalog-index { display: grid; position: sticky; top: 25px; align-self: start; }
.catalog-index a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-block: clamp(13px,1.1vw,23px); border-top: 1px solid var(--line); font-weight: 530; font-size: clamp(15px,1.16vw,24px); }
.catalog-index a svg { flex: none; }
.catalog-index a:hover, .catalog-group h2 a:hover { color: var(--accent); }
.catalog-group + .catalog-group { margin-top: clamp(35px,4.7vw,94px); }
.catalog-group h2 { margin: 0 0 clamp(15px,1.8vw,36px); font-size: clamp(28px,2.8vw,64px); }
.catalog-group h2 svg { display: inline-block; margin-left: .05em; }
.editor-page .price-list summary { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px clamp(10px,1.8vw,35px); padding-block: clamp(16px,1.55vw,32px); font-size: clamp(16px,1.25vw,27px); }
.editor-page .price-list summary strong { white-space: nowrap; font-weight: var(--heading-weight); font-variant-numeric: tabular-nums; }
.editor-page .price-detail { font-size: clamp(15px,1.08vw,23px); line-height: 1.5; max-width: 50em; }
.editor-page .price-detail .text-link { margin-top: 12px; }
.editor-pricing .estimate { margin-top: var(--editor-space); }
.editor-conditions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(24px,4vw,82px); }
.editor-conditions p { white-space: pre-line; }
.contact-routes { display: grid; grid-template-columns: minmax(0,1.33fr) minmax(0,.67fr); gap: clamp(14px,1.7vw,35px); }
.contact-routes section { position: relative; isolation: isolate; padding: clamp(24px,3.4vw,70px); min-height: clamp(295px,24vw,490px); }
.contact-routes h2 { max-width: 8em; }
.contact-routes p { font-size: clamp(15px,1.19vw,24px); line-height: 1.45; max-width: 28em; margin-top: 13px; }
.contact-routes .button { margin-top: clamp(23px,2.2vw,44px); }
.contact-start { overflow: hidden; display: grid; align-items: center; background: #070d18; color: #f1f6ff; }
.contact-start h2 { color: inherit; }
.contact-start > div { position: absolute; inset: 0 0 0 auto; width: 62%; z-index: -1; mask-image: linear-gradient(90deg,transparent,#000 44%); }
.contact-start img { object-position: center 30%; }
.contact-start header { max-width: 60%; }
.contact-start .button { background: #f6f8ff; color: #111725; border-color: transparent; }
.contact-client { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; background: var(--panel); }
.brief-layout { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(24px,3.8vw,88px); align-items: start; margin-top: clamp(22px,3.1vw,62px); }
.brief-cover { align-self: start; overflow: hidden; position: relative; isolation: isolate; background: #081020; color: #f0f5ff; display: grid; grid-template-rows: auto minmax(255px,1fr); min-height: clamp(490px,44vw,900px); }
.brief-cover>div:first-child { position: relative; z-index: 1; padding: clamp(25px,3vw,68px) clamp(25px,3vw,68px) 12px; }
.brief-cover h1 { color: inherit; font-size: clamp(47px,5vw,114px); }
.brief-cover .editor-lead { color: #dfe8f6; font-size: clamp(16px,1.22vw,24px); }
.brief-glass { position: relative; overflow: hidden; mask-image: linear-gradient(180deg,transparent,#000 20%); }
.brief-glass img { position: absolute; inset: 0; object-fit: cover; object-position: 50% 22%; }
.editor-form.brief-form { padding: 0; border: 0; border-radius: 0; background: transparent; gap: clamp(18px,2vw,38px); }
.editor-form fieldset { margin: 0; border: 0; padding: 0; }
.editor-form legend { display: block; width: 100%; margin-bottom: clamp(15px,1.5vw,30px); padding: 0 0 10px; border-bottom: 1px solid var(--line); font-size: clamp(22px,1.85vw,39px); letter-spacing: var(--heading-tracking); line-height: 1.2; font-weight: var(--heading-weight); }
.editor-form .form-row { gap: clamp(12px,1.2vw,24px); }
.editor-form fieldset>label + .form-row { margin-top: 15px; }
.editor-form.brief-form label { gap: 8px; font-size: clamp(14px,1.04vw,21px); }
.editor-form :is(input:not([type="file"]),textarea,select) { font-size: clamp(16px,1.05vw,21px); min-height: 49px; background: var(--raised); border-color: color-mix(in srgb,var(--muted) 48%,var(--bg)); border-radius: 4px; }
.editor-form :is(input,textarea,select):user-invalid { border-color: #b63347; }
.editor-form .upload { border-style: dashed; background: var(--panel); }
.editor-form .form-message:not(:empty) { border-left: 3px solid var(--accent); background: var(--panel); padding: 13px 17px; font-size: 15px; }
.editor-form button:disabled { opacity: .66; }
.editor-success.brief-success { padding: clamp(26px,3.5vw,70px); min-height: 340px; color: var(--fg); border: 0; }
.editor-success p { max-width: 32em; }
.success-mark { display: grid; place-items: center; width: 48px; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--line); font-size: 25px; }
.study-index { display: grid; gap: clamp(30px,5.4vw,105px); }
.study-item { display: grid; grid-template-columns: minmax(0,1.32fr) minmax(0,.68fr); gap: var(--editor-gap); align-items: center; border-top: 1px solid var(--line); padding-top: clamp(19px,2vw,39px); }
.study-item:nth-child(even) { grid-template-columns: minmax(0,.68fr) minmax(0,1.32fr); }
.study-item:nth-child(even) .study-image { grid-column: 2; grid-row: 1; }
.study-item:nth-child(even) .study-copy { grid-column: 1; grid-row: 1; }
.study-image { aspect-ratio: 1.55; overflow: hidden; background: var(--panel); }
.study-image picture { display: block; width: 100%; height: 100%; }
.study-copy h2 { margin-top: 10px; font-size: clamp(38px,4.5vw,104px); }
.study-copy .study-format { color: var(--muted); font-size: clamp(13px,.97vw,20px); }
.study-copy .editor-link { margin-top: 16px; }
.study-text, .study-text:nth-child(even) { grid-template-columns: 1fr; }
.exhibit-material { margin-top: clamp(15px,2vw,38px); aspect-ratio: 1.38; overflow: hidden; }
.exhibit-material :is(picture,img) { display: block; width: 100%; height: 100%; object-fit: cover; }
.exhibit-enquiry { margin-top: clamp(20px,2.4vw,48px); }
.exhibit-forma .exhibit-detail-frame img { object-position: 54% 57%; }
.exhibit-meridian .exhibit-detail-frame img { object-position: 56% 43%; }
.reader-head { margin: clamp(37px,5vw,100px) 0; }
.reader-head h1 { max-width: 17em; }
.reader-cover { max-width: min(100%,1500px); margin-bottom: 38px !important; }
.reader-cover img { display: block; width: 100%; max-height: 72vh; object-fit: contain; background: var(--panel); }
.reader-body { max-width: 70ch; font-size: clamp(17px,1.35vw,29px); line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.editorial-reader>.editor-link { margin-top: 29px; }
.missing-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--editor-gap); align-items: center; padding-block: clamp(42px,7vw,150px); }
.missing-number { font-size: clamp(100px,17vw,360px); line-height: 1; letter-spacing: -.095em; font-weight: 530; color: var(--accent); }
.missing-panel h1 { font-size: clamp(40px,4.6vw,108px); }
.missing-panel .editor-lead { margin: 17px 0 23px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .directory-image img,.study-image img { transition: transform .72s cubic-bezier(.2,.65,.25,1); }
  .directory-entry:hover img,.study-item:hover img { transform: scale(1.025); }
}
@media (min-width:2200px) {
  .editor-page.shell, .exhibit .shell, .exhibit-overlay { width: min(88%,3000px); max-width: none; }
  .exhibit-hero { height: min(79svh,1700px); }
}
@media (max-width:1000px) {
  .directory-entry,.directory-entry:nth-child(-n+2) { grid-column: span 3; }
  .directory-entry .directory-image { aspect-ratio: 1.45; }
  .brief-layout { grid-template-columns: minmax(0,.77fr) minmax(0,1.23fr); }
  .editor-form .form-row { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:750px) {
  .index-lead,.direction-lead,.approach-lead,.pricing-lead,.editor-prices,.editor-process,.project-record,.editor-terms,.catalog-layout,.contact-routes,.brief-layout,.study-item,.study-item:nth-child(even),.missing-panel { grid-template-columns: minmax(0,1fr); }
  .index-lead,.direction-lead,.approach-lead,.pricing-lead { margin-top: 31px; gap: 21px; }
  .editor-page h1 { font-size: clamp(39px,9.6vw,64px); }
  .direction-copy h1 { font-size: clamp(38px,10.4cqi,67px); }
  .direction-art { aspect-ratio: 1.32; }
  .service-directory { grid-template-columns: 1fr; }
  .directory-entry,.directory-entry:nth-child(-n+2) { grid-column: auto; }
  .scope-columns,.editor-conditions { grid-template-columns: 1fr; }
  .editor-prices,.editor-process,.project-record,.editor-terms { row-gap: 19px; }
  .catalog-index { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; margin-bottom: 11px; }
  .catalog-layout { gap: 20px; }
  .editor-page .price-list summary { grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; }
  .editor-page .price-list summary strong { grid-column: 1; grid-row: 2; margin: 0; justify-self: start; color: var(--muted); font-size: .94em; }
  .editor-page .price-list summary i { grid-column: 2; grid-row: 1 / 3; }
  .contact-routes section { min-height: 0; }
  .contact-start { min-height: 230px !important; }
  .contact-start header { max-width: 66%; }
  .brief-layout { gap: 27px; }
  .brief-cover { display: block; min-height: 210px; padding: 24px; }
  .brief-cover>div:first-child { width: 72%; padding: 0; }
  .brief-cover .editor-lead { font-size: 15px; }
  .brief-glass { position: absolute; inset: 0 0 0 auto; width: 45%; mask-image: linear-gradient(90deg,transparent,#000 70%); }
  .study-item:nth-child(even) .study-copy,.study-item:nth-child(even) .study-image { grid-column: auto; grid-row: auto; }
  .study-item { gap: 16px; }
  .study-image { aspect-ratio: 1.35; }
  .study-copy h2 { margin-top: 5px; }
  .study-copy .editor-link { margin-top: 8px; }
  .missing-panel { gap: 16px; }
  .exhibit-material { max-height: 280px; margin-bottom: 12px; }
}
@media (max-width:380px) {
  .catalog-index { grid-template-columns: 1fr; }
  .brief-cover>div:first-child { width: 82%; }
}

.editor-form .brief-files { display: grid; gap: .4rem; list-style: none; margin: -.4rem 0 0; padding: 0; }
.editor-form .brief-files[hidden], .editor-form [data-file-info]:empty { display: none; }
.brief-files li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.brief-files li span { overflow-wrap: anywhere; min-width: 0; }
.brief-files button { background: none; border: 0; color: inherit; text-decoration: underline; padding: .65em .2em; cursor: pointer; }
