@font-face { font-family: Roboto; font-style: normal; font-weight: 400 700; font-display: swap; src: url("./fonts/roboto-latin.woff2") format("woff2"); } @font-face { font-family: Roboto; font-style: italic; font-weight: 400 700; font-display: swap; src: url("./fonts/roboto-italic-latin.woff2") format("woff2"); } :root { color-scheme: dark; --color-burgundy: #982249; --color-white: #fff; --color-cream: #faf5eb; --color-sand: #e5cd9c; --color-announcement: #f2e6cc; --color-focus: #ffc300; --color-dialog: #721a3d; --color-overlay: rgb(24 8 16 / 72%); --color-shadow: rgb(24 8 16 / 45%); /* One design unit is one point on the supplied 1200 × 900 layout. */ --unit: 0.0833333333vw; --font-body: Roboto, system-ui, sans-serif; --desktop-backdrop: image-set(url("./background-1200.webp") 1x, url("./background-2400.webp") 2x); } *, *::before, *::after { box-sizing: border-box; } html { min-inline-size: 280px; background: var(--color-burgundy); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { position: relative; isolation: isolate; margin: 0; color: var(--color-white); font-family: var(--font-body); font-synthesis: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body::before { position: fixed; z-index: -1; inset: 0 0 auto; min-block-size: 100svh; block-size: calc(900 * var(--unit)); background-image: var(--desktop-backdrop); background-size: 100% auto; background-repeat: no-repeat; background-position: center top; content: ""; } .page { display: flex; flex-direction: column; align-items: center; min-block-size: max(100svh, calc(900 * var(--unit))); padding: calc(142 * var(--unit)) calc(24 * var(--unit)) calc(56 * var(--unit)); text-align: center; } h1, h2, p, dl, dd { margin: 0; } img { display: block; max-inline-size: 100%; block-size: auto; } a { color: inherit; text-decoration: none; text-underline-offset: 0.2em; } a:hover, .copy-iban:hover { text-decoration: underline; } a:focus-visible, button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; border-radius: 2px; } strong { font-weight: 700; } .logo { inline-size: calc(184.76 * var(--unit)); block-size: calc(146.67 * var(--unit)); } .announcement { margin-block-start: calc(31.4 * var(--unit)); color: var(--color-cream); font-style: italic; font-size: calc(15 * var(--unit)); line-height: calc(22 * var(--unit)); letter-spacing: 0.005em; } .announcement h1 { margin-block-end: calc(8.64 * var(--unit)); color: var(--color-announcement); font-size: calc(19 * var(--unit)); font-weight: 700; line-height: calc(23 * var(--unit)); letter-spacing: 0.01em; } .design-line { display: block; } .support { margin-block-start: calc(18.25 * var(--unit)); color: var(--color-cream); font-size: calc(15 * var(--unit)); line-height: calc(22 * var(--unit)); font-style: italic; letter-spacing: 0.005em; } .support-title { inline-size: calc(454.02 * var(--unit)); margin-inline: auto; transform: translateX(calc(-9.22 * var(--unit))); } .support-title img { inline-size: 100%; aspect-ratio: 454.02 / 47.9; } .support-options { margin-block-start: calc(5.63 * var(--unit)); font-weight: 700; } .thanks { margin-block-start: calc(9 * var(--unit)); } .contact { margin-block-start: calc(22.63 * var(--unit)); font-size: calc(10 * var(--unit)); line-height: calc(14 * var(--unit)); letter-spacing: 0.005em; } .contact h2, .bank h2 { color: var(--color-sand); font-size: inherit; font-weight: 700; letter-spacing: 0.015em; } address { font-style: normal; } .contact-person, .contact-channels { margin-block-start: calc(12 * var(--unit)); } .phone-line, .email-line { display: block; } .instagram { margin-block-start: calc(10 * var(--unit)); } .label { color: var(--color-sand); } .donations { display: grid; grid-template-columns: calc(185 * var(--unit)) calc(119 * var(--unit)); gap: calc(24 * var(--unit)); margin-block-start: calc(19.92 * var(--unit)); text-align: start; font-size: calc(10 * var(--unit)); line-height: calc(14 * var(--unit)); letter-spacing: 0.01em; } .bank { padding-block-start: calc(14.24 * var(--unit)); } .account-holder { margin-block-start: calc(12 * var(--unit)); } .account-holder strong { font-weight: 600; } .account-details { margin-block-start: calc(14 * var(--unit)); } .account-details > div { display: grid; grid-template-columns: calc(29 * var(--unit)) 1fr; } .copy-iban { display: inline; margin: 0; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; white-space: nowrap; cursor: copy; user-select: all; } .qr-link { display: block; inline-size: calc(85.54 * var(--unit)); } .paypal-address { display: inline-block; margin-block-start: calc(10.86 * var(--unit)); white-space: nowrap; } .visually-hidden { position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } .skip-link { position: absolute; z-index: 2; inset-block-start: 1rem; inset-inline-start: 1rem; padding: 0.75rem 1rem; background: var(--color-burgundy); transform: translateY(-200%); } .skip-link:focus { transform: none; } .site-footer { inline-size: min(100%, calc(454.02 * var(--unit))); margin-block-start: max(28px, calc(20 * var(--unit))); border-block-start: 1px solid color-mix(in srgb, var(--color-sand) 35%, transparent); padding-block-start: max(8px, calc(8 * var(--unit))); color: var(--color-sand); font-size: max(16px, calc(10 * var(--unit))); } .site-footer nav { display: flex; justify-content: center; gap: max(24px, calc(24 * var(--unit))); } .site-footer a { display: inline-flex; align-items: center; min-block-size: 44px; } html:has(.legal-dialog[open]), html:has(.legal-dialog:target) { overflow: hidden; } .legal-dialog { --dialog-unit: max(1px, var(--unit)); --dialog-gap: calc(16 * var(--dialog-unit)); --dialog-border: calc(2 * var(--dialog-unit)); position: fixed; inset: 0; inline-size: min(calc(900 * var(--dialog-unit)), calc(100% - 2 * var(--dialog-gap))); max-inline-size: none; max-block-size: calc(100svh - 2 * var(--dialog-gap)); margin: auto; border: var(--dialog-border) solid var(--color-white); border-radius: calc(12 * var(--dialog-unit)); padding: 0; overflow: hidden; background: var(--color-dialog); color: var(--color-cream); font-size: calc(18 * var(--dialog-unit)); box-shadow: 0 calc(24 * var(--dialog-unit)) calc(80 * var(--dialog-unit)) var(--color-shadow); } .legal-dialog::backdrop { background: var(--color-overlay); backdrop-filter: blur(5px); } /* Fragment links still open the complete text if JavaScript is unavailable. */ .legal-dialog:target:not([open]) { display: block; z-index: 3; box-shadow: 0 0 0 100vmax var(--color-overlay); } .legal-shell { display: flex; flex-direction: column; max-block-size: calc(100svh - 2 * var(--dialog-gap) - 2 * var(--dialog-border)); } .legal-header { display: flex; flex: none; align-items: center; justify-content: space-between; gap: calc(16 * var(--dialog-unit)); border-block-end: 1px solid color-mix(in srgb, var(--color-sand) 25%, transparent); padding: calc(12 * var(--dialog-unit)) calc(20 * var(--dialog-unit)); } .legal-header img { inline-size: calc(64 * var(--dialog-unit)); block-size: calc(51 * var(--dialog-unit)); } .legal-close { display: inline-flex; align-items: center; justify-content: center; gap: calc(12 * var(--dialog-unit)); min-block-size: calc(44 * var(--dialog-unit)); border-radius: calc(6 * var(--dialog-unit)); padding-inline: calc(12 * var(--dialog-unit)); color: var(--color-sand); font-size: calc(16 * var(--dialog-unit)); } .legal-close:hover { background: color-mix(in srgb, var(--color-cream) 8%, transparent); text-decoration: none; } .legal-close span { font-size: calc(28 * var(--dialog-unit)); line-height: 1; } .legal-copy { min-block-size: 0; padding: calc(24 * var(--dialog-unit)); overflow: auto; overscroll-behavior: contain; text-align: start; overflow-wrap: anywhere; font-size: inherit; font-style: normal; line-height: 1.65; scrollbar-color: var(--color-sand) var(--color-dialog); } .legal-copy h1 { margin: 0 0 calc(24 * var(--dialog-unit)); color: var(--color-cream); font-size: calc(36 * var(--dialog-unit)); font-style: italic; line-height: 1.2; } .legal-copy h2 { margin: calc(32 * var(--dialog-unit)) 0 calc(16 * var(--dialog-unit)); color: var(--color-sand); font-size: calc(24 * var(--dialog-unit)); line-height: 1.35; } .legal-copy h3 { margin: calc(24 * var(--dialog-unit)) 0 calc(12 * var(--dialog-unit)); color: var(--color-sand); font-size: calc(20 * var(--dialog-unit)); line-height: 1.4; } .legal-copy h4 { margin: calc(20 * var(--dialog-unit)) 0 calc(10 * var(--dialog-unit)); font-size: inherit; line-height: 1.5; } .legal-copy p, .legal-copy ul { margin-block: 0 calc(16 * var(--dialog-unit)); } .legal-copy ul { padding-inline-start: calc(24 * var(--dialog-unit)); } .legal-copy li + li { margin-block-start: calc(8 * var(--dialog-unit)); } .legal-copy a { color: var(--color-sand); text-decoration: underline; } .legal-copy > :last-child { margin-block-end: 0; } @media (width > 1024px) { body::after { position: fixed; z-index: 1; inset: 0 0 auto; block-size: calc(270 * var(--unit)); background-image: var(--desktop-backdrop); background-size: 100% auto; background-repeat: no-repeat; /* Include the soft shadow above content without darkening the backdrop twice. */ mask-image: url("./construction-tape-mask.svg"); mask-mode: alpha; mask-size: 100% auto; mask-repeat: no-repeat; pointer-events: none; content: ""; } } @media (width <= 1024px) { :root { --unit: 1px; } body { isolation: auto; background-image: url("./construction-tape.svg?v=561024d6e6b4"), url("./background-mobile.webp"); background-position: center top; background-size: 1200px 270px, cover; background-repeat: no-repeat; } /* Mobile decoration is a normal background, with no layers in the touch path. */ body::before, body::after { content: none; } .page { min-block-size: 100svh; padding: 154px 24px 48px; } .logo { inline-size: 185px; block-size: auto; } .announcement, .support { max-inline-size: 620px; inline-size: 100%; font-size: 16px; line-height: 1.5; } .site-footer { inline-size: min(100%, 620px); } .announcement { margin-block-start: 30px; } .announcement h1 { margin-block-end: 16px; font-size: 21px; line-height: 1.3; } .support { margin-block-start: 28px; } .support-title { max-inline-size: 100%; transform: none; } .support-options { margin-block-start: 12px; } .thanks { margin-block-start: 14px; } .contact { margin-block-start: 30px; font-size: 14px; line-height: 1.6; } .contact-channels a, .instagram a { display: inline-block; padding-block: 4px; } .donations { grid-template-columns: minmax(0, 260px) 170px; gap: 28px; margin-block-start: 30px; font-size: 14px; line-height: 1.5; } .account-details > div { grid-template-columns: 40px 1fr; } .qr-link { inline-size: 124px; } .copy-iban { padding-block: 4px; margin-block: -4px; } } @media (width <= 600px) { .page { padding-inline: 20px; } .design-line { display: inline; } .mobile-phone { display: block; } .phone-separator { display: none; } .donations { grid-template-columns: minmax(0, 1fr); gap: 26px; inline-size: min(100%, 288px); } .bank { padding-block-start: 0; text-align: center; } .account-details > div { grid-template-columns: max-content max-content; justify-content: center; column-gap: 0.4em; } .paypal { justify-self: center; text-align: center; } .qr-link { inline-size: 140px; margin-inline: auto; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }