:root{--navy:#131e32;--ink:#172439;--green:#54e2b1;--purple:#be8aff;--paper:#f3f2ee;--muted:#acb7c8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--navy);color:#f7f8fb;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}header{height:94px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff16;background:var(--navy);position:relative;z-index:5}.brand{display:flex;gap:12px;align-items:center;font-size:20px;font-weight:700;letter-spacing:-.7px}.brand small{display:block;font-size:8px;letter-spacing:1.7px;margin-top:7px;color:var(--muted)}.mark{font-family:Georgia,serif;font-style:italic;color:var(--purple);font-size:42px;letter-spacing:-12px;width:49px}.mark span{color:var(--green)}nav{display:flex;align-items:center;gap:29px;font-size:13px}nav a:hover,.text-link:hover{color:var(--green)}.nav-contact{border:1px solid #ffffff40;padding:13px 18px;border-radius:30px}.menu{display:none}.hero{min-height:710px;position:relative;overflow:hidden;padding:95px 6% 35px}.hero-art{position:absolute;right:-12%;top:0;width:100%;height:100%;object-fit:cover;opacity:.65;mask-image:linear-gradient(to right,transparent 21%,#000 67%)}.hero-copy{position:relative;max-width:830px}.eyebrow,.section-label{font-size:10px;letter-spacing:2px;font-weight:700}.eyebrow{color:var(--green);margin:0 0 30px}.eyebrow span{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:8px}h1{font-size:clamp(40px,4.6vw,70px);font-weight:500;line-height:1.13;letter-spacing:-2.8px;margin:0 0 27px}em{font-family:Georgia,serif;font-weight:400;color:var(--green)}.lead{font-size:17px;line-height:1.7;max-width:510px;color:#d0d8e3;margin-bottom:33px}.button{display:inline-flex;gap:36px;align-items:center;padding:18px 24px;background:var(--green);color:#102c28;font-size:14px;font-weight:700;border-radius:5px;transition:transform .2s,background .2s}.button:hover{background:#86f0cb;transform:translateY(-3px)}.button span{font-size:20px}.text-link{display:block;margin-top:23px;font-size:12px;color:#d1dae8}.hero-bottom{position:relative;display:flex;justify-content:space-between;border-top:1px solid #ffffff24;padding-top:24px;margin-top:75px;color:var(--muted);font-size:10px;letter-spacing:1px}.light{background:var(--paper);color:var(--ink)}section:not(.hero){padding:95px 7%}.section-label{color:var(--muted);margin-bottom:35px}.light .section-label{color:#627063}.about{display:grid;grid-template-columns:1fr 2.3fr;gap:50px}h2{font-size:clamp(34px,3.6vw,53px);line-height:1.13;letter-spacing:-1.7px;font-weight:500;margin:0 0 35px}.about h2 span{color:#6a756c}.about-text{display:grid;grid-template-columns:1fr 1fr;gap:32px}p{line-height:1.75}.about-text p,.bio p{font-size:15px;color:#56606b;margin:0 0 18px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:35px}.section-heading p{max-width:350px;font-size:14px;color:var(--muted)}.services{border-top:1px solid #ffffff30}details{border-bottom:1px solid #ffffff30}summary{list-style:none;display:flex;align-items:center;gap:35px;padding:28px 0;cursor:pointer}summary::-webkit-details-marker{display:none}.num{font-size:12px;color:var(--purple);min-width:30px}h3{font-size:23px;font-weight:500;letter-spacing:-.5px;margin:0}.plus{margin-left:auto;font-size:30px;font-weight:300;color:var(--green)}details[open] .plus{transform:rotate(45deg)}.detail{margin:0 0 28px 65px;max-width:850px;display:grid;grid-template-columns:1fr 1fr;gap:10px 55px;color:#bfc9d8;font-size:14px}.detail p{margin:0}.detail ul{padding-left:17px;margin:0;line-height:1.9}.detail .note{grid-column:1/-1;color:var(--green);font-size:12px;margin-top:12px}.operation{margin-top:38px;display:flex;gap:55px;border-left:2px solid var(--purple);padding-left:25px;align-items:start}.operation span{font-size:10px;letter-spacing:1.2px;min-width:210px;padding-top:7px;color:var(--purple)}.operation p{margin:0;font-size:14px;color:var(--muted);max-width:660px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:55px}.steps article{border-top:1px solid #bbc1bd;padding-top:22px}.steps article>span{color:#788878;font-size:12px}.steps h3{margin:28px 0 15px}.steps p{font-size:14px;color:#626b70}.cases{display:grid;grid-template-columns:1fr 1fr;gap:45px}.cases article{padding:35px 0;border-top:1px solid #67717c;border-bottom:1px solid #67717c}.tag{font-size:10px;letter-spacing:1.5px;color:var(--purple);margin-bottom:35px}.cases h3{font-size:33px}.case-sub{color:var(--green);font-size:12px}.cases article>p:not(.tag):not(.case-sub){font-size:15px;color:var(--muted);max-width:470px}.case-foot{margin-top:40px;color:#d6dfeb;font-size:11px;letter-spacing:.5px}.bio{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:center}.bio-art{padding:65px 40px;min-height:450px;background:#e5e7e0;display:flex;flex-direction:column;justify-content:center;border-radius:50% 50% 4px 4px}.bio-art>span{font-family:Georgia,serif;font-style:italic;font-size:clamp(35px,4.2vw,65px);line-height:1.2;color:#455b51}.bio-art>span:nth-child(2){color:#849582}.bio-art>span:nth-child(3){color:#947ab0}.signature{margin-top:35px;font-size:13px;letter-spacing:2px}.bio .bio-intro{font-size:20px;color:var(--ink);line-height:1.5}.dark-link{display:inline-block;border-bottom:1px solid;margin-top:15px;padding-bottom:7px;font-size:13px}.contact{text-align:center;position:relative;background:radial-gradient(ellipse at 50% 110%,#284443,transparent 65%)}.contact h2{font-size:clamp(40px,5.3vw,76px)}.contact p:not(.eyebrow){color:#bac5d5;font-size:16px;margin-bottom:30px}.email{display:block;margin-top:25px;font-size:13px;color:#cbd6e3}footer{padding:35px 7%;border-top:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between;gap:25px}footer span,footer>a:last-child{font-size:11px;color:var(--muted)}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--purple);outline-offset:6px}@media(max-width:850px){header{height:80px}.brand{font-size:17px}.menu{display:block;background:none;border:1px solid #ffffff50;color:white;padding:7px 11px;border-radius:4px}nav{display:none;position:absolute;top:80px;left:0;width:100%;background:var(--navy);padding:25px 6%;flex-direction:column;align-items:stretch}nav.open{display:flex}.hero{padding-top:65px;min-height:680px}.hero-art{right:-40%;width:145%;opacity:.35;mask-image:linear-gradient(to right,transparent,#000)}h1{letter-spacing:-1.8px}.hero-bottom{margin-top:60px;gap:20px;font-size:8px}.about,.bio{grid-template-columns:1fr;gap:30px}.section-heading{display:block}.section-heading p{max-width:100%}.steps{grid-template-columns:1fr 1fr}.operation{display:block}.operation p{margin-top:15px}.bio-art{min-height:300px;max-width:450px;width:100%;margin:auto}.bio-art>span{font-size:48px}footer{flex-wrap:wrap}}@media(max-width:550px){section:not(.hero){padding:65px 6%}.hero{padding-left:6%;padding-right:6%}h1{font-size:39px}.lead{font-size:15px}.about-text,.cases,.detail{grid-template-columns:1fr}.detail{margin-left:0;gap:20px}summary{gap:14px}h3{font-size:19px}.num{min-width:20px}.steps{gap:23px}.steps h3{font-size:21px}.cases{gap:20px}.desktop{display:none}.hero-bottom span:last-child{display:none}.brand small{font-size:7px}.section-label{font-size:9px;letter-spacing:1.5px}.contact h2{font-size:40px}footer{display:block}footer>*{display:block;margin-bottom:17px}.button{gap:20px}h2{font-size:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.orientation{border-top:1px solid #d9dcd5}.orientation h2{margin-bottom:20px}.orientation h2 em{color:#467462}.orientation-intro{color:#626b70;margin-bottom:35px}.needs{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.need-link{padding:26px 0;border-top:1px solid #c6cec5;display:flex;flex-direction:column;gap:20px;transition:color .2s}.need-link>span{font-size:21px;line-height:1.4;max-width:490px}.need-link small{color:#536e60;font-size:12px;line-height:1.5;display:flex;justify-content:space-between;gap:20px}.need-link b{font-size:20px}.need-link:hover{color:#48785c}.services details{scroll-margin-top:40px}.services details:target{border-left:2px solid var(--green);padding-left:18px}@media(max-width:650px){.needs{grid-template-columns:1fr}.need-link>span{font-size:19px}}

.brand small{font-size:10px;letter-spacing:.15px;font-weight:400;line-height:1.5}footer .brand small{color:var(--muted)}@media(max-width:550px){header{padding-left:4%;padding-right:4%}.brand{gap:8px}.brand small{font-size:8px;letter-spacing:0}.mark{width:35px;font-size:36px}}

/* Organic photographic treatment, shared by portfolio and opening. */
.community-visual{position:relative;margin:0 0 40px;isolation:isolate;padding:12px 0 0}
.photo-surface{overflow:hidden;border-radius:44% 12% 34% 10% / 10% 16% 12% 18%;background:#55798d;position:relative}
.photo-surface img{display:block;width:100%;height:auto;filter:grayscale(1) contrast(.94) brightness(1.1);mix-blend-mode:luminosity}
.photo-surface:after{content:"";position:absolute;inset:0;background:#294b6d;mix-blend-mode:color;opacity:.34;pointer-events:none}
.image-waves{position:absolute;inset:-8% -7% auto;width:114%;height:108%;overflow:visible;pointer-events:none;z-index:1;stroke:#b0cdd6;stroke-width:1.35;opacity:.65}
.image-waves path{vector-effect:non-scaling-stroke}
.community-visual figcaption{font-size:10px;color:var(--muted);letter-spacing:.6px;margin-top:20px;position:relative;z-index:2}
.hero-art{filter:grayscale(1) sepia(.25) hue-rotate(155deg) saturate(.65);border-radius:38% 0 0 30% / 18% 0 0 22%}
.hero-wave-wrap{position:absolute;right:-2%;top:4%;width:53%;height:82%;pointer-events:none;opacity:.55}
.hero-wave-wrap .image-waves{stroke:#a7c8d1;stroke-width:1.1}
.hero-copy,.hero-bottom{z-index:2}
@media(max-width:850px){.hero-wave-wrap{width:75%;right:-28%;opacity:.32}}
@media(max-width:550px){.community-visual{margin-top:0;margin-bottom:32px}.image-waves{inset:-5% -4% auto;width:108%;height:105%;stroke-width:1}.hero-wave-wrap{right:-45%;width:100%;opacity:.23}}

.community-visual .image-waves{clip-path:inset(-20% 3% -20% 3%)}

/* The photograph sits above the waves: curves only emerge outside its edges. */
.community-visual .photo-surface{z-index:2}
.community-visual .image-waves{z-index:1;inset:0 -4% auto;width:108%;height:calc(100% - 35px);clip-path:inset(-15% 2% -15% 2%);opacity:.65}
.community-visual figcaption{z-index:3;background:var(--navy);display:table}
.hero-wave-wrap{mask-image:linear-gradient(to bottom,#000 0%,transparent 16%,transparent 84%,#000 100%)}

/* One continuous ribbon: behind the photograph, with small foreground edge crossings. */
.community-visual .image-waves{inset:12px -3% auto;width:106%;height:calc(100% - 48px);clip-path:none;opacity:.7;stroke:#9bbecb;stroke-width:1.3}
.community-visual .ribbon-back{z-index:1}
.community-visual .ribbon-front{z-index:3;clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,5% 9%,5% 91%,95% 91%,95% 9%,5% 9%);clip-rule:evenodd}
.about{grid-template-columns:minmax(260px,1fr) minmax(0,1.45fr);gap:75px;align-items:center}
.essence-photo{margin:0;max-width:440px}
.essence-photo .photo-surface{border-radius:38% 14% 30% 12% / 12% 20% 13% 17%}
.essence-photo figcaption{background:var(--paper);color:#596976}
.essence-photo .image-waves{stroke:#5f8492}
.about-text{grid-template-columns:1fr;gap:0}
@media(max-width:850px){.about{grid-template-columns:1fr;gap:45px}.essence-photo{max-width:420px;margin:auto}}
/* Keep complete photos within their columns on every screen. */
.cases{grid-template-columns:repeat(2,minmax(0,1fr))}
.cases>article,.essence-visual,.community-visual,.photo-surface{min-width:0;max-width:100%}
.community-visual{width:100%}
.community-visual .photo-surface{border-radius:12px;overflow:visible;background:transparent}
.photo-surface img{width:100%;max-width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:auto;mix-blend-mode:normal;filter:grayscale(1) sepia(.3) hue-rotate(155deg) saturate(.8);border-radius:12px}
.photo-surface:after{display:none}
@media(max-width:700px){.cases{grid-template-columns:minmax(0,1fr)}.essence-photo{width:100%;max-width:420px}.community-visual .image-waves{width:104%;left:-2%}}
/* Restore the organic outline while retaining responsive, proportional images. */
.community-visual .photo-surface{overflow:hidden;border-radius:44% 12% 34% 10% / 10% 16% 12% 18%}
.essence-photo .photo-surface{border-radius:38% 14% 30% 12% / 12% 20% 13% 17%}
.photo-surface img{border-radius:0}

/* Image and wave share the same contour and bounding box. */
.organic-stage{position:relative;width:96%;margin:0 auto;isolation:isolate}
.community-visual .organic-stage .photo-surface{border-radius:0;overflow:visible;clip-path:url(#organic-photo-edge)}
.organic-stage .photo-surface img{border-radius:0;width:100%;height:auto;display:block}
.contour-wave{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:3;pointer-events:none;stroke:#9bbecb;stroke-width:1.15;opacity:.75}
.contour-wave path{vector-effect:non-scaling-stroke}
.contour-wave .outer-current{opacity:.55;stroke-width:.8}
.essence-photo .contour-wave{stroke:#60818c}

.hero h1{max-width:850px;text-wrap:balance}.hero .lead{max-width:560px}.case-heading{margin-bottom:26px}.case-heading .tag{margin-top:0;margin-bottom:20px}

.original-brand{display:block}.brand .original-brand img{display:block;width:235px;height:auto;max-width:100%}.brand .original-brand small{font-size:10px;letter-spacing:0;margin-top:5px}header{min-height:110px}footer .original-brand img{width:215px}@media(max-width:550px){.brand .original-brand img{width:205px}.brand .original-brand small{font-size:8.5px}nav{top:110px}}

/* Compact monochrome portfolio illustrations with shared organic contours. */
.cases .community-visual{width:min(100%,370px);margin:0 auto 28px;padding:0}
.cases .organic-stage{width:96%}
.cases .organic-stage .photo-surface{aspect-ratio:1.6;overflow:hidden}
.cases .organic-stage .photo-surface img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);object-position:center}
.cases .contour-wave{stroke:#b8bcc4;opacity:.65}
.cases .community-visual figcaption{font-size:10px;letter-spacing:.2px;margin:14px 0 0;text-align:center;display:block;background:transparent}
.cases .creative-case .photo-surface{background:#f5f5f5}
.cases .creative-case .photo-surface img{object-fit:cover;object-position:center top;box-sizing:border-box;padding:14px 15px 0}
.cases .friedman-case .photo-surface img{object-position:center 62%}
.cases .exame-case .photo-surface img{object-position:center 85%;filter:grayscale(1) contrast(1.12)}
.essence-photo{max-width:330px;margin-inline:auto}
.essence-photo .photo-surface img{filter:grayscale(1) contrast(1.04)}

/* Portrait and quieter words form a single editorial composition. */
.bio-art.bio-portrait{position:relative;background:transparent;border-radius:0;padding:0;min-height:0;height:440px;isolation:isolate;overflow:visible}
.gabi-portrait{position:absolute;right:0;top:0;width:78%;height:100%;object-fit:cover;object-position:50% 25%;filter:grayscale(1);border-radius:44% 42% 20% 28% / 24% 22% 16% 20%;mask-image:none;-webkit-mask-image:none}
.bio-words{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:160px;pointer-events:none}
.bio-words>span{font-family:Georgia,serif;font-style:italic;font-size:clamp(26px,2.6vw,38px);line-height:1.4;color:#455b51;text-shadow:none}
.bio-words>span:nth-child(2){color:#667a69}.bio-words>span:nth-child(3){color:#806498}.bio-words .signature{font-size:11px;letter-spacing:1.4px;margin-top:24px;color:var(--ink)}
@media(max-width:850px){.bio-art.bio-portrait{width:100%;max-width:440px;height:420px;margin:auto}.bio-words>span{font-size:34px}}
@media(max-width:450px){.bio-art.bio-portrait{height:360px}.bio-words{margin-top:140px}.bio-words>span{font-size:29px}.gabi-portrait{width:80%}}

/* Solid paper backing keeps the words readable where they overlap the portrait. */
.bio-words{gap:8px}
.bio-words>span,.bio-words>span:nth-child(2),.bio-words>span:nth-child(3){color:var(--ink);background:var(--paper);padding:3px 12px 5px 0;font-weight:500;line-height:1.2;text-shadow:none;border-radius:0 3px 3px 0}
