@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; /* 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; } @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; } .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; } .bank h2 { text-align: center; } .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; } }