@font-face{font-family:Plex;src:url('fonts/IBMPlexMono-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Plex;src:url('fonts/IBMPlexMono-Medium.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:Plex;src:url('fonts/IBMPlexMono-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#2d2b2a;--paper:#eae7df;--muted:#c0bdb2;--line:rgba(234,231,223,.25)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Plex,monospace;font-weight:400;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:focus-visible{outline:2px solid currentColor;outline-offset:7px}img{display:block;max-width:100%;height:auto}.wrap{width:min(1386px,calc(100% - 112px));margin-inline:auto}.skip{position:absolute;top:-100px;left:20px;z-index:20;background:var(--paper);color:var(--ink);padding:15px}.skip:focus{top:15px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:92px;border-bottom:1px solid var(--line);font-size:12px;font-weight:500}.masthead a{text-decoration:none}.masthead nav{display:flex;gap:30px}.edition{color:var(--muted)}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:3%;align-items:center;padding-block:65px 48px;min-height:690px}.hero h1{position:relative;z-index:1;font-weight:700;font-size:clamp(34px,4.25vw,70px);line-height:1.2;letter-spacing:-.045em;margin:0 0 45px}.hero-details{font-size:clamp(15px,1.5vw,24px);font-weight:500;line-height:1.6}.hero-details p{margin:0 0 12px}.hero-dates{font-weight:700}.hero-art{position:relative}.hero-art img{width:100%;animation:impressao 1.2s ease-out both}.hero-link{margin-top:38px;font-size:12px;max-width:330px}.text-link{display:flex;align-items:center;gap:12px;justify-content:space-between;text-decoration:none;padding:15px 0;border-bottom:1px solid currentColor;font-weight:500}.text-link span{transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.partners-band{background:#fff;color:var(--ink);padding:35px 0}.partners-band img{width:min(100%,1125px);margin:auto}.section-label{display:flex;justify-content:space-between;gap:20px;font-size:12px;font-weight:500}.about{padding-block:85px 100px}.about>.section-label{border-bottom:1px solid var(--line);padding-bottom:22px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:48px}h2{font-size:clamp(26px,3vw,44px);line-height:1.3;letter-spacing:-.04em;font-weight:700;margin:0}.body-copy{font-size:15px;line-height:1.85;max-width:570px}.body-copy p{margin:0 0 24px}.visit{background:var(--paper);color:var(--ink);padding-block:88px}.visit-grid{display:grid;grid-template-columns:1fr .78fr;gap:14%;align-items:start}.visit h2{margin-top:48px}.visit h2 span{font-weight:400}.visit-dates{margin-top:40px;font-size:19px;line-height:1.7;font-weight:500}.visit-links{margin-top:45px;max-width:385px}.visit-links small{font-weight:400;font-size:10px;margin-left:auto}.poster{margin:0}.poster img{width:100%;box-shadow:0 10px 40px #2d2b2a20;transition:transform .3s}.poster a:hover img{transform:translateY(-5px)}figcaption{font-size:10px;line-height:1.8;margin-top:20px}.footer{padding-block:35px;display:flex;justify-content:space-between;gap:25px;font-size:11px}.footer a{text-decoration:none}@keyframes impressao{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{padding-block:70px;min-height:780px}.hero-art img{max-height:650px}.hero h1{font-size:70px}}
@media(max-width:900px){.wrap{width:calc(100% - 56px)}.edition{display:none}.hero{gap:0;min-height:620px}.hero h1{font-size:clamp(30px,4.4vw,42px)}.hero-details{font-size:16px}.about-grid{gap:6%}.visit-grid{gap:8%}.visit h2{font-size:31px}.visit-dates{font-size:16px}}
@media(max-width:620px){.wrap{width:calc(100% - 40px)}.masthead{min-height:72px;font-size:10px;gap:10px}.masthead nav{gap:18px}.hero{grid-template-columns:1fr;padding-block:38px 30px;gap:25px}.hero h1{font-size:clamp(27px,7vw,43px);margin-bottom:30px;letter-spacing:-.04em}.hero-details{font-size:15px}.hero-art{grid-row:2;max-width:330px;width:88%;justify-self:center}.hero-link{margin-top:20px;max-width:none}.partners-band{padding:20px 0}.partners-band .wrap{width:calc(100% - 24px)}.about{padding-block:50px}.about-grid{grid-template-columns:1fr;gap:28px;padding-top:28px}.about h2{font-size:28px}.body-copy{font-size:13px}.visit{padding-block:50px}.visit-grid{grid-template-columns:1fr;gap:42px}.visit h2{margin-top:28px;font-size:32px}.visit-dates{margin-top:28px}.visit-links{margin-top:25px;max-width:none}.poster{max-width:420px;margin-inline:auto}.footer{flex-wrap:wrap;font-size:10px;padding-block:26px}.footer a:last-child{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.back{display:flex;align-items:center;gap:16px}.back img{width:130px}.footer{align-items:center}.footer-brand,.footer-support{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.footer-support img{width:126px}.footer-brand span{font-size:10px;color:var(--muted)}@media(max-width:620px){.back img{width:105px}.back{gap:8px}.footer{display:grid;grid-template-columns:1fr 1fr;gap:30px}.footer-support{justify-self:end}.footer a:last-child{grid-column:1 / -1;justify-self:end}}
/* Conteúdos e páginas de núcleo */
.contents{padding-block:15px 95px}.contents>.section-label{padding-bottom:22px;border-bottom:1px solid var(--line)}.contents h2{margin:42px 0 32px}.module-row{display:grid;grid-template-columns:1fr 1fr 24px;gap:24px;align-items:center;padding:30px 0;border-top:1px solid var(--line);text-decoration:none;transition:color .2s,padding .2s}.module-row:last-child{border-bottom:1px solid var(--line)}.module-row:hover{color:#fff;padding-left:10px}.module-row-title{font-size:clamp(22px,2.7vw,38px);font-weight:700;letter-spacing:-.04em}.module-row-subtitle{font-size:13px;color:var(--muted)}.module-row>span:last-child{font-size:26px}.module-hero{padding-block:50px 65px}.module-back{font-size:11px;text-decoration:none;color:var(--muted)}.module-hero h1{font-size:clamp(40px,7vw,94px);line-height:1.15;letter-spacing:-.055em;margin:48px 0 20px;overflow-wrap:anywhere}.module-hero>p{font-size:19px;margin:0;color:var(--muted)}.module-page .edition{max-width:340px;font-size:10px;line-height:1.6}.catalogue{background:var(--paper);color:var(--ink);padding-block:65px 85px}.catalogue-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.65fr);gap:8%}.piece-index{align-self:start;position:sticky;top:25px;max-height:calc(100vh - 50px);overflow:auto;scrollbar-width:thin}.piece-index summary{font-size:12px;font-weight:700;cursor:pointer;list-style:none;padding-bottom:20px;border-bottom:1px solid #2d2b2a40;display:flex;justify-content:space-between}.piece-index summary::after{content:'↕'}.piece-index summary span{font-weight:400;margin-left:auto;margin-right:20px}.piece-index nav{padding-top:10px}.piece-index a{display:block;font-size:11px;line-height:1.7;text-decoration:none;padding:10px 12px 10px 0;border-bottom:1px solid #2d2b2a18;overflow-wrap:anywhere}.piece-index a:hover{text-decoration:underline}.piece{padding-block:34px;border-top:1px solid #2d2b2a40;scroll-margin-top:25px}.piece:first-child{padding-top:0;border-top:0}.piece h2{font-size:clamp(20px,2vw,28px);line-height:1.5;letter-spacing:-.035em;margin:0 0 24px;overflow-wrap:anywhere}.piece p{font-size:14px;line-height:1.9;margin:0 0 16px;overflow-wrap:anywhere;white-space:normal}.piece p:last-child{margin-bottom:0}.module-intro{font-size:20px;font-weight:500;line-height:1.6;margin:0 0 35px}.source-illustration{margin:26px 0}.source-illustration img{max-height:850px;width:auto;max-width:100%;background:#fff}.module-pagination{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-block:45px;border-bottom:1px solid var(--line)}.module-pagination a{text-decoration:none;display:flex;flex-direction:column;gap:12px}.module-pagination a:last-child{text-align:right}.module-pagination small{font-size:10px;color:var(--muted)}.module-pagination strong{font-size:20px}.module-pagination a:hover strong{text-decoration:underline}
@media(max-width:900px){.module-page .edition{display:none}.catalogue-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:6%}.piece p{font-size:13px}}
@media(max-width:620px){.contents{padding-bottom:50px}.module-row{grid-template-columns:1fr 24px;gap:8px;padding-block:22px}.module-row-title{font-size:25px}.module-row-subtitle{grid-row:2;font-size:11px}.module-row>span:last-child{grid-column:2;grid-row:1 / 3}.module-hero{padding-block:30px 45px}.module-hero h1{margin-top:35px;font-size:43px}.module-hero>p{font-size:15px}.module-page .masthead nav{font-size:9px}.catalogue{padding-block:30px 45px}.catalogue-grid{grid-template-columns:1fr;gap:35px}.piece-index{position:static;max-height:280px;padding-right:5px}.piece-index a{font-size:11px}.piece h2{font-size:20px}.piece p{font-size:13px;line-height:1.85}.module-intro{font-size:17px}.module-pagination{padding-block:30px;gap:20px}.module-pagination strong{font-size:16px}}
/* Entrada dos caracteres como formas tipográficas a tomar posição. */
.hero h1>span{display:block;animation:type-arrive 900ms cubic-bezier(.16,1,.3,1) both}.hero h1>span:nth-child(2){animation-delay:100ms}.hero h1>span:nth-child(3){animation-delay:200ms}.hero h1>span:nth-child(4){animation-delay:300ms}.hero-details{animation:type-arrive 900ms 400ms cubic-bezier(.16,1,.3,1) both}.hero-art svg{display:block;width:100%;height:auto;overflow:visible}.hero-art svg>g>*{transform-box:fill-box;transform-origin:center;animation:type-impression 1400ms cubic-bezier(.16,1,.3,1) both}.hero-art svg>g>:nth-child(1){--type-x:-24px;--type-r:-4deg;animation-delay:150ms}.hero-art svg>g>:nth-child(2){--type-x:20px;--type-r:5deg;animation-delay:400ms}.hero-art svg>g>:nth-child(3){--type-x:-20px;--type-r:-6deg;animation-delay:250ms}.hero-art svg>g>:nth-child(4){--type-x:24px;--type-r:4deg;animation-delay:550ms}.hero-art svg>g>:nth-child(5){--type-x:-15px;--type-r:-3deg;animation-delay:350ms}.hero-art svg>g>:nth-child(6){--type-x:18px;--type-r:5deg;animation-delay:650ms}.hero-art svg>g>:nth-child(7){--type-x:22px;--type-r:-5deg;animation-delay:500ms}.module-hero h1{animation:type-arrive 950ms cubic-bezier(.16,1,.3,1) both}.module-hero>p{animation:type-arrive 950ms 160ms cubic-bezier(.16,1,.3,1) both}.module-row{position:relative}.module-row::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left;transition:transform 500ms cubic-bezier(.16,1,.3,1)}.module-row:hover::after,.module-row:focus-visible::after{transform:scaleX(1)}.module-row>span:last-child{transition:transform 400ms cubic-bezier(.16,1,.3,1)}.module-row:hover>span:last-child{transform:translate(4px,-4px)}.back img,.footer-brand img{transition:transform 350ms ease}.back:hover img,.footer-brand:hover img{transform:translateY(-2px)}.source-illustration img{cursor:default}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:50;background:#fff;mix-blend-mode:difference;transform:scaleX(0);transform-origin:left;pointer-events:none}@keyframes type-arrive{from{opacity:.08;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes type-impression{from{filter:opacity(0);transform:translate(var(--type-x,0),28px) rotate(var(--type-r,0deg))}to{filter:opacity(1);transform:translate(0,0) rotate(0)}}@media(min-width:1600px){.hero-art svg{max-height:650px}}@media(prefers-reduced-motion:reduce){.hero h1>span,.hero-details,.module-hero h1,.module-hero>p{animation:none!important;transform:none!important;opacity:1!important}.hero-art svg>g>*{animation:none!important;transform:none!important;filter:none!important}.reading-progress{display:none}}
/* Ritmo próprio para ecrãs táteis: sem filtros pesados nas letras SVG. */
@media(max-width:620px){
 .hero h1>span{animation-name:mobile-title;animation-duration:750ms}.hero h1>span:nth-child(2){animation-delay:120ms}.hero h1>span:nth-child(3){animation-delay:240ms}.hero h1>span:nth-child(4){animation-delay:360ms}.hero-details{animation-duration:700ms;animation-delay:450ms}
 .hero-art svg>g>*{animation:none;filter:none}.motion-mobile .hero-art:not(.art-entered) svg{opacity:0}
 .motion-mobile .hero-art.art-entered svg{animation:mobile-art-breathe 6500ms 1500ms ease-in-out infinite;animation-play-state:paused;transform-origin:center}
 .motion-mobile .hero-art.art-entered.art-in-view:not(.art-paused) svg{animation-play-state:running}
 .motion-mobile .hero-art.art-entered svg>g>*{animation:mobile-type-settle 1150ms cubic-bezier(.16,1,.3,1) both;filter:none}
 .motion-mobile .hero-art.art-entered svg>g>:nth-child(1){animation-delay:0ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(2){animation-delay:180ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(3){animation-delay:90ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(4){animation-delay:270ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(5){animation-delay:135ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(6){animation-delay:360ms}.motion-mobile .hero-art.art-entered svg>g>:nth-child(7){animation-delay:225ms}
 .motion-mobile .module-row.motion-entered::after{animation:mobile-rule 1000ms 150ms cubic-bezier(.16,1,.3,1) both}
 .module-row:active{background:#eae7df0d;transform:scale(.98);transition:transform 120ms ease,background 120ms ease}.module-row:active>span:last-child{transform:translate(4px,-4px)}.back:active img,.footer-brand:active img{transform:scale(.95)}
 .module-hero h1{animation-name:mobile-title;animation-duration:750ms}.module-hero>p{animation-duration:650ms}
}
@keyframes mobile-title{from{opacity:.15;transform:translate(-18px,10px)}to{opacity:1;transform:translate(0,0)}}
@keyframes mobile-type-settle{from{transform:translate(calc(var(--type-x,0px) * 1.7),40px) rotate(var(--type-r,0deg)) scale(.9)}to{transform:translate(0,0) rotate(0) scale(1)}}
@keyframes mobile-art-breathe{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(.65deg)}}
@keyframes mobile-rule{0%{transform:scaleX(0);opacity:1}70%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:.3}}
@media(prefers-reduced-motion:reduce){.motion-mobile .hero-art:not(.art-entered) svg{opacity:1}.motion-mobile .hero-art.art-entered svg,.motion-mobile .hero-art.art-entered svg>g>*,.motion-mobile .module-row.motion-entered::after{animation:none!important;transform:none!important}}
@media(max-width:620px){.contents{overflow-x:clip}}
/* As duas relações de cor da folha de sala: PT claro, EN escuro. */
body.lang-pt{--ink:#e4e1d6;--paper:#1f2020;--muted:#50514e;--line:rgba(31,32,32,.28)}
body.lang-en{--ink:#1f2020;--paper:#cdc8b6;--muted:#c0bba9;--line:rgba(205,200,182,.28)}
.lang-pt .back img,.lang-pt .footer-brand img,.lang-pt .footer-support img{filter:brightness(0)}
.lang-en .back img,.lang-en .footer-brand img,.lang-en .footer-support img{filter:none}

.lang-pt .module-row:hover,.lang-en .module-row:hover{color:var(--paper)}
.lang-pt .catalogue,.lang-pt .visit{background:#dad7cb;color:var(--paper)}
.lang-en .catalogue,.lang-en .visit{background:#262727;color:var(--paper)}
.piece,.piece-index summary,.piece-index a{border-color:var(--line)}
.language-switch{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:30px;padding:3px;gap:2px;white-space:nowrap}
.language-switch a{display:block;border-radius:20px;padding:6px 9px;font-size:11px;line-height:1.2;text-decoration:none}
.language-switch a[aria-current=true]{background:var(--paper);color:var(--ink)}
.masthead nav{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.room-intro{padding-block:0 60px}.room-intro p{font-size:clamp(17px,2vw,25px);line-height:1.7;max-width:910px;margin:0}
.visit-links{max-width:440px}.visit-links a{line-height:1.65}.visit-links small{white-space:nowrap}
@media(max-width:620px){.masthead nav{gap:10px}.masthead{flex-wrap:wrap;padding-block:15px;row-gap:15px}.masthead nav{font-size:10px;gap:12px}.language-switch a{font-size:10px;padding:6px 8px}.room-intro{padding-bottom:35px}.room-intro p{font-size:16px}.module-page .masthead nav{font-size:10px}.hero h1{overflow-wrap:break-word}.piece-index summary{color:inherit}}
@media(max-width:370px){.masthead nav{width:100%;justify-content:space-between}}

/* Capa e interior conservam a inversão de cor dos impressos. */
.home-page.lang-pt{--ink:#1f2020;--paper:#cdc8b6;--muted:#c0bba9;--line:rgba(205,200,182,.28)}
.home-page.lang-en{--ink:#cdc8b6;--paper:#1f2020;--muted:#50514e;--line:rgba(31,32,32,.28)}
.home-page.lang-pt .back img,.home-page.lang-pt .footer-brand img,.home-page.lang-pt .footer-support img{filter:none}
.home-page.lang-en .back img,.home-page.lang-en .footer-brand img,.home-page.lang-en .footer-support img{filter:brightness(0)}
.home-page.lang-en .hero-art svg{filter:brightness(.3)}
.home-page .about,.home-page .contents{width:100%;padding-inline:max(56px,calc((100% - 1386px)/2))}
.home-page.lang-pt .about,.home-page.lang-pt .contents,.home-page.lang-pt .visit{--ink:#e4e1d6;--paper:#1f2020;--muted:#50514e;--line:rgba(31,32,32,.28);background:var(--ink);color:var(--paper)}
.home-page.lang-en .about,.home-page.lang-en .contents,.home-page.lang-en .visit{--ink:#1f2020;--paper:#cdc8b6;--muted:#c0bba9;--line:rgba(205,200,182,.28);background:var(--ink);color:var(--paper)}
@media(max-width:900px){.home-page .about,.home-page .contents{padding-inline:28px}}
@media(max-width:620px){.home-page .about,.home-page .contents{padding-inline:20px}}

/* Planta e núcleos lidos em conjunto. */
.contents-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:7%;align-items:start}
.contents-plan{margin:0;position:sticky;top:35px;scroll-margin-top:30px}
.contents-plan figcaption{margin:0 0 20px;font-size:13px;font-weight:500}
.contents-plan img{width:100%;height:auto;max-width:420px;margin-inline:auto}
.zone-caption{font-size:12px;font-weight:700;margin:0 0 14px}.zone-caption:not(:first-child){margin-top:28px}
.contents .module-row-title{font-size:clamp(22px,2.25vw,32px)}
.contents .module-row{padding-block:23px;gap:18px}
@media(max-width:1100px){.contents .module-row{grid-template-columns:1fr 24px;gap:8px}.contents .module-row-subtitle{grid-row:2}.contents .module-row>span:last-child{grid-column:2;grid-row:1 / 3}}
@media(max-width:620px){.contents-grid{grid-template-columns:1fr;gap:30px}.contents-plan{position:static}.contents-plan img{max-width:300px}.contents .module-row-title{font-size:25px}.contents-plan figcaption{margin-bottom:15px}.contents .module-row{padding-block:20px}}
