:root {
  --cream: #fff7df;
  --paper: #fffdf6;
  --red: #ef3d3d;
  --blue: #3d68ff;
  --yellow: #ffd83d;
  --ink: #1f2440;
  --muted: #6d7189;
  --border: #1f2440;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: var(--cream);
}

h1, h2, h3, .brand { font-family: "Arial Rounded MT Bold", "Trebuchet MS", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }

.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 5vw;
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(255,247,223,.94);
  backdrop-filter: blur(10px);
  border-bottom: 2px solid var(--ink);
}

.brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.15rem; }
.logo { font-size:1.6rem; }
nav { display:flex; gap:22px; align-items:center; font-weight:600; }
.nav-cta { padding:10px 16px; background:var(--yellow); border:2px solid var(--ink); border-radius:999px; box-shadow:3px 3px 0 var(--ink); }

.hero {
  min-height: 70vh;
  padding: 80px 5vw;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 50px;
  align-items:center;
  max-width: 1200px;
  margin: 0 auto;
}

.eyebrow { display:inline-block; font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; color:var(--red); }
h1 { font-size: clamp(4rem, 9vw, 8rem); line-height:.88; margin:12px 0 24px; }
h2 { font-size: clamp(2.2rem, 5vw, 4rem); line-height:1; margin:10px 0 22px; }
h3 { font-size:1.45rem; margin: 12px 0 8px; }
p { color:var(--muted); line-height:1.7; }
.hero-copy p { max-width:640px; font-size:1.15rem; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }
.button { display:inline-block; border:2px solid var(--ink); border-radius:999px; padding:14px 22px; font-weight:700; cursor:pointer; font:inherit; box-shadow:4px 4px 0 var(--ink); transition:.15s ease; }
.button:hover { transform:translate(2px,2px); box-shadow:2px 2px 0 var(--ink); }
.primary { background:var(--red); color:white; }
.secondary { background:var(--paper); color:var(--ink); }

.hero-card {
  min-height:420px;
  background:var(--blue);
  border:3px solid var(--ink);
  border-radius:36px;
  display:grid;
  place-items:center;
  box-shadow:12px 12px 0 var(--ink);
  transform:rotate(2deg);
  overflow:hidden;
}
.face {
  width:240px; height:240px; border-radius:50%; background:var(--paper); border:4px solid var(--ink); position:relative;
}
.hat { position:absolute; width:160px; height:65px; background:var(--yellow); border:4px solid var(--ink); border-radius:50% 50% 18px 18px; left:38px; top:-50px; transform:rotate(-5deg); }
.eyes { position:absolute; top:78px; left:62px; display:flex; gap:42px; }
.eyes span { width:26px; height:34px; background:var(--ink); border-radius:50%; display:block; }
.nose { width:58px; height:58px; border-radius:50%; background:var(--red); border:4px solid var(--ink); position:absolute; left:88px; top:112px; }
.smile { position:absolute; width:105px; height:50px; border-bottom:7px solid var(--ink); border-radius:0 0 80px 80px; left:65px; bottom:35px; }

.section { padding: 90px 5vw; max-width:1200px; margin:0 auto; }
.section-heading { max-width:700px; margin-bottom:40px; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card { background:var(--paper); border:2px solid var(--ink); border-radius:24px; padding:28px; box-shadow:6px 6px 0 var(--ink); }
.icon { font-size:2.4rem; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.about-copy { font-size:1.1rem; }

.contact-section {
  max-width:1200px;
  margin:40px auto 90px;
  padding:55px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:50px;
  background:var(--yellow);
  border:3px solid var(--ink);
  border-radius:32px;
  box-shadow:10px 10px 0 var(--ink);
}
.contact-form { display:grid; gap:16px; }
label { display:grid; gap:7px; font-weight:700; }
input, textarea {
  width:100%; padding:14px 15px; border:2px solid var(--ink); border-radius:14px; background:white; color:var(--ink); font:inherit;
}
textarea { resize:vertical; }

footer { display:flex; justify-content:space-between; gap:20px; padding:28px 5vw; border-top:2px solid var(--ink); font-size:.92rem; }

@media (max-width: 800px) {
  nav a:not(.nav-cta) { display:none; }
  .hero, .split, .contact-section { grid-template-columns:1fr; }
  .hero { padding-top:55px; }
  .hero-card { min-height:320px; }
  .cards { grid-template-columns:1fr; }
  .contact-section { margin:25px 4vw 70px; padding:30px; }
  footer { flex-direction:column; }
}
