/**
 * Content
 */

body {
	background-color: #fff;
	color: #9a9a9a;
}

a:active {
	opacity: 0.7;
}

.page a.active {
	opacity: .4;
}

i, em { font-style: italic; }
b, strong { font-weight: bolder; }
sub, sup { position: relative; vertical-align: baseline; }
sub { top: 0.3em; }
sup { top: -0.4em; }
s { text-decoration: line-through; }

img {
	border: 0;
	padding: 0;
    border-radius: 5px 10px 20px;
}

ul, ol { margin: 0; padding: 0 0 0 1em; }
blockquote { margin: 0; padding: 0 0 0 2em; }
hr { background: rgba(127, 127, 127, 0.2); border: 0; height: 1px; display: block; }

.content img { float: none; margin-bottom: .5em; }

.gallery_image_caption {
    margin-top: 1.2rem;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
	font-weight: 400;
	color: rgba(0, 0, 0, 0.35);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
	font-style: normal;
	line-height: 1.3;	
}

/**
 * Loading Animation
 */
.loading[data-loading] { position: fixed; bottom: 8px; left: 8px; }

/**
 * Editor styles
 */
[data-predefined-style="true"] bodycopy {
	font-size: 1.3rem; font-weight: 400; color: rgba(154, 154, 154, 1);
	font-family: "ROM Variable", Icons; font-style: normal; line-height: 1.3; font-variation-settings: 'slnt' 0;
}
[data-predefined-style="true"] bodycopy a { color: rgba(154, 154, 154, 1); padding-bottom: 0.1em; border-bottom: 0.0em solid rgba(154, 154, 154, 1); text-decoration: none; }
bodycopy a.image-link, bodycopy a.icon-link, bodycopy a.image-link:hover, bodycopy a.icon-link:hover { border-bottom: 0; padding-bottom: 0; }

/* OTIMIZADO: bloco original tinha ~1900 declarações repetidas de font-size
   (mesma regra, mesmo seletor, valores oscilando entre 5.6rem e 7.8rem, uma
   após a outra). Como em CSS a última declaração de uma mesma propriedade
   dentro do mesmo seletor é a que vence, o resultado visual final é
   EXATAMENTE o mesmo com a regra abaixo — só que ~40KB mais leve e sem
   custo de parsing repetido pelo navegador. */
[data-predefined-style="true"] h1 {
	font-family: "ROM Condensed Variable", Icons;
	font-style: normal;
	font-weight: 719;
	padding: 0;
	margin: 0;
	font-size: 6rem;
	line-height: 0.8;
	color: rgba(177, 177, 177, 0.99);
	font-variation-settings: 'slnt' 0;
}
[data-predefined-style="true"] h1 a { color: rgba(177, 177, 177, 0.99); }
[data-predefined-style="true"] h2 { font-family: "ROM Condensed Variable", Icons; font-style: normal; font-weight: 400; padding: 0; margin: 0; color: rgba(150, 150, 150, 0.99); font-size: 1.3rem; line-height: 1.2; font-variation-settings: 'slnt' 0; }
[data-predefined-style="true"] h2 a { color: rgba(150, 150, 150, 0.99); }
[data-predefined-style="true"] small { display: inline-block; font-size: 1.1rem; line-height: 1.3; font-family: "Diatype Variable", Icons; font-style: normal; font-weight: 400; color: rgba(177, 177, 177, 0.99); font-variation-settings: 'slnt' 0, 'MONO' 0; }
[data-predefined-style="true"] small a { color: rgba(177, 177, 177, 0.99); border-bottom-width: 0em; }

/**
 * Breakpoints
 */
[data-css-preset] .page { background-color: initial /*!page_bgcolor*/; }
.mobile .page, [data-css-preset].mobile .page { position: relative; min-height: 10px; max-width: 100%; width: 100%; background-color: transparent /*!page_bgcolor*/; }
[data-css-preset] .container { margin-left: 0 /*!content_left*/; margin-right: auto /*!content_left*/; text-align: left /*!text_left*/; }
[data-css-preset] body { background-color: rgb(255, 255, 255)/*!body_bgcolor*/; }
[data-css-preset] .container_width { width: 100%/*!content_left*/; }
[data-css-preset] .content_padding { padding-top: 1.8rem; padding-bottom: 1.8rem; padding-left: 1.8rem; padding-right: 1.8rem; }
[data-css-preset] text-limit { display: inline-block; max-width: 66rem; }

/**
 * Thumbnails & Menu
 */
div[thumbnails] { justify-content: flex-start; }
[data-css-preset] .thumbnails { background-color: rgba(0, 0, 0, 0); }
[data-css-preset] .thumbnails_width { width: 100%; }
[data-css-preset] [thumbnails-pad] { padding: 1.3rem; }
[data-css-preset] [thumbnails-gutter] { margin: -2.6rem; }
[data-css-preset] [responsive-layout] [thumbnails-pad] { padding: 0.5rem; }
[data-css-preset] [responsive-layout] [thumbnails-gutter] { margin: -1rem; }
.thumbnails .thumb_image { outline: 0px solid rgba(0,0,0,.12); outline-offset: -1px; }
.thumbnails .title { margin-top: 0.6rem; margin-bottom: .3rem; font-size: 1.4rem; font-weight: 400; color: rgba(0, 0, 0, 0.85); font-family: "Diatype Variable", Icons; line-height: 1.1; font-variation-settings: 'slnt' 0, 'MONO' 0; }
.thumbnails .tags { margin-top: 1.2rem; margin-bottom: 0.5rem; font-size: 1.6rem; font-weight: 400; color: rgba(0, 0, 0, 0.35); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons; line-height: 1.2; }
.thumbnails .tags a { border-bottom: 0; color: rgba(0, 0, 0, 0.35); text-decoration: none; }
.thumbnails .has_title .tags { margin-top: 0rem; }

[data-css-preset] #site_menu_button { color: rgba(0, 0, 0, 0.75); font-size: 28px; padding: 6px; line-height: 1; background: rgba(33, 32, 46, 0); position: fixed; top: 2rem; right: 2rem; }
body.mobile #site_menu_button { margin: -6px; font-size: 34px; }
#site_menu_button.custom_icon { width: 40px; height: auto; }
#site_menu_button.active { display: none; }
#site_menu { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; background: rgba(20, 20, 20, 0.95); font-size: 20px; font-weight: 400; padding: 20px 30px 90px 30px; max-width: 400px; min-width: 300px; text-align: left; display: flex; justify-content: flex-start; }
body.mobile #site_menu { width: 100%; }
#site_menu .page-link a, #site_menu .set-link > a { color: rgba(255, 255, 255, 0.75); }
#site_menu .set-link > a { font-weight: bold; }
#site_menu a:active { opacity: .7; }
#site_menu a.active { opacity: .4; }
#site_menu .close { display: none; color: rgba(255, 255, 255, 0.4); line-height: .85em; font-size: 45px; }
body.mobile #site_menu .close { display: block; font-size: 50px; line-height: 1em; }
#site_menu .break { height: 28px; }
#site_menu .indent { margin-left: 28px; }

/**
 * --------------------------------------------
 * 1. FIX DA BIO E 3D 
 * --------------------------------------------
 */
.bio-container-fixed-height { position: relative; width: 100%; min-height: 550px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bio-text-centered {
        position: relative;
        z-index: 99;
        margin: 0;
        text-align: center;
        pointer-events: none;
        padding: 0 20px;
        color: #000000; /* Cor preta para o multiply funcionar como sombra/tinta */
        opacity: 1 !important;
        line-height: 1.4;
        white-space: pre-wrap;
        mix-blend-mode: screen; /* Efeito de impressão */
        font-weight: 500; /* Ajuste se quiser um pouco mais de corpo */
    }

.bio-text-centered:hover { color: #000 !important; }
@keyframes fadeInBio {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}

#micael-hero-back { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 850px; height: 850px; z-index: 1; opacity: 0.95; pointer-events: auto; }
#micael-hero-back model-viewer { 
    width: 100%; 
    height: 100%; 
    background: transparent; 
    touch-action: pan-y; /* <-- ESSA É A CHAVE PARA O SCROLL FUNCIONAR */
}
/**
 * --------------------------------------------
 * 2. FIX DO GRID DO PORTFÓLIO
 * --------------------------------------------
 */
.work-grid { 
    display: grid !important; 
    grid-template-columns: repeat(2, 1fr) !important; 
    gap: 40px !important; 
    margin: 40px 3.5rem !important; 
}

.work-card { text-decoration: none !important; color: #9a9a9a !important; display: block !important; }

.thumb-final { 
    width: 100% !important; 
    aspect-ratio: 1/1 !important; 
    overflow: hidden !important; 
    margin-bottom: 15px !important; 
    background: #f4f4f4 !important;
    display: flex !important;
    border-radius: 0 !important; /* Limpa conflito global de img */
}

.thumb-final img { 
    width: 100% !important; 
    height: 100% !important; 
    object-fit: cover !important; 
    display: block !important; 
    transition: transform 0.6s ease !important; 
    border-radius: 0 !important;
}

.work-card:hover .thumb-final img { transform: scale(1.03) !important; }

.info-line { display: flex !important; justify-content: space-between !important; align-items: baseline !important; font-size: 1.4rem !important; }

.description-text { display: inline-block; overflow: hidden; white-space: nowrap; width: 0; transition: width 0.6s ease-out; vertical-align: bottom; }
.work-card:hover .description-text { width: 100%; }

/* Animação Slide Up Fixada - Removido Opacity Zero Permanente */
.reveal-text { display: inline-block !important; overflow: hidden !important; vertical-align: top; }
.reveal-text span { 
    display: block !important; 
    transform: translateY(100%); 
    opacity: 0; 
    animation: slideUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; 
}
@keyframes slideUp { 
    from { transform: translateY(100%); opacity: 0; } 
    to { transform: translateY(0); opacity: 1; } 
}

@media (max-width: 768px) { 
    .work-grid { grid-template-columns: 1fr !important; margin: 20px 1rem !important; } 
    
    /* Reduz o tamanho do bloco invisível do 3D no celular */
    #micael-hero-back {
        width: 100vw;
        height: 100vw;
        max-width: 450px; /* Impede que fique gigante */
        max-height: 450px;
    }
    
    /* Opcional: diminui a altura mínima da bio para o usuário ver que há conteúdo abaixo */
    .bio-container-fixed-height {
        min-height: 400px;
    }
}
/* Efeito para os links do Header */
.scramble-link {
    color: #7f7f7f; /* Cor chumbo elegante */
    font-weight: 500;
    text-decoration: none;
    transition: color 0.3s ease;
}
.scramble-link:hover {
    color: #12fc00 !important; /* Fica preto no hover */
}