/* Main CSS for EduPuzzle Landing Page */

/* CSS Variables */
:root {
  /* Exact React App Colors */
  --violet-600: #7c3aed;
  --violet-500: #8b5cf6;
  --violet-400: #a78bfa;
  --violet-200: #ddd6fe;
  --violet-100: #ede9fe;
  --violet-50: #f5f3ff;
  --pink-500: #ec4899;
  --pink-400: #f472b6;
  --amber-500: #f59e0b;
  --amber-400: #fbbf24;
  --amber-300: #fcd34d;

  /* Neutrals */
  --slate-900: #0f172a;
  --slate-600: #475569;
  --slate-500: #64748b;
  --slate-400: #94a3b8;
  --slate-300: #cbd5e1;
  --slate-200: #e2e8f0;
  --slate-100: #f1f5f9;
  --slate-50: #f8fafc;

  /* Semantic Colors */
  --primary-color: var(--violet-500);
  --primary-hover: var(--violet-600);
  --text-primary: var(--slate-900);
  --text-secondary: var(--slate-600);
  --text-light: var(--slate-500);
  --bg-primary: #ffffff;
  --bg-secondary: var(--slate-50);
  --bg-accent: var(--slate-100);
  --border-color: var(--slate-200);
  --error-color: #ef4444;
  --success-color: #10b981;
  --warning-color: #f59e0b;

  /* Typography */
  --font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  --font-mono:
    "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New",
    monospace;

  /* Border Radius */
  --border-radius: 8px;
  --border-radius-lg: 12px;
  --border-radius-xl: 24px;
  --border-radius-2xl: 32px;

  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md:
    0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg:
    0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl:
    0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);

  /* Brutal/Playful Shadows */
  --shadow-brutal: 4px 4px 0px 0px rgba(15, 23, 42, 1);
  --shadow-brutal-lg: 8px 8px 0px 0px rgba(15, 23, 42, 1);

  /* Layout */
  --container-max-width: 1200px;
  --container-padding: 1.5rem;
}

/* Pattern Background Utility */
.pattern-bg {
  background-image:
    radial-gradient(
      circle at 20% 50%,
      rgba(139, 92, 246, 0.08) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 80% 80%,
      rgba(236, 72, 153, 0.08) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 40% 20%,
      rgba(251, 191, 36, 0.08) 0%,
      transparent 50%
    );
}

/* Reset and Base Styles */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: var(--font-family);
  line-height: 1.6;
  color: var(--text-primary);
  background-color: var(--bg-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--primary-color);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--primary-hover);
}

/* ========================================
   LAYOUT
   ======================================== */

.container {
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

main {
  margin-top: 5rem;
}

/* ========================================
   HEADER / NAVIGATION
   ======================================== */

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  background: var(--slate-50);
  border-bottom: 1px solid var(--slate-100);
  z-index: 1000;
}

.navbar-container {
  display: flex;
  height: 5rem;
  align-items: center;
  justify-content: space-between;
}

/* Nav Brand */
.nav-brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
}

.logo-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--violet-500);
  border-radius: 0.75rem;
  font-size: 1.375rem;
  color: var(--slate-50);
  box-shadow: 0 4px 6px -1px rgba(139, 92, 246, 0.3);
}

.logo-text {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--slate-900);
  letter-spacing: 0.0125em;
}

/* Nav Links */
.nav-links {
  display: none;
  align-items: center;
  gap: 2rem;
}

.nav-link {
  color: var(--slate-500);
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  transition: color 0.2s ease;
}

.nav-link:hover {
  color: var(--violet-500);
}

/* Nav Actions */
.nav-actions {
  display: none;
  align-items: center;
  gap: 1rem;
}

/* Mobile Menu Toggle */
.nav-toggle {
  display: flex;
  flex-direction: column;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
}

.nav-toggle span {
  width: 24px;
  height: 2px;
  background-color: var(--slate-600);
  margin: 3px 0;
  transition: all 0.3s ease;
  border-radius: 2px;
}

/* Mobile Menu */
.mobile-menu {
  border-top: 1px solid var(--slate-100);
  background: var(--slate-50);
  padding: 1rem;
  position: absolute;
  width: 100%;
  box-shadow: var(--shadow-lg);
  border-radius: 0 0 1rem 1rem;
}

.mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.mobile-link {
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--slate-600);
  text-decoration: none;
  padding: 0.5rem;
  border-radius: 0.5rem;
  transition: all 0.2s ease;
}

.mobile-link:hover {
  color: var(--violet-500);
  background: rgba(139, 92, 246, 0.05);
}

.mobile-divider {
  margin: 0.5rem 0;
  border: none;
  border-top: 1px solid var(--slate-100);
}

/* Desktop breakpoint */
@media (min-width: 768px) {
  .nav-links,
  .nav-actions {
    display: flex;
  }

  .nav-toggle {
    display: none;
  }

  .mobile-menu {
    display: none !important;
  }
}

/* ========================================
   SECTION HEADERS
   ======================================== */

.section-header {
  text-align: center;
  margin-bottom: 4rem;
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

.section-header h2 {
  font-size: 2.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--slate-900);
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.section-header p {
  font-size: 1.25rem;
  color: var(--slate-600);
  line-height: 1.5;
}

/* ========================================
   FOOTER
   ======================================== */

.site-footer {
  background: var(--slate-900);
  color: var(--slate-300);
  padding: 3rem 0 1.5rem;
}

.footer-content {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 2rem;
}

.footer-brand {
  max-width: 300px;
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.footer-icon {
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--violet-500);
  border-radius: 0.75rem;
  font-size: 1.375rem;
  color: var(--slate-50);
  box-shadow: 0 4px 6px -1px rgba(139, 92, 246, 0.3);
}

.footer-logo-text {
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--slate-50);
  letter-spacing: 0.0125em;
}

.footer-brand p {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--slate-400);
}

.footer-section h4 {
  color: var(--slate-50);
  font-weight: 600;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.footer-section ul {
  list-style: none;
}

.footer-section ul li {
  margin-bottom: 0.5rem;
}

.footer-section ul li a {
  color: var(--slate-400);
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}

.footer-section ul li a:hover {
  color: var(--slate-50);
}

.social-links {
  display: flex;
  gap: 0.75rem;
}

.social-links a {
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--slate-50);
  text-decoration: none;
  transition: all 0.2s ease;
  font-size: 1rem;
}

.social-links a:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.5rem;
  text-align: center;
}

.footer-bottom p {
  color: var(--slate-500);
  font-size: 0.875rem;
}

/* ========================================
   RESPONSIVE - FOOTER
   ======================================== */

@media (max-width: 768px) {
  .footer-content {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }

  .footer-brand {
    max-width: 100%;
  }

  .footer-logo {
    justify-content: center;
  }

  .social-links {
    justify-content: center;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2Nzcy9tYWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE1haW4gQ1NTIGZvciBFZHVQdXp6bGUgTGFuZGluZyBQYWdlICovXG5cbi8qIENTUyBWYXJpYWJsZXMgKi9cbjpyb290IHtcbiAgLyogRXhhY3QgUmVhY3QgQXBwIENvbG9ycyAqL1xuICAtLXZpb2xldC02MDA6ICM3YzNhZWQ7XG4gIC0tdmlvbGV0LTUwMDogIzhiNWNmNjtcbiAgLS12aW9sZXQtNDAwOiAjYTc4YmZhO1xuICAtLXZpb2xldC0yMDA6ICNkZGQ2ZmU7XG4gIC0tdmlvbGV0LTEwMDogI2VkZTlmZTtcbiAgLS12aW9sZXQtNTA6ICNmNWYzZmY7XG4gIC0tcGluay01MDA6ICNlYzQ4OTk7XG4gIC0tcGluay00MDA6ICNmNDcyYjY7XG4gIC0tYW1iZXItNTAwOiAjZjU5ZTBiO1xuICAtLWFtYmVyLTQwMDogI2ZiYmYyNDtcbiAgLS1hbWJlci0zMDA6ICNmY2QzNGQ7XG5cbiAgLyogTmV1dHJhbHMgKi9cbiAgLS1zbGF0ZS05MDA6ICMwZjE3MmE7XG4gIC0tc2xhdGUtNjAwOiAjNDc1NTY5O1xuICAtLXNsYXRlLTUwMDogIzY0NzQ4YjtcbiAgLS1zbGF0ZS00MDA6ICM5NGEzYjg7XG4gIC0tc2xhdGUtMzAwOiAjY2JkNWUxO1xuICAtLXNsYXRlLTIwMDogI2UyZThmMDtcbiAgLS1zbGF0ZS0xMDA6ICNmMWY1Zjk7XG4gIC0tc2xhdGUtNTA6ICNmOGZhZmM7XG5cbiAgLyogU2VtYW50aWMgQ29sb3JzICovXG4gIC0tcHJpbWFyeS1jb2xvcjogdmFyKC0tdmlvbGV0LTUwMCk7XG4gIC0tcHJpbWFyeS1ob3ZlcjogdmFyKC0tdmlvbGV0LTYwMCk7XG4gIC0tdGV4dC1wcmltYXJ5OiB2YXIoLS1zbGF0ZS05MDApO1xuICAtLXRleHQtc2Vjb25kYXJ5OiB2YXIoLS1zbGF0ZS02MDApO1xuICAtLXRleHQtbGlnaHQ6IHZhcigtLXNsYXRlLTUwMCk7XG4gIC0tYmctcHJpbWFyeTogI2ZmZmZmZjtcbiAgLS1iZy1zZWNvbmRhcnk6IHZhcigtLXNsYXRlLTUwKTtcbiAgLS1iZy1hY2NlbnQ6IHZhcigtLXNsYXRlLTEwMCk7XG4gIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1zbGF0ZS0yMDApO1xuICAtLWVycm9yLWNvbG9yOiAjZWY0NDQ0O1xuICAtLXN1Y2Nlc3MtY29sb3I6ICMxMGI5ODE7XG4gIC0td2FybmluZy1jb2xvcjogI2Y1OWUwYjtcblxuICAvKiBUeXBvZ3JhcGh5ICovXG4gIC0tZm9udC1mYW1pbHk6XG4gICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLFxuICAgIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtbW9ubzpcbiAgICBcIlNGIE1vbm9cIiwgTW9uYWNvLCBcIkNhc2NhZGlhIENvZGVcIiwgXCJSb2JvdG8gTW9ub1wiLCBDb25zb2xhcywgXCJDb3VyaWVyIE5ld1wiLFxuICAgIG1vbm9zcGFjZTtcblxuICAvKiBCb3JkZXIgUmFkaXVzICovXG4gIC0tYm9yZGVyLXJhZGl1czogOHB4O1xuICAtLWJvcmRlci1yYWRpdXMtbGc6IDEycHg7XG4gIC0tYm9yZGVyLXJhZGl1cy14bDogMjRweDtcbiAgLS1ib3JkZXItcmFkaXVzLTJ4bDogMzJweDtcblxuICAvKiBTaGFkb3dzICovXG4gIC0tc2hhZG93LXNtOiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAtLXNoYWRvdy1tZDpcbiAgICAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIC0tc2hhZG93LWxnOlxuICAgIDAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAtLXNoYWRvdy14bDpcbiAgICAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuXG4gIC8qIEJydXRhbC9QbGF5ZnVsIFNoYWRvd3MgKi9cbiAgLS1zaGFkb3ctYnJ1dGFsOiA0cHggNHB4IDBweCAwcHggcmdiYSgxNSwgMjMsIDQyLCAxKTtcbiAgLS1zaGFkb3ctYnJ1dGFsLWxnOiA4cHggOHB4IDBweCAwcHggcmdiYSgxNSwgMjMsIDQyLCAxKTtcblxuICAvKiBMYXlvdXQgKi9cbiAgLS1jb250YWluZXItbWF4LXdpZHRoOiAxMjAwcHg7XG4gIC0tY29udGFpbmVyLXBhZGRpbmc6IDEuNXJlbTtcbn1cblxuLyogUGF0dGVybiBCYWNrZ3JvdW5kIFV0aWxpdHkgKi9cbi5wYXR0ZXJuLWJnIHtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICBjaXJjbGUgYXQgMjAlIDUwJSxcbiAgICAgIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjA4KSAwJSxcbiAgICAgIHRyYW5zcGFyZW50IDUwJVxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgY2lyY2xlIGF0IDgwJSA4MCUsXG4gICAgICByZ2JhKDIzNiwgNzIsIDE1MywgMC4wOCkgMCUsXG4gICAgICB0cmFuc3BhcmVudCA1MCVcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIGNpcmNsZSBhdCA0MCUgMjAlLFxuICAgICAgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMDgpIDAlLFxuICAgICAgdHJhbnNwYXJlbnQgNTAlXG4gICAgKTtcbn1cblxuLyogUmVzZXQgYW5kIEJhc2UgU3R5bGVzICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLXByaW1hcnkpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5hIHtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbn1cblxuYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTEFZT1VUXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpO1xufVxuXG5tYWluIHtcbiAgbWFyZ2luLXRvcDogNXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSEVBREVSIC8gTkFWSUdBVElPTlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zbGF0ZS01MCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zbGF0ZS0xMDApO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4ubmF2YmFyLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vKiBOYXYgQnJhbmQgKi9cbi5uYXYtYnJhbmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubG9nby1pY29uIHtcbiAgd2lkdGg6IDIuNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS12aW9sZXQtNTAwKTtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTUwKTtcbiAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuMyk7XG59XG5cbi5sb2dvLXRleHQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTkwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbTtcbn1cblxuLyogTmF2IExpbmtzICovXG4ubmF2LWxpbmtzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycmVtO1xufVxuXG4ubmF2LWxpbmsge1xuICBjb2xvcjogdmFyKC0tc2xhdGUtNTAwKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5uYXYtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS12aW9sZXQtNTAwKTtcbn1cblxuLyogTmF2IEFjdGlvbnMgKi9cbi5uYXYtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLyogTW9iaWxlIE1lbnUgVG9nZ2xlICovXG4ubmF2LXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5uYXYtdG9nZ2xlIHNwYW4ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsYXRlLTYwMCk7XG4gIG1hcmdpbjogM3B4IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLyogTW9iaWxlIE1lbnUgKi9cbi5tb2JpbGUtbWVudSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zbGF0ZS0xMDApO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zbGF0ZS01MCk7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAxcmVtIDFyZW07XG59XG5cbi5tb2JpbGUtbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ubW9iaWxlLWxpbmsge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tc2xhdGUtNjAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLm1vYmlsZS1saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXZpb2xldC01MDApO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzOSwgOTIsIDI0NiwgMC4wNSk7XG59XG5cbi5tb2JpbGUtZGl2aWRlciB7XG4gIG1hcmdpbjogMC41cmVtIDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNsYXRlLTEwMCk7XG59XG5cbi8qIERlc2t0b3AgYnJlYWtwb2ludCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtbGlua3MsXG4gIC5uYXYtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5uYXYtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1vYmlsZS1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0VDVElPTiBIRUFERVJTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZWN0aW9uLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnNlY3Rpb24taGVhZGVyIGgyIHtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tc2xhdGUtOTAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uc2VjdGlvbi1oZWFkZXIgcCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTYwMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZPT1RFUlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2l0ZS1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zbGF0ZS05MDApO1xuICBjb2xvcjogdmFyKC0tc2xhdGUtMzAwKTtcbiAgcGFkZGluZzogM3JlbSAwIDEuNXJlbTtcbn1cblxuLmZvb3Rlci1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmciAxZnI7XG4gIGdhcDogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmZvb3Rlci1icmFuZCB7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5mb290ZXItbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uZm9vdGVyLWljb24ge1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tdmlvbGV0LTUwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1zbGF0ZS01MCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjMpO1xufVxuXG4uZm9vdGVyLWxvZ28tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTUwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xufVxuXG4uZm9vdGVyLWJyYW5kIHAge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogdmFyKC0tc2xhdGUtNDAwKTtcbn1cblxuLmZvb3Rlci1zZWN0aW9uIGg0IHtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTUwKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uZm9vdGVyLXNlY3Rpb24gdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uZm9vdGVyLXNlY3Rpb24gdWwgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5mb290ZXItc2VjdGlvbiB1bCBsaSBhIHtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uZm9vdGVyLXNlY3Rpb24gdWwgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zbGF0ZS01MCk7XG59XG5cbi5zb2NpYWwtbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5zb2NpYWwtbGlua3MgYSB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXNsYXRlLTUwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5zb2NpYWwtbGlua3MgYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uZm9vdGVyLWJvdHRvbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZvb3Rlci1ib3R0b20gcCB7XG4gIGNvbG9yOiB2YXIoLS1zbGF0ZS01MDApO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSRVNQT05TSVZFIC0gRk9PVEVSXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyLWNvbnRlbnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuZm9vdGVyLWJyYW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuZm9vdGVyLWxvZ28ge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLnNvY2lhbC1saW5rcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiJdfQ== */