/* Identity sizing and functional components within the editorial system. */
.view[hidden]{display:none!important}
.section-content{min-width:0}
.section-grid{grid-template-columns:.29fr minmax(0,1fr)}
.hero{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)}
.page-title{overflow-wrap:break-word}
.title-ending{white-space:nowrap}
.dot{width:.30em;height:.30em;vertical-align:.28em;margin-left:.12em}
.section-label{line-height:1.7}
button,input,textarea,select{font:inherit;color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.skip-link{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--paper);z-index:100;padding:14px 20px}
.skip-link:focus{top:12px}
.header-controls{display:flex;align-items:center;gap:22px}
.header-contact{font-size:10px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.menu-toggle{display:none;background:transparent;border:1px solid var(--ink);border-radius:100px;padding:10px 14px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.line-cta:hover b,.line-cta:focus-visible b{transform:translate(3px,3px)}
.line-cta b{transition:transform .2s ease}
.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:42px}
.text-link,.back{font-size:10px;letter-spacing:.14em;text-transform:uppercase;line-height:1.7}
.text-link{display:inline-block;transition:transform .2s ease}
.text-link:hover,.text-link:focus-visible{transform:translateX(6px)}
.back{display:inline-block;margin-bottom:30px}
.button span[aria-hidden]{margin-left:12px}
.body>p:last-child{margin-bottom:0}
.section-intro{font-size:20px;line-height:1.58;max-width:830px;margin:0 0 48px}
.section-end{margin-top:42px}
.approach-overview p+p{margin-top:13px}
.teaser:not(a){cursor:default}
.teaser:focus-visible .go{transform:translateX(6px)}
.person .person-role{font-size:10px;letter-spacing:.16em;text-transform:uppercase;line-height:1.6;color:var(--soft);margin:0 0 22px}
.person p{max-width:500px}
.governance .teaser{min-height:0}
.status{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase;line-height:1.7;margin-bottom:22px}
.project-list-item .project-meta{font-size:10px;letter-spacing:.16em;text-transform:uppercase;line-height:1.7;color:var(--soft);margin:25px 0 0}
.project-copy .note{font-size:12px;line-height:1.6;max-width:690px}
.project-copy .button{margin-top:7px}
.three-up{margin-top:42px}
.method-row:before{content:none;counter-increment:none}
.method-row{grid-template-columns:80px minmax(0,1fr)}
.method-row>.num{font-size:10px;letter-spacing:.16em;padding-top:6px;line-height:1.6}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0}
.facts>div{border-top:1px solid var(--ink);padding-top:19px}
.facts dt{font-size:9px;letter-spacing:.16em;text-transform:uppercase;line-height:1.7;margin-bottom:22px}
.facts dd{font-size:14px;line-height:1.55;color:var(--soft);margin:0}
.lens{border-top:1px solid var(--line)}
.lens:last-of-type{border-bottom:1px solid var(--line)}
.lens summary{list-style:none;display:grid;grid-template-columns:80px minmax(0,1fr) 24px;align-items:center;cursor:pointer;padding:27px 0}
.lens summary::-webkit-details-marker{display:none}
.lens-num{font-size:10px;letter-spacing:.16em}
.lens-title{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1}
.lens-icon{font-size:22px;font-weight:400;text-align:right}
.lens[open] .lens-icon{transform:rotate(45deg)}
.lens-content{padding:0 0 27px 80px}
.lens-content p{font-size:15px;line-height:1.62;max-width:720px;color:var(--soft);margin:0 0 22px}
.lens-content .question{font-size:20px;line-height:1.58;color:var(--ink);margin-bottom:0}
.case{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:58px;margin-top:42px}
.case-scene{border:1px solid var(--ink);padding:29px}
.case-scene blockquote{font-family:var(--serif);font-size:35px;line-height:.98;font-weight:400;margin:28px 0}
.case-scene p{font-size:14px;line-height:1.55;color:var(--soft);margin:0}
.case-tabs{display:flex;border-bottom:1px solid var(--ink)}
.case-tab{flex:1;border:0;background:transparent;padding:17px 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;line-height:1.6;cursor:pointer}
.case-tab[aria-selected='true']{background:var(--ink);color:var(--paper)}
.case-panel{padding:27px 0 0;min-height:245px}
.case-panel[hidden]{display:none}
.case-panel h3{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1;margin:0 0 22px}
.case-panel p{font-size:15px;line-height:1.62;color:var(--soft);margin:0 0 22px}
.case-panel p:last-child{font-size:12px;line-height:1.6}
.outlook{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:24px 0;max-width:800px}
.outlook summary{font-size:16px;line-height:1.7;cursor:pointer}
.outlook .body{margin-top:30px}
.outlook h3{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1;margin:30px 0 22px}
.contact-form{max-width:780px;border-top:1px solid var(--ink)}
.field{grid-template-columns:190px minmax(0,1fr)}
.field label{line-height:1.6}
.field input,.field textarea,.field select{min-width:0;line-height:1.6;border-radius:0;min-height:30px}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.field textarea{min-height:120px}
.form-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:30px}
.form-actions .note{max-width:390px;margin:0}
.form-status{margin-top:22px}
.footer-contact,.footer-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
@media(max-width:1000px){
  .topbar{position:relative}
  .menu-toggle{display:inline-block}
  #primary-nav{display:none;position:absolute;top:100%;left:-22px;right:-22px;max-height:calc(100dvh - 87px);overflow:auto;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:16px 22px 24px}
  #primary-nav.open{display:flex}
  #primary-nav a{display:block;padding:18px 0}
  .hero,.section-grid{grid-template-columns:minmax(0,1fr)}
  .hero-side{width:min(100%,650px)}
  .facts{grid-template-columns:1fr;gap:28px}
  .case{grid-template-columns:1fr;gap:28px}
  .case-panel{min-height:210px}
}
@media(max-width:580px){
  .topbar{gap:12px}
  .brand{gap:10px;min-width:0}
  .brandtext{max-width:90px;line-height:1.5}
  .header-controls{gap:10px}
  .menu-toggle,.header-contact{font-size:9px;padding:10px 12px}
  #primary-nav{left:-14px;right:-14px;max-height:calc(100dvh - 71px);padding-inline:14px}
  .hero h1{font-size:clamp(62px,20.5vw,108px)}
  .page-title.long{font-size:clamp(46px,12vw,70px);line-height:.92}
  .section-intro{font-size:18px}
  .method-row{grid-template-columns:52px minmax(0,1fr)}
  .lens summary{grid-template-columns:52px minmax(0,1fr) 24px}
  .lens-content{padding-left:52px}
  .case-scene{padding:24px}
  .case-panel{min-height:0}
  .field{grid-template-columns:1fr}
  .footer-title{font-size:clamp(62px,21vw,72px)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
}
