  :root{
    --bg:#FFFFFF;
    --ink:#141414;
    --muted:#767672;
    --pink:#EEB8C4;
    --sans: 'Archivo', 'Helvetica Neue', Helvetica, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0; height:100%;}
  body{
    background:var(--bg); color:var(--ink);
    font-family:var(--sans); font-size:14px; line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent;}
  a:visited, a:active, a:link{color:inherit;}
  button{-webkit-tap-highlight-color:transparent;}
  ::selection{background:var(--ink); color:#fff;}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important;} }

  .wrap{max-width:1180px; margin:0 auto; padding-left:2.5vw; padding-right:2.5vw;}

  /* views */
  .view{display:none;}
  .view.active{display:block;}
  #view-curadoria.active{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-curadoria .main-section{flex:1; display:flex; flex-direction:column; justify-content:flex-end; padding:180px 0 110px;}
  #view-curadoria .main-section > .wrap{width:100%; max-width:1500px; margin:0 auto; padding-left:4.5vw; padding-right:4.5vw;}
  #view-peca.active{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-peca .main-section{flex:1; display:flex; flex-direction:column; justify-content:flex-start; padding:180px 0 110px;}
  #view-arquitetura.active{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-arquitetura .main-section{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding:80px 0 77px;}
  #view-arquitetura .main-section > .wrap{width:100%;}
  #view-contacto.active{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-contacto .main-section{flex:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:20px 0 90px;}
  #view-projeto .screen-1{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-projeto .hero-only{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding:20px 0;}
  #view-sobre.active{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;}
  #view-sobre .main-section{flex:1; position:relative; padding:20px 0 90px;}

  /* ---- shared nav: two-line menu icon left, name centered ---- */
  .site-nav{
    position:fixed; top:0; left:0; right:0;
    display:flex; align-items:center; justify-content:center;
    padding:26px 2.5vw;
    background:var(--bg);
    z-index:30;
  }
  .site-nav .site-name{
    font-size:18px; font-weight:400; transition:color .15s ease;
  }
  .site-nav .site-name:hover, .site-nav .site-name:focus-visible{color:var(--pink);}
  .menu-toggle{
    position:absolute; left:2.5vw; top:50%; transform:translateY(-50%);
    background:none; border:none; cursor:pointer; padding:8px;
    display:flex; flex-direction:column; gap:5px; justify-content:center;
    color:var(--muted);
  }
  .menu-toggle span{
    display:block; width:22px; height:1px; background:currentColor;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-3px) rotate(-45deg); }
  .menu-panel{
    display:none;
    position:fixed; top:80px; left:calc(2.5vw + 8px);
    background:transparent;
    padding:0;
    min-width:160px;
  }
  .menu-panel.open{display:block;}
  .menu-panel a{
    display:block; font-size:16px; font-weight:400; padding:1px 0; color:var(--ink); transition:color .15s ease;
  }
  .menu-panel a:hover, .menu-panel a:focus-visible{color:var(--pink);}
  a:focus-visible, button:focus-visible{outline:1.5px solid var(--ink); outline-offset:3px;}

  /* home: full-bleed image, no scroll */
  #home.active{ display:flex; flex-direction:column; height:100vh; height:100dvh; overflow:hidden; position:relative; }
  #home .site-nav{ position:absolute; top:0; left:0; right:0; }
  .home-image{
    flex:1; width:100%;
    display:flex; align-items:flex-end; justify-content:center;
    padding:80px 2.5vw;
  }
  .home-image .frame{
    position:relative;
    width:100%; height:100%;
    background:transparent;
    overflow:hidden;
  }
  .home-frame-wrap{position:relative; width:70%; max-width:900px; aspect-ratio:3/2;}
  .home-frame-wrap .cap-simple{position:static; opacity:0; margin-top:12px; text-align:center; transition:opacity .2s ease;}
  .home-frame-wrap:hover .cap-simple, .home-frame-wrap:focus-within .cap-simple{opacity:1;}
  .home-image .frame img{
    position:absolute; top:0; left:0; width:100%; height:100%; object-fit:contain;
    opacity:0; transition:opacity .4s ease;
  }
  .home-image .frame img.active{opacity:1;}

  /* inner pages */
  section{padding:50px 0 40px;}
  .section-label{font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); margin:0 0 36px;}

  .lead-project{margin-bottom:0; text-align:center; position:relative;}
  .lead-project .ph{width:70%; max-width:900px; margin:0 auto; aspect-ratio:4/3; background:#F0F0EE; overflow:hidden;}
  .lead-project .cap-simple{position:absolute; top:100%; left:0; right:0; margin-top:16px; font-size:16px; font-weight:400; text-align:center; opacity:0; transition:opacity .2s ease, color .2s ease; pointer-events:none;}
  .lead-project:hover .cap-simple, .lead-project:focus-within .cap-simple{opacity:1;}
  .caption-block{position:absolute; top:100%; left:0; right:0; margin-top:16px;}
  .project-title{font-size:16px; font-weight:400; text-align:center; margin:0; line-height:1.3;}
  .project-meta{font-size:16px; font-weight:400; color:var(--ink); text-align:center; margin:0; line-height:1.3;}
  .project-gallery{display:flex; flex-direction:column; gap:160px; padding-bottom:100px;}
  .project-gallery .lead-project{margin-bottom:0;}

  /* listing pages (projects, objects) — one entry or many, same rhythm as project-gallery */
  .item-list{display:flex; flex-direction:column; gap:160px;}

  .grid{display:grid; grid-template-columns:repeat(2,1fr); gap:48px 36px;}
  @media (max-width:760px){ .grid{grid-template-columns:1fr;} }

  /* curadoria — real grid, rows always the same height; each image is a smaller
     object centered inside its cell, landscape/portrait alternating */
  .curation-grid{display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:520px; column-gap:44px; row-gap:150px; align-items:center;}
  .curation-piece{width:100%; min-width:0;}
  .curation-grid .ph{max-width:100%; margin:0 auto; background:#F0F0EE; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:12px; text-align:center; overflow:hidden;}
  .curation-grid .ph.has-image{background:transparent;}
  .curation-piece.orient-landscape .ph{width:440px; aspect-ratio:3/2;}
  .curation-piece.orient-portrait .ph{width:330px; aspect-ratio:4/5;}
  @media (max-width:900px){ .curation-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:520px; row-gap:120px;} }
  @media (max-width:700px){
    .curation-grid{grid-template-columns:1fr; grid-auto-rows:500px; row-gap:110px; column-gap:0;}
    .curation-piece.orient-landscape .ph{width:100%; max-width:440px;}
    .curation-piece.orient-portrait .ph{width:100%; max-width:330px;}
  }

  /* scroll reveal — pieces fade/slide in as they enter the viewport */
  .curation-piece{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease;}
  .curation-piece.is-visible{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){
    .curation-piece{opacity:1; transform:none; transition:none;}
  }
  .card .ph{aspect-ratio:4/3; background:#F0F0EE; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:12px; text-align:center; padding:18px;}
  .card .cap{display:flex; justify-content:space-between; gap:16px; margin-top:14px; font-size:14px;}
  .card .cap .m{color:var(--muted); white-space:nowrap;}

  .link-line{display:inline-block; font-size:13px; letter-spacing:0.04em; border-bottom:1px solid var(--ink); padding-bottom:2px;}
  .link-line:hover{opacity:0.6;}

  .facts-plain{list-style:none; padding:0; margin:0; font-size:14px; display:flex; flex-direction:column; gap:18px;}
  .facts-plain .k{display:block; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:4px;}

  /* peça (curation piece detail) — image left, click to cycle; text right */
  .piece-detail{position:relative; display:grid; grid-template-columns:1.1fr 0.9fr; gap:0 64px; align-items:start;}
  .piece-frame-wrap{position:relative; width:100%; min-width:0;}
  .piece-frame-wrap .frame{position:relative; width:100%;}
  .piece-frame-wrap .frame img, .piece-frame-wrap .frame video{display:none; width:92%; height:auto; margin:0 auto;
    cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M12 8 L20 16 L12 24' stroke='%23EEB8C4' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 16 16, pointer;}
  .piece-frame-wrap .frame img.cursor-prev, .piece-frame-wrap .frame video.cursor-prev{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M20 8 L12 16 L20 24' stroke='%23EEB8C4' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 16 16, pointer;}
  .piece-frame-wrap .frame img.active, .piece-frame-wrap .frame video.active{display:block;}
  .piece-frame-wrap .cap-simple{position:static; opacity:0; margin-top:12px; text-align:left; font-size:13px; color:var(--muted); transition:opacity .2s ease;}
  #projects-caption{color:var(--ink); font-size:16px; font-weight:400; text-align:center; opacity:0;}
  #projects-frame-wrap:hover #projects-caption{opacity:0;}
  #projects-frame-wrap:has(.frame img:hover) #projects-caption{opacity:1;}
  #projects-frame img{width:70%; max-width:900px;}
  #projects-frame img.object-photo{width:50%; max-width:640px;}
  .piece-frame-wrap:hover .cap-simple, .piece-frame-wrap:focus-within .cap-simple{opacity:1;}
  .piece-info{min-width:0; padding-top:6px; font-size:14px;}
  .piece-info .dim-value{white-space:pre-line;}
  .piece-info .k{text-transform:none; font-size:14px;}
  .piece-info .piece-title{text-align:left; font-size:20px; margin:0 0 28px;}
  .piece-title-top{display:none;}
  .piece-info .peca-source-all{display:none;}
  .piece-info .piece-product-link{display:none; margin-top:28px;}
  .piece-description{display:none; grid-column:1 / -1; margin-top:120px; padding-left:calc((100% - 64px) * 0.022); padding-right:calc((100% - 64px) * 0.022);}
  .piece-description.has-content{display:block;}
  .piece-description-text{font-size:18px; line-height:1.6; margin:0; white-space:pre-line; text-align:justify;}
  .piece-description-author{margin:16px 0 0; font-size:18px; color:var(--ink);}
  .piece-nav{position:fixed; top:80px; left:calc(2.5vw + 8px); font-size:14px; z-index:25;}
  body.menu-open .piece-nav{display:none;}
  .piece-nav a{color:var(--ink);}

  /* footer — present on every page, full width with its own padding */
  .site-footer{padding:22px 2.5vw; z-index:20; position:fixed; bottom:0; left:0; right:0;}
  .site-footer .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:12px; color:var(--muted); max-width:none; margin:0; padding:0;}
  #home .site-footer{position:absolute; bottom:0; left:0; right:0;}

  /* language toggle — bottom right on every page */
  .lang-toggle{display:flex; gap:3px; font-size:12px; color:var(--muted);}
  .lang-toggle button{background:none; border:none; cursor:pointer; padding:0; font:inherit; color:var(--muted);}
  .lang-toggle button.active{color:var(--ink);}
  .lang-toggle button:hover, .lang-toggle button:focus-visible{color:var(--pink);}
  .lang-toggle .sep{opacity:0.5;}
  .hover-gray:hover, .hover-gray:active, .hover-gray:focus-visible{color:var(--pink) !important;}

  /* ---- mobile (phones) ---- */
  @media (max-width:700px){
    .home-image{padding:60px 2.5vw 4vw; align-items:center;}
    .home-frame-wrap{width:100%;}

    #view-curadoria .main-section{justify-content:center; padding-top:200px;}
    #view-arquitetura .main-section{justify-content:center; padding-top:213.4px;}
    #view-projeto .hero-only{justify-content:center;}
    #view-peca .main-section{justify-content:flex-start; padding-top:200px;}

    .piece-detail{display:flex; flex-direction:column; gap:0;}
    .piece-frame-wrap{order:1;}
    .piece-info{order:2;}
    .piece-description{order:3;}
    .piece-nav{order:4; position:static; margin-top:80px; margin-bottom:0;}
    .piece-title-top{display:block; margin:0 0 24px;}
    #view-peca .piece-frame-wrap .frame{height:auto; display:block; cursor:default;}
    #view-peca .piece-frame-wrap .frame img, #view-peca .piece-frame-wrap .frame img.cursor-prev, #view-peca .piece-frame-wrap .frame video, #view-peca .piece-frame-wrap .frame video.cursor-prev{display:block !important; width:92%; max-width:none; height:auto; max-height:none; margin:0 auto 240px; cursor:default;}
    #view-peca .piece-frame-wrap .cap-simple{display:none;}
    #projects-frame img{width:92% !important; max-width:none !important;}
    #projects-frame img.object-photo{width:80% !important;}
    #projects-caption{opacity:1 !important; margin-top:16px;}
    .piece-info .peca-source-single{display:none;}
    .piece-info .peca-source-all{display:block;}
    .piece-description{margin-top:64px; padding-left:4%; padding-right:4%;}
    .piece-description-text{font-size:14px; text-align:left;}
    .piece-description-author{font-size:14px; margin-top:12px;}

    #view-sobre .main-section{position:static; padding:200px 4vw 40px; display:flex; flex-direction:column;}
    #view-sobre .main-section > div{position:static !important; max-width:none !important; width:100%;}
    #view-sobre .main-section > div:nth-child(1){order:2; margin-top:24px; margin-bottom:0;}
    #view-sobre .main-section > div:nth-child(2){order:1;}
    #view-sobre .main-section img{width:100% !important; height:auto !important;}

    #view-contacto .main-section{padding:0 0 40px;}

    .lead-project .ph{width:92%; max-width:none;}
    .project-gallery{gap:70px !important;}
    .item-list{display:flex !important; flex-direction:column !important; gap:300px !important;}
    #view-projeto .hero-only{padding:10px 0;}

    .site-nav{padding:20px 4vw;}
    .menu-toggle{left:4vw;}
    .menu-panel{top:68px; left:0; right:0; width:100%; min-width:0; background:rgba(255,255,255,0.92); padding:14px 4vw 20px; padding-left:calc(4vw + 8px); box-shadow:0 -4px 0 rgba(255,255,255,0.92);}
    .site-footer{padding:16px 4vw; position:static;}

    .lead-project .cap-simple{opacity:1; pointer-events:auto;}
    .home-frame-wrap .cap-simple{display:none;}
    .lead-project .cap-simple, .project-title, .project-meta{
      font-size:16px !important; font-weight:400 !important; color:var(--ink) !important;
    }
    .lead-project .cap-simple.tap-pink{color:var(--pink) !important;}
    .lead-project:hover .cap-simple, .lead-project .cap-simple:hover{color:var(--pink) !important;}
  }
