@font-face {
  font-family: 'Work Sans';
  src: url('/media/work-sans-atlas.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --ink: #071c19;
  --green: #0e2c28;
  --mid: #17453d;
  --copper: #bc896d;
  --paper: #f5f5ef;
  --muted: #a6b7b0;
  --line: rgba(220, 237, 225, .17);
  --gutter: clamp(24px, 5.1vw, 106px);
  --content: 1560px;
  --header: 108px;
  --ease: cubic-bezier(.22, .68, .15, 1);
  font-family: 'Work Sans', Arial, sans-serif;
  color: var(--paper);
  background: var(--ink);
  font-synthesis: none;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header); }
body { margin: 0; min-width: 0; }
body.menu-open, body.modal-open, body.dialog-open { overflow: hidden; }
::selection { color: var(--ink); background: #d8b397; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; }
a { color: inherit; text-underline-offset: .23em; }
img, video, svg { display: block; }
img, video { max-width: 100%; }
img { height: auto; }
figure, p, ul, ol { margin: 0; }
button, input, select, textarea { border-radius: 0; }
button, input, select, textarea, a, summary { outline-offset: 5px; }
:focus-visible { outline: 2px solid var(--copper); }
[hidden] { display: none !important; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; line-height: 1.08; letter-spacing: -.055em; margin: 0; text-wrap: balance; hyphens: none; word-break: normal; overflow-wrap: normal; }
h1 { font-size: clamp(60px, 7.7vw, 128px); }
h2 { font-size: clamp(41px, 4.6vw, 76px); }
h3 { font-size: clamp(25px, 2.25vw, 35px); }
p { text-wrap: pretty; }
small { font-size: 12px; }
main { overflow: clip; }
.wrap { width: min(calc(100% - var(--gutter) * 2), var(--content)); margin-inline: auto; }
.section { padding-block: clamp(90px, 9vw, 150px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 12px; left: 20px; z-index: 300; padding: 12px 18px; color: var(--ink); background: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.scroll-progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 100; pointer-events: none; }
.scroll-progress > span { display: block; width: 100%; height: 100%; background: var(--copper); transform: scaleX(0); transform-origin: left; }
.eyebrow, .section-label, .rule-label { font-size: 11px; font-weight: 400; line-height: 1.4; letter-spacing: .17em; text-transform: uppercase; color: var(--copper); }
.section-label, .rule-label { display: flex; align-items: center; gap: 18px; }
.section-label::before, .rule-label::before { content: ''; width: 32px; height: 1px; background: linear-gradient(90deg, rgba(188,137,109,.25), var(--copper), rgba(188,137,109,.25)); background-size: 200% 100%; animation: label-line 2.8s ease-in-out infinite; flex-shrink: 0; }
.section-label > .rule, .rule-label > .rule { display: none; }
.section-label > span[aria-hidden='true'] { display: none; }
.section-label small { font-size: inherit; }
.accent { color: var(--copper); }

/* Atlas's narrow, quiet header carries one consistent set of controls. */
.masthead { position: fixed; top: 0; left: 0; width: 100%; z-index: 40; background: linear-gradient(180deg, rgba(7,28,25,.74), rgba(7,28,25,0)); transition: background .3s ease, box-shadow .3s ease; }
.masthead.is-scrolled, .masthead.scrolled { background: rgba(7,28,25,.94); box-shadow: 0 1px 0 rgba(220,237,225,.12); }
.masthead-inner { height: var(--header); display: flex; align-items: center; gap: 32px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; line-height: 1; text-decoration: none; }
.brand img { width: 159px; height: auto; filter: brightness(0) invert(1); }
.masthead-caption { display: flex; align-items: center; gap: 28px; max-width: 245px; font-size: 10px; letter-spacing: .17em; line-height: 1.5; color: #b6c7bf; text-transform: uppercase; }
.divider { height: 20px; width: 1px; flex-shrink: 0; background: var(--line); }
.masthead-caption > span { height: 20px; width: 1px; flex-shrink: 0; background: var(--line); }
.desktop-nav { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.desktop-nav a { padding: 11px 0; font-size: 12px; text-decoration: none; position: relative; white-space: nowrap; }
.desktop-nav a::after { content: ''; position: absolute; height: 1px; left: 0; right: 0; bottom: 5px; background: var(--copper); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.desktop-nav a:hover::after, .desktop-nav a[aria-current='true']::after, .desktop-nav a[aria-current='page']::after, .desktop-nav a[aria-current='location']::after { transform: scaleX(1); }
.masthead-actions { display: flex; align-items: center; gap: 14px; }
.masthead .button { min-height: 46px; padding: 12px 18px; font-size: 12px; gap: 18px; background: rgba(14,44,40,.28); border-color: rgba(220,237,225,.3); }
.masthead .button:hover { background: rgba(245,245,239,.12); }
.masthead .button svg { width: 15px; height: 15px; }
.menu-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; flex-shrink: 0; background: transparent; color: var(--paper); border: 1px solid var(--line); border-radius: 50%; }
.menu-toggle span { position: relative; width: 17px; height: 1px; background: currentColor; }
.menu-toggle span::before, .menu-toggle span::after { content: ''; position: absolute; width: 17px; height: 1px; left: 0; background: currentColor; }
.menu-toggle span::before { top: -5px; }
.menu-toggle span::after { top: 5px; }
.menu-toggle span + span { display: none; }
.menu-toggle svg { width: 20px; height: 20px; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; min-height: 53px; padding: 16px 24px; border: 1px solid var(--line); border-radius: 100px; background: transparent; color: var(--paper); font-size: 13px; font-weight: 400; line-height: 1.35; letter-spacing: .025em; text-align: center; text-decoration: none; transition: background .24s, border-color .24s, color .24s; }
.button:hover { background: rgba(245,245,239,.08); border-color: rgba(220,237,225,.45); }
.button-light, .button--light { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.button-light:hover, .button--light:hover { background: #dedfd5; border-color: #dedfd5; }
.button--outline { color: var(--paper); border-color: rgba(220,237,225,.38); background: transparent; }
.button svg, .text-link svg, .next-project svg { width: 18px; height: 18px; flex-shrink: 0; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; width: fit-content; min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid rgba(220,237,225,.45); background: transparent; color: inherit; font-size: 13px; line-height: 1.4; text-align: left; text-decoration: none; transition: color .2s, border-color .2s; }
.text-link:hover { color: #d9b399; border-color: var(--copper); }
.inline-link { display: inline; color: inherit; background: transparent; border: 0; border-bottom: 1px solid currentColor; font: inherit; padding: 0; text-decoration: none; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px 31px; margin-top: 32px; }

/* The opening scene stays usable before the film has arrived. */
.hero { min-height: 740px; height: auto; position: relative; isolation: isolate; background: var(--ink); overflow: hidden; }
.hero-media, .hero-shade { position: absolute; inset: 0; z-index: -1; }
.hero-poster, .hero-film { width: 100%; height: 100%; object-fit: cover; object-position: center 57%; }
.hero-film { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; }
.hero-film.is-ready { opacity: 1; }
.hero-shade { background: linear-gradient(90deg, rgba(7,28,25,.81), rgba(7,28,25,.35) 48%, rgba(7,28,25,.02) 77%), linear-gradient(180deg, rgba(7,28,25,.23), transparent 28%, transparent 48%, rgba(7,28,25,.76)); }
.hero-grid { min-height: 100svh; display: grid; align-items: center; padding-top: 170px; padding-bottom: 152px; }
.hero-copy { max-width: 1260px; }
.hero-copy .eyebrow, .hero-copy .section-label { color: #d7b191; margin-bottom: 28px; font-size: 11px; }
.hero h1 { font-size: clamp(68px, 8.2vw, 128px); letter-spacing: -.063em; line-height: 1.035; }
.hero h1 > span { display: block; }
.hero h1 .accent { color: var(--copper); }
.hero-intro { max-width: 520px; margin-top: 29px; color: #d9e0d9; font-size: 17px; line-height: 1.7; letter-spacing: -.012em; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 28px; margin-top: 34px; }
.hero-actions .button { gap: 31px; }
.hero-bottom { position: absolute; bottom: 34px; left: 0; right: 0; display: flex; align-items: center; gap: 30px; font-size: 11px; color: #c6d1c8; }
.scroll-cue { display: inline-flex; align-items: center; gap: 16px; font-size: 10px; letter-spacing: .14em; line-height: 1.5; text-transform: uppercase; text-decoration: none; }
.scroll-cue::before { content: ''; width: 1px; height: 38px; background: linear-gradient(180deg, rgba(188,137,109,.25), var(--copper), rgba(188,137,109,.25)); background-size: 100% 200%; animation: cue-line 2.8s ease-in-out infinite; }
.scroll-cue svg { width: 15px; height: 15px; }
.hero-media-caption { margin-left: auto; color: #c6d1c8; font-size: 11px; letter-spacing: .02em; }
.hero-motion, .project-film-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 11px 15px; border: 1px solid rgba(220,237,225,.32); border-radius: 50px; color: var(--paper); background: rgba(7,28,25,.35); font-size: 11px; line-height: 1.3; }
.hero-motion:hover, .project-film-toggle:hover { background: rgba(245,245,239,.1); }
.hero-motion svg, .project-film-toggle svg { width: 12px; height: 12px; }
@keyframes label-line { 0%,100% { background-position: 0 0; } 50% { background-position: 100% 0; } }
@keyframes cue-line { 0%,100% { background-position: 0 0; } 50% { background-position: 0 100%; } }

/* Green on green, with deliberate scale and an open rhythm. */
.approach { background: var(--green); position: relative; }
.approach > .wrap > .section-label { margin-bottom: 49px; }
.approach-head { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(50px, 8vw, 140px); align-items: end; }
.approach-head h2 { max-width: 14ch; font-size: clamp(45px, 5vw, 79px); line-height: 1.1; letter-spacing: -.059em; }
.approach-copy { max-width: 490px; color: var(--muted); font-size: 16px; line-height: 1.85; }
.approach-copy > * + * { margin-top: 21px; }
.discipline-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 35px; margin-top: clamp(64px, 6.8vw, 109px); }
.discipline { position: relative; border-top: 1px solid var(--line); padding-top: 29px; padding-right: 19px; }
.discipline h3 { max-width: 12ch; font-size: clamp(24px, 2.15vw, 33px); line-height: 1.18; letter-spacing: -.045em; min-height: 2.36em; }
.discipline p { color: var(--muted); font-size: 14px; line-height: 1.85; margin-top: 21px; }
.discipline-line { position: absolute; left: 0; top: -1px; display: block; width: 24px; height: 1px; background: var(--copper); transition: width .7s var(--ease); }
.discipline:hover .discipline-line { width: 62px; }

/* One pinned canvas; the next project is prepared beneath the present one. */
.projects { position: relative; height: auto; background: var(--ink); scroll-margin-top: calc(-1 * var(--header)); }
.project-stage { position: relative; top: auto; width: 100%; height: 100svh; min-height: 720px; isolation: isolate; overflow: hidden; background: var(--green); }
.project-backdrops, .project-shade { position: absolute; inset: 0; z-index: -1; }
.project-scene { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.05s ease, visibility 0s 1.05s; }
.project-scene.is-active { opacity: 1; visibility: visible; transition: opacity 1.05s ease, visibility 0s; }
.project-scene img, .project-scene video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.project-film { opacity: 0; transition: opacity .85s ease; }
.project-film.is-ready { opacity: 1; }
.project-shade { background: linear-gradient(180deg, rgba(7,28,25,.71), rgba(7,28,25,.08) 31%, rgba(7,28,25,.02) 46%, rgba(7,28,25,.68) 77%, rgba(7,28,25,.97)), linear-gradient(90deg, rgba(7,28,25,.14), transparent 50%); }
.project-stage-inner { height: 100%; min-height: inherit; display: flex; flex-direction: column; padding-top: calc(var(--header) + 38px); padding-bottom: 31px; position: relative; }
.project-top { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.project-top .section-label { color: #d7b191; }
.project-tabs { display: flex; align-items: center; gap: 7px; padding: 5px; border: 1px solid rgba(220,237,225,.27); background: rgba(7,28,25,.36); border-radius: 100px; backdrop-filter: blur(15px); }
.project-tabs button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 11px 22px; color: #d6e0d7; background: transparent; border: 1px solid transparent; border-radius: 50px; font-size: 12px; line-height: 1.3; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.project-tabs button.is-active, .project-tabs button[aria-selected='true'] { color: var(--paper); background: rgba(23,69,61,.78); border-color: rgba(220,237,225,.31); }
.project-tabs button:hover { color: var(--paper); background: rgba(23,69,61,.55); }
.project-content-layer { position: relative; flex: 1; min-height: 425px; margin-top: 38px; }
.project-story { position: absolute; left: 0; right: 0; bottom: 56px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr); align-items: end; gap: clamp(45px, 7vw, 126px); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(16px); transition: opacity .52s ease, transform .75s var(--ease), visibility 0s .75s; }
.project-story.is-active { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition: opacity .65s ease .08s, transform .85s var(--ease), visibility 0s; }
.project-place { color: var(--copper); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 22px; }
.project-name { font-size: clamp(62px, 7.8vw, 122px); font-weight: 400; line-height: 1; letter-spacing: -.064em; text-wrap: nowrap; }
.project-title-group { padding-bottom: 12px; }
.project-title-group > p:last-child:not(.project-place) { font-size: 15px; color: #c9d6cb; margin-top: 18px; }
.project-detail-group { border: 1px solid rgba(220,237,225,.18); border-left: 1px solid var(--copper); background: rgba(14,44,40,.62); backdrop-filter: blur(17px); padding: 27px 29px 23px; max-width: 420px; justify-self: end; box-shadow: 0 12px 55px rgba(7,28,25,.09); }
.project-description { font-size: 15px; line-height: 1.75; color: #d2ddd3; }
.project-mobile-context { display: none; }
.project-description p + p { margin-top: 15px; }
.project-description h4 { font-size: 22px; margin-bottom: 18px; }
.project-links { display: flex; align-items: flex-start; flex-direction: column; gap: 9px; margin-top: 23px; }
.project-links .text-link { display: flex; width: 100%; justify-content: space-between; font-size: 12px; min-height: 40px; border-color: rgba(220,237,225,.22); }
.project-links .text-link:last-child { border: 0; }
.project-bottom { display: flex; align-items: center; gap: 30px; min-height: 46px; }
.project-caption { font-size: 11px; color: #b4c7b9; line-height: 1.5; margin-right: auto; }
.project-progress { width: clamp(100px, 15vw, 230px); height: 1px; background: rgba(220,237,225,.23); overflow: hidden; }
.project-progress > span { display: block; width: 100%; height: 100%; background: var(--copper); transform: scaleX(0); transform-origin: left; transition: transform .2s linear; }
.next-project { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 46px; padding: 13px 22px; border: 1px solid rgba(220,237,225,.3); border-radius: 50px; color: var(--paper); background: rgba(14,44,40,.5); font-size: 12px; line-height: 1.35; }
.next-project:hover { background: var(--mid); }
.project-film-toggle { min-height: 44px; padding: 10px 14px; }
.project-controls { display: flex; align-items: center; gap: 13px; }
.project-controls .next-project.button--light { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.project-controls .next-project.button--light:hover { background: #dedfd5; }

.communities { background: var(--mid); }
.community-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(55px, 8vw, 142px); align-items: end; }
.community-head h2 { max-width: 13ch; font-size: clamp(47px, 5.4vw, 86px); letter-spacing: -.06em; }
.community-head .section-label { margin-bottom: 28px; }
.community-intro { max-width: 540px; font-size: 17px; line-height: 1.8; color: #bdcdc2; }
.community-intro > * + * { margin-top: 23px; }
.community-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 0 70px; margin-top: 75px; align-items: start; }
.community-topics details { border-top: 1px solid rgba(220,237,225,.21); padding-bottom: 1px; }
.community-topics summary { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 27px 0; font-size: 22px; line-height: 1.35; letter-spacing: -.035em; list-style: none; cursor: pointer; }
.community-topics summary::-webkit-details-marker { display: none; }
.community-topics summary > span[aria-hidden='true'] { display: none; }
.community-topics summary::after { content: '+'; font-size: 25px; font-weight: 300; color: #c5a68b; flex-shrink: 0; }
.community-topics details[open] summary::after { content: '−'; }
.community-topics details > p, .community-topics .answer { max-width: 650px; font-size: 15px; line-height: 1.85; color: #c3d3c8; padding: 0 34px 27px 0; }
.community-topics summary:hover { color: #dac0aa; }
.community-topics + .actions { margin-top: 45px; }

/* A portal invitation borrows Atlas geometry without duplicating its data. */
.portal-section { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); padding-block: clamp(100px, 10vw, 165px); }
.portal-section::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 78% 50%, rgba(23,69,61,.5), transparent 48%); }
.portal-copy { max-width: 820px; position: relative; z-index: 2; }
.portal-copy .section-label, .portal-copy > small { display: flex; margin-bottom: 28px; color: var(--copper); }
.portal-copy h2 { max-width: 13ch; font-size: clamp(48px, 5.5vw, 86px); line-height: 1.075; letter-spacing: -.061em; }
.portal-copy p { max-width: 515px; font-size: 17px; line-height: 1.8; color: var(--muted); margin-top: 28px; }
.portal-copy .actions { margin-top: 35px; }
.portal-orbits { position: absolute; z-index: -1; width: min(780px, 61vw); aspect-ratio: 1; right: -8%; top: 50%; transform: translateY(-50%); pointer-events: none; opacity: .8; }
.portal-orbits::before, .portal-orbits::after, .portal-orbits i, .portal-orbits span { content: ''; position: absolute; border: 1px solid rgba(188,137,109,.21); border-radius: 50%; inset: 8%; transform: rotate(-32deg) scaleX(.74); }
.portal-orbits::after { transform: rotate(28deg) scaleX(.74); }
.portal-orbits i:nth-child(1), .portal-orbits span:nth-child(1) { transform: rotate(90deg) scaleX(.74); }
.portal-orbits i:nth-child(2), .portal-orbits span:nth-child(2) { inset: 23%; transform: rotate(28deg) scaleX(.74); border-color: rgba(188,137,109,.12); }
.portal-orbits i:nth-child(3), .portal-orbits span:nth-child(3) { inset: 37%; transform: rotate(-32deg) scaleX(.74); border-color: rgba(188,137,109,.17); }
.portal-orbits i:nth-child(4), .portal-orbits span:nth-child(4) { width: 5px; height: 5px; inset: calc(50% - 2px); background: var(--copper); border: 0; transform: none; }

.news-section { background: var(--green); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; margin-bottom: 56px; }
.section-heading h2 { max-width: 16ch; }
.section-heading .section-label { margin-bottom: 24px; }
.section-heading > .text-link { flex-shrink: 0; }
.news-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(30px, 5vw, 82px); }
.news-list article { border-top: 1px solid var(--line); padding-top: 25px; }
.news-list time { display: block; color: var(--muted); font-size: 11px; letter-spacing: .015em; margin-bottom: 24px; }
.news-list h3 { font-size: clamp(24px, 2.15vw, 32px); line-height: 1.27; letter-spacing: -.043em; }
.news-list h3 a { text-decoration: none; }
.news-list h3 a:hover { color: #d7b99d; }
.news-list p { font-size: 14px; color: var(--muted); line-height: 1.8; margin-top: 19px; }
.news-list .text-link { font-size: 12px; margin-top: 23px; }
.news-arrow { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; font-size: 12px; color: var(--muted); margin-top: 25px; text-decoration: none; }
.news-arrow svg { width: 20px; height: 20px; }
.news-arrow:hover { color: #d7b99d; }

.contact-section { background: var(--ink); padding-bottom: 105px; }
.contact-heading { display: grid; grid-template-columns: 1.1fr .9fr; column-gap: 100px; row-gap: 27px; align-items: end; }
.contact-heading > .section-label { grid-column: 1 / -1; }
.contact-heading h2 { max-width: 12ch; font-size: clamp(53px, 6.25vw, 100px); letter-spacing: -.062em; }
.contact-heading p { max-width: 500px; font-size: 17px; line-height: 1.8; color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; margin-top: 62px; }
.contact-details { max-width: 620px; }
.contact-email { display: inline-flex; align-items: center; gap: 26px; font-size: clamp(28px, 3vw, 48px); letter-spacing: -.045em; line-height: 1.3; color: #d5b294; text-decoration: none; border-bottom: 1px solid rgba(188,137,109,.5); padding-bottom: 9px; margin-top: 36px; overflow-wrap: anywhere; }
.contact-email svg { width: 25px; height: 25px; flex-shrink: 0; }
.contact-email:hover { color: var(--paper); }
.contact-grid .contact-email { margin-top: 0; }
.contact-details address, .contact-details p { font-size: 14px; line-height: 1.85; color: var(--muted); font-style: normal; }
.contact-details h3 { font-size: 21px; margin-bottom: 13px; }
.contact-block + .contact-block { margin-top: 31px; }
.contact-details .contact-email + p, .contact-details .contact-email + address { margin-top: 24px; }
.contact-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 36px; }
.contact-actions .button { font-size: 12px; min-height: 48px; padding-inline: 22px; }
.contact-routes { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 30px; }
.contact-routes .button { min-height: 45px; padding: 12px 18px; gap: 20px; font-size: 11px; }
.contact-address { margin-top: 32px; }
.career-block { border-top: 1px solid var(--line); padding-top: 26px; max-width: 450px; margin-left: auto; }
.career-block h3 { font-size: 30px; margin-bottom: 21px; }
.career-block p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.career-block > .text-link { margin-top: 23px; }
.contact-linkedin { display: flex; align-items: center; gap: 22px; width: fit-content; min-height: 44px; margin-top: 20px; color: var(--muted); text-decoration: none; font-size: 12px; }
.contact-linkedin svg { width: 16px; height: 16px; }
.contact-linkedin:hover { color: var(--paper); }
.contact-aside { border-top: 1px solid var(--line); padding-top: 24px; max-width: 480px; margin-left: auto; }
.contact-aside > * + * { margin-top: 18px; }
.contact-aside p, .contact-aside address { font-size: 14px; color: var(--muted); font-style: normal; line-height: 1.85; }
.contact-aside h3 { font-size: 22px; }

/* Dialogs share Atlas's glass surfaces; form fields remain ordinary and clear. */
dialog { color: var(--paper); }
.mobile-menu { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--green); }
.mobile-menu::backdrop { background: rgba(7,28,25,.7); }
.mobile-menu[open] { display: flex; flex-direction: column; }
.menu-top { display: flex; align-items: center; justify-content: space-between; padding: 25px var(--gutter); gap: 20px; }
.menu-close, .modal-close, .dialog-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--paper); background: transparent; font-size: 27px; line-height: 1; }
.menu-close:hover, .modal-close:hover, .dialog-close:hover { background: rgba(245,245,239,.09); }
.menu-close svg, .modal-close svg, .dialog-close svg { width: 20px; height: 20px; }
.mobile-nav { display: flex; flex-direction: column; padding: 25px var(--gutter) 35px; overflow-y: auto; }
.mobile-nav a { font-size: clamp(30px, 6vw, 46px); letter-spacing: -.055em; line-height: 1.3; text-decoration: none; padding: 18px 0; border-bottom: 1px solid var(--line); }
.mobile-nav a:hover { color: #d5b294; }
.menu-bottom { margin-top: auto; padding: 24px var(--gutter) 34px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; color: var(--muted); font-size: 13px; }
.menu-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
.contact-dialog, .privacy-dialog, dialog.modal-shell { position: fixed; inset: 0; margin: auto; width: min(790px, calc(100% - 48px)); height: fit-content; max-height: calc(100svh - 56px); padding: 0; border: 1px solid rgba(220,237,225,.24); background: rgba(14,44,40,.97); box-shadow: 0 30px 120px rgba(0,0,0,.34); backdrop-filter: blur(18px); overflow-y: auto; }
.contact-dialog::backdrop, .privacy-dialog::backdrop, .modal-shell::backdrop { background: rgba(3,17,15,.77); backdrop-filter: blur(8px); }
.modal-shell:not(dialog) { position: relative; }
.modal-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding: 36px 42px 24px; position: sticky; top: 0; background: #0e2c28f7; z-index: 4; }
.modal-top h2 { font-size: 38px; line-height: 1.14; max-width: 17ch; }
.modal-top .section-label { margin-bottom: 12px; }
.modal-top p { color: var(--muted); font-size: 14px; line-height: 1.7; margin-top: 16px; max-width: 560px; }
.modal-body { padding: 0 42px 40px; }
.modal-body > p { color: #c1d0c5; font-size: 15px; line-height: 1.8; }
.modal-body > p + p { margin-top: 18px; }
.modal-body > .modal-direct { font-size: 12px; color: var(--muted); margin-top: 29px; padding-top: 23px; border-top: 1px solid var(--line); }
.modal-body > h3 { font-size: 24px; margin-top: 32px; margin-bottom: 17px; }
.modal-body > h3:first-child { margin-top: 0; }
.modal-body ul { padding-left: 22px; color: #c1d0c5; font-size: 15px; }
.inquiry-form { width: 100%; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 23px 22px; }
.field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: 13px; line-height: 1.4; color: #dce5dc; }
.field input, .field select, .field textarea { width: 100%; min-width: 0; min-height: 51px; padding: 13px 14px; font-size: 16px; color: var(--paper); background: rgba(7,28,25,.38); border: 1px solid rgba(220,237,225,.34); line-height: 1.4; transition: border-color .2s ease, background .2s ease; }
.field select { color-scheme: dark; padding-right: 35px; }
.field select option { background: var(--green); color: var(--paper); }
.field input:hover, .field select:hover, .field textarea:hover { border-color: rgba(220,237,225,.62); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--copper); outline-offset: 2px; border-color: #b7997f; background: rgba(7,28,25,.58); }
.field textarea { min-height: 140px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #93a89b; opacity: 1; }
.field input[aria-invalid='true'], .field textarea[aria-invalid='true'], .field select[aria-invalid='true'] { border-color: #e4ab95; }
.field-hint, .field-error { font-size: 12px; line-height: 1.55; }
.field-hint { color: var(--muted); }
.field-error { color: #efb8a4; }
.field-error:empty { display: none; }
.form-privacy { color: var(--muted); font-size: 12px; line-height: 1.8; margin-top: 24px; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 27px; }
.form-actions .button { min-width: 175px; }
.form-status { font-size: 14px; line-height: 1.75; color: #d1ddd3; margin-top: 22px; }
.form-status:empty { display: none; }
.form-status.error { color: #efb8a4; }
.form-status.success { border-left: 1px solid var(--copper); padding-left: 15px; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.inquiry-form[aria-busy='true'] .button { opacity: .65; }
.privacy-content p { color: #c1d0c5; line-height: 1.85; font-size: 15px; }
.privacy-content h3, .privacy-content h2 { font-size: 25px; margin-top: 34px; margin-bottom: 17px; }
.privacy-content p + p { margin-top: 18px; }
.privacy-content a { overflow-wrap: anywhere; }

.site-footer { background: var(--ink); border-top: 1px solid var(--line); padding-top: 45px; padding-bottom: 27px; }
.footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 50px; padding-bottom: 42px; }
.footer-top .brand img { width: 145px; }
.footer-top > p { margin-left: auto; color: var(--muted); font-size: 13px; line-height: 1.8; margin-right: auto; }
.footer-company { font-size: 12px; line-height: 1.85; color: var(--muted); }
.footer-brand .footer-company { margin-top: 25px; }
.footer-company p + p { margin-top: 4px; }
.footer-company a { text-decoration: none; }
.footer-company address { font-style: normal; }
.footer-nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 18px 30px; max-width: 730px; padding-top: 9px; }
.footer-nav a, .footer-nav button { font-size: 12px; color: #c2d0c6; text-decoration: none; border: 0; background: transparent; padding: 5px 0; }
.footer-nav a:hover, .footer-nav button:hover { color: var(--paper); text-decoration: underline; }
.footer-nav svg { display: none; }
.footer-bottom { display: flex; align-items: center; gap: 32px; border-top: 1px solid var(--line); padding-top: 25px; }
.footer-bottom > p, .footer-bottom > small { font-size: 11px; color: #96aba0; }
.footer-bottom > span, .footer-bottom > a, .footer-bottom > button { font-size: 11px; color: var(--muted); }
.footer-bottom > a { display: inline-flex; align-items: center; gap: 18px; text-decoration: none; min-height: 40px; }
.footer-bottom > button { border: 0; min-height: 40px; }
.back-top { margin-left: auto; }
.back-top svg { width: 16px; height: 16px; }
.footer-bottom-links { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; margin-left: auto; }
.footer-bottom-links a, .footer-bottom-links button { display: inline-flex; align-items: center; min-height: 40px; color: var(--muted); font-size: 11px; background: transparent; border: 0; padding: 0; text-decoration: none; }
.footer-social { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.footer-social svg { width: 15px; height: 15px; }
.dcs-badge { display: inline-flex; flex-direction: column; width: 126px; min-width: 126px; color: white; line-height: 1; text-decoration: none; }
.dcs-badge img { width: 126px; height: auto; }
.dcs-badge span { display: block; padding-left: 32px; padding-top: 3px; font-family: Arial, sans-serif; font-size: 8px; font-weight: 700; line-height: 1; letter-spacing: .015em; }

/* Only runtime-registered reveals move; static/no-JS content remains available. */
.reveal { opacity: 1; transform: none; }
.motion-ready .reveal { transition: opacity .85s ease, transform 1s var(--ease); }
.motion-ready .reveal:not(.is-in) { opacity: .5; transform: translateY(20px); }
.motion-ready .reveal.is-in { opacity: 1; transform: none; }
.motion-ready .discipline:nth-child(2) { transition-delay: .07s; }
.motion-ready .discipline:nth-child(3) { transition-delay: .14s; }
.motion-ready .discipline:nth-child(4) { transition-delay: .21s; }

/* The development sequence is a working diagram, with one readable step at a time. */
.approach { isolation: isolate; overflow: clip; }
.approach::before { content: ''; position: absolute; z-index: -1; inset: -14%; pointer-events: none; background: radial-gradient(ellipse at 63% 47%, #28594d 0, #11372f 33%, transparent 69%), linear-gradient(135deg, var(--ink), var(--green) 62%, var(--mid)); opacity: .69; transform-origin: center; animation: atlas-ambient 24s ease-in-out infinite alternate; }
.approach > .wrap { position: relative; }
.development-process { display: grid; grid-template-columns: minmax(190px, .83fr) minmax(280px, 1.15fr) minmax(250px, 1fr); column-gap: clamp(30px, 4vw, 70px); row-gap: 31px; align-items: center; margin-top: clamp(65px, 6vw, 105px); }
.process-tabs { display: flex; flex-direction: column; align-items: stretch; border-top: 1px solid var(--line); }
.process-tab { position: relative; display: flex; align-items: center; gap: 17px; min-height: 76px; width: 100%; padding: 20px 13px 20px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--muted); text-align: left; transition: color .3s ease, background .3s ease, padding .4s var(--ease); }
.process-tab::before { content: ''; position: absolute; inset: 19px auto 19px 0; width: 1px; background: var(--copper); opacity: 0; transform: scaleY(.25); transition: opacity .3s ease, transform .4s var(--ease); }
.process-tab:hover { color: var(--paper); background: rgba(245,245,239,.025); }
.process-tab.is-active, .process-tab[aria-selected='true'] { color: var(--paper); padding-left: 17px; }
.process-tab.is-active::before, .process-tab[aria-selected='true']::before { opacity: 1; transform: scaleY(1); }
.process-number { flex-shrink: 0; min-width: 17px; font-size: 11px; line-height: 1.2; letter-spacing: .06em; color: var(--copper); opacity: .8; }
.process-tab-title { font-size: clamp(17px, 1.45vw, 22px); line-height: 1.3; letter-spacing: -.025em; }
.process-tab-short { display: none; }
.process-tab svg { width: 17px; height: 17px; margin-left: auto; flex-shrink: 0; opacity: .6; }
.process-visual { position: relative; display: grid; place-items: center; align-content: center; row-gap: 16px; min-width: 0; min-height: 390px; isolation: isolate; }
.process-visual::before { content: ''; position: absolute; z-index: -1; width: 110%; height: 90%; border-radius: 50%; background: radial-gradient(ellipse, rgba(166,183,176,.09), rgba(166,183,176,.02) 46%, transparent 68%); }
.process-visual > .process-note { max-width: 340px; margin-inline: auto; font-size: 11px; line-height: 1.8; color: var(--muted); text-align: center; }
.process-diagram { width: 100%; height: auto; max-height: 480px; overflow: visible; }
.process-diagram * { vector-effect: non-scaling-stroke; }
.diagram-line { stroke: #97b3a3; stroke-width: 1; stroke-linejoin: round; stroke-linecap: round; fill: none; opacity: .57; }
.diagram-fill { fill: rgba(23,69,61,.75); stroke: #638f7d; stroke-width: 1; stroke-linejoin: round; }
.process-ground .diagram-fill { fill: rgba(23,69,61,.52); }
.diagram-accent { stroke: var(--copper); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; fill: none; }
.diagram-point { fill: var(--copper); stroke: var(--ink); stroke-width: 1; }
.diagram-label { fill: #c2d2c7; font-family: 'Work Sans', Arial, sans-serif; font-size: 12px; font-weight: 400; letter-spacing: .02em; stroke: none; }
.process-scene { opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.process-scene.is-active { opacity: 1; }
.process-scene.is-active .diagram-accent:not([stroke-dasharray]) { stroke-dasharray: 850; stroke-dashoffset: 0; animation: process-trace 1.7s var(--ease) both; }
.process-scene.is-active .diagram-point, .diagram-point.is-active { animation: process-pulse 3.3s ease-in-out infinite; }
.process-visual .is-dimmed { opacity: .25; transition: opacity .5s ease; }
.process-panels { position: relative; min-width: 0; min-height: 380px; display: grid; align-items: center; }
.process-panel { grid-area: 1 / 1; position: relative; align-self: center; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); transition: opacity .35s ease, transform .55s var(--ease), visibility 0s .55s; }
.process-panel.is-active { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition: opacity .55s ease .08s, transform .7s var(--ease), visibility 0s; }
.process-step-label { display: block; font-size: 10px; letter-spacing: .14em; color: var(--copper); text-transform: uppercase; margin-bottom: 19px; }
.process-panel h3 { font-size: clamp(32px, 3vw, 46px); line-height: 1.12; letter-spacing: -.05em; margin-bottom: 24px; max-width: 15ch; }
.process-panel p { max-width: 510px; font-size: 15px; line-height: 1.9; color: #c1d1c5; }
.process-panel .process-step-label { max-width: none; font-size: 12px; line-height: 1.7; letter-spacing: 0; text-transform: none; color: #cdb29a; margin-bottom: 18px; }
.process-panel p + p { margin-top: 19px; }
.process-panel .process-note { font-size: 12px; line-height: 1.8; color: var(--muted); padding-top: 23px; margin-top: 24px; border-top: 1px solid var(--line); }
.process-panel .text-link { margin-top: 22px; }
.process-next { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 44px; padding: 9px 0; margin-top: 27px; border: 0; border-bottom: 1px solid rgba(188,137,109,.45); color: #d9b99f; background: transparent; font-size: 12px; line-height: 1.4; text-align: left; }
.process-next svg { width: 18px; height: 18px; flex-shrink: 0; }
.process-next:hover { color: var(--paper); border-color: var(--copper); }
.process-meter { grid-column: 1 / -1; height: 1px; width: 100%; background: rgba(220,237,225,.12); overflow: hidden; }
.process-meter > span { display: block; width: 100%; height: 100%; transform-origin: left; background: linear-gradient(90deg, rgba(188,137,109,.4), var(--copper)); transition: transform .8s var(--ease); }
@keyframes atlas-ambient { from { transform: translate3d(-3%, 1%, 0) scale(1.02); opacity: .57; } to { transform: translate3d(3%, -2%, 0) scale(1.08); opacity: .78; } }
@keyframes process-trace { from { stroke-dashoffset: 850; opacity: .2; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes process-pulse { 0%,100% { opacity: .5; } 50% { opacity: 1; } }

/* One property, five views. Explanations stay in a separate, fixed legend zone. */
.process-diagram--story .site-marker-hit { fill: transparent; stroke: none; }
.process-diagram--story .site-marker { cursor: pointer; outline: none; }
.process-diagram--story .process-scene.is-active .site-marker { pointer-events: all; }
.process-diagram--story .site-key-highlight { fill: rgba(188,137,109,.13); opacity: 0; transition: opacity .2s ease; }
.process-diagram--story .site-legend-item.is-highlighted .site-key-highlight { opacity: 1; }
.process-diagram--story .site-legend-item.is-highlighted .site-key-label { fill: #f2d7b8; }
.process-diagram--story .site-marker.is-highlighted .site-marker-disc,
.process-diagram--story .site-marker:focus-visible .site-marker-disc { fill: #72563b; stroke: #f2d7b8; stroke-width: 2; }
.process-diagram--story .site-key-label { transition: fill .2s ease; }
.process-diagram--story { overflow: visible; }
.process-diagram--story text { font-family: 'Work Sans', Arial, sans-serif; font-weight: 400; fill: #d5e1d7; stroke: none; letter-spacing: 0; }
.process-diagram--story .site-land { fill: url(#site-land-glow); stroke: #547e68; stroke-width: .8; stroke-linejoin: round; }
.process-diagram--story .site-plinth-front { fill: #0b281f; stroke: #40624e; stroke-width: .65; }
.process-diagram--story .site-plinth-side { fill: #0a211b; stroke: #40624e; stroke-width: .65; }
.process-diagram--story .site-landscape { fill: #315f46; stroke: none; opacity: .65; }
.process-diagram--story .site-road { fill: #31523f; stroke: #678269; stroke-width: .7; }
.process-diagram--story .site-road-center { fill: none; stroke: #82977a; stroke-width: .8; stroke-dasharray: 5 7; opacity: .45; }
.process-diagram--story .site-access { fill: none; stroke: #48664e; stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; vector-effect: none; }
.process-diagram--story .site-boundary { fill: none; stroke: #89aa8b; stroke-width: 1; opacity: .6; }
.process-diagram--story .site-focus .site-boundary { stroke: #c6a180; stroke-width: 1.4; opacity: 1; }
.process-diagram--story .site-wall-front { fill: #345f49; stroke: #719079; stroke-width: .75; stroke-linejoin: round; }
.process-diagram--story .site-wall-side { fill: #214633; stroke: #719079; stroke-width: .75; stroke-linejoin: round; }
.process-diagram--story .site-roof { fill: #63896d; stroke: #8faa8d; stroke-width: .75; stroke-linejoin: round; }
.process-diagram--story .site-neighbors { opacity: .66; }
.process-diagram--story .site-block--neighbor .site-roof { fill: #3f6b4e; }
.process-diagram--story .site-block--neighbor .site-wall-front { fill: #2c503b; }
.process-diagram--story .site-block--neighbor .site-wall-side { fill: #244431; }
.process-diagram--story .site-focus .site-block--existing .site-roof { fill: #7a9979; stroke: #c5ad89; }
.process-diagram--story .site-footprint { fill: rgba(143,180,151,.08); stroke: #90aa8e; stroke-width: 1; stroke-dasharray: 4 5; }
.process-diagram--story .site-power { fill: none; stroke: #d2ac87; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.process-diagram--story .site-fiber { fill: none; stroke: #a7c3ad; stroke-width: 1.65; stroke-dasharray: 3 5; stroke-linejoin: round; stroke-linecap: round; }
.process-diagram--story .site-access-focus .site-access { stroke: #a3b998; opacity: .8; }
.process-diagram--story .site-block--utility .site-roof { fill: #b9a07a; }
.process-diagram--story .site-setbacks { fill: rgba(146,181,141,.04); stroke: #9bb398; stroke-width: 1; stroke-dasharray: 3 6; }
.process-diagram--story .site-block--envelope .site-roof { fill: rgba(154,189,159,.16); stroke: #c9a483; stroke-width: 1.15; stroke-dasharray: 4 5; }
.process-diagram--story .site-block--envelope .site-wall-front, .process-diagram--story .site-block--envelope .site-wall-side { fill: rgba(127,168,137,.1); stroke: #92af92; stroke-dasharray: 4 5; }
.process-diagram--story .site-context { opacity: .46; }
.process-diagram--story .site-block--facility .site-roof { fill: url(#site-roof-glow); stroke: #a0b89a; }
.process-diagram--story .site-block--facility .site-wall-front { fill: #426d50; }
.process-diagram--story .site-block--facility .site-wall-side { fill: #2b523b; }
.process-diagram--story .site-block--ground > .site-roof { fill: url(#site-land-glow); stroke: #547e68; }
.process-diagram--story .site-block--ground > .site-wall-front { fill: #0b281f; stroke: #40624e; }
.process-diagram--story .site-block--ground > .site-wall-side { fill: #0a211b; stroke: #40624e; }
.process-diagram--story .site-facade-detail { fill: none; stroke: #82a086; stroke-width: .8; opacity: .62; }
.process-diagram--story .site-yard { fill: #2b4a37; stroke: #6c8b70; stroke-width: .7; }
.process-diagram--story .site-block--equipment .site-roof { fill: #84a282; }
.process-diagram--story .site-block--rooftop .site-roof { fill: #a4ba9b; }
.process-diagram--story .site-block--rooftop .site-wall-front { fill: #739171; }
.process-diagram--story .site-marker-stem { fill: none; stroke: #c6a180; stroke-width: 1.1; }
.process-diagram--story .site-marker-disc { fill: #102c22; stroke: #cfad88; stroke-width: 1.25; }
.process-diagram--story .site-marker text { fill: #ebd8bf; font-size: 20px; }
.process-diagram--story .site-legend-rule { stroke: #91aa91; stroke-width: .7; opacity: .3; }
.process-diagram--story .site-key-disc { fill: #143126; stroke: #a99072; stroke-width: .9; }
.process-diagram--story .site-key-number { fill: #dfc7a8; font-size: 18px; }
.process-diagram--story .site-key-label { font-size: 17px; }
.process-diagram--story .site-role-link { fill: none; stroke: #bc9c7a; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; opacity: .75; }
.process-diagram--story .site-role-junction { fill: #ccb08a; stroke: #123126; stroke-width: 1; }
.process-diagram--story .site-role-card { fill: rgba(7,28,25,.64); stroke: #65806a; stroke-width: .8; }
.process-diagram--story .site-role-name { fill: #dfc3a2; font-size: 19px; }
.process-diagram--story .site-role-task { fill: #c3d4c4; font-size: 16px; }
.process-diagram--story .process-scene:not(.is-active) .site-legend,
.process-diagram--story .process-scene:not(.is-active) .site-roles,
.process-diagram--story .process-scene:not(.is-active) .site-marker { visibility: hidden; }
.process-scene.is-active .site-emerge { animation: site-emerge .75s var(--ease) both; }
@keyframes site-emerge { from { opacity: .2; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* A visible introduction to every topic; more detail expands in place. */
.communities { position: relative; isolation: isolate; overflow: hidden; background: var(--green); }
.communities::before { content: ''; position: absolute; z-index: -1; inset: -13%; background: radial-gradient(ellipse at 24% 55%, rgba(40,89,77,.69), rgba(23,69,61,.24) 39%, transparent 64%), radial-gradient(ellipse at 87% 17%, rgba(23,69,61,.76), transparent 62%); pointer-events: none; animation: atlas-ambient 31s ease-in-out -10s infinite alternate-reverse; }
.communities > .wrap { position: relative; }
.community-topics { gap: 36px clamp(45px, 6vw, 100px); }
.community-topic { border-top: 1px solid rgba(220,237,225,.22); padding-top: 29px; min-width: 0; }
.community-topic h3 { font-size: clamp(23px, 2.1vw, 31px); line-height: 1.22; letter-spacing: -.04em; margin-bottom: 18px; }
.community-topic .topic-summary { max-width: 620px; color: #c4d3c8; font-size: 15px; line-height: 1.85; }
.community-topic > details { margin-top: 12px; border: 0; padding-bottom: 0; }
.community-topic > details > summary { display: inline-flex; align-items: center; justify-content: flex-start; gap: 25px; width: fit-content; min-height: 44px; padding: 8px 0; font-size: 12px; letter-spacing: .015em; line-height: 1.4; color: #d8b599; border-bottom: 1px solid rgba(188,137,109,.39); }
.community-topic > details > summary::after { font-size: 19px; line-height: 1; }
.community-topic .topic-detail { max-width: 640px; color: var(--muted); font-size: 14px; line-height: 1.85; padding-top: 20px; padding-bottom: 3px; }
.community-topic .topic-detail p { margin: 0; }
.community-topic .topic-detail p + p { margin-top: 17px; }
.community-topic .topic-detail a { color: #d6c0aa; }
.community-topic .topic-detail .text-link { margin-top: 16px; font-size: 12px; }
.community-contact-note { margin-top: 42px; padding-top: 25px; border-top: 1px solid rgba(220,237,225,.15); max-width: 930px; font-size: 14px; line-height: 1.85; color: var(--muted); }

.selection-note { margin-top: 12px; max-width: 420px; font-size: 12px; line-height: 1.5; color: #bdcec2; }
.project-arrow { position: absolute; z-index: 8; top: 49%; transform: translateY(-50%); width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(220,237,225,.33); border-radius: 50%; background: rgba(7,28,25,.45); color: var(--paper); backdrop-filter: blur(9px); transition: background .2s ease, border-color .2s ease; }
.project-arrow.is-previous { left: 15px; }
.project-arrow.is-next { right: 15px; }
.project-arrow svg { width: 19px; height: 19px; }
.project-arrow.is-previous svg { transform: rotate(180deg); }
.project-arrow:hover { background: rgba(14,44,40,.82); border-color: var(--copper); }
.project-arrow:disabled { opacity: .3; cursor: default; }

.news-image-link { position: relative; display: block; width: 100%; margin-bottom: 24px; overflow: hidden; background: var(--ink); text-decoration: none; }
.news-image { display: block; width: 100%; height: auto; aspect-ratio: 1.55; object-fit: cover; filter: saturate(.52) brightness(.88); }
.news-row:has(.news-image-link) { border-top: 0; padding-top: 0; }
.news-row .news-image-caption { position: absolute; left: 11px; bottom: 10px; padding: 3px 7px; color: var(--paper); font-size: 9px; line-height: 1.4; background: rgba(7,28,25,.72); }
.news-image-link::after { content: ''; position: absolute; inset: 0; background: rgba(23,69,61,.26); border: 1px solid rgba(220,237,225,.1); pointer-events: none; }
.news-intro { max-width: 660px; margin-top: 24px; font-size: 16px; line-height: 1.8; color: var(--muted); }
.news-list .news-summary { margin-top: 19px; font-size: 14px; line-height: 1.85; color: var(--muted); }

/* Contact expands where the visitor selected it; careers has its own setting. */
.contact-section { background: var(--green); position: relative; isolation: isolate; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(55px, 9vw, 145px); align-items: start; }
.contact-intro { max-width: 560px; }
.contact-intro > .section-label { margin-bottom: 28px; }
.contact-intro h2 { font-size: clamp(58px, 6.7vw, 104px); line-height: 1.07; letter-spacing: -.062em; margin-bottom: 29px; }
.contact-intro > p { max-width: 400px; color: var(--muted); font-size: 17px; line-height: 1.8; }
.contact-intro .contact-email { font-size: clamp(25px, 2.5vw, 38px); margin-top: 34px; gap: 20px; }
.contact-intro .contact-email svg { width: 22px; height: 22px; }
.contact-intro .contact-address { color: var(--muted); font-size: 14px; line-height: 1.9; margin-top: 31px; font-style: normal; }
.contact-accordion { border-top: 1px solid var(--line); }
.contact-route { border-bottom: 1px solid var(--line); }
.contact-route > summary { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 8px 27px; padding: 27px 1px 27px 0; min-height: 91px; list-style: none; cursor: pointer; font-size: 24px; line-height: 1.3; letter-spacing: -.035em; }
.contact-route > summary::-webkit-details-marker { display: none; }
.contact-route > summary::after { content: '+'; grid-column: 2; grid-row: 1 / 3; justify-self: end; align-self: center; color: var(--copper); font-size: 28px; font-weight: 400; line-height: 1; }
.contact-route[open] > summary::after { content: '−'; }
.contact-route > summary:hover { color: #d9b99f; }
.contact-route .route-title { display: block; grid-column: 1; grid-row: 1; font-size: inherit; line-height: inherit; }
.contact-route .route-description, .contact-route summary small { display: block; grid-column: 1; grid-row: 2; max-width: 490px; color: var(--muted); font-size: 12px; line-height: 1.8; letter-spacing: 0; margin-top: 0; }
.contact-form-intro { padding-block: 22px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.8; }
.contact-route > summary > span[aria-hidden='true'] { display: none; }
.contact-form-slot { padding-top: 9px; padding-bottom: 34px; }
.contact-form-slot:empty { display: none; }
.contact-form-slot > p { font-size: 14px; line-height: 1.8; color: var(--muted); margin-bottom: 25px; }
.contact-form-slot .field input, .contact-form-slot .field select, .contact-form-slot .field textarea { background: rgba(7,28,25,.29); }
.contact-form-slot .form-actions .button { min-width: 0; }
.careers-section { position: relative; background: var(--mid); padding-block: clamp(80px, 8vw, 128px); }
.careers-layout { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(50px, 8vw, 130px); align-items: center; }
.careers-copy .section-label { margin-bottom: 26px; }
.careers-copy h2 { font-size: clamp(45px, 5.1vw, 79px); line-height: 1.11; letter-spacing: -.058em; max-width: 14ch; }
.careers-copy p { max-width: 650px; font-size: 17px; color: #c0d1c5; line-height: 1.85; margin-top: 28px; }
.careers-action { max-width: 520px; }
.careers-action > p { font-size: 15px; color: #c0d1c5; line-height: 1.9; margin-bottom: 28px; }
.careers-action .actions { margin-top: 0; }
.careers-section .career-block { max-width: 520px; margin-left: 0; }
.careers-section .contact-form-slot { padding-top: 29px; }
.site-footer { background: var(--ink); }

@media (min-width: 1900px) {
  .hero h1 { font-size: 128px; }
  .hero-intro { font-size: 19px; max-width: 580px; }
  .hero-grid { padding-bottom: 170px; }
  .project-name { font-size: 133px; }
  .project-story { bottom: 72px; }
}

@media (max-width: 1300px) {
  .masthead-caption { display: none; }
  .masthead-inner { gap: 30px; }
  .desktop-nav { gap: 27px; }
  .hero h1 { font-size: clamp(64px, 8.2vw, 108px); }
  .approach-head { grid-template-columns: 1.1fr .9fr; gap: 65px; }
  .discipline-list { gap: 27px; }
  .discipline { padding-right: 5px; }
  .project-story { grid-template-columns: 1.25fr .8fr; gap: 50px; }
  .project-name { font-size: 90px; }
  .project-detail-group { padding: 25px; }
  .community-head { gap: 70px; }
  .portal-orbits { right: -17%; width: 67vw; }
}

@media (max-width: 1000px) {
  :root { --header: 90px; }
  .desktop-nav { display: none; }
  .masthead-actions { margin-left: auto; }
  .menu-toggle { display: inline-flex; }
  .masthead-caption { display: flex; }
  .masthead .brand img { width: 140px; }
  .masthead .button { min-height: 44px; }
  .hero { min-height: 790px; }
  .hero h1 { font-size: clamp(64px, 8.4vw, 84px); }
  .hero-grid { padding-top: 165px; padding-bottom: 150px; }
  .hero-intro { max-width: 470px; }
  .approach-head { grid-template-columns: 1fr; gap: 33px; }
  .approach-head h2 { max-width: 17ch; font-size: 65px; }
  .approach-copy { max-width: 680px; }
  .discipline-list { grid-template-columns: 1fr 1fr; gap: 40px 47px; margin-top: 59px; }
  .discipline h3 { font-size: 28px; min-height: 0; max-width: none; }
  .project-stage { min-height: 770px; }
  .project-stage-inner { padding-top: calc(var(--header) + 29px); }
  .project-tabs button { padding-inline: 17px; }
  .project-story { grid-template-columns: 1fr .95fr; gap: 30px; bottom: 45px; }
  .project-name { font-size: 74px; }
  .project-detail-group { padding: 23px; }
  .project-description { font-size: 14px; }
  .project-place { font-size: 10px; }
  .project-progress { width: 100px; }
  .project-bottom { gap: 23px; }
  .community-head { grid-template-columns: 1fr; gap: 35px; }
  .community-head h2 { max-width: 14ch; font-size: 68px; }
  .community-intro { max-width: 690px; }
  .community-topics { gap: 0 45px; margin-top: 59px; }
  .community-topics summary { font-size: 20px; }
  .portal-copy { max-width: 650px; }
  .portal-copy h2 { font-size: 69px; }
  .portal-orbits { right: -34%; width: 88vw; opacity: .48; }
  .news-list { gap: 28px; }
  .news-list h3 { font-size: 27px; }
  .contact-heading { gap: 50px; }
  .contact-heading h2 { font-size: 66px; }
  .contact-grid { gap: 48px; }
  .footer-nav { max-width: 430px; gap: 15px 26px; }
}

@media (max-width: 740px) {
  :root { --gutter: 24px; --header: 80px; }
  h2 { font-size: 42px; }
  .section { padding-block: 77px; }
  .masthead-inner { gap: 16px; }
  .masthead .brand img { width: 123px; }
  .masthead-caption { display: none; }
  .masthead-actions { gap: 10px; }
  .masthead .button { padding: 11px 14px; min-height: 42px; font-size: 11px; gap: 12px; }
  .masthead .button svg { display: none; }
  .menu-toggle { width: 42px; height: 42px; }
  .hero { height: auto; min-height: 100svh; max-height: none; }
  .hero-grid { min-height: 100svh; padding-top: 172px; padding-bottom: 156px; align-items: end; }
  .hero-copy { width: 100%; }
  .hero-copy .eyebrow, .hero-copy .section-label { font-size: 9px; letter-spacing: .13em; margin-bottom: 24px; gap: 12px; }
  .hero-copy .eyebrow::before, .hero-copy .section-label::before { width: 22px; }
  .hero h1 { font-size: clamp(50px, 11.8vw, 83px); letter-spacing: -.063em; line-height: 1.06; }
  .hero-intro { max-width: 450px; font-size: 15px; line-height: 1.75; margin-top: 25px; }
  .hero-poster, .hero-film { object-position: 63% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(7,28,25,.6), rgba(7,28,25,.3)), linear-gradient(180deg, rgba(7,28,25,.45), rgba(7,28,25,.25) 30%, rgba(7,28,25,.64) 62%, rgba(7,28,25,.92)); }
  .hero-actions { gap: 20px; margin-top: 29px; }
  .hero-actions .button { font-size: 12px; gap: 22px; min-height: 50px; padding: 14px 20px; }
  .hero-actions .text-link { font-size: 12px; gap: 14px; }
  .hero-bottom { bottom: 25px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 18px; align-items: center; }
  .scroll-cue { font-size: 8px; letter-spacing: .1em; grid-column: 1; grid-row: 1; gap: 10px; }
  .scroll-cue::before { height: 19px; }
  .hero-media-caption { grid-column: 1; grid-row: 2; margin-left: 0; font-size: 9px; line-height: 1.45; }
  .hero-motion { grid-column: 2; grid-row: 1 / 3; min-height: 44px; padding: 10px 13px; font-size: 10px; }
  .section-label { font-size: 9px; letter-spacing: .14em; gap: 12px; }
  .section-label::before { width: 24px; }
  .approach > .wrap > .section-label { margin-bottom: 30px; }
  .approach-head { gap: 28px; }
  .approach-head h2 { max-width: 14ch; font-size: clamp(41px, 9.4vw, 60px); }
  .approach-copy { font-size: 15px; line-height: 1.85; }
  .discipline-list { grid-template-columns: 1fr 1fr; gap: 33px 26px; margin-top: 48px; }
  .discipline { padding-top: 23px; }
  .discipline h3 { font-size: 25px; min-height: 2.3em; line-height: 1.16; }
  .discipline p { font-size: 13px; margin-top: 16px; line-height: 1.85; }
  .projects { height: auto; scroll-margin-top: 0; }
  .project-stage { position: relative; top: auto; height: calc(100svh - var(--header)); min-height: 680px; }
  .project-stage-inner { padding-top: 35px; padding-bottom: 25px; min-height: 0; }
  .project-top { display: block; }
  .project-tabs { margin-top: 22px; gap: 4px; width: fit-content; max-width: 100%; padding: 4px; }
  .project-tabs button { font-size: 11px; min-height: 40px; padding: 10px 18px; }
  .project-content-layer { margin-top: 24px; min-height: 0; }
  .project-story { grid-template-columns: 1fr; align-items: start; gap: 19px; bottom: 22px; transform: translateY(9px); }
  .project-title-group { padding-bottom: 0; }
  .project-place { font-size: 10px; letter-spacing: .13em; margin-bottom: 13px; }
  .project-name { font-size: clamp(53px, 13vw, 85px); line-height: 1; }
  .project-title-group > p:last-child:not(.project-place) { font-size: 13px; margin-top: 14px; }
  .project-detail-group { justify-self: stretch; width: 100%; max-width: 500px; background: rgba(14,44,40,.62); border-top: 1px solid rgba(220,237,225,.17); padding: 5px 18px; }
  .project-description { display: none; }
  .project-mobile-context { display: block; padding-block: 22px; border-top: 1px solid var(--line); background: var(--green); }
  .project-mobile-context p { max-width: 42ch; min-height: 5.1em; color: #d2ddd3; font-size: 14px; line-height: 1.7; }
  .project-links { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 15px; margin-top: 0; }
  .project-links .text-link { font-size: 11px; min-height: 44px; width: 100%; gap: 12px; border: 0; }
  .project-links .text-link:last-child { border: 0; }
  .project-shade { background: linear-gradient(180deg, rgba(7,28,25,.8), rgba(7,28,25,.05) 25%, rgba(7,28,25,.09) 40%, rgba(7,28,25,.65) 63%, rgba(7,28,25,.97)); }
  .project-scene img, .project-scene video { object-position: 57% center; }
  .project-bottom { display: flex; flex-wrap: wrap; gap: 14px 15px; align-items: center; }
  .project-caption { font-size: 9px; max-width: 215px; margin: 0; }
  .project-progress { display: none; }
  .project-controls { order: -1; width: 100%; justify-content: space-between; }
  .next-project { min-height: 44px; padding: 12px 16px; gap: 17px; font-size: 11px; }
  .project-film-toggle { min-height: 44px; font-size: 10px; grid-column: 1; grid-row: 2; justify-self: start; }
  .community-head { gap: 28px; }
  .community-head h2 { font-size: clamp(43px, 9.8vw, 65px); max-width: 12ch; }
  .community-head .section-label { margin-bottom: 26px; }
  .community-intro { font-size: 15px; line-height: 1.85; }
  .community-topics { grid-template-columns: 1fr; gap: 0; margin-top: 43px; }
  .community-topics summary { font-size: 20px; padding-block: 23px; gap: 23px; }
  .community-topics details > p, .community-topics .answer { font-size: 14px; padding-right: 0; }
  .community-topics + .actions { margin-top: 33px; }
  .portal-section { padding-block: 86px 91px; }
  .portal-copy h2 { font-size: clamp(43px, 10.1vw, 68px); max-width: 12ch; }
  .portal-copy p { font-size: 15px; line-height: 1.85; max-width: 440px; margin-top: 25px; }
  .portal-copy .actions { margin-top: 28px; }
  .portal-orbits { width: 125vw; right: -70%; opacity: .37; }
  .section-heading { display: block; margin-bottom: 37px; }
  .section-heading h2 { font-size: 43px; max-width: 15ch; }
  .section-heading > .text-link { margin-top: 21px; }
  .news-list { grid-template-columns: 1fr; gap: 37px; }
  .news-list article { padding-top: 23px; }
  .news-list time { font-size: 11px; margin-bottom: 18px; }
  .news-list h3 { font-size: 28px; max-width: 29ch; }
  .news-list p { margin-top: 16px; font-size: 14px; }
  .news-list .text-link { margin-top: 18px; }
  .contact-section { padding-bottom: 70px; }
  .contact-heading { grid-template-columns: 1fr; gap: 26px; }
  .contact-heading h2 { font-size: clamp(50px, 11vw, 73px); max-width: 12ch; }
  .contact-heading p { font-size: 15px; line-height: 1.85; }
  .contact-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 36px; }
  .contact-email { font-size: clamp(29px, 7.1vw, 44px); margin-top: 28px; }
  .contact-email { gap: 20px; }
  .contact-email svg { width: 21px; height: 21px; }
  .contact-actions { gap: 13px; margin-top: 27px; }
  .contact-actions .button { min-height: 46px; font-size: 11px; padding: 12px 19px; gap: 16px; }
  .contact-aside { margin-left: 0; max-width: none; }
  .career-block { margin-left: 0; max-width: none; padding-top: 25px; }
  .career-block h3 { font-size: 27px; }
  .career-block p { font-size: 14px; }
  .contact-routes { margin-top: 25px; gap: 12px; }
  .contact-routes .button { min-height: 44px; font-size: 10px; gap: 17px; padding-inline: 17px; }
  .contact-details p, .contact-details address, .contact-aside p, .contact-aside address { font-size: 13px; }
  .contact-dialog, .privacy-dialog, dialog.modal-shell { width: calc(100% - 24px); max-height: calc(100svh - 24px); }
  .modal-top { padding: 25px 23px 21px; gap: 20px; }
  .modal-top h2 { font-size: 31px; }
  .modal-top p { font-size: 13px; margin-top: 13px; }
  .modal-body { padding: 0 23px 29px; }
  .form-grid { grid-template-columns: 1fr; gap: 22px; }
  .field label { font-size: 13px; }
  .field input, .field select, .field textarea { min-height: 51px; font-size: 16px; }
  .form-privacy { font-size: 12px; margin-top: 21px; }
  .form-actions { margin-top: 24px; }
  .form-status { font-size: 13px; }
  .site-footer { padding-top: 35px; padding-bottom: 23px; }
  .footer-top { flex-direction: column; gap: 31px; padding-bottom: 31px; }
  .footer-top > p { margin-inline: 0; font-size: 12px; }
  .footer-top .brand img { width: 130px; }
  .footer-nav { justify-content: flex-start; gap: 11px 25px; max-width: none; padding-top: 0; }
  .footer-nav a, .footer-nav button { font-size: 11px; }
  .footer-company { font-size: 11px; }
  .footer-bottom { gap: 20px 26px; flex-wrap: wrap; padding-top: 22px; }
  .footer-bottom > p, .footer-bottom > small { font-size: 10px; }
  .footer-bottom > span, .footer-bottom > a, .footer-bottom > button { font-size: 10px; }
  .footer-bottom > span { flex-basis: 100%; }
  .footer-bottom-links { gap: 20px; margin-left: auto; }
  .dcs-badge { width: 116px; min-width: 116px; }
  .dcs-badge img { width: 116px; }
  .dcs-badge span { font-size: 7px; padding-left: 30px; }
}

@media (max-width: 390px) {
  :root { --gutter: 20px; }
  .masthead .brand img { width: 108px; }
  .masthead-actions { gap: 8px; }
  .masthead .button { padding-inline: 10px; font-size: 10px; white-space: nowrap; }
  .menu-toggle { width: 40px; height: 40px; }
  .hero h1 { font-size: clamp(42px, 12vw, 46px); }
  .hero-grid { padding-top: 160px; padding-bottom: 147px; }
  .hero-intro { font-size: 14px; }
  .hero-actions { gap: 18px; }
  .hero-actions .button { padding-inline: 17px; font-size: 11px; gap: 17px; }
  .hero-actions .text-link { font-size: 11px; }
  .hero-motion { font-size: 9px; padding-inline: 11px; }
  .discipline-list { gap: 31px 22px; }
  .discipline h3 { font-size: 23px; }
  .discipline p { font-size: 12px; }
  .project-tabs button { padding-inline: 15px; font-size: 10px; }
  .project-stage { min-height: 680px; }
  .project-name { font-size: 51px; }
  .project-detail-group { padding: 5px 16px; }
  .project-links { gap: 13px; }
  .project-links .text-link { font-size: 10px; gap: 12px; }
  .project-caption { max-width: 167px; }
  .next-project { padding-inline: 13px; gap: 13px; font-size: 10px; }
  .footer-bottom > p, .footer-bottom > small { flex-basis: 100%; }
  .footer-bottom-links { margin-left: 0; }
  .dcs-badge { margin-left: auto; }
}

@media (max-height: 760px) and (min-width: 741px) {
  :root { --header: 88px; }
  .hero { min-height: 690px; }
  .hero h1 { font-size: clamp(64px, 7.8vw, 95px); }
  .hero-grid { padding-top: 148px; padding-bottom: 140px; }
  .hero-intro { margin-top: 23px; font-size: 16px; }
  .hero-actions { margin-top: 25px; }
  .project-stage { min-height: 680px; }
  .project-stage-inner { padding-top: 116px; padding-bottom: 23px; }
  .project-story { bottom: 31px; }
  .project-content-layer { min-height: 395px; margin-top: 25px; }
  .project-name { font-size: 85px; }
  .project-detail-group { padding: 21px 24px; }
  .project-description { font-size: 14px; }
  .project-links { margin-top: 15px; }
}

@media screen and (min-width: 741px) {
  .approach, .communities, .contact-section { min-height: 100svh; display: flex; align-items: center; }
}

@media (max-width: 1100px) and (min-width: 741px) {
  .hero-shade { background: linear-gradient(90deg, rgba(7,28,25,.76), rgba(7,28,25,.38)), linear-gradient(180deg, rgba(7,28,25,.2), rgba(7,28,25,.1) 30%, rgba(7,28,25,.28) 58%, rgba(7,28,25,.76)); }
  .development-process { grid-template-columns: minmax(185px, .72fr) minmax(0, 1.28fr); column-gap: 45px; row-gap: 17px; align-items: start; }
  .process-tabs { grid-column: 1; grid-row: 1 / 3; margin-top: 21px; }
  .process-visual { grid-column: 2; grid-row: 1; min-height: 280px; }
  .process-diagram { max-height: 320px; max-width: 470px; }
  .process-panels { grid-column: 2; grid-row: 2; min-height: 300px; max-width: 520px; }
  .process-panel h3 { font-size: 35px; margin-bottom: 19px; }
  .process-panel p { font-size: 14px; }
  .process-tab-title { font-size: 18px; }
  .process-meter { margin-top: 20px; }
  .contact-layout { gap: 50px; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .contact-intro h2 { font-size: 65px; }
  .contact-intro .contact-email { font-size: 25px; gap: 15px; }
  .contact-intro .contact-email svg { width: 18px; height: 18px; }
  .contact-route > summary { font-size: 21px; padding-block: 25px; }
  .contact-form-slot .form-grid { grid-template-columns: 1fr; }
  .careers-layout { gap: 60px; }
}

@media (max-width: 740px) {
  .hero h1 > span { max-width: 100%; text-wrap: balance; }
  .development-process { grid-template-columns: 1fr; gap: 25px; margin-top: 43px; }
  .process-tabs { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 0; border-bottom: 1px solid var(--line); gap: 4px; }
  .process-tab { min-width: 0; min-height: 87px; padding: 12px 4px 16px; flex-direction: column; align-items: center; justify-content: flex-start; gap: 10px; border: 0; text-align: center; }
  .process-tab::before { inset: auto 0 -1px; width: 100%; height: 1px; transform: scaleX(.25); }
  .process-tab.is-active, .process-tab[aria-selected='true'] { padding-left: 4px; background: rgba(245,245,239,.025); }
  .process-tab.is-active::before, .process-tab[aria-selected='true']::before { transform: scaleX(1); }
  .process-number { min-width: 0; font-size: 9px; }
  .process-tab-title { font-size: 11px; letter-spacing: -.02em; line-height: 1.45; max-width: 10ch; }
  .process-tab-title { display: none; }
  .process-tab-short { display: block; max-width: 100%; font-size: clamp(8px, 2.1vw, 10px); line-height: 1.45; letter-spacing: -.02em; hyphens: none; overflow-wrap: normal; }
  .process-tab > svg { display: none; }
  .process-visual { grid-column: 1; grid-row: 2; min-height: 245px; width: 100%; max-width: 450px; margin-inline: auto; }
  .process-diagram { max-height: 295px; }
  .process-panels { grid-column: 1; grid-row: 3; min-height: 310px; width: 100%; max-width: 570px; margin-inline: auto; }
  .process-panel h3 { font-size: 34px; max-width: 17ch; line-height: 1.15; margin-bottom: 19px; }
  .process-panel p { font-size: 14px; line-height: 1.9; max-width: none; }
  .process-step-label { font-size: 9px; margin-bottom: 14px; }
  .process-panel .process-note { margin-top: 20px; padding-top: 19px; font-size: 11px; }
  .process-next { font-size: 12px; margin-top: 23px; }
  .process-meter { grid-column: 1; grid-row: 4; margin-top: 2px; }
  .community-topics { gap: 34px; margin-top: 43px; }
  .community-topic { padding-top: 25px; }
  .community-topic h3 { font-size: 25px; margin-bottom: 15px; }
  .community-topic .topic-summary { font-size: 14px; line-height: 1.85; }
  .community-topic > details { margin-top: 9px; }
  .community-topic > details > summary { padding-block: 8px; font-size: 11px; }
  .community-topic .topic-detail { font-size: 13px; padding-top: 18px; }
  .community-contact-note { font-size: 13px; margin-top: 33px; padding-top: 24px; }
  .selection-note { margin-top: 9px; font-size: 10px; line-height: 1.5; max-width: 300px; }
  .project-arrow { width: 44px; height: 44px; top: 40%; background: rgba(7,28,25,.48); }
  .project-arrow.is-previous { left: 9px; }
  .project-arrow.is-next { right: 9px; }
  .project-arrow svg { width: 17px; height: 17px; }
  .news-image-link { margin-bottom: 22px; }
  .news-image { aspect-ratio: 1.6; }
  .news-intro { font-size: 14px; margin-top: 21px; line-height: 1.85; }
  .news-list .news-summary { font-size: 13px; line-height: 1.85; margin-top: 16px; }
  .contact-layout { grid-template-columns: 1fr; gap: 47px; }
  .contact-intro > .section-label { margin-bottom: 25px; }
  .contact-intro h2 { font-size: clamp(51px, 11.2vw, 72px); margin-bottom: 23px; }
  .contact-intro > p { font-size: 15px; line-height: 1.85; }
  .contact-intro .contact-email { font-size: clamp(27px, 7vw, 37px); gap: 18px; margin-top: 27px; }
  .contact-intro .contact-email svg { width: 20px; height: 20px; }
  .contact-intro .contact-address { font-size: 13px; margin-top: 25px; }
  .contact-route > summary { min-height: 82px; padding-block: 24px; font-size: 22px; gap: 7px 22px; }
  .contact-route .route-description, .contact-route summary small { font-size: 11px; margin-top: 0; }
  .contact-form-intro { font-size: 12px; padding-block: 20px; }
  .contact-form-slot { padding-top: 7px; padding-bottom: 29px; }
  .contact-form-slot .form-grid { grid-template-columns: 1fr; gap: 22px; }
  .careers-section { padding-block: 74px 80px; }
  .careers-layout { grid-template-columns: 1fr; gap: 32px; }
  .careers-copy h2 { font-size: clamp(41px, 9.5vw, 61px); max-width: 15ch; }
  .careers-copy p { font-size: 15px; line-height: 1.85; margin-top: 25px; }
  .careers-action > p { font-size: 14px; line-height: 1.85; margin-bottom: 23px; }
  .careers-action .actions { gap: 17px 24px; }
  .careers-section .career-block { max-width: none; width: 100%; }
}

@media (max-width: 350px) {
  .hero h1 { font-size: 38px; }
  .process-tabs { gap: 1px; }
  .process-tab { padding-inline: 2px; }
  .process-tab.is-active, .process-tab[aria-selected='true'] { padding-left: 2px; }
  .process-tab-title { font-size: 10px; }
  .process-tab-short { font-size: 9px; }
  .process-number { font-size: 8px; }
  .process-visual { min-height: 220px; }
  .process-panel h3 { font-size: 31px; }
  .contact-intro .contact-email { font-size: 25px; gap: 14px; }
  .contact-intro .contact-email svg { width: 17px; height: 17px; }
  .contact-route > summary { font-size: 20px; }
}

/* Reserve the current descriptions' line count so changing projects stays steady. */
@media (max-width: 374px) {
  .project-mobile-context p { min-height: 6.8em; }
}
@media (max-width: 330px) {
  .project-mobile-context p { min-height: 8.5em; }
}

/* October alignment pass: shared editorial columns and an explicit overview control. */
.approach { --process-columns: minmax(190px, .83fr) minmax(280px, 1.15fr) minmax(250px, 1fr); --process-gap: clamp(30px, 4vw, 70px); }
.approach-head, .development-process { grid-template-columns: var(--process-columns); column-gap: var(--process-gap); }
.approach-head { align-items: start; }
.approach-head > h2 { grid-column: 1 / 3; }
.approach-copy { grid-column: 3; max-width: none; align-self: start; }
.process-sidebar { grid-column: 1; align-self: center; min-width: 0; }
.process-sidebar .process-tabs { margin-top: 0; }
.process-controls { margin-top: 23px; }
.process-play { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 44px; padding: 12px 17px; border: 1px solid rgba(188,137,109,.43); border-radius: 50px; background: rgba(7,28,25,.13); color: #dcc5af; font-size: 12px; line-height: 1.35; }
.process-play:hover { background: rgba(7,28,25,.32); border-color: var(--copper); }
.process-play[aria-pressed='true'] { color: var(--paper); border-color: #b9997d; background: rgba(7,28,25,.29); }
.process-play-icon { display: inline-flex; align-items: center; justify-content: center; width: 11px; height: 12px; color: var(--copper); flex-shrink: 0; }
.process-play-icon:empty::before { content: ''; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid currentColor; }
.process-play[aria-pressed='true'] .process-play-icon:empty::before { width: 7px; height: 10px; border: 0; border-left: 2px solid currentColor; border-right: 2px solid currentColor; }
.process-play-icon svg { width: 11px; height: 12px; }
.process-controls p, .process-hint { max-width: 265px; font-size: 11px; line-height: 1.8; color: var(--muted); margin-top: 13px; }
.process-timing { height: 1px; max-width: 265px; overflow: hidden; background: rgba(220,237,225,.1); margin-top: 15px; }
.process-timing > span { display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left; background: var(--copper); opacity: .45; }
.development-process.is-playing .process-timing > span, .process-controls.is-playing .process-timing > span { opacity: 1; }
.process-static { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 40px; margin-top: 50px; }
.process-static article { border-top: 1px solid var(--line); padding-top: 25px; }
.process-static h3 { font-size: 27px; margin-bottom: 18px; }
.process-static p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.process-caption { max-width: 365px; margin-inline: auto; color: #d0ddd2; font-size: 13px; line-height: 1.65; letter-spacing: -.012em; text-align: center; }
.process-outcome { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 23px; }
.process-outcome > span { display: block; color: var(--muted); font-size: 9px; line-height: 1.5; letter-spacing: .11em; text-transform: uppercase; }
.process-outcome > strong { display: block; margin-top: 7px; color: #dec5ae; font-size: 16px; line-height: 1.45; font-weight: 400; letter-spacing: -.015em; }
.diagram-secondary { fill: rgba(23,69,61,.33); stroke: #769984; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.diagram-context { fill: rgba(7,28,25,.2); stroke: #648574; stroke-width: .8; stroke-linecap: round; stroke-linejoin: round; opacity: .68; }
.diagram-plan .diagram-label { font-size: 13px; }
.diagram-label--mobile, .diagram-mobile { display: none; }

.communities { --editorial-gap: clamp(45px, 6vw, 100px); }
.community-head, .community-topics { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--editorial-gap); }
.community-head { align-items: start; }
.community-intro { align-self: start; max-width: none; padding-top: 43px; }

.portal-orbits { width: min(1560px, 122vw); right: max(-970px, -76vw); top: 55%; opacity: .66; }
.portal-orbits::before, .portal-orbits::after, .portal-orbits i, .portal-orbits span { border-color: rgba(188,137,109,.25); }
.portal-orbits i:nth-child(2), .portal-orbits i:nth-child(3), .portal-orbits span { display: none; }

.company-section { background: radial-gradient(ellipse at 83% 24%, rgba(41,86,70,.38), transparent 64%), linear-gradient(135deg, var(--ink) 0%, #0b2923 58%, #123a30 100%); padding-block: clamp(86px, 8vw, 132px); }
.company-section > .wrap > .section-label { margin-bottom: 37px; }
.company-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(45px, 6vw, 100px); align-items: start; }
.company-copy h2 { max-width: 15ch; font-size: clamp(43px, 4.9vw, 78px); line-height: 1.12; letter-spacing: -.056em; }
.company-copy > p { max-width: 600px; margin-top: 26px; color: #c5d5cc; font-size: 17px; line-height: 1.85; }
.company-context { color: #c5d5cc; font-size: 16px; line-height: 1.9; }
.company-context > * + * { margin-top: 23px; }
.company-context h3 { color: var(--paper); font-size: 27px; line-height: 1.25; margin-bottom: 22px; }
.company-context .text-link { color: #dbc0a7; margin-top: 28px; }
.partner-section { position: relative; background: var(--ink); padding-block: clamp(85px, 8vw, 132px); }
.partner-section > .wrap > .section-label { margin-bottom: 35px; }
.partner-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(50px, 8vw, 130px); align-items: center; }
.partner-copy h2 { max-width: 15ch; font-size: clamp(43px, 5.1vw, 79px); line-height: 1.11; letter-spacing: -.058em; }
.partner-copy p { max-width: 650px; margin-top: 27px; font-size: 17px; line-height: 1.85; color: var(--muted); }
.partner-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 23px; max-width: 520px; }
.partner-actions > p { font-size: 15px; line-height: 1.9; color: var(--muted); }
.partner-actions .actions { margin-top: 0; }
.careers-section { background: radial-gradient(ellipse at 100% 0%, rgba(188,137,109,.22), transparent 58%), radial-gradient(ellipse at 72% 90%, var(--mid), transparent 65%), linear-gradient(115deg, var(--ink) 0%, var(--green) 48%, var(--mid) 100%); }
.contact-section { background: var(--green); padding-block: clamp(86px, 8vh, 124px); }
.site-footer { background: var(--ink); }

@media (min-width: 1101px) {
  .development-process .process-visual { grid-column: 2; }
  .development-process .process-panels { grid-column: 3; }
}

@media (max-width: 1100px) and (min-width: 741px) {
  .approach { --process-columns: minmax(185px, .72fr) minmax(0, 1.28fr); --process-gap: 45px; }
  .approach-head > h2 { grid-column: 1; font-size: clamp(40px, 4.5vw, 51px); max-width: none; }
  .approach-copy { grid-column: 2; font-size: 15px; }
  .process-sidebar { grid-column: 1; grid-row: 1 / 3; align-self: start; padding-top: 21px; }
  .process-sidebar .process-tabs { display: flex; }
  .community-head h2 { font-size: clamp(43px, 4.7vw, 55px); }
  .community-intro { font-size: 15px; }
  .company-copy h2 { font-size: 48px; }
  .company-context { font-size: 15px; }
  .partner-layout { gap: 60px; }
  .partner-copy h2 { font-size: 53px; }
}

@media (max-width: 740px) {
  .approach-head, .development-process { grid-template-columns: minmax(0, 1fr); }
  .approach-head > h2, .approach-copy { grid-column: 1; }
  .approach-copy { max-width: 680px; }
  .process-sidebar { grid-column: 1; grid-row: 1; align-self: start; }
  .process-controls { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 17px; row-gap: 12px; margin-top: 20px; }
  .process-play { font-size: 11px; min-height: 44px; padding: 11px 14px; gap: 10px; white-space: nowrap; }
  .process-controls p, .process-hint { margin-top: 0; font-size: 10px; line-height: 1.7; max-width: none; }
  .process-timing { grid-column: 1 / -1; margin-top: 0; max-width: none; }
  .process-caption { max-width: 325px; font-size: 12px; line-height: 1.7; }
  .process-diagram .diagram-annotation:not(.has-mobile-label), .process-diagram .diagram-label--desktop, .process-diagram .diagram-plan-rule { display: none; }
  .process-diagram .diagram-label--mobile, .process-diagram .diagram-mobile { display: block; }
  .process-diagram .diagram-label--mobile { font-size: 22px; letter-spacing: 0; fill: #dce7dd; }
  .process-outcome { padding-top: 15px; margin-top: 21px; }
  .process-outcome > strong { font-size: 15px; }
  .community-head, .community-topics { grid-template-columns: minmax(0, 1fr); }
  .community-intro { padding-top: 0; max-width: 690px; }
  .portal-orbits { width: 250vw; right: -178vw; top: 60%; opacity: .49; }
  .company-section { padding-block: 76px 82px; }
  .company-section > .wrap > .section-label { margin-bottom: 28px; }
  .company-layout { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .company-copy h2 { font-size: clamp(41px, 9.7vw, 62px); max-width: 15ch; }
  .company-copy > p { font-size: 15px; margin-top: 23px; }
  .company-context { font-size: 15px; line-height: 1.85; }
  .company-context > * + * { margin-top: 20px; }
  .company-context h3 { font-size: 25px; }
  .company-context .text-link { margin-top: 23px; }
  .partner-section { padding-block: 76px 83px; }
  .partner-section > .wrap > .section-label { margin-bottom: 28px; }
  .partner-layout { grid-template-columns: minmax(0, 1fr); gap: 31px; }
  .partner-copy h2 { font-size: clamp(41px, 9.5vw, 61px); max-width: 15ch; }
  .partner-copy p { font-size: 15px; line-height: 1.85; margin-top: 24px; }
  .partner-actions { gap: 22px; }
  .partner-actions > p { font-size: 14px; line-height: 1.85; }
  .contact-section { padding-block: 77px 80px; }
}

@media (max-width: 350px) {
  .process-controls { column-gap: 12px; }
  .process-play { font-size: 10px; padding-inline: 12px; gap: 8px; }
  .process-controls p, .process-hint { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .motion-ready .reveal:not(.is-in), .reveal { opacity: 1; transform: none; }
  .projects { height: auto; }
  .project-stage { position: relative; }
}

@media print {
  :root, body { color: #000; background: #fff; }
  .masthead, .scroll-progress, .mobile-menu, .hero-media, .hero-shade, .hero-bottom, .project-backdrops, .project-shade, .project-tabs, .project-bottom, .portal-orbits, .site-footer, .actions, .project-links { display: none !important; }
  .hero, .projects, .project-stage { height: auto; min-height: 0; color: #000; background: #fff; }
  .hero-grid { min-height: 0; padding-block: 25px; }
  .hero h1 { font-size: 44px; }
  .hero-intro, .accent { color: #000; }
  .section, .portal-section { background: #fff; padding-block: 25px; }
  .project-stage-inner { padding-block: 20px; }
  .project-story { position: relative; opacity: 1; visibility: visible; transform: none; margin-bottom: 25px; }
  .project-detail-group { background: #fff; color: #000; border: 0; }
  .project-name { font-size: 38px; }
  .project-description, .approach-copy, .discipline p, .community-intro, .news-list p, .contact-heading p { color: #000; }
  .reveal, .motion-ready .reveal:not(.is-in) { opacity: 1; transform: none; }
}
/* Integrated invitations and the existing Atlas base map. */
@media screen {
  .portal-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(36px, 5vw, 88px); }
  .portal-copy h2 { font-size: clamp(45px, 4.5vw, 76px); }
  .portal-copy .portal-access-note { font-size: 13px; color: var(--muted); margin-top: 18px; max-width: 43ch; }
  .portal-map { position: relative; min-width: 0; margin: 0; }
  .portal-map img { display: block; width: 100%; height: clamp(430px, 39vw, 650px); object-fit: cover; object-position: 59% 42%; opacity: .88; mask-image: radial-gradient(ellipse at 55% 49%, #000 48%, transparent 76%); }
  .portal-map figcaption { text-align: right; margin-top: 15px; font-size: 9px; line-height: 1.6; color: var(--muted); opacity: .85; }
  .portal-map figcaption a { text-decoration: underline; text-underline-offset: 3px; }
  .partner-section { padding-block: clamp(110px, 10vw, 170px); background: radial-gradient(ellipse at 74% 34%, rgba(23,69,61,.32), transparent 58%), var(--ink); }
  .partner-layout { align-items: start; }
  .partner-actions { gap: 21px; max-width: none; }
  .development-study, .discipline-study { width: 100%; margin: 0 0 18px; }
  .development-study svg, .discipline-study svg { width: 100%; height: auto; max-height: 290px; display: block; }
  .study-grid { stroke: #739486; stroke-width: .8; opacity: .3; }
  .study-building { stroke: #a5bbaa; stroke-width: 1.2; }
  .study-copper { stroke: var(--copper); stroke-width: 1.3; }
  .study-copper circle { fill: var(--ink); }
  .development-study figcaption, .discipline-study figcaption { color: var(--muted); font-size: 11px; line-height: 1.7; margin-top: 17px; }
  .partner-topics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(28px, 4vw, 70px); margin-top: 85px; }
  .partner-topics article { border-top: 1px solid rgba(220,237,225,.2); padding-top: 24px; }
  .partner-topics span { color: var(--copper); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
  .partner-topics h3 { font-size: clamp(20px,1.75vw,27px); font-weight: 400; letter-spacing: -.03em; margin: 18px 0 14px; }
  .partner-topics p { color: var(--muted); font-size: 14px; line-height: 1.8; max-width: 38ch; }
  .careers-section { padding-block: clamp(115px,10vw,170px); }
  .careers-layout { align-items: center; gap: clamp(65px,9vw,150px); }
  .career-disciplines { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin-top: 42px; }
  .career-disciplines span { border-top: 1px solid rgba(220,237,225,.23); padding: 18px 0; color: #cbd9cf; font-size: 13px; line-height: 1.6; }
  .discipline-study { margin-bottom: 37px; }
  .discipline-study figcaption { text-align: center; }
  .careers-copy .contact-linkedin { margin-top: 25px; }
}
@media screen and (max-width: 1100px) {
  .portal-layout { grid-template-columns: 1fr; gap: 40px; }
  .portal-copy { max-width: 720px; }
  .portal-map img { height: 440px; object-position: 59% 40%; }
  .partner-layout { gap: 48px; }
  .partner-topics { margin-top: 60px; }
  .careers-layout { gap: 50px; }
}
@media screen and (max-width: 740px) {
  .portal-section, .partner-section, .careers-section { padding-block: 85px; }
  .portal-map img { height: 340px; object-position: 58% 40%; }
  .portal-copy h2 { font-size: clamp(42px,9vw,61px); }
  .partner-topics { grid-template-columns: 1fr; gap: 28px; margin-top: 48px; }
  .partner-topics p { max-width: none; }
  .partner-actions { gap: 22px; }
  .development-study svg, .discipline-study svg { max-height: 235px; }
  .career-disciplines { margin-top: 32px; gap: 0 22px; }
  .career-disciplines span { font-size: 12px; }
  .process-diagram--story .site-key-label { font-size: 23px; }
  .process-diagram--story .site-role-name { font-size: 22px; }
  .process-diagram--story .site-role-task { font-size: 20px; }
}


/* October refinement: interactive models and clearer editorial hierarchy. */
.approach-copy > p,.community-intro > p,.partner-actions > p { color: var(--copper); font-weight: 400; font-size:clamp(17px,1.3vw,23px);line-height:1.7; }
.news-section .section-heading > .text-link,.news-arrow { color: var(--copper); }
.ownership-note { border-top:1px solid #ffffff20;padding-top:20px;font-size:13px!important;color:var(--muted); }
.ownership-note a { color:var(--copper);white-space:nowrap; }
.model-loading .process-diagram--story { visibility:hidden; }
.has-model .process-diagram--story { display:none; }
.facility-view { position:relative;width:100%;height:440px;cursor:grab;touch-action:pan-y;outline-offset:5px; }
.facility-view canvas,.portal-globe canvas { display:block;width:100%;height:100%; }
.facility-view.is-dragging,.portal-globe.is-dragging { cursor:grabbing; }
.model-gesture { position:absolute;bottom:8px;left:0;right:0;text-align:center;color:var(--muted);font-size:10px;pointer-events:none; }
.facility-markers { position:absolute;inset:0;pointer-events:none; }
.facility-markers button { position:absolute;left:0;top:0;transform:translate3d(0,0,0) translate(-50%,-50%);will-change:transform;border:1px solid #dbb18c;color:#f6e5cc;background:#0e2c28;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;padding:0;pointer-events:auto;font-size:12px;box-shadow:0 0 0 5px #071c1940; }
.facility-markers button.is-active { background:#bc896d;color:#071c19; }
.model-features { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid #ffffff20;padding-top:17px; }
.model-features button { background:transparent;border:0;font-family:inherit;cursor:pointer;text-align:left;font-size:12px;line-height:1.5;display:flex;gap:8px;padding:8px 4px;color:#c9d5c9;border-radius:3px;min-height:42px; }
.model-features button span { color:var(--copper);font-size:10px; }
.model-features button.is-active { color:#f2d3b7;background:#bc896d18; }
.model-feature-detail { font-size:12px!important;line-height:1.8!important;color:var(--muted);min-height:70px;margin:18px 0!important; }
.has-model .process-caption { display:none; }
.portal-globe { height:620px;position:relative;cursor:grab;touch-action:pan-y;overflow:hidden;border-radius:50% 0 0 50%; }
.globe-controls { position:absolute;z-index:3;bottom:45px;right:10px;display:flex;gap:6px; }
.globe-controls button { background:#0e2c28d9;border:1px solid #d3aa8740;border-radius:30px;color:var(--copper);min-height:42px;min-width:42px;padding:8px 13px;font-size:12px; }
.globe-status { position:absolute;bottom:8px;right:10px;font-size:10px;color:var(--muted); }
.globe-labels { position:absolute;inset:0;pointer-events:none; }
.globe-labels span { position:absolute;font-size:10px;color:#a1bca1;transform:translate(-50%,-50%);text-shadow:0 1px 4px #071c19;white-space:nowrap; }
.partner-topics { margin-top:40px!important; }
.partner-cta { display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid #ffffff25;padding-top:40px;margin-top:50px; }
.partner-cta > p { max-width:43ch;color:var(--copper); }
.partner-cta .actions { flex-wrap:wrap;margin:0; }
.circuit-study { position:relative;margin:0;width:100%;height:320px;overflow:hidden; }
.circuit-study svg { width:100%;height:100%; }
.circuit-base { stroke:#bc896d;stroke-width:1;opacity:.27;fill:none; }
.circuit-flow { stroke:#d7aa85;stroke-width:2;fill:none;stroke-dasharray:65 900;animation:circuit-flow 9s linear infinite; }
.circuit-study circle { fill:#bc896d;opacity:.65; }
@keyframes circuit-flow { to { stroke-dashoffset:-965; } }
.career-invitation { border-top:1px solid #bc896d60;border-left:1px solid #bc896d50;padding:36px 0 32px 32px;margin-bottom:35px; }
.career-invitation h3 { font-size:clamp(27px,2.5vw,40px);font-weight:400;letter-spacing:-.035em;line-height:1.2;color:var(--copper);margin:23px 0; }
.career-invitation p { color:var(--muted);font-size:14px;line-height:1.8;max-width:39ch; }
@media(max-width:1100px){.portal-globe{height:520px;border-radius:0}.facility-view{height:390px}.partner-cta{align-items:flex-start;flex-direction:column}.partner-layout{gap:35px}}
@media(max-width:740px){.facility-view{height:330px}.model-features{gap:4px}.model-features button{font-size:11px}.portal-globe{height:400px;margin-inline:-15px}.circuit-study{height:235px}.partner-cta{gap:25px;padding-top:30px}.career-invitation{padding-left:23px}.approach-copy > p,.community-intro > p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.circuit-flow{animation:none}}

/* Bounded model and circular globe refinement. */
.facility-view { touch-action:none; }
.model-features button { align-items:center;justify-content:center;text-align:center; }
.model-gesture { bottom:11px;right:83px; }
.model-zoom { position:absolute;bottom:4px;right:4px;display:flex;gap:5px; }
.model-zoom button { width:32px;height:32px;border:1px solid #bc896d60;border-radius:50%;background:#0e2c28;color:var(--copper);font-size:17px;cursor:pointer; }
.portal-globe { border-radius:0;height:clamp(620px,44vw,880px);width:calc(100% + 20vw);overflow:visible; }
.portal-globe canvas { object-fit:fill;max-width:none; }
.portal-globe canvas, .portal-globe .globe-labels { opacity:0; }
.portal-globe.is-ready.is-revealed canvas, .portal-globe.is-ready.is-revealed .globe-labels { opacity:1;animation:globe-reveal 1.2s ease-out both; }
@keyframes globe-reveal { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .portal-globe.is-ready.is-revealed canvas, .portal-globe.is-ready.is-revealed .globe-labels { animation:none; } }
.globe-controls { right:calc(20vw + 10px);bottom:42px; }
.globe-status { right:calc(20vw + 10px);bottom:10px; }
@media(max-width:1100px){.portal-globe{width:100%;height:620px}.globe-controls,.globe-status{right:10px}}
@media(max-width:740px){.portal-globe{width:calc(100% + 30px);height:420px;margin-inline:-15px}.model-gesture{font-size:9px}}

/* Feedback layout: quieter introductions and a model-led process. */
.approach-copy > p, .community-intro > p, .partner-actions > p {
  font-size: clamp(15px, 1.05vw, 18px);
  line-height: 1.75;
}
.development-process { margin-top: 36px; }
.model-features { width: 100%; }
.model-feature-detail { min-height: 44px; margin: 8px 0 !important; }
@media (min-width: 1101px) {
  .approach { --process-columns: minmax(165px, .55fr) minmax(360px, 1.65fr) minmax(270px, .95fr); --process-gap: clamp(24px, 2.5vw, 44px); }
  .approach > .wrap > .section-label { margin-bottom: 30px; }
  .approach-head { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); align-items: center; }
  .approach-head > h2 { grid-column: 1; max-width: 19ch; font-size: clamp(42px, 3.5vw, 66px); }
  .approach-copy { grid-column: 2; max-width: 46ch; justify-self: end; }
  .process-sidebar { align-self: start; padding-top: 65px; }
  .process-tab { min-height: 60px; padding-block: 15px; gap: 12px; }
  .process-tab-title { font-size: 16px; line-height: 1.4; letter-spacing: -.015em; }
  .process-controls { margin-top: 17px; }
  .facility-view { height: clamp(440px, 30vw, 600px); }
  .process-visual { row-gap: 10px; min-height: 0; }
  .development-process .process-panels { align-self: start; padding-top: 65px; }
  .process-panel h3 { font-size: clamp(29px, 2.3vw, 38px); margin-bottom: 20px; }
  .process-panel p { font-size: 14px; line-height: 1.85; }
  .community-intro { padding-top: 38px; }
}
@media (min-width: 741px) and (max-width: 1100px) {
  .approach { --process-columns: minmax(155px, .48fr) minmax(0, 1.52fr); --process-gap: 28px; }
  .approach-head { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .approach-head > h2 { grid-column: 1; font-size: clamp(36px, 4.5vw, 49px); }
  .approach-copy { grid-column: 2; }
  .process-tab { min-height: 61px; padding-block: 15px; gap: 11px; }
  .process-tab-title { font-size: 15px; line-height: 1.4; }
  .facility-view { height: 440px; }
}
@media (max-width: 740px) {
  .approach-copy > p, .community-intro > p, .partner-actions > p { font-size: 15px; }
  .development-process { margin-top: 30px; }
}

/* Laptop composition: compact context at left, an open centre for the model. */
.approach-head { display: block; }
.process-sidebar .approach-copy { margin-top: 24px; max-width: 30ch; }
.process-sidebar .approach-copy > p { font-size: 13px; line-height: 1.8; margin: 0; }
@media (min-width:1101px) {
  .approach > .wrap { width: calc(100% - clamp(64px, 7vw, 144px)); max-width: 1920px; }
  .approach { --process-columns: minmax(175px,.56fr) minmax(0,2.05fr) minmax(285px,.97fr); --process-gap: clamp(24px,2.2vw,42px); }
  .approach-head > h2 { max-width: 22ch; font-size: clamp(40px,3.2vw,62px); }
  .development-process { margin-top: 12px; }
  .process-sidebar, .development-process .process-panels { padding-top: 48px; }
  .facility-view { height: clamp(520px,36vw,660px); margin-bottom: -56px; }
  .facility-view .model-gesture { bottom: 65px; }
  .facility-view .model-zoom { bottom: 61px; }
  .process-visual { row-gap: 6px; }
  .model-features { padding-top: 10px; }
  .model-feature-detail { margin-top: 2px !important; }
  .process-panel h3 { font-size: clamp(28px,2.1vw,36px); }
}
@media (min-width:741px) and (max-width:1100px) {
  .approach-head > h2 { max-width: 24ch; }
  .process-sidebar .approach-copy > p { font-size: 12px; }
}
@media(max-width:740px) {
  .process-sidebar .approach-copy { max-width: none; margin-top: 18px; }
}

/* Lighter introductory voice and more room for the interactive facility. */
@font-face { font-family:'Work Sans Light'; src:url('/media/work-sans-variable.ttf') format('truetype'); font-weight:100 900; font-style:normal; font-display:swap; }
.approach-copy > p, .community-intro > p, .partner-copy > p { font-family:'Work Sans Light','Work Sans',sans-serif; font-weight:350; font-size:clamp(14px,.85vw,16px); line-height:1.8; }
.process-sidebar .approach-copy > p { font-size:13px; font-weight:350; }
.community-topic h3 { color:var(--copper); }
@media(min-width:1101px) {
  .approach { --process-columns:minmax(175px,.5fr) minmax(0,2.4fr) minmax(285px,.85fr); --process-gap:clamp(22px,2vw,38px); }
  .facility-view { height:clamp(560px,39vw,760px); }
  .process-tab-title { font-size:15px; }
  .process-tab { min-height:56px; padding-block:13px; }
  .approach-head > h2 { font-size:clamp(38px,2.8vw,56px); max-width:24ch; }
}

/* Context returns to the header; the left column carries the illustration note. */
.approach-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,.5fr); gap:40px; align-items:center; }
.approach-head .approach-copy { grid-column:2; max-width:48ch; justify-self:end; }
.approach-head .approach-copy > p { font-size:13px; font-weight:350; line-height:1.8; }
.process-sidebar .process-note { text-align:left; margin:22px 0 0; max-width:30ch; font-size:11px; line-height:1.7; }
.community-intro > p { color:var(--paper); }
@media(max-width:740px) { .approach-head { grid-template-columns:1fr;gap:20px; } .approach-head .approach-copy { grid-column:1;justify-self:start;max-width:none; } .process-sidebar .process-note { max-width:none; } }

/* Readable model controls and unobscured editorial images. */
.approach-head .approach-copy > p { color:var(--paper); }
.model-features { position:relative; z-index:2; }
.model-features button { font-size:15px; min-height:48px; padding:10px 8px; }
.model-features button span { font-size:12px; }
.model-feature-detail { font-size:14px!important; }
.facility-view .model-gesture { font-size:12px; }
.news-image { transition:filter 180ms ease; }
.news-image-link::after { transition:opacity 180ms ease; }
.news-image-link:hover .news-image, .news-image-link:focus-visible .news-image { filter:none; }
.news-image-link:hover::after, .news-image-link:focus-visible::after { opacity:0; }
@media(max-width:740px) {
 .model-features { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
 .model-features button { font-size:15px; }
 .model-feature-detail { font-size:14px!important; }
}
@media(prefers-reduced-motion:reduce) { .news-image,.news-image-link::after { transition:none; } }

/* Mobile: model and its explanation stay together; playback follows the content. */
@media(max-width:740px) {
 .development-process { gap:14px; margin-top:22px; align-items:start; }
 .process-sidebar { padding-top:0; }
 .process-tab { min-height:64px; padding-block:10px; }
 .process-visual { min-height:0; row-gap:5px; align-content:start; }
 .facility-view { height:280px; margin:0; }
 .model-features { padding-top:8px; }
 .model-feature-detail { min-height:0; margin:6px 0!important; line-height:1.65!important; }
 .process-panels { min-height:0; align-items:start; margin-top:6px; }
 .process-panel:not(.is-active) { display:none; }
 .process-panel { align-self:start; }
 .process-panel h3 { font-size:28px; margin-bottom:12px; }
 .process-panel .process-step-label { margin-bottom:10px; }
 .process-panel p { font-size:14px; line-height:1.7; }
 .development-process > .process-controls { grid-column:1; grid-row:4; margin-top:8px; }
 .development-process > .process-note { grid-column:1; grid-row:5; margin:0; font-size:11px; font-weight:400; color:var(--muted); text-align:left; }
 .development-process > .process-meter { grid-row:6; }
 .footer-top .dcs-badge { margin-left:0; align-self:flex-start; }
}

/* Shared desktop columns align the introductory copy with the workstream text. */
@media(min-width:1101px) {
 .approach-head { grid-template-columns:var(--process-columns); column-gap:var(--process-gap); align-items:end; }
 .approach-head > h2 { grid-column:1 / 3; margin-bottom:0; }
 .approach-head .approach-copy { grid-column:3; justify-self:stretch; align-self:end; max-width:none; }
 .approach-head .approach-copy > p { margin-bottom:0; }
}

.company-context .bonum-logo { display:block; width:120px; height:auto; max-height:38px; object-fit:contain; object-position:left; margin:0 0 22px; }

/* A lighter accent for community headings; a compact mobile model legend. */
.community-topic h3 { color:#d3aa87; }
.company-context .bonum-logo { margin:24px 0 10px; }
.company-context .bonum-logo + .text-link { margin-top:0; }
@media(max-width:740px) {
 .model-features { display:flex; overflow-x:auto; gap:8px; padding:8px 0; scrollbar-width:thin; scrollbar-color:#bc896d60 transparent; scroll-snap-type:x proximity; }
 .model-features button { flex:0 0 auto; min-height:44px; padding:8px 12px; white-space:nowrap; scroll-snap-align:start; border:1px solid #ffffff18; }
 .model-feature-detail { margin:0!important; }
 .model-feature-detail.is-placeholder { display:none; }
 .process-visual { row-gap:0; }
 .process-panels { margin-top:0; }
 .process-panel .process-step-label { display:none; }
 .process-panel h3 { margin-bottom:10px; }
}

/* Align editorial endings with the columns they belong to. */
.community-contact-note { max-width:none; width:calc((100% - var(--editorial-gap)) / 2); }
.portal-map figcaption { position:absolute; right:clamp(20px,2.5vw,64px); bottom:28px; margin:0; }
.news-list article { display:flex; flex-direction:column; }
.news-list h3 { min-height:2.54em; }
.news-list .news-arrow { margin-top:auto; padding-top:25px; align-self:flex-start; }
.news-list .news-summary { margin-bottom:0; }
@media(max-width:1100px) { .community-contact-note { width:100%; } }
.portal-map { position:static; }

@media(min-width:741px) {
 .facility-view .process-controls { position:absolute;left:4px;bottom:4px;margin:0;display:block;z-index:2; }
 .facility-view .process-play { height:32px;min-height:32px;padding:0 12px;font-size:11px;gap:8px; }
 .facility-view .process-timing { display:none; }
}
@media(min-width:1101px) { .facility-view .process-controls { bottom:61px; } }

.process-meter { position:relative;overflow:visible; }
.process-meter > span { transition:none;will-change:transform; }
.process-meter > i { position:absolute;top:50%;width:5px;height:5px;border-radius:50%;background:var(--copper);transform:translate(-50%,-50%); }

@media(min-width:741px) { .process-tab, .process-tab.is-active, .process-tab[aria-selected='true'] { padding-left:14px; } }

.hero h1 .accent { color:#b47c56; text-shadow:0 2px 16px rgba(7,28,25,.7),0 1px 2px rgba(7,28,25,.65); }
@media(max-width:740px) {
 .facility-view .process-controls { position:absolute;left:4px;bottom:4px;margin:0;display:block;z-index:2; }
 .facility-view .process-play { width:32px;height:32px;min-height:32px;padding:0;gap:0; }
 .facility-view .process-play-label { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
 .facility-view .process-timing { display:none; }
 .facility-view .model-gesture { left:40px;right:75px;font-size:10px; }
}
/* Keep playback progress beside the model at every screen size. */
.process-visual > .process-meter { grid-column:1;grid-row:auto;margin:0;width:100%;align-self:start;z-index:3; }
.process-visual > .model-features { border-top:0; }
/* A compact, explicit language choice remains available at every viewport. */
html[data-language-pending] body { visibility:hidden; }
.language-switch { display:flex;align-items:center;gap:14px;flex-shrink:0; }
.language-switch a { position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:44px;text-decoration:none;font-size:12px;letter-spacing:.04em;color:var(--muted); }
.language-switch a[aria-current='page'] { color:var(--paper); }
.language-switch a[aria-current='page']::after { content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:currentColor; }
.language-switch a:hover { color:var(--paper); }
.language-switch a:focus-visible { outline:1px solid var(--copper);outline-offset:3px; }
@media(min-width:1001px) and (max-width:1350px) { .masthead-caption { display:none; } .masthead-inner { gap:22px; } }
@media(max-width:740px) { .language-switch { gap:10px; } }
@media(max-width:440px) { .masthead-actions .portal-link { display:none; } .masthead-actions { gap:18px; } }
/* Keep long Norwegian heading words intact within narrow mobile columns. */
@media(max-width:740px) {
 html[lang^='nb'] .approach-head > h2 { font-size:clamp(30px,8.3vw,42px); }
 html[lang^='nb'] .partner-copy h2, html[lang^='nb'] .company-copy h2 { font-size:clamp(30px,8.3vw,61px); }
}
