:root {
--paper: #fffaf0;
--ink: #1f1f1f;
--muted: #6b6257;
--card: #ffffff;
--yellow: #ffd34d;
--orange: #ff9f45;
--blue: #8ed3ff;
--green: #98e7a7;
--pink: #ff8bd1;
--shadow: 0 18px 45px rgba(31, 31, 31, 0.12);
--radius: 28px;
}

* {
  box-sizing: border-box;
  }

html {
scroll-behavior: smooth;
}

body {
margin: 0;
font-family: "Comic Sans MS", "Trebuchet MS", system-ui, sans-serif;
color: var(--ink);
background:
radial-gradient(circle at top left, rgba(255, 211, 77, 0.45), transparent 34rem),
radial-gradient(circle at top right, rgba(142, 211, 255, 0.4), transparent 32rem),
linear-gradient(180deg, var(--paper), #fff);
min-height: 100vh;
}

header {
max-width: 1180px;
margin: 0 auto;
padding: 28px 22px 14px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
}

.logo {
display: flex;
align-items: center;
gap: 12px;
font-weight: 900;
letter-spacing: -0.04em;
font-size: clamp(1.3rem, 2vw, 1.8rem);
}

.logo-mark {
width: 72px;
height: 72px;
border: 4px solid var(--ink);
border-radius: 18px;
background: white;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 4px 4px 0 var(--ink);
rotate: -4deg;
overflow: hidden;
padding: 5px;
flex: 0 0 auto;
}

.logo-mark img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}

nav {
display: flex;
gap: 10px;
flex-wrap: wrap;
justify-content: flex-end;
}

nav a,
.button,
.filter-btn,
.upload-button {
color: var(--ink);
text-decoration: none;
font-weight: 800;
border: 3px solid var(--ink);
border-radius: 999px;
background: white;
padding: 10px 16px;
box-shadow: 3px 3px 0 var(--ink);
transition: transform 0.14s ease, box-shadow 0.14s ease;
cursor: pointer;
font-family: inherit;
font-size: 0.98rem;
}

nav a:hover,
.button:hover,
.filter-btn:hover,
.filter-btn.active,
.upload-button:hover {
transform: translate(2px, 2px);
box-shadow: 1px 1px 0 var(--ink);
background: var(--yellow);
}

.hero {
max-width: 1180px;
margin: 0 auto;
padding: 48px 22px 38px;
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 32px;
align-items: center;
}

.hero-copy h1 {
font-size: clamp(3rem, 8vw, 7.4rem);
line-height: 0.88;
margin: 0 0 24px;
letter-spacing: -0.08em;
}

.hero-copy p {
font-size: clamp(1.05rem, 2vw, 1.35rem);
line-height: 1.5;
max-width: 680px;
color: var(--muted);
margin: 0 0 26px;
}

.hero-actions {
display: flex;
gap: 14px;
flex-wrap: wrap;
}

.button.primary,
.upload-button.primary {
background: var(--orange);
}

.feature-card {
background: var(--card);
border: 4px solid var(--ink);
border-radius: var(--radius);
box-shadow: var(--shadow), 7px 7px 0 var(--ink);
padding: 22px;
position: relative;
rotate: 2deg;
}

.feature-card::before {
content: "featured goober";
position: absolute;
top: -18px;
left: 24px;
background: var(--green);
border: 3px solid var(--ink);
border-radius: 999px;
padding: 6px 12px;
font-size: 0.9rem;
font-weight: 900;
rotate: -5deg;
}

.feature-card img {
width: 100%;
display: block;
border-radius: 20px;
background: #f7f7f7;
}

.feature-card h2 {
margin: 18px 0 6px;
font-size: 2rem;
}

.feature-card p {
margin: 0;
color: var(--muted);
line-height: 1.45;
}

main {
max-width: 1180px;
margin: 0 auto;
padding: 16px 22px 70px;
}

.section-title {
display: flex;
align-items: end;
justify-content: space-between;
gap: 20px;
margin: 32px 0 18px;
}

.section-title h2 {
font-size: clamp(2rem, 4vw, 3.5rem);
margin: 0;
letter-spacing: -0.05em;
}

.section-title p {
max-width: 500px;
margin: 0;
color: var(--muted);
line-height: 1.45;
}

.gallery-highlight {
margin: 18px 0 52px;
background:
radial-gradient(circle at top right, rgba(255, 211, 77, 0.68), transparent 24rem),
linear-gradient(135deg, #ffffff, #fff4cb);
border: 5px solid var(--ink);
border-radius: 34px;
box-shadow: var(--shadow), 9px 9px 0 var(--ink);
padding: clamp(20px, 4vw, 34px);
position: relative;
}

.gallery-highlight::before {
content: "main attraction";
position: absolute;
top: -20px;
left: 28px;
background: var(--pink);
border: 3px solid var(--ink);
border-radius: 999px;
padding: 7px 14px;
font-size: 0.9rem;
font-weight: 900;
rotate: -4deg;
}

.gallery-highlight .section-title {
margin-top: 8px;
}

.upload-panel {
margin: 34px 0 46px;
background: var(--blue);
border: 4px solid var(--ink);
border-radius: var(--radius);
box-shadow: 7px 7px 0 var(--ink);
padding: clamp(22px, 4vw, 36px);
display: grid;
grid-template-columns: 0.95fr 1.05fr;
gap: 26px;
align-items: start;
position: relative;
overflow: hidden;
}

.upload-panel::after {
content: "test upload tool";
position: absolute;
top: 14px;
right: -28px;
background: var(--yellow);
border: 3px solid var(--ink);
padding: 8px 32px;
font-weight: 900;
rotate: 16deg;
}

.upload-copy h2 {
font-size: clamp(2.2rem, 5vw, 4rem);
line-height: 0.9;
margin: 0 0 14px;
letter-spacing: -0.07em;
}

.upload-copy p {
margin: 0 0 20px;
color: #26333a;
font-size: 1.05rem;
line-height: 1.5;
max-width: 520px;
}

.upload-note {
background: white;
border: 3px solid var(--ink);
border-radius: 20px;
padding: 12px 14px;
box-shadow: 4px 4px 0 var(--ink);
font-weight: 800;
line-height: 1.35;
}

.upload-form {
background: white;
border: 4px solid var(--ink);
border-radius: 24px;
padding: 18px;
box-shadow: 5px 5px 0 var(--ink);
display: grid;
gap: 14px;
}

.form-row {
display: grid;
gap: 7px;
}

.form-row label {
font-weight: 900;
}

.form-row input,
.form-row select,
.form-row textarea {
width: 100%;
border: 3px solid var(--ink);
border-radius: 16px;
padding: 10px 12px;
font: inherit;
background: #fffaf0;
outline: none;
}

.form-row textarea {
min-height: 86px;
resize: vertical;
}

.file-preview {
min-height: 170px;
border: 3px dashed var(--ink);
border-radius: 20px;
background: #f9f9f9;
display: grid;
place-items: center;
padding: 12px;
color: var(--muted);
font-weight: 900;
text-align: center;
overflow: hidden;
}

.file-preview img {
max-width: 100%;
max-height: 260px;
object-fit: contain;
display: block;
}

.upload-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}

.upload-status {
margin: 0;
color: #26333a;
font-weight: 900;
}

.filters {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin: 22px 0;
}

.goober-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 18px;
}

.goober-card {
background: var(--card);
border: 4px solid var(--ink);
border-radius: var(--radius);
box-shadow: 5px 5px 0 var(--ink);
overflow: hidden;
transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.goober-card:hover {
transform: translateY(-5px) rotate(-1deg);
box-shadow: 8px 10px 0 var(--ink);
}

.goober-image {
aspect-ratio: 1 / 0.78;
background: #f4f4f4;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
border-bottom: 4px solid var(--ink);
}

.goober-image img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}

.goober-info {
padding: 16px;
}

.goober-info h3 {
margin: 0 0 8px;
font-size: 1.35rem;
}

.tagline {
margin: 0 0 14px;
color: var(--muted);
line-height: 1.35;
min-height: 2.7em;
}

.goober-tags {
display: flex;
gap: 8px;
flex-wrap: wrap;
}

.tag {
border: 2px solid var(--ink);
border-radius: 999px;
padding: 4px 8px;
background: #fff3bf;
font-size: 0.82rem;
font-weight: 900;
}

.delete-goober {
margin-top: 12px;
border: 2px solid var(--ink);
border-radius: 999px;
background: #ffd1d1;
font: inherit;
font-weight: 900;
padding: 6px 10px;
cursor: pointer;
}

.delete-goober:hover {
background: #ff9f9f;
}

.about-panel {
margin-top: 48px;
background: var(--blue);
border: 4px solid var(--ink);
border-radius: var(--radius);
box-shadow: 7px 7px 0 var(--ink);
padding: clamp(22px, 4vw, 38px);
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
align-items: center;
}

.future-panel {
background: var(--yellow);
}

.about-panel h2 {
font-size: clamp(2rem, 4vw, 3.4rem);
line-height: 0.95;
margin: 0 0 16px;
letter-spacing: -0.05em;
}

.about-panel p,
.about-panel li {
color: #1f1f1f;
line-height: 1.5;
font-size: 1.05rem;
}

.about-panel ul {
margin: 0;
padding-left: 22px;
}

footer {
border-top: 4px solid var(--ink);
background: #1f1f1f;
color: white;
padding: 26px 22px;
text-align: center;
font-weight: 800;
}

@media (max-width: 940px) {
.hero,
.about-panel,
.upload-panel {
grid-template-columns: 1fr;
}

.feature-card {
rotate: 0deg;
}

.goober-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 560px) {
header {
align-items: flex-start;
flex-direction: column;
}

nav {
justify-content: flex-start;
}

.goober-grid {
grid-template-columns: 1fr;
}

.section-title {
align-items: flex-start;
flex-direction: column;
}
}
