/* Linguacy — shared styles, matching the Figma file exactly */

@font-face {
  font-family: 'LinguallyLively';
  src: url('/assets/LinguallyLively-Regular.otf');
}
/* Fredoka is loaded from Google Fonts in each page's <head> */

:root {
  --bg: #f7e9d7;
  --card: #fdf5e8;
  --card-alt: #fef6e9;
  --red: #e13a35;
  --red-text: #df3434;
  --dark: #51342b;
  --cream-text: #fdf6e9;
  --input-default-border: rgba(0,0,0,0.25);
  --input-focus-border: #e13a35;
  --option-default: #f6e9d6;
  --option-correct: #dbf8d7;
  --option-wrong: #f7d7d8;
  --shadow-soft: 0px 4px 4px 0px rgba(0,0,0,0.25);
  --shadow-btn: 0px 6px 20.6px 0px #e87662;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  background: var(--bg);
  font-family: 'Fredoka', sans-serif;
  color: var(--dark);
  min-height: 100vh;
  overflow-x: hidden;
}

.page {
  position: relative;
  min-height: 100vh;
  padding: 40px 20px;
}

.blob {
  position: absolute;
  border-radius: 50%;
  background: linear-gradient(135deg, #f2c66d, #e97b6c);
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
}

.footer-smile {
  position: absolute;
  bottom: 47px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  z-index: 2;
}
.footer-smile img { width: 100%; display: block; }

.center-wrap {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
}

button { font-family: 'LinguallyLively', 'Fredoka', sans-serif; cursor: pointer; border: none; }
input { font-family: 'Fredoka', sans-serif; }

.btn-red {
  background: var(--red);
  color: var(--cream-text);
  border-radius: 50px;
  box-shadow: var(--shadow-btn);
  font-size: 32px;
  padding: 20px 50px;
  display: inline-block;
  text-align: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.btn-red:hover { transform: translateY(-2px); box-shadow: 0px 10px 26px 0px #e87662; }
.btn-red:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.field-label {
  font-size: 20px;
  color: var(--dark);
  margin-bottom: 8px;
  display: block;
}

.field-input {
  width: 100%;
  background: var(--card);
  border: 1px solid var(--input-default-border);
  border-radius: 15px;
  height: 75px;
  padding: 0 24px;
  font-size: 22px;
  color: var(--dark);
  outline: none;
  transition: border-color 0.15s ease;
}
.field-input:focus { border-color: var(--input-focus-border); border-width: 2px; }

.error-text {
  color: var(--red);
  font-size: 15px;
  font-weight: 600;
  margin-top: -6px;
}

/* subtle glide-in entrance animation */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  animation: revealIn 0.6s ease forwards;
}
@keyframes revealIn {
  to { opacity: 1; transform: translateY(0); }
}
