/* REPVBLIC — shared typography, desktop layout and print styles. */
@font-face { font-family: "RP"; src: url("fonts/rp-m.otf") format("opentype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter Tight"; src: url("fonts/inter-tight-variable.ttf") format("truetype"); font-style: normal; font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Plain"; src: url("fonts/plain-regular.otf") format("opentype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Tiempos Headline"; src: url("fonts/tiempos-headline-black.otf") format("opentype"); font-style: normal; font-weight: 900; font-display: swap; }
@font-face { font-family: "Burgess Pro"; src: url("fonts/burgess-pro-regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Burgess Pro"; src: url("fonts/burgess-pro-semibold.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
:root { color-scheme: light; background: #fffcf8; color: #000; }
* { box-sizing: border-box; }
body { margin: 0; font-family: "RP", Arial, Helvetica, sans-serif; font-synthesis: none; }
main { width: 95%; max-width: none; min-height: inherit; margin: 0 auto; padding: clamp(1.75rem, 6.5vw, 4rem) 0 4rem; }
h1 { position: sticky; top: 0; z-index: 10; background: transparent; margin: 0 0 clamp(1.75rem, 3.85vw, 2.5rem); font-size: 1rem; line-height: 0; }
.wordmark { display: block; width: 100%; height: auto; overflow: visible; }
.manifesto, .signature { margin: 0; font-size: clamp(.875rem, 1.95vw, 2.5rem); line-height: 1.12; font-weight: 600; }
.manifesto { text-align: justify; text-align-last: left; -webkit-hyphens: none; hyphens: none; word-break: normal; overflow-wrap: normal; }
.signature { margin-top: 1em; text-align: left; }
.site-footer { margin-top: clamp(3.5rem, 9vw, 8rem); border-top: 1px solid currentColor; padding-top: clamp(1.5rem, 3.2vw, 3rem); display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-family: "RP", Arial, Helvetica, sans-serif; font-size: clamp(.75rem, 1.11vw, 1rem); line-height: 1.3; font-weight: 600; }
.site-footer p { margin: 0; }
.site-footer p:last-child { text-align: right; }

@media print { :root { background: white; } main { width: 80%; padding-top: 2rem; } }



/* Freely movable images above the journal. */
body { position: relative; min-height: max(180svh, 1200px); overflow-x: clip; }
.photo-stage { position: absolute; inset: 0; z-index: 20; pointer-events: none; overflow: clip; }
.photo { position: absolute; display: block; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; color: inherit; pointer-events: auto; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; cursor: grab; }
.photo img { display: block; width: 100%; height: auto; pointer-events: none; }
.photo.is-dragging { cursor: grabbing; }
.photo:focus-visible { outline: 2px solid #000; outline-offset: 4px; }
.photo-poster { width: min(27vw, 390px); left: 14%; top: 145px; z-index: 21; }
.photo-city { width: min(38vw, 580px); left: 40%; top: 70px; z-index: 22; }
.photo-palms { width: min(24vw, 350px); left: 59%; top: 300px; z-index: 23; }
@media print { .photo-stage { display: none; } }




.footer-right { display: flex; align-items: center; gap: clamp(.25rem, 1vw, 1rem); }
.footer-socials { display: flex; align-items: center; }
.social-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; }
.social-icon img { display: block; width: 16px; height: 16px; object-fit: contain; }
.footer-right p { white-space: nowrap; }
.site-footer { align-items: center; }


