:root{--paper:#fff;--paper-muted:#F7F7F3;--ink:#000;--accent:#7A1F1F;--line:#DDDDD8;--text-muted:#52524e}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
button,input,select,textarea{font-family:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent)!important;outline-offset:5px}
button:disabled{opacity:.55;cursor:default}
[hidden]{display:none!important}
h1,h2,h3,p,blockquote{overflow-wrap:break-word}
.skip-link{position:fixed;top:12px;left:12px;z-index:200;background:var(--paper);color:var(--ink);padding:14px 20px;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.site-menu{border:0;margin:0;padding:0;inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;background:var(--paper);color:var(--ink);overscroll-behavior:contain}
.site-menu::backdrop{background:rgba(0,0,0,.35)}
.site-menu[open]{display:block}
.site-menu a,.site-menu a:visited{color:var(--ink)!important;transition:none!important}
.site-menu a:focus-visible{color:var(--accent)!important}
@media(hover:hover) and (pointer:fine){.site-menu a:hover{color:var(--accent)!important}}
.language-switch{display:inline-flex;flex:0 0 auto;align-items:center;padding:0;border:0;gap:14px;white-space:nowrap}
.language-switch a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:28px;padding:8px 2px;color:#8A8A85!important;background:transparent!important;text-decoration:none;font-size:11px;font-weight:400;letter-spacing:.08em;line-height:1;transition:color .2s ease}
.language-switch a + a::before{content:'/';position:absolute;left:-9px;color:#AAAAA5;font-weight:300;pointer-events:none}
.language-switch a[aria-current=true]{color:#111111!important;font-weight:600}
.language-switch a:hover{color:#52524E!important}
.language-switch a[aria-current=true]:hover{color:#111111!important}
.language-switch--light a{color:#8A8A85!important}
.language-switch--light a[aria-current=true],.language-switch--light a[aria-current=true]:hover{color:#111111!important}
.language-switch--light a:focus-visible{outline-color:var(--accent)!important}
@media(max-width:600px){.language-switch a{min-width:28px;min-height:40px;padding:8px 2px}}
.reference-note{width:100%;height:100%;min-height:160px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:space-between;gap:24px;border:1px solid var(--line);background:var(--paper-muted)}
.reference-note span{font-size:clamp(20px,2.2vw,28px);font-weight:300;line-height:1.3}
.reference-note small{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.contact-help,.email-fallback{margin:0;font-size:14px;line-height:1.6;color:var(--text-muted)}
.contact-status{margin:0;padding:18px 20px;background:var(--paper-muted);border-left:2px solid var(--accent);font-size:15px;line-height:1.6}
.will-reveal{opacity:0;transition:opacity .4s ease}
.is-revealed{opacity:1;transform:none}
.noscript-nav{display:flex;flex-wrap:wrap;gap:16px;padding:24px;border-top:1px solid var(--line)}
@media(max-width:600px){
 main [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
 main [style*="flex:1 1"],footer [style*="flex:1 1"]{min-width:0;max-width:100%!important;flex-basis:100%!important}
 h1{hyphens:auto;overflow-wrap:anywhere}
 .site-menu a{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .will-reveal{opacity:1;transform:none}
}

/* Prelaunch refinements: allow narrow-screen text to wrap, without clipping content. */
@media (max-width: 600px) {
  main, main * { min-width: 0; }
  main :is(h1,h2,h3,p,a,li,label) { overflow-wrap: anywhere; hyphens: auto; }
  #site-menu { max-width: 100%; }
  [data-contact-form] input, [data-contact-form] select, [data-contact-form] textarea { font-size: 16px !important; }
}
[data-contact-form] [data-contact-status] { line-height: 1.65; padding: 16px 0; border-top: 1px solid #DDDDD8; }
[data-contact-form] [data-contact-status][data-state="error"] { color: #7A1F1F; }
[data-contact-form][aria-busy="true"] { cursor: progress; }
.legal-copy { max-width: 1000px; margin: 0 auto; padding: clamp(80px,10vw,140px) clamp(24px,5vw,64px); line-height: 1.75; overflow-wrap: anywhere; }
.legal-copy h1 { font-size: clamp(30px,4vw,56px); font-weight: 300; line-height: 1.1; text-transform: uppercase; margin: 0 0 40px; hyphens: auto; }
.legal-copy h2 { font-size: clamp(21px,2.2vw,28px); font-weight: 400; line-height: 1.3; margin: 40px 0 16px; }
.legal-copy a { color: inherit; text-underline-offset: 3px; }
.legal-copy a:hover { color: #7A1F1F; }
.legal-draft { border-left: 2px solid #7A1F1F; padding: 16px 20px; background: #F7F7F3; }
html[lang=en] .wissen-table th,html[lang=en] .wissen-table td{font-variant-numeric:tabular-nums}

/* Portrait-sized layouts use a deliberate header grid and one content edge. */
@media (max-width: 600px) {
  :root { --mobile-gutter: clamp(20px, 5vw, 28px); }
  body > header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
    padding: 18px var(--mobile-gutter) !important;
  }
  body > header > a[data-display] {
    justify-self: start;
    font-size: 18px !important;
    line-height: 1.2;
  }
  body > header > div {
    display: grid !important;
    grid-template-columns: auto minmax(44px, 1fr) auto;
    align-items: center;
    gap: 12px !important;
    width: 100%;
    min-width: 0;
    margin-left: 0 !important;
  }
  body > header .language-switch { justify-self: start; }
  body > header [data-menu-open] {
    justify-self: end;
    min-width: 56px;
    min-height: 44px;
    padding: 10px 8px !important;
    font-size: 12px !important;
    letter-spacing: .08em !important;
  }
  body > header > div > a {
    justify-self: end;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px !important;
    font-size: 12px !important;
    line-height: 1.2;
    letter-spacing: .06em !important;
    white-space: nowrap;
  }
  .home-hero { align-items: flex-start !important; }
  .home-hero__content {
    width: 100%;
    max-width: 100% !important;
    padding: 148px var(--mobile-gutter) 56px !important;
    align-items: flex-start !important;
    gap: 22px !important;
    text-align: left !important;
  }
  .home-hero__content > h1 {
    font-size: clamp(28px, 8.6vw, 40px) !important;
    line-height: 1.12 !important;
    letter-spacing: .01em !important;
    hyphens: none;
    overflow-wrap: normal;
  }
  .home-hero__content > p {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
  .home-hero__actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 12px !important;
    margin-top: 4px !important;
  }
  .home-hero__actions > a {
    width: 100%;
    min-height: 64px;
    justify-content: space-between;
    padding: 14px 16px !important;
    font-size: 12px !important;
    line-height: 1.45;
    letter-spacing: .05em !important;
    text-align: left;
    hyphens: none;
    overflow-wrap: break-word;
  }
  .home-hero__actions > a > span { flex: 0 0 auto; }
}

/* Shared finishing details for the public preview. */
.home-page > header {
  position:relative!important; background:#FFFFFF; color:#000000;
}
.home-page > header > a, .home-page > header [data-menu-open], .home-page > header > div > a {
  color:#000000!important; border-color:#000000!important;
}
.home-page > header > div > a:hover { background:#000000!important; color:#FFFFFF!important; }
.home-page > header .language-switch { border-color:var(--line); }
.home-page > header .language-switch a { color:#000000; }
.home-page > header .language-switch a[aria-current=true], .home-page > header .language-switch a:hover { color:#FFFFFF; }
.home-page > header .language-switch a:focus-visible { outline-color:var(--accent)!important; }
.home-page .home-hero { margin:0 clamp(8px,1.5vw,20px); min-height:calc(100svh - 90px)!important; }
.home-hero__media { pointer-events:none; }
html.home-entering { overflow:hidden; overflow-anchor:none; scroll-behavior:auto!important; scrollbar-gutter:stable; }
.home-intro { position:fixed; inset:0; z-index:200; overflow:hidden; background:#fff; }
@media (max-width:600px) {
  .home-page .home-hero { min-height:calc(100svh - 130px)!important; }
  .home-page .home-hero__content { padding-top:64px!important; padding-bottom:100px!important; }
}
.service-hero__heading { min-width:0; }
.mobile-footer-navigation { display:none; }
@media (max-width:600px) {
  .mobile-footer-navigation {
    display:flex; align-items:center; justify-content:center; gap:18px;
    width:100%; margin-top:28px; padding-top:16px; border-top:1px solid var(--line);
    color:var(--text-muted); font-size:13px;
  }
  .mobile-footer-navigation > :is(button,a) {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:44px; padding:8px 4px; border:0; background:transparent;
    color:inherit; font:inherit; text-decoration:none; cursor:pointer;
  }
  .mobile-footer-navigation > :is(button,a):is(:hover,:focus-visible) { color:var(--accent); }
}
.service-hero__subtitle { margin:22px 0 0; max-width:46ch; font-size:clamp(19px,2.2vw,28px); font-weight:300; line-height:1.45; color:#555550; text-wrap:pretty; }
.home-stat-link { display:block; color:inherit; text-decoration:none; }
.home-stat-link:hover { color:#7A1F1F; }
.home-stats-project { margin:36px 0 -36px; font-size:14px; font-weight:500; line-height:1.6; }
.process-grid { display:flex!important; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:24px!important; }
.process-grid > * { flex:0 1 calc(33.333333% - 16px); min-width:0; text-align:center; align-items:center; }
.process-grid > * > :last-child { width:100%; }
.is-touch-highlighted { background:#7A1F1F!important; border-color:#7A1F1F!important; color:#FFFFFF!important; }
.is-touch-highlighted :is(div,p,span,h3) { color:inherit!important; }
details > summary { display:flex!important; justify-content:space-between!important; width:100%; list-style:none; }
details > summary::-webkit-details-marker { display:none; }
details > summary > span[aria-hidden="true"]:last-child { margin-left:auto!important; flex:0 0 1em; text-align:right; align-self:baseline; }
.footer-bottom { margin-top:clamp(64px,7vw,96px); padding-top:28px; border-top:1px solid #DDDDD8; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:32px 48px; font-size:13px; font-weight:400; color:#8A8A85; line-height:1.7; }
.footer-socials { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.footer-bottom a { color:inherit; text-decoration:none; transition:color .25s ease; }
.footer-bottom a:hover { color:#7A1F1F; }
.footer-socials a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #DDDDD8; color:#000000; }
.footer-company { margin:0 0 4px; font-weight:500; color:#000000; }
.footer-identity address { font-style:normal; }
.footer-contact { display:flex; flex-wrap:wrap; gap:4px 22px; margin-top:10px; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px 28px; align-self:end; justify-self:end; text-align:right; }
.noma-groundbreaking { padding:0 clamp(24px,5vw,48px) clamp(72px,8vw,110px); background:#FFFFFF; }
.noma-groundbreaking figure { max-width:1240px; margin:0 auto; }
.noma-photo-placeholder { aspect-ratio:16/8; min-height:240px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:32px 24px; border:1px solid #DDDDD8; background:#F7F7F3; text-align:center; }
.noma-photo-placeholder svg { flex:none; color:#8A8A85; }
.noma-photo-placeholder h2 { margin:0; font-size:clamp(22px,3vw,34px); font-weight:300; line-height:1.3; }
.noma-photo-placeholder p { margin:0; color:#8A8A85; font-size:16px; line-height:1.6; }
.noma-groundbreaking figcaption { margin-top:16px; color:#8A8A85; font-size:13px; line-height:1.6; }
@media (max-width:900px) {
  .process-grid > * { flex-basis:calc(50% - 12px); }
}
@media (max-width:600px) {
  .process-grid > * { flex-basis:100%; }
  .footer-bottom { grid-template-columns:minmax(0,1fr); gap:28px; }
  .footer-contact { flex-direction:column; align-items:flex-start; gap:6px; }
  .footer-legal { width:100%; padding-top:22px; border-top:1px solid #DDDDD8; }
  .noma-photo-placeholder { aspect-ratio:auto; min-height:280px; }
}

/* Original vector wordmark; no raster upscaling or font substitution. */
.site-brand-logo { display:block; width:clamp(180px,22vw,240px); max-width:100%; height:auto; }

/* Text remains in its normal paint layer; Safari must not clip transformed glyphs. */
h1,h2,h3,blockquote,summary,[data-count],[data-display] { overflow:visible; }
[data-count] { line-height:1.1!important; padding-block:0; font-weight:300!important; font-variant-numeric:lining-nums tabular-nums; }
[data-marquee] { padding-block:.12em; }
[data-marquee] span { line-height:1.35!important; padding-block:.08em; }
.reading-progress { position:fixed; inset:0 0 auto; height:3px; background:var(--accent); z-index:150; transform:scaleX(0); transform-origin:left center; pointer-events:none; }
.footer-brand { display:block; width:260px; max-width:100%; margin-bottom:24px; }
.footer-brand img { display:block; width:100%; height:auto; }
.footer-socials a { border:0; background:transparent; border-radius:0; }
.footer-socials svg { width:24px; height:24px; }
.stats-surface { background:#fff!important; padding-block:clamp(56px,7vw,96px)!important; }
.stats-grid { display:grid!important; grid-template-columns:var(--stats-columns,repeat(3,minmax(0,1fr)))!important; gap:24px!important; container-type:inline-size; }
.stats-grid > .stat-item { position:relative; display:flex!important; flex-direction:row!important; align-items:flex-start; gap:16px!important; min-width:0; padding:0 0 0 24px; border:0; }
.stats-grid > .stat-item::before { content:""; position:absolute; left:0; top:14px; bottom:14px; width:1px; background:var(--ink); }
.stats-grid > .stat-item:first-child { padding-left:0; }
.stats-grid > .stat-item:first-child::before { display:none; }
.stat-item [data-count] { flex-shrink:0; font-size:clamp(64px,7vw,112px)!important; font-size:clamp(64px,9cqi,112px)!important; letter-spacing:-.045em!important; white-space:nowrap; }
.stat-item > p { flex:1; min-width:0; margin:0!important; padding-top:clamp(12px,1.7cqi,22px); font-size:11px!important; font-weight:400!important; line-height:1.5!important; overflow-wrap:normal; word-break:normal; hyphens:none; text-wrap:pretty; }
.stat-item > a { flex-shrink:0; }
.stats-grid > .stat-item--text { flex-direction:column!important; gap:12px!important; justify-content:center; }
.stat-item--text > [data-display] { font-size:clamp(24px,2.6cqi,32px)!important; font-weight:300!important; line-height:1.2!important; }
.stat-item--text > p { flex:none; padding-top:0; max-width:28ch; }
.editorial-split { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.75fr); align-items:stretch; gap:clamp(64px,9vw,144px); }
.editorial-split--reverse { grid-template-columns:minmax(0,.75fr) minmax(0,1.3fr); }
.editorial-copy { display:flex; flex-direction:column; gap:28px; min-width:0; }
.editorial-copy > h2 { max-width:none!important; font-size:clamp(28px,3.1vw,42px)!important; }
.editorial-copy > [style*="display:grid"] { display:flex!important; flex-direction:column; gap:24px!important; }
.editorial-media { position:relative; margin:0; width:100%; max-width:var(--editorial-portrait-width,100%); min-width:0; min-height:0; align-self:stretch; justify-self:end; overflow:hidden; background:var(--paper-muted); }
.editorial-media > img,.editorial-media > video { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.editorial-media > video { position:absolute; inset:0; pointer-events:none; }
.editorial-split--reverse .editorial-media { order:-1; justify-self:start; }
.editorial-split--after { margin-top:clamp(56px,8vw,100px); }
.editorial-split--after > p { margin:0!important; }
@media (max-width:800px) {
  .editorial-split { grid-template-columns:minmax(0,1fr); gap:36px; }
  .editorial-media { max-width:100%; aspect-ratio:4 / 5; justify-self:stretch; }
  .editorial-split--reverse .editorial-media { order:0; }
}
@media (max-width:1100px) {
  main .stats-grid { grid-template-columns:minmax(0,1fr)!important; gap:0!important; }
  .stats-grid > .stat-item { display:grid!important; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:20px!important; border-top:1px solid var(--line); padding:24px 0; }
  .stats-grid > .stat-item:first-child { border-top:0; }
  .stats-grid > .stat-item::before { display:none; }
  .stat-item [data-count] { font-size:clamp(44px,10vw,96px)!important; font-size:clamp(36px,16cqi,96px)!important; }
  .stat-item > p { padding-top:10px; font-size:11px!important; }
  .stat-item--text > [data-display] { font-size:24px!important; }
}
@media (prefers-reduced-motion:reduce) {
  .editorial-media > video { display:none; }
}
