/* Inner pages only: the supplied homepage does not load this file. */
.inner-page {
  --ink: #f0f0f0; --copy: #c5c7c3; --muted: #a9ada7;
  --line: #72766f; --header-height: 114px;
  background: #0a0a0a; color: var(--ink);

    cursor: auto; overflow-wrap: anywhere; hyphens:auto; overflow-x: visible;
}
.inner-page *, .inner-page *::before, .inner-page *::after { box-sizing: border-box; }
.inner-page ::selection { background: #f0f0f0; color: #0a0a0a; }
.inner-page .noise { display:none; }
.inner-page a { color: inherit; }
.inner-page .mobile-enquiry { color: #0a0a0a; }

.inner-page button, .inner-page a { -webkit-tap-highlight-color: transparent; }
.inner-page :focus-visible { outline: 2px solid #f0f0f0; outline-offset: 5px; }
.inner-page [hidden] { display: none !important; }
.inner-page .skip-link { position: fixed; top: 12px; left: 16px; padding: 12px 20px; background: #f0f0f0; color: #0a0a0a; z-index: 10000; transform: translateY(-160%); }
.inner-page .skip-link:focus { transform: none; }
.inner-page .inner-header { position: fixed; inset: 0 0 auto; background: #0a0a0a; backdrop-filter: none; border-bottom: 1px solid #343730; z-index: 100; padding: 0; }
.inner-page .nav-brand-row { max-width: 1360px; margin: auto; padding: 14px clamp(20px,5vw,72px) 7px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.inner-page .inner-header::before { content: none; }
.inner-page .nav-brand {   min-height: 44px; display: inline-flex; align-items: center;  text-decoration: none; }
.inner-page .language-switch { display: flex; gap: 4px; }
.inner-page .language-switch button { background: none; border: 0; color: var(--copy); min-width: 44px; min-height: 44px; padding: 8px;  cursor: pointer; }
.inner-page .language-switch button[aria-pressed=true] { color: var(--ink); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.inner-page .utility-label { color: var(--muted);  }
.inner-page .nav-track-row { max-width: 1360px; padding: 0 clamp(20px,5vw,72px); margin: auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; height: 3px; }
.inner-page .nav-track { display: block; width: auto; height: 2px; margin: 0; background: #44483f; }
.inner-page .nav-bar { max-width: 1360px; margin: auto; padding: 0 clamp(20px,5vw,72px); }
.inner-page .nav-links { display: flex; justify-content: flex-start; gap: clamp(4px,3vw,36px); list-style: none; padding: 0; margin: 0; }
.inner-page .nav-links li { flex: none; }
.inner-page .nav-links a { display: inline-flex; min-height: 48px; padding: 10px 6px; align-items: center;   color: var(--copy);  text-decoration: none; }
.inner-page .nav-links a[aria-current] { color: var(--ink); text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 2px; }
.inner-page .nav-links a:hover { text-decoration: underline; text-underline-offset: 7px; }
.inner-page .page-main { max-width: 1360px; margin: 0 auto; padding: calc(var(--header-height) + clamp(40px,6vw,84px)) clamp(20px,5vw,72px) 90px; min-height: 70vh; }
.inner-page .page-intro { max-width: 980px; margin-bottom: clamp(34px,5vw,64px); }
.inner-page .eyebrow {   color: var(--muted);   margin: 0 0 18px;  }
.inner-page .page-title {      margin: 0 0 24px;  }
.inner-page .page-deck { max-width: 57ch;   color: var(--copy); margin: 0; }
.inner-page p { color: var(--copy); margin: 0 0 24px; max-width: 68ch; }
.inner-page .content-section { margin: 0 0 40px; }
.inner-page .content-title {      margin: 0 0 20px; }
.inner-page .text-link { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; padding: 8px 0;  text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.inner-page .text-link:hover { text-decoration-thickness: 2px; }
.inner-page .breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; color: var(--muted);  }

.inner-page .editorial-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,6vw,80px); align-items: start; margin-bottom: 52px; }
.inner-page .prose { padding-top: 6px; min-width: 0; }
.inner-page .editorial-figure { margin: 0 0 44px; max-width: 1040px; }
.inner-page .editorial-image { display: block; width: 100%; height: auto; max-height: 620px; object-fit: contain; object-position: left center; background: #111; }
.inner-page figcaption { color: var(--muted);   padding-top: 12px; max-width: 68ch; }
.inner-page .project-grid, .inner-page .study-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: clamp(24px,4vw,56px); row-gap: 52px; margin-top: 36px; }
.inner-page .project-card { min-width: 0; }
.inner-page .project-link { display: block; text-decoration: none; }
.inner-page .project-image { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: contain; background: #111; }
.inner-page .project-caption { padding: 20px 0 0; }
.inner-page .project-caption .eyebrow { margin-bottom: 8px; }
.inner-page .project-title {     margin: 0 0 8px; }
.inner-page .project-kind {  margin-bottom: 8px; }
.inner-page .project-link:hover .text-link { text-decoration-thickness: 2px; }
.inner-page .page-end { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; border-top: 1px solid #343730; margin-top: 42px; padding-top: 20px; }
.inner-page .fact-list { margin: 0; border-top: 1px solid #343730; max-width: 880px; }
.inner-page .fact-list > div { display: grid; grid-template-columns: minmax(120px,1fr) 2fr; gap: 24px; border-bottom: 1px solid #343730; padding: 22px 0; }
.inner-page .fact-list dt { color: var(--muted);  }
.inner-page .fact-list dd { margin: 0; color: var(--ink); }
.inner-page .principles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; margin-bottom: 28px; }
.inner-page .principle { border-top: 1px solid #72766f; padding-top: 24px; }
.inner-page .index-list { border-top: 1px solid #343730; }
.inner-page .index-row { display: grid; grid-template-columns: 36px 1fr 28px; gap: 24px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid #343730; text-decoration: none; }
.inner-page .row-number { color: var(--muted);  }
.inner-page .row-title {     margin: 0 0 8px; }
.inner-page .row-copy {  margin: 0; }

.inner-page .index-row:hover .row-title { text-decoration: underline; text-underline-offset: 6px; }
.inner-page .contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,6vw,80px); }
.inner-page .simple-form { padding: 0; margin: 0; }
.inner-page .form-hint, .inner-page .draft-note { color: var(--copy);   padding: 16px 0; border-block: 1px solid var(--line); }
.inner-page .field { margin-bottom: 24px; }
.inner-page .field label { display: block; color: var(--ink); margin-bottom: 10px;  }
.inner-page .field input, .inner-page .field textarea { display: block; width: 100%; border: 1px solid var(--line); border-radius: 0; background: #111; color: var(--ink); min-height: 48px; padding: 13px 14px;   }
.inner-page .field textarea { resize: vertical; min-height: 160px; }
.inner-page .field select { display:block; width:100%; border:1px solid var(--line); border-radius:0; background:#111; color:var(--ink); min-height:48px; padding:13px 14px;   }
.inner-page .form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.inner-page .identity-panel { border-block:1px solid #72766f; padding:32px 0; }

.inner-page .index-row > span:nth-child(2) { min-width:0; }
.inner-page input:autofill { color: #0a0a0a; }
.inner-page .button, .inner-page .gallery-filters button, .inner-page .dialog-controls button, .inner-page .dialog-close, .inner-page .mockup-controls button { border: 1px solid var(--line); background: #111; color: var(--ink); min-height: 44px; min-width: 44px; padding: 12px 18px; cursor: pointer;  border-radius: 0;  }
.inner-page .button { background: var(--ink); color: #0a0a0a; border-color: var(--ink); }
.inner-page #contactStatus:empty { display: none; }
.inner-page #contactStatus { margin-top: 24px; }
.inner-page .gallery-filters { display: flex; gap: 10px; flex-wrap: wrap; margin: 32px 0 18px; }
.inner-page .gallery-filters button[aria-pressed=true] { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
.inner-page .study { margin: 0; }
.inner-page .open-study { display: block; width: 100%; padding: 0; border: 0; background: #111; cursor: zoom-in; }
.inner-page .study-image { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: contain; }
.inner-page dialog { position: fixed; inset: 0; margin: auto; color: var(--ink); background: #111; border: 1px solid var(--line); width: min(960px,calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 18px; overflow: auto; }
.inner-page dialog::backdrop { background: rgb(0 0 0 / .88); }
.inner-page .dialog-top { display: flex; gap: 20px; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.inner-page .dialog-top h2 {  margin: 0; }
.inner-page .nav-brand-row { flex-wrap:wrap; gap:8px 12px; }
.inner-page .nav-brand { max-width:100%; overflow-wrap:anywhere; }
.inner-page .language-switch { margin-left:auto; flex:none; }
.inner-page .dialog-close { padding: 2px 12px;  }
.inner-page #dialogImage { display: block; width: 100%; height: min(58dvh,600px); object-fit: contain; }
.inner-page .dialog-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 18px; }

.inner-page .legal-copy, .inner-page .legal-contents { max-width: 74ch; }
.inner-page .legal-contents { padding: 24px 0; margin: 16px 0 48px; border-bottom: 1px solid #343730; }
.inner-page .legal-contents h2, .inner-page .legal-copy h2 {  margin: 0 0 20px; }
.inner-page .legal-copy h3 {  margin: 28px 0 16px; }
.inner-page .legal-contents ol { padding-left: 24px; }
.inner-page .legal-contents a { display: inline-block; min-height: 44px; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; }
.inner-page .legal-copy section { scroll-margin-top: calc(var(--header-height) + 24px); margin-bottom: 44px; }
.inner-page .legal-copy p, .inner-page .legal-copy li {   color: var(--copy); }
.inner-page .legal-copy li { margin-bottom: 12px; }
.inner-page .legal-copy a { text-decoration: underline; text-underline-offset: 4px; }
.inner-page .inner-footer { border-top: 1px solid #343730; max-width: 1360px; margin: auto; padding: 44px clamp(20px,5vw,72px) 24px; }
.inner-page .footer-primary { display: flex; gap: 20px 40px; align-items: center; flex-wrap: wrap; margin-bottom: 28px; }
.inner-page .footer-brand {    min-height: 44px; text-decoration: none; display: inline-flex; align-items: center; }
.inner-page .footer-primary p { margin: 0;  }
.inner-page .footer-links { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-bottom: 28px; }

.inner-page .footer-small {  color: var(--muted); margin: 0; }
.inner-page .review-findings { max-width: 76ch; }
.inner-page .review-finding { border-top: 1px solid #343730; padding: 28px 0; }
.inner-page .review-finding h2 {  margin: 0 0 18px; }
.inner-page .review-finding p:last-child { margin-bottom: 0; }
.inner-page .shader-options { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.inner-page .shader-options button { background: #111; color: #f0f0f0; }
.inner-page .shader-options button[aria-pressed=true] { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
.inner-page .shader-preview-frame { display: block; width: 100%; height: min(780px,80dvh); min-height: min(420px,60dvh); border: 1px solid #72766f; margin: 0 0 40px; background: #0a0a0a; }
.inner-page .shader-descriptions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 40px; }
@media (max-width: 760px) { .inner-page .shader-descriptions { grid-template-columns: 1fr; } }
@keyframes menu-loop { to { transform: translateX(calc(-50% - 16px)); } }
@media (max-width: 760px) {
  .inner-page .editorial-split, .inner-page .contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .inner-page .principles { grid-template-columns: 1fr; gap: 20px; }
  .inner-page .project-grid, .inner-page .study-grid { gap: 32px 20px; }
  .inner-page .editorial-figure { margin-bottom: 28px; }
  .inner-page .page-main { padding-bottom: 60px; }
}
@media (max-width:900px) { .inner-page .editorial-split,.inner-page .contact-layout { grid-template-columns:1fr; gap:28px; } }
@media (max-width:520px) { .inner-page .form-row { grid-template-columns:1fr; gap:0; } }
@media (max-height:520px) and (orientation:landscape) {
  .inner-page .nav-brand-row { padding-block:4px 0; }
  .inner-page .page-main { padding-top:calc(var(--header-height) + 28px); padding-bottom:40px; }

  .inner-page .editorial-split,.inner-page .contact-layout { grid-template-columns:1fr; }
  .inner-page dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); padding:10px; }
  .inner-page .dialog-top { margin-bottom:8px; }
  .inner-page #dialogImage { height:45dvh; }
  .inner-page #dialogCaption {  margin:12px 0; }
  .inner-page .dialog-controls { padding-top:4px; }
}
@media (max-width: 520px) {
  .inner-page .project-grid, .inner-page .study-grid, .inner-page .menu-editorial { grid-template-columns: 1fr; }
  .inner-page .nav-links { justify-content: space-between; gap: 0; }
  .inner-page .nav-links a { padding: 10px 2px; }
  .inner-page .index-row { grid-template-columns: 24px 1fr 20px; gap: 12px; padding: 24px 0; }
  .inner-page .fact-list > div { grid-template-columns: 1fr; gap: 8px; }
  .inner-page .footer-primary { flex-direction: column; align-items: flex-start; gap: 12px; }
  .inner-page .dialog-controls button {  padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.inner-page) { scroll-behavior: auto; }
  .inner-page *, .inner-page *::before, .inner-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .inner-page .menu-loop-track { width: auto; }
  .inner-page .menu-loop-track > div:first-child { flex-wrap: wrap; }
  .inner-page .menu-loop-track > div[aria-hidden] { display: none; }
}
@media (forced-colors: active) {
  .inner-page :focus-visible { outline-color: Highlight; }
  .inner-page .field input, .inner-page .field textarea, .inner-page button { border: 1px solid ButtonText; }
  .inner-page .nav-track { background: GrayText; }
}
/* 004 contact revision: equal label tracks, bounded native date inputs. */
.inner-page .contact-layout > *, .inner-page .form-row > .field { min-width:0; }
.inner-page .form-row { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.inner-page .form-row .field label { min-height:3.4em; display:flex; align-items:flex-end; hyphens:none; }
.inner-page .field input, .inner-page .field select, .inner-page .field textarea { min-width:0; max-width:100%; box-sizing:border-box; color-scheme:dark; }
.inner-page input[type=date] { width:100%; min-inline-size:0; }
.inner-page input[type=date]::-webkit-date-and-time-value { min-width:0; text-align:left; }
@supports (grid-template-rows:subgrid) {
 .inner-page .form-row .field { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
 .inner-page .form-row .field label { min-height:0; }
}
@media (max-width:520px) {
 .inner-page .form-row { grid-template-columns:minmax(0,1fr); }
 .inner-page .form-row .field label { min-height:0; }
}
.inner-page .field label [aria-hidden=true] { margin-inline-start:.25em; }

/* Text stays in normal document flow, including mobile WebKit. */
.inner-page .page-main { position:relative; z-index:0; color:#f0f0f0; visibility:visible; opacity:1; transform:none; }
.inner-page .nav-links li { flex:0 0 12ch; }
.inner-page .reveal, .inner-page [data-reveal] { opacity:1; visibility:visible; transform:none; }
@media (max-width:760px) {
 .inner-page { -webkit-text-size-adjust:100%; text-size-adjust:100%; --header-height:153px; }
 .inner-page .nav-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 8px; }
 .inner-page .nav-links li { min-width:0; }
 .inner-page .nav-links a { display:flex; min-width:0; min-height:44px; padding:8px 0; white-space:normal; overflow-wrap:normal; hyphens:none; }
 .inner-page .nav-links a > [aria-hidden=true] { display:none; }
 .inner-page .page-main, .inner-page .inner-footer { overflow:visible; }
 .inner-page .page-title, .inner-page .content-title, .inner-page .row-title { color:#f0f0f0; }
 .inner-page p { color:#c5c7c3; }
}
