@font-face{font-family:Archivo;src:url('../fonts/archivo.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Plex;src:url('../fonts/plex-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url('../fonts/plex-medium.woff2') format('woff2');font-weight:500 700;font-display:swap}
:root{--ink:#29252b;--night:#29252b;--night-2:#393039;--paper:#f4f0e8;--white:#fcfaf5;--gold:#d9bc99;--ochre:#87533b;--muted:#625a54;--line:#d7cec2;--pad:clamp(1.3rem,5.2vw,6.5rem);--max:1600px;--ease:cubic-bezier(.22,1,.36,1);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Plex,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}button{border:0;background:none}img,svg{display:block;max-width:100%}img{height:auto}figure{margin:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Archivo,Arial,sans-serif;font-weight:500;line-height:1.06;letter-spacing:-.055em}h1{font-size:clamp(3.3rem,6.6vw,7rem)}h2{font-size:clamp(2.5rem,4.2vw,4.7rem)}h3{font-size:clamp(1.5rem,2.3vw,2.5rem)}em{font-style:normal;color:var(--ochre)}p+p{margin-top:1.2rem}::selection{background:var(--gold);color:var(--night)}:focus-visible{outline:2px solid var(--ochre);outline-offset:6px}.site-footer :focus-visible,
.method :focus-visible{outline-color:var(--gold)}[hidden]{display:none!important}.pad{padding-inline:var(--pad)}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;left:1rem;top:-100px;background:var(--gold);color:var(--night);padding:.75rem 1.2rem;z-index:100}.skip:focus{top:1rem}.eyebrow{text-transform:none;font:400 .6875rem/1.6 Plex,Arial,sans-serif;letter-spacing:0;display:flex;align-items:center;gap:.7rem}.tiny-cross{font-size:1.3rem;font-weight:400;line-height:1}.gold{color:var(--ochre)}.section-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:1.25rem;gap:1rem}.section-meta>span{font-size:.71rem;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.6rem;min-height:52px;padding:1rem 1.5rem;background:var(--gold);color:var(--night);font-size:.78rem;font-weight:500;position:relative;isolation:isolate;overflow:hidden}.button:hover{background:#e0c798}.button-dark{background:var(--night);color:var(--white)}.button-dark:hover{background:#2c4048}.text-link{display:inline-flex;align-items:center;gap:1.9rem;font-size:.78rem;padding-block:.65rem;border-bottom:1px solid currentColor;line-height:1.4}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin:3.5rem 0}.section-heading>.text-link{flex-shrink:0}.large-copy{font-size:clamp(1.2rem,1.6vw,1.65rem);line-height:1.5;letter-spacing:-.025em}.archive-note{font-size:.72rem;color:var(--muted);line-height:1.65}
/* Navigation */
.site-header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);position:absolute;top:0;left:0;right:0;z-index:20;color:var(--ink);border-bottom:1px solid var(--line);gap:2rem}.brand{display:flex;align-items:center;gap:.85rem}.brand>span{font-family:Archivo,sans-serif;font-size:1.8rem;font-weight:650;letter-spacing:-.055em;line-height:.9}.brand small{display:block;letter-spacing:.025em;font:400 .6875rem/1.5 Plex,sans-serif;margin-top:.55rem}.desktop-nav{display:flex;gap:2rem;margin-left:auto;margin-right:3vw;font-size:.76rem}.desktop-nav a{position:relative;padding:.5rem 0}.desktop-nav a:after{content:'';height:1px;position:absolute;bottom:0;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:1.7rem}.header-contact{display:flex;align-items:center;min-height:44px;gap:1.5rem;font-size:.76rem}.header-contact>span{font-size:1.25rem;color:var(--ochre)}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:40px;height:44px;padding:8px}.menu-toggle span{height:1px;background:currentColor;width:23px;transition:transform .3s}.menu-toggle:hover span:first-child{transform:translateX(4px)}.menu-toggle:hover span:last-child{transform:translateX(-4px)}.site-menu{border:0;margin:0;padding:2rem var(--pad);background:var(--night);color:var(--paper);width:100%;max-width:100%;height:100dvh;max-height:100dvh}.site-menu::backdrop{background:#29252bd9}.menu-top{display:flex;justify-content:space-between;align-items:center;padding-block:1rem 2rem;border-bottom:1px solid #ffffff26}.menu-close{display:flex;align-items:center;gap:1.3rem;font-size:.75rem;min-height:44px}.menu-close span{font-size:2rem;font-weight:300}.site-menu nav{max-width:950px;margin:2.5rem auto}.site-menu nav a{display:flex;align-items:center;gap:1.8rem;padding:.75rem 0;font-family:Archivo;font-size:clamp(2rem,5vw,4rem);letter-spacing:-.055em;line-height:1.2;border-bottom:1px solid #ffffff1f}.site-menu nav a:hover{color:var(--gold)}.site-menu nav small{font-family:Plex;font-size:.6875rem;letter-spacing:0;color:var(--gold)}.site-menu nav a>span{margin-left:auto;color:var(--gold);font-size:2rem}.menu-bottom{display:flex;justify-content:space-between;align-items:end;font-size:.85rem}.menu-bottom>a{font-family:Archivo;font-size:1.5rem;letter-spacing:-.04em}.noscript-nav{background:var(--night);color:var(--paper);display:flex;gap:1rem;padding:115px var(--pad) 1rem}.noscript-nav a{text-decoration:underline}
/* Spatial opening */.live-dot{height:6px;width:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 4px #d9bc9912}.scene-poster{width:100%;height:100%;object-fit:cover;object-position:50%;mask-image:linear-gradient(90deg,transparent 0%,#000 28%,#000 83%,transparent 100%);mix-blend-mode:lighten;opacity:.75;transition:opacity .9s}.hero-visual.scene-ready .scene-poster{opacity:0}.scene-canvas{position:absolute;inset:0}.scene-canvas canvas{width:100%;height:100%;display:block}.scene-callout{position:absolute;font:400 .6875rem/1.5 Plex;letter-spacing:.025em;display:flex;align-items:center;gap:.7rem;color:#e3d8c4;z-index:2}.callout-a{top:24%;right:17%;padding-bottom:10px;border-bottom:1px solid #d9bc9975;min-width:170px}.callout-a small{position:absolute;top:calc(100% + 8px);left:17px;font-size:.6875rem;letter-spacing:.13em;color:#a6ada6}.callout-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 15px #d9bc9999}.callout-b{bottom:18%;right:19%;font-size:.6875rem;color:#c7c5b6}.crosshair{font-size:1.3rem;color:var(--gold)}.scene-caption{font:400 .6875rem/1.5 Plex;color:#a7ada6;position:absolute;bottom:2%;right:15%;letter-spacing:.02em}.scroll-note{display:flex;align-items:center;gap:1rem;font-size:.6875rem;color:#b2b8b0}.scroll-line{width:1px;height:32px;background:#d9bc994d;position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;inset:0;background:var(--gold);animation:scrollPulse 2.5s ease-in-out infinite}.motion-toggle{font-size:.6875rem;color:#bdc1b7;display:flex;align-items:center;gap:.8rem;min-height:44px}.motion-toggle>span{font-size:1rem}.hero-progress{position:absolute;height:2px;bottom:0;left:0;right:0;background:#d9bc9910}.hero-progress span{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}@keyframes scrollPulse{0%{transform:translateY(-110%)}60%,100%{transform:translateY(110%)}}
/* Editorial home */
.intro{padding-top:4rem;padding-bottom:5rem;background:var(--paper);position:relative}.intro-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(3rem,9vw,11rem);margin-top:4.5rem;align-items:start}.intro-grid h2{font-size:clamp(2.7rem,4.4vw,5.2rem);line-height:1.1}.intro-side>.large-copy{margin-bottom:1.3rem}.intro-side>p:not(.large-copy){color:var(--muted);font-size:.9rem;max-width:43ch}.intro-side .text-link{margin-top:1.7rem}.fact-strip{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--line);margin-top:5rem;padding-top:2rem}.fact-strip>div{border-left:1px solid var(--line);padding:0 2rem}.fact-strip>div:first-child{border:0;padding-left:0}.fact-strip strong{display:block;font-family:Archivo;font-size:clamp(2.1rem,3.4vw,4rem);font-weight:400;letter-spacing:-.065em;line-height:1.2}.fact-strip span{font-size:.6875rem;color:var(--muted);margin-top:.5rem;display:block}.competencies{padding-block:3rem 6rem}.service-art{height:130px;position:relative;isolation:isolate;transform:rotate(-25deg) skew(12deg);width:170px;justify-self:center}.service-art i{position:absolute;display:block;box-shadow:inset -10px -7px #0000000a;border:1px solid #a4957d;background:#e3dac6;transition:transform .7s var(--ease)}.art-blocks i{width:45px;height:65px;bottom:20px}.art-blocks i:before{content:'';position:absolute;inset:8px;background:repeating-linear-gradient(0deg,transparent,transparent 10px,#8f8d8055 10px,#8f8d8055 11px)}.art-blocks i:nth-child(1){left:9px;height:38px}.art-blocks i:nth-child(2){left:52px;height:80px}.art-blocks i:nth-child(3){left:95px;height:54px}.art-blocks i:nth-child(4){left:135px;height:42px;width:28px}.art-blocks i:nth-child(5){height:1px;bottom:19px;left:-5px;width:185px;border:0;background:#a4957d}.art-plan i{width:70px;height:35px;background:transparent}.art-plan i:nth-child(1){left:5px;top:20px}.art-plan i:nth-child(2){left:92px;top:20px}.art-plan i:nth-child(3){left:5px;top:70px}.art-plan i:nth-child(4){left:92px;top:70px}.art-plan i:nth-child(5){width:175px;height:1px;top:62px;left:-4px;border:0;background:#b4a585}.art-layers i{height:75px;width:130px;left:20px;top:20px;background:#e5ddcc}.art-layers i:nth-child(1){transform:translateY(25px);z-index:1}.art-layers i:nth-child(2){transform:translateY(10px);z-index:2;background:#d3c2a5}.art-layers i:nth-child(3){transform:translateY(-5px);z-index:3;background:#ece6d8}.art-layers i:nth-child(4){width:65px;height:30px;top:28px;left:55px;z-index:4;background:#89947b;border-color:#6a7864}.art-layers i:nth-child(5){display:none}.service-row:hover .art-blocks i:nth-child(2){transform:translateY(-10px)}.service-row:hover .art-layers i:nth-child(3){transform:translateY(-16px)}.service-row:hover .art-plan i:nth-child(1){transform:translate(-3px,-6px)}.art-axis{position:absolute;left:-20px;right:-20px;top:50%;height:1px;background:#9b865d55;z-index:-1}
.projects-home{background:#ebe4d8;padding-block:4rem 4.5rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem 2.5rem;align-items:start}.project-card:nth-child(even){padding-top:6rem}.project-image{aspect-ratio:1.47;overflow:hidden;position:relative;background:#d7d7cf}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s;filter:saturate(.7)}.project-card[data-category=recycling] .project-image img{object-fit:contain;background:#dedbd1}.project-card:hover .project-image img{transform:scale(1.045);filter:saturate(1)}.image-label{position:absolute;bottom:1.1rem;left:1.1rem;padding:.5rem .7rem;color:#fff;background:#14252ae8;font-size:.8125rem;letter-spacing:0;text-transform:none}.project-caption{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding-top:1.1rem}.project-caption .eyebrow{color:var(--muted);font-size:.6875rem;margin-bottom:.45rem}.project-caption h3{font-size:clamp(1.5rem,2.2vw,2.4rem)}.project-type{font-size:.6875rem;color:var(--muted);padding-bottom:.2rem}.archive-strip{margin-top:4rem;border-top:1px solid #c4c4b9;padding-top:2rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;align-items:center}.archive-strip>p{font-size:.74rem;color:var(--muted)}.archive-strip>a{position:relative;padding-right:1.5rem}.archive-strip strong{font-family:Archivo;font-size:1.25rem;letter-spacing:-.035em;font-weight:500}.archive-strip .eyebrow{font-size:.6875rem;color:var(--muted);margin-bottom:.3rem}.archive-strip>a>span:last-child{position:absolute;right:0;bottom:0;color:var(--ochre);font-size:1.5rem}
.method{background:var(--night);color:var(--paper);padding-block:7rem;display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;position:relative;isolation:isolate;overflow:hidden}.method-left>.eyebrow{color:var(--gold)}.method h2{margin-top:2.2rem}.method em{color:var(--gold)}.method-left>p:not(.eyebrow){margin:2rem 0;max-width:41ch;font-size:.87rem;color:#bfc4ba}.method .text-link{color:var(--gold)}.method-steps{margin:1rem 0 0;padding:0;list-style:none}.method-steps li{display:flex;gap:2.1rem;border-top:1px solid #ffffff26;padding:2rem 0}.method-steps li>span{color:var(--gold);font-size:.6875rem;margin-top:.3rem}.method-steps h3{font-size:2rem;font-weight:400;letter-spacing:-.035em}.method-steps p{font-size:.85rem;color:#bfc4ba;margin-top:.8rem;max-width:34ch}.method-background{position:absolute;right:-4%;bottom:-38%;font-family:Archivo;font-size:43vw;line-height:1;font-weight:700;color:#ffffff02;z-index:-1;pointer-events:none}.network{padding-block:5rem;border-bottom:1px solid var(--line)}.network>.eyebrow{color:var(--muted)}.network h2{margin-top:1.5rem;font-size:clamp(2.1rem,3.5vw,4rem)}.network>div{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-top:2rem}.network>div>p{max-width:60ch;font-size:.86rem;color:var(--muted)}.network .text-link{flex-shrink:0}
.faq-section{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;padding-block:5rem}.faq-section h2{font-size:clamp(2.1rem,3.5vw,4rem);margin-top:1.6rem}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{font-size:.88rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.4rem 0;list-style:none;cursor:pointer;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-plus{font:300 1.6rem Archivo;color:var(--ochre);transition:transform .3s;flex-shrink:0}.faq-list details[open] .faq-plus{transform:rotate(45deg)}.faq-answer{padding:0 2.5rem 1.5rem 0}.faq-answer p{font-size:.83rem;color:var(--muted);line-height:1.8}.contact-band{background:#eee5d8;color:var(--night);padding:4.5rem var(--pad);display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;align-items:end}.contact-band h2{font-size:clamp(3.5rem,6vw,7rem);margin-top:1.7rem;line-height:1}.contact-band em{color:var(--night);opacity:.63}.contact-band-side{padding-bottom:.2rem}.contact-band-side p{font-size:.88rem;max-width:30ch;margin-bottom:1.8rem}.contact-band-side>.text-link{display:flex;width:fit-content;margin-top:.9rem}.contact-band .eyebrow{color:#4d452f}
/* Footer */
.site-footer{background:var(--night);color:var(--paper);padding:3.5rem var(--pad) 0}.footer-top{display:flex;align-items:center;gap:3rem;padding-bottom:2.5rem;border-bottom:1px solid #ffffff24}.footer-wordmark{font-family:Archivo;font-size:clamp(3rem,6vw,7rem);letter-spacing:-.075em;line-height:1;font-weight:600}.footer-top p{font-size:.75rem;line-height:1.6;color:#bfc4ba}.round-link{margin-left:auto;display:grid;place-items:center;border:1px solid #ffffff44;border-radius:50%;width:46px;height:46px;font-size:1.25rem}.round-link:hover{color:var(--gold);border-color:var(--gold)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr .8fr .8fr;gap:3rem;padding-block:2.7rem 3.5rem}.footer-grid .eyebrow{font-size:.6875rem;color:#b7bbae;margin-bottom:1rem}.footer-grid>div>a{display:block;font-size:.75rem;color:#dadbd2;width:fit-content;line-height:1.6;margin:.55rem 0}.footer-grid>div>a:hover{color:var(--gold)}.footer-grid .footer-phone{font-family:Archivo;font-size:1.5rem;letter-spacing:-.04em;color:var(--paper);line-height:1.3}.footer-grid address{font-style:normal;font-size:.6875rem;color:#b8bdb2;margin-top:1rem}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-block:1.3rem;border-top:1px solid #ffffff24;font-size:.6875rem;gap:1.5rem;color:#b7bbae}.footer-bottom>div{display:flex;gap:1.5rem}.footer-bottom a:hover{color:var(--paper)}.version-link{color:var(--gold)}
/* Subpages */
.page-intro{padding-top:142px;padding-bottom:4rem}.breadcrumb{display:flex;align-items:center;gap:.7rem;font-size:.6875rem;color:var(--muted);margin-bottom:3.3rem;flex-wrap:wrap}.breadcrumb a:hover{text-decoration:underline}.page-intro>.eyebrow{color:var(--ochre);margin-bottom:1.5rem}.page-intro h1{max-width:17em}.page-lead{font-size:clamp(1.05rem,1.4vw,1.4rem);max-width:55ch;margin-top:2rem;color:var(--muted);line-height:1.65;letter-spacing:-.015em}.service-overview{padding-bottom:4rem}.answer-block{background:#e8e3d8;padding-block:3.5rem;display:grid;grid-template-columns:.6fr 1fr 1fr;gap:3rem;align-items:start}.answer-block h2{font-size:clamp(1.7rem,2.7vw,3rem);letter-spacing:-.04em;line-height:1.15}.answer-block>p:last-child{font-size:.87rem;color:#545e57;margin:0}.answer-block>.eyebrow{color:var(--ochre);font-size:.6875rem}.detail-title-grid{display:grid;grid-template-columns:1.8fr 1fr;align-items:center;gap:4rem}.detail-title-grid h1{font-size:clamp(3rem,5.4vw,6rem)}.detail-title-grid .service-art{width:280px;height:230px;transform:rotate(-25deg) skew(12deg) scale(1.45);margin-top:2rem}.detail-title-grid .service-art i{transform-origin:center}.detail-title-grid .service-art{width:170px;height:130px}.detail-title-grid .button{margin-top:2rem}.audience{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.2rem;font-size:.75rem;color:var(--muted)}.scope{padding-block:4rem 5rem}.scope-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:8vw;margin-top:3rem}.scope-grid>div>p{font-size:.85rem;color:var(--muted);max-width:34ch;margin-top:1.5rem}.scope-items{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}.scope-items article>.eyebrow{color:var(--ochre);margin-bottom:1rem}.scope-items h3{font-size:1.4rem;letter-spacing:-.035em}.scope-items p{color:var(--muted);font-size:.81rem;margin-top:.8rem}.related-project{background:#ebe4d8;padding-block:3rem 4rem}.related-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:5vw;margin-top:2rem;align-items:center}.related-image{position:relative;display:block;aspect-ratio:1.6;overflow:hidden}.related-image img{height:100%;width:100%;object-fit:cover}.related-grid>div>.eyebrow{color:var(--muted);margin-bottom:1rem}.related-grid h2{font-size:clamp(2rem,3.8vw,4.2rem)}.related-grid p:not(.eyebrow){font-size:.86rem;color:var(--muted);max-width:40ch;margin-top:1.5rem}.related-grid .text-link{margin-top:1rem}.other-services{padding-top:1rem;padding-bottom:4rem}.other-services>.eyebrow{margin-bottom:1.5rem}.other-services>a{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);padding-block:1.5rem;font-family:Archivo;font-size:clamp(1.5rem,3vw,3rem);letter-spacing:-.04em}.other-services>a>span:last-child{color:var(--ochre)}.portfolio{padding-bottom:4rem}.filter-bar{display:flex;gap:1.8rem;align-items:center;border-block:1px solid var(--line);padding:.8rem 0;margin-bottom:3rem;flex-wrap:wrap}.filter-bar button{font-size:.71rem;min-height:44px;padding:.5rem 0;color:var(--muted);display:flex;gap:.6rem;align-items:start}.filter-bar button>span{font-size:.6875rem}.filter-bar button[aria-pressed=true]{color:var(--ochre);text-decoration:underline;text-underline-offset:6px}.portfolio .archive-note{margin-top:3rem;max-width:80ch}.portfolio .project-card:nth-child(even){padding-top:3rem}.portfolio.is-filtered .project-card{padding-top:0}.about-statement{display:grid;grid-template-columns:.9fr 1.5fr;gap:9vw;padding-block:1rem 5rem;align-items:center}.director-card{background:var(--night);color:var(--paper);padding:2.5rem;position:relative;overflow:hidden}.director-card>.eyebrow{color:var(--gold);font-size:.6875rem}.director-monogram{font-family:Archivo;font-weight:300;font-size:clamp(6rem,14vw,14rem);letter-spacing:-.07em;line-height:1;display:block;margin:3rem 0 2rem;color:#b9ac8d}.director-monogram>span{font-size:3rem;color:var(--gold);vertical-align:top;margin-left:.4rem}.director-card h2{font-size:2rem;letter-spacing:-.04em}.director-card>p:last-child{font-size:.8rem;color:#bcc2b7;margin-top:1rem}.about-statement>div:last-child>.eyebrow{color:var(--ochre);margin-bottom:1.4rem}.about-statement>div:last-child>p:not(.eyebrow){margin-top:1.5rem;color:var(--muted);font-size:.9rem;max-width:60ch}.about-statement>div:last-child>.large-copy{font-size:1.3rem;color:var(--ink)}.about-statement .text-link{margin-top:1.4rem}.about-model{background:#ebe4d8;padding-block:3rem;display:grid;grid-template-columns:1.4fr 1fr;gap:5vw;align-items:center}.about-model img{width:100%}.about-model figcaption{font-size:.6875rem;color:var(--muted);margin-top:.6rem}.about-model h2{font-size:clamp(2rem,3.4vw,4rem);margin-top:1rem}.about-model>div>p:last-child{color:var(--muted);font-size:.84rem;margin-top:1.6rem}.values{padding-block:4rem}.values>h2{margin-top:1.5rem}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem}.value-grid article{border-top:1px solid var(--line);padding-top:1.4rem}.value-number{font-size:.6875rem;color:var(--ochre)}.value-grid h3{margin-top:1.5rem;font-size:1.7rem}.value-grid p{margin-top:1rem;color:var(--muted);font-size:.84rem;max-width:38ch}
/* Contact / legal */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:9vw;padding-bottom:5rem;align-items:start}.contact-info{padding-top:1.5rem}.contact-big-phone{display:flex;align-items:center;gap:1rem;font-family:Archivo;font-size:clamp(1.65rem,3vw,3rem);letter-spacing:-.055em;line-height:1.2;margin-top:1rem}.contact-big-phone>span{color:var(--ochre)}.contact-info>p:not(.eyebrow){font-size:.85rem;margin-top:2rem;color:var(--muted)}.contact-info strong{font-weight:500;color:var(--ink)}.contact-info address{font-style:normal;font-size:.85rem;margin-top:2rem;line-height:1.9}.contact-prep{margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1.5rem}.contact-prep ul{padding-left:1.1rem;font-size:.82rem;line-height:2;color:var(--muted)}.project-brief{background:#e8e3d8;padding:2.2rem}.project-brief>.eyebrow{color:var(--ochre)}.project-brief h2{font-size:2.5rem;margin-top:1rem}.project-brief>p:not(.eyebrow){font-size:.82rem;color:var(--muted);margin-top:1.1rem}.project-brief form{margin-top:1.7rem}.project-brief label{display:block;font-size:.6875rem;color:#46534c;margin-top:1.2rem}.project-brief input,.project-brief select,.project-brief textarea{display:block;width:100%;border:0;border-bottom:1px solid #b1b1a4;background:transparent;border-radius:0;color:var(--ink);padding:.65rem 0;font-size:.84rem;line-height:1.5;resize:vertical}.project-brief textarea{min-height:100px;max-height:300px}.project-brief input::placeholder,.project-brief textarea::placeholder{color:#69746b;opacity:1}.project-brief .button{width:100%;margin-top:1.7rem}.form-note{font-size:.6875rem;color:#5e675e;margin-top:1rem!important;line-height:1.7}.brief-status{font-size:.73rem;min-height:1.5em;color:#40563d;margin-top:1rem}.location-strip{background:var(--night);color:var(--paper);padding-block:4rem;display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:5vw}.location-strip>.location-graphic{height:260px;position:relative;display:grid;place-items:center;background:repeating-linear-gradient(0deg,transparent,transparent 36px,#ffffff08 36px,#ffffff08 37px),repeating-linear-gradient(90deg,transparent,transparent 36px,#ffffff08 36px,#ffffff08 37px)}.location-graphic>span{font-family:Archivo;font-size:9rem;letter-spacing:-.08em;color:#d9bc9926;font-weight:400}.location-graphic i{position:absolute;left:57%;top:42%;width:8px;height:8px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 9px #d9bc9917,0 0 0 23px #d9bc990b}.location-graphic b{position:absolute;left:calc(57% + 22px);top:39%;font-size:.6875rem;font-weight:400;color:var(--gold)}.location-strip>.location-graphic:after{content:'SCHEMATISCHE STANDORTDARSTELLUNG';position:absolute;bottom:1rem;left:1rem;font-size:.6875rem;letter-spacing:.1em;color:#b2bbae}.location-strip h2{margin-top:1.5rem}.location-strip em{color:var(--gold)}.location-strip>div>.eyebrow{color:var(--gold)}.location-strip>div>p:last-child{font-size:.87rem;color:#bfc4ba;margin-top:1.5rem;max-width:50ch}.legal-intro{padding-bottom:2rem}.legal-content{max-width:1050px;padding-bottom:5rem}.legal-content h2{font-size:1.5rem;letter-spacing:-.03em;margin:2rem 0 1rem}.legal-content p{font-size:.87rem;color:#4e5b53;max-width:80ch}.legal-content a{text-decoration:underline}.draft-note{border-left:2px solid var(--ochre);padding:1rem 1.5rem;background:#e8e3d8;font-size:.8rem;color:#5e5d50;margin-bottom:2rem}.not-found{padding-top:190px;padding-bottom:6rem;min-height:75svh}.not-found h1{margin-top:1.5rem}.not-found>p:not(.eyebrow){max-width:48ch;margin-top:2rem;color:var(--muted)}.not-found .button{margin-top:2rem}
/* Progressive motion: content is visible until enhancement has initialized. */
.reveal-ready [data-reveal]{transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal-ready [data-reveal]:not(.in-view){opacity:0;transform:translateY(28px)}.reveal-ready [data-reveal].in-view{opacity:1;transform:none}
@media(min-width:1700px){.pad,.site-header,.site-footer,.contact-band{padding-inline:max(var(--pad),calc((100vw - var(--max))/2))}}
@media(max-width:1100px){.site-header{gap:1rem}.desktop-nav{gap:1.3rem;margin-right:1vw}.header-contact{font-size:.6875rem;gap:.8rem}.header-actions{gap:.8rem}.scroll-note{font-size:.6875rem}.motion-toggle{font-size:.6875rem;gap:.5rem}.intro-grid{gap:5vw}.service-art{transform:rotate(-25deg) skew(12deg) scale(.8)}.project-grid{gap:2rem}.footer-grid{gap:2rem}.answer-block{grid-template-columns:.6fr 1.3fr 1.3fr;gap:1.8rem}.detail-title-grid{gap:2rem}.detail-title-grid .service-art{transform:rotate(-25deg) skew(12deg) scale(1.15)}.contact-layout{gap:5vw}.contact-big-phone{font-size:2.5vw}.footer-bottom{font-size:.6875rem;gap:1rem}.footer-bottom>div{gap:1rem}}
@media(max-width:800px){.desktop-nav{display:none}.site-header{height:90px}.header-contact{font-size:.7rem}.scene-callout.callout-a{top:29%;right:29%;font-size:.6875rem;min-width:145px}.callout-b{right:32%;bottom:19%;font-size:.6875rem}.scene-caption{right:28%;font-size:.6875rem;bottom:2%}.scroll-note{font-size:.6875rem}.motion-toggle{font-size:.6875rem}.intro{padding-top:2.5rem;padding-bottom:3rem}.intro-grid{margin-top:2.5rem;grid-template-columns:1fr;gap:2rem}.intro-grid h2{font-size:clamp(2.5rem,6.4vw,3.5rem)}.intro-side{max-width:75%}.intro-side>p:not(.large-copy){max-width:50ch}.intro-side .text-link{margin-top:1rem}.fact-strip{margin-top:3rem}.fact-strip>div{padding-inline:1.3rem}.fact-strip span{font-size:.6875rem}.fact-strip strong{font-size:2.7rem}.fact-strip>div:last-child strong{font-size:2rem}.competencies{padding-block:2rem 3rem}.section-heading{margin:2.5rem 0;align-items:start}.section-heading h2{font-size:clamp(2.2rem,5vw,3rem)}.section-heading>.text-link{font-size:.6875rem}.service-art{transform:rotate(-25deg) skew(12deg) scale(.65)}.project-type{display:none}.project-card:nth-child(even){padding-top:3rem}.project-caption h3{font-size:1.5rem}.projects-home{padding-block:3rem}.image-label{font-size:.6875rem;left:.7rem;bottom:.7rem}.archive-strip{grid-template-columns:1fr 1fr;margin-top:2.5rem}.archive-strip>p{grid-column:1/-1}.archive-strip>p br{display:none}.method{padding-block:4rem;gap:5vw}.method h2{font-size:3.9vw}.method-left>p:not(.eyebrow),.method-steps p{font-size:.77rem}.method-steps h3{font-size:1.65rem}.method-steps li{gap:1rem}.network{padding-block:3rem}.network>div{display:block}.network .text-link{margin-top:1rem}.faq-section{gap:5vw;padding-block:3rem}.faq-section h2{font-size:2rem}.faq-list summary{font-size:.77rem;padding:1.1rem 0}.faq-answer p{font-size:.75rem}.contact-band{padding-block:3rem;gap:4vw}.contact-band h2{font-size:6.6vw}.contact-band-side p{font-size:.77rem}.contact-band .eyebrow{font-size:.6875rem}.contact-band-side .button{font-size:.7rem;gap:2rem}.contact-band-side>.text-link{font-size:.7rem}.footer-grid{grid-template-columns:1.2fr 1fr;gap:2.5rem}.footer-top{gap:2rem}.footer-top p{font-size:.6875rem}.footer-bottom{display:grid;grid-template-columns:1fr auto;row-gap:.6rem}.footer-bottom>div{grid-column:1/-1}.page-intro{padding-top:120px;padding-bottom:3rem}.breadcrumb{margin-bottom:2.5rem}.page-intro h1{font-size:clamp(2.7rem,6.3vw,4rem)}.page-lead{font-size:1.05rem;max-width:56ch}.answer-block{grid-template-columns:1fr 1fr;gap:1.4rem}.answer-block>.eyebrow{grid-column:1/-1}.answer-block h2{font-size:2rem}.answer-block>p:last-child{font-size:.8rem}.detail-title-grid{grid-template-columns:1fr}.detail-title-grid .service-art{display:none}.scope-grid{grid-template-columns:1fr;gap:2rem}.scope-grid>div>p{max-width:50ch}.scope-grid h2 br{display:none}.scope-items{gap:2rem}.scope{padding-block:3rem}.related-grid{gap:3vw}.related-grid p:not(.eyebrow){font-size:.75rem}.related-grid h2{font-size:1.8rem}.related-grid .text-link{font-size:.6875rem}.filter-bar{gap:1.4rem}.filter-bar button{font-size:.6875rem}.about-statement{gap:5vw}.director-card{padding:1.5rem}.director-monogram{margin-block:3rem;font-size:7rem}.director-monogram>span{font-size:1.5rem}.director-card h2{font-size:1.6rem}.director-card>p:last-child{font-size:.6875rem}.about-statement>div:last-child>h2{font-size:2rem}.about-statement>div:last-child>p:not(.eyebrow){font-size:.8rem}.about-statement>div:last-child>.large-copy{font-size:1.1rem}.about-model{gap:4vw}.about-model h2{font-size:2rem}.value-grid{gap:1.5rem}.value-grid h3{font-size:1.5rem}.value-grid p{font-size:.77rem}.contact-layout{gap:5vw}.contact-big-phone{font-size:2.8vw}.project-brief{padding:1.5rem}.project-brief h2{font-size:2.2rem}.project-brief>p:not(.eyebrow){font-size:.76rem}.contact-info>.eyebrow{font-size:.6875rem}.contact-info>p:not(.eyebrow),.contact-info address{font-size:.77rem}.contact-prep ul{font-size:.71rem}.contact-prep>.eyebrow{font-size:.6875rem}.project-brief .button{font-size:.6875rem;gap:1rem;padding-inline:1rem}.location-strip{grid-template-columns:.8fr 1.2fr;gap:3vw}.location-strip h2{font-size:2.1rem}.location-strip>div>p:last-child{font-size:.8rem}}
@media(max-width:540px){:root{--pad:1.25rem}html{scroll-padding-top:25px}body{font-size:15px}.site-header{height:82px;gap:.5rem}.brand{gap:.6rem}.brand>span{font-size:1.5rem}.brand small{font-size:.6875rem;margin-top:.4rem}.header-contact{font-size:.6875rem;gap:.55rem}.header-contact>span{font-size:1rem}.header-actions{gap:.6rem}.menu-toggle{width:30px;padding:3px}.menu-toggle span{width:21px}.scene-caption{right:23%;bottom:1%;font-size:.6875rem}.scene-callout.callout-a{top:20%;right:28%;min-width:112px;font-size:.6875rem;padding-bottom:5px;gap:.4rem}.callout-a small{font-size:.6875rem;left:10px;top:calc(100% + 4px)}.callout-dot{width:4px;height:4px}.callout-b{bottom:17%;right:30%;font-size:.6875rem}.scroll-note{font-size:.6875rem;gap:.6rem}.scroll-line{height:20px}.motion-toggle{font-size:.6875rem;gap:.45rem}.motion-toggle>span{font-size:.8rem}.section-meta{padding-top:1rem}.section-meta>.eyebrow{font-size:.6875rem}.section-meta>span{display:none}.intro{padding-top:2rem;padding-bottom:2.5rem}.intro-grid{margin-top:2rem;gap:1.5rem}.intro-grid h2{font-size:2.55rem;line-height:1.08}.intro-side{max-width:none}.intro-side>.large-copy{font-size:1.2rem;max-width:25ch}.intro-side>p:not(.large-copy){font-size:.81rem;max-width:none}.intro-side .text-link{font-size:.7rem}.fact-strip{margin-top:2.3rem;padding-top:1.3rem;grid-template-columns:1fr 1fr}.fact-strip strong{font-size:2.7rem}.fact-strip>div{padding-left:1.5rem}.fact-strip span{font-size:.6875rem;max-width:18ch}.fact-strip>div:last-child{grid-column:1/-1;margin-top:1.5rem;padding:1rem 0 0;border-left:0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}.fact-strip>div:last-child strong{font-size:1.75rem}.fact-strip>div:last-child>span{font-size:.6875rem;max-width:none;text-align:right;margin-top:0}.section-heading{display:block;margin:2rem 0}.section-heading h2{font-size:2.1rem;line-height:1.1}.section-heading>.text-link{font-size:.6875rem;margin-top:1.3rem}.competencies{padding-top:1.5rem}.service-row>.service-art{display:none}.projects-home{padding-block:2.5rem}.project-grid{grid-template-columns:1fr;gap:2rem}.project-card:nth-child(even),.portfolio .project-card:nth-child(even){padding-top:0}.project-image{aspect-ratio:1.42}.project-caption h3{font-size:1.65rem}.project-caption .eyebrow{font-size:.6875rem}.project-type{display:block;font-size:.6875rem}.image-label{font-size:.6875rem;padding:.4rem .55rem}.archive-strip{grid-template-columns:1fr;gap:1.3rem}.archive-strip>p{font-size:.6875rem}.archive-strip>a{border-top:1px solid #d0cec1;padding-top:.8rem}.archive-strip>a>span:last-child{bottom:.1rem}.archive-strip strong{font-size:1.2rem}.archive-strip .eyebrow{font-size:.6875rem}.method{grid-template-columns:1fr;padding-block:3rem;gap:2rem}.method h2{font-size:2.5rem;margin-top:1.5rem}.method-left>.eyebrow{font-size:.6875rem}.method-left>p:not(.eyebrow){font-size:.8rem;max-width:40ch;margin-block:1.4rem}.method .text-link{font-size:.6875rem}.method-steps{margin:0}.method-steps li{padding-block:1.4rem;gap:1.5rem}.method-steps h3{font-size:1.7rem}.method-steps p{font-size:.79rem;max-width:none}.network{padding-block:2.5rem}.network>.eyebrow{font-size:.6875rem;letter-spacing:.09em}.network h2{font-size:1.9rem;line-height:1.12}.network>div>p{font-size:.8rem}.network .text-link{font-size:.6875rem}.faq-section{grid-template-columns:1fr;padding-block:2.5rem;gap:1.8rem}.faq-section>.eyebrow{font-size:.6875rem}.faq-section h2{font-size:2.3rem;margin-top:1rem}.faq-list summary{font-size:.8rem;padding-block:1.2rem}.faq-answer p{font-size:.78rem}.faq-answer{padding-right:1rem}.contact-band{grid-template-columns:1fr;padding-block:2.5rem;gap:2rem}.contact-band h2{font-size:3.7rem;margin-top:1.4rem}.contact-band .eyebrow{font-size:.6875rem}.contact-band-side p{font-size:.81rem;margin-bottom:1.3rem}.contact-band-side .button{font-size:.75rem}.contact-band-side>.text-link{font-size:.7rem}.site-footer{padding-top:2.5rem}.footer-top{gap:1rem;align-items:start;flex-wrap:wrap;position:relative;padding-bottom:1.5rem}.footer-wordmark{font-size:3.7rem}.footer-top p{width:100%;font-size:.6875rem}.footer-top .round-link{position:absolute;right:0;top:.15rem;width:38px;height:38px}.footer-grid{gap:2rem 1.2rem;padding-block:2rem 2.5rem}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer-grid>div:last-child>a{display:inline-block;margin-right:1.5rem}.footer-grid .eyebrow{font-size:.6875rem;margin-bottom:.8rem}.footer-grid>div>a{font-size:.6875rem}.footer-grid .footer-phone{font-size:1.7rem}.footer-grid address{font-size:.6875rem}.footer-bottom{display:block;font-size:.6875rem;line-height:1.8;padding-block:1rem}.footer-bottom>span{display:block}.footer-bottom>span:nth-child(2){margin-top:.3rem}.footer-bottom>div{margin-top:.7rem;gap:1.2rem;flex-wrap:wrap}.menu-top{padding-top:0}.menu-top .eyebrow{font-size:.6875rem}.menu-close{font-size:.6875rem;gap:.7rem}.site-menu{padding-top:1.1rem}.site-menu nav{margin:1.5rem 0}.site-menu nav a{font-size:2.7rem;gap:1rem;padding:.85rem 0}.site-menu nav small{font-size:.6875rem}.site-menu nav a>span{font-size:1.5rem}.menu-bottom{font-size:.6875rem;margin-top:2rem;gap:1rem;flex-wrap:wrap}.menu-bottom>a{font-size:1.3rem}.page-intro{padding-top:106px;padding-bottom:2.5rem}.breadcrumb{margin-bottom:2rem;font-size:.6875rem;gap:.5rem}.page-intro>.eyebrow{font-size:.6875rem;margin-bottom:1.2rem}.page-intro h1{font-size:clamp(2.5rem,10.5vw,3.5rem);line-height:1.07}.page-lead{font-size:.96rem;margin-top:1.5rem}.service-overview{padding-bottom:2.5rem}.answer-block{grid-template-columns:1fr;gap:1rem;padding-block:2rem}.answer-block h2{font-size:1.9rem}.answer-block>p:last-child{font-size:.82rem}.detail-title-grid h1{font-size:clamp(2.4rem,10vw,3.4rem)}.detail-title-grid .button{font-size:.72rem;margin-top:1.5rem}.audience{font-size:.6875rem;margin-top:2rem;padding-top:1rem}.scope{padding-block:2rem 2.5rem}.scope-grid{margin-top:2rem;gap:2rem}.scope-grid h2{font-size:2.4rem}.scope-grid h2 br{display:block}.scope-grid>div>p{font-size:.79rem;margin-top:1rem}.scope-items{grid-template-columns:1fr;gap:1.5rem}.scope-items article{display:grid;grid-template-columns:25px 1fr;gap:.5rem .6rem}.scope-items article>.eyebrow{grid-row:1/3;margin-top:.2rem;font-size:.6875rem}.scope-items h3{font-size:1.35rem}.scope-items p{margin:0;font-size:.79rem;grid-column:2}.related-project{padding-block:2rem 2.5rem}.related-project>.eyebrow{font-size:.6875rem}.related-grid{grid-template-columns:1fr;gap:1.7rem;margin-top:1.5rem}.related-grid h2{font-size:2.3rem}.related-grid p:not(.eyebrow){font-size:.82rem;margin-top:1rem}.related-grid .text-link{font-size:.7rem}.related-grid>div>.eyebrow{font-size:.6875rem;margin-bottom:.7rem}.other-services{padding-bottom:2.5rem}.other-services>.eyebrow{font-size:.6875rem}.other-services>a{font-size:1.5rem;padding-block:1.2rem;line-height:1.2}.portfolio{padding-bottom:2.5rem}.filter-bar{gap:.6rem 1rem;padding-block:.6rem;margin-bottom:2rem}.filter-bar button{font-size:.6875rem;gap:.4rem;min-height:40px}.filter-bar button>span{font-size:.6875rem}.about-statement{grid-template-columns:1fr;padding-bottom:3rem;gap:2rem}.director-card{padding:1.5rem 2rem}.director-monogram{font-size:8rem;margin:2rem 0 1.5rem}.director-card h2{font-size:2rem}.director-card>p:last-child{font-size:.75rem}.about-statement>div:last-child>h2{font-size:2.4rem}.about-statement>div:last-child>.eyebrow{font-size:.6875rem}.about-statement>div:last-child>p:not(.eyebrow){font-size:.82rem}.about-statement>div:last-child>.large-copy{font-size:1.2rem}.about-statement .text-link{font-size:.7rem}.about-model{grid-template-columns:1fr;gap:2rem;padding-block:2.5rem}.about-model h2{font-size:2.3rem}.about-model>div>.eyebrow{font-size:.6875rem}.about-model>div>p:last-child{font-size:.82rem}.values{padding-block:2.5rem}.values>.eyebrow{font-size:.6875rem}.values>h2{font-size:2.3rem}.value-grid{grid-template-columns:1fr;gap:1.6rem;margin-top:2rem}.value-grid article{display:grid;grid-template-columns:30px 1fr;gap:.6rem}.value-number{grid-row:1/3;margin-top:.2rem;font-size:.6875rem}.value-grid h3{margin:0;font-size:1.6rem}.value-grid p{grid-column:2;margin:0;font-size:.81rem;max-width:none}.contact-layout{grid-template-columns:1fr;gap:2rem;padding-bottom:2.5rem}.contact-info{padding-top:0}.contact-info>.eyebrow{font-size:.6875rem}.contact-big-phone{font-size:2.15rem}.contact-info>p:not(.eyebrow){margin-top:1.5rem;font-size:.82rem}.contact-info address{font-size:.82rem;margin-top:1.3rem}.contact-prep{margin-top:1.5rem}.contact-prep>.eyebrow{font-size:.6875rem}.contact-prep ul{font-size:.77rem}.project-brief{padding:1.5rem}.project-brief h2{font-size:2.4rem}.project-brief>p:not(.eyebrow){font-size:.79rem}.project-brief .button{font-size:.7rem;gap:.6rem}.project-brief label{font-size:.6875rem}.project-brief input,.project-brief select,.project-brief textarea{font-size:16px}.location-strip{grid-template-columns:1fr;padding-block:2.5rem;gap:2rem}.location-strip>.location-graphic{height:210px}.location-strip h2{font-size:2.3rem}.location-strip>div>p:last-child{font-size:.81rem}.location-strip>div>.eyebrow{font-size:.6875rem}.legal-content{padding-bottom:3rem}.legal-content h2{font-size:1.4rem}.legal-content p{font-size:.81rem}.draft-note{font-size:.75rem;padding:1rem}.not-found{padding-top:145px;padding-bottom:4rem}.not-found h1{font-size:3rem}.not-found>p:not(.eyebrow){font-size:.9rem}.not-found .button{font-size:.73rem}}
@media(max-width:359px){.header-contact{display:none}.contact-band h2{font-size:3.2rem}.contact-big-phone{font-size:1.8rem}.project-type{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-ready [data-reveal]:not(.in-view){opacity:1;transform:none}.hero-progress{display:none}.project-card:hover .project-image img{transform:none}}
@media print{.site-header,
.site-footer,
.site-menu,
.contact-band,
.scene-canvas,
.scene-callout,
.hero-progress{display:none!important}.pad{padding:1.5rem}.project-grid,
.intro-grid,
.scope-grid,
.contact-layout{display:block}.project-card{break-inside:avoid;padding-top:1rem!important}.page-intro{padding-top:2rem}body{background:#fff;color:#000}.method,.site-footer{background:#fff;color:#000}.reveal-ready [data-reveal]{opacity:1!important;transform:none!important}}

/* V2 art-direction pass: a composed opening with readable development chapters. */
.scene-caption { font-size: .6875rem; bottom: 7%; right: 16%; }
.scene-callout.callout-a { font-size: .72rem; }
.callout-a small { font-size: .6875rem; }
.callout-b { font-size: .6875rem; }
.scroll-note, .motion-toggle { font-size: .6875rem; }
.scene-enable {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: .7rem 0;
  border-bottom: 1px solid #d9bc9980;
  color: var(--gold);
  font-size: .75rem;
  gap: 1.5rem;
}
.scene-enable:disabled { opacity: .65; }
.static-story .motion-toggle,
.static-story .hero-progress { display: none; }
.static-story { height: auto; }
.hero-story.static-story .scene-poster { opacity: .85; }
.contact-call { margin-top: 1.5rem; font-size: .78rem; gap: 1.5rem; }
.project-start {
  padding-block: 4rem;
  background: var(--night);
  color: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 2rem 8vw;
}
.project-start > div > .eyebrow { color: var(--gold); }
.project-start h2 { margin-top: 1.5rem; font-size: clamp(2rem, 3.8vw, 4rem); }
.project-start em { color: var(--gold); }
.project-start ol { margin: 0; padding: 0; list-style: none; }
.project-start li { display: grid; grid-template-columns: 2rem 1fr; gap: 1rem; border-top: 1px solid #ffffff2e; padding-block: 1.3rem; }
.project-start li > span { font-size: .6875rem; color: var(--gold); padding-top: .3rem; }
.project-start h3 { font-size: 1.5rem; letter-spacing: -.035em; }
.project-start li p { font-size: .85rem; color: #c0c7bc; margin-top: .6rem; max-width: 50ch; }
.project-start > .text-link { grid-column: 1; justify-self: start; align-self: start; color: var(--gold); margin-top: -1rem; }
@media (min-width: 768px) and (max-width: 1100px) {
  .scroll-note, .motion-toggle { font-size: .6875rem; }
  .scene-caption { font-size: .6875rem; right: 23%; }
  .scene-callout.callout-a { font-size: .6875rem; }
  .callout-a small { font-size: .6875rem; }
  .callout-b { font-size: .6875rem; }
}
@media (max-width: 767px) {
  .scene-poster { mask-image: linear-gradient(0deg, transparent, #000 15%, #000 88%, transparent); object-position: center; }
  .scene-callout.callout-a { right: 12%; top: 16%; font-size: .6875rem; min-width: 140px; }
  .callout-a small { font-size: .6875rem; }
  .callout-b { right: 13%; bottom: 16%; font-size: .6875rem; }
  .scene-caption { right: 9%; bottom: 3%; font-size: .6875rem; }
  .scroll-note, .motion-toggle { font-size: .6875rem; }
  .scene-enable { font-size: .69rem; }
  .project-start { padding-block: 3rem; grid-template-columns: 1fr; gap: 2rem; }
  .project-start h2 { font-size: 2.6rem; }
  .project-start > div > .eyebrow { font-size: .6875rem; }
  .project-start > .text-link { margin-top: 0; font-size: .75rem; }
}
@media (max-width: 359px) {
  .scene-enable { font-size: .6875rem; gap: .7rem; }
}
/* Opt-in sits on the model itself, so activating it never requires a scroll back. */
.hero-visual .scene-enable {
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  z-index: 7;
  pointer-events: auto;
  padding: .85rem 1.15rem;
  border: 1px solid #d9bc99a6;
  background: #29252bed;
  white-space: nowrap;
  max-width: calc(100% - 2rem);
  box-shadow: 0 .6rem 2rem #00000024;
}

/* Dossier register: ordinary anchors stay useful without JavaScript. */
.section-nav {
  position: sticky;
  top: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 3rem);
  border-block: 1px solid var(--line);
  background: #f4f0e8f5;
  backdrop-filter: blur(12px);
  min-width: 0;
}
.section-nav-label { font-size: .6875rem; color: var(--muted); white-space: nowrap; }
.section-nav ol { display: flex; flex: 1; gap: clamp(1rem, 2.3vw, 2.5rem); list-style: none; margin: 0; padding: .4rem 0; min-width: 0; overflow-x: auto; }
.section-nav li { flex-shrink: 0; }
.section-nav a { display: inline-flex; align-items: center; gap: .55rem; padding: .75rem .2rem; min-height: 44px; font-size: .76rem; white-space: nowrap; }
.section-nav a > span { color: var(--ochre); font-size: .6875rem; }
.section-nav a:hover { color: var(--ochre); }
.section-nav a:focus-visible { outline-offset: -2px; }
#einordnung, #leistungsumfang, #projekteinblick, #projektstart, #fragen, #archivbild,
#ausgangslage, #rolle, #perspektive-projekt { scroll-margin-top: 5rem; }
body.viewer-open { overflow: hidden; }
.archive-image-link { display: block; position: relative; }
.image-view-hint { position: absolute; bottom: 1rem; right: 1rem; display: flex; align-items: center; gap: 1.5rem; background: var(--night); color: var(--paper); padding: .7rem 1rem; font-size: .72rem; border: 1px solid #ffffff30; }
.image-view-hint > span { color: var(--gold); font-size: 1.2rem; }
.archive-image-link:hover .image-view-hint { background: #2c4048; }
.archive-viewer { width: min(94vw, 100rem); max-width: none; max-height: 94dvh; border: 1px solid #d9bc9955; padding: clamp(1rem, 2vw, 2rem); background: var(--night); color: var(--paper); }
.archive-viewer[open] { display: grid; height: 92dvh; grid-template-rows: auto minmax(0, 1fr) auto; gap: 1rem; }
.archive-viewer::backdrop { background: #080f14e8; }
.viewer-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #ffffff29; padding-bottom: .5rem; }
.viewer-bar > p { font-size: .84rem; letter-spacing: -.01em; }
.viewer-close { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; padding: .5rem; font-size: .75rem; color: var(--gold); }
.viewer-close span { font-size: 1.8rem; line-height: 1; }
.viewer-stage { min-height: 0; display: grid; place-items: center; }
.viewer-stage .viewer-original { width: 100%; height: 100%; max-height: 100%; object-fit: contain; }
.viewer-caption { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.viewer-caption p { font-size: .7rem; color: #c6cbbf; max-width: 75ch; }
.viewer-caption a { display: inline-flex; align-items: center; gap: 1rem; min-height: 32px; color: var(--gold); font-size: .73rem; flex-shrink: 0; text-decoration: underline; text-underline-offset: .3rem; }
.archive-viewer :focus-visible { outline-color: var(--gold); }
.brief-context { font-size: .8rem; line-height: 1.6; border-left: 2px solid var(--ochre); padding: .6rem 1rem; margin-top: 1.2rem; color: var(--ink); }
/* Informative captions retain a readable minimum, even on narrow screens. */
.project-caption .eyebrow,
.project-type,
.archive-strip .eyebrow,
.footer-grid .eyebrow,
.related-grid > div > .eyebrow,
.other-services > .eyebrow,
.about-model figcaption,
.contact-prep > .eyebrow { font-size: clamp(.7rem, .65vw, .8rem); line-height: 1.6; }
.image-label { font-size: .6875rem; letter-spacing: .05em; }
.scope-items p { max-width: 62ch; line-height: 1.8; }
@media (max-width: 767px) {
  .section-nav { gap: .6rem; }
  .section-nav-label { display: none; }
  .section-nav ol { gap: 1.3rem; padding-block: .25rem; scrollbar-width: thin; }
  .section-nav a { font-size: .73rem; min-height: 46px; }
  .section-nav a > span { font-size: .6875rem; }
  .viewer-caption { display: block; }
  .viewer-caption a { margin-top: .5rem; min-height: 44px; }
  .viewer-bar > p { font-size: .73rem; max-width: 25ch; }
  .viewer-close { gap: .6rem; font-size: .7rem; }
  .image-view-hint { bottom: .65rem; right: .65rem; font-size: .6875rem; padding: .55rem .8rem; gap: 1rem; }
  .project-caption { flex-wrap: wrap; gap: .5rem 1rem; }
  .footer-grid > div > a { font-size: .74rem; }
}
@media print {
  .section-nav, .image-view-hint, .archive-viewer { display: none !important; }
}
html:has(.section-nav) { scroll-padding-top: 0; }

/* Schriftzug in Times (Kundenvorgabe): echte Times, wo vorhanden, sonst die maßgleiche Liberation Serif. */
@font-face{font-family:HopperMarke;src:local('Times New Roman'),local('TimesNewRomanPSMT'),url('../fonts/marke-serif.woff2') format('woff2');font-weight:400;font-display:swap}
/* Hopper identity: an architectural journal, with marks derived from an opening. */
@font-face{font-family:HopperEditorial;src:url('../fonts/editorial-latin.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:HopperEditorial;src:url('../fonts/editorial-ext.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--editorial:HopperEditorial,Georgia,serif;--brand:HopperMarke,'Times New Roman',Times,serif}
html{scrollbar-gutter:stable}
html.lenis,html.lenis body{height:auto}
html.lenis,html.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:clip}
[data-lenis-prevent], [data-lenis-prevent-horizontal]{overscroll-behavior:contain}
h1,h2{font-family:var(--editorial);font-weight:700;letter-spacing:-.045em;line-height:1.13}
h1 em,h2 em{font-style:normal;font-weight:700}
.hopper-wordmark,.brand>.hopper-wordmark{display:inline-grid;gap:.25rem;font-family:var(--brand);font-weight:400;line-height:1;letter-spacing:0;white-space:nowrap}
.hopper-name{display:block;font:400 2.65rem/.96 var(--brand);letter-spacing:.065em}
.hopper-suffix{display:block;font:400 .6875rem/1.2 var(--brand);letter-spacing:.025em;color:var(--ochre)}
.menu-brand .hopper-suffix,
.footer-wordmark .hopper-suffix{color:#ddc2a2}
.brand{flex-shrink:0;gap:0}
.menu-brand{display:block}
.menu-top{gap:1rem}
.menu-top .hopper-name{font-size:2.6rem}
.site-menu nav a{font-family:var(--editorial);font-weight:700;letter-spacing:-.025em}
.footer-wordmark{font-size:inherit;line-height:1;letter-spacing:0}
.footer-wordmark .hopper-name{font-size:clamp(3.5rem,7vw,7.8rem)}
.footer-wordmark .hopper-suffix{font-size:clamp(.65rem,1.15vw,1rem);margin-top:.3rem;letter-spacing:.075em}
.footer-network-logo{width:158px;height:auto;display:block;margin:.4rem 0 1rem}
/* The opening is an interaction cue, never a substitute for a link's text. */
.button{border:1px solid transparent;gap:2rem;min-height:54px;background:transparent;color:var(--ink);border-color:currentColor}
.button:hover{background:var(--ink);color:var(--paper)}
.button-dark{background:var(--night);color:var(--paper);border-color:var(--night)}
.button-dark:hover{background:#493941;border-color:#493941}
.text-link{gap:1.4rem;border-bottom:0;position:relative;padding-block:.85rem}
.text-link:after{content:'';position:absolute;bottom:.2rem;left:0;right:34px;height:1px;background:currentColor;opacity:.35;transform-origin:left;transition:transform .4s var(--ease)}
.text-link:hover:after{transform:scaleX(.65)}
.round-link{border:1px solid #ddc2a270;border-radius:0;width:auto;min-height:48px;padding:.7rem 1rem;display:flex;gap:1rem;font-size:.7rem;color:var(--paper)}
.back-top-label{font-size:.7rem}
/* Numbered project register replaces the shared staggered-card pattern. */
.projects-home{background:#ebe4d8;border-top:1px solid var(--line)}
.project-grid,.portfolio .project-grid{display:block}
.project-card,.project-card:nth-child(even),.portfolio .project-card:nth-child(even){display:grid;grid-template-columns:3.3rem minmax(0,1fr);gap:1.8rem;padding:2.5rem 0;border-top:1px solid #a8998560}
.dossier-number{font-family:var(--brand);font-size:2.5rem;line-height:1;color:var(--ochre);padding-top:.2rem}
.project-card>a{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4.5rem);align-items:center;min-width:0}
.project-image{aspect-ratio:1.55;background:#ddd5c9}
.project-image img{filter:saturate(.6);transition:filter .7s,transform 1.2s var(--ease)}
.project-card:hover .project-image img{transform:scale(1.015);filter:saturate(.95)}
.project-caption{display:block;padding:0;min-width:0}
.project-caption .eyebrow{font-size:.7rem;color:var(--ochre);margin-bottom:1rem;letter-spacing:.12em}
.project-caption h3{font-family:var(--editorial);font-size:clamp(2rem,3.1vw,3.5rem);font-weight:700;letter-spacing:-.04em;line-height:1.14}
.dossier-summary{font-size:.87rem;line-height:1.7;color:var(--muted);max-width:45ch;margin-top:1.25rem}
.dossier-tab{display:inline-flex;align-items:center;gap:1.8rem;min-height:46px;margin-top:1.7rem;border-top:1px solid var(--ochre);border-bottom:1px solid var(--ochre);color:var(--ochre);padding:.7rem 0;font-size:.72rem;letter-spacing:.035em}
.image-label{font-size:.6875rem;letter-spacing:.035em;background:var(--paper);color:var(--ink);left:0;bottom:0;padding:.55rem .9rem}
.archive-strip{border-top:1px solid #a8998560;margin-top:1rem;gap:2rem}
/* A measured working drawing in place of another dark promotional block. */
.method{position:relative;background:var(--paper);color:var(--ink);border-block:1px solid var(--line);overflow:hidden;padding-block:5.5rem}
.method:before{content:'';position:absolute;inset:0 0 0 51%;pointer-events:none;background-image:linear-gradient(#a8998514 1px,transparent 1px),linear-gradient(90deg,#a8998514 1px,transparent 1px);background-size:30px 30px}
.method h2 em,.method .eyebrow,.method-steps li>span{color:var(--ochre)}
.method-left>p:not(.eyebrow),.method-steps p{color:var(--muted)}
.method-left,.method-steps{position:relative;z-index:1}
.method-steps li{border-color:var(--line);padding-block:1.8rem}
.method-steps h3{font-family:var(--brand);letter-spacing:-.03em;font-size:2.5rem;font-weight:400}
.method-background{font-family:var(--brand);font-size:clamp(5rem,16vw,14rem);letter-spacing:-.04em;color:#a8998510;opacity:1;bottom:-2rem;right:2rem}
.intro-grid h2,.section-heading h2,.method h2,.network h2{letter-spacing:-.04em}
.section-meta{align-items:baseline}
.fact-strip strong{font-family:var(--brand);font-weight:400;letter-spacing:-.045em}
.network-identities{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;border-block:1px solid var(--line);margin:3rem 0 0}
.network-identities li{min-width:0}
.network-identities a{display:flex;min-height:166px;padding:1.5rem .5rem;align-items:center;justify-content:center;flex-direction:column;gap:1.1rem}
.network-identities img{width:auto;height:64px;max-width:220px;object-fit:contain}
.network-identities li:first-child img{height:auto;width:220px;max-height:64px}
.network-identities span{font-size:.7rem;color:var(--muted)}
.network-identities a:hover span{text-decoration:underline;text-underline-offset:.3rem}
.contact-band{background:#ebe4d8;border-top:1px solid #c7b49d;position:relative;padding-block:5rem}
.contact-band h2{font-size:clamp(3rem,5vw,5.7rem);line-height:1.13;letter-spacing:-.045em}
.contact-band h2 em{color:var(--ochre)}
.page-intro h1,.detail-title-grid h1{font-family:var(--editorial);font-weight:700;letter-spacing:-.045em;line-height:1.1}
.page-intro{position:relative}
.page-intro:after{content:'';display:block;width:60px;height:4px;background:var(--ochre);margin-top:2.2rem}
.scope h2,
.about-statement h2{letter-spacing:-.04em}
@media(min-width:1000px){.intro-grid{grid-template-columns:1fr 1fr;gap:7vw}.intro-grid h2{font-size:clamp(2.8rem,3.8vw,4.4rem)}.network-identities li+li{border-left:1px solid var(--line)}}
@media(max-width:1000px){.project-card,.project-card:nth-child(even){grid-template-columns:2rem minmax(0,1fr);gap:1rem}.project-card>a{gap:1.6rem}.dossier-number{font-size:1.9rem}.project-caption h3{font-size:2rem}.dossier-summary{font-size:.8rem}.network-identities{gap:1rem}.network-identities img{max-width:170px}.network-identities li:first-child img{max-width:170px}.method:before{inset:45% 0 0}.site-header{gap:1.3rem}}
@media(max-width:767px){
 .hopper-name{font-size:2.25rem}.hopper-suffix{font-size:.6875rem}.header-actions{gap:.7rem}
 .menu-top .hopper-name{font-size:2.15rem}.menu-top .hopper-suffix{font-size:.6875rem}
 .project-card,.project-card:nth-child(even),.portfolio .project-card:nth-child(even){grid-template-columns:2rem minmax(0,1fr);gap:.7rem;padding:1.7rem 0}
 .project-card>a{grid-template-columns:minmax(0,1fr);gap:1.2rem}
 .project-image{aspect-ratio:1.45}.project-caption .eyebrow{margin-bottom:.6rem}
 .project-caption h3{font-size:2.15rem}.dossier-summary{margin-top:.85rem;font-size:.84rem}
 .dossier-tab{margin-top:1rem;font-size:.7rem;gap:1.3rem}.image-label{font-size:.6875rem;max-width:100%}
 .method{padding-block:3.2rem}.method-steps h3{font-size:2rem}.method-background{bottom:0;font-size:6rem}
 .method h2,.intro-grid h2,.section-heading h2{font-size:clamp(2.2rem,7vw,3.2rem);line-height:1.14}
 .contact-band{padding-block:3.2rem}.contact-band h2{font-size:clamp(2.7rem,8vw,4rem)}
 .network-identities{grid-template-columns:1fr;margin-top:2rem;gap:0}
 .network-identities li+li{border-top:1px solid var(--line)}
 .network-identities a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-items:start;gap:1.2rem;min-height:110px;padding:1.2rem 0}
 .network-identities img{max-width:100%;max-height:58px}.network-identities li:first-child img{max-width:100%}
 .network-identities span{font-size:.6875rem}
 .footer-top{gap:1.7rem}.footer-top .round-link{position:static;order:3;min-height:44px;width:auto;height:auto;padding:.6rem .85rem;font-size:.7rem}
 .footer-wordmark{max-width:100%}.footer-wordmark .hopper-name{font-size:clamp(3rem,12vw,4.5rem)}.footer-wordmark .hopper-suffix{font-size:.6875rem;letter-spacing:.025em}
 .page-intro h1{font-size:clamp(2.4rem,9vw,3.5rem)}
}
@media(max-width:359px){.hopper-name{font-size:2rem}.hopper-suffix{font-size:.6875rem}.project-card,.project-card:nth-child(even){grid-template-columns:1.5rem minmax(0,1fr);gap:.5rem}.project-caption h3{font-size:1.9rem}.dossier-number{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.project-card:hover .project-image img{transform:none}.text-link:hover:after{transform:none}}
@media print{.dossier-number{color:#000}.project-card>a{display:block}.dossier-summary{max-width:none}.network-identities{display:none}.method{background:#fff;color:#000}}

/* Final alignment of the new identity across project dossiers and detail pages. */
.method :focus-visible{outline-color:var(--ochre)}
.portfolio.is-filtered .project-card{padding-top:2.5rem}
.project-brief{background:transparent;border-top:2px solid var(--ochre);padding:2rem 0 0}
.image-view-hint{border-radius:0;background:var(--night)}
.archive-image-link:hover .image-view-hint{background:#493941}
.scope-items article{border-top:1px solid var(--line);padding-top:1.25rem}
.scope-items h3{font-family:var(--brand);font-size:1.7rem;font-weight:400;letter-spacing:-.025em}
@media(max-width:767px){.portfolio.is-filtered .project-card{padding-top:1.7rem}.scope-items h3{font-size:1.5rem}.project-brief{padding-top:1.5rem}}

/* Exposé 04. The lift has sliding leaves inside a fixed, recessed opening. */
.portal-mark {
  --portal-width: 24px;
  --portal-height: 29px;
  display: inline-block;
  position: relative;
  width: var(--portal-width);
  height: var(--portal-height);
  flex: 0 0 var(--portal-width);
  color: inherit;
  border: 1px solid currentColor;
  padding: 3px 3px 2px;
  vertical-align: middle;
  isolation: isolate;
  transform: none;
  transition: none;
}
.portal-mark:before {
  content: '';
  position: absolute;
  inset: -3px 2px auto;
  height: 1px;
  background: currentColor;
  opacity: .42;
}
.portal-mark:after {
  content: '';
  position: absolute;
  top: 10px;
  right: -5px;
  width: 2px;
  height: 3px;
  background: currentColor;
  opacity: .45;
  transition: opacity .25s;
}
.portal-aperture {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid currentColor;
  background: linear-gradient(0deg, #ffffff30 0 1px, transparent 1px), linear-gradient(90deg, #00000080, #00000010 48%, #00000070), #3a3438;
  box-shadow: inset 0 2px 4px #00000060;
}
.portal-aperture:before,
.portal-aperture:after {
  content: '';
  position: absolute;
  inset-block: 0;
  width: 50%;
  background: linear-gradient(90deg, color-mix(in srgb, currentColor 14%, var(--paper)), color-mix(in srgb, currentColor 30%, var(--paper)) 48%, color-mix(in srgb, currentColor 14%, var(--paper)));
  opacity: 1;
  transform: translateX(0);
  transition: transform .7s cubic-bezier(.65, 0, .2, 1), opacity .5s;
  will-change: auto;
}
.portal-aperture:before { left: 0; border-right: 1px solid #ffffffa0; }
.portal-aperture:after { right: 0; border-left: 1px solid #00000040; }
/* The frame stays still: only the leaves retract. The text never slides. */
:is(a,button):is(:hover,:focus-visible) .portal-aperture:before { transform: translateX(-104%); opacity: .55; }
:is(a,button):is(:hover,:focus-visible) .portal-aperture:after { transform: translateX(104%); opacity: .55; }
:is(a,button):is(:hover,:focus-visible) .portal-mark:after { opacity: 1; }
.button .portal-mark,.text-link .portal-mark,.header-contact .portal-mark,
.button:hover .portal-mark,.text-link:hover .portal-mark { transform: none; font-size: inherit; }
.round-link .portal-mark { --portal-width: 19px; --portal-height: 24px; }
.chapter-label { padding-right: .8rem; border-right: 1px solid currentColor; margin-right: .1rem; }

/* A light cover, a dark model plate, and a separate working notebook. */
.hero-story {
  position: relative;
  height: 270svh;
  background: var(--paper);
  color: var(--ink);
}
body:has(.hero-story) .site-header { color: var(--ink); border-color: var(--line); }
body:has(.hero-story) .brand .hopper-suffix,
body:has(.hero-story) .header-contact>.portal-mark { color: var(--ochre); }
body:has(.hero-story) .site-header :focus-visible { outline-color: var(--ochre); }
.hero-sticky {
  position: sticky;
  top: 0;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(19.5rem, 30%);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(1rem, 2svh, 1.6rem) clamp(1.5rem, 3vw, 3.2rem);
  height: 100svh;
  min-height: 43rem;
  padding: clamp(8.1rem, 14svh, 10rem) var(--pad) 1.25rem;
  overflow: clip;
}
.hero-grid { display: none; }
.hero-coordinate { top: 124px; right: var(--pad); color: var(--muted); font-size: .6875rem; line-height: 1.65; }
.hero-title { grid-column: 1 / -1; grid-row: 1; padding-bottom: .1rem; }
.hero-title .hero-eyebrow { color: var(--ochre); font-size: .6875rem; margin: 0 0 .8rem; letter-spacing: .13em; }
.hero-title .live-dot { border-radius: 0; box-shadow: none; height: 5px; width: 20px; background: var(--ochre); }
.hero-title h1 { font-size: clamp(3.1rem, 5.5vw, 7.1rem); line-height: 1.12; letter-spacing: -.05em; text-wrap: balance; }
.hero-title h1 br { display: none; }
.hero-title h1 em { color: var(--ochre); }
.hero-visual {
  grid-column: 1;
  grid-row: 2;
  position: relative;
  inset: auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  opacity: 1;
  background: #242128;
  border: 1px solid #cfc3b2;
  overflow: hidden;
}
.hero-visual:before { display: none; }
.hero-visual:after { content: ''; position: absolute; inset: 14px; border: 1px solid #e4c8a31c; pointer-events: none; z-index: 3; }
.scene-poster { object-fit: contain; object-position: center; mask-image: none; mix-blend-mode: lighten; }
.scene-callout.callout-a { top: 1.6rem; right: 1.7rem; min-width: 0; font-size: .7rem; color: #eee5d8; }
.callout-a small { color: #baa68c; font-size: .6875rem; }
.scene-callout.callout-b { left: 1.7rem; right: auto; bottom: 1.65rem; font-size: .6875rem; color: #d4c5b2; }
.scene-caption { right: 1.7rem; bottom: 1.65rem; font-size: .6875rem; color: #d4c5b2; }
.hero-notebook {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.3rem;
  min-width: 0;
  min-height: 0;
}
.hero-copy { position: static; inset: auto; width: auto; grid-column: auto; grid-row: auto; align-self: auto; pointer-events: auto; }
.notebook-heading { font: 400 1.18rem/1.3 var(--brand); color: var(--ochre); margin-bottom: .8rem; }
.hero-copy .hero-intro { font-size: .9rem; line-height: 1.7; color: var(--muted); margin: 0; max-width: 40ch; }
.hero-links { display: grid; grid-template-columns: minmax(0,1fr); gap: .1rem; margin-top: 1rem; }
.hero-links .button { padding: .75rem 0; min-height: 46px; border: 0; border-block: 1px solid #98785865; background: transparent; color: var(--ochre); font-size: .77rem; gap: 1rem; }
.hero-links .button:hover { color: var(--ink); background: transparent; border-color: var(--ochre); }
.hero-links .text-link { color: var(--ink); font-size: .73rem; justify-content: space-between; padding-block: .7rem; }
.hero-links .text-link:after { display: none; }
.hero-stage-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 6;
  border-top: 1px solid var(--line);
  position: static;
  inset: auto;
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
  padding: .6rem 0 0;
  margin: 0;
  border-color: var(--line);
  flex-wrap: nowrap;
  gap: 1rem;
}
.stage-controls { display: flex; width: auto; order: 0; gap: .5rem; }
.stage-controls button { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding: .55rem .85rem; color: var(--muted); border: 1px solid transparent; background: transparent; font-size: .72rem; }
.stage-controls button>span { color: var(--ochre); font-size: .6875rem; }
.stage-controls button:after { display: none; }
.stage-controls button[aria-pressed=true] { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.stage-controls button[aria-pressed=true]>span { color: #e1c5a1; }
.motion-toggle,.scroll-note { color: var(--muted); font-size: .6875rem; }
.scroll-line { border-color: var(--ochre); }
.scroll-line:after { background: var(--ochre); }
.hero-progress { background: #a5835d20; }
.hero-progress span { background: var(--ochre); }
.hero-story.static-story { height: auto; }
.hero-story.static-story .stage-controls { display: none; }
.hero-story.static-story .hero-sticky { position: relative; height: auto; min-height: 0; grid-template-rows: auto auto auto; }
.hero-story.static-story .hero-visual { min-height: 30rem; }

/* One source of truth for the legend: generous inner space, with no text clipping. */
.phase-readout {
  --phase-padding: clamp(1.5rem, 2vw, 1.75rem);
  width: 100%;
  margin: 0;
  padding: var(--phase-padding);
  align-self: auto;
  background: #eae2d4;
  color: var(--ink);
  border: 1px solid #d2c1a9;
  box-shadow: 3px 3px 0 #d9cfbf80;
  min-width: 0;
}
.phase-card { display: block; min-block-size: 12.4rem; padding: 0; border: 0; }
.phase-card:not(:first-child) { display: none; }
.hero-story.phase-ready .phase-card { display: block; }
.phase-index { display: flex; align-items: center; gap: .85rem; color: var(--muted); font: 400 .6875rem/1.5 Plex,Arial,sans-serif; letter-spacing:0; text-transform:none; margin: 0 0 1rem; }
.phase-number { font: 400 2.4rem/1 var(--brand); letter-spacing: -.04em; color: var(--ochre); }
.phase-card h2 { font: 400 clamp(1.4rem, 1.6vw, 1.7rem)/1.2 var(--brand); letter-spacing: -.025em; margin: 0 0 .8rem; text-wrap: balance; }
.phase-card p { font-size: .82rem; line-height: 1.75; color: #655c53; margin: 0; max-width: 42ch; overflow-wrap: break-word; }

/* Three thematic folios replace the horizontal service list. */
.service-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #cbb99f; }
.service-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  gap: 0;
  padding: 2rem clamp(1.3rem,2.5vw,3rem) 1.5rem;
  border: 0;
  border-bottom: 1px solid #cbb99f;
  background: transparent;
  transition: background .4s;
}
.service-row+.service-row { border-left: 1px solid #cbb99f; }
.service-row:first-child { padding-left: 0; }
.service-row:last-child { padding-right: 0; }
.service-row:hover { background: #e9e0d34a; }
.service-number { font: 400 3rem/1 var(--brand); letter-spacing: -.06em; color: #a48a6c; padding: 0; margin-bottom: 1.8rem; }
.service-row>div:not(.service-art) { flex: 1; }
.service-row>div>.eyebrow { font-size: .6875rem; letter-spacing: .07em; line-height: 1.65; min-height: 2.4rem; margin-bottom: 1rem; }
.service-row h3 { font: 400 clamp(1.75rem,2.15vw,2.6rem)/1.14 var(--brand); letter-spacing: -.035em; max-width: 15ch; }
.service-row>div>p:last-child { margin-top: 1rem; font-size: .87rem; line-height: 1.7; max-width: 32ch; }
.service-row>.service-art { display: block; align-self: center; justify-self: auto; margin: 2.3rem 0 2rem; transform: rotate(-25deg) skew(12deg) scale(.92); height: 145px; flex: 0 0 145px; }
.service-entry { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-top: 1px solid #cbb99f; padding-top: 1rem; font-size: .72rem; color: var(--ochre); min-height: 44px; }
/* An addressed invitation, with the contact action on its own line. */
.contact-band { background: var(--paper); grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 7vw; padding-block: 4.5rem 5rem; border-top: 1px solid var(--line); }
.contact-band-side { padding-left: 2rem; border-left: 1px solid #b6a080; }
.contact-band-side .invitation-copy { font: 400 clamp(1.35rem,1.8vw,2rem)/1.45 var(--brand); color: var(--ink); max-width: 34ch; margin: 0; }
.contact-band-side .invitation-person { display: grid; gap: .3rem; font: 400 .69rem/1.6 Plex,Arial,sans-serif; color: var(--muted); margin: 1.4rem 0 1.8rem; }
.invitation-person span { font: 400 1.25rem/1.2 var(--brand); color: var(--ochre); }
.contact-band-side .button { background: transparent; color: var(--ink); border-color: #a78e6c; justify-content: space-between; }
.contact-band-side .button:hover { background: var(--ink); color: var(--paper); }
@media(min-width:1700px) {
 .hero-sticky { padding-inline: max(var(--pad),calc((100vw - var(--max))/2)); }
 .hero-coordinate { right: max(var(--pad),calc((100vw - var(--max))/2)); }
}
@media(min-width:960px) and (max-height:800px) {
 .hero-sticky { padding-top: 8rem; gap: .85rem 2rem; min-height: 42rem; }
 .hero-title h1 { font-size: clamp(3rem,4.7vw,5rem); }
 .hero-coordinate { top: 115px; font-size: .6875rem; }
 .hero-title .hero-eyebrow { margin-bottom: .4rem; }
 .hero-copy .hero-intro { font-size: .8rem; line-height: 1.6; }
 .notebook-heading { font-size: 1.05rem; margin-bottom: .45rem; }
 .hero-notebook { gap: .85rem; }
 .hero-links { margin-top: .6rem; }
 .hero-links .button,.hero-links .text-link { min-height: 40px; padding-block: .5rem; font-size: .7rem; }
 .phase-readout { --phase-padding: 1.5rem; }
 .phase-card { min-block-size: 10.7rem; }
 .phase-index { margin-bottom: .7rem; }
 .phase-number { font-size: 2rem; }
 .phase-card h2 { font-size: 1.4rem; margin-bottom: .6rem; }
 .phase-card p { font-size: .78rem; line-height: 1.6; }
 .hero-stage-bottom { padding-top: .3rem; }
}
@media(max-width:959px),(max-height:699px) {
 .hero-story,.hero-story.reduced-story { height: auto; min-height: 0; }
 .hero-sticky,.hero-story.reduced-story .hero-sticky,.hero-story.static-story .hero-sticky {
   position: relative; display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto auto;
   height: auto; min-height: 0; padding: 8.7rem var(--pad) 1.4rem; gap: 1.7rem;
 }
 .hero-title { grid-column: 1; grid-row: 1; }
 .hero-title h1 { font-size: clamp(2.8rem,7.8vw,5.5rem); line-height: 1.1; }
 .hero-title h1 br { display: block; }
 .hero-title .hero-eyebrow { font-size: .6875rem; margin-bottom: 1.15rem; }
 .hero-coordinate { display: none; }
 .hero-visual,.hero-story.static-story .hero-visual {
   position: relative; inset: auto; grid-column: 1; grid-row: 2; width: 100%; height: clamp(20rem,55vw,32rem); min-height: 0; margin: 0;
 }
 .hero-notebook { grid-column: 1; grid-row: 3; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 1.5rem; }
 .hero-copy { width: auto; }
 .hero-copy .hero-intro { font-size: .9rem; }
 .phase-readout { --phase-padding: 1.25rem; box-shadow: 2px 2px 0 #d9cfbf80; }
 .phase-card,.hero-story.phase-ready .phase-card { min-block-size: 0; padding: 0; }
 .hero-story.static-story .phase-card { padding: 1.25rem 0; }
 .phase-card:not(:first-child) { display: block; }
 .hero-story.static-story .phase-card:first-child { padding-top: 0; }
 .hero-story.static-story .phase-card:last-child { padding-bottom: 0; }
 .hero-story.static-story .phase-card+.phase-card { border-top: 1px solid #d2c1a9; }
 .phase-index { margin-bottom: .8rem; }
 .phase-card h2 { font-size: 1.5rem; }
 .phase-card p { font-size: .82rem; line-height: 1.75; }
 .hero-stage-bottom { grid-column: 1; grid-row: 4; flex-wrap: wrap; }
 .stage-controls { width: 100%; order: -1; justify-content: space-between; gap: .3rem; }
 .stage-controls button { padding-inline: .6rem; }
 .scene-caption { max-width: 58%; text-align: right; line-height: 1.5; }
 .scene-callout.callout-b { max-width: 29%; font-size: .6875rem; line-height: 1.5; }
}
@media(max-width:767px) {
 .service-list { grid-template-columns: minmax(0,1fr); }
 .service-row,.service-row:first-child,.service-row:last-child { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 140px; padding: 1.6rem 0; gap: 0 1rem; }
 .service-row+.service-row { border-left: 0; }
 .service-number { grid-column: 1; margin-bottom: 1.3rem; font-size: 2.5rem; }
 .service-row>div:not(.service-art) { grid-column: 1; grid-row: 2; }
 .service-row h3 { font-size: clamp(1.8rem,4.8vw,2.3rem); max-width: none; }
 .service-row>div>.eyebrow { min-height: 0; font-size: .6875rem; }
 .service-row>div>p:last-child { font-size: .84rem; max-width: none; }
 .service-row>.service-art { grid-column: 2; grid-row: 1 / 3; width: 140px; align-self: center; margin: 0; transform: rotate(-25deg) skew(12deg) scale(.64); }
 .service-entry { grid-column: 1 / -1; margin-top: 1.5rem; }
 .contact-band { grid-template-columns: minmax(0,1fr); gap: 2rem; padding-block: 3.2rem; }
 .contact-band-side { border-left: 0; border-top: 1px solid #b6a080; padding: 1.5rem 0 0; }
 .contact-band-side .invitation-copy { font-size: 1.45rem; }
}
@media(max-width:599px) {
 .hero-sticky,.hero-story.reduced-story .hero-sticky,.hero-story.static-story .hero-sticky { gap: 1.5rem; padding-top: 8rem; }
 .hero-notebook { grid-template-columns: minmax(0,1fr); gap: 1.6rem; }
 .hero-title h1 { font-size: clamp(2.55rem,8.6vw,3.4rem); }
 .hero-visual,.hero-story.static-story .hero-visual { height: 21rem; }
 .hero-visual:after { inset: 10px; }
 .scene-callout.callout-a { right: 1.2rem; top: 1.2rem; font-size: .6875rem; }
 .scene-callout.callout-b { left: 1.1rem; bottom: 1.2rem; font-size: .6875rem; }
 .scene-caption { right: 1.1rem; bottom: 1.2rem; font-size: .6875rem; }
 .phase-card h2 { font-size: 1.6rem; }
 .phase-index { font-size: .6875rem; }
 .phase-number { font-size: 2.25rem; }
 .stage-controls button { font-size: .6875rem; gap: .4rem; padding-inline: .4rem; }
}
@media(max-width:399px) {
 .service-row,.service-row:first-child,.service-row:last-child { grid-template-columns: minmax(0,1fr); }
 .service-row>.service-art { grid-column: 1; grid-row: 3; justify-self: start; align-self: start; margin: 1.2rem 0 .5rem 1.5rem; height: 95px; }
 .service-entry { grid-row: 4; margin-top: 1.2rem; }
 .hero-links .button { font-size: .74rem; }
}
@media(prefers-reduced-motion:reduce) {
 .portal-aperture:before,.portal-aperture:after { transition: none!important; transform: none!important; }
 .portal-mark:after { transition: none!important; }
 .hero-story { height: auto; }
 .hero-sticky { height: auto; min-height: 0; grid-template-rows: auto auto auto; }
 .hero-visual { min-height: 30rem; }
}
@media print {
 .hero-story { height: auto; min-height: 0; }
 .hero-title,.hero-notebook { display: block; color: #000; }
 .hero-title h1 { font-size: 3rem; }
 .hero-sticky { position: static; display: block; height: auto; min-height: 0; padding: 2rem; }
 .hero-visual,.hero-stage-bottom,.portal-mark,.hero-coordinate { display: none!important; }
 .phase-readout { color: #000; border: 1px solid #aaa; box-shadow: none; padding: 1.5rem; break-inside: avoid; }
 .phase-card { min-block-size: 0; }
 .service-list { display: block; }
 .service-row { break-inside: avoid; }
}

/* Project dossiers: editorial covers, original photography, a concrete role. */
.project-dossier { --dossier-rule:#b5a187; --dossier-soft:#e9e1d4; min-width:0; }
.dossier-cover {
 display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); grid-template-rows:auto auto auto;
 gap:1.6rem clamp(2rem,4.2vw,5rem); padding-top:clamp(8.5rem,12vw,11rem); padding-bottom:3.5rem;
}
.project-dossier .breadcrumb { grid-column:1/-1; grid-row:1; margin:0 0 .6rem; font-size:.73rem; line-height:1.6; flex-wrap:wrap; }
.dossier-heading { grid-column:1; grid-row:2; align-self:end; min-width:0; }
.dossier-heading>.eyebrow { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; font-size:.6875rem; color:var(--ochre); letter-spacing:.1em; }
.dossier-issue { border-block:1px solid var(--dossier-rule); padding:.35rem 0; }
.dossier-heading h1 { font-size:clamp(3.2rem,4.5vw,6rem); line-height:1.08; letter-spacing:-.055em; margin:1.25rem 0 0; hyphens:auto; }
.dossier-city { font:400 clamp(1.35rem,2.2vw,2.25rem)/1.25 var(--brand); color:var(--ochre); margin-top:.85rem; }
.dossier-cover-intro { grid-column:1; grid-row:3; padding-top:.5rem; align-self:start; min-width:0; }
.dossier-deck { font:400 clamp(1.4rem,1.8vw,1.95rem)/1.4 var(--brand); color:var(--ink); max-width:27ch; }
.dossier-cover-intro .dossier-summary { font-size:.92rem; line-height:1.8; margin-top:1.25rem; max-width:49ch; color:var(--muted); }
.dossier-cover-image { grid-column:2; grid-row:2/4; min-width:0; align-self:center; margin:0; }
.dossier-cover-image .archive-image-link { background:#dfd9ce; border:1px solid #baa88d70; box-shadow:12px 12px 0 #d9cfbd65; }
.dossier-cover-image .dossier-original { width:100%; height:auto; display:block; object-fit:contain; filter:none; }
.dossier-cover-image .image-view-hint { bottom:.9rem; right:.9rem; padding:.6rem .8rem; gap:.9rem; background:#f4f0e8f2; border:1px solid #aa9475; color:var(--ink); font-size:.7rem; }
.dossier-cover-image .archive-image-link:hover .image-view-hint { background:var(--paper); }
.dossier-cover-image .image-view-hint .portal-mark { --portal-width:18px; --portal-height:23px; }
.dossier-cover-image figcaption { display:flex; align-items:start; justify-content:space-between; gap:1.5rem; padding-top:1.2rem; font-size:.71rem; line-height:1.6; color:var(--muted); }
.dossier-image-register { flex-shrink:0; font-family:monospace; font-size:.6875rem; letter-spacing:.08em; color:var(--ochre); }
.dossier--panorama .dossier-cover { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.dossier--panorama .dossier-heading { align-self:center; }
.dossier--panorama .dossier-cover-intro { grid-column:2; grid-row:2; align-self:center; }
.dossier--panorama .dossier-cover-image { grid-column:1/-1; grid-row:3; width:100%; max-width:72rem; justify-self:center; margin-top:1.1rem; }
.dossier--panorama .dossier-cover-image .archive-image-link { box-shadow:none; }
.dossier--portrait .dossier-cover { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.dossier--portrait .dossier-cover-image { max-width:27.5rem; width:100%; justify-self:end; }
.dossier--portrait .dossier-cover-image .archive-image-link { background:var(--dossier-soft); padding:clamp(.8rem,1.7vw,1.5rem); }
.dossier--portrait .image-view-hint { bottom:1.5rem; right:1.5rem; }
.dossier--portrait .dossier-cover-image figcaption { padding-top:1.1rem; }
.dossier-nav { border-top-color:var(--dossier-rule); border-bottom-color:var(--dossier-rule); }
.dossier-nav .section-nav-label { color:var(--ochre); letter-spacing:.07em; }
.dossier-nav a { position:relative; }
.dossier-nav a:after { content:''; position:absolute; inset:auto .2rem .1rem; height:2px; background:var(--ochre); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.dossier-nav a[aria-current=location] { color:var(--ochre); }
.dossier-nav a[aria-current=location]:after { transform:scaleX(1); }
.dossier-facts { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr) minmax(0,1fr); margin:0; padding-block:1.6rem; gap:2rem; background:var(--dossier-soft); }
.dossier-facts>div { min-width:0; padding-right:1rem; }
.dossier-facts>div+div { padding-left:1.5rem; border-left:1px solid #b5a18785; }
.dossier-facts dt { font-size:.8125rem; line-height:1.6; text-transform:none; letter-spacing:0; color:var(--muted); }
.dossier-facts dd { margin:.6rem 0 0; font:400 clamp(1.1rem,1.4vw,1.45rem)/1.4 var(--brand); color:var(--ink); overflow-wrap:break-word; }
.dossier-context,.dossier-perspective { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:2rem 8vw; padding-block:5rem; }
.dossier-chapter-heading>.eyebrow { font-size:.6875rem; color:var(--ochre); margin-bottom:1.4rem; }
.dossier-chapter-heading h2 { font-size:clamp(2.15rem,3.3vw,3.8rem); line-height:1.18; letter-spacing:-.04em; max-width:17ch; text-wrap:balance; }
.dossier-context-copy { padding-top:2.8rem; }
.dossier-context-copy>p,.dossier-perspective-copy>p:not(.dossier-perspective-lead) { font-size:1rem; line-height:1.9; color:var(--muted); max-width:53ch; }
.dossier-context-copy .text-link { margin-top:1.5rem; font-size:.78rem; }
.dossier-contribution { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:2.5rem 7vw; padding-block:4.5rem; background:var(--night); color:var(--paper); }
.dossier-role-heading>.eyebrow { color:#d9bc99; font-size:.6875rem; margin-bottom:1.5rem; }
.dossier-role-heading h2 { font:400 clamp(2.5rem,4vw,4.6rem)/1.12 var(--brand); letter-spacing:-.04em; text-wrap:balance; }
.dossier-role-copy { align-self:end; padding-bottom:.3rem; }
.dossier-role-copy>p { color:#e0d9ce; font-size:1.02rem; line-height:1.85; max-width:45ch; }
.dossier-role-copy .text-link { color:#e0c6a6; font-size:.78rem; margin-top:1rem; }
.dossier-contribution :focus-visible { outline-color:var(--gold); }
.dossier-relations { grid-column:1/-1; margin:1.5rem 0 0; border-top:1px solid #d9bc9960; padding-top:1.4rem; }
.dossier-relations>figcaption { font-size:.72rem; color:#d1b694; letter-spacing:.03em; }
.dossier-relations ul { list-style:none; padding:0; margin:2rem 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem; }
.dossier-relations li { position:relative; display:grid; align-content:start; gap:.6rem; min-width:0; padding-top:1.5rem; }
.dossier-relations li:before { content:''; position:absolute; top:0; left:0; right:-3rem; height:1px; background:#d9bc9955; }
.dossier-relations li:last-child:before { right:0; }
.dossier-relations li:after { content:''; position:absolute; width:5px; height:5px; left:0; top:-2px; background:#d9bc99; }
.dossier-relations .relation-number { font-family:monospace; font-size:.6875rem; letter-spacing:.1em; color:#c3ac90; }
.dossier-relations strong { font:400 clamp(1.8rem,2.4vw,2.8rem)/1.2 var(--brand); letter-spacing:-.02em; overflow-wrap:break-word; }
.dossier-relations li>span:last-child { color:#d8d1c6; font-size:.82rem; line-height:1.65; }
.dossier-relations>p { color:#bdb2a5; font-size:.7rem; line-height:1.7; margin-top:1.7rem; }
.dossier-perspective { padding-bottom:3rem; }
.dossier-perspective-copy { padding-top:2.75rem; min-width:0; }
.dossier-perspective-lead { font:400 clamp(1.45rem,1.9vw,2rem)/1.45 var(--brand); color:var(--ink); margin-bottom:1.2rem; }
.dossier-topics { list-style:none; padding:0; margin:1.8rem 0 0; border-top:1px solid var(--line); }
.dossier-topics li { font-size:.78rem; padding:.8rem 0; border-bottom:1px solid var(--line); color:var(--ochre); }
.dossier-source { grid-column:1/-1; max-width:100ch; font-size:.74rem; line-height:1.8; color:var(--muted); border-top:1px solid var(--line); padding-top:1.3rem; margin-top:1rem; }
.dossier-pagination { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 4vw; padding-block:1.5rem 2.5rem; border-top:1px solid var(--line); }
.dossier-neighbour { display:grid; grid-template-columns:clamp(4rem,6vw,6.5rem) minmax(0,1fr) auto; align-items:center; min-width:0; gap:1.3rem; padding-block:1.5rem; border-bottom:1px solid var(--line); }
.dossier-neighbour-image { width:100%; height:clamp(4rem,6vw,6.5rem); object-fit:cover; }
.dossier-neighbour-copy { display:grid; gap:.45rem; min-width:0; }
.dossier-neighbour-copy>.eyebrow { font-size:.6875rem; letter-spacing:.06em; color:var(--muted); }
.dossier-neighbour-copy>strong { font:400 clamp(1.3rem,1.7vw,1.85rem)/1.25 var(--brand); overflow-wrap:break-word; }
.dossier-neighbour-copy>span:last-child { font-size:.72rem; line-height:1.6; color:var(--muted); }
.dossier-neighbour>.portal-mark { color:var(--ochre); }
.dossier-backlink { grid-column:1/-1; display:flex; justify-self:end; align-items:center; gap:1.3rem; font-size:.75rem; min-height:48px; margin-top:1rem; color:var(--ochre); }
.dossier-enquiry { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:7vw; padding-block:4rem; background:#e5ddd0; border-top:1px solid var(--dossier-rule); }
.dossier-enquiry .eyebrow { font-size:.6875rem; color:var(--ochre); margin-bottom:1.4rem; }
.dossier-enquiry h2 { font:400 clamp(2.6rem,4vw,4.6rem)/1.15 var(--brand); letter-spacing:-.04em; }
.dossier-enquiry>div+div>p { font-size:.95rem; color:var(--muted); line-height:1.85; max-width:48ch; }
.dossier-enquiry .button { display:flex; margin-top:1.6rem; justify-content:space-between; font-size:.8rem; width:100%; max-width:27rem; border-color:var(--ochre); gap:1.2rem; padding:1rem 1.2rem; }
.dossier-enquiry .text-link { font:400 1.3rem/1.4 var(--brand); margin-top:.7rem; }
#archivbild,#ausgangslage,#rolle,#perspektive-projekt { scroll-margin-top:5.5rem; }
@media(min-width:1700px) {
 .dossier--portrait .dossier-cover { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
 .dossier--portrait .dossier-cover-image { justify-self:center; }
}
@media(max-width:1100px) {
 .dossier-cover { gap:1.5rem 2rem; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .dossier-heading h1 { font-size:clamp(2.9rem,4.4vw,4.5rem); }
 .dossier-city { font-size:1.5rem; }
 .dossier-deck { font-size:1.45rem; }
 .dossier-cover-intro .dossier-summary { font-size:.87rem; }
 .dossier-context,.dossier-perspective { gap:2rem 4vw; }
 .dossier-contribution { gap:2rem 4vw; }
 .dossier-role-heading h2 { font-size:clamp(2.4rem,4vw,3.5rem); }
 .dossier-role-copy>p { font-size:.94rem; }
 .dossier-neighbour { gap:1rem; }
}
@media(max-width:767px) {
 .dossier-cover,.dossier--portrait .dossier-cover,.dossier--panorama .dossier-cover { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto auto; gap:1.3rem; padding-top:7.4rem; padding-bottom:2rem; }
 .project-dossier .breadcrumb { font-size:.6875rem; margin-bottom:.5rem; gap:.5rem; }
 .dossier-heading,.dossier--panorama .dossier-heading { grid-column:1; grid-row:2; }
 .dossier-heading h1 { font-size:clamp(2.25rem,8.5vw,4.2rem); line-height:1.1; margin-top:1rem; }
 .dossier-city { font-size:1.45rem; margin-top:.7rem; }
 .dossier-heading>.eyebrow { font-size:.6875rem; }
 .dossier-cover-intro,.dossier--panorama .dossier-cover-intro { grid-column:1; grid-row:4; padding:0; }
 .dossier-deck { font-size:1.5rem; max-width:34ch; }
 .dossier-cover-intro .dossier-summary { margin-top:1rem; font-size:.88rem; line-height:1.85; }
 .dossier-cover-image,.dossier--panorama .dossier-cover-image,.dossier--portrait .dossier-cover-image { grid-column:1; grid-row:3; width:100%; justify-self:center; margin-top:.5rem; }
 .dossier-cover-image .archive-image-link { box-shadow:6px 6px 0 #d9cfbd65; }
 .dossier-cover-image .image-view-hint { font-size:.6875rem; padding:.5rem .65rem; right:.6rem; bottom:.6rem; gap:.65rem; }
 .dossier-cover-image figcaption { font-size:.6875rem; gap:1rem; padding-top:1rem; }
 .dossier-facts { grid-template-columns:minmax(0,1fr); gap:0; padding-block:.5rem; }
 .dossier-facts>div,.dossier-facts>div+div { padding:1rem 0; border-left:0; }
 .dossier-facts>div+div { border-top:1px solid #b5a18770; }
 .dossier-facts dt { font-size:.6875rem; }
 .dossier-facts dd { font-size:1.2rem; margin-top:.4rem; }
 .dossier-context,.dossier-perspective,.dossier-contribution,.dossier-enquiry { grid-template-columns:minmax(0,1fr); gap:1.7rem; padding-block:3rem; }
 .dossier-chapter-heading>.eyebrow { margin-bottom:1rem; font-size:.6875rem; }
 .dossier-chapter-heading h2 { font-size:clamp(2rem,7vw,3rem); max-width:19ch; }
 .dossier-context-copy,.dossier-perspective-copy { padding-top:0; }
 .dossier-context-copy>p,.dossier-perspective-copy>p:not(.dossier-perspective-lead) { font-size:.94rem; line-height:1.85; }
 .dossier-role-heading>.eyebrow { margin-bottom:1.1rem; font-size:.6875rem; }
 .dossier-role-heading h2 { font-size:clamp(2.3rem,7.5vw,3.4rem); }
 .dossier-role-copy>p { font-size:.94rem; }
 .dossier-relations { grid-column:1; margin-top:.2rem; }
 .dossier-relations>figcaption { font-size:.7rem; }
 .dossier-relations ul { grid-template-columns:minmax(0,1fr); gap:0; margin-top:1.3rem; }
 .dossier-relations li { grid-template-columns:2rem minmax(0,1fr); padding:1.3rem 0 1.3rem 1rem; gap:.5rem 1rem; }
 .dossier-relations li:before { top:0; bottom:0; left:0; right:auto; width:1px; height:auto; }
 .dossier-relations li:last-child:before { height:2rem; }
 .dossier-relations li:after { top:1.9rem; left:-2px; }
 .dossier-relations .relation-number { grid-row:1/3; align-self:start; padding-top:.45rem; }
 .dossier-relations strong { font-size:2rem; grid-column:2; }
 .dossier-relations li>span:last-child { grid-column:2; font-size:.83rem; }
 .dossier-relations>p { margin-top:1rem; }
 .dossier-perspective-lead { font-size:1.5rem; }
 .dossier-source { grid-column:1; font-size:.71rem; margin:0; }
 .dossier-pagination { grid-template-columns:minmax(0,1fr); gap:0; padding-block:.5rem 1.5rem; }
 .dossier-neighbour { grid-template-columns:4.3rem minmax(0,1fr) auto; gap:1rem; padding-block:1.2rem; }
 .dossier-neighbour-image { height:4.3rem; }
 .dossier-neighbour-copy>strong { font-size:1.45rem; }
 .dossier-neighbour-copy>.eyebrow { font-size:.6875rem; }
 .dossier-backlink { grid-column:1; justify-self:start; font-size:.73rem; gap:1rem; }
 .dossier-enquiry h2 { font-size:clamp(2.4rem,8vw,3.6rem); }
 .dossier-enquiry>div+div>p { font-size:.9rem; }
 .dossier-enquiry .button { font-size:.75rem; padding:1rem; }
}
@media(max-width:359px) {
 .dossier-heading h1 { font-size:2.15rem; }
 .dossier-cover-intro .dossier-summary { font-size:.85rem; }
 .dossier-neighbour { grid-template-columns:3.5rem minmax(0,1fr); gap:.85rem; }
 .dossier-neighbour>.portal-mark { display:none; }
 .dossier-neighbour-image { height:3.5rem; }
 .dossier-neighbour-copy>strong { font-size:1.3rem; }
 .dossier-enquiry .button { font-size:.7rem; gap:.8rem; }
}
@media(prefers-reduced-motion:reduce) { .dossier-nav a:after { transition:none; } }
@media print {
 .dossier-cover,.dossier-context,.dossier-perspective,.dossier-contribution,.dossier-facts { display:block; padding:1.5rem; background:#fff; color:#000; }
 .dossier-cover-image { margin-top:1.5rem; }
 .dossier-cover-image .archive-image-link { box-shadow:none; }
 .dossier-cover-image img { max-height:25rem; object-fit:contain; }
 .dossier-heading h1 { font-size:3rem; }
 .dossier-relations { break-inside:avoid; }
 .dossier-contribution p,.dossier-contribution strong,.dossier-contribution span { color:#000; }
 .dossier-pagination,.dossier-enquiry,.dossier-nav { display:none!important; }
}

.dossier-relations .relation-hopper strong { text-transform:none; letter-spacing:0; color:#e3c6a1; }

/* Ohne Dossier-Nummer keine eigene Nummernspalte mehr. */
.project-card,.project-card:nth-child(even),.portfolio .project-card:nth-child(even){grid-template-columns:minmax(0,1fr)}

/* KI-Kennzeichnung am einzelnen Bild (Art. 50 KI-VO). */
.expertise-image:has(>.ki-badge),.expertise-portrait:has(>.ki-badge){position:relative}.ki-badge,html .scene-caption{position:absolute;right:.5rem;bottom:.5rem;left:auto;top:auto;z-index:2;padding:.05rem .3rem;font:400 .6875rem/1.4 Plex,system-ui,sans-serif;letter-spacing:0;background:#29252bb3;color:#f4f0e8;pointer-events:none}.ki-badge:empty,html .scene-caption:empty{display:none}
.comparison-before .ki-badge{left:.5rem;right:auto}
.expertise-image>.ki-badge,.expertise-portrait>.ki-badge{top:.5rem;bottom:auto}
/* Das 3D-Modell im Einstieg ist nicht KI-erzeugt: Der Hinweis gilt nur, solange das Standbild zu sehen ist. */
.hero-visual:not(:has(img[data-scene-poster]:not([hidden]))) .scene-caption{display:none}

/* Projektarchiv auf Beige: gedämpfter Text mit mindestens 4,5:1 Kontrast (WCAG AA). */
#projekte{--muted:#625a54}
