/* FOS brand typography, served locally for consistent rendering on every device. */
@font-face{font-family:"Didot LT Std";src:url("./assets/fonts/didot-lt-std-roman.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Didot LT Std";src:url("./assets/fonts/didot-lt-std-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Akzidenz-Grotesk Extended BQ";src:url("./assets/fonts/akzidenz-grotesk-extended-bq-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Akzidenz-Grotesk Extended BQ";src:url("./assets/fonts/akzidenz-grotesk-extended-bq-medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
/* Mobile first: the base layout targets small screens. Larger compositions use min-width queries. */
:root{--font-display:"Didot LT Std",Didot,"Times New Roman",serif;--font-body:"Akzidenz-Grotesk Extended BQ",Arial,sans-serif;color-scheme:light;--ink:#241f1b;--paper:#fff;--stone:#f2f0ec;--muted:#665f58;--line:#dedad4;font-family:var(--font-body);color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:1.5rem;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}body{margin:0;min-width:0}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:4px}img{display:block}h1,h2,p{margin:0}h1,h2{font-family:var(--font-display);font-weight:400}p{overflow-wrap:break-word}.skip-link{position:fixed;left:1rem;top:-8rem;padding:1rem;background:#fff;z-index:30;max-width:calc(100% - 2rem)}.skip-link:focus{top:1rem}
.masthead{position:absolute;z-index:3;inset:0 0 auto;min-height:96px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;padding:1rem;gap:.25rem;color:#fff;border-bottom:1px solid #ffffff36}.logo{position:relative;display:block;width:100%;max-width:195px;aspect-ratio:6133/1588;overflow:hidden;justify-self:center;flex-shrink:0}.logo img{position:absolute;width:146.747%;height:auto;max-width:none;left:-20.0717%;top:-233.3753%}.menu-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;gap:13px;font-size:.875rem;justify-self:start}.menu-icon{width:22px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;flex-shrink:0}.menu-toggle>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.header-link{display:none}
.hero{position:relative;min-height:560px;height:100svh;max-height:1100px;color:#fff;background:#302b25;isolation:isolate}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:43% center;z-index:-3}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,13,10,.63) 0%,rgba(16,13,10,.05) 35%,rgba(16,13,10,.18) 52%,rgba(16,13,10,.78) 100%);z-index:-2}.hero-copy{position:absolute;bottom:13%;width:100%;padding:0 1.25rem;text-align:center}.hero-copy p{font-size:.875rem;letter-spacing:.025em;margin-bottom:1rem}.hero h1{font-size:clamp(2.75rem,10vw,4.75rem);letter-spacing:-.025em;line-height:1.1;margin-bottom:1.25rem;text-wrap:balance}.light-link,.text-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:.875rem;line-height:1.5;padding:10px 2px;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px;transition:opacity .2s}.image-note{position:absolute;bottom:max(1.25rem,env(safe-area-inset-bottom));right:1.25rem;font-size:.75rem;color:#fff}
.intro{padding:4.75rem 1.25rem;text-align:center}.section-label{font-size:.875rem;line-height:1.5;margin-bottom:1.5rem}.intro h2{font-size:clamp(2.25rem,8vw,3.5rem);line-height:1.16;letter-spacing:-.025em;text-wrap:balance}.intro-text{font-size:1rem;line-height:1.8;max-width:610px;margin:1.75rem auto}.intro .text-link{margin-top:.5rem}.desktop-break{display:none}.inspiration{display:grid;grid-template-columns:minmax(0,1fr);background:var(--stone)}.detail-image{overflow:hidden;aspect-ratio:1/1;max-height:540px}.detail-image img{width:100%;height:100%;object-fit:cover;object-position:35% center}.inspiration-copy{padding:3.5rem 1.5rem 4rem;align-self:center;min-width:0}.inspiration h2{font-size:clamp(3rem,10vw,4rem);letter-spacing:-.025em;line-height:1.1;margin-bottom:1.75rem}.inspiration-copy>p:not(.section-label){font-size:1rem;line-height:1.8;max-width:420px;color:var(--muted)}.inspiration-copy>p.concept-note{font-size:.8125rem;line-height:1.65;margin-top:2rem;max-width:340px}
footer{background:var(--ink);color:#fff;padding:3.5rem 1.25rem max(1.5rem,env(safe-area-inset-bottom))}.footer-logo{max-width:230px;margin:0 auto 3rem}.footer-bottom{border-top:1px solid #ffffff32;padding-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;font-size:.875rem;line-height:1.6;color:#ddd8d1;text-align:center}.footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
dialog{color:var(--ink);background:#fff;border:0;padding:0;width:100%;max-width:570px;height:100dvh;max-height:100dvh;margin:0;position:fixed;overscroll-behavior:contain}dialog::backdrop{background:rgba(0,0,0,.52)}.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.25rem;border-bottom:1px solid var(--line);font-size:.875rem}.menu-heading>span{max-width:170px;line-height:1.5}.menu-close{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:44px;min-width:44px;padding:.5rem}.menu-close span{font-size:1.75rem;font-weight:300}dialog nav{display:flex;flex-direction:column;gap:1.25rem;padding:2.5rem 1.5rem}dialog nav a{display:block;font-family:var(--font-display);font-size:clamp(1.875rem,7vw,2.75rem);line-height:1.3;min-height:44px;padding:.5rem 0;width:fit-content;max-width:100%;overflow-wrap:break-word}.menu-note{padding:1.5rem;color:var(--muted);font-size:.875rem}
@media(min-width:600px){.masthead{padding:1.25rem 2rem;min-height:112px}.logo{max-width:225px}.intro{padding:6rem 2rem}.inspiration-copy{padding:4rem 3rem}.detail-image{aspect-ratio:4/3}.footer-bottom{gap:.75rem}.hero-copy{padding-inline:2rem}}
@media(min-width:900px){:root{scroll-padding-top:2rem}.masthead{grid-template-columns:1fr auto 1fr;min-height:128px;padding:1.5rem 3.5rem;gap:1.5rem}.logo{width:248px;max-width:none}.menu-toggle{padding:10px 0}.menu-toggle>span:last-child{position:static;width:auto;height:auto;overflow:visible;clip-path:none}.header-link{display:inline-flex;align-items:center;justify-self:end;min-height:44px;font-size:.875rem}.hero{min-height:700px;max-height:1200px}.hero-image{object-position:center 53%}.hero-copy{bottom:12%}.hero h1{font-size:clamp(4.75rem,5.7vw,6.5rem);margin-bottom:1.75rem}.image-note{right:2rem;bottom:1.5rem}.intro{padding:8rem 1.5rem 7.5rem}.intro h2{font-size:clamp(3.5rem,4vw,4.5rem)}.intro-text{margin-block:2rem}.desktop-break{display:block}.inspiration{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:620px}.detail-image{aspect-ratio:auto;min-height:620px;max-height:none}.inspiration-copy{padding:5rem clamp(2rem,6vw,7rem)}.inspiration h2{font-size:clamp(3.5rem,4.5vw,5rem);margin-bottom:2rem}footer{padding:4.5rem 4% 2rem}.footer-logo{width:250px;margin-bottom:4rem}.footer-bottom{flex-direction:row;justify-content:space-between;gap:1.5rem;text-align:left}.menu-heading{padding:2rem}.menu-heading>span{max-width:none}dialog nav{padding:4rem 2.5rem;gap:2rem}.menu-note{padding:2rem 2.5rem}}
@media(min-width:1800px){.hero-copy{bottom:13%}.intro{padding-block:10rem}.inspiration,.detail-image{min-height:760px}}
@media(hover:hover){.light-link:hover,.text-link:hover{opacity:.7}.header-link:hover,.footer-bottom a:hover,dialog nav a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}}
/* The full brand quotation remains readable on the smallest screens. */
.hero h1{font-size:clamp(1.75rem,6.2vw,2.75rem);line-height:1.22;letter-spacing:-.018em;max-width:23ch;margin:0 auto 1.25rem;text-wrap:balance}
.hero-copy p.quote-author{font-size:.9375rem;line-height:1.5;letter-spacing:0;margin:0 0 1rem}
@media(min-width:900px){.hero h1{font-size:clamp(2.75rem,3.8vw,4.5rem);max-width:28ch;line-height:1.15;margin-bottom:1.5rem}.hero-copy p.quote-author{font-size:1rem;margin-bottom:1.25rem}}
/* Portfolio: a single column by default, expanding only when images have room. */
.hero-project-link{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px;bottom:.5rem;font-size:.75rem}
.portfolio{padding:4.5rem 1.25rem 1rem}.portfolio-heading{text-align:center;max-width:760px;margin:0 auto 3rem}.portfolio-heading .section-label{margin-bottom:1rem}.portfolio-heading h2{font-size:clamp(2.3rem,8vw,4rem);line-height:1.13;letter-spacing:-.025em;text-wrap:balance}.portfolio-heading>p:last-child{font-size:1rem;line-height:1.7;color:var(--muted);margin-top:1.25rem}.project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem}.project-card{min-width:0}.project-card>a{display:block}.project-card-image{overflow:hidden;background:var(--stone);aspect-ratio:4/3}.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card-text{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding-top:1rem}.project-card h3{font-family:var(--font-display);font-weight:400;font-size:1.875rem;line-height:1.2;margin:0 0 .4rem}.project-card p{font-size:.875rem;line-height:1.6;color:var(--muted);margin:0}.card-action{font-size:.8125rem;line-height:1.6;text-decoration:underline;text-underline-offset:5px;padding-top:.25rem;white-space:nowrap}
.project-page .masthead{position:relative;background:var(--ink)}.project-intro{padding:2rem 1.25rem 3rem;text-align:center;max-width:1000px;margin-inline:auto}.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:6px;margin-bottom:2rem}.project-intro .section-label{margin-bottom:1rem}.project-intro h1{font-size:clamp(3.5rem,14vw,7rem);line-height:1.05;letter-spacing:-.03em;margin-bottom:1.5rem}.project-description{font-size:1rem;line-height:1.8;max-width:600px;margin:0 auto 1.5rem;color:var(--muted)}.render-note{font-size:.8125rem;color:var(--muted);line-height:1.6}.project-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;padding:0 1rem 2rem;max-width:1600px;margin:0 auto}.project-figure{margin:0;min-width:0}.gallery-open{display:block;position:relative;background:var(--stone)}.gallery-open img{width:100%;height:auto}.project-pagination{display:flex;justify-content:space-between;gap:2rem;padding:2rem 1.5rem 4rem;max-width:1600px;margin:auto}.project-pagination a{display:flex;flex-direction:column;gap:.5rem;min-height:44px}.project-pagination a:last-child{text-align:right}.project-pagination span{font-size:.8125rem;color:var(--muted)}.project-pagination strong{font-family:var(--font-display);font-size:3rem;font-weight:400}
.gallery-dialog{background:#191714;color:#fff;width:100%;max-width:100%;height:100dvh;max-height:100dvh;overflow:hidden;padding:0}.gallery-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;gap:1rem;min-height:64px}.gallery-count{font-size:.875rem}.gallery-close,.gallery-controls button{min-height:44px;min-width:44px;padding:.5rem .75rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:.875rem}.gallery-stage{display:flex;flex-direction:column;min-height:0;min-width:0;align-items:center;justify-content:center;gap:1rem;margin:0;padding:0 0 1rem;overflow:hidden}.gallery-image{width:100%;min-height:0;object-fit:contain;flex:1}.gallery-controls{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem max(1rem,env(safe-area-inset-bottom));border-top:1px solid #ffffff24}.gallery-controls button{border-bottom:1px solid #ffffff80}
@media(min-width:700px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 1.5rem}.project-card:last-child:nth-child(odd){grid-column:1/-1}.project-card:last-child:nth-child(odd) .project-card-image{aspect-ratio:2/1}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 1.5rem;padding-inline:2rem}.project-figure:first-child,.project-figure:nth-child(4n){grid-column:1/-1}.project-figure:not(:first-child) .gallery-open{aspect-ratio:1.42}.project-figure:not(:first-child) .gallery-open img{height:100%;object-fit:cover}.project-figure:nth-child(4n) .gallery-open{aspect-ratio:1.8}.gallery-toolbar,.gallery-controls{padding-inline:2rem}.gallery-stage{padding-inline:2rem}.project-pagination{padding-inline:2rem}.portfolio{padding-inline:2rem}}
@media(min-width:1100px){.portfolio{padding:7rem 5% 2rem}.portfolio-heading{margin-bottom:4rem}.portfolio-heading h2{font-size:4rem}.project-grid{gap:4rem 2rem;max-width:1500px;margin:auto}.project-card h3{font-size:2.25rem}.project-card-text{padding-top:1.5rem}.card-action{font-size:.875rem}.project-intro{padding:3rem 2rem 4rem}.project-gallery{gap:4rem 2.5rem;padding:0 4% 4rem}.project-pagination{padding:1rem 4% 5rem}.project-pagination strong{font-size:4rem}}
@media(hover:hover){.project-card>a:hover img{transform:scale(1.025)}.project-card>a:hover h3{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}}
/* About and contacts share the mobile-first reading rhythm. */
.about-motto{margin-top:2rem;font-size:1rem;line-height:1.8;color:var(--muted)}.about-copy h3{font-family:var(--font-display);font-size:clamp(1.875rem,6vw,2.5rem);font-weight:400;line-height:1.2;margin:2.75rem 0 1.25rem;letter-spacing:-.02em}.about-copy strong{color:var(--ink);font-weight:600}
.about-section{padding:5rem 1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}.about-heading h2{font-size:clamp(2.75rem,10vw,4.5rem);line-height:1.08;letter-spacing:-.025em}.about-copy{max-width:620px}.about-copy p{font-size:1rem;line-height:1.85;color:var(--muted);margin-bottom:1.5rem}.about-copy .text-link{margin-top:.25rem}
.contact-section{background:var(--stone);padding:4.5rem 1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem}.contact-heading h2{font-size:clamp(2.3rem,8vw,4rem);line-height:1.15;letter-spacing:-.025em;text-wrap:balance}.contact-details{font-style:normal;display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;min-width:0}.contact-item{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.contact-label{font-size:.875rem;line-height:1.6;color:var(--muted);margin-bottom:.5rem}.contact-item a{display:flex;align-items:center;min-height:44px;font-size:clamp(1.125rem,4.8vw,1.5rem);line-height:1.5;overflow-wrap:anywhere;max-width:100%;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.contact-item small{font-size:.8125rem;line-height:1.6;color:var(--muted);margin-top:.375rem}.contact-item p{font-size:1.375rem;line-height:1.5}
@media(min-width:700px){.about-section,.contact-section{padding:6rem 5%;gap:3rem}.contact-details{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-item:last-child{grid-column:1/-1}}
@media(min-width:1100px){.about-section{grid-template-columns:1fr 1fr;gap:5rem;padding:8rem 8%}.about-heading h2{font-size:4.5rem}.about-copy{padding-top:3rem}.contact-section{grid-template-columns:1.1fr 1fr;gap:5rem;padding:7rem 8%}.contact-heading h2{font-size:3.75rem}.contact-details{grid-template-columns:minmax(0,1fr);gap:2rem}}
.logo-curadoria{aspect-ratio:11811/2526}.logo-curadoria img{position:static;width:100%;height:auto;filter:none}
.footer-curadoria{width:66.666667%;max-width:280px;aspect-ratio:4957/734}.footer-curadoria img{width:100.0807%;left:0;top:-173.5695%;filter:brightness(0) invert(1)}
.contact-heading .section-label{font-size:calc(.875rem + 5px)}
.portfolio-heading .section-label{font-size:clamp(1.375rem,7vw,3.5rem);font-weight:700;line-height:1.05;letter-spacing:-.035em;text-wrap:balance}

/* Keep the brand centered and the menu on the right at every breakpoint. */
.masthead>.logo{grid-column:2;grid-row:1}
.masthead>.menu-toggle{grid-column:3;grid-row:1;justify-self:end}
#menu{inset-inline-start:auto;inset-inline-end:0}

/* Extend backgrounds behind the notch; inset only header and dialog controls. */
.masthead{--header-height:96px;--header-block-space:1rem;--header-inline-space:1rem;min-height:calc(var(--header-height) + env(safe-area-inset-top,0px));padding-top:calc(var(--header-block-space) + env(safe-area-inset-top,0px));padding-bottom:var(--header-block-space);padding-inline:max(var(--header-inline-space),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}
.menu-heading{--menu-heading-space:1.25rem;padding-top:calc(var(--menu-heading-space) + env(safe-area-inset-top,0px));padding-left:max(var(--menu-heading-space),env(safe-area-inset-left,0px));padding-right:max(var(--menu-heading-space),env(safe-area-inset-right,0px))}
.gallery-toolbar{min-height:calc(64px + env(safe-area-inset-top,0px));padding-top:calc(.75rem + env(safe-area-inset-top,0px))}
.gallery-toolbar,.gallery-controls{--gallery-inline-space:1rem;padding-left:max(var(--gallery-inline-space),env(safe-area-inset-left,0px));padding-right:max(var(--gallery-inline-space),env(safe-area-inset-right,0px))}
@media(min-width:600px){.masthead{--header-height:112px;--header-block-space:1.25rem;--header-inline-space:2rem}}
@media(min-width:700px){.gallery-toolbar,.gallery-controls{--gallery-inline-space:2rem}}
@media(min-width:900px){.masthead{--header-height:128px;--header-block-space:1.5rem;--header-inline-space:3.5rem}.menu-heading{--menu-heading-space:2rem}}

/* The cover fills the large viewport while its links stay above browser controls. */
@media(max-width:899px){
  :root{background:var(--ink)}
  body{background:var(--paper)}
  .hero{height:100vh;height:100lvh;max-height:none}
  .hero-copy{bottom:calc(100lvh - 100svh + max(13svh,env(safe-area-inset-bottom,0px)))}
  .hero-project-link{bottom:calc(100lvh - 100svh + max(.5rem,env(safe-area-inset-bottom,0px)))}
}

/* Titles and categories use Didot; reading text and controls use Akzidenz. */
h1,h2,h3,h4,h5,h6,.section-label,.contact-label,.menu-heading>span{font-family:var(--font-display)}
strong,b,.about-copy strong{font-weight:500}

.gallery-project,.gallery-control-icon{display:none}
.gallery-close{width:44px;height:44px;padding:10px}
.gallery-close .gallery-control-icon{display:block;width:18px;height:18px;flex:none}

/* Caption-free galleries use native horizontal swiping, including pinch zoom. */
.gallery-stage{display:block;padding:0;min-height:0;min-width:0}
.gallery-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{flex:0 0 100%;height:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.gallery-slide .gallery-image{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
@media(orientation:landscape) and (max-height:600px){
  .project-gallery{display:flex;gap:0;padding:0;margin:0;max-width:none;height:100dvh;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
  .project-gallery::-webkit-scrollbar{display:none}
  .project-gallery .project-figure{flex:0 0 100%;height:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
  .project-gallery .gallery-open{width:100%;height:100%;aspect-ratio:auto}
  .project-gallery .gallery-open img{width:100%;height:100%;object-fit:cover}
  .gallery-dialog[open]{display:block}
  .gallery-stage{position:absolute;inset:0;width:100%;height:100%}
  .gallery-slide .gallery-image{object-fit:cover}
  .gallery-toolbar,.gallery-controls{position:absolute;z-index:1;inset-inline:0;min-height:0;border:0;pointer-events:none;padding-inline:max(1rem,env(safe-area-inset-left),env(safe-area-inset-right))}
  .gallery-toolbar{top:0;padding-top:max(.5rem,env(safe-area-inset-top));padding-bottom:.5rem;background:linear-gradient(#0008,transparent)}
  .gallery-controls{bottom:0;padding-top:.5rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));background:linear-gradient(transparent,#0008)}
  .gallery-toolbar button,.gallery-controls button{pointer-events:auto;background:#0007;border:0}
  .gallery-heading{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#0007}
  .gallery-project{display:inline;font-size:.75rem;font-weight:400}
  .gallery-count{font-size:.625rem}
  .gallery-control-label{display:none}
  .gallery-control-icon{display:block;flex:none}
  .gallery-close,.gallery-controls button{width:44px;height:44px;padding:10px}
}
