footer { width: 100%; display: grid; grid-template-columns: repeat(3, fit-content(100%)) 1fr; gap: min(48px, 7.7vw); color: var(--text-shade-1); margin-top: 120px; position: relative; padding: 60px 0; } footer::after { content: ""; width: 400vw; height: 100%; position: absolute; top: 0; left: -50vw; background: var(--bg-shade-0); z-index: -1; } footer div { display: flex; flex-flow: column; width: fit-content; } footer svg.logotype { height: 56px; width: fit-content; margin: -10px 0 24px -10px; } footer p { margin: 0; } footer h1 { font-size: 20px; margin-top: 0; color: var(--text-shade-3); } footer a { color: var(--text-shade-1); text-decoration: none; width: fit-content; } footer a:hover { color: var(--text-shade-3); text-decoration: underline; } footer div.discord-server-card-wrapper { z-index: 2; justify-self: end; position: relative; } footer div.discord-server-card { background: var(--bg-shade-2); border-radius: 12px; padding: 30px 90px 30px 36px; } footer div.discord-server-card h1 { font-size: 25px; margin: 0; } footer div.discord-server-card h2 { color: var(--text-shade-3); font-size: 22px; margin: 0; } footer div.discord-server-card a { display: flex; align-items: center; color: var(--accent-shade-3); font-size: 22px; text-decoration: none; width: fit-content; margin-left: -2px; margin-top: 12px; } footer div.discord-server-card a:hover { text-decoration: underline; } footer div.discord-server-card svg { height: 24px; stroke-width: 3px; margin-right: 4px; } footer div.discord-server-card-wrapper .bandwidth-raccoon-wrapper { position: absolute; top: -120px; right: 0px; z-index: -1; } footer div.discord-server-card-wrapper img.bandwidth-raccoon { width: 192px; height: 192px; cursor: pointer; transform: none; transition: transform 150ms; } footer div.bandwidth-raccoon-wrapper.speak img.bandwidth-raccoon { transform: rotate(12deg) translateY(-12px); } footer .bandwidth-raccoon-wrapper .text-bubble { position: absolute; right: 0; margin: 0 auto; top: -24px; max-width: min(200%, 90vw); width: max-content; background: var(--bg-shade-3); padding: 18px; align-self: center; margin-bottom: 12px; border-radius: 12px; box-sizing: border-box; transform: translateY(-100%); opacity: 0; pointer-events: none; transition: opacity 250ms; } footer .bandwidth-raccoon-wrapper.speak .text-bubble { opacity: 1; } footer .bandwidth-raccoon-wrapper .text-bubble:after { content: ""; position: absolute; display: block; width: 0; z-index: 1; border-style: solid; border-color: var(--bg-shade-3) transparent; border-width: 10px 10px 0; bottom: -10px; right: 60px; margin-left: -10px; } @media screen and (max-width: 900px) { footer { margin-top: 100px; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, fit-content(100%)); } footer div { justify-self: center; } footer div.discord-server-card-wrapper { grid-column: 1 / span 4; width: 100%; justify-self: normal; } footer div.discord-server-card-wrapper::before { content: ""; width: 100%; height: 60px; position: absolute; bottom: -60px; left: 0; background: var(--bg-shade-0); z-index: 2; } footer div.discord-server-card-wrapper .bandwidth-raccoon-wrapper { bottom: -72px; top: unset; z-index: 0; } footer div.discord-server-card { box-sizing: border-box; width: 100%; overflow: hidden; } } @media screen and (max-width: 580px) { footer { grid-template-columns: 1fr; grid-template-rows: repeat(4, fit-content(100%)); } footer div { justify-self: start; } footer div.discord-server-card-wrapper { grid-column: 1 / span 1; } footer div.discord-server-card { padding: 30px; overflow: visible; } footer div.discord-server-card-wrapper .bandwidth-raccoon-wrapper { bottom: unset; top: -120px; z-index: -1; } } @media screen and (max-width: 320px) { footer div.discord-server-card-wrapper .bandwidth-raccoon-wrapper { display: none; } }