Countdown to WiCHacks 2026
{isLive ? (
We're live!
diff --git a/src/pages/Sponsors.jsx b/src/pages/Sponsors.jsx
index 9acd325..f5e68cc 100644
--- a/src/pages/Sponsors.jsx
+++ b/src/pages/Sponsors.jsx
@@ -10,16 +10,16 @@ import sg from "../assets/sponsors/student-gov.png";
import wegmans from "../assets/sponsors/wegmans.png";
const sponsors = [
- { image: csl, link: "https://www.csl.com/careers/early-careers-at-csl" },
- { image: mandt},
- { image: capitalone, link: "https://www.capitalonecareers.com/students" },
- { image: kodak},
- { image: mindex},
+ { label: "CSL", image: csl, link: "https://www.csl.com/careers/early-careers-at-csl" },
+ { label: "M and T Tech", image: mandt},
+ { label: "Capitalone", image: capitalone, link: "https://www.capitalonecareers.com/students" },
+ { label: "Kodak", image: kodak},
+ { label: "Mindex", image: mindex},
// magic, student gov, & mlh are supporters
- { image: magic },
- { image: mlh },
- { image: sg },
- { image: wegmans },
+ { label: "Magic Spell Studios", image: magic },
+ { label: "Major League Hacking", image: mlh },
+ { label: "RIT Student Government", image: sg },
+ { label: "Wegmans", image: wegmans },
];
const sponsor_rows = [1, 4, 4];
@@ -54,7 +54,7 @@ function Sponsors() {
@@ -66,6 +66,7 @@ function Sponsors() {
href={sponsor.link}
target="_blank"
rel="noopener noreferrer"
+ aria-label={sponsor.label}
>
{content}
diff --git a/src/style/style.css b/src/style/style.css
index abde3d1..3153844 100644
--- a/src/style/style.css
+++ b/src/style/style.css
@@ -160,6 +160,12 @@ section {
overflow: visible;
}
+@media (prefers-reduced-transparency: reduce) {
+ .navbar {
+ background: rgb(112, 73, 159);
+ }
+}
+
.nav-inner {
height: 100%;
display: flex;
@@ -223,7 +229,8 @@ section {
transform: scaleX(0);
transition: transform 180ms ease;
}
-.nav-links li a:hover {
+.nav-links li a:hover,
+.nav-links li a:focus-visible {
background: rgba(255, 255, 255, 0.12);
transform: translateY(-1px);
}
@@ -235,13 +242,34 @@ section {
display: flex;
align-items: center;
gap: 16px;
+ margin-right: 132px;
+}
+
+.nav-icons .nav-icon {
+ border-radius: 12px;
+ display: block;
+ height: min-content;
+ transition: background 160ms ease, transform 160ms ease;
+}
+
+.nav-icons .nav-icon:hover,
+.nav-icons .nav-icon:focus-visible {
+ background: rgba(255, 255, 255, 0.12);
+}
+
+.nav-icons a:hover,
+.nav-icons a:focus-visible {
+ transform: translateY(-1px);
+}
+
+#instagram-nav-item {
+ padding: 6px 6px 2px;
}
.nav-icon svg {
width: 36px;
height: 36px;
color: white;
- margin-right: 120px;
}
.mlh-banner {
@@ -252,6 +280,7 @@ section {
margin: 0;
background: transparent;
z-index: 1001;
+ padding: 0 6px;
}
.mlh-banner img {
display: block;
@@ -283,6 +312,13 @@ section {
display: flex;
}
}
+@media (max-width: 750px) and (prefers-reduced-transparency: reduce) {
+ .nav-links {
+ background: rgb(112, 73, 159);
+ -webkit-backdrop-filter: none;
+ backdrop-filter: none;
+ }
+}
@media (max-width: 900px) {
.mlh-banner {
right: 16px;
@@ -292,8 +328,8 @@ section {
min-width: 0;
max-width: 80px;
}
- .nav-icon svg {
- margin-right: 90px;
+ .nav-icons {
+ margin-right: 95px;
}
}
#hero {
@@ -408,7 +444,6 @@ section {
}
.hero-devpost-link a {
text-decoration: none;
- width: 100%;
display: flex;
justify-content: center;
}
@@ -431,7 +466,9 @@ section {
font-weight: 700;
transition: background 1s ease, transform 120ms ease;
}
-.hero-devpost-link .button:hover {
+
+.hero-devpost-link .button:hover,
+.hero-devpost-link a:focus-visible .button {
background: rgba(33, 35, 60, 0.85);
transform: translateY(-1px);
}
@@ -472,6 +509,26 @@ section {
pointer-events: none;
}
}
+
+@media (prefers-reduced-transparency: reduce) {
+ .hero-devpost-link::before {
+ background: rgb(112, 73, 159);
+ }
+
+ .hero-devpost-link h3 {
+ margin: 0 0 50px 0;
+ color: white;
+ }
+
+ .hero-devpost-link .button {
+ background: rgb(59, 60, 116);
+ }
+ .hero-devpost-link .button:hover,
+ .hero-devpost-link a:focus-visible .button {
+ background: rgba(33, 35, 60);
+ }
+}
+
.hero-spacer {
grid-area: middle-right;
}
@@ -492,6 +549,15 @@ section {
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
}
+
+@media (prefers-reduced-transparency: reduce) {
+ .countdown {
+ background: rgb(59, 60, 116);
+ -webkit-backdrop-filter: none;
+ backdrop-filter: none;
+ }
+}
+
.countdown h2 {
margin-bottom: 0.75rem;
color: white;
@@ -591,7 +657,6 @@ html, body {
font-family: "Montserrat", sans-serif;
font-weight: 700;
color: white;
- text-shadow: 0 0 8px rgba(48, 25, 52, 0.9);
max-width: 22ch;
text-align: center;
}
@@ -608,7 +673,6 @@ html, body {
text-align: center;
width: min(260px, 100%);
padding: 14px 18px;
- background: rgba(112, 73, 159, 0.85);
color: white;
border-radius: 999px;
letter-spacing: 1.6px;
@@ -627,7 +691,6 @@ html, body {
position: absolute;
width: min(320px, 92vw);
height: min(320px, 92vw);
- background: rgba(112, 73, 159, 0.28);
mask-image: url("../assets/flower-outline.svg");
mask-repeat: no-repeat;
mask-position: center;
@@ -652,7 +715,6 @@ html, body {
width: 100%;
max-width: 360px;
margin: 0 auto;
- background: rgba(59, 60, 116, 0.45);
border-radius: 14px;
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
@@ -787,8 +849,9 @@ html, body {
text-decoration: underline;
font-weight: 600;
}
-.about-right a:hover, .about-right a:focus-visible {
- opacity: 0.85;
+.about-right a:hover,
+.about-right a:focus-visible {
+ color: #9563d3;
}
.about-right p a + a {
@@ -867,6 +930,12 @@ html, body {
border-radius: 16px;
}
+@media (prefers-reduced-motion: reduce) {
+ .category-inner {
+ transition: none;
+ }
+}
+
.category-card.is-flipped .category-inner {
transform: rotateY(180deg);
}
@@ -1125,13 +1194,14 @@ html, body {
margin-bottom: 5vh;
}
-.question {
+.questions .question {
width: min(92%, 520px);
display: flex;
justify-content: center;
align-items: center;
+ cursor: pointer;
}
-.question h3 {
+.questions .question h3 {
width: 100%;
text-align: center;
margin: 0;
@@ -1142,6 +1212,12 @@ html, body {
font-weight: 700;
color: white;
text-shadow: 0 0 10px #3B3C74;
+ transition: text-shadow 0.1s linear;
+}
+.questions .question:hover h3,
+.questions .question:focus-visible h3 {
+ text-shadow: 0 0 12px #080938;
+ text-decoration: underline;
}
.answer {
@@ -1295,6 +1371,21 @@ html, body {
transform: translateX(-50%);
}
}
+
+@media (prefers-reduced-motion: reduce) {
+ .team-marquee {
+ -webkit-mask-image: unset;
+ mask-image: unset;
+ }
+
+ .team-track {
+ animation: none;
+ width: 100%;
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+}
+
.team-member {
flex: 0 0 auto;
font-size: 22px;
@@ -1378,14 +1469,20 @@ html, body {
.sponsors p strong {
font-weight: 600;
}
-.sponsors p a {
+.sponsors a {
color: #70499F;
text-decoration: underline;
}
+.sponsors a:hover,
+.sponsors a:focus-visible {
+ color: #9563d3;
+}
+
@keyframes wiggle {
0% {
transform: rotate(0deg);
+ bottom: 0;
}
25% {
transform: rotate(3deg);
@@ -1398,6 +1495,7 @@ html, body {
}
100% {
transform: rotate(0deg);
+ bottom: 5px;
}
}
.sponsors-row {
@@ -1409,14 +1507,44 @@ html, body {
gap: 0rem;
flex-wrap: nowrap;
}
+.sponsors-row div {
+ position: relative;
+}
.sponsors-row img {
max-width: 300px;
-o-object-fit: contain;
object-fit: contain;
margin-bottom: -20px;
+ transition: bottom 0.5s linear;
+ position: relative;
+ transform-origin: center;
+ bottom: 0;
}
-.sponsors-row img:hover, .sponsors-row img:focus {
+
+.sponsors-row img:hover,
+.sponsors-row a:focus-visible img {
animation: wiggle 0.5s ease-in-out;
+ bottom: 5px;
+}
+
+.sponsors-row .sponsor-box::after,
+.sponsors-row a .sponsor-box::after {
+ content: "";
+ display: block;
+ position: absolute;
+ width: 60%;
+ margin: 0 20%;
+ height: 10%;
+ background-image: radial-gradient(closest-side, #000, #0000);
+ border-radius: 100%;
+ z-index: -1;
+ opacity: 0;
+ transition: opacity 0.5s linear;
+}
+
+.sponsors-row .sponsor-box:hover::after,
+.sponsors-row a:focus-visible .sponsor-box::after {
+ opacity: 1;
}
.sponsors-text {
@@ -1456,6 +1584,14 @@ html, body {
border-radius: 12px;
}
+@media (prefers-reduced-motion: reduce) {
+ .sponsors-row img:hover,
+ .sponsors-row a:focus-visible img {
+ animation: none;
+ bottom: 0;
+ }
+}
+
@media (max-width: 800px) {
.sponsors-container img {
max-width: 250px;