/* Component-specific CSS for EduPuzzle Landing Page */

/* Buttons - Matching shadcn/ui exactly */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 2px solid transparent;
  height: 2.5rem;
  padding: 0.5rem 1rem;
}

.btn:hover {
  transform: translateY(-4px) translateX(4px);
  box-shadow: 6px 6px 0px 0px rgba(15, 23, 42, 1);
}

.btn:active {
  transform: translateY(0) translateX(0);
}

.btn-primary {
  background: var(--violet-500);
  color: white;
}

.btn-primary:hover {
  background: var(--violet-500) !important;
  color: white !important;
  border-color: var(--slate-900);
}

.btn-outline {
  background: white;
  color: var(--slate-900);
  border-color: #e2e8f0; /* slate-200 */
}

.btn-outline:hover {
  background: white !important;
  color: var(--slate-900) !important;
  border-color: var(--slate-900);
}

.btn-sm {
  height: 2.25rem;
  padding: 0 0.75rem;
  font-size: 0.875rem;
  border-radius: 0.375rem;
}

.btn-large {
  height: 2.75rem;
  padding: 0.5rem 2rem;
  font-size: 1.125rem;
  font-weight: 500;
}

.btn-full {
  width: 100%;
}

.btn-ghost {
  background: transparent;
  color: var(--slate-900);
  border-color: transparent;
}

.btn-ghost:hover {
  background: transparent;
  border-color: var(--slate-200);
  box-shadow: none;
  transform: none;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  pointer-events: none;
}

.btn-loading {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* Spinner */
.spinner {
  width: 16px;
  height: 16px;
  border: 2px solid transparent;
  border-top: 2px solid currentColor;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Feature Cards */
.feature-card {
  background: var(--bg-primary);
  padding: 2rem;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-md);
  transition: all 0.3s ease;
  border: 1px solid var(--border-color);
  opacity: 0;
  transform: translateY(30px);
}

.feature-card.animate-in {
  opacity: 1;
  transform: translateY(0);
}

.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-xl);
}

.feature-icon {
  font-size: 3rem;
  margin-bottom: 1.5rem;
  display: block;
}

.feature-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--text-primary);
}

.feature-card p {
  color: var(--text-secondary);
  line-height: 1.6;
}

/* Form Styles - Glass Effect */
.waitlist-form {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--border-radius-xl);
  padding: 2rem;
  margin: 2rem 0;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.form-group {
  margin-bottom: 1.5rem;
  text-align: left;
}

.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.875rem;
  letter-spacing: 0.01em;
}

.form-input,
.form-select {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--border-radius);
  background: rgba(255, 255, 255, 0.15);
  color: white;
  font-size: 1rem;
  font-weight: 500;
  transition: all 0.2s ease;
}

.form-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}

.form-select {
  cursor: pointer;
}

.form-select option {
  background: var(--slate-900);
  color: white;
}

.form-input:focus,
.form-select:focus {
  outline: none;
  border-color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}

.form-input--error {
  border-color: #fca5a5 !important;
  background: rgba(239, 68, 68, 0.15) !important;
}

.form-error {
  display: none;
  color: #fca5a5;
  font-size: 0.875rem;
  margin-top: 0.5rem;
  font-weight: 500;
}

.form-message {
  padding: 1rem 1.25rem;
  border-radius: var(--border-radius);
  margin-top: 1rem;
  font-weight: 600;
  display: none;
  border: 2px solid;
  background: white;
  box-shadow: var(--shadow-sm);
}

.form-message--success {
  color: var(--amber-500);
  border-color: var(--amber-500);
}

.form-message--info {
  color: var(--violet-500);
  border-color: var(--violet-500);
}

.form-message--error {
  color: var(--error-color);
  border-color: var(--error-color);
}

.form-privacy {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 1rem;
  text-align: center;
}

/* Messages */
.message {
  position: fixed;
  top: 100px;
  right: 20px;
  max-width: 400px;
  padding: 1rem 1.5rem;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-lg);
  z-index: 1001;
  transform: translateX(100%);
  opacity: 0;
  transition: all 0.3s ease;
}

.message--show {
  transform: translateX(0);
  opacity: 1;
}

.message--info {
  background: var(--primary-color);
  color: white;
}

.message--success {
  background: var(--success-color);
  color: white;
}

.message--error {
  background: var(--error-color);
  color: white;
}

.message--warning {
  background: var(--warning-color);
  color: white;
}

/* Crossword Demo */
.crossword-demo {
  position: relative;
  overflow: hidden;
}

.crossword-demo::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  height: 80%;
  background:
    linear-gradient(
      90deg,
      transparent 24%,
      rgba(79, 70, 229, 0.1) 25%,
      rgba(79, 70, 229, 0.1) 26%,
      transparent 27%,
      transparent 74%,
      rgba(79, 70, 229, 0.1) 75%,
      rgba(79, 70, 229, 0.1) 76%,
      transparent 77%,
      transparent
    ),
    linear-gradient(rgba(79, 70, 229, 0.1) 2px, transparent 2px) 0 0 / 20px 20px,
    linear-gradient(90deg, rgba(79, 70, 229, 0.1) 2px, transparent 2px) 0 0 /
      20px 20px;
  border-radius: var(--border-radius);
}

.crossword-demo::after {
  content: "🧩 Interactive Crossword Demo";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--primary-color);
  text-align: center;
  z-index: 1;
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-in {
  animation: fadeInUp 0.6s ease forwards;
}

/* Responsive Form */
@media (max-width: 768px) {
  .form-row {
    grid-template-columns: 1fr;
  }

  .waitlist-form {
    padding: 1.5rem;
  }
}

@media (max-width: 480px) {
  .btn {
    padding: 0.625rem 1.25rem;
    font-size: 0.875rem;
  }

  .btn-large {
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
  }

  .waitlist-form {
    padding: 1rem;
  }

  .message {
    right: 10px;
    left: 10px;
    max-width: none;
  }
}

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