:root{--exp-ink:#102c33;--exp-paper:#f2eee6;--exp-line:rgba(242,238,230,.34);--exp-accent:#c77b47}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.scroll-progress{position:fixed;z-index:150;top:0;left:0;width:100%;height:3px;background:var(--exp-accent);transform:scaleX(0);transform-origin:left;pointer-events:none}
.site-header{transition:background .35s ease,box-shadow .35s ease,transform .35s ease}
.site-header.is-scrolled{background:rgba(248,246,240,.94);box-shadow:0 12px 36px rgba(8,31,37,.09);backdrop-filter:blur(14px)}
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-visible{opacity:1;transform:none}

.hero-home{--pointer-x:0;--pointer-y:0;min-height:calc(100svh - 88px);padding:clamp(7rem,14vh,10rem) clamp(1.5rem,6vw,7rem) clamp(4rem,8vh,6rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,24vw);align-items:end;gap:2rem;position:relative;isolation:isolate;overflow:hidden;background:#132d32;color:#fff}
.hero-media,.hero-shade{position:absolute;inset:0}
.hero-media{z-index:-3;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 58%;transform:scale(1.045) translate(calc(var(--pointer-x) * -7px),calc(var(--pointer-y) * -5px));transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.hero-shade{background:linear-gradient(90deg,rgba(5,24,29,.86) 0%,rgba(5,24,29,.55) 48%,rgba(5,24,29,.16) 78%),linear-gradient(0deg,rgba(5,24,29,.64),transparent 52%)}
.hero-home .hero-grid{position:absolute;inset:0;z-index:-1;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none}
.hero-home .hero-grid i{border-left:1px solid var(--exp-line)}
.hero-home .hero-grid i:last-child{border-right:1px solid var(--exp-line)}
.hero-home .hero-copy{max-width:860px;position:relative;z-index:1}
.hero-home .eyebrow{color:#fff;margin-bottom:1.4rem}
.hero-home h1{margin:0;color:#fff;font-size:clamp(3.1rem,6.5vw,7.3rem);line-height:.92;letter-spacing:-.055em;max-width:1050px;text-wrap:balance}
.hero-home h1 em{color:#e3a06e;font-family:inherit;font-weight:400}
.hero-home .hero-lede{max-width:660px;margin:2rem 0;color:rgba(255,255,255,.82);font-size:clamp(1.05rem,1.35vw,1.28rem);line-height:1.6}
.hero-home .hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-home .button-ghost{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(5px)}
.hero-index{justify-self:end;align-self:center;width:min(230px,100%);font-family:monospace;text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;color:rgba(255,255,255,.82)}
.hero-index>span,.hero-index small{display:block}
.hero-index p{font-family:inherit;font-size:1rem;line-height:1.5;margin:1rem 0}
.hero-index i{display:block;height:1px;background:rgba(255,255,255,.55);position:relative;margin:1.4rem 0}
.hero-index i:after{content:"";position:absolute;width:7px;height:7px;border:1px solid #fff;border-radius:50%;right:0;top:-4px}
.hero-index small{line-height:1.7}
.hero-scroll{position:absolute;right:clamp(1.5rem,3vw,3rem);bottom:2rem;color:#fff;display:flex;align-items:center;gap:.7rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;writing-mode:vertical-rl}
.hero-scroll i{display:block;width:1px;height:42px;background:rgba(255,255,255,.6);animation:scrollLine 1.7s ease-in-out infinite;transform-origin:top}
@keyframes scrollLine{0%,100%{transform:scaleY(.4);opacity:.45}50%{transform:scaleY(1);opacity:1}}

.intro .intro-copy em{color:var(--exp-accent);font-family:inherit}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.2vw,2rem)}
.pillar{min-height:720px;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:#d9d3c8}
.pillar-image{position:absolute;inset:0;overflow:hidden}
.pillar-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,29,34,.88),rgba(7,29,34,0) 68%)}
.pillar-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.pillar:hover .pillar-image img{transform:scale(1.035)}
.pillar-copy{position:relative;z-index:2;padding:clamp(2rem,5vw,4.5rem);max-width:680px}
.pillar-copy>span{position:absolute;right:2rem;top:2rem;font-family:monospace;font-size:.75rem}
.pillar-copy h2{font-size:clamp(2rem,3.2vw,3.6rem);line-height:1.02;margin:.8rem 0 1.2rem;letter-spacing:-.035em}
.pillar-copy p:not(.eyebrow){line-height:1.65}
.pillar-architecture{color:#fff}
.pillar-architecture .text-link,.pillar-architecture .eyebrow{color:#fff}
.pillar.pillar-regularization{background:var(--exp-ink);color:#f3eee4;flex-direction:column;align-items:stretch;justify-content:space-between}
.pillar-regularization .pillar-copy{align-self:flex-start}
.pillar-regularization .text-link,.pillar-regularization .eyebrow{color:#f3eee4}
.technical-sheet{height:340px;margin:clamp(1.5rem,4vw,3rem);border:1px solid rgba(242,238,230,.38);position:relative;font-family:monospace;color:rgba(242,238,230,.75);font-size:.72rem;letter-spacing:.1em;overflow:hidden}
.technical-sheet:before,.technical-sheet:after{content:"";position:absolute;border:1px solid rgba(242,238,230,.22)}
.technical-sheet:before{width:42%;height:54%;left:12%;top:23%}.technical-sheet:after{width:27%;height:36%;right:10%;bottom:16%;border-radius:50%}
.technical-sheet>span{position:absolute;left:1.2rem;top:1.2rem}.technical-sheet b{position:absolute;left:30%;top:47%;font-weight:400}.technical-sheet small{position:absolute;right:1.2rem;bottom:1.2rem;line-height:1.7;text-align:right}
.technical-sheet i{position:absolute;display:block;background:rgba(242,238,230,.26);height:1px;transform-origin:left;animation:drawLine 4.5s ease-in-out infinite alternate}.technical-sheet .line-a{width:70%;left:15%;top:34%;transform:rotate(24deg)}.technical-sheet .line-b{width:55%;left:18%;top:69%;transform:rotate(-20deg)}.technical-sheet .line-c{width:44%;left:62%;top:18%;transform:rotate(90deg)}
@keyframes drawLine{from{opacity:.25;scale:.25 1}to{opacity:1;scale:1 1}}

.service-card{overflow:hidden;position:relative}
.service-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--exp-accent);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.service-card:hover:before{transform:scaleX(1)}
.diagnostic{position:relative;overflow:hidden}
.diagnostic:after{content:"PLN";position:absolute;right:-.04em;bottom:-.25em;font-size:clamp(10rem,27vw,30rem);line-height:1;color:rgba(255,255,255,.028);font-weight:700;pointer-events:none}
.process-list li{transition:background .35s ease,padding .35s ease}
.process-list li:hover{background:rgba(199,123,71,.08);padding-inline:1rem}

.project-showcase{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(1rem,2vw,1.8rem)}
.project-card{position:relative;overflow:hidden;background:#0e292f;color:#fff;min-height:430px;display:flex;align-items:flex-end}
.project-card.project-wide{grid-row:span 2;min-height:900px}
.project-card figure{position:absolute;inset:0;margin:0;overflow:hidden}
.project-card figure:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,24,29,.78),transparent 55%)}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.project-card:hover img{transform:scale(1.04);filter:saturate(1.08)}
.project-card>div{position:relative;z-index:1;width:100%;padding:clamp(1.5rem,3vw,2.6rem)}
.project-card span{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.project-card h3{margin:.4rem 3rem 0 0;color:#fff;font-size:clamp(1.5rem,2.3vw,2.4rem)}
.project-card i{position:absolute;right:2rem;bottom:2rem;font-style:normal;font-size:1.5rem;transition:transform .3s ease}.project-card:hover i{transform:translate(5px,-5px)}

.portfolio-hero{min-height:70vh;padding:clamp(9rem,15vw,13rem) clamp(1.5rem,7vw,8rem) 5rem;background:var(--exp-ink);color:#f4efe6;display:grid;grid-template-columns:1.4fr .6fr;gap:4rem;align-items:end;position:relative;overflow:hidden}
.portfolio-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 24%,rgba(255,255,255,.06) 24.1%,transparent 24.2%,transparent 49%,rgba(255,255,255,.06) 49.1%,transparent 49.2%,transparent 74%,rgba(255,255,255,.06) 74.1%,transparent 74.2%);pointer-events:none}
.portfolio-hero h1{color:#f4efe6;font-size:clamp(3rem,6.2vw,6.8rem);line-height:.95;letter-spacing:-.055em;margin:.8rem 0 0}.portfolio-hero h1 em{color:#e2a06f;font-family:inherit}.portfolio-hero>p{font-size:1.1rem;line-height:1.7;color:rgba(244,239,230,.7);max-width:480px}.portfolio-hero-line{position:absolute;left:7vw;right:7vw;bottom:2rem;display:flex;align-items:center;gap:1rem;font:10px/1 monospace;letter-spacing:.1em}.portfolio-hero-line i{height:1px;background:rgba(244,239,230,.35);flex:1}
.portfolio-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.2rem,2.5vw,2.4rem);align-items:start}
.gallery-project{grid-column:span 6;margin-bottom:clamp(2rem,6vw,6rem)}
.gallery-project:nth-child(even){margin-top:clamp(2rem,8vw,8rem)}
.gallery-project.gallery-feature,.gallery-project.gallery-wide{grid-column:span 8}.gallery-project.gallery-tall{grid-column:span 4}
.gallery-project figure{margin:0;overflow:hidden;background:#d8d2c7;aspect-ratio:4/3}.gallery-project.gallery-feature figure{aspect-ratio:16/10}.gallery-project.gallery-tall figure{aspect-ratio:3/4}.gallery-project.gallery-wide figure{aspect-ratio:16/11}
.gallery-project img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.gallery-project:hover img{transform:scale(1.025)}
.gallery-project>div{display:grid;grid-template-columns:150px 1fr;gap:1.5rem;padding-top:1.2rem;border-top:1px solid rgba(16,44,51,.24);margin-top:1rem}.gallery-project span{font:10px/1.4 monospace;letter-spacing:.1em;text-transform:uppercase}.gallery-project h2{font-size:clamp(1.5rem,2.6vw,2.8rem);margin:0;letter-spacing:-.03em}.gallery-project p{grid-column:2;line-height:1.65;margin:.2rem 0;color:#52666b}
.portfolio-closing{text-align:center;background:#ece7dd}.portfolio-closing h2{font-size:clamp(2.5rem,5vw,5rem);line-height:1;margin:1rem auto 2rem;letter-spacing:-.04em}
.form-message strong{color:var(--exp-ink)}
.form-message .text-link{display:inline-block;margin-top:.45rem}
.form-message-error{background:#f4ddd7!important;color:#722f22!important}

@media (max-width:900px){
  .hero-home{grid-template-columns:1fr;padding-top:8rem}.hero-index{display:none}.hero-home h1{font-size:clamp(3.2rem,11vw,5.8rem)}.hero-shade{background:linear-gradient(90deg,rgba(5,24,29,.85),rgba(5,24,29,.35)),linear-gradient(0deg,rgba(5,24,29,.68),transparent 55%)}
  .pillars{grid-template-columns:1fr}.pillar{min-height:620px}.pillar-regularization{min-height:720px}
  .project-showcase{grid-template-columns:1fr 1fr}.project-card.project-wide{grid-column:1/-1;grid-row:auto;min-height:620px}.project-card{min-height:390px}
  .portfolio-hero{grid-template-columns:1fr;gap:2rem}.portfolio-gallery{display:block}.gallery-project,.gallery-project:nth-child(even){margin:0 0 5rem}.gallery-project figure,.gallery-project.gallery-feature figure,.gallery-project.gallery-tall figure,.gallery-project.gallery-wide figure{aspect-ratio:4/3}
}
@media (max-width:620px){
  .hero-home{min-height:calc(100svh - 68px);padding:7rem 1.25rem 3rem;align-items:end}.hero-home h1{font-size:clamp(2.8rem,14vw,4.2rem)}.hero-home .hero-lede{font-size:1rem;margin:1.4rem 0}.hero-home .hero-actions{display:grid}.hero-home .button{justify-content:center}.hero-scroll{display:none}.hero-media img{object-position:62% center}.hero-home .hero-grid{grid-template-columns:repeat(2,1fr)}.hero-home .hero-grid i:nth-child(n+3){display:none}
  .pillars{padding-inline:0}.pillar{min-height:560px}.pillar-copy{padding:1.6rem}.pillar-copy h2{font-size:2.2rem}.technical-sheet{height:280px;margin:1rem}
  .project-showcase{display:block}.project-card,.project-card.project-wide{min-height:520px;margin-bottom:1rem}.project-card:not(.project-wide){min-height:420px}
  .portfolio-hero{min-height:82vh;padding:8rem 1.25rem 4rem}.portfolio-hero h1{font-size:clamp(2.8rem,14vw,4.4rem)}.portfolio-hero>p{font-size:1rem}.portfolio-hero-line{left:1.25rem;right:1.25rem}
  .portfolio-gallery{padding-inline:1.25rem}.gallery-project>div{grid-template-columns:1fr;gap:.6rem}.gallery-project p{grid-column:1}.gallery-project figure,.gallery-project.gallery-feature figure,.gallery-project.gallery-tall figure,.gallery-project.gallery-wide figure{aspect-ratio:3/4}.gallery-project.gallery-feature figure{aspect-ratio:4/3}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.hero-media img{transform:none!important}[data-reveal]{opacity:1;transform:none}}
