/* Galeria editorial. O conteúdo fica em fluxo normal sem JavaScript ou com movimento reduzido. */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.peel-stage:not(.is-cinematic) .story { position: relative; top: auto !important; }
.peel-travel, .project-travel { display: none; }
.projects-surface { position: relative; z-index: 1; }
.universe { position: relative; top: auto; height: auto; margin-top: 0; scroll-margin-top: 0; padding: 28px var(--section-gutter) 26px; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: clamp(20px, 3vh, 32px); background: #080909; isolation: isolate; }
.universe-stars { z-index: -2; opacity: .26; mask-image: linear-gradient(90deg, #000, #0006 45%, #000); }
.universe::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 60% 30%, #08090900, #08090999 80%); }
.universe-meta { margin-inline: calc(var(--section-edge) - var(--section-gutter)); padding-bottom: 18px; font-size: 10px; letter-spacing: .08em; border-color: #ffffff26; }
.universe-meta > span { color: #aaa; }
.universe-meta .shape { width: 6px; height: 6px; }
.projects-heading { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.universe-title { position: relative; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; margin: 0; padding: 0 0 .04em; font-size: clamp(46px, 6.3vw, 102px); font-weight: 400; line-height: .95; letter-spacing: -.065em; }
.universe-title em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.075em; }
.projects-asterisk { display: inline-block; font-family: Arial, sans-serif; font-size: .47em; margin-left: .48em; vertical-align: top; line-height: 1.4; animation: project-asterisk-turn 32s linear infinite; }
.projects-heading > p { margin: 0 0 0 auto; font-size: clamp(11px, .9vw, 14px); line-height: 1.6; letter-spacing: -.01em; color: #a6a6a6; }
.projects-stage { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: clamp(20px, 2.6vw, 50px); min-height: 0; }
.projects-index { display: none; flex-direction: column; align-items: stretch; padding-top: 12px; }
.projects-index-label { color: #999; text-transform: uppercase; font-size: 9px; letter-spacing: .12em; margin-bottom: 20px; }
.project-selector { position: relative; display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: center; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid #ffffff16; background: none; text-align: left; color: #949494; font-size: 11px; cursor: pointer; transition: color 250ms; }
.project-selector > span:first-child { font-size: 9px; font-variant-numeric: tabular-nums; }
.project-selector i { position: absolute; width: 3px; height: 3px; right: 0; background: currentColor; opacity: 0; transition: opacity 250ms; }
.project-selector.is-active, .project-selector:hover { color: #f0f0ec; }
.project-selector.is-active i { opacity: 1; }
.projects-index-note { margin-top: auto; padding: 28px 0 6px; font-size: 10px; color: #909090; line-height: 1.6; }
.projects-deck { position: relative; min-width: 0; min-height: 0; grid-column: 1 / -1; perspective: 1500px; }
.project-panel { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 24px; min-width: 0; min-height: 0; margin: 0 0 72px; transform-origin: 50% 38%; }
.project-panel:last-child { margin-bottom: 0; }
.project-visual { position: relative; min-height: 0; aspect-ratio: 2 / 1; transform: perspective(1400px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transform-origin: center; border: 1px solid #ffffff28; background: #101112; box-shadow: 0 26px 70px -34px #000; transition: transform 500ms cubic-bezier(.2,.7,.2,1); }
.project-preview { position: relative; width: 100%; height: 100%; overflow: hidden; color: #f1efe9; background: #090909; container-type: inline-size; }
.preview-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: project-image-drift 16s ease-in-out infinite alternate; }
.preview-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #090c10a6, #00000005 72%), linear-gradient(0deg, #03040555, transparent 24%, transparent 70%, #03040544); }
.preview-top { position: absolute; inset: 0 4.2% auto; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 2.3% 0 1.8%; border-bottom: 1px solid #ffffff38; font-size: clamp(7px, .73cqw, 11px); }
.preview-top > span:nth-child(2) { margin-left: auto; margin-right: 8%; opacity: .8; }
.aura-logo { font-family: Georgia, serif; font-size: 3.6cqw; letter-spacing: -.07em; line-height: .8; }
.aura-logo > span, .vanta-logo > span { font-family: Arial, sans-serif; vertical-align: top; font-size: .3em; margin-left: .3em; }
.aura-copy, .vanta-copy, .autoral-copy { position: absolute; inset: 27% auto auto 4.2%; z-index: 1; }
.preview-eyebrow { display: block; font-size: clamp(7px, .72cqw, 10px); text-transform: uppercase; letter-spacing: .13em; }
.aura-copy p, .vanta-copy p, .autoral-copy p { font-size: 7.2cqw; line-height: .98; letter-spacing: -.06em; margin: 2.2cqw 0 2.3cqw; font-weight: 400; }
.aura-copy p { font-family: Georgia, serif; letter-spacing: -.055em; }
.aura-copy p em { font-weight: 400; }
.aura-copy p > span, .vanta-copy p > span, .autoral-copy p > span { display: block; }
.is-cinematic .project-panel.is-active .aura-copy p > span, .is-cinematic .project-panel.is-active .vanta-copy p > span, .is-cinematic .project-panel.is-active .autoral-copy p > span { animation: project-copy-enter 1100ms cubic-bezier(.16,.7,.1,1) both; }
.project-panel.is-active p > span:nth-child(2) { animation-delay: 110ms; }
.project-panel.is-active p > span:nth-child(3) { animation-delay: 220ms; }
.preview-small-link { display: inline-flex; gap: 2cqw; align-items: center; font-size: clamp(7px, .85cqw, 12px); }
.preview-small-link b { display: grid; place-items: center; width: 2.8cqw; height: 2.8cqw; min-width: 20px; min-height: 20px; border: 1px solid #ffffff66; border-radius: 50%; font-weight: 400; font-size: 1.2cqw; }
.preview-bottom { position: absolute; inset: auto calc(4.2% + 176px) 5% 4.2%; display: flex; justify-content: space-between; align-items: end; gap: 10px; font-size: clamp(6px, .6cqw, 9px); letter-spacing: .1em; }
.aura-coordinate { position: absolute; top: 44%; right: 3.3%; writing-mode: vertical-rl; font-size: .58cqw; letter-spacing: .12em; opacity: .8; }
.project-type-badge { position: absolute; right: 4.2%; bottom: calc(5% - 7px); z-index: 4; padding: 7px 9px; border: 1px solid #ffffff30; background: #080909c9; backdrop-filter: blur(8px); font-size: 8px; text-transform: uppercase; letter-spacing: .1em; pointer-events: none; }
.project-corner { position: absolute; z-index: 5; width: 7px; height: 7px; border: 1px solid #d9d9d9; pointer-events: none; }
.project-corner.corner-tl { top: -4px; left: -4px; }
.project-corner.corner-br { bottom: -4px; right: -4px; }
.project-cover-link { display: none; position: absolute; inset: 0; z-index: 3; padding: 0; border: 0; background: none; cursor: pointer; touch-action: pan-y; }
.project-hover-cue { display: flex; align-items: center; justify-content: center; gap: 10px; position: absolute; left: var(--cursor-x, 70%); top: var(--cursor-y, 50%); width: 94px; height: 94px; border: 1px solid #ffffff65; border-radius: 50%; background: #edece6; color: #121212; font-size: 11px; transform: translate(-50%, -50%) scale(.75); opacity: 0; transition: opacity 220ms, transform 400ms cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.project-hover-cue > span { font-size: 18px; }
@media (hover: hover) and (pointer: fine) {
  .project-cover-link:hover { cursor: none; }
  .project-cover-link:hover .project-hover-cue { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
.project-cover-link:focus-visible { outline-offset: 5px; }
.project-cover-link:focus-visible .project-hover-cue { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.project-caption { display: flex; align-items: center; justify-content: space-between; gap: 26px; min-height: 58px; }
.project-category { display: block; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; color: #a4a4a4; }
.project-caption h3 { margin: 9px 0 0; font-size: clamp(26px, 2.4vw, 38px); line-height: 1; font-weight: 400; letter-spacing: -.055em; }
.project-caption h3 > span { font-size: .32em; vertical-align: top; display: inline-block; margin: .15em 0 0 .4em; }
.project-caption > p { margin: 0 auto 0 clamp(12px, 3vw, 60px); font-size: clamp(11px, .86vw, 14px); color: #ccc; line-height: 1.6; }
.project-caption > p > span { display: block; margin-top: 3px; color: #929292; font-size: 10px; }
.project-open { display: none; align-items: center; gap: 20px; flex-shrink: 0; padding: 13px 0; border: 0; border-bottom: 1px solid #ffffff50; color: #f0efeb; background: transparent; font-size: 11px; cursor: pointer; }
.project-open > span { font-size: 21px; transition: transform 250ms; }
.project-open:hover > span { transform: translate(3px, -3px); }
.vanta-logo { font-size: 2.7cqw; line-height: 1; font-weight: 700; letter-spacing: -.08em; }
.preview-vanta .preview-shade { background: linear-gradient(90deg, #05050566, transparent 65%); }
.vanta-copy { top: 28%; }     
.vanta-copy p { font-size: 6.6cqw; letter-spacing: -.065em; }
.vanta-copy em { font-family: Georgia, serif; font-weight: 400; }
.vanta-orbit { position: absolute; right: 6%; top: 50%; width: 38%; aspect-ratio: 1; border: 1px solid #ffffff12; border-radius: 50%; pointer-events: none; transform: rotateX(65deg) rotate(-25deg); animation: project-orbit 18s linear infinite; }
.preview-autoral { background: #101010; }
.autoral-halo { position: absolute; inset: 0; background: radial-gradient(ellipse 34% 62% at 73% 50%, #474b50, #191b1e 55%, #080808); }
.autoral-mark { position: absolute; right: 12%; top: 50%; width: 32%; aspect-ratio: 1; translate: 0 -50%; color: #c6cacf; filter: drop-shadow(0 22px 44px #000a); animation: project-mark-turn 28s linear infinite; }
.preview-grain { position: absolute; inset: 0; opacity: .09; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); }
.autoral-logo { width: 3.4cqw; height: 3.4cqw; }
/* Atmosfera atrás dos objetos: marca fantasma e símbolo fantasma. */
.vanta-ghost { position: absolute; left: 40%; top: 49%; translate: 0 -50%; font-size: 20cqw; font-weight: 700; line-height: 1; letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 1px #ffffff17; pointer-events: none; user-select: none; }
.autoral-ghost { position: absolute; left: 68%; top: 52%; height: 66%; width: auto; translate: -50% -50%; color: #ffffff14; pointer-events: none; animation: project-asterisk-turn 110s linear infinite reverse; }
.autoral-copy { top: 26%; }
.autoral-copy p { font-size: 5.8cqw; margin-top: 1.5cqw; }
.autoral-copy em { font-family: Georgia, serif; font-weight: 400; }
.autoral-cross { position: absolute; font-size: 18px; font-weight: 300; color: #bbb; }
.cross-one { left: 57%; top: 27%; }
.cross-two { right: 7%; bottom: 21%; }
.projects-bottom { display: none; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 25px; margin-top: 2px; margin-inline: calc(var(--section-edge) - var(--section-gutter)); padding-top: 17px; border-top: 1px solid #ffffff26; color: #b3b3b3; }
.projects-scroll-hint { display: flex; align-items: center; gap: 13px; font-size: 10px; }
.projects-scroll-hint > span { font-size: 15px; animation: project-scroll-nudge 2.5s ease-in-out infinite; }
.projects-progress { display: flex; align-items: center; gap: 14px; font-size: 10px; font-variant-numeric: tabular-nums; }
.projects-current { color: #f0efeb; }
.projects-progress-track { position: relative; display: block; width: clamp(80px, 13vw, 190px); height: 1px; background: #ffffff29; overflow: hidden; }
.projects-progress-track i { position: absolute; inset: 0; background: #e4e2dc; transform: scaleX(var(--project-progress, .2)); transform-origin: left; }
.projects-controls { display: flex; justify-content: end; gap: 9px; }
.projects-controls button { display: grid; place-items: center; width: 35px; height: 30px; padding: 0; border: 1px solid #ffffff29; background: #08090955; color: #e8e8e8; font-size: 15px; cursor: pointer; transition: background 220ms, opacity 220ms; }
.projects-controls button:hover { background: #ffffff16; }
.projects-controls button:disabled { opacity: .25; cursor: default; }
.projects-controls .projects-motion { border: 0; margin-right: 8px; font-size: 11px; }
.has-gallery .project-cover-link { display: block; }
.has-gallery .project-open { display: inline-flex; }
.is-cinematic .projects-surface { position: sticky; top: 0; height: 100svh; margin-top: -100svh; }
.is-cinematic .universe { height: 100svh; }
.is-cinematic .peel-travel { display: block; height: 100svh; }
.is-cinematic .project-travel { display: block; height: 280svh; }
.is-cinematic .projects-index { display: flex; }
.is-cinematic .projects-deck { grid-column: auto; }
.is-cinematic .project-panel { position: absolute; inset: 0; margin: 0; will-change: transform, opacity; backface-visibility: hidden; }
.is-cinematic .project-panel:not(.is-active) { visibility: hidden; opacity: 0; pointer-events: none; }
.is-cinematic .project-visual { aspect-ratio: auto; }
.is-cinematic .projects-bottom { display: grid; }
.project-panel:not(.is-active) .project-preview *, .universe:not(.is-in-view) .project-preview *, .universe:not(.is-in-view) .projects-asterisk, .universe:not(.is-in-view) .projects-scroll-hint > span, .projects-paused .universe *, .project-dialog.is-paused * { animation-play-state: paused !important; }
.project-dialog { position: fixed; width: min(1160px, calc(100% - 64px)); max-width: none; max-height: calc(100svh - 48px); padding: 0; border: 1px solid #ffffff38; color: #e8e8e8; background: #101111; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #555 #111; }
.project-dialog::backdrop { background: #030404d9; backdrop-filter: blur(14px); }
.project-dialog[open] { animation: project-dialog-enter 400ms cubic-bezier(.2,.7,.2,1) both; }
.project-dialog-top { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; background: #101111ed; backdrop-filter: blur(10px); border-bottom: 1px solid #ffffff24; }
.project-dialog-kind { color: #aaa; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.project-dialog-close { display: flex; align-items: center; gap: 16px; border: 0; padding: 4px 0 4px 10px; background: none; cursor: pointer; font-size: 11px; }
.project-dialog-close > span { font-size: 26px; line-height: .8; }
.project-dialog-visual { aspect-ratio: 2 / 1; }
.project-dialog-visual .project-preview { height: 100%; }
.project-dialog-content { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(30px, 7vw, 100px); padding: clamp(26px, 4vw, 52px); }
.project-dialog-content h2 { margin: 18px 0 24px; font-size: clamp(38px, 4.5vw, 60px); letter-spacing: -.06em; font-weight: 400; line-height: 1; }
.project-dialog-description { max-width: 440px; margin: 0; font-size: 15px; color: #b9b9b9; line-height: 1.7; }
.project-dialog-details > div { padding-bottom: 17px; margin-bottom: 18px; border-bottom: 1px solid #ffffff26; }
.project-dialog-details > div > span { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: #999; }
.project-dialog-details p { margin: 11px 0 0; font-size: 13px; line-height: 1.65; }
.project-dialog-details .project-dialog-note { color: #a2a2a2; font-size: 11px; }
.project-dialog-visit { display: inline-flex; margin-top: 16px; padding: 8px 0; gap: 24px; border-bottom: 1px solid #ffffff60; font-size: 12px; }
.project-dialog-visit[hidden] { display: none; }
html.project-dialog-open { overflow: hidden; scrollbar-gutter: stable; }
@keyframes project-image-drift { from { transform: scale(1.01) translate3d(0, 0, 0); } to { transform: scale(1.075) translate3d(-.6%, -.5%, 0); } }
@keyframes project-mark-turn { to { transform: rotate(360deg); } }
@keyframes project-copy-enter { from { opacity: 0; transform: translateY(24px); clip-path: inset(100% 0 0 0); } to { opacity: 1; transform: translateY(0); clip-path: inset(-10% -10% -10% -10%); } }
@keyframes project-asterisk-turn { to { transform: rotate(360deg); } }
@keyframes project-orbit { to { transform: rotateX(65deg) rotate(335deg); } }
@keyframes project-scroll-nudge { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
@keyframes project-dialog-enter { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: none; } }
@media (min-width: 1800px) {
  .projects-stage { grid-template-columns: 110px minmax(0, 1fr); }
  .universe { gap: 32px; }
}
@media (min-width: 900px) and (max-height: 760px) {
  .universe { gap: 17px; padding-top: 21px; padding-bottom: 18px; }
  .universe-meta { padding-bottom: 13px; }
  .universe-title { font-size: clamp(42px, 5vw, 74px); }
  .project-panel { gap: 15px; }
  .project-caption { min-height: 48px; }
  .project-caption h3 { font-size: 27px; }
  .projects-bottom { padding-top: 12px; }
  .project-selector { padding-block: 10px; }
  .projects-index-label { margin-bottom: 14px; }
  .projects-index-note { display: none; }
  .aura-copy, .vanta-copy { top: 25%; }
  .aura-copy p, .vanta-copy p { font-size: 5.9cqw; margin-block: 1.4cqw; }
  .autoral-copy { top: 23%; }
  .autoral-copy p { font-size: 5cqw; }
}
@media (max-width: 899px) {
  .universe { gap: 24px; }
  .projects-stage { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); gap: 16px; }
  .is-cinematic .projects-index { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 14px; align-items: center; padding: 0; }
  .projects-index-label { grid-column: 1 / -1; margin: 0 0 5px; }
  .project-selector { display: flex; width: auto; gap: 7px; padding: 9px 0; }
  .project-selector.is-active { border-color: #e8e8e8; }
  .project-selector i, .projects-index-note { display: none; }
  .project-caption { gap: 18px; }
  .project-caption > p { display: none; }
  .project-panel { gap: 21px; }
  .projects-heading > p { font-size: 10px; }
  .project-type-badge { font-size: 7px; }
}
@media (max-width: 600px) {
  .universe { padding: 21px 20px 20px; gap: 23px; }
  .universe-meta { font-size: 8px; gap: 12px; padding-bottom: 15px; }
  .universe-meta > span { letter-spacing: .04em; }
  .projects-heading { align-items: end; gap: 10px; }
  .universe-title { font-size: clamp(38px, 10.4vw, 62px); white-space: nowrap; }
  .projects-asterisk { font-size: .4em; margin-left: .3em; }
  .projects-heading > p { display: none; }
  .projects-stage { gap: 16px; }
  .is-cinematic .projects-index { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 9px; }
  .projects-index-label { font-size: 8px; }
  .project-selector { font-size: 10px; }
  .project-selector > span:first-child { font-size: 8px; }
  .project-panel { gap: 20px; }
  .project-visual { aspect-ratio: 4 / 5; }
  .project-caption { align-items: end; min-height: 60px; }
  .project-caption h3 { font-size: clamp(22px, 6.4vw, 32px); margin-top: 10px; }
  .project-category { font-size: 8px; letter-spacing: .055em; }
  .project-open { font-size: 10px; gap: 10px; padding: 8px 0; }
  .project-open > span { font-size: 18px; }
  .projects-bottom { gap: 12px; padding-top: 15px; }
  .projects-scroll-hint { gap: 7px; max-width: 95px; font-size: 9px; line-height: 1.4; }
  .projects-progress { gap: 8px; font-size: 9px; }
  .projects-progress-track { width: 42px; }
  .projects-controls { gap: 6px; }
  .projects-controls button { width: 29px; height: 30px; }
  .projects-controls .projects-motion { width: 20px; margin-right: 1px; }
  .preview-top { inset-inline: 7%; padding-top: 7%; padding-bottom: 5%; font-size: 7px; }
  .preview-top > span:nth-child(2) { display: none; }
  .aura-logo { font-size: 8cqw; }
  .vanta-logo { font-size: 7cqw; }
  .preview-menu { font-size: 6px; }
  .preview-aura .preview-image { object-position: 61% center; }
  .preview-shade { background: linear-gradient(90deg, #03050788, #03050722), linear-gradient(0deg, #03050766, transparent 75%); }
  .aura-copy { top: 35%; left: 7%; }
  .preview-eyebrow { font-size: 6px; letter-spacing: .1em; }
  .aura-copy p { font-size: 13.2cqw; margin-block: 5cqw; }
  .preview-small-link { font-size: 7px; gap: 15px; }
  .preview-small-link b { width: 24px; height: 24px; font-size: 12px; }
  .preview-bottom { inset-inline: 7%; bottom: 6%; font-size: 5px; letter-spacing: .06em; }
  .project-type-badge { right: 12px; bottom: 12px; }
  .preview-bottom > span:last-child { display: none; }
  .aura-coordinate { font-size: 5px; right: 5%; }
  .preview-vanta .preview-image { width: 145%; height: 74%; left: -30%; top: 19%; object-fit: cover; object-position: right center; }
  .preview-vanta .preview-shade { background: linear-gradient(0deg, #050505 4%, transparent 47%, #05050588 80%); }
  .vanta-copy { top: 20%; left: 7%; }
  .vanta-copy p { font-size: 12cqw; margin-block: 5cqw; text-shadow: 0 2px 30px #000; }
  .vanta-copy .preview-small-link { margin-top: 32cqw; }
  .vanta-orbit { width: 60%; right: 1%; top: 56%; }
  .autoral-logo { width: 8cqw; height: 8cqw; }
  .autoral-copy { top: 28%; left: 7%; }
  .autoral-copy p { font-size: 11cqw; margin-top: 5cqw; }
  .autoral-mark { width: 40%; right: 9%; top: auto; bottom: 8%; translate: none; }
  .vanta-ghost { left: -3%; top: 71%; font-size: 40cqw; }
  .autoral-ghost { left: 56%; top: 70%; height: 62%; }
  .autoral-halo { background: radial-gradient(ellipse 60% 45% at 65% 76%, #3f4348, #080808 72%); }
  .cross-one { top: 23%; left: 80%; }
  .cross-two { right: 6%; bottom: 18%; }
  .project-type-badge { font-size: 6px; padding: 6px; }
  .project-dialog { width: calc(100% - 24px); max-height: calc(100svh - 24px); }
  .project-dialog-top { padding: 16px; }
  .project-dialog-visual { aspect-ratio: 4 / 5; max-height: 52svh; }
  .project-dialog-content { grid-template-columns: 1fr; padding: 25px 22px; gap: 30px; }
  .project-dialog-content h2 { font-size: 40px; }
  .project-dialog-description { font-size: 14px; }
}
@media (max-width: 600px) and (max-height: 740px) {
  .universe { gap: 15px; padding-top: 17px; padding-bottom: 14px; }
  .universe-title { font-size: 10vw; }
  .projects-stage { gap: 12px; }
  .project-panel { gap: 13px; }
  .project-caption { min-height: 47px; }
  .project-caption h3 { margin-top: 7px; }
  .projects-bottom { padding-top: 11px; }
  .vanta-copy .preview-small-link { margin-top: 15cqw; }
}
@media (prefers-reduced-motion: reduce) {
  .project-preview *, .projects-asterisk, .projects-scroll-hint > span { animation: none !important; }
  .project-visual { transform: none !important; transition: none; }
  .project-hover-cue { display: none; }
  .project-cover-link:hover { cursor: pointer; }
  .project-dialog[open] { animation: none; }
}

/* As cenas substituem a arte apenas depois do primeiro quadro renderizado. */
.project-3d-canvas, .project-3d-poster { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; z-index: 1; pointer-events: none; }
.project-3d-poster { display: none; }
.is-3d-ready:not(.is-3d-live) .project-3d-poster { display: block; }
.is-3d-ready > .preview-image, .is-3d-ready > .autoral-mark { opacity: 0; animation: none !important; }
.project-3d-canvas[hidden] { display: none; }
.is-3d-ready > .preview-top, .is-3d-ready > .preview-bottom, .is-3d-ready > .aura-coordinate { z-index: 3; }
.is-3d-ready > .aura-copy, .is-3d-ready > .vanta-copy, .is-3d-ready > .autoral-copy { z-index: 3; translate: var(--scene-shift-x, 0px) var(--scene-shift-y, 0px); }
.preview-aura.is-3d-ready { background: radial-gradient(ellipse 82% 96% at 50% 50%, transparent 52%, #040505 100%), radial-gradient(ellipse 42% 64% at 66% 44%, #343229, #0b0f10 72%); }
.preview-aura.is-3d-ready > .preview-image { opacity: .085; filter: blur(18px) saturate(.3); transform: scale(1.08); }
.preview-aura.is-3d-ready > .aura-copy { top: 27%; left: 4.2%; }
.preview-aura.is-3d-ready .aura-copy p { font-size: 6.6cqw; }
.preview-vanta.is-3d-ready { background: radial-gradient(ellipse 82% 96% at 50% 50%, transparent 52%, #040404 100%), radial-gradient(ellipse 38% 68% at 67% 50%, #2c3239, #090a0b 74%, #050505); }
.preview-vanta.is-3d-ready > .preview-shade, .preview-vanta.is-3d-ready > .vanta-orbit { opacity: 0; }
.is-3d-ready > .preview-grain { opacity: .06; }
.preview-autoral.is-3d-ready > .autoral-halo { background: radial-gradient(ellipse 82% 96% at 50% 50%, transparent 52%, #050506 100%), radial-gradient(ellipse 42% 72% at 68% 50%, #4d5257, #131518 66%, #080909); }
.is-3d-ready > .autoral-cross { z-index: 3; }
@media (max-width: 600px) {
  .preview-aura.is-3d-ready > .aura-copy { top: 22%; left: 7%; }
  .preview-aura.is-3d-ready .aura-copy p { font-size: 12.5cqw; }
  .is-3d-ready .preview-small-link { display: none; }
  .preview-vanta.is-3d-ready { background: radial-gradient(ellipse 96% 90% at 50% 50%, transparent 55%, #040404 100%), radial-gradient(ellipse 80% 46% at 55% 67%, #2c3239, #090a0b 78%, #050505); }
  .preview-autoral.is-3d-ready > .autoral-halo { background: radial-gradient(ellipse 96% 90% at 50% 50%, transparent 55%, #050506 100%), radial-gradient(ellipse 70% 45% at 55% 72%, #3a4147, #080909 75%); }
}
@media (prefers-reduced-motion: reduce) {
  .project-3d-canvas, .project-3d-poster { display: none !important; }
  .is-3d-ready > .preview-image, .is-3d-ready > .autoral-mark { opacity: 1; }
}
/* Celular deitado: sem modo cinematográfico, cada card cabe inteiro na tela junto da legenda. */
@media (max-height: 559px) and (orientation: landscape) {
  .project-visual { width: min(100%, calc(72svh * 2)); justify-self: center; }
}
