/* Locally hosted variable fonts, SIL OFL 1.1; licenses in assets/fonts/. */
@font-face {
  font-family: "Bitter";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/bitter-italic-latin-ext-11aa915c.woff2") format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bitter";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/bitter-italic-latin-b3254bd6.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Bitter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/bitter-normal-latin-ext-40fbac44.woff2") format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bitter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/bitter-normal-latin-261cfc4d.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/source-sans-3-italic-latin-ext-daff22b9.woff2")
    format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/source-sans-3-italic-latin-bf6aa2f7.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/source-sans-3-normal-latin-ext-ed3571ea.woff2")
    format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/source-sans-3-normal-latin-587435ca.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
/* smeidu · 2027. A small shared design system, with room for each project. */
:root {
  color-scheme: light;
  --paper: #f6f4f0;
  --ink: #292a29;
  --muted: #65645f;
  --rule: var(--ink);
  --accent: #875c48;
  --tint: #e4cec2;
  --soft: #ece9e3;
  --radius: 15px;
  --content: 1120px;
  --serif: "Bitter", Georgia, serif;
  --sans:
    "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial,
    sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 30px;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a {
  cursor: pointer;
  color: inherit;
  text-underline-offset: 0.22em;
  text-decoration-thickness: 1px;
}
a:hover {
  text-decoration-color: var(--accent);
}
a,
button,
summary {
  -webkit-tap-highlight-color: transparent;
}
button,
input {
  font: inherit;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
  opacity: 0.45;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
svg {
  max-width: 100%;
}
figure {
  margin: 0;
}
figcaption,
.credits,
.source-note {
  font-size: 0.78rem;
  line-height: 1.6;
  color: var(--muted);
}
figcaption {
  margin-top: 12px;
}
h1,
h2,
h3,
h4,
p {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  line-height: 1.17;
  font-weight: 550;
  letter-spacing: -0.035em;
}
h1 {
  font-size: clamp(2.6rem, 5.5vw, 4.7rem);
  font-weight: 500;
}
h1 em,
h2 em {
  font-family: var(--serif);
  font-weight: 400;
}
h2 {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}
h3 {
  font-size: 1.15rem;
}
p + p {
  margin-top: 1.2em;
}
strong {
  font-weight: 650;
}
address {
  font-style: normal;
}
ul {
  padding-left: 1.3em;
}
li {
  margin-bottom: 0.4em;
}
::selection {
  background: #e2d2eb;
  color: #242124;
}
:focus-visible {
  outline: 3px solid #836c9e;
  outline-offset: 5px;
  border-radius: 2px;
}
main:focus {
  outline: none;
}
[hidden] {
  display: none !important;
}
.wrap {
  width: min(var(--content), calc(100% - clamp(32px, 8vw, 112px)));
  margin-inline: auto;
}
.skip-link {
  position: absolute;
  left: 16px;
  top: -100px;
  padding: 12px 18px;
  z-index: 100;
  background: var(--ink);
  color: var(--paper);
}
.skip-link:focus {
  top: 10px;
}
.site-header {
  display: flex;
  align-items: center;
  padding-block: 28px 23px;
  border-bottom: 1px solid var(--ink);
  gap: 30px;
}
.wordmark {
  display: block;
  flex: 0 0 142px;
}
.wordmark img {
  width: 142px;
  height: 42px;
  object-fit: contain;
}
.site-header nav {
  display: flex;
  align-items: center;
}
.site-header nav a {
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1;
  padding: 15px 29px;
  border-left: 1px solid var(--rule);
  text-decoration: none;
}
.site-header nav a:last-child {
  border-right: 1px solid var(--rule);
}
.site-header nav a[aria-current] {
  font-weight: 700;
}
.site-header nav a:hover {
  background: var(--soft);
}
main {
  min-height: 50vh;
}
.eyebrow {
  font-size: 0.73rem;
  font-weight: 550;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 18px;
}
.lead {
  font-size: clamp(1.08rem, 1.8vw, 1.3rem);
  line-height: 1.65;
  max-width: 650px;
  color: var(--muted);
}
.page-intro {
  padding-block: 70px 55px;
}
.page-intro h1 {
  margin-bottom: 22px;
}
.compact {
  padding-bottom: 35px;
}
.home-intro {
  padding: 66px 0 54px;
}
.hello {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.06rem;
  margin-bottom: 26px;
}
.home-intro h1 {
  font-size: clamp(2.9rem, 6.3vw, 5.1rem);
  line-height: 1.04;
  letter-spacing: -0.052em;
  margin-bottom: 30px;
}
.intro-copy {
  max-width: 800px;
  font-size: 1.1rem;
  line-height: 1.65;
}
.intro-copy p + p {
  margin-top: 0.8em;
}
.intro-copy a {
  text-decoration-color: var(--rule);
}
.section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 23px;
}
.section-heading h2 {
  font-size: 0.88rem;
  letter-spacing: 0;
  font-weight: 550;
}
.section-heading a,
.section-index {
  font-size: 0.78rem;
  color: var(--muted);
}
.section-index {
  font-family: var(--serif);
  font-style: italic;
}
.text-link {
  text-decoration: none;
  border-bottom: 1px solid var(--rule);
  padding-bottom: 4px;
}
.text-link span {
  margin-left: 12px;
}
.experience-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.experience-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 260px;
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  box-shadow:
    0 4px 10px #24221a08,
    0 14px 28px #24221a04;
  transition:
    transform 0.28s cubic-bezier(0.2, 0.7, 0.3, 1),
    box-shadow 0.28s;
  transform-origin: center;
  --card-tilt: -2deg;
}
.brand-stage {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
  padding: 26px 38px 20px;
}
.brand-logo {
  width: 165px;
  max-height: 100px;
  object-fit: contain;
}
.planet-card {
  background: #17232c;
  color: #f5f7f6;
}
.planet-card .brand-logo {
  width: 156px;
  max-height: 104px;
}
.clara-card {
  background: #d8c5ee;
  color: #382d46;
}
.clara-card .brand-logo {
  width: 150px;
}
.google-card {
  background: #fff;
}
.google-card .brand-logo {
  width: 157px;
}
.experience-caption {
  padding: 18px 23px 22px;
  font-size: 0.8rem;
}
.experience-caption h3 {
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0;
  margin-bottom: 10px;
}
.experience-caption p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.72rem;
  opacity: 0.8;
}
.site-footer {
  isolation: isolate;
  padding-top: 105px;
  padding-bottom: 38px;
}
.footer-word {
  position: relative;
  z-index: 0;
  font-size: clamp(3.1rem, 6vw, 5rem);
  line-height: 0.84;
  margin-bottom: -0.11em;
  letter-spacing: -0.065em;
  font-weight: 700;
  color: var(--tint);
  user-select: none;
}
.footer-content {
  border-top: 1px solid var(--ink);
  padding-top: 18px;
  display: flex;
  align-items: start;
  gap: 24px;
  flex-wrap: wrap;
}
.footer-word + .footer-content {
  /* Keep the docked divider in front of the overlapping letterforms. */
  position: relative;
  z-index: 1;
}
.footer-person {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  font-size: 0.7rem;
  line-height: 1.45;
}
.footer-avatar {
  width: 38px;
  height: 38px;
  object-fit: cover;
  border-radius: 50%;
}
.footer-person span span {
  display: block;
  color: var(--muted);
}
.footer-person strong {
  font-size: 0.76rem;
}
.footer-content nav {
  display: flex;
  gap: 24px;
  margin-left: auto;
  font-size: 0.75rem;
}
.footer-content nav a {
  text-decoration: none;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.work-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 38px 22px;
}
.work-card {
  position: relative;
  text-decoration: none;
  min-width: 0;
  --card-tilt: -2deg;
}
.work-art {
  transition:
    transform 0.28s cubic-bezier(0.2, 0.7, 0.3, 1),
    box-shadow 0.28s;
  transform-origin: center;
  position: relative;
  aspect-ratio: 2/3;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--soft);
}
.work-art > img:first-child {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s;
}
.work-planet .work-art {
  background: #14252a;
}
.work-planet .work-art > img:first-child {
  opacity: 0.85;
  object-fit: cover;
}
.work-art .planet-card-logo {
  position: absolute;
  left: 50%;
  top: 8%;
  transform: translateX(-50%);
  width: 52%;
  filter: drop-shadow(0 2px 4px #0008);
}
.work-open {
  position: absolute;
  bottom: 15px;
  right: 15px;
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  background: var(--paper);
  color: #292a29;
  border-radius: 50%;
  box-shadow: 0 2px 5px #0001;
  opacity: 0;
  transition: opacity 0.2s;
}
.work-card:hover .work-open,
.work-card:focus-visible .work-open {
  opacity: 1;
}
.work-caption {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px 10px;
  padding-top: 14px;
}
.work-caption h2 {
  font-size: 1rem;
  letter-spacing: -0.015em;
  line-height: 1.4;
}
.work-caption > span {
  font-size: 0.7rem;
  color: var(--muted);
  align-self: center;
}
.work-caption p {
  grid-column: 1/-1;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.4;
}
.earlier-work {
  margin-top: 75px;
}
.archive-list {
  border-top: 1px solid var(--ink);
}
.earlier-work .section-heading {
  position: relative;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
}
.archive-filter {
  margin-left: auto;
  color: var(--muted);
}
.tag-chevron {
  width: 7px;
  height: 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.tag-picker-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-height: 44px;
  min-width: 106px;
  padding: 6px 10px;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: 0.8rem;
}
.tag-picker-toggle[aria-expanded="true"] .tag-chevron {
  transform: translateY(2px) rotate(225deg);
}
.tag-picker-toggle:hover {
  background: var(--soft);
}
.tag-picker {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 25;
  width: min(400px, 100%);
  max-height: min(560px, 70dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--rule) 15%, transparent);
  border-radius: 12px;
  background: var(--paper);
  box-shadow: 0 12px 35px #24221a1c;
}
.tag-picker.opens-above {
  top: auto;
  bottom: calc(100% + 10px);
}
.tag-picker-hint {
  margin: 0 0 14px;
  font-size: 0.78rem;
}
.tag-options,
.selected-tags,
.archive-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.tag-option,
.selected-tag {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 36px;
  padding: 5px 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: #fff;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.35;
}
.tag-option:hover,
.selected-tag:hover {
  border-color: color-mix(in srgb, var(--rule) 25%, transparent);
  color: var(--ink);
}
.tag-option[aria-pressed="true"],
.selected-tag {
  background: var(--soft);
  color: var(--ink);
}
.tag-symbol,
.selected-tag > span {
  font-size: 1rem;
  line-height: 1;
}
.tag-picker-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  font-size: 0.75rem;
}
.tag-clear {
  min-height: 36px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 0.75rem;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.selected-tags {
  justify-content: flex-end;
  margin: -7px 0 18px;
}
.archive-empty {
  padding: 36px 0;
  color: var(--muted);
  text-align: center;
}
.archive-empty p {
  margin-bottom: 5px;
}
.archive-filter[hidden],
.tag-picker[hidden],
.selected-tags[hidden],
.archive-empty[hidden],
.archive-row[hidden] {
  display: none;
}
.archive-row {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr) minmax(200px, 46%) 24px;
  gap: 15px;
  align-items: center;
  padding: 14px 5px;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  font-size: 0.94rem;
  transition: background 0.15s;
}
.archive-row:hover {
  background: var(--soft);
}
.archive-year {
  font-family: var(--serif);
  font-style: italic;
  color: var(--accent);
  font-size: 0.85rem;
}
.archive-tags {
  justify-content: flex-end;
}
.project-tag {
  padding: 3px 8px;
  border-radius: 4px;
  background: #fff;
  font-size: 0.68rem;
  line-height: 1.5;
  color: var(--muted);
  white-space: nowrap;
}
.archive-arrow {
  text-align: right;
}
/* A single on-demand image preview, shared by all project rows. */
.project-preview {
  position: fixed;
  z-index: 20;
  width: 320px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ink);
  border-radius: 12px;
  background: var(--paper);
  box-shadow:
    0 8px 20px #24221a14,
    0 20px 45px #24221a29;
  pointer-events: none;
  animation: project-preview-appear 160ms ease-out;
}
.project-preview img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: contain;
  background: var(--soft);
}
.project-preview figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-top: 1px solid var(--ink);
  font-size: 0.78rem;
  line-height: 1.35;
}
.project-preview-title {
  min-width: 0;
  font-weight: 600;
}
.project-preview-year {
  flex-shrink: 0;
  color: var(--muted);
  font-size: 0.7rem;
}
@keyframes project-preview-appear {
  from {
    opacity: 0;
    transform: translateY(5px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .project-preview {
    animation: none;
  }
}
.archive-end {
  margin-top: 30px;
}
.side-note {
  border-top: 1px solid var(--rule);
  margin-top: 70px;
  padding-top: 30px;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  font-size: 0.9rem;
}
.side-note p {
  color: var(--muted);
}
.about-intro {
  display: grid;
  grid-template-columns: 235px minmax(0, 1fr);
  gap: 70px;
  align-items: center;
  padding-block: 75px 70px;
}
.portrait {
  width: 235px;
  height: 235px;
  object-fit: cover;
  border-radius: 50%;
}
.about-intro h1 {
  font-size: clamp(2.5rem, 4.5vw, 3.65rem);
  margin-bottom: 20px;
}
.principles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px 65px;
  margin-bottom: 70px;
}
.principles h2 {
  font-size: 1.1rem;
  letter-spacing: -0.015em;
  margin-bottom: 12px;
  color: #65577c;
}
.principles p {
  font-size: 0.97rem;
  max-width: 470px;
}
.biography,
.cv,
.fame {
  padding-top: 26px;
  border-top: 1px solid var(--rule);
  margin-top: 65px;
}
.biography {
  border-top: 1px dashed color-mix(in srgb, var(--rule) 20%, transparent);
}
.cv,
.fame {
  border-top: 0;
}
.cv + .fame {
  margin-top: 32px;
  padding-top: 0;
}
.biography .section-heading h2,
.cv .section-heading h2,
.fame .section-heading h2 {
  display: block;
  font-size: 1rem;
  font-weight: 400;
}
.text-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}
.text-columns > p + p {
  margin-top: 0;
}
.text-columns p {
  font-size: 1rem;
  line-height: 1.75;
}
.biography .text-columns {
  gap: 48px;
}
.serif-note {
  font-family: var(--serif);
  font-style: italic;
  color: var(--accent);
}
.cv-row {
  background: #fff;
  border-bottom: 1px solid var(--rule);
}
.cv-row:first-of-type {
  border-top: 1px solid var(--rule);
}
.cv-row summary {
  display: grid;
  grid-template-columns: 105px 116px minmax(0, 1fr) 80px 20px;
  gap: 24px;
  align-items: center;
  cursor: pointer;
  list-style: none;
  min-height: 92px;
  padding: 18px 20px;
}
.cv-row summary::-webkit-details-marker {
  display: none;
}
.cv-row:not([open]) summary:hover {
  background: #faf9f7;
}
.cv-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}
.cv-company {
  min-width: 0;
  font-size: 0.92rem;
  font-weight: 650;
}
.cv-logo {
  width: 100px;
  height: 48px;
  object-fit: contain;
  object-position: left center;
}
.cv-role {
  font-size: 1rem;
  line-height: 1.4;
}
.cv-tag {
  justify-self: end;
  padding: 3px 9px;
  border-radius: 4px;
  background: #f5f4f2;
  font-size: 0.72rem;
  line-height: 1.5;
}
.cv-toggle {
  grid-column: 5;
  display: flex;
  color: #de7967;
}
.cv-row[open] .cv-toggle {
  transform: rotate(180deg);
}
.cv-detail {
  font-size: 0.9rem;
  max-width: 970px;
  padding: 0 32px 28px 289px;
}
.cv-detail p {
  margin-bottom: 12px;
}
.press-logos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 72px;
  gap: 28px 40px;
  align-items: center;
  margin: 28px 0 34px;
}
.press-logos img {
  width: min(100%, var(--logo-width));
  height: auto;
  justify-self: center;
}
.press-wired {
  --logo-width: 140px;
}
.press-fastcompany {
  --logo-width: 175px;
}
.press-wallstreetjournal {
  --logo-width: 210px;
}
.press-techcrunch {
  --logo-width: 96px;
}
.press-wallpaper {
  --logo-width: 150px;
}
.press-cnet {
  --logo-width: 56px;
}
.press-standard {
  --logo-width: 180px;
}
.press-orf {
  --logo-width: 94px;
}
.fame > p {
  font-size: 0.88rem;
  color: var(--muted);
}
.award-logos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 40px;
}
.award-logos figure {
  display: grid;
  justify-items: center;
  gap: 10px;
  text-align: center;
}
.award-logos img {
  width: min(100%, 240px);
  height: 64px;
  object-fit: contain;
}
.award-logos figcaption {
  padding: 0;
  font-size: 0.75rem;
  color: var(--muted);
}
.contact-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 65px;
}
.contact-grid h2 {
  font-size: 1rem;
  letter-spacing: 0;
  margin-bottom: 18px;
}
.contact-email {
  display: block;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  letter-spacing: -0.025em;
  margin-bottom: 16px;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.contact-email span {
  font-size: 0.8em;
  padding-left: 12px;
}
.phone-link {
  font-size: 1rem;
  text-decoration: none;
}
.contact-social {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  font-size: 0.85rem;
  margin-top: 23px;
}
.contact-note {
  padding-top: 35px;
  font-size: 1.05rem;
  max-width: 360px;
  color: var(--muted);
}
.city-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 70px;
  padding-top: 40px;
  border-top: 1px solid var(--rule);
}
.city {
  display: flex;
  align-items: center;
  gap: 25px;
  text-decoration: none;
  min-width: 0;
}
/* Original contact artwork, cropped with CSS so the map details stay unchanged.
   The 1168 × 452 image contains two 282 × 282 map circles. */
.city-map {
  display: block;
  flex-shrink: 0;
  width: 155px;
  height: 155px;
  border-radius: 50%;
  background-image: url("/assets/contact-map-design-a6209124.webp");
  background-repeat: no-repeat;
  background-size: 414.184397% 160.283688%;
  overflow: hidden;
}
.city-map.vienna {
  background-position: 3.047404% 22.941176%;
}
.city-map.linz {
  background-position: 69.751693% 76.470588%;
}
.city strong {
  display: block;
  font-size: 1.22rem;
  font-weight: 500;
}
.city small {
  display: block;
  font-size: 0.66rem;
  color: var(--muted);
  margin: 8px 0;
}
.city-link {
  font-size: 0.75rem;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.legal-copy {
  max-width: 745px;
  font-size: 0.98rem;
  line-height: 1.75;
}
.legal-copy h2 {
  font-size: 1.15rem;
  letter-spacing: -0.01em;
  margin-block: 32px 12px;
}
.legal-copy p + p {
  margin-top: 15px;
}
.legal-copy address {
  margin-bottom: 18px;
}
.legal-date {
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 40px !important;
}
.case-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 30px;
  padding-top: 35px;
  margin-bottom: 55px;
}
.case-heading > div {
  text-align: right;
}
.case-heading h1 {
  font-size: 1rem;
  letter-spacing: 0;
  font-weight: 600;
  margin-bottom: 6px;
}
.case-heading p {
  font-size: 0.75rem;
  color: var(--muted);
}
.back-link {
  font-size: 0.8rem;
  text-decoration: none;
  padding: 4px 0;
}
.case-description {
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  max-width: 740px;
  margin: 0 0 38px;
  line-height: 1.5;
  font-family: var(--serif);
}
.project-content {
  font-size: 1rem;
  line-height: 1.7;
}
.case-nav {
  padding-block: 24px;
}
.featured-case .case-heading {
  display: block;
  margin-bottom: 28px;
}
.featured-case .case-heading .back-link {
  display: block;
  width: max-content;
  margin-bottom: 28px;
}
.featured-case .case-heading > div {
  text-align: center;
}
.featured-case .case-heading h1 {
  font-size: clamp(1.7rem, 4vw, 2.6rem);
  letter-spacing: -0.035em;
}
.featured-case .case-heading p {
  max-width: none;
}
.featured-case .case-description {
  margin-inline: auto;
  text-align: center;
}
.project-content p {
  margin-bottom: 1.05em;
}
.project-content h2 {
  font-size: 1.6rem;
  margin-block: 15px 20px;
}
.project-content h3 {
  margin-block: 15px 15px;
  font-size: 1.15rem;
}
.legacy-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 25px 26px;
  margin-bottom: 30px;
  align-items: start;
}
.legacy-grid > h2 {
  grid-column: 1/-1;
}
.one,
.two,
.three,
.four,
.five,
.six,
.seven,
.eight,
.nine,
.ten,
.eleven,
.twelve,
.one-third,
.one-half,
.one-fourth,
.two-thirds {
  min-width: 0;
}
.twelve,
.eleven,
.ten {
  grid-column: span 12;
}
.nine {
  grid-column: span 9;
}
.eight,
.two-thirds {
  grid-column: span 8;
}
.seven {
  grid-column: span 7;
}
.six,
.one-half {
  grid-column: span 6;
}
.five {
  grid-column: span 5;
}
.four,
.one-third {
  grid-column: span 4;
}
.three,
.one-fourth {
  grid-column: span 3;
}
.two {
  grid-column: span 2;
}
.one {
  grid-column: span 1;
}
.project-content img {
  border-radius: 8px;
}
.project-content p > img {
  margin-block: 10px;
}
.project-content .caption {
  font-size: 0.82rem;
  line-height: 1.9;
  border-top: 1px solid var(--rule);
  padding-top: 22px;
  margin-top: 16px;
  color: var(--muted);
}
.project-content .sblcofo {
  font-size: 1.1rem;
}
.project-content .googlelogo {
  width: 240px;
  max-height: 110px;
  object-fit: contain;
  margin: 0 0 28px;
}
.project-content .claralogo {
  max-width: 240px;
  max-height: 150px;
  object-fit: contain;
  object-position: left;
  margin-bottom: 20px;
}
.project-content .ologo {
  max-width: 180px;
  margin: 0 auto 25px;
}
.project-content .flyinglogo {
  max-width: 220px;
  margin-bottom: 20px;
}
.project-content .phone3 {
  max-height: 480px;
  object-fit: contain;
}
.project-content .twelvsep {
  height: 1px;
  background: var(--rule);
  margin-block: 20px;
}
.project-content .flyingintro {
  padding-top: 10px;
}
.project-content .branded-intro {
  text-align: center;
}
.project-content .branded-intro > img {
  margin-inline: auto;
  object-position: center;
}
.featured-case .project-content .branded-intro > p {
  max-width: 56ch;
  margin-inline: auto;
}
.project-content .branded-intro .sblcofo {
  color: var(--muted);
}
.project-content .branded-intro .flyinglogo {
  width: clamp(128px, 14vw, 180px);
}
.project-content .half {
  font-size: 0.8rem;
  color: var(--muted);
}
.project-content .nodisplay,
.project-content .hidden {
  display: none;
}
.historical-note {
  font-size: 0.8rem;
  border-left: 2px solid var(--accent);
  padding-left: 15px;
  color: var(--muted);
  margin-bottom: 32px;
}
.work-photography {
  margin-top: 70px;
}
.work-photography .section-heading {
  margin-bottom: 12px;
}
.work-photography .photo-project {
  position: relative;
  border-radius: var(--radius);
  --card-tilt: -2deg;
}
.work-photography .photo-project:nth-child(even) {
  --card-tilt: 2deg;
}
.work-photography .photo-project img {
  transition:
    transform 0.28s cubic-bezier(0.2, 0.7, 0.3, 1),
    box-shadow 0.28s;
  transform-origin: center;
}
.photography-intro {
  max-width: 760px;
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 0.95rem;
}
.photo-projects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 42px 25px;
}
.photo-project {
  text-decoration: none;
}
.photo-project img {
  height: auto;
  border-radius: var(--radius);
  width: 100%;
  aspect-ratio: 400 / 231;
  object-fit: cover;
  object-position: center top;
}
.photo-project h2 {
  font-size: 1.08rem;
  margin-top: 15px;
}
.photo-project h2 span {
  float: right;
}
.photo-project p {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 7px;
}
.photographygallery {
  gap: 18px;
}
.photographygallery img {
  border-radius: 4px;
  width: 100%;
}
.zoom-image {
  cursor: pointer;
}
.project-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
  border-block: 1px solid var(--rule);
  padding-block: 25px;
  margin-block: 45px 60px;
}
.project-facts span {
  display: block;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 9px;
}
.project-facts strong {
  font-size: 0.84rem;
  font-weight: 500;
  display: block;
}
.case-section {
  margin-block: 65px;
}
.case-section > h2 {
  margin-bottom: 28px;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
}
.wide-figure {
  margin-block: 40px;
}
.wide-figure img {
  width: 100%;
  border-radius: 12px;
}
.figure-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 38px;
}
.figure-grid img {
  width: 100%;
  border-radius: 10px;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.credits {
  border-top: 1px solid var(--rule);
  padding-top: 20px;
  margin-top: 40px;
}
.source-note {
  margin-top: 22px;
}
.case-links {
  display: flex;
  gap: 30px;
  font-size: 0.87rem;
}
.next-project {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  width: fit-content;
  max-width: 100%;
  gap: 8px;
  padding: 6px 0;
  margin: 36px 0 0 auto;
  min-height: 44px;
  text-decoration: none;
}
.next-project > span:first-child {
  font-size: 0.78rem;
  color: var(--muted);
}
.next-project > span:first-child:after {
  content: " ·";
}
.next-project strong {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0;
}
.next-project > span:last-child {
  font-size: 1rem;
}
.theme-planet {
  color-scheme: dark;
  --paper: #101b23;
  --ink: #f0f5f4;
  --muted: #a9bdc3;
  --rule: var(--ink);
  --soft: #192a34;
  --accent: #74cfce;
  --tint: #365b64;
}
.theme-planet .wordmark img {
  filter: brightness(0) invert(1);
}
.theme-planet ::selection {
  background: #49666c;
  color: white;
}
.theme-planet .case-heading {
  margin-bottom: 35px;
}
.planet-intro {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 45px;
  align-items: center;
}
.case-brand {
  width: 142px;
  height: 72px;
  object-fit: contain;
  object-position: left;
  margin-bottom: 25px;
}
.planet-intro > div,
.blindmaps-intro > div {
  text-align: center;
  max-width: 38rem;
  margin-inline: auto;
}
.planet-intro .case-brand {
  margin-inline: auto;
  object-position: center;
}
.planet-intro h2,
.blindmaps-intro h2 {
  font-size: clamp(2.3rem, 4.8vw, 3.8rem);
  line-height: 1.1;
  font-weight: 450;
  margin-bottom: 24px;
}
.planet-intro .lead {
  font-size: 1.1rem;
}
.planet-globe {
  border-radius: 50%;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.planet-intro figcaption {
  text-align: center;
  font-size: 0.68rem;
  margin-top: 20px;
}
.planet-landscape {
  background: #080e12;
  border-radius: 15px;
  padding: 25px 25px 18px;
}
.planet-landscape img {
  border-radius: 0;
}
.theme-planet a {
  text-decoration-color: #59848c;
}
.theme-blindmaps {
  --paper: #f0f4f2;
  --soft: #e2ece7;
  --accent: #336758;
  --tint: #b6d4c4;
}
.blindmaps-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px;
  align-items: center;
}
.blindmaps-intro figure {
  background: #fff;
  border-radius: 18px;
  padding: 20px;
}
.blindmaps-intro .lead {
  font-size: 1.05rem;
}
.feature-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 27px;
}
.feature-list > div {
  padding-top: 20px;
  border-top: 1px solid var(--rule);
}
.feature-list span {
  font-size: 0.75rem;
  color: var(--accent);
  font-family: var(--serif);
  font-style: italic;
}
.feature-list h3 {
  margin-block: 18px 12px;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}
.feature-list p {
  font-size: 0.9rem;
}
.process-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
  margin-top: 32px;
}
.process-gallery img {
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 8px;
}
.process-gallery img:last-child {
  grid-column: span 3;
  aspect-ratio: 2.5;
  object-position: 50% 35%;
}
.theme-clara {
  --paper: #f6f1f9;
  --soft: #eae0f1;
  --tint: #d4bedf;
  --accent: #7b588f;
}
.theme-orbitalism {
  --paper: #f2f3e9;
  --soft: #e4e8d4;
  --tint: #ced8a3;
  --accent: #5e703a;
}
.theme-flying {
  --paper: #eef4f6;
  --soft: #dfe9ed;
  --tint: #bed4df;
  --accent: #4e7486;
}
.theme-kiez {
  --paper: #f6f4eb;
  --tint: #d9d6ad;
  --accent: #756831;
}
.theme-bikeborg {
  --tint: #d7d2a1;
  --accent: #756a25;
}
.theme-signals {
  --tint: #c9dce3;
  --accent: #576f7c;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--ink);
  border-radius: 6px;
  background: var(--ink);
  color: var(--paper);
  text-decoration: none;
  font-size: 0.86rem;
}
.button:hover {
  opacity: 0.85;
}
.video {
  position: relative;
  background: var(--soft);
  border: 1px solid var(--rule);
  border-radius: 12px;
  overflow: hidden;
  min-width: 0;
  margin-block: 20px;
}
.video iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border: 0;
}
.image-dialog {
  position: fixed;
  inset: 0;
  padding: 45px 20px 20px;
  width: min(95vw, 1500px);
  max-width: 95vw;
  max-height: 96vh;
  border: 0;
  border-radius: 10px;
  background: #171a1b;
  color: #fff;
  overflow: auto;
}
.image-dialog::backdrop {
  background: #07090beb;
}
.image-dialog > img {
  max-height: 75vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  margin: auto;
}
.dialog-close {
  position: absolute;
  right: 8px;
  top: 4px;
  background: transparent;
  color: white;
  border: 0;
  font-size: 2rem;
  line-height: 1;
  width: 44px;
  height: 44px;
}
.dialog-caption {
  font-size: 0.85rem;
  text-align: center;
  margin-top: 13px;
}
.dialog-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 12px;
  font-size: 0.8rem;
}
.dialog-actions button {
  min-width: 44px;
  min-height: 44px;
  background: transparent;
  color: #fff;
  border: 1px solid #7b8285;
  border-radius: 4px;
}
.external-media {
  font-size: 0.85rem;
  padding: 18px;
  border: 1px solid var(--rule);
  border-radius: 8px;
}
@media (min-width: 1600px) {
  :root {
    --content: 1280px;
  }
  body {
    font-size: 18px;
  }
  .home-intro {
    padding-top: 85px;
  }
  .home-intro h1 {
    font-size: 5.7rem;
  }
  .experience-card {
    min-height: 295px;
  }
  .site-header {
    padding-top: 40px;
  }
  .work-grid {
    gap: 45px 28px;
  }
  .brand-stage {
    padding: 35px;
  }
  .experience-caption {
    padding: 20px 28px 26px;
  }
  .site-footer {
    padding-top: 125px;
  }
}
@media (max-width: 1000px) {
  .site-header {
    gap: 25px;
  }
  .site-header nav {
    margin-left: auto;
  }
  .site-header nav a {
    padding-inline: 25px;
  }
  .cv-row summary {
    grid-template-columns: 90px 100px minmax(0, 1fr) 72px 18px;
    gap: 18px;
    padding-inline: 18px;
  }
  .cv-detail {
    padding-left: 244px;
  }
  .about-intro {
    gap: 40px;
    grid-template-columns: 190px 1fr;
  }
  .portrait {
    width: 190px;
    height: 190px;
  }
  .contact-grid {
    gap: 35px;
  }
  .city-pair {
    gap: 22px;
  }
  .city {
    gap: 18px;
  }
  .city-map {
    width: 125px;
    height: 125px;
  }
  .project-facts {
    gap: 15px;
  }
  .work-caption {
    grid-template-columns: 1fr;
  }
  .work-caption p {
    grid-column: auto;
  }
  .work-caption > span {
    grid-row: 3;
  }
  .planet-intro,
  .blindmaps-intro {
    gap: 30px;
  }
  .legacy-grid {
    gap: 22px;
  }
}
@media (max-width: 700px) {
  body {
    font-size: 16px;
  }
  .site-header {
    padding-block: 23px 19px;
    gap: 17px;
  }
  .wordmark {
    flex-basis: 112px;
  }
  .wordmark img {
    width: 112px;
    height: 33px;
  }
  .site-header nav a {
    padding: 15px 17px;
    font-size: 0.9rem;
  }
  .home-intro {
    padding-block: 47px 36px;
  }
  .hello {
    font-size: 0.92rem;
    max-width: 350px;
  }
  .home-intro h1 {
    font-size: 3.6rem;
    margin-bottom: 24px;
  }
  .intro-copy {
    font-size: 1.03rem;
  }
  .experience-grid {
    gap: 12px;
  }
  .experience-card {
    min-height: 220px;
  }
  .brand-stage {
    padding: 20px 20px 12px;
  }
  .brand-logo {
    max-width: 120px;
  }
  .experience-caption {
    padding: 15px;
  }
  .experience-caption h3 {
    font-size: 0.78rem;
    line-height: 1.35;
  }
  .experience-caption p {
    display: block;
    font-size: 0.66rem;
  }
  .experience-caption p span {
    display: block;
    margin-top: 5px;
  }
  .section-heading {
    margin-bottom: 18px;
  }
  .work-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 15px;
  }
  .page-intro {
    padding-block: 45px 38px;
  }
  .page-intro h1 {
    margin-bottom: 17px;
  }
  .desktop-break {
    display: none;
  }
  .about-intro {
    grid-template-columns: 145px 1fr;
    gap: 25px;
    padding-block: 50px;
  }
  .portrait {
    width: 145px;
    height: 145px;
  }
  .about-intro h1 {
    font-size: 2.25rem;
  }
  .about-intro .lead {
    font-size: 1rem;
  }
  .about-intro .eyebrow {
    font-size: 0.65rem;
    margin-bottom: 10px;
  }
  .principles {
    gap: 28px;
    margin-bottom: 45px;
  }
  .principles p {
    font-size: 0.92rem;
  }
  .text-columns {
    gap: 28px;
  }
  .biography .text-columns {
    gap: 25px;
  }
  .section-index {
    display: none;
  }
  .cv-row summary {
    grid-template-columns: 90px minmax(0, 1fr) 20px;
    gap: 10px 18px;
  }
  .cv-company {
    grid-column: 2;
    grid-row: 1;
  }
  .cv-role {
    grid-column: 2;
    grid-row: 2;
    font-size: 0.94rem;
  }
  .cv-tag {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    align-self: start;
  }
  .cv-toggle {
    grid-column: 3;
    grid-row: 1/3;
  }
  .cv-date {
    grid-column: 1;
    grid-row: 1;
  }
  .cv-detail {
    padding: 0 18px 24px;
  }
  .press-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 64px;
    gap: 24px;
  }
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .contact-note {
    padding-top: 0;
    max-width: 500px;
  }
  .city-pair {
    margin-top: 45px;
  }
  .city {
    flex-direction: column;
    align-items: flex-start;
  }
  .city-map {
    width: 150px;
    height: 150px;
  }
  .archive-row {
    grid-template-columns: 95px minmax(0, 1fr) 24px;
    gap: 12px;
    font-size: 0.87rem;
  }
  .archive-tags {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }
  .archive-arrow {
    grid-column: 3;
    grid-row: 1;
  }
  .tag-option,
  .selected-tag,
  .tag-clear {
    min-height: 44px;
  }
  .archive-year {
    font-size: 0.75rem;
  }
  .side-note {
    display: block;
    font-size: 0.85rem;
    margin-top: 45px;
  }
  .side-note a {
    display: inline-block;
    margin-top: 12px;
  }
  .footer-content {
    gap: 18px;
  }
  .footer-content nav {
    gap: 18px;
  }
  .site-footer {
    padding-top: 75px;
    padding-bottom: 25px;
  }
  .case-heading {
    padding-top: 25px;
    margin-bottom: 35px;
  }
  .case-heading p {
    font-size: 0.67rem;
    max-width: 200px;
  }
  .case-heading h1 {
    font-size: 0.93rem;
  }
  .project-facts {
    grid-template-columns: 1fr 1fr;
    margin-block: 35px 45px;
    gap: 25px;
  }
  .case-section {
    margin-block: 45px;
  }
  .case-section > h2 {
    margin-bottom: 23px;
  }
  .planet-intro {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .planet-intro h2,
  .blindmaps-intro h2 {
    font-size: 2.3rem;
  }
  .planet-intro .lead,
  .blindmaps-intro .lead {
    font-size: 1rem;
  }
  .case-brand {
    width: 110px;
    margin-bottom: 20px;
  }
  .blindmaps-intro {
    grid-template-columns: 1fr;
  }
  .blindmaps-intro figure {
    padding: 10px 20px;
  }
  .blindmaps-intro img {
    max-height: 330px;
    width: 100%;
    object-fit: contain;
  }
  .feature-list {
    gap: 18px;
  }
  .process-gallery {
    grid-template-columns: 1fr 1fr;
  }
  .process-gallery img:last-child {
    grid-column: span 2;
  }
  .next-project {
    margin-top: 28px;
  }
  .photo-projects {
    gap: 30px 20px;
  }
  .work-photography {
    margin-top: 45px;
  }
  .legacy-grid > .three,
  .legacy-grid > .four {
    grid-column: span 6;
  }
  .legacy-grid .five,
  .legacy-grid .seven,
  .legacy-grid .eight,
  .legacy-grid .nine {
    grid-column: span 12;
  }
}
@media (max-width: 480px) {
  .wrap {
    width: calc(100% - 36px);
  }
  .site-header {
    gap: 10px;
    flex-wrap: wrap;
    padding-bottom: 15px;
  }
  .wordmark {
    flex-basis: 104px;
  }
  .wordmark img {
    width: 104px;
    height: 32px;
  }
  .site-header nav a {
    padding: 15px 12px;
    font-size: 0.82rem;
  }
  .home-intro h1 {
    font-size: clamp(2.8rem, 11.4vw, 3.4rem);
  }
  .hello {
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 22px;
  }
  .experience-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .experience-card {
    display: grid;
    grid-template-columns: 40% minmax(0, 1fr);
    min-height: 154px;
  }
  .brand-stage {
    padding: 24px 18px;
  }
  .brand-logo {
    max-width: 100%;
    max-height: 78px;
  }
  .experience-caption {
    align-self: center;
    padding: 28px 16px 22px 4px;
  }
  .experience-caption h3 {
    font-size: 0.9rem;
    line-height: 1.4;
  }
  .experience-caption p {
    font-size: 0.73rem;
  }
  .experience-caption p span {
    margin-top: 7px;
  }
  .section-heading h2 {
    font-size: 0.77rem;
  }
  .section-heading a {
    font-size: 0.72rem;
  }
  .work-grid {
    gap: 26px 13px;
  }
  .work-art {
    border-radius: 10px;
  }
  .work-caption {
    gap: 4px;
  }
  .work-caption h2 {
    font-size: 0.91rem;
  }
  .work-caption p {
    font-size: 0.72rem;
    line-height: 1.5;
  }
  .work-caption > span {
    font-size: 0.67rem;
  }
  .work-open {
    display: none;
  }
  .eyebrow {
    font-size: 0.64rem;
  }
  .page-intro h1 {
    font-size: 2.75rem;
  }
  .lead {
    font-size: 1rem;
  }
  .about-intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    padding-block: 43px;
  }
  .portrait {
    width: 140px;
    height: 140px;
  }
  .about-intro h1 {
    font-size: 2.75rem;
  }
  .principles {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .principles h2 {
    font-size: 1.06rem;
    margin-bottom: 9px;
  }
  .text-columns {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .text-columns p {
    font-size: 0.98rem;
  }
  .biography,
  .cv,
  .fame {
    margin-top: 45px;
  }
  .cv-row summary {
    grid-template-columns: 76px minmax(0, 1fr) 18px;
    gap: 10px 12px;
    padding: 16px 12px;
  }
  .cv-date {
    font-size: 0.74rem;
  }
  .cv-company {
    font-size: 0.87rem;
  }
  .cv-role {
    font-size: 0.88rem;
  }
  .cv-logo {
    width: 92px;
    height: 42px;
  }
  .cv-detail {
    padding-inline: 12px;
    font-size: 0.95rem;
  }
  .press-logos {
    gap: 18px 24px;
  }
  .press-logos img {
    width: min(100%, calc(var(--logo-width) * 0.85));
  }
  .award-logos {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .award-logos img {
    width: min(100%, 220px);
    height: 56px;
  }
  .award-logos figcaption {
    font-size: 0.7rem;
  }
  .city-pair {
    gap: 25px;
  }
  .city-map {
    width: 120px;
    height: 120px;
  }
  .city strong {
    font-size: 1.1rem;
  }
  .city small {
    font-size: 0.6rem;
  }
  .city-link {
    font-size: 0.68rem;
  }
  .contact-email {
    font-size: 1.3rem;
  }
  .archive-row {
    grid-template-columns: 76px minmax(0, 1fr) 18px;
    font-size: 0.82rem;
    gap: 9px;
  }
  .archive-year {
    font-size: 0.68rem;
  }
  .footer-content nav {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
    gap: 27px;
  }
  .footer-content {
    gap: 9px;
  }
  .footer-word {
    font-size: 3.5rem;
  }
  .case-heading {
    gap: 18px;
  }
  .case-heading p {
    max-width: 170px;
    font-size: 0.65rem;
  }
  .case-description {
    font-size: 1.25rem;
  }
  .planet-intro {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .planet-intro h2,
  .blindmaps-intro h2 {
    font-size: 2.65rem;
  }
  .planet-intro figure {
    width: 90%;
    margin: auto;
  }
  .case-brand {
    width: 125px;
  }
  .project-facts strong {
    font-size: 0.77rem;
  }
  .project-facts span {
    font-size: 0.61rem;
  }
  .case-section > h2 {
    font-size: 1.9rem;
  }
  .figure-grid {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-top: 25px;
  }
  .feature-list {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .feature-list h3 {
    margin-top: 8px;
  }
  .feature-list p {
    font-size: 0.93rem;
  }
  .process-gallery {
    gap: 10px;
  }
  .planet-landscape {
    padding: 15px 12px;
  }
  .case-links {
    flex-direction: column;
    gap: 16px;
  }
  .legacy-grid {
    gap: 16px;
  }
  .legacy-grid > .six,
  .legacy-grid > .five,
  .legacy-grid > .seven,
  .legacy-grid > .eight,
  .legacy-grid > .nine {
    grid-column: span 12;
  }
  .legacy-grid > .three {
    grid-column: span 6;
  }
  .legacy-grid .caption {
    font-size: 0.77rem;
  }
  .legacy-grid .googlelogo {
    width: 180px;
  }
  .project-content {
    font-size: 0.97rem;
  }
  .project-content h2 {
    font-size: 1.5rem;
  }
  .photo-projects {
    grid-template-columns: 1fr;
  }
  .work-photography .photo-project:nth-child(n) {
    --card-tilt: 0deg;
  }
  .photographygallery > .six {
    grid-column: span 12;
  }
  .legal-copy {
    font-size: 0.94rem;
  }
  .legal-copy h2 {
    font-size: 1.1rem;
  }
  .image-dialog {
    padding-inline: 10px;
  }
  .image-dialog > img {
    max-height: 70vh;
  }
}
@media (max-width: 350px) {
  .wrap {
    width: calc(100% - 30px);
  }
  .site-header {
    gap: 7px;
  }
  .wordmark {
    flex-basis: 90px;
  }
  .wordmark img {
    width: 90px;
  }
  .site-header nav a {
    padding-inline: 10px;
    font-size: 0.77rem;
  }
  .city-map {
    width: 108px;
    height: 108px;
  }
  .work-caption h2 {
    font-size: 0.84rem;
  }
  .home-intro h1 {
    font-size: 2.75rem;
  }
  .contact-email {
    font-size: 1.13rem;
  }
  .contact-email span {
    padding-left: 3px;
  }
  .experience-card {
    grid-template-columns: 39% 1fr;
  }
  .experience-caption h3 {
    font-size: 0.83rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
}
@media (forced-colors: active) {
  .footer-word {
    color: CanvasText;
  }
  .experience-card,
  .work-art {
    border: 1px solid CanvasText;
  }
  .wordmark img {
    filter: none;
  }
}
@media print {
  .site-header nav,
  .next-project,
  .footer-word,
  .video,
  .image-dialog {
    display: none;
  }
  .wrap {
    width: 100%;
  }
  body {
    background: white;
    color: black;
    font-size: 11pt;
  }
  .site-footer {
    padding-top: 25px;
  }
  .case-section,
  .legacy-grid > div,
  figure {
    break-inside: avoid;
  }
  a {
    color: inherit;
  }
  .theme-planet .wordmark img {
    filter: none;
  }
}

/* Preserve the original dark project pages. */
.theme-bikeborg,
.theme-signals,
.theme-kiez {
  color-scheme: dark;
  --paper: #151515;
  --ink: #f1f1ec;
  --muted: #b5b6af;
  --rule: var(--ink);
  --soft: #23251f;
  --accent: #c7ce94;
  --tint: #525843;
}
.theme-kiez {
  --paper: #101211;
  --soft: #202621;
  --rule: var(--ink);
  --accent: #b6d3b4;
  --tint: #3b5342;
}
.theme-signals {
  --accent: #a6ccd9;
  --tint: #3a5058;
}
:is(.theme-bikeborg, .theme-kiez, .theme-signals) .wordmark img {
  filter: brightness(0) invert(1);
}
:is(.theme-bikeborg, .theme-kiez, .theme-signals) :focus-visible {
  outline-color: #c5b0e3;
}
.video {
  background: #080a0b;
  border-color: var(--rule);
}
.video-caption {
  margin: 0 !important;
  padding: 10px 16px !important;
  text-align: right;
  font-size: 0.72rem !important;
  background: var(--paper);
  color: var(--muted);
}
@media print {
  .theme-bikeborg,
  .theme-signals,
  .theme-kiez {
    --paper: white;
    --ink: black;
    --muted: #444;
  }
  .wordmark img {
    filter: none !important;
  }
}

.page-about {
  --tint: #e2b7ae;
}
.page-work {
  --tint: #c8cddf;
}
.page-contact {
  --tint: #cfc0df;
}

.case-main + .site-footer {
  padding-top: 44px;
}

.motion-study {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  background: #151515;
}

/* Side-by-side introduction when both columns have a comfortable measure. */
@media (min-width: 900px) {
  .home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: clamp(40px, 5vw, 76px);
    align-items: center;
  }
  .home-intro .hello {
    margin-bottom: 34px;
  }
  .home-hero h1 {
    font-size: clamp(3.2rem, 5.15vw, 4.25rem);
    margin-bottom: 0;
    line-height: 1.08;
  }
  .home-hero .intro-copy {
    font-size: 1.03rem;
    line-height: 1.75;
    max-width: 490px;
  }
  .home-hero .intro-copy p + p {
    margin-top: 1em;
  }
  .home-intro {
    padding-bottom: 65px;
  }
}
@media (min-width: 1600px) {
  .home-hero h1 {
    font-size: 4.85rem;
  }
  .home-hero .intro-copy {
    font-size: 1.08rem;
  }
  .home-intro .hello {
    margin-bottom: 40px;
  }
}

/* A warm slab serif brings back the original Adelle heading character. */
.project-content h2,
.project-content h3 {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -0.025em;
}
.planet-intro h2,
.blindmaps-intro h2 {
  font-family: var(--sans);
  font-weight: 500;
}
.project-content {
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
  line-height: 1.75;
}
.project-content p:not(.video-caption) {
  max-width: 80ch;
}
.home-intro h1 {
  letter-spacing: -0.045em;
  font-weight: 550;
}
.home-intro h1 em {
  letter-spacing: -0.055em;
}

/* A small, still portrait introduces the greeting; the wave is interaction-only. */
.hello {
  display: flex;
  align-items: center;
  gap: 13px;
}
.hello > p {
  min-width: 0;
}
.hello-portrait {
  position: relative;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 3px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  isolation: isolate;
}
.portrait-frame {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}
.portrait-circle {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--paper);
  transition:
    transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.3s;
}
.hello-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.portrait-wave {
  position: absolute;
  right: -12px;
  bottom: -3px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--paper);
  font: 17px/1 var(--sans);
  opacity: 0;
  transform: scale(0.7) rotate(-15deg);
  transform-origin: 70% 80%;
  transition:
    opacity 0.18s,
    transform 0.25s;
  pointer-events: none;
}
.hello-portrait:is(:focus-visible, .is-waving) .portrait-circle {
  transform: scale(1.2) rotate(-4deg);
  box-shadow:
    0 0 0 3px var(--paper),
    0 7px 20px #292a2924;
}
.hello-portrait:is(:focus-visible, .is-waving) .portrait-wave {
  opacity: 1;
  transform: scale(1);
  animation: portrait-wave 0.9s ease-in-out 2;
}
@media (hover: hover) and (pointer: fine) {
  .hello-portrait:hover .portrait-circle {
    transform: scale(1.2) rotate(-4deg);
    box-shadow:
      0 0 0 3px var(--paper),
      0 7px 20px #292a2924;
  }
  .hello-portrait:hover .portrait-wave {
    opacity: 1;
    transform: scale(1);
    animation: portrait-wave 0.9s ease-in-out 2;
  }
}
@keyframes portrait-wave {
  0%,
  100% {
    transform: rotate(0);
  }
  20%,
  60% {
    transform: rotate(20deg);
  }
  40%,
  80% {
    transform: rotate(-15deg);
  }
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 480px) {
  .hello {
    gap: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .portrait-circle,
  .portrait-wave {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
@media print {
  .hello-portrait {
    display: none;
  }
}

/* Two compact contact rows: introduction/details, then place/cities. */
.contact-intro {
  align-items: center;
  padding-block: 70px 48px;
}
.contact-intro .page-intro {
  padding: 0;
}
.contact-intro h1 {
  margin-bottom: 0;
}
.contact-details {
  padding-top: 28px;
  min-width: 0;
}
.contact-places {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 48px;
  align-items: center;
  border-top: 1px dashed color-mix(in srgb, var(--rule) 20%, transparent);
  padding-top: 32px;
}
.contact-places .contact-note {
  padding-top: 0;
  font-size: 0.95rem;
  line-height: 1.75;
  max-width: 310px;
}
.contact-places .contact-note p + p {
  margin-top: 0.7em;
}
.contact-places .city-pair {
  margin: 0;
  padding: 0;
  border: 0;
  gap: 28px;
}
.contact-places .city {
  gap: 18px;
}
.contact-places .city-map {
  width: 112px;
  height: 112px;
}
.page-contact .site-footer {
  padding-top: 64px;
}
@media (min-width: 701px) and (max-width: 1000px) {
  .contact-places {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr);
    gap: 28px;
  }
  .contact-places .city-pair {
    gap: 20px;
  }
  .contact-places .city {
    gap: 12px;
  }
  .contact-places .city-map {
    width: 90px;
    height: 90px;
  }
  .contact-places .city strong {
    font-size: 1.1rem;
  }
  .contact-places .city small {
    font-size: 0.6rem;
  }
}
@media (max-width: 700px) {
  .contact-intro {
    padding-block: 45px 32px;
    gap: 28px;
  }
  .contact-details {
    padding-top: 0;
  }
  .contact-places {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 25px;
  }
  .contact-places .contact-note {
    max-width: 480px;
  }
  .page-contact .site-footer {
    padding-top: 48px;
  }
}
@media (max-width: 480px) {
  .contact-places .city-pair {
    gap: 20px;
  }
  .contact-places .city-map {
    width: 100px;
    height: 100px;
  }
}

/* Quiet, consistent feedback for text links, including underlines on child spans. */
a:focus-visible {
  text-decoration-line: none;
}
.text-link:focus-visible {
  border-bottom-color: transparent;
}
.city:focus-visible .city-link {
  text-decoration-line: none;
}
@media (hover: hover) {
  a:hover {
    text-decoration-line: none;
  }
  .text-link:hover {
    border-bottom-color: transparent;
  }
  .city:hover .city-link {
    text-decoration-line: none;
  }
}

.contact-details {
  padding-top: 0;
}
.contact-details h2 {
  margin-bottom: 8px;
  line-height: 1.5;
}
.contact-details .contact-email {
  font-size: 1rem;
  letter-spacing: 0;
  line-height: 1.5;
  margin-bottom: 4px;
}
.contact-details .contact-email span {
  font-size: 1em;
  padding-left: 6px;
}
.contact-details .phone-link {
  line-height: 1.5;
}
.contact-details .contact-social {
  margin-top: 10px;
  gap: 8px 20px;
  font-size: 0.9rem;
  line-height: 1.5;
}

.page-work .work-grid {
  padding-top: 48px;
}
@media (max-width: 700px) {
  .page-work .work-grid {
    padding-top: 30px;
  }
}

/* The original Neukölln street scene, compressed and darkened for readable copy. */
.theme-kiez {
  --paper: #080a09;
  --muted: #dfddd5;
  --rule: var(--ink);
  --accent: #e7de17;
  background-color: var(--paper);
  background-image:
    linear-gradient(90deg, #000b, #0009 55%, #000a),
    url("/assets/kiezexplorer-bg-b68fbcf7-1332.webp");
  background-position: center top;
  background-repeat: no-repeat;
  background-size:
    100% 1350px,
    clamp(1100px, 100vw, 1800px) auto;
}
.theme-kiez .case-heading h1 {
  color: var(--accent);
}
.theme-kiez .case-description,
.theme-kiez .project-content {
  text-shadow: 0 1px 3px #0008;
}
@media (max-width: 700px) {
  .theme-kiez {
    background-image:
      linear-gradient(90deg, #000b, #000a),
      url("/assets/kiezexplorer-bg-b68fbcf7-960.webp");
    background-position:
      center top,
      60% top;
  }
}
.theme-kiez #screenshot_slideshow {
  justify-self: center;
  width: min(100%, 320px);
}
.theme-kiez .kiez-phone {
  width: 100%;
  border-radius: 0;
}
.kiez-screens {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}
.kiez-screens a {
  display: block;
  min-height: 44px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  overflow: hidden;
}
.kiez-screens a:hover {
  border-color: var(--accent);
}
.kiez-screens img {
  width: 100%;
  border-radius: 0;
}

.page-home .site-footer {
  padding-top: 64px;
}
@media (max-width: 700px) {
  .page-home .site-footer {
    padding-top: 48px;
  }
}

/* Bring back the original two-row mobile masthead. */
@media (max-width: 549px) {
  .site-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 24px 0 0;
  }
  .wordmark {
    flex-basis: auto;
    align-self: center;
    margin-bottom: 18px;
  }
  .wordmark img {
    width: 150px;
    height: 44px;
  }
  .site-header nav {
    width: 100%;
    margin: 0;
    padding-block: 12px;
    justify-content: center;
    border-top: 1px solid var(--ink);
  }
  .site-header nav a {
    flex: 1;
    text-align: center;
    font-size: 1rem;
    line-height: 1.25;
    padding: 12px 8px;
  }
  .site-header nav a:first-child {
    border-left: 0;
  }
  .site-header nav a:last-child {
    border-right: 0;
  }
  .footer-content {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-top: 0;
  }
  .footer-person {
    flex-direction: column;
    align-self: center;
    gap: 10px;
    margin-block: 24px;
    text-align: center;
  }
  .footer-content nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    margin: 0;
    padding-block: 10px;
    gap: 0;
    border-top: 1px solid var(--ink);
  }
  .footer-content nav a {
    justify-content: center;
  }
}

/* Lift the project artwork on deliberate interaction; captions stay easy to read. */
.experience-card:nth-child(3n + 2) {
  --card-tilt: 0deg;
}
.experience-card:nth-child(3n) {
  --card-tilt: 2deg;
}
/* Match the tilt to the artwork's column in each responsive layout. */
@media (min-width: 701px) {
  .work-card:nth-child(3n + 2) {
    --card-tilt: 0deg;
  }
  .work-card:nth-child(3n) {
    --card-tilt: 2deg;
  }
}
@media (max-width: 700px) {
  .work-card:nth-child(even) {
    --card-tilt: 2deg;
  }
}
@media (hover: hover) and (pointer: fine) {
  .experience-card:hover {
    z-index: 1;
    transform: translateY(-9px) rotate(var(--card-tilt));
    box-shadow:
      0 8px 16px #24221a14,
      0 24px 38px #24221a29;
  }
  .work-card:hover,
  .work-photography .photo-project:hover {
    z-index: 1;
  }
  .work-card:hover .work-art,
  .work-photography .photo-project:hover img {
    transform: translateY(-9px) rotate(var(--card-tilt));
    box-shadow:
      0 8px 16px #24221a14,
      0 24px 38px #24221a29;
  }
}
.experience-card:focus-visible {
  z-index: 1;
  transform: translateY(-9px) rotate(var(--card-tilt));
  box-shadow:
    0 8px 16px #24221a14,
    0 24px 38px #24221a29;
}
.work-photography .photo-project:focus-visible {
  z-index: 1;
}
.work-card:focus-visible .work-art,
.work-photography .photo-project:focus-visible img {
  transform: translateY(-9px) rotate(var(--card-tilt));
  box-shadow:
    0 8px 16px #24221a14,
    0 24px 38px #24221a29;
}
@media (prefers-reduced-motion: reduce) {
  .experience-card:hover,
  .experience-card:focus-visible,
  .work-card:hover .work-art,
  .work-card:focus-visible .work-art,
  .work-photography .photo-project:hover img,
  .work-photography .photo-project:focus-visible img {
    transform: none;
  }
}
/* Place names and street addresses from the contact design. */
.city-details {
  min-width: 0;
}
.city-place {
  display: block;
  font-size: 0.8rem;
  line-height: 1.4;
}
.city small {
  font-size: 0.72rem;
  line-height: 1.5;
}

/* App information uses the KiezExplorer palette on a quiet reading surface. */
body:is(.page-kiezexplorer-support, .page-kiezexplorer-privacy) {
  background-image: none;
}
.app-page-nav,
.kiez-app-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 24px;
  font-size: 0.85rem;
}
.app-page-nav {
  padding-top: 24px;
}
.app-page-nav a,
.app-language-nav a,
.kiez-app-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.app-info .page-intro {
  max-width: 800px;
  padding-top: 40px;
}
.app-info .page-intro h1 {
  color: var(--accent);
}
.app-language-nav {
  display: flex;
  gap: 28px;
  margin-top: 24px;
}
.app-info-copy {
  max-width: 745px;
  overflow-wrap: break-word;
}
.app-language-section h2 {
  font-family: var(--serif);
  font-size: 1.6rem;
  margin-bottom: 10px;
}
.app-language-section h3 {
  font-size: 1.1rem;
  margin: 30px 0 10px;
}
.app-language-section p + p {
  margin-top: 16px;
}
.app-language-section address {
  font-style: normal;
  margin-bottom: 12px;
}
.app-language-section + .app-language-section {
  margin-top: 52px;
  padding-top: 36px;
  border-top: 1px dashed color-mix(in srgb, var(--rule) 20%, transparent);
}
.app-policy-date,
.app-release-status {
  color: var(--muted);
  font-size: 0.85rem;
  margin-bottom: 20px;
}
.app-related {
  margin-top: 28px !important;
}
.app-page-nav-bottom {
  margin-top: 44px;
  border-top: 1px dashed color-mix(in srgb, var(--rule) 20%, transparent);
}
.kiez-app-update {
  max-width: 800px;
  padding: clamp(20px, 4vw, 36px);
  margin: 0 0 40px;
  background: #101211ed;
  border: 1px solid color-mix(in srgb, var(--rule) 20%, transparent);
  border-radius: var(--radius);
}
.kiez-app-update h2 {
  color: var(--accent);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.3;
  margin-bottom: 18px;
}
.kiez-app-update p + p {
  margin-top: 14px;
}
.kiez-app-update .app-release-status {
  margin-bottom: 10px;
}
.kiez-app-links {
  justify-content: flex-start;
}
